PHP手册|最新PHP5中文手册 编译时间 2009-02-15

PHP 手册

PHP 手册

by:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
其他贡献者
编译：陈浩（Haohappy）
编译时间： 2009-02-15
下次编译： 2009-03-17
Edited By: Philip Olson
© 1997-2008 PHP 文档组
中文翻译人员：
王远之
肖理达
肖盛文
黄啸宇
宋琪
陈伯乐
陈浩
陈岗
刘铭
洪建家
  • 版权信息
  • PHP 手册
    • 前言
  • 入门指引
    • 简介
    • 简明教程
  • 安装与配置
    • 安装前需要考虑的事项
    • Unix 系统下的安装
    • Mac OS X 系统下的安装
    • Windows 系统下的安装
    • PECL 扩展库安装
    • 还有问题？
    • 运行时配置
  • 语言参考
    • 基本语法
    • 类型
    • 变量
    • 常量
    • 表达式
    • 运算符
    • 控制结构
    • 函数
    • 类与对象（PHP 4）
    • 类与对象（PHP 5）
    • 命名空间
    • 异常处理
    • 引用的解释
    • Predefined variables
    • Predefined Exceptions
    • Predefined Interfaces
    • Context options and parameters
  • 安全
    • 简介
    • 总则
    • 以 CGI 模式安装时
    • 以 Apache 模块安装时
    • 文件系统安全
    • 数据库安全
    • 错误报告
    • 使用 Register Globals
    • 用户提交的数据
    • 魔术引号
    • 隐藏 PHP
    • 保持更新
  • 特点
    • 用 PHP 进行 HTTP 认证
    • Cookie
    • 会话
    • 处理 XForms
    • 文件上传处理
    • 使用远程文件
    • 连接处理
    • 数据库永久连接
    • 安全模式
    • PHP 的命令行模式
  • 函数参考
    • 影响PHP行为的扩展
    • 音频格式操作
    • 身份认证服务
    • 日历和事件相关扩展
    • 命令行特有的扩展
    • 压缩与归档扩展
    • 信用卡处理
    • 加密扩展
    • 数据库扩展
    • 文件系统相关扩展
    • 国际化与字符编码支持
    • 图像生成和处理
    • 邮件相关扩展
    • 数学扩展
    • 非文本内容的MIME输出
    • 进程控制扩展
    • 其它基本扩展
    • 其它服务
    • 搜索引擎扩展
    • 面向服务器的扩展
    • Session扩展
    • 文本处理
    • 与变量和类型有关的扩展
    • Web Services
    • Windows平台下的扩展
    • XML操作
  • PHP at the Core: A Hacker's Guide to the Zend Engine
    • Preface
    • The "counter" Extension - A Continuing Example
    • The PHP 5 build system
    • Extension structure
    • Memory management
    • Working with variables
    • Writing functions
    • Working with classes and objects
    • Working with resources
    • Working with INI settings
    • Working with streams
    • PDO Driver How-To
    • Extension FAQs
    • Zend Engine 2 API reference
    • Zend Engine 1
    • The future: PHP 6 and Zend Engine 3
  • FAQ — FAQ：常见问题
    • 一般信息
    • 邮件列表
    • 获取 PHP
    • 数据库问题
    • 安装 — 安装常见问题
    • 编译问题
    • 使用 PHP
    • PHP 和 HTML
    • PHP 和 COM
    • PHP 和其它语言
    • 从 PHP 4 移植到 PHP 5
    • 杂类问题
  • 附录
    • PHP 及其相关工程的历史
    • Migrating from PHP 5.1.x to PHP 5.2.x
    • Migrating from PHP 5.0.x to PHP 5.1.x
    • 从 PHP 4 移植到 PHP 5
    • PHP 的调试
    • 配置选项
    • php.ini 配置选项
    • 扩展库分类
    • 函数别名列表
    • 保留字列表
    • 资源类型列表
    • 支持的协议／封装协议列表
    • 可用过滤器列表
    • 所支持的套接字传输器（Socket Transports）列表
    • PHP 类型比较表
    • 解析器代号列表
    • Userland Naming Guide
    • 关于本手册
    • Creative Commons Attribution 3.0
    • 函数索引
  • CHM 版本
    • 关于此版本
    • Using PHP Manual CHM Edition
    • The Full Text Search
    • Specialities of this Edition
    • Integrating the PHP Manual
    • Skin development
    • CHM Edition Credits
PHP 手册


版权信息

© Copyright 1997 - 2008 PHP 文档组版权所有。发布本资料须遵守 Creative Commons Attribution 3.0 License 或者更新版本。一份Creative Commons Attribution 3.0 license的拷贝已随 本手册发布，其最新版本位于 » http://creativecommons.org/licenses/by/3.0/。

未经版权所有者明确授权，禁止发行本文档被实质上修改的版本。

未经版权所有者事先授权，禁止将此作品及其衍生作品以标准（纸质）书籍形式发行。

如果有兴趣再发行或再版本手册的全部或部分内容，不论修改过与否，或者有任何问题，请联系版权所有者 » doc-license@lists.php.net。注意本地址映射到一个公开归档的邮件列表。

PHP 手册
PHP 手册


PHP 手册
PHP 手册

PHP 手册

  • 前言
版权信息
前言
PHP 手册
PHP 手册


前言

PHP，即“PHP: Hypertext Preprocessor”，是一种被广泛使用的开放源代码多用途脚本语言，尤其适用于 web 开发并可以嵌入到 HTML 中去。其语法利用了 C，Java 和 Perl，非常容易学习。该语言的主要目标是让 web 开发人员可以很快写出动态生成的网页，但 PHP 的功能远不止如此。

本手册主要由函数参考组成，但也包括语言参考，PHP 一些主要特点的说明以及其它补充信息。

可以在 » http://www.php.net/download-docs.php 下载本手册的数种格式。关于本手册如何被开发的更多信息，请参阅附录：“关于本手册”。如果对 PHP 的历史感兴趣，请访问相关附录。

欢迎加入 PHP 简体中文翻译小组！具体加入方法请访问» 此页面，点击该页面右上角的“下载”以取得该 howto 文档的最新版本并仔细阅读。

作者和贡献者

手册首页仅突出了目前最活跃的人员，但是还有更多的贡献者在现在或者过去对本项目提供了大量的帮助。很多不留名的人也帮忙在手册中写下了笔记，并不断被包括在手册中，也很感谢他们的工作。下面的姓名列表按照字母顺序排列。

作者与编辑

下列人员曾经或者目前正在为本手册添砖加瓦: Bill Abt, Jouni Ahto, Alexander Aulbach, Daniel Beckham, Stig Bakken, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Rafael Martinez, Rick McGuire, Yasuo Ohgaki, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar 和 Andrei Zmievski.

下列人员对本手册做出了重大的编辑工作: Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe 和 Egon Schmid.

用户注释维护者

目前最活跃的维护者是: Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda 和 Maciek Sokolewicz.

下列人员为维护用户评论作出了巨大的努力: Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles 和 Jeroen van Wolffelaar.

PHP 手册
入门指引


入门指引

  • 简介
    • PHP 是什么？
    • PHP 能做什么？
  • 简明教程
    • 需要些什么？
    • 第一个 PHP 页面
    • 实用的脚本
    • 处理表单
    • 在新版本的 PHP 中使用旧的 PHP 代码
    • 下一步做什么？
前言
简介


简介

Table of Contents

  • PHP 是什么？
  • PHP 能做什么？
入门指引
PHP 是什么？
入门指引


PHP 是什么？

PHP（“PHP: Hypertext Preprocessor”，超文本预处理器的字母缩写）是一种被广泛应用的开放源代码的多用途脚本语言，它可嵌入到 HTML中，尤其适合 web 开发。

以上是一个简单的回答，不过这是什么意思呢？请看如下例子：

Example #1 一个介绍性的范例

<html>
    <head>
        <title>Example</title>
    </head>
    <body>

        <?php
        echo "Hi, I'm a PHP script!";
        ?>

    </body>
</html>

请注意这个范例和其它用 C 或 Perl 语言写的脚本之间的区别――与用大量的命令来编写程序以输出 HTML 不同的是，我们用 PHP 编写了一个 HTML 脚本，其中嵌入了一些代码来做一些事情（例如，在本例中输出了一些文本）。PHP 代码被包含在特殊的起始符和结束符中，使得可以进出“PHP 模式”。

和客户端的 JavaScript 不同的是，PHP 代码是运行在服务端的。如果在服务器上建立了如上例类似的代码，则在运行该脚本后，客户端就能接收到其结果，但他们无法得知其背后的代码是如何运作的。甚至可以将 web 服务器设置成让 PHP 来处理所有的 HTML 文件，这么一来，用户就无法得知服务端到底做了什么。

使用 PHP 的一大好处是它对于初学者来说极其简单，同时也给专业的程序员提供了各种高级的特性。当看到 PHP 长长的特性列表时，请不要害怕。可以很快的入门，只需几个小时就可以自己写一些简单的脚本。

尽管 PHP 的开发是以服务端脚本为目的，但事实上其功能远不局限与此。请继续读后面的章节，在“PHP 能做什么”一节中将获得更多的信息。如果对 web 编程感兴趣，也可以阅读简明教程。

简介
PHP 能做什么？
简介


PHP 能做什么？

PHP 能做任何事。PHP 主要是用于服务端的脚本程序，因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作，例如收集表单数据，生成动态网页，或者发送／接收 Cookies。但 PHP 的功能远不局限于此。

PHP 脚本主要用于以下三个领域：

  • 服务端脚本。这是 PHP 最传统，也是最主要的目标领域。开展这项工作需要具备以下三点：PHP 解析器（CGI 或者服务器模块）、web 服务器和 web 浏览器。需要在运行 web 服务器时，安装并配置 PHP，然后，可以用 web 浏览器来访问 PHP 程序的输出，即浏览服务端的 PHP 页面。如果只是实验 PHP 编程，所有的这些都可以运行在自己家里的电脑中。请查阅安装一章以获取更多信息。
  • 命令行脚本。可以编写一段 PHP 脚本，并且不需要任何服务器或者浏览器来运行它。通过这种方式，仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron（Unix 或者 Linux 环境）或者 Task Scheduler（Windows 环境）的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅 PHP 的命令行模式以获取更多信息。
  • 编写桌面应用程序。对于有着图形界面的桌面应用程序来说，PHP 或许不是一种最好的语言，但是如果用户非常精通 PHP，并且希望在客户端应用程序中使用 PHP 的一些高级特性，可以利用 PHP-GTK 来编写这些程序。用这种方法，还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展，在通常发布的 PHP 包中并不包含它。如果对 PHP-GTK 感兴趣，请访问其» 网站以获取更多信息。

PHP 能够用在所有的主流操作系统上，包括 Linux、Unix 的各种变种（包括 HP-UX、Solaris 和 OpenBSD）、Microsoft Windows、Mac OS X、RISC OS 等。今天，PHP已经支持了大多数的 web 服务器，包括 Apache、Microsoft Internet Information Server（IIS）、Personal web Server（PWS）、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器，PHP 提供了一个模块；还有一些 PHP 支持 CGI 标准，使得 PHP 能够作为 CGI 处理器来工作。

综上所述，使用 PHP，可以自由地选择操作系统和 web 服务器。同时，还可以在开发时选择使用面对过程和面对对象，或者两者混和的方式来开发。尽管 PHP 4 不支持 OOP 所有的标准，但很多代码仓库和大型的应用程序（包括 PEAR 库）仅使用 OOP 代码来开发。PHP 5 弥补了 PHP 4 的这一弱点，引入了完全的对象模型。

使用 PHP，并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画（使用 libswf 和 Ming）。还能够非常简便的输出文本，例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件，在服务端开辟出一块动态内容的缓存，可以直接把它们打印出来，或者将它们存储到文件系统中。

PHP 最强大最显著的特性之一，是它支持很大范围的数据库。用户会发现利用 PHP 编写数据库支持的网页简单得难以置信。目前，PHP 支持如下数据库：

  • Adabas D
  • dBase
  • Empress
  • FilePro（只读）
  • Hyperwave
  • IBM DB2
  • Informix
  • Ingres
  • InterBase
  • FrontBase
  • mSQL
  • Direct MS-SQL
  • MySQL
  • ODBC
  • Oracle（OCI7 和 OCI8）
  • Ovrimos
  • PostgreSQL
  • SQLite
  • Solid
  • Sybase
  • Velocis
  • Unix dbm

同时还有一个叫做 PDO 的数据库抽象扩展库使得可以自由地使用该扩展库支持的任何数据库。另外，PHP 还支持 ODBC，即 Open Database Connection Standard（开放数据库连接标准），因此可以连接任何其它支持该世界标准的数据库。

PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM（Windows 环境）等不计其数的协议的服务。还可以开放原始网络端口，使得任何其它的协议能够协同工作。PHP 支持和所有 web 开发语言之间的 WDDX 复杂数据交换。关于相互连接，PHP 已经支持了对 Java 对象的即时连接，并且可以将他们自由的用作 PHP 对象。甚至可以用我们的 CORBA 扩展库来访问远程对象。

PHP 具有极其有效的文本处理特性，支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。为了解析和访问 XML 文档，PHP 4 支持 SAX 和 DOM 标准，也可以使用 XSLT 扩展库来转换 XML 文档。PHP 5 基于强健的 libxm2 标准化了所有的 XML 扩展，并添加了 SimpleXML 和 XMLReader 支持，扩展了其在 XML 方面的功能。

另外，还有很多其它有趣的扩展库。例如 mnoGoSearch 搜索引擎函数、IRC 网关函数、多种压缩工具（gzip、bz2、zip）、日历转换、翻译……

由于在这里无法列出 PHP 所有的特性和可提供的便利，请参阅安装以及函数参考有关章节以获取关于这里提到的扩展库更多的信息。

PHP 是什么？
简明教程
简介


简明教程

Table of Contents

  • 需要些什么？
  • 第一个 PHP 页面
  • 实用的脚本
  • 处理表单
  • 在新版本的 PHP 中使用旧的 PHP 代码
  • 下一步做什么？

本章将给出关于 PHP 的简明教程。虽然 PHP 的功能并不局限于生成动态的 web 页面，但本章的内容仅涉及于此。请查阅“PHP 能做什么”一节以获取更多信息。

使用了 PHP 的 web 页面将被和通常的 HTML 页面一样处理，可以用通常建立 HTML 页面的方法来建立和编辑它们。

PHP 能做什么？
需要些什么？
入门指引


需要些什么？

在本教程中，假设用户的服务器已经安装并运行了 PHP，所有以 .php 结尾的文件都将由 PHP 来处理。在大部分的服务器上，这是 PHP 的默认扩展名，不过，也请询问服务器管理员以确认。如果服务器支持 PHP，则不需要做任何事情。只用建立 .php 文件，并把它们放置到 web 目录中，服务器将神奇地自动解析这些文件。不用编译任何东西，也不用安装任何其它的工具，仅仅只需把这些使用了 PHP 的文件想象成简单的 HTML 文件，其中只不过多了一种新的标识符，在这里可以做各种各样的事情。大多数的 web 主机都提供 PHP 的支持，如果你的主机不支持，可以访问 » PHP 相关链接来查找支持 PHP 的 web 主机。

假设用户希望在本地机器开发以节约宝贵的带宽。在这种情况下，需要安装一个诸如 » Apache 的 web 服务器，当然还有 » PHP。可能还希望安装一个数据库，例如 » MySQL。

可以一个个的安装它们或选择一个更简单的方法。可以参考本手册中 PHP 安装说明的相关章节（假设已经配置好了某个 web 服务器）。若在自己安装 PHP 时出现了问题，建议在» 安装邮件列表中询问。如果想使用更简便的方法安装 PHP，那么可以考虑» 获取一个预先配置的安装包，用这个安装包，只用点击几下鼠标，就可以自动地安装所有这些系统。在任何操作系统下建立有 PHP 支持的 web 服务器都十分简单，包括 MacOSX、Linux 和 Windiws。在 Linux 下，会发现 » rpmfind 和 » PBone 能够在获取 RPM 时提供帮助。也可以使用 » apt-get 搜索 Debian 的相关软件包。

简明教程
第一个 PHP 页面
简明教程


第一个 PHP 页面

在 web 服务器根目录（DOCUMENT_ROOT）下建立一个文件名为 hello.php，然后完成如下内容：

Example #1 第一个 PHP 脚本：hello.php

<html>
 <head>
  <title>PHP 测试</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 </body>
</html>

在浏览器的地址栏里输入 web 服务器的 URL 访问这个文件，在结尾加上“/hello.php”。如果本地开发，那么这个 URL 一般是 http://localhost/hello.php 或者 http://127.0.0.1/hello.php，当然这取决于 web 服务器的设置。如果所有的设置都正确，那么这个文件将被 PHP 解析，浏览器中将会输出如下结果：

<html>
 <head>
  <title>PHP 测试</title>
 </head>
 <body>
 <p>Hello World</p>
 </body>
</html>

该程序非常的简单，它仅仅只是利用了 PHP 的 echo() 语句显示了 Hello World。用户一定不会满足与此。请注意该文件无需被执行或以任何方式指定。服务器会找到该文件并提供给 PHP 进行解释，因为使用了“.php”的扩展名，服务器已被配置成自动传递有着“.php”扩展名的文件给 PHP。一个普通的 HTML 文件，加上了几个特别的标签，就可以做很多非常有趣的事情！

如果试过了这个例子，但是没有得到任何输出，或者浏览器弹出了下载框，或者浏览器以文本方式显示了源文件，可能的原因是服务器还没有支持 PHP，或者没有正确配置。需要请服务器的管理员根据本手册“安装”一章的内容使得服务器支持 PHP。如果本地开发，请阅读手册有关安装的章节以确保所有的设置都正确。还要确认通过浏览器访问的 URL 确实指向了服务器上的这个文件。如果只是从本地文件系统调用这个文件，它不会被 PHP 解析。如果问题仍然存在，请通过 » PHP 在线支持中的各种方式获取帮助。

以上例子的目的是为了显示 PHP 特殊标识符的格式。在这个例子中，用 <?php 来表示 PHP 标识符的起始，然后放入 PHP 语句并通过加上一个终止标识符 ?> 来退出 PHP 模式。可以根据自己的需要在 HTML 文件中像这样开启或关闭 PHP 模式。请参阅手册中“PHP 基本语法”以获取更多信息。

Note: 关于换行
尽管换行在 HTML 中的实际意义不是很大，但适当地使用换行可以使 HTML 代码易读且美观。PHP 会在输出时自动删除其结束符 ?> 后的一个换行。该功能主要是针对在一个页面中嵌入多段 PHP 代码或者包含了无实质性输出的 PHP 文件而设计，与此同时也造成了一些疑惑。如果在 PHP 结束符 ?> 后输出换行的话，可以在其后加一个空格，或者在最后的一个 echo/print 语句中加入一个换行。

Note: 关于文本编辑器
有很多文本编辑器以及集成开发环境（IDE）可以被用来建立、编辑和管理 PHP 文件。这些工具中的一部分被列在 » PHP 编辑器列表中。如果希望推荐其它的编辑器，请访问以上页面，并要求该页面的维护者将你推荐的编辑器加入到该列表中。使用支持语法高亮功能的编辑器会给开发带来很多帮助。

Note: 关于文字处理器
诸如 StarOffice Writer、Microsoft Word 和 Abiword 的文字处理器不适合用来编辑 PHP 程序。如果希望用以上这些工具的某一种来处理脚本，必须保证将结果存成了纯文本格式，否则 PHP 将无法读取并运行这些脚本。

Note: 关于 Windows 记事本
如果使用 Windows 记事本来编写 PHP 脚本，需要注意在保存文件时，文件的后缀名应该为 .php（记事本将自动在文件名后面加上 .txt 后缀，除非采取以下措施之一来避免这种情况）。当保存文件时，系统会让你指定文件的文件名，这时请将文件名加上引号（例如 "hello.php"）。或者，也可以点击“保存”对话框中的“保存类型”下拉菜单，并将设置改为“所有文件”。这样在输入文件名的时候就不用加引号了。

现在已经成功建立了一个简单的 PHP 脚本。还可以建立一个最著名的 PHP 脚本。调用函数 phpinfo()，将会看到很多有关自己系统有用的信息，以及预定义变量、已经加载的 PHP 模块和配置信息。请花一些时间来查看这些重要的信息。

Example #2 从 PHP 获取系统信息

<?php phpinfo(); ?>

需要些什么？
实用的脚本
简明教程


实用的脚本

现在来编写一些更实用的脚本，比如检查浏览页面的访问者在用什么浏览器。要达到这个目的，需要检查用户的 agent 字符串，它是浏览器发送的 HTTP 请求的一部分。该信息被存储在一个变量中。在 PHP 中，变量总是以一个美元符开头。我们现在感兴趣的变量是 $_SERVER['HTTP_USER_AGENT']。

Note: $_SERVER 是一个特殊的 PHP 保留变量，它包含了 web 服务器提供的所有信息，被称为超全局变量。请查阅本手册“超全局变量”中的有关内容以获取更多信息。这些特殊的变量是在 PHP » 4.1.0 版本引入的。在这之前使用 $HTTP_*_VARS 数组，如 $HTTP_SERVER_VARS。尽管现在已经不用了，但它们在新版本中仍然存在（参见“旧代码”一节中的注解）。

要显示该变量，只需简单地进行如下操作：

Example #1 打印一个变量（数组元素）

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

该脚本的输出可能是：

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

PHP 有很多种不同类型的变量。在以上例子中我们打印了一个数组的单元。数组是一类非常有用的变量。

$_SERVER 只是 PHP 自动全局化的变量之一。可以查阅“保留变量”一节来查看这些变量的列表，或者也可以通过上节例子中 phpinfo() 函数的输出来查看。

可以在一个 PHP 标识中加入多个 PHP 语句，也可以建立一个代码块来做比简单的 echo 更多的事情。例如，如果需要识别 Internet Explorer，可以进行如下操作：

Example #2 流程控制与函数的使用

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo '正在使用 Internet Explorer。<br />';
}
?>

该脚本的输出可能是：

正在使用 Internet Explorer。<br />

这里要介绍一些新的原理。上面用了一个 if 语句。如果用户对 C 语言的基本语法比较熟悉，则应该对此很熟悉，否则，可能需要拿起任何一本 PHP 介绍性的书籍并阅读前面的两三个章节，或者也可以阅读本手册的“语言参考”一章。

需要介绍的第二个原理，是对 strpos() 函数的调用。strpos() 是 PHP 的一个内置函数，其功能是在一个字符串中搜索另外一个字符串。例如我们现在需要在 $_SERVER['HTTP_USER_AGENT']（即所谓的 haystack）变量中寻找 'MSIE'。如果在这个 haystack 中该字符串（即所谓的 needle）被找到，则函数返回 needle 在 haystack 中相对开头的位置；如果没有，则返回 FALSE。如果该函数没有返回 FALSE，则 if 会将条件判断为 TRUE 并运行其花括号 {} 内的代码；否则，则不运行这些代码。可以自己尝试利用 if，else 以及其它的函数，例如 strtoupper() 和 strlen()，来建立类似的脚本。在本手册中相关的页面也包含有范例。如果对如何使用函数不是很确定，可以阅读手册中有关“如何阅读函数定义”和“函数”的有关章节。

以下我们进一步显示如何进出 PHP 模式，甚至是在一个 PHP 代码块的中间：

Example #3 混和 HTML 和 PHP 模式

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() 肯定没有返回假 (FALSE)</h3>
<p>正在使用 Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() 肯定返回假 (FALSE)</h3>
<center><b>没有使用 Internet Explorer</b></center>
<?php
}
?>

该脚本的输出可能是：

<h3>strpos() 肯定没有返回假 (FALSE)</h3>
<p>正在使用 Internet Explorer</p>

和以上我们用一个 PHP 的 echo 语句来输出不同的是，我们跳出了 PHP 模式来直接写 HTML 代码。这里很值得注意的一点是，对于这两种情况而言，脚本的逻辑效率是相同的。在判断了 strpos() 函数的返回值是 TRUE 或是 FALSE，也就是判断了字符串 'MSIE' 是否被找到之后，最终只有一个 HTML 块被发送给浏览者。

第一个 PHP 页面
处理表单
简明教程


处理表单

PHP 一个很有用的特点体现在它处理 PHP 表单的方式。需要理解的非常重要的原理，是表单的任何元素都在 PHP 脚本中自动生效。请参阅本手册中“PHP 的外部变量”以获取关于在 PHP 中使用表单的详细信息及范例。以下是 HTML 表单的范例：

Example #1 一个简单的 HTML 表单

<form action="action.php" method="post">
 <p>姓名: <input type="text" name="name" /></p>
 <p>年龄: <input type="text" name="age" /></p>
 <p><input type="submit" /></p>
</form>

该表单中并没有什么特殊的地方，其中没有使用任何特殊的标识符。当用户填写了该表单并点击了提交按钮，页面 action.php 将被调用。在该文件中，可以加入如下内容：

Example #2 打印来自表单的数据

你好，<?php echo htmlspecialchars($_POST['name']); ?>。
你 <?php echo (int)$_POST['age']; ?> 岁了。

该脚本的输出可能是：

你好，Joe。你 22 岁了。

Apart from the htmlspecialchars() and (int) parts, it should be obvious what this does. htmlspecialchars() makes sure any characters that are special in html are properly encoded so people can't inject HTML tags or Javascript into your page. For the age field, since we know it is a number, we can just convert it to an integer which will automatically get rid of any stray characters. You can also have PHP do this for you automatically by using the filter extension. PHP 将自动设置 $_POST['name'] 和 $_POST['age'] 变量。在这之前我们使用了超全局变量 $_SERVER，现在我们引入了超全局变量 $_POST，它包含了所有的 POST 数据。请注意我们的表单提交数据的方法（method）。如果使用了 GET 方法，那么表单中的信息将被储存到超全局变量 $_GET 中。如果并不关心请求数据的来源，也可以用超全局变量 $_REQUEST，它包含了所有 GET、POST、COOKIE 和 FILE 的数据。请参阅 import_request_variables() 函数。

也可以在 PHP 中处理 XForms 的输入，尽管可能更喜欢使用长久以来支持良好的 HTML 表单。XForms 目前还不适合初学者使用，但是用户可能对它感兴趣。手册中在“特点”一章有一节对如何处理从 XForum 接收到的数据进行了简短的介绍。

实用的脚本
在新版本的 PHP 中使用旧的 PHP 代码
简明教程


在新版本的 PHP 中使用旧的 PHP 代码

现在，PHP 已经发展成为一种流行的脚本语言，可以在很多公共的资源里找到可以在自己的脚本中重新利用的代码。PHP 语言的开发者为向下兼容性下了很多功夫，因此在新版本的 PHP 下，老版本的代码应该可以在不作任何改动的情况下（理想地）运行。不过实际上，还是必须对老的代码做一些改动。

有可能影响到老版本的代码的最重要的两点改动分别是：

  • 取消了旧的 $HTTP_*_VARS 数组（在函数或者方法中原本是全局变量）。PHP » 4.1.0 版本引入了如下超全局数组变量：$_GET、$_POST、$_COOKIE、$_SERVER、$_FILE、$_ENV、$_REQUEST 以及 $_SESSION。老的 $HTTP_*_VARS 数组，诸如 $HTTP_POST_VARS 等，从 PHP 3 就已经开始使用，它们仍然存在。自 PHP 5.0.0 起，长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽。
  • 外部变量不再被默认注册为全局变量。也就是说，从 PHP » 4.2.0 版开始，php.ini 中的设置选项 register_globals 默认值变成了 off。建议用以上提到的超全局数组变量来访问这些值。但可能老的脚本、书籍以及教程都可能建立在该设置为 on 的基础上。如果该选项被设置为 on，则可以在 URL http://www.example.com/foo.php?id=42 中直接使用变量 $id。但不管被设置为 on 还是 off，$_GET['id'] 一直有效。

如果希望了解关于这些改动的细节，请参阅“预定义变量”一章以及其中的连接。

处理表单
下一步做什么？
简明教程


下一步做什么？

用现在掌握的知识，应该能够理解本手册中的大部分内容以及其中各式各样的脚本范例。在 php.net 网站的连接区 » http://www.php.net/links.php 能购获得其它更多的范例。

请查阅 PHP Conference 资料网站 » http://conf.php.net/ 及 » http://talks.php.net/ 以观看更多幻灯片，这些幻灯片展示了许多 PHP 其它的功能。

在新版本的 PHP 中使用旧的 PHP 代码
安装与配置
简明教程


安装与配置

  • 安装前需要考虑的事项
  • Unix 系统下的安装
    • Unix 系统下的 Apache 1.3.x
    • Unix 系统下的 Apache 2.0
    • Caudium 服务器
    • fhttpd 服务器
    • Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器
    • CGI 和命令行设置
    • 在 HP-UX 系统下的安装
    • 在 OpenBSD 系统下的安装
    • 在 Solaris 下的安装
    • Debian GNU/Linux 安装说明
  • Mac OS X 系统下的安装
    • 使用软件包
    • Using the bundled PHP
    • 在 Mac OS X 服务器版编译
    • 在 Mac OS X 客户版编译
  • Windows 系统下的安装
    • Windows 安装程序
    • 手工安装步骤
    • ActiveScript
    • Microsoft IIS／PWS
    • Microsoft Windows 下的 Apache 1.3.x
    • Microsoft Windows 下的 Apache 2.0.x
    • Microsoft Windows 下的 Sun，iPlanet 和 Netscape 服务器
    • OmniHTTPd Server
    • Microsoft Windows 下的 Sambar 服务器
    • Microsoft Windows 下的 Xitami
    • 从源程序编译
    • Windows 下安装扩展库
  • PECL 扩展库安装
    • PECL 安装介绍
    • 下载 PECL 扩展库
    • Windows 用户的 PECL
    • 用 PEAR 编译共享 PECL 扩展库
    • 用 phpize 编译共享 PECL 扩展库
    • 将 PECL 扩展库静态编译入 PHP
  • 还有问题？
    • 阅读 FAQ
    • 其它问题
    • 错误报告
  • 运行时配置
    • 配置文件
    • 怎样修改配置设定
下一步做什么？
安装前需要考虑的事项


安装前需要考虑的事项

安装前，首先需要知道想用 PHP 来做什么。PHP 主要用在三个领域，分别在“PHP 能做什么”一节中进行了描述：

  • 网站和 web 应用程序（服务器端脚本）
  • 命令行脚本
  • 桌面（GUI）应用程序

在通常情况下，需要三样东西：PHP 自身、一个 web 服务器和一个 web 浏览器。可能已经有了一个 web 浏览器，并且根据操作系统的配置，也很可能已经有了一个 web 服务器（例如 Linux 和 MacOS 下的 Apache；Windows 下的 IIS）。也许在某个公司租用了 web 空间，这样，自己无需设置任何东西，仅需要编写 PHP 脚本，并上传到租用的空间中，然后在浏览器中查看结果。

如果需要自己配置服务器和 PHP，有两个方法将 PHP 连接到服务器上。对于很多服务器，PHP 均有一个直接的模块接口（也叫做 SAPI）。这些服务器包括 Apache、Microsoft Internet Information Server、Netscape 和 iPlanet 等服务器。其它很多服务器支持 ISAPI，即微软的模块接口（OmniHTTPd 就是个例子）。如果 PHP 不能作为模块支持 web 服务器，总是可以将其作为 CGI 或 FastCGI 处理器来使用。这意味着可以使用 PHP 的 CGI 可执行程序来处理所有服务器上的 PHP 文件请求。

如果对 PHP 命令行脚本感兴趣（例如在离线状态下，根据传递给脚本的参数，自动生成一些图片，或处理一些文本文件），总是需要命令行可执行程序。更多信息可以参考 PHP 的命令行模式。如果是这种情况，不需要服务器和浏览器。

还可以用 PHP 的 PHP-GTK 扩展来编写桌面图形界面应用程序。这与编写 web 页面完全不同，因为无需输出任何 HTML，而要管理窗口和窗口中的对象。关于 PHP-GTK 的更多信息，请» 访问专门为该扩展建立的网站。PHP-GTK 没有包含在官方发布的 PHP 中。

现在，本节开始说明如何在 Unix 和 Windows 的 web 服务器中配置服务器模块接口和 CGI 可执行程序。也将在下面几节中了解到有关命令行可执行程序安装的信息。

PHP 源代码包和二进制包可以在 » http://www.php.net/downloads.php 找到。建议选择一个最近的» 镜象服务器下载。

安装与配置
Unix 系统下的安装
安装与配置


Unix 系统下的安装

Table of Contents

  • Unix 系统下的 Apache 1.3.x
  • Unix 系统下的 Apache 2.0
  • Caudium 服务器
  • fhttpd 服务器
  • Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器
  • CGI 和命令行设置
  • 在 HP-UX 系统下的安装
  • 在 OpenBSD 系统下的安装
  • 在 Solaris 下的安装
  • Debian GNU/Linux 安装说明

本节将指导如何在 Unix 系统下安装和配置 PHP。在开始安装之前，请务必研究自己使用的系统和 web 服务器的相关章节。

在安装前需要考虑的事项一节提到，在本节主要以 web 为中心介绍 PHP 的设置。不过本节也会覆盖一些 PHP 命令行用法的设置方法。

在 Unix 平台下安装 PHP 有几种方法：使用配置和编译过程，或是使用各种预编译的包。本文主要针对配置和编译 PHP 的过程。很多 Unix 类系统都有包安装系统，可以用它来设置一个有着标准配置的 PHP。但是若需要与标准配置不同的功能（例如一个安全服务器，或者不同的数据库驱动扩展模块），可能需要编译 PHP 和／或 web 服务器。如果不熟悉编译软件，可以考虑搜索一下是否有人已经编译了包含所需要功能的预编译包。

编译所需的知识和软件：

  • 基础的 Unix 技能（有能力操作“make”和一种 C 语言编译器）
  • 一个 ANSI C 语言编译器
  • flex：版本 2.5.4
  • bison：版本 1.28（推荐）、1.35 或 1.75
  • 一个 web 服务器
  • 模块特别需要的组件（例如 gd、pdf 库等)

PHP 初始的配置和安装过程被 configure 脚本中一系列命令行选项控制。可以通过 ./configure --help 命令了解 PHP 所有可用的编译选项及简短解释。本手册是分开对这些选项编写文档的。可在附录中找到核心配置选项，而扩展模块特定的配置选项分别在其函数参考页面中描述。

配置好 PHP 后，便可以开始编译模块和／或可执行文件。make 命令用来做这一工作。如果该命令执行失败而找不到原因，请参考安装问题一节。

安装前需要考虑的事项
Unix 系统下的 Apache 1.3.x
安装与配置


Unix 系统下的 Apache 1.3.x

本节包括在 Unix 平台的 Apache 下安装 PHP 的说明和提示。我们在另外的页面也有 Apache 2 的安装和说明。

可以从核心配置选项列表以及位于手册对应部分的特定扩展配置选项中选择参数并在安装步骤第 10 步将它们添加到 configure 命令中。版本号在这里被省略了以保证此说明的正确性。需要将这里的“xxx”替换为自己使用的文件的正确值。

Example #1 PHP 的 Apache 共享模块版本安装说明

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx
10. 现在，配置 PHP。这是定制 PHP 的不同选项的时候，例如要加载哪些扩展库。使用
      ./configure --help
    来列出可用的选项。在下面的示例中只是简单地配置 Apache 1 和 MySQL 支持。
    用户的 apxs 的路径可能和此示例中的不同。
      ./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install
    如果在安装之后决定修改配置选项，那么只需重复以上最后三步。只须重新启动
    Apache 就可以使新模块生效。不需要重新编译 Apache。注意除非特别指出，
    “make install”总是会安装 PEAR，各种 PHP 工具例如 phpize，PHP CLI 以及其它。
13. 建立 php.ini 文件。
      cp php.ini-dist /usr/local/lib/php.ini
    可以编辑 php.ini 来设置 PHP 选项。如果想把 php.ini 放在其它目录，在第
    10 步加上以下选项：
      --with-config-file-path=/path
    如果选择了 php.ini-recommended，确保阅读一下其中的变更说明，因为这些会
    影响到 PHP 的行为。
14. 编辑 httpd.conf 来加载 PHP 模块。在 LoadModule 语句右边的路径必须指向系统中
    PHP 模块所在的路径。上面的 make install 步骤可能已经添加了，但还是检查确认一下。
    对 PHP 4：
      LoadModule php4_module        libexec/libphp4.so
    对 PHP 5：
      LoadModule php5_module        libexec/libphp5.so
15. 在 httpd.conf 中加入 AddModule 部分，在 ClearModuleList 下面的某处，加上这一句：
    对 PHP 4：
      AddModule mod_php4.c
    对 PHP 5：
      AddModule mod_php5.c
16. 告诉 Apache 将哪些后缀作为 PHP 解析。例如，让 Apache 把 .php 后缀的文件解析为
    PHP。可以将任何后缀的文件解析为 PHP，只要在以下语句中加入并用空格分开。这里以
    添加一个 .phtml 来示例。
      AddType application/x-httpd-php .php .phtml
    为了将 .phps 作为 PHP 的源文件进行语法高亮显示，还可以加上：
      AddType application/x-httpd-php-source .phps
17. 用通常的过程启动 Apache（必须完全停止 Apache 再重新启动，而不是用 HUP 或者
    USR1 信号使 Apache 重新加载）。

也可以将 PHP 作为静态对象来安装：

Example #2 PHP 的 Apache 静态模块版本安装说明

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-5.x.y.tar.gz | tar xf -
6.  cd php-5.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
    （上面一行是正确的！是的，我们知道 libphp5.a 尚不存在，还不到时候，
      它会在之后被创建。）

12. make
    （现在应该有一个 httpd 二进制文件，可以将它复制到 Apache bin 目录。如果这是
      第一次安装，还要“make install”。)

13. cd ../php-5.x.y
14. cp php.ini-dist /usr/local/lib/php.ini

15. 可以编辑 /usr/local/lib/php.ini 文件以设置 PHP 选项。编辑 httpd.conf 或
    srm.conf 文件，添加：
    AddType application/x-httpd-php .php

Note: 对于 PHP 4，把 php-5 换成 php-4，把 php5 换成 php4。

根据 Unix 系统和 Apache 安装方法的不同，有很多方法停止和重启动 Apache。以下是一些不同的 Apache／UNIX 下重启动 Apache 的典型命令。需要把 /path/to/ 替换成自己系统上的确切路径。

Example #3 重启动 Apache 的示例命令

1. 在一些 Linux 和 SysV 的变种下：
/etc/rc.d/init.d/httpd restart

2. 使用 apachectl 脚本：
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl 和 httpsdctl（使用了 OpenSSL），类似 apachectl：
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. 使用了 mod_ssl，或其他 SSL 服务器，可能需要手工重启动：
/path/to/apachectl stop
/path/to/apachectl startssl

apachectl 和 http(s)dctl 程序所在的路径在不同系统中通常不一样。如果系统中有 locate 或者 whereis 或者 which 命令，那么可以帮助找到这些控制程序。

编译 PHP 和 Apache 的不同例子还有：

./configure --with-apxs --with-pgsql

此配置将生成在 Apache 的 httpd.conf 文件中用 LoadModule 加载的 libphp5.so 共享库（PHP 4 是 libphp4.so）。而 PostgreSQL 支持将嵌入到此共享库中。

./configure --with-apxs --with-pgsql=shared

此配置将生成 Apache 的 libphp5.so 共享库，并且还生成 pgsql.so 共享库，可以在 php.ini 文件中用 extension 指令加载，或者在 PHP 脚本中用 dl() 函数明确地加载。

./configure --with-apache=/path/to/apache_source --with-pgsql

此配置将生成 libmodphp5.a 库，mod_php5.c 和一些相关的文件并且拷贝到 Apache 源程序目录中的 src/modules/php5 目录下。然后用 --activate-module=src/modules/php5/libphp5.a 编译 Apache，Apache 编译系统会生成 libphp5.a 并且将其静态地连接到 httpd 程序中（在 PHP 4 中把 php5 替换成 php4）。PostgreSQL 支持也直接包括在这个 httpd 程序中了，因此最终结果是单一的一个包括了所有 Apache 和 PHP 支持的 httpd 可执行文件。

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

此配置和上面一样――除了没有在最后的 httpd 可执行文件中包括 PostgreSQL 的支持以及生成了一个 pgsql.so 共享库以外。该共享库可以在 php.ini 文件中或者用 dl() 函数加载。

当选择不同的方法编译 PHP 时，需要考虑每种方法的优势和缺点。用共享对象方式编译 PHP 意味着可以单独编译 Apache，并且不用在添加或修改了 PHP 的时候重新编译所有程序。用内置方法编译 PHP（静态方式）意味着 PHP 可以加载和运行得更快。更多信息见 Apache 的 » DSO 支持页面。

Note: Apache 默认的 httpd.conf 文件中目前包括类似如下的内容：

User nobody
Group "#-1"

除非把它修改成“Group nogroup”或者其它类似的（“Group daemon”也很通用），PHP 将不能打开文件。

Note: 确认在使用 --with-apxs=/path/to/apxs 时指向 Apache 安装后的目录中的 apxs。绝对不能用 Apache 源程序中的 apxs 而要用安装后的 apxs。

Unix 系统下的安装
Unix 系统下的 Apache 2.0
Unix 系统下的安装


Unix 系统下的 Apache 2.0

本节包括在 Unix 平台的 Apache 2.0 下安装 PHP 的说明和提示。

Warning

不推荐将线程化 MPM 用于实际运作的 Apache 2 环境中去。用 prefork MPM 替代，或者用 Apache 1。其原因见 FAQ 中的使用线程化 MPM 的 Apache2。

推荐阅读 » Apache 文档，了解一下 Apache 2.0 服务器。

Note: PHP 和 Apache 2.0.x 兼容性注意事项
已知下列版本的 PHP 可以工作于最近版本的 Apache 2.0.x 之下：

  • PHP 4.3.0 或更高版本，可从 » http://www.php.net/downloads.php 下载。
  • 最新的稳定开发版。取得源代码 » http://snaps.php.net/php5-latest.tar.gz 或下载 Windows 可执行程序 » http://snaps.php.net/win32/php5-win32-latest.zip。
  • 预发布版，可从 » http://qa.php.net/ 下载。
  • 总是可以通过» 匿名 CVS 取得 PHP。

以上版本的 PHP 与 Apache 2.0.40 或更高版本兼容。
Apache 2.0 SAPI 支持自 PHP 4.2.0 起。PHP 4.2.3 可工作于 2.0.39，不要用任何其它版本的 Apache 与 PHP 4.2.3 配合。不过推荐的设置是用 PHP 4.3.0 或更高版本与最新版的 Apache2 配合使用。
所有提及的 PHP 版本仍然能工作于 Apache 1.3.x 之下。

下载最新版本的 » Apache 2.0，并且根据上文选择合适版本的 PHP 下载。本向导仅包含最基础的内容，只能让 Apache 2.0 和 PHP 能够正常工作。更多信息请阅读 » Apache 文档。这里省略所有的版本号，以保证本文的正确性。需要将本文的“NN”替换为相应的版本号。

Example #1 安装说明（Apache 2 共享模块版本）

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    现在已经将 Apache 2.0.NN 安装在 /usr/local/apache。本安装支持可装载模块
    和标准的 MPM prefork。之后，可以使用如下命令启动 Apache 服务器：
    /usr/local/apache2/bin/apachectl start
    如果成功，可以停止 Apache 服务器并继续安装 PHP：
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php4-NN

10. 现在需要配置 PHP。在这里可以用各种各样的参数来自定义PHP，例如启动哪些
    扩展功能包的支持等。用 ./configure --help 命令可以列出当前可用的所有参
    数。在此例中，将给出一个在有 MySQL 支持的 Apache 2 上进行配置的范例。
    用户本地的 apxs 的路径可能会不同，事实上，在用户的系统中，它可能被命名为
    apxs2。

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs

11. make
12. make install

    如果决定在安装后改变配置选项，只需重复最后的三步，然后需要重新启动 Apache
    使新模块生效。无需重新编译。

    请注意，除非明确有提示，否则“make install”命令将安装 PEAR、各种 PHP 工具
    诸如 phpize，安装 PHP CLI 等等。

13. 配置 php.ini

    cp php.ini-dist /usr/local/lib/php.ini

    可以编辑 php.ini 文件以修改 PHP 的选项。如果想要把此文件放到另外的位置，
    需要在步骤 10 添加 --with-config-file-path=/path 选项。

    如果选择 php.ini -recommended，请务必阅读其中的变更的列表，它们将影响
    PHP 的执行。

14. 编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 表达式右边的路径必须指向
    系统中的 PHP。以上的 make install 命令可能已经完成了这些，但务必要检查。

    对于 PHP 4：
       LoadModule php4_module modules/libphp4.so

    对于 PHP 5：
       LoadModule php5_module modules/libphp5.so

15. 告知 Apache 将特定的扩展名解析成 PHP，例如，让 Apache 将扩展名 .php
    解析成 PHP。可以将任何扩展名指定为 PHP，只需添加它们，每一个用空格分隔。
    例如，要添加 .phtml：

    AddType application/x-httpd-php .php .phtml

    通常还将 .phps 扩展名设置成显示高亮的 PHP 源文件，可以这样来完成：

    AddType application/x-httpd-php-source .phps

16. 启动 Apache 服务器：
   /usr/local/apache2/bin/apachectl start

按照上面的步骤便可以使 Apache 2.0 将 PHP 作为 SAPI 模块了。当然 Apache 和 PHP 都还有很多配置选项，可以在相应的源代码目录中使用 ./configure --help 获得更多信息。假如要编译一个多线程版本的 Apache 2.0，必须覆盖标准的 MPM-Module prefork，或者 worker 或者 perchild。要这样，需要在上面的第 6 步使用 --with-mpm=worker 或者 --with-mpm=perchild 选项。之前需要了解自己在做什么。更多信息请参考 Apache 文档中关于 » MPM-Modules 的部分。

Note: 如果要使用内容协商（content negotiation）机制，请阅读 Apache MultiViews 常见问题。

Note: 要编译多线程版本的 Apache，系统必须支持多线程。这也意味着需要将 PHP 编译为正处在试验阶段的 Zend Thread Safety（ZTS），因此并不是所有的扩展都可以使用了。推荐编译 Apache 使用标准的 prefork MPM-Module。

Unix 系统下的 Apache 1.3.x
Caudium 服务器
Unix 系统下的安装


Caudium 服务器

PHP 4 可以被编译为 » Caudium web 服务器的一个 Pike 模块。注意 PHP 3 中不支持。请参考下面的安装说明以将 PHP 4 安装到 Caudium 服务器中。

Example #1 Caudium 安装指南

1.  在安装 PHP 4 之前请确认已经正确安装了 Caudium 服务器。
    要想使 PHP 4 正确的工作，还需要 Pike 7.0.268 或更高版本。
    为了方便起见，我们假定 Caudium 安装在 /opt/caudium/server/ 中。
2.  进入目录 php-x.y.z （x.y.z 是 PHP 的版本号）。
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  如果 Caudium 正在运行请重新启动它。
7.  登录图形配置界面，进入需要 PHP 4 支持的虚拟服务器。
8.  点击 Add Module 之后点击 locate，然后添加 PHP 4 脚本支持模块。
9.  如果出现“PHP 4 interpreter isn't available”的错误提示，
    请重新启动 web 服务器。如果还是不行，请检查
    /opt/caudium/logs/debug/default.1 中是否有与
    <filename>PHP4.so</filename> 文件相关的错误。也要查看
    <filename>caudium/server/lib/[pike-version]/PHP4.so</filename>
    这个文件是否存在。
10. 如果需要，请配置 PHP 脚本支持模块。

当然可以将各种 PHP 4 的扩展模块编译到 Caudium 服务器中。请参考扩展库各自配置选项的说明。

Note: 当编译 PHP 4 的 MySQL 的支持时，必须确认使用了正常的 MySQL 客户端代码。否则如果 Pike 已经支持 MySQL，就会产生冲突。应该在编译的时候使用 --with-mysql 选项指定 MySQL 的安装目录。

Unix 系统下的 Apache 2.0
fhttpd 服务器
Unix 系统下的安装


fhttpd 服务器

要将 PHP 作为 fhttpd 的模块来编译，在提示“Build as an fhttpd module?”时，回答“yes”（用 --with-fhttpd=DIR 来配置）并且指定 fhttpd 源代码的基本目录。默认的目录是 /usr/local/src/fhttpd。如果正在使用 fhttpd 服务器，将 PHP 编译成模块方式将提供更好的性能，更多的可控性以及远程执行能力。

Note: PHP 4.3.0 以后的版本已经不再提供对 fhttpd 的支持。

Caudium 服务器
Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器
Unix 系统下的安装


Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器

本节包含了在 Sun Solaris 平台的 Sun Java System web Server、Sun ONE web Server、iPlanet 和 Netscape 下安装 PHP 的说明和提示。

从 PHP 4.3.3 起，可以使用基于 NSAPI 模块 PHP 脚本来生成自定义目录列表和错误页面。更多与 Apache 兼容的功能也可以使用。要了解如何在当前的 web 服务器中支持此功能，请阅读关于子请求（subrequests）的注释。

可以在下面的链接中了解更多关于在 Netscape Enterprise Server（NES）中设置 PHP 的信息：» http://benoit.noss.free.fr/php/install-php4.html。

要在 Sun JSWS/Sun ONE WS/iPlanet/Netscape web 服务器中编译 PHP，请为 --with-nsapi=[DIR] 输入合适的安装目录。默认的目录通常是 /opt/netscape/suitespot/。还可以阅读 /php-xxx-version/sapi/nsapi/nsapi-readme.txt。

  1. 从 » http://www.sunfreeware.com/ 或其它下载站点安装下面的软件包：

    • autoconf-2.13
    • automake-1.4
    • bison-1_25-sol26-sparc-local
    • flex-2_5_4a-sol26-sparc-local
    • gcc-2_95_2-sol26-sparc-local
    • gzip-1.2.4-sol26-sparc-local
    • m4-1_4-sol26-sparc-local
    • make-3_76_1-sol26-sparc-local
    • mysql-3.23.24-beta（如果想要 mysql 支持）
    • perl-5_005_03-sol26-sparc-local
    • tar-1.13 (GNU tar)

  2. 请确认 PATH 变量包含适当的目录 PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin，并使用 export PATH 命令将其导出为环境变量。
  3. gunzip php-x.x.x.tar.gz （如果使用 .gz 版本，否则跳到 4）
  4. tar xvf php-x.x.x.tar
  5. 进入 PHP 解压缩后的目录：cd ../php-x.x.x

  6. 在下面的步骤中，请确认 Netscape 服务器安装在 /opt/netscape/suitespot/ 目录中。否则，将下面命令中的该路径修改为正确的路径并运行：

    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. 运行 make，然后运行 make install。

在执行了基础的安装并阅读相应的 Readme 文件后，还需要执行一些额外的配置步骤。

Sun/iPlanet/Netscape 的配置说明

首先需要为 LD_LIBRARY_PATH 环境变量添加一些路径，以便服务器找到所需的共享库。可以使用 web 服务器的启动脚本很好的完成这一工作。启动脚本通常位于：/path/to/server/https-servername/start。或许需要编辑其配置文件，它位于：/path/to/server/https-servername/config/。

  1. 添加下面一行到 mime.types（可以在管理服务器中添加）：

    type=magnus-internal/x-httpd-php exts=php

  2. 编辑 magnus.conf( 若服务器 >= 6）或 obj.conf（若服务器 < 6）并添加下述内容。shlib 的值根据系统的配置会有所不同。它可能类似于 /opt/netscape/suitespot/bin/libphp4.so。应该在 mime types init 后添加如下两行内容：

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]

    （PHP >= 4.3.3）php_ini 参数是可选的。但是若使用它，便可以将 php.ini 放到 web 服务器的配置目录中去。

  3. 在 obj.conf 中配置默认对象（对于虚拟服务器的类 [版本 6.0+] 是在 vserver.obj.conf 中）：

    <Object name="default">
.
.
.
.#注意 下面一行添加在所有“ObjectType”之后，所有“AddLog”之前
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>

    （PHP >= 4.3.3）作为附加的参数，可以在 php.ini 中添加一些特别的配置选项。例如可以设置 docroot="/path/to/docroot" 指向 php4_execute 被调用的上下文（context）。对于布尔 ini 键值，请使用 0/1 作为其值，而不是 "On"、"Off" 等（它们是无效的），例如，使用 zlib.output_compression=1，而不应使用 zlib.output_compression="On"。

  4. 本步骤仅在需要配置一个由 PHP 脚本组成的目录时由必要执行（类似于一个 cgi-bin 目录）：

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>

    之后，可以在管理服务器中配置一个目录，分配给它 x-httpd-php 风格（style）。这样在该目录中的所有文件都会被当作 PHP 来执行。这样就能很方便的将 PHP 文件更名为 .html 以隐藏 PHP。

  5. 认证的设置：PHP 认证不能与其它任何类型的认证一起工作。所有认证被传递到 PHP 脚本。要为整个服务器配置 PHP 认证，在默认对象中添加下面一行：

    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. 要在单一目录使用 PHP 认证，添加如下内容：

    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Note: PHP 使用的堆栈大小取决于 web 服务器的配置。如果运行很大的 PHP 脚本时程序崩溃，推荐在 Admin Server（在“MAGNUS EDITOR”一节）中增大此项。

CGI 环境和对 php.ini 推荐的修改

当编写 PHP 脚本时，应特别注意 Sun JSWS/Sun ONE WS/iPlanet/Netscape 是一个多线程 web 服务器。因此，所有请求都运行在相同的进程空间（Web 服务器自己的空间），该空间仅有一套环境变量。如果想获得 CGI 变量，例如 PATH_INFO、HTTP_HOST 等，使用原有的 PHP 3.x 的方式（getenv()），或使用类似的方式（注册全局变量到环境变量， $_ENV），都是不可行的。只能获得运行中的 web 服务器的环境变量，而不能获得任何有效的 CGI 变量！

Note: 为什么在环境中存在（无效的）CGI 变量？
答：这是因为从管理服务器中启动 web 服务器进程时，运行了 web 服务器的启动脚本，它事实上是一个 CGI 脚本（管理服务器中的一个 CGI 脚本！）。这便是为什么启动的 web 服务器包含一些 CGI 变量。可以尝试不从管理服务器启动 web 服务器，用 root 用户登录使用命令行手动启动它，会发现这些 CGI 形式的变量不复存在。

要在 PHP 4.x 中正确获得 CGI 变量，仅需修改脚本使用超级全局变量 $_SERVER。如果老脚本中使用了 $HTTP_HOST 等变量，应该在 php.ini 中打开 register_globals，并且要修改变量顺序（注意：从中删除 "E"，因为不需要这里的环境变量）：

variables_order = "GPCS"
register_globals = On

错误页面及自造目录列表的特别使用 (PHP >= 4.3.3)

可以使用 PHP 为 "404 Not Found" 或类似的错误代码生成错误页面。将下面几行添加到 obj.conf 中以覆盖默认的错误页面：

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]

XXX 是 HTTP 错误代码。请删除任何可能干扰 Error 设置的指令。如果想为所有可能存在的错误提供一个页面，则将 code 参数删除。脚本可以通过 $_SERVER['ERROR_TYPE'] 获得 HTTP 状态代码。

另一种可能是生成自造目录列表。只要创建一个 PHP 脚本，来显示目录列表 并在 obj.conf 中为 type="magnus-internal/directory" 将相应的默认 Service 行替换为：

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]

错误和目录列表页面中，原始的 URI 和翻译的 URI 均被分别储存在 $_SERVER['PATH_INFO'] 和 $_SERVER['PATH_TRANSLATED'] 变量中。

关于 nsapi_virtual() 和子请求的注意事项（PHP >= 4.3.3）

NSAPI 模块现在支持 nsapi_virtual() 函数（别名：virtual()），用来在 web 服务器上创建子请求（subrequests）和在 web 页面插入请求的结果。此函数使用了一些 NSAPI 中还没有文档说明的函数。在 Unix 下，该模块自动查找需要的函数，若它们存在则使用它们。若不存在，函数 nsapi_virtual() 被禁用。

Note: 但是要注意，对 nsapi_virtual() 的支持是试验性质的！

fhttpd 服务器
CGI 和命令行设置
Unix 系统下的安装


CGI 和命令行设置

默认为将 PHP 编译为 CGI 程序。这将建立一个命令行解释器，可用于 CGI 处理或非 web 相关的 PHP 脚本。如果用户运行着一个 PHP 模块支持的 web 服务器，那通常为性能考虑应该使用模块方式。不过，CGI 版可以使 Apache 用户用不同的用户 ID 运行不同的 PHP 页面。

Warning

如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

自 PHP 4.3.0 起，PHP 有了一些重要的新增功能。又有了一个新的 SAPI 称为 CLI，和 CGI 程序同名。根据配置选项它安装在 {PREFIX}/bin/php，并在手册中 PHP 的命令行模式一章中有详细说明。更多细节请阅读该章节。

测试

如果将 PHP 编译为 CGI 程序，可以通过键入 make test 来测试你的编译。测试一下编译永远是个好主意。这样就可以在你的平台上及早捕捉到 PHP 的问题而不是以后再费力的解决。

基准测试

如果将 PHP 3 编译为 CGI 程序，可以通过键入 make bench 来进行一下性能的基准测试。注意如果默认打开了安全模式，则超过 30 秒的允许范围测试可能不能完成。这是因为 set_time_limit() 不能用于安全模式。用 max_execution_time 配置选项来为你自己的脚本控制此时间限制。make bench 会忽略配置文件。

Note: make bench 仅能用于 PHP 3。

使用变量

某些服务器提供的环境变量没有定义在当前的 » CGI/1.1 标准中。只有下列变量定义在其中：AUTH_TYPE，CONTENT_LENGTH，CONTENT_TYPE，GATEWAY_INTERFACE，PATH_INFO，PATH_TRANSLATED，QUERY_STRING，REMOTE_ADDR，REMOTE_HOST，REMOTE_IDENT，REMOTE_USER，REQUEST_METHOD，SCRIPT_NAME，SERVER_NAME，SERVER_PORT，SERVER_PROTOCOL 和 SERVER_SOFTWARE。其它的变量均作为“供应商扩展（vendor extensions）”来对待。

Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器
在 HP-UX 系统下的安装
Unix 系统下的安装


在 HP-UX 系统下的安装

本章节的内容和提示仅限于将 PHP 安装到 HP-UX 系统上（此文章是由 paul_mckay at clearwater-it dot co dot uk 编写的）。

Note: 本文涉及的技巧适用于 PHP 4.0.4 和 Apache 1.3.9。

  1. 安装 PHP 需要一个 gzip，可以从如下地址得到该软件的二进制版本的发行包 http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z，下载后解压缩，并且使用 swinstall 安装。

  2. 安装 PHP 需要 gcc，可以从如下地址得到该软件的二进制版本的发行包 http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz，解压缩这个文件，使用 swinstall 安装 gcc。

  3. 安装 PHP 需要 GNU binutils，可以从如下地址得到该软件的二进制版本的发行包 http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz，解压缩这个文件，使用 swinstall 安装 binutils。

  4. 安装 PHP 需要 bison，可以从如下地址得到该软件的二进制版本的发行包 http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz，安装方式同上。

  5. 安装 PHP 需要 flex，需要从 http://www.gnu.org 的镜像站点下载一个该软件的源代码。它被放置于一个 非 gnu 目录的 ftp 服务器上。下载这个文件，并且使用 gunzip 解压缩，然后执行 tar -xvf。进入新创建的 flex 目录并运行 ./configure，再执行 make 以及 make install。

    如果这里出现了错误，很可能是由于 gcc 等工具不在路径中，应将其添加到环境变量 PATH 中。

  6. 下载 PHP 和 apache 的源代码。

  7. 下载后对他们分别执行 gunzip 和 tar -xvf。在开始编译他们之前我们需要修改一些文件。

  8. 首先 configure 文件需要被修改，因为它似乎忘记自己是在 hpux 系统下了，有更好的方法解决此问题，但最省事的是在配置脚本的第 47286 行加入 lt_target=hpux10.20。

  9. 其次是修改 Apache GuessOS 文件。在文件 apache_1.3.9/src/helpers 的第 89 行，将参数 echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 替换为 echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0。

  10. 不能把 PHP 作为共享对象方式安装到 HP-UX， 因此你必须将其编译成为一个静态方式，参照 Apache 站点的指导就可以完成。

  11. 这样就完成了 PHP 和 Apache 的 安装编译，然而 Apache 将仍然不能启动，必须为 Apache 配置一个新的用户名，例如 www 或 apache。然后修改 Apache 配置文件 conf/httpd.conf 的 252 和 253 行，由原来的

    User nobody
    Group nogroup

    替换为类似如下的内容

    User www
    Group sys

    这是因为在 hp-ux 系统下， Apache 不能作为 nobody 用户运行。按照上面的方式配置 Apache 和 PHP 就应该可以正常工作了。

CGI 和命令行设置
在 OpenBSD 系统下的安装
Unix 系统下的安装


在 OpenBSD 系统下的安装

本章节的内容和提示仅限于将 PHP 安装到 » OpenBSD 3.6 系统上。

使用二进制包安装

使用二进制包安装 PHP 到 OpenBSD 系统上是被推荐的同时也是最简单的方法。PHP 核心包已经从其他模块中分离出来了并且每个模块可以被独立的安装／卸载而不影响其他模块。所有这些安装 PHP 需要的文件可以在 OpenBSD 光盘或者在 FTP 站点上找到。

需要安装的 PHP 核心包的文件是 php4-core-4.3.8.tgz，它包含了基本的引擎（包括 gettext 和 iconv）。其次，可能还需要安装一些模块包，如：php4-mysql-4.3.8.tgz 或 php4-imap-4.3.8.tgz。需要使用命令 phpxs 去激活它，并且再通过修改 php.ini 文件来屏蔽他们。

Example #1 在 OpenBSD 系统下的软件包的安装示例

# pkg_add php4-core-4.3.8.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  （加入 mysql 包）
# pkg_add php4-mysql-4.3.8.tgz
# /usr/local/sbin/phpxs -a mysql
  （加入 imap 包）
# pkg_add php4-imap-4.3.8.tgz
# /usr/local/sbin/phpxs -a imap
  （测试一下删除 mysql 包）
# pkg_delete php4-mysql-4.3.8
# /usr/local/sbin/phpxs -r mysql
  （安装 PEAR 库）
# pkg_add php4-pear-4.3.8.tgz

阅读用户手册中的 » packages(7) 部分，可以得到更多 OpenBSD 系统下有关二进制软件包的信息.

使用软件包

同样可以使用» 软件包目录（ports tree）来编译 PHP 的源代码。然而，这样的安装方式仅仅是建议对 OpenBSD 非常熟悉的高级用户去做。PHP4 的软件包被分别分为了两个子目录：core 和 extensions。其中 extensions 目录产生了所有 PHP 所支持的子模块。如果不希望创建并且使用这些模块中的某些模块，请使用 FLAVOR no_* 参数。例如，如果希望跳过编译 imap 模块，设置 FLAVOR 为 no_imap 即可。

常见问题

  • 默认安装的 Apache 运行于 » chroot(2) jail，将限制 PHP 脚本只能访问 /var/www 下面的文件。需要建立 /var/www/tmp 目录来存放 PHP session 文件，或使用其它的 session 后端。此外，数据库套接字需要被放入 jail 或者侦听 localhost 接口。如果使用网络函数，某些 /etc 下面的文件例如 /etc/resolv.conf 和 /etc/services 需要被移动到 /var/www/etc 中去。OpenBSD PEAR 包会自动安装到正确的 chroot 目录中，因此不需要作特殊改动。有关 OpenBSD Apache 的更多信息见 » OpenBSD FAQ。
  • 对应于 » gd 扩展的 OpenBSD 3.6 包需要预先安装 XFree86。如果不想使用那些需要 X11 的字体特性，则安装 php4-gd-4.3.8-no_x11.tgz 包来替代之。

早期发布版本

早期的 OpenBSD 系统使用 FLAVORS 系统把 PHP 连接为静态模式。自从使用这种方法编译就造成了问题：很难制作二进制软件包。仍然可以使用早期稳定的 ports trees，但这种方式已经不被 OpenBSD 小组所支持。如果对此有任何建议和意见，软件包当前的维护人是 Anil Madhavapeddy（avsm at openbsd dot org）。

在 HP-UX 系统下的安装
在 Solaris 下的安装
Unix 系统下的安装


在 Solaris 下的安装

本节包含了在 Solaris 系统上安装 PHP 的说明和提示。

需要的软件

默认安装的 Solaris 系统经常缺少 C 语言编译器和其相关工具。部分工具必须使用该工具的 GNU 版本，原因请阅读 FAQ。 下面是需要的软件：

  • gcc（推荐使用，其它 C 语言编译器也可以工作）
  • make
  • flex
  • bison
  • m4
  • autoconf
  • automake
  • perl
  • gzip
  • tar
  • GNU sed

此外，还需要安装（或编译）在配置时定义的所有额外软件，比如说 Oracle 或 MySQL。

使用软件包

可以使用 pkgadd 来安装大部分需要的软件来简化 Solaris 安装过程。

在 OpenBSD 系统下的安装
Debian GNU/Linux 安装说明
Unix 系统下的安装


Debian GNU/Linux 安装说明

本节包含了在 » Debian GNU/Linux 下安装 PHP 的说明和提示。

使用 APT

当然可以下载 PHP 源代码并自己编译，不过使用 Debian 的软件包系统是安装 PHP 的最简单和最干净利落的方法。如果不熟悉在 Linux 下编译软件，那最好用此方法。

首先要决定是安装 Apache 1.3.x 还是 Apache 2.x。相对应的 PHP 软件包名字为 libapache-mod-php* 和 libapache2-mod-php*。以下步骤以 Apache 1.3.x 为例。注意迄今为止，还没有 PHP 5 的正式的 Debian 软件包。以下步骤将安装 PHP 4。

PHP 在 Debian 下也有 CGI 和 CLI 两种风格，分别命名为 php4-cgi 和 php4-cli。如果需要的话，只要用正确的软件包名称重复以下步骤。另外需要安装的一个特殊软件包是 php4-pear。它包含了最小的 PEAR 安装以及 pear 命令行工具。

如果需要比 Debian 的稳定版本更新的 PHP 包或者一些不在 Debian 官方库中的 PHP 模块，那应该看看 » http://www.apt-get.org/。其中可以找到一个 » Dotdeb。此非官方库是由 » Guillaume Plessis 负责维护，其中包含了最新版 PHP 4 和 PHP 5 的 Debian 软件包。要使用，只需将以下两行添加到 /etc/apt/sources.lists 并运行 apt-get update：

Example #1 Dotdeb 有关的两行

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

最后要考虑的是自己的软件包列表是否是最新版。如果最近没有更新过，那需要在做任何事之前先 apt-get update。这样就可以使用最近稳定版的 Apache 和 PHP 软件包了。

所有准备做好之后，就可以按照下面的例子来安装 Apache 和 PHP：

Example #2 Debian 中在 Apache 1.3 下安装的例子

# apt-get install libapache-mod-php4

APT 将自动安装 Apache 1.3 的 PHP 4 模块以及所有依赖的库并激活之。如果在安装过程中没有被要求重启动 Apache，那必须手工进行：

Example #3 安装完 PHP 4 后停止并启动 Apache

# /etc/init.d/apache stop
# /etc/init.d/apache start

更好地控制配置

上一节中 PHP 仅安装了核心模块。但可能不够用，用户很快就会发现需要更多的激活模块，例如 MySQL，cURL，GD 等。

当自己从源代码编译 PHP 时，需要通过 configure 命令来激活模块。用 APT 则只需安装附加的软件包。这些包都命名为“php4-*”（或“php5-*”，如果安装了第三方的 PHP 5 的话）。

Example #4 取得 PHP 附加软件包的列表

# dpkg -l 'php4-*'

从上面的输出中可以看到，还有很多 PHP 模块可安装（除了 php4-cgi，php4-cli 或 php4-pear 这些特殊软件包）。仔细察看并安装自己所需要的。如果选择了一个模块而没有相应的库，APT 会自动安装所有依赖的库。

如果选择将 MySQL，cURL 和 GD 支持添加到 PHP 中，则其命令类似于：

Example #5 安装 PHP 的 MySQL，cURL 和 GD 支持

# apt-get install php4-mysql php4-curl php4-gd

APT 会自动把适当的行添加到不同的 php.ini（/etc/php4/apache/php.ini，/etc/php4/cgi/php.ini 等）中去。

Example #6 在 PHP 中激活 MySQL，cURL 和 GD 的配置行

extension=mysql.so
extension=curl.so
extension=gd.so

只需像之前那样重新启动 Apache 来激活这些模块。

常见问题

  • 如果看到了 PHP 源代码而不是脚本应该产生的结果，则 APT 可能没有 /etc/apache/conf.d/php4 包括到 Apache 1.3 配置中去。请确保下面一行出现在 /etc/apache/httpd.conf 文件中并重启动 Apache：

    Example #7 下面这行在 Apache 中激活了 PHP 4

    # Include /etc/apache/conf.d/
  • 如果安装了更多模块但其函数不能在脚本中使用，请确保相应的配置行出现在 php.ini 中，如上面所说。APT 可能会由于混乱的 debconf 配置而在安装附加模块时失败。
在 Solaris 下的安装
Mac OS X 系统下的安装
Unix 系统下的安装


Mac OS X 系统下的安装

Table of Contents

  • 使用软件包
  • Using the bundled PHP
  • 在 Mac OS X 服务器版编译
  • 在 Mac OS X 客户版编译

本章包括在 Mac OS X 平台下安装 PHP 的说明和提示。Mac OS X 有两个不同的版本，客户版和服务器版，本手册两者均会介绍。请注意 PHP 不能在 Mac OS 9 和更早版本下运行。

Debian GNU/Linux 安装说明
使用软件包
安装与配置


使用软件包

Mac OS X 下有几个预编译和打包的 PHP 版本。可以通过它使用标准的配置的 PHP，但是若需要不同的功能集（比如一个安全服务器，或者一个不同的数据库驱动程序），可能需要自己编译 PHP 和／或 web 服务器。如果不熟悉如何自己编译软件，可以试着找一下包含自己所需功能的 PHP 预编译版本。

下面的资源提供了在 Mac OS 上易于安装的软件包和预编译的二进制 PHP。

  • Darwin: » http://darwinports.opendarwin.org/
  • Entropy: » http://www.entropy.ch/software/macosx/php/
  • Fink: » http://fink.sourceforge.net/

Mac OS X 系统下的安装
Using the bundled PHP
Mac OS X 系统下的安装


Using the bundled PHP

PHP has come standard with Macs since OS X version 10.0.0. Enabling PHP with the default web server requires uncommenting a few lines in the Apache configuration file httpd.conf whereas the CGI and/or CLI are enabled by default (easily accessible via the Terminal program).

Enabling PHP using the instructions below is meant for quickly setting up a local development environment. It's highly recommended to always upgrade PHP to the newest version. Like most live software, newer versions are created to fix bugs and add features and PHP being is no different. See the appropriate MAC OS X installation documentation for further details. The following instructions are geared towards a beginner with details provided for getting a default setup to work. All users are encouraged to compile, or install a new packaged version.

The standard installation type is using mod_php, and enabling the bundled mod_php on Mac OS X for the Apache web server (the default web server, that is accessible via System Preferences) involves the following steps:

  1. Locate and open the Apache configuration file. By default, the location is as follows: /etc/httpd/httpd.conf Using Finder or Spotlight to find this file may prove difficult as by default it's private and owned by the root user.

    Note: One way to open this is by using a Unix based text editor in the Terminal, for example nano, and because the file is owned by root we'll use the sudo command to open it (as root) so for example type the following into the Terminal Application (after, it will prompt for a password): sudo nano /etc/httpd/httpd.conf Noteworthy nano commands: ^w (search), ^o (save), and ^x (exit) where ^ represents the Ctrl key.

  2. With a text editor, uncomment the lines (by removing the #) that look similar to the following (these two lines are often not together, locate them both in the file):

    # LoadModule php5_module libexec/httpd/libphp5.so

# AddModule mod_php5.c
    Notice the location/path. When building PHP in the future, the above files should be replaced or commented out.

  3. Be sure the desired extensions will parse as PHP (examples: .php .html and .inc)

    Due to the following statement already existing in httpd.conf (as of Mac Panther), once PHP is enabled the .php files will automatically parse as PHP.

    <IfModule mod_php5.c>
    # If php is turned on, we respect .php and .phps files.
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Since most users will want index.php to work we
    # also automatically enable index.php
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

    Note: Before OS X 10.5 (Leopard), PHP 4 was bundled instead of PHP 5 in which case the above instructions will differ slightly by changing 5's to 4's.

  4. Be sure the DirectoryIndex loads the desired default index file This is also set in httpd.conf. Typically index.php and index.html are used. By default index.php is enabled because it's also in the PHP check shown above. Adjust accordingly.
  5. Set the php.ini location or use the default A typical default location on Mac OS X is /usr/local/php/php.ini and a call to phpinfo() will reveal this information. If a php.ini is not used, PHP will use all default values. See also the related FAQ on finding php.ini.
  6. Locate or set the DocumentRoot This is the root directory for all the web files. Files in this directory are served from the web server so the PHP files will parse as PHP before outputting them to the browser. A typical default path is /Library/WebServer/Documents but this can be set to anything in httpd.conf. Alternatively, the default DocumentRoot for individual users is /Users/yourusername/Sites
  7. Create a phpinfo() file

    The phpinfo() function will display information about PHP. Consider creating a file in the DocumentRoot with the following PHP code:

    <?php phpinfo(); ?>

  8. Restart Apache, and load the PHP file created above To restart, either execute sudo apachectl graceful in the shell or stop/start the "Personal Web Server" option in the OS X System Preferences. By default, loading local files in the browser will have an URL like so: http://localhost/info.php Or using the DocumentRoot in the user directory is another option and would end up looking like: http://localhost/~yourusername/info.php

The CLI (or CGI in older versions) is appropriately named php and likely exists as /usr/bin/php. Open up the terminal, read the command line section of the PHP manual, and execute php -v to check the PHP version of this PHP binary. A call to phpinfo() will also reveal this information.

使用软件包
在 Mac OS X 服务器版编译
Mac OS X 系统下的安装


在 Mac OS X 服务器版编译

Mac OS X 服务器安装

  1. 获得最新版本的 Apache 和 PHP。

  2. 将它们的 tar 包解压，然后如下运行 Apache 的 configure 程序。

    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache

  3. 如果想对编译做些优化，可以添加下面一行：

    setenv OPTIM=-O2

  4. 接下来，进入 PHP 4 源代码目录，并进行 configure 操作。

    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12

    如果需要其它附加功能（MySQL、GD 等），务必将它们添加到这里。对于 --with-apache 参数，需要将其路径指向 Apache 源代码目录，例如 /src/apache_1.3.12。

  5. 输入 make 和 make install。这样在 Apache 源代码目录中会创建一名为 src/modules/php4 的目录。

  6. 现在，重新配置 Apache 以编译 PHP 4。

    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache \
--activate-module=src/modules/php4/libphp4.a

    可能会被告知 libmodphp4.a 太旧了。如果出现这个情况，进入 Apache 源代码目录中的 src/modules/php4 目录，并运行该命令： ranlib libmodphp4.a。然后返回到 Apache 源代码根目录，再次运行上面的 configure 命令。这样便会更新连接表。然后再次运行 make 和 make install 命令。

  7. 从 PHP 4 源代码目录复制并重命名 php.ini-dist 文件到 bin 目录：cp php.ini-dist /usr/local/bin/php.ini 或（如果没有 local 目录）cp php.ini-dist /usr/bin/php.ini 。

Using the bundled PHP
在 Mac OS X 客户版编译
Mac OS X 系统下的安装


在 Mac OS X 客户版编译

以下说明将会帮助在 Mac OS X 下为 Apache 服务器安装 PHP 模块，并添加 MySQL 和 PostgreSQL 的支持。本说明是由 » Marc Liyanage 提供的。

Warning

请注意，在按照下面的步骤操作时，应该停止 Apache 服务器！

按照下面的步骤安装：

  1. 打开终端窗口。
  2. 输入 wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz ，等待下载完毕。
  3. 输入 gunzip libphp4.so.gz 。
  4. 输入 sudo apxs -i -a -n php4 libphp4.so 。

  5. 现在输入 sudo open -a TextEdit /etc/httpd/httpd.conf 。TextEdit 将把 web 服务器的配置文件打开。在文件的末尾找到下面两行（使用查找命令）：

    #AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

    将它们前面的两个井号（#）去掉，然后保存文件并退出 TextEdit。

  6. 最后，输入 sudo apachectl graceful 重新启动 web 服务器。

PHP 现在应该已经配置好，并且正在运行了。可以在 Sites 文件夹创建一名为 test.php 的文件。该文件的内容为： <?php phpinfo() ?>。

现在在 web 浏览器浏览 127.0.0.1/~your_username/test.php。应该可以看到一个表格列出了 PHP 模块的信息。

在 Mac OS X 服务器版编译
Windows 系统下的安装
Mac OS X 系统下的安装


Windows 系统下的安装

Table of Contents

  • Windows 安装程序
  • 手工安装步骤
  • ActiveScript
  • Microsoft IIS／PWS
  • Microsoft Windows 下的 Apache 1.3.x
  • Microsoft Windows 下的 Apache 2.0.x
  • Microsoft Windows 下的 Sun，iPlanet 和 Netscape 服务器
  • OmniHTTPd Server
  • Microsoft Windows 下的 Sambar 服务器
  • Microsoft Windows 下的 Xitami
  • 从源程序编译
  • Windows 下安装扩展库

本节内容适用于 Windows 98/Me 以及 Windows NT/2000/XP/2003。PHP 不能在 16 位平台例如 Windows 3.1 下运行。有时把支持 PHP 的 Windows 平台称为 Win32。自 PHP 4.3.0 开始不再支持 Windows 95。

有两种方法在 Windows 下安装 PHP：手工安装或者使用安装程序安装。

如果有 Microsoft Visual Studio，也可以编译 PHP 的源程序。

一旦在 Windows 系统下安装好 PHP 之后，可能需要加载各种扩展库以实现更多的功能。

Warning

互联网上还有一些多合一的安装程序，但是它们没有一个是被 PHP.net 认可的，因为我们相信，手动安装是系统安全和优化的最好选择。

在 Mac OS X 客户版编译
Windows 安装程序
安装与配置


Windows 安装程序

PHP 的 Windows 安装程序可以在 » http://www.php.net/downloads.php 下载。它会为 IIS、PWS 和 Xitami 安装 CGI 版本的 PHP，并配置好 web 服务器。该安装程序不包含任何外部的 PHP 扩展（PHP_*.dll）。如果需要，可以在 Windows ZIP 包和 PECL 中找到。

Note: 虽然 Windows 安装程序是让 PHP 工作的最容易的方法，但是它有很多限制。例如，它不支持自动安装 PHP 扩展。使用安装程序安装 PHP 不是最好的方式。

首先，在系统中安装自己选择的 HTTP（web）服务器，并确认它正常工作。

运行安装程序，按照向导说明一步步安装。它支持两种安装类型：标准，将使用合理的默认配置进行安装；高级，会在配置中询问几个问题。

安装向导会收集足够的信息来设置 php.ini 文件，并配置好 web 浏览器以使用 PHP。PHP 安装程序不能自动配置 Apache，因此需要手动进行配置。

一旦安装完成，安装程序会提示重新启动系统，重启服务器，或直接开始使用 PHP。

Warning

请注意，这种安装方式安装的 PHP 不是安全的。如果需要一个安全的 PHP 设置，最好使用手动方式安装，并手动设置好每个选项。该自动安装程序能够让用户立即使用 PHP，但是这不意味着可以用于在线的服务器中。

Windows 系统下的安装
手工安装步骤
Windows 系统下的安装


手工安装步骤

本安装指南指导手动在一个 Microsoft Windows 的 web 服务器下安装和配置 PHP。安装前需要从 » http://www.php.net/downloads.php 下载 PHP 的 ZIP 二进制发布包。

虽然目前有很多多合一的安装包，而且也发布了一个 Microsoft Windows 的 PHP 安装程序，但是仍然建议用户花些时间自己手动安装 PHP。因为这样才可以更加了解这套系统，并能够在需要的时候更方便的安装 PHP 扩展。

Note: 从旧版本的 PHP 升级
上一版的手册建议将 ini 和多个 DLL 文件移动到系统文件夹（例如 C:\WINDOWS）。这一步骤虽然简化了安装过程，却导致升级上的困难。建议在使用新版本的 PHP 前删除所有这些文件（比如从 Windows 系统文件夹删除 php.ini 和 PHP 相关的 DLL 文件）。务必在删除前备份这些文件，因为这一操作可能破坏整个系统。原有的 php.ini 在安装新版本的 PHP 时也可用来参考。不久用户便会明白，安装 PHP 最好的方式便是将所有 PHP 有关的文件都放入同一目录，并在系统的 PATH 环境变量中设置此目录。

Note: MDAC 需求
如果使用 Microsoft Windows 98/NT4，需要下载适用于系统最新版本的 Microsoft Data Access Components（MDAC）。MDAC 可在 » http://msdn.microsoft.com/data/ 下载。需要 MDAC 的原因是 Windows 二进制包中编译进了 ODBC 支持。

不论何种 web 服务器，都需要先进行以下步骤：

将 PHP 压缩包释放到选择的目录中。若使用 PHP 4，可以解压缩到 C:\，压缩包会被释放到一个类似 php-4.3.7-Win32 的新目录中。若使用 PHP 5，请解压缩到 C:\php，因为其 ZIP 包内没有类似 php-4.3.7-Win32 的目录信息。可以选择其它的路径但最好不要用中间有空格的路径（例如：C:\Program Files\PHP 就不太好），如果这样做有些 web 服务器会崩溃。

解压缩后的目录对应 PHP 4 和 5 是不同的。它们的目录结构分别为：

Example #1 PHP 4 目录结构

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- CLI 可执行程序 - 仅使用在命令行脚本
   |
   +--dlls                -- 某些扩展需要的 DLL 文件
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- PHP 的扩展 DLL 文件
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- SNMP 支持文件
   |
   +--openssl             -- Openssl 支持文件
   |
   +--pdf-related         -- PDF 支持文件
   |
   +--sapi                -- SAPI（服务器模块支持）DLL 文件
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-..
   |
   +--PEAR                -- PEAR 的初始复本
   |
   |
   |-go-pear.bat          -- PEAR 安装脚本
   |
   |-..
   |
   |-php.exe              -- CGI 可执行文件
   |
   |-..
   |
   |-php.ini-dist         -- 默认的 php.ini 设置
   |
   |-php.ini-recommended  -- 推荐的 php.ini 设置
   |
   |-php4ts.dll           -- 核心 PHP DLL 文件
   |
   |-...

或：

Example #2 PHP 5 目录结构

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib
   |
   +--ext                 -- PHP 的扩展 DLL 文件
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--extras
   |  |
   |  +--mibs             -- SNMP 支持文件
   |  |
   |  +--openssl          -- Openssl 支持文件
   |  |
   |  +--pdf-related      -- PDF 支持文件
   |  |
   |  |-mime.magic
   |
   +--pear                -- PEAR 的初始复本
   |
   |
   |-go-pear.bat          -- PEAR 安装脚本
   |
   |-fdftk.dll
   |
   |-..
   |
   |-php-cgi.exe          -- CGI 可执行文件
   |
   |-php-win.exe          -- 执行脚本时不弹出命令提示行窗口
   |
   |-php.exe              -- CLI 可执行程序 - 仅使用在命令行脚本
   |
   |-..
   |
   |-php.ini-dist         -- 默认的 php.ini 设置
   |
   |-php.ini-recommended  -- 推荐 php.ini 设置
   |
   |-php5activescript.dll
   |
   |-php5apache.dll
   |
   |-php5apache2.dll
   |
   |-..
   |
   |-php5ts.dll           -- 核心 PHP DLL 文件
   |
   |-...

请注意它们之间的不同和相似之处。PHP 4 和 PHP 5 都有一个 CGI 可执行文件、一个 CLI 可执行文件和服务器模块，但是它们位于不同的文件夹和／或有着不同的命名。PHP 4 将服务器模块放在 sapi 文件夹，而 PHP 5 并没有此目录，它的服务器模块文件位于 PHP 根文件夹中。PHP 5 的扩展支持 DLL 文件也并没有放在一个单独的目录中。

Note: 在 PHP 4 中，需要将位于 dll 和 sapi 文件夹中的文件移动到主文件夹中（例如 C:\php）。

下面是 PHP 4 和 PHP 5 附带的服务器模块列表：

  • sapi/php4activescript.dll (php5activescript.dll) - ActiveScript 引擎，允许将 PHP 嵌入 Windows 应用程序中。

  • sapi/php4apache.dll（php5apache.dll） - Apache 1.3.x 模块。

  • sapi/php4apache2.dll（php5apache2.dll） - Apache 2.0.x 模块。

  • sapi/php4isapi.dll（php5isapi.dll） - ISAPI 模块，支持 ISAPI 兼容的 web 服务器，比如 IIS 4.0/PWS 4.0 或更新版本。

  • sapi/php4nsapi.dll（php5nsapi.dll） - Sun/iPlanet/Netscape 服务器模块。

  • sapi/php4pi3web.dll（PHP 5 无此模块） - Pi3Web 服务器模块。

服务器模块比 CGI 可执行程序提供了更好的性能和更多的功能。CLI 版本是为使用 PHP 命令行脚本而设计的。关于 CLI 的更多信息可以在 PHP 的命令行模式一章中找到。

Warning

SAPI 模块在 4.1 中有较多的增强。但是，在老系统中可能会产生服务器错误，或导致服务器的其它模块停止工作，比如 ASP。

CGI 和 CLI 可执行文件以及 web 服务器模块都需要 php4ts.dll（php5ts.dll）。必须确认该文件可以在 PHP 安装路径中找到。对该 DLL 的搜索顺序为：

  • 调用 php.exe 时所在的目录，或者若使用 SAPI 模块时，web 服务器的目录（例如 C:\Program Files\Apache Group\Apache2\bin）。

  • 任何在 Windows 的 PATH 环境变量中指定的目录。

要让 php4ts.dll / php5ts.dll 能正确被搜索到，有下面三个选择：复制该文件到 Windows 系统目录，复制该文件到 web 服务器的目录，或者把 PHP 目录（例如 C:\php）添加到 PATH 环境变量中。为了将来更好的维护，建议使用最后一个选择，将 PHP 目录添加到 PATH 环境变量中，因为这样更便于将来升级 PHP。在相应的常见问题解答项目中可以了解如何将 PHP 目录添加到 PATH 环境变量中（别忘了重新启动电脑，光注销还不够）。

下一步是为 PHP 设置一个有效的配置文件，php.ini。在 ZIP 包中有两个 ini 文件，php.ini-dist 和 php.ini-recommended。建议使用 php.ini-recommended，因为在该文件中优化了性能和安全。请仔细阅读该文件中的注释，因为它从 php.ini-dist 修改而来，会对设置产生较大的影响。例如将 display_errors 设置为 off，将 magic_quotes_gpc 设置为 off。除了阅读这些部分，还可以学习一下 ini 设置，并手动设置每一个配置项目。如果想要最安全的设置，这是最好的方法，虽然 PHP 在默认配置下也是很安全的。复制所选择的 ini 文件到 PHP 能找到的目录中，并将其重命名为 php.ini。PHP 搜索 php.ini 的路径在配置文件一节已有介绍。

如果使用 Apache 2，更简单的选择是使用 PHPIniDir 指令（请阅读在 Apache 2 下的安装）；若不是，最好的选择是设置 PHPRC 环境变量。它在此常见问题解答项目中进行了解释。

Note: 如果在 Windows NT、2000、XP 或 2003 中使用 NTFS 分区，请确认运行 web 服务器的用户有权限读取 php.ini（例如将其设置为 Everyone 可读）

下面的步骤是可选的：

  • 编辑新的 php.ini 文件。如果计划使用 OmniHTTPd，不要执行下一步。设置 doc_root 并指向 web 服务器的 document_root。例如：

    doc_root = c:\inetpub\wwwroot // for IIS/PWS

doc_root = c:\apache\htdocs // for Apache

  • 选择 PHP 装载的扩展库。请阅读关于 Windows 扩展一节以了解如何设置扩展库，以及哪些功能已经内置无需扩展库。请注意建议在全新安装时先不要在 php.ini 中加载任何扩展库，首先要保证 PHP 自身能够正常工作。
  • 在 PWS 和 IIS，可以设置 browscap 配置：在 Windows 9x/Me 中指向 c:\windows\system\inetsrv\browscap.ini，在 NT/2000 中指向 c:\winnt\system32\inetsrv\browscap.ini，在 XP 中指向 c:\windows\system32\inetsrv\browscap.ini。要得到最新版本的 browscap.ini，请阅读如下常见问题解答项目。

PHP 现在已经安装在系统中了。接下来一步是选择一个 web 服务器，并为之启用 PHP。请在本章目录中选择一个 web 服务器以了解更详细的安装步骤。

Windows 安装程序
ActiveScript
Windows 系统下的安装


ActiveScript

本节将介绍有关 ActiveScript 安装需要注意的方面。

ActiveScript 是一个只运行在 Windows 下的 SAPI，可以在任何兼容 ActiveScript 的主机上使用 PHP 脚本，例如 Windows Script Host、ASP/ASP.NET、Windows Script Components 或 Microsoft Scriptlet control。

PHP 5.0.1 以后，ActiveScript 被移动到了» PECL 库。可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

Note: 应该首先阅读手动安装步骤！

PHP 安装完成后，应该下载 ActiveScript DLL（php5activescript.dll）并将其放入 PHP 主目录（例如 C:\php）。

准备好全部所需文件后，必须在系统中注册 DLL。做法是打开命令提示行窗口（位于开始菜单），然后输入类似 cd C:\php 的命令进入 PHP 目录，最后输入 regsvr32 php5activescript.dll 注册该 DLL。

要测试 ActiveScript 是否正确工作，请创建一个新文件，命名为 test.wsf（这个扩展名很重要）然后输入：

<job xml:id="test">

 <script language="PHPScript">
  $WScript->Echo("Hello World!");
 </script>

</job>

保存并双击这个文件。如果您看到一个小窗口，内容为“Hello World!"，说明安装成功。

Note: 在 PHP 4 中，该引擎被命名为“ActivePHP”，如果使用 PHP 4，应该将上例中的“PHPScript”替换为“ActivePHP”。

Note: ActiveScript 不使用默认的 php.ini 文件，而仅在调用它的 .exe 文件所在目录中寻找。如果想装载 PHP 扩展等，应该创建 php-activescript.ini 并将其放入那个目录。

手工安装步骤
Microsoft IIS／PWS
Windows 系统下的安装


Microsoft IIS／PWS

本节包括针对 IIS（Microsoft Internet Information Server）的说明与提示。

Warning

如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

PHP 与 IIS 或 PWS 安装的通用事项

  • 首先请阅读手工安装步骤。不要跳过这一步，这里提供了将 PHP 安装到 Windows 中的极其重要的信息。
  • CGI 用户必须在 php.ini 中将 cgi.force_redirect 指令设为 0。其重要细节请阅读 FAQ 中的cgi.force_redirect。此外，CGI 用户可能需要设定 cgi.redirect_status_env 指令。在使用这些指令时，确保它们没有在 php.ini 中被注释掉。
  • PHP 4 的 CGI 文件名是 php.exe 而在 PHP 5 中是 php-cgi.exe。在 PHP 5 中，php.exe 是 CLI 版本，不是 CGI。
  • 修改 Windows 的 PATH 环境变量以把 PHP 目录包括进去。这样 PHP 的 DLL 文件，可执行文件和 php.ini 就都可以保留在 PHP 目录中而不用把 Windows 系统目录搞乱了。更多细节见 FAQ 中的设定路径 PATH。
  • IIS 专用用户（通常为 IUSR_MACHINENAME）需要能够读取各个文件和目录的权限，例如 php.ini，docroot 和 session 的 tmp 目录。
  • 确保在 php.ini 中正确设定了 extension_dir 和 doc_root 指令的值。这些指令依赖于 PHP 被安装的系统。在 PHP 4 中，extension_dir 是 extensions 而在 PHP 5 中是 ext。因此在 PHP 5 中 extensions_dir 的一个取值例子是 "c:\php\ext"，IIS 的 doc_root 的取值例子是 "c:\Inetpub\wwwroot"。
  • PHP 扩展库的 DLL 文件，如 php_mysql.dll 和 php_curl.dll，存放于 PHP 下载的 ZIP 包中（自动安装包里没有）。在 PHP 5 中，很多扩展库都是 PECL 的一部分，可以从“Collection of PECL modules”包中下载，例如 php_zip.dll 和 php_ssh2.dll。» 点击进入 PHP 下载页。
  • 在定义应用程序扩展名映射时，应选中“检查文件是否存在”。以极小的性能为代价，IIS（或者 PWS）会在调用 PHP 之前检查脚本文件是否存在并选出认证方法。这意味着 web 服务器会提供一个有道理的 404 形式错误信息而不是一条 CGI 错误说什么 PHP 没有输出任何数据。

Windows NT／200x／XP 和 IIS 4 或更高版本

PHP 可以安装为 CGI 或者 ISAPI 模块。不管哪种，都需要启动 Microsoft 管理控制台（也可能是“Internet 信息服务”，在 Windows NT 4.0 Option Pack 中或者在 Windows 2000/XP 下的控制面板=>管理工具）。然后右键点击 web 服务器节点（通常为“默认网站”），并选择“属性”。

如果想用 CGI 方式，按如下方法进行：

  • 选择“主目录”，“虚拟目录”或“目录”标签页，然后进行：
  • 将执行权限改为“纯脚本”
  • 点“配置”按钮，选择“映射”标签页。点击“添加”按钮，将“可执行文件”指向适当的 CGI 文件名。例如 PHP 5 的值可能是：C:\php\php-cgi.exe。在“扩展名”中填入 .php。选择“全部动作”（或者“限制为”留空），选中“脚本引擎”。然后点击“确定”。
  • 设定合适的目录安全性（在 Internet 信息服务中完成）。如果 NT 服务器使用 NTFS 文件系统，给 I_USR_ 用户加上 php.exe/php-cgi.exe 文件所在目录的可执行权限（通过资源管理器完成）。

要用 ISAPI 模块方式，按如下方法进行：

  • 如果不想用 PHP 进行 HTTP 认证，应该跳过这一步。在“ISAPI 筛选器”标签页中添加一个新的 ISAPI 筛选器。“筛选器名称”设为 PHP，“可执行文件”设为 php4isapi.dll/php5isapi.dll 的路径。
  • 选择“主目录”，“虚拟目录”或“目录”标签页，然后进行：
  • 将执行权限改为“纯脚本”
  • 点“配置”按钮，选择“映射”标签页。点击“添加”按钮，将“可执行文件”指向适当的 ISAPI DLL。例如 PHP 5 的值可能是：C:\php\php5isapi.dll。在“扩展名”中填入 .php。选择“全部动作”（或者“限制为”留空），选中“脚本引擎”。然后点击“确定”。
  • 完全停止 IIS（NET STOP iisadmin）
  • 重新启动 IIS（NET START w3svc）

对于 IIS 6（2003 Server），打开 IIS 管理器，进入 web 服务扩展，点击“添加一个新的 web 服务扩展”，“扩展名”中输入名称，例如 PHP，再点击“添加”按钮，点击“浏览”选择要么 ISAPI 文件（php4isapi.dll 或 php5isapi.dll）或者 CGI 文件（php.exe 或 php-cgi.exe）作为“文件路径”后点“确定”，然后选中“设置扩展状态为允许”并点“确定”。

要使用 index.php 作为默认文档，在“文档”标签页中选择“添加”。输入 index.php 并点“确定”。用上下箭头按钮调整顺序。这和在 Apache 中设定 DirectoryIndex 相似。

对于每个要关联为 PHP 脚本的后缀都要重复以上步骤。.php 是最常用的，此外为兼容一些遗留下来的老程序可能还需要加上 .php3。

如果过些时候之后碰到 CPU 占用率达到 100%，则取消选中“缓存 ISAPI 应用程序”（“主目录”下点“配置”按钮”）。

Windows 和 PWS 4

PWS 4 不支持 ISAPI，只能使用 PHP CGI。

  • 编辑包里附上的 pws-php4cgi.reg/pws-php5cgi.reg 文件（PHP 4 在 SAPI 目录下，PHP 5 在主目录下）改为自己的 php.exe/php-cgi.exe 文件的路径。反斜线应双写，例如：[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\php.exe"（如果用 PHP 5 则改为 C:\\php\\php-cgi.exe）。然后将此注册表文件合并入系统；鼠标双击此文件即可。
  • 在 PWS 管理器中，右键点击需要加入 PHP 支持的目录并选择“属性”。选中“执行”，并确认。

Windows 和 PWS／IIS 3

配置此服务器的推荐方法是使用随包发布的注册表文件（PHP 4 是 SAPI 目录下的 pws-php4cgi.reg，PHP 5 是主目录下的 pws-php5cgi.reg）。可能要编辑此文件已确保其中的 PHP 安装目录和扩展库目录符合用户自己的设置。或者按以下步骤手工完成。

Warning

以下步骤涉及到直接操作 Windows 注册表。如果出错可能使系统不稳定，强烈建议先备份注册表。如果用户损坏了注册表 PHP 开发组不负任何责任。

  • 运行 Regedit。
  • 找到：HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap。
  • 在编辑菜单选择：新建->字符串值。
  • 输入 PHP 脚本想要使用的后缀，例如 .php。
  • 双击新建的字符串值并在“数值数据”栏里输入 php.exe 的路径，例如 PHP 4 是 C:\php\php.exe "%s" %s，或者 PHP 5 是 C:\php\php-cgi.exe "%s" %s。
  • 对每个要关联为 PHP 脚本的文件后缀名重复以上步骤。

以下步骤不影响 web 服务器安装，仅适用于想在命令行下运行 PHP 脚本（例如运行 C:\myscripts\test.php）或者在资源管理器窗口中双击文件名就运行程序。如果更希望双击 PHP 文件名是将其调入文本编辑器，则跳过以下步骤。

  • 找到：HKEY_CLASSES_ROOT。
  • 在编辑菜单选择：新建->项。
  • 将新项命名为前一节设的后缀，例如：.php。
  • 选中新项，在右边栏双击“默认”并输入 phpfile。
  • 对每个在前一节设定的后缀都重复以上步骤。
  • 在 HKEY_CLASSES_ROOT 下再创建另一个新建->项 并命名为 phpfile。
  • 选中新项 phpfile，在右边栏双击“默认”并输入 PHP Script。
  • 右键点击 phpfile 项并选择新建->项，命名为 Shell。
  • 右键点击 Shell 项并选择新建->项，命名为 open。
  • 右键点击 open 项并选择新建->项，命名为 command。
  • 选中新项 command，在右边栏双击“默认”并输入 php.exe 的路径，例如：c:\php\php.exe -q %1（不要忘了 %1）。
  • 退出 Regedit。
  • 如果是 Windows 下的 PWS，重启动以重新加载注册表。

PWS 和 IIS 3 的用户现在就拥有了完全可运作的系统。IIS 3 用户可以使用来自 Steven Genusa 的漂亮» 工具来配置脚本映射。

ActiveScript
Microsoft Windows 下的 Apache 1.3.x
Windows 系统下的安装


Microsoft Windows 下的 Apache 1.3.x

本节包括在 Microsoft Windows 平台的 Apache 下安装 PHP 的说明和提示。在另外的页面也有 Apache 2 的安装和说明。

Note: 应该首先阅读手动安装步骤！

有两种方式让 PHP 工作在 Windows 下的 Apache 1.3.x 中。首先是使用 CGI 可执行程序（PHP 4 下为 php.exe，PHP 5 下为 php-cgi.exe），另外一种方式是使用 Apache 模块 DLL。无论是那种方式，都需要修改 httpd.conf 来配置 Apache，使 PHP 能够在其上运行，然后都需要重启服务。

值得注意的是，现在 Windows 下的 SAPI 模块已经稳定得多，我们建议首先考虑使用 SAPI 而不要使用 CGI 可执行程序。因为 SAPI 更加透明和安全。

虽然还有些其它的方法来在 Apache 下配置 PHP，下面介绍的方法是最简单并适用于新手的。请参考 Apache 的文档以获得更多的配置参数。

在修改完配置文件后，请记得重启 Apache 服务。例如，如果把 Apache 作为 Windows 的一个服务来运行，那么在命令提示行下使用 NET STOP APACHE 命令然后再使用 NET START APACHE 命令便可重启服务。也可以使用重启 Apache 服务的快捷方式来重启。

Note: 记住在 Windows 下给 Apache 的配置文件中加入路径值的时候，所有的反斜线例如 c:\directory\file.ext 必须转换成正斜线，如 c:/directory/file.ext。

作为 Apache 的模块安装

应该将下面几行加入 Apache 的 httpd.conf 文件:

Example #1 PHP 作为 Apache 1.3.x 的一个模块

这里假设 PHP 安装在 c:\php。如果不是这样请根据情况修改路径。

对于 PHP 4:

# 在 LoadModule 一节的末尾添加
# 不要忘记将该文件从 sapi 复制出来
LoadModule php4_module "C:/php/php4apache.dll"

# 在 AddModule 一节的末尾添加
AddModule mod_php4.c

对于 PHP 5:

# 在 LoadModule 一节的末尾添加
LoadModule php5_module "C:/php/php5apache.dll"

# 在 AddModule 一节的末尾添加
AddModule mod_php5.c

两个 PHP 版本都需要添加的内容:

# 将下面这行添加到 <IfModule mod_mime.c> 条件块中
AddType application/x-httpd-php .php

# 如果要使用语法高亮的 .phps 文件，需要添加
AddType application/x-httpd-php-source .phps

作为 CGI 可执行文件的安装

如果按照手动安装步骤将 PHP 解压到 C:\php\，需要在 Apache 的配置文件中添加如下内容以使 PHP 按照 CGI 方式运行:

Example #2 PHP 以 CGI 方式运行在 Apache 1.3.x

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# 对于 PHP 4
Action application/x-httpd-php "/php/php.exe"

# 对于 PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

# 指定 php.ini 所在目录
SetEnv PHPRC C:/php

请注意第二行的配置可以在默认的 httpd.conf 中找到，但是是被注释掉的。也请记得将 c:/php/ 替换为 PHP 所在的真实路径。

Warning

如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

如果想发布语法高亮的 php 文件，没有类似于模块方式下 PHP 那种方便的方法。选择了使用 CGI 方式运行 PHP，需要使用 highlight_file() 函数来进行语法高亮。创建一个 PHP 文件，加入下述代码即可：<?php highlight_file('some_php_script.php'); ?>。

Microsoft IIS／PWS
Microsoft Windows 下的 Apache 2.0.x
Windows 系统下的安装


Microsoft Windows 下的 Apache 2.0.x

本节包括在 Microsoft Windows 系统中针对 Apache 2.0.x 安装 PHP 的指导与说明。在其它页面也有 Apache 1.3.x 用户指导与说明。

Note: 应该先阅读手工安装步骤！

Warning

不推荐将线程化 MPM 用于实际运作的 Apache 2 环境中去。用 prefork MPM 替代，或者用 Apache 1。其原因见 FAQ 中的使用线程化 MPM 的 Apache2。

强烈建议阅读 » Apache 文档来加深对 Apache 2.0.x 服务器的基本理解。此外在继续下去之前考虑先阅读一下 Apache 2.0.x 的 » Windows 下使用说明。

Note: PHP 和 Apache 2.0.x 兼容性注意事项
已知下列版本的 PHP 可以工作于最近版本的 Apache 2.0.x 之下：

  • PHP 4.3.0 或更高版本，可从 » http://www.php.net/downloads.php 下载。
  • 最新的稳定开发版。取得源代码 » http://snaps.php.net/php5-latest.tar.gz 或下载 Windows 可执行程序 » http://snaps.php.net/win32/php5-win32-latest.zip。
  • 预发布版，可从 » http://qa.php.net/ 下载。
  • 总是可以通过» 匿名 CVS 取得 PHP。

以上版本的 PHP 与 Apache 2.0.40 或更高版本兼容。
Apache 2.0 SAPI 支持自 PHP 4.2.0 起。PHP 4.2.3 可工作于 2.0.39，不要用任何其它版本的 Apache 与 PHP 4.2.3 配合。不过推荐的设置是用 PHP 4.3.0 或更高版本与最新版的 Apache2 配合使用。
所有提及的 PHP 版本仍然能工作于 Apache 1.3.x 之下。

Warning

Apache 2.0.x 被设计运行于 Windows NT 4.0，Windows 2000 或 Windows XP 之下。目前为止对 Windows 9x 的支持尚未完成，此时尚不指望 Apache 2.0.x 在此类平台下工作。

下载最新版本的 » Apache 2.0.x 以及适合的 PHP 版本。先完成手工安装步骤后再回来继续将 PHP 集成入 Apache。

Windows 下有两种方法使 PHP 工作于 Apache 2.0.x 之中。一种是 使用 CGI 可执行程序，另一种是适用 Apache 模块的 DLL。不管哪种都需要编辑 httpd.conf 来配置 Apache 支持 PHP 并重新启动服务器。

Note: 记住在 Windows 下给 Apache 的配置文件中加入路径值的时候，所有的反斜线例如 c:\directory\file.ext 必须转换成正斜线，如 c:/directory/file.ext。

以 CGI 方式安装

需要将以下三行加入到 Apache 的 httpd.conf 配置文件中以设定 CGI：

Example #1 PHP 在 Apache 2.0 中的 CGI 方式

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# 对 PHP 4 用这行
Action application/x-httpd-php "/php/php.exe"

# 对 PHP 5 用这行
Action application/x-httpd-php "/php/php-cgi.exe"

Warning

如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

以 Apache 模块方式安装

需要将以下两行加入到 Apache 的 httpd.conf 配置文件中以设定 Apache 2.0 的 PHP 模块：

Example #2 PHP 在 Apache 2.0 中的模块方式

# 对 PHP 4 用这两行：
LoadModule php4_module "c:/php/php4apache2.dll"
# 别忘了从 sapi 目录中把 php4apache2.dll 拷贝出来！
AddType application/x-httpd-php .php

# 对 PHP 5 用这两行：
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

# 配置 php.ini 的路径
PHPIniDir "C:/php"

Note: 记得用自己 PHP 实际所在的路径替换掉上例中的 c:/php/。要留意在 LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll，而不是 php4apache.dll 或 php5apache.dll，后者是设计用于 Apache 1.3.x 的。

Note: 如果要使用内容协商机制，请阅读有关 FAQ。

Warning

不要在安装中混合使用来自不同 PHP 版本的 DLL。使用下载回来的 PHP 版本中所提供的 DLL 和扩展库是唯一选择。

Microsoft Windows 下的 Apache 1.3.x
Microsoft Windows 下的 Sun，iPlanet 和 Netscape 服务器
Windows 系统下的安装


Microsoft Windows 下的 Sun，iPlanet 和 Netscape 服务器

本节包含针对在 Windows 下 Sun Java System web 服务器，Sun ONE web 服务器，iPlanet 和 Netscape 服务器的 PHP 安装说明与提示。

自 PHP 4.3.3 起可以通过 NSAPI 模块使用 PHP 脚本来产生定制目录列表于错误页面。也可以使用为兼容 Apache 的附加函数。目前使用的 web 服务器的支持请阅读有关子请求的说明。

Sun，iPlanet 和 Netscape 服务器的 CGI 方式安装

要将 PHP 安装为 CGI 处理器，按以下步骤进行：

  • 将 php4ts.dll 拷贝到 systemroot（即 Windows 的安装目录）

  • 在命令行做文件关联，输入以下两行命令：

    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • 在 Netscape Enterprise Administration Server 中建一个空的 shellcgi 目录并随即删除（此步骤在 obj.conf 中新建了 5 行重要指令以允许 web 服务器处理 shellcgi 脚本）。
  • 在 Netscape Enterprise Administration Server 中新建一个新的 MIME 类型（Category: type，Content-Type: magnus-internal/shellcgi，File Suffix: php）。
  • 对每个要运行 PHP 的 web 服务器实例都进行以上步骤。

更多将 PHP 设置为 CGI 可执行程序的内容见：» http://benoit.noss.free.fr/php/install-php.html。

Sun，iPlanet 和 Netscape 服务器的 NSAPI 方式

要将 PHP 以 NSAPI 方式安装，按以下步骤进行：

  • 将 php4ts.dll 拷贝到 systemroot（即 Windows 的安装目录）

  • 在命令行做文件关联，输入以下两行命令：

    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • 在 Netscape Enterprise Administration Server 中新建一个新的 MIME 类型（Category: type，Content-Type: magnus-internal/x-httpd-php，File Suffix: php）。

  • 编辑 magnus.conf（服务器版本 >= 6）或 obj.conf（服务器版本 < 6）并加入下面两行；要将新行放在 mime types init 之后：

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]

    （PHP >= 4.3.3）php_ini 参数为可选项，但加上后就可以把 php.ini 放到 web 服务器的配置目录中去。

  • 在 obj.conf 中配置默认对象（对于虚拟服务器类 [Sun web Server 6.0+] 是 vserver.obj.conf 文件）：在 <Object name="default"> 一节，在所有的“ObjectType”行之后和所有的“AddLog”行之前加上这一行：

    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]

    （PHP >= 4.3.3）作为附加参数可以加入一些特殊的 php.ini 值，例如可以在调用 php4_execute 时设定专门的 docroot="/path/to/docroot"。对于布尔的 ini 选项请用 0/1 作为值，而不是 "On","Off",...（这样不能正确工作），例如要用 zlib.output_compression=1 而不是 zlib.output_compression="On"。

  • 这几行仅在想要配置一个只有 PHP 脚本的目录时需要（类似 cgi-bin 目录）：

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>

    在此之后可以在管理服务器中配置目录并将其类型设为 x-httpd-php。其中的所有文件都将作为 PHP 执行。这样可以隐藏 PHP 的使用，文件名还保留为 .html。

  • 重启动 web 服务使改动生效。
  • 对每个要运行 PHP 的 web 服务器实例都进行以上步骤。

Note: 更多将 PHP 设置为 NSAPI内容见：» http://benoit.noss.free.fr/php/install-php4.html。

Note: PHP 使用的堆栈大小（stacksize）依赖于 web 服务器的配置。如果在运行很大的 PHP 脚本时死掉，建议在管理服务器中增大此值（在 "MAGNUS EDITOR" 一节中）。

CGI 环境以及推荐在 php.ini 中进行的修改

在写 PHP 脚本时很重要一点是 Sun JSWS/Sun ONE WS/iPlanet/Netscape 是多线程 web 服务器。因此所有的请求都运行于同一个进程空间（即 web 服务器自己的空间）而此空间只有一个环境。如果想取得 CGI 变量例如 PATH_INFO，HTTP_HOST 等时不能用老的 PHP 3.x 的方式 getenv() 或者类似手段（$_ENV）进行。只能取得运行的 web 服务器的环境变量而没有任何有效的 CGI 变量！

Note: 为什么环境中有一些（无效的）CGI 变量？
解答：这是因为从管理服务器启动了 web 服务器进程，这将运行 web 服务器的启动脚本，而你想要启动的是 CGI 脚本（CGI 脚本在管理服务器内部！）。这是为什么 web 服务器启动的环境中有一些 CGI 环境变量的原因。可以不从管理服务器启动 web 服务器来试验一下。用管理员用户从命令行手工启动――这样就不会看到类似 CGI 的环境变量了。

PHP 4.x 中取得 CGI 变量的正确方式是使用超全局变量 $_SERVER。如果有一些老的脚本用了 $HTTP_HOST 等，那应该在 php.ini 中打开 register_globals 选项并改变变量顺序（重要提示：去掉 "E"，因为这里不需要环境变量）：

variables_order = "GPCS"
register_globals = On

错误页面的特殊使用或定制目录列表（PHP >= 4.3.3）

可以用 PHP 来为 "404 Not Found" 或类似的错误提示生成错误页面。对每个想要覆盖的错误页面在 obj.conf 中的对象里加入下面这行：

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]

其中的 XXX 是 HTTP 错误代码。删除掉可能干扰到自己设置的任何其它 Error 指令。如果对所有可能出现的错误都用同一个脚本处理，不要 code 参数即可。脚本里可以用 $_SERVER['ERROR_TYPE'] 取得 HTTP 状态代码。

还可以生成自己定制的目录列表。只要创建一个显示目录列表的 PHP 脚本并用下面一行在 obj.conf 中替换掉相应 type="magnus-internal/directory" 默认的 Service 设置：

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]

对于错误和目录列表页面，原始的 URI 和转换后的 URI 都在变量 $_SERVER['PATH_INFO'] 和 $_SERVER['PATH_TRANSLATED'] 中。

有关 nsapi_virtual() 和子请求（PHP >= 4.3.3）的说明

NSAPI 模块现在支持 nsapi_virtual() 函数（别名：virtual()）来进行子请求并将结果插入到 web 页面里。问题是，此函数用到了一些 NSAPI 库中没有文档说明的特性。

在 Unix 下这不是问题，因为模块会自动寻找所需的函数并使用。如果找不到，nsapi_virtual() 被禁用。

在 Windows 下 DLL 处理的局限性需要使用最新的 ns-httpdXX.dll 文件中的自动检测功能。这已在版本 6.1 及以下的服务器中测试过。如果用了更高版本的 Sun 服务器，检测会失败并禁用 nsapi_virtual()。

在这种情况下，试试下面的方法。在 magnus.conf/obj.conf 中的 php4_init 里加入下面的参数：

Init fn=php4_init ... server_lib="ns-httpdXX.dll"

其中 XX 是正确的 DLL 版本号。在 server-root 目录下去找合适的 DLL 的名字。文件大小最大的 DLL 就是了。

可以用 phpinfo() 函数来检查状态。

Note: 但要注意：对 nsapi_virtual() 的支持是试验性质的！

Microsoft Windows 下的 Apache 2.0.x
OmniHTTPd Server
Windows 系统下的安装


OmniHTTPd Server

本节包括针对 Windows 下的 » OmniHTTPd 的内容与提示。

Note: 应该首先阅读手工安装步骤！

Warning

如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

要在 OmniHTTPd 中安装 PHP 需要完成以下步骤。这是 CGI 方式的安装。OmniHTTPd 支持 SAPI，但是有测试显示以 ISAPI 模块方式使用 PHP 不太稳定。

Note: CGI 用户重要提示
请阅读 FAQ：cgi.force_redirect 中的重要细节。此选项需要被设为 0。

  1. 安装 OmniHTTPd 服务器。

  2. 右键点击系统托盘中蓝色的 OmniHTTPd 图标并选择 Properties

  3. 点击 web Server Global Settings

  4. 在“External”标签页，输入：virtual = .php | actual = c:\php\php.exe（如果是 PHP 5 则用 php-cgi.exe），并点击 Add 按钮

  5. 在 Mime 标签页，输入：virtual = wwwserver/stdcgi | actual = .php，并点击 Add 按钮

  6. 点击 OK

对每个想要和 PHP 关联的后缀都重复 2 - 6 步。

Note: 有些 OmniHTTPd 安装包中内置了 PHP 支持。可以在安装时选择自定义安装，取消选中 PHP 部分。推荐使用最新的 PHP 可执行包。有些 OmniHTTPd 服务器内置了 PHP 4 beta 版，应该选择不安装内置版而安装自己的版本。如果服务器已经安装了，则在上面的第 4 和 5 步用 Replace 按钮来设置新的准确的信息。

Microsoft Windows 下的 Sun，iPlanet 和 Netscape 服务器
Microsoft Windows 下的 Sambar 服务器
Windows 系统下的安装


Microsoft Windows 下的 Sambar 服务器

本节包含针对 Windows 下的 » Sambar 服务器的说明和提示。

Note: 应该首先阅读手工安装步骤！

下面列出了怎样在 Windows 下设置 Sambar 服务器的 ISAPI 模块。

  • 在 Sambar 安装目录中找到 mappings.ini 文件（在 config 目录中）。

  • 打开 mappings.ini 并在 [ISAPI] 部分加入下面一行：

    Example #1 Sambar 的 ISAPI 设置

    #对 PHP 4
*.php = c:\php\php4isapi.dll

#对 PHP 5
*.php = c:\php\php5isapi.dll

    （上面假定 PHP 安装在 c:\php。）

  • 重启动 Sambar 服务器以使改动生效。

OmniHTTPd Server
Microsoft Windows 下的 Xitami
Windows 系统下的安装


Microsoft Windows 下的 Xitami

本节包含针对 Windows 下的 » Xitami 的说明与提示。

Note: 应该首先阅读手工安装步骤！

下面列出了怎样在 Windows 下在 Xitami 中设置 PHP 的 CGI 方式。

Note: CGI 用户重要提示
请阅读 FAQ：cgi.force_redirect 中的重要细节。此选项需要被设为 0。如果想要使用 $_SERVER['PHP_SELF']，还必须激活 cgi.fix_pathinfo 选项。

Warning

如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

  • 确保 web 服务器在运行，在浏览器中打开 Xitami 的管理控制台（通常是 http://127.0.0.1/admin），并点击 Configuration。

  • 找到 Filters，在 File extensions（.xxx）字段中加入想要 PHP 解析的后缀名（例如 .php）。

  • 在 Filter command 或 script 中输入 PHP 的 CGI 可执行文件名，例如 PHP 4 是 C:\php\php.exe，PHP 5 是 C:\php\php-cgi.exe。

  • 点击“Save”图标。

  • 重启动服务器以使改动生效。

Microsoft Windows 下的 Sambar 服务器
从源程序编译
Windows 系统下的安装


从源程序编译

本章讲述了在 Windows 下如何使用 Microsoft 的工具编译 PHP。要在 CygWin 中编译 PHP，请参考 Unix 系统下的安装一章。

需求

要编译 PHP 需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0，不过 Visual C++ .NET 版也可以用。自 PHP 5 起也支持免费的 Microsoft .NET toolchain（需要安装 Windows Platform SDK，Visual C++ Toolkit 和 .NET Framework SDK）。

要释放下载的文件还需要一个 ZIP 文件的解压缩工具。Windows XP 和更新的版本中已经内置了此功能。

在开始之前，需要先下载：

  • PHP 站点中的 win32 编译工具 » http://www.php.net/extra/win32build.zip。
  • PHP 使用的 DNS 解析器的源代码：» http://www.php.net/extra/bindlib_w32.zip。用这个替代 win32build.zip 中的 resolv.lib。
  • 如果计划把 PHP 编译成 Apache 的静态模块那还需要 » Apache 源程序。

最后，还需要 PHP 本身的源代码。可以通过» 匿名 CVS 得到最新的开发版本，一个» 快照或者最新发行版本的» 源程序的打包文件。

放到一起

下载了所有的包后需要将它们解压缩到适当的位置：

  • 建立一个工作目录作为解压缩后存放所有文件的地方，例如：C:\work。
  • 在工作目录（C:\work）下新建一个目录 win32build 并将 win32build.zip 解压缩到其中。
  • 在工作目录（C:\work）下新建一个目录 bindlib_w32 并将 bindlib_w32.zip 解压缩到其中。
  • 将下载的 PHP 源程序解压缩到工作目录（C:\work）中。
  • 要编译库还需要（或下载现成的）头文件和库文件并分别放置到 C:\work\win32build\include 和 C:\work\win32build\lib 目录中去。
  • 如果没有安装有 bison 和 flex 的 Cygwin，那还需要将 C:\work\win32build\bin 目录放入系统 PATH 中，以使此工具可以被配置脚本找到。

经过以上步骤后目录结构应该如下：

+--C:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-5.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

如果不是用 » Cygwin 的话，还必须新建一个目录 c:\usr\local\lib 并将 bison.simple 从 c:\work\win32build\bin 拷贝到 c:\usr\local\lib 中。

Note: 如果想使用 PEAR 以及舒适的命令行安装程序，就非要用 CLI-SAPI。有关 PEAR 和安装程序的更多信息见 » PEAR 网站。

编译 resolv.lib

必须编译 resolv.lib 库。自己决定是需要调试信息（bindlib - Win32 Debug）还是不需要（bindlib - Win32 Release），但是要记住自己的选择，因为用 Debug 模式编译的 resolv.lib 只能和 Debug 模式编译的 PHP 连接。编译适当的配置：

  • 图形界面用户，通过鼠标双击 C:\work\bindlib_w32\bindlib.dsw 运行 VC++。接着选择 Build => Rebuild All。
  • 命令行用户，确认要么注册了 C++ 环境变量，要么运行了 vcvars.bat，然后运行下面任意一行命令：
    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

到这一步，应该得到了一个可用的 resolv.lib 在 c:\work\bindlib_w32\Debug 或者 Release 目录下。将此文件拷贝到 c:\work\win32build\lib 目录下并覆盖同名的文件。

用新编译系统编译 PHP（仅适用于 PHP >=5）

本节讲解了怎样用新编译系统编译 PHP >=5，此系统是基于 CLI 的，并且非常类似于 PHP 的 Unix 编译系统。

Note: 此编译系统在 PHP 4 中不可用。请参考用 DSW 文件编译 PHP一节。

开始之前要确保阅读了放到一起一节并且已经编译了所有所需的库，例如 » Libxml 或 » ICU（PHP >= 6 中需要）。

首先应该打开一个用于 Visual Studio 的命令行提示符，应在开始菜单中能找到。正常的命令提示符可能不能用，因为没有设定所需的环境变量。输入类似 cd C:\work\php-5.x.x 的命令进入 PHP 源程序目录。现在可以开始配置 PHP 了。

第二步是运行 buildconf 批处理文件来扫描文件夹寻找 config.w32 来建立配置脚本。默认时此命令还会搜索以下目录：pecl; ..\pecl; pecl\rpc; ..\pecl\rpc。自 PHP 5.1.0 起，可以通过 --add-modules-dir 参数来改变此行为（例如 cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl）。

第三步是配置。要查看可用的配置选项列表，输入 cscript /nologo configure.js --help 命令。选择了需要激活或禁止的选项之后，输入类似 cscript /nologo configure.js --disable-foo --enable-fun-ext 的命令。使用 --enable-foo=shared 将尝试将“foo”扩展库编译为共享的，可动态加载的模块。

最后一步是编译。只需运行命令 nmake 即可。所生成的文件（例如 .exe 和 .dll）将会放在 Release_TS 或 Debug_TS 目录下（如果编译的是线程安全版的话），或者是 Release 或 Debug 目录。

作为可选项还可以运行 PHP 的测试套件，输入 nmake test 命令。如果要做一个特定的测试，可以用 'TESTS' 变量（例如 nmake /D TESTS=ext/sqlite/tests test 将只执行 sqlite 测试）。要删除编译过程中生成的文件，可以用 nmake clean 命令。

有个很有用的选项来编译快照：--enable-snapshot-build。此选项添加了一个新的编译模式（nmake build-snap）。这将尝试编译每一个可用的扩展库（默认为共享模块方式），但是忽略个别的扩展库或 SAPI 中的编译错误。

用 DSW 文件编译 PHP（PHP 4）

自 PHP 5 起不支持用 DSW 文件来编译 PHP，因为有了一个更灵活的系统。不过还是可以用此方法，但要记住此系统并不经常维护，因此编译可能会有问题。不过这是在 Windows 下编译 PHP 4 的唯一方法。

配置 MVC ++

第一步是配置 MVC++ 来准备编译。启动 Microsoft Visual C++，在菜单中选择 Tools => Options。在对话框中选择 directories 标签。按顺序把下拉选项选为 Executables，Includes 和 Library files。其内容应类似于：

  • Executable files：C:\work\win32build\bin，Cygwin 用户：C:\cygwin\bin
  • Include files：C:\work\win32build\include
  • Library files：C:\work\win32build\lib

编译

对于初学者最好的上手方法是编译 CGI 版本：

  • 图形界面用户，运行 VC++，选择 File => Open Workspace 菜单并选择 C:\work\php-4.x.x\win32\php4ts.dsw。接着选择 Build => Set Active Configuration 菜单并选择想要的配置，要么是 php4ts - Win32 Debug_TS 要么是 php4ts - Win32 Release_TS。最后选择 Build => Rebuild All。
  • 命令行用户，确认要么注册了 C++ 环境变量，要么运行了 vcvars.bat，然后从 C:\work\php-4.x.x\win32 目录下运行下面任意一行命令：
    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
    • 到这一步，应该得到一个可用的 php.exe 在 C:\work\php-4.x.x.\Debug_TS 或 Release_TS 目录下。

有可能通过编辑 main/config.win32.h 文件对编译做少量的定制。例如可以改变 php.ini 文件的默认位置，内置的扩展库，以及扩展库的默认位置。

下一步可能想要编译 CLI 版本，这是设计用于 PHP 的命令行方式。步骤和编译 CGI 版本相同，只除了要选择 php4ts_cli - Win32 Debug_TS 或者 php4ts_cli - Win32 Release_TS 项目文件。成功编译后会在 Release_TS\cli\ 或者 Debug_TS\cli\ 目录下找到 php.exe 文件。

要编译 SAPI 模块（php4isapi.dll）来将 PHP 和 Microsoft IIS 集成起来，将 active configuration 设为 php4isapi-whatever-config 并编译所需要的 dll。.

Microsoft Windows 下的 Xitami
Windows 下安装扩展库
Windows 系统下的安装


Windows 下安装扩展库

在 Windows 下安装完 PHP 和 web 服务器之后，可能想要安装一些扩展库来获得更多功能。可以通过修改 php.ini 来选择当 PHP 启动时加载哪些扩展库。也可以在脚本中通过使用 dl() 来动态加载。

PHP 扩展库的 DLL 文件都具有 php_ 前缀。

很多扩展库都内置于 Windows 版的 PHP 之中。这意味着要加载这些扩展库不需要额外的 DLL 文件和 extension 配置指令。Windows 下的 PHP 扩展库列表列出了需要或曾经需要额外 PHP DLL 文件的扩展库。下面是内置的扩展库列表：

PHP 4 中（截止到 PHP 4.3.11）：BCMath，Caledar，COM，Ctype，FTP，MySQL，ODBC，Overload，PCRE，Session，Tokenizer，WDDX，XML 和 Zlib。

PHP 5 中（截止到 5.0.4）有以下修改。新增内置：DOM，LibXML，Iconv，SimpleXML，SPL 和SQLite。以下不再内置：MySQL 和 Overload。

PHP 搜索扩展库的默认位置在 PHP 4 中是 C:\php4\extensions，在 PHP 5 中是 C:\php5。要修改此项以符合用户自己的 PHP 设置，需要编辑 php.ini 文件：

  • 需要修改 extension_dir 设置以指向用户放置扩展库的目录或者说放置 php_*.dll 文件的位置。例如：

    extension_dir = C:\php\extensions

  • 要在 php.ini 中启用某扩展库，需要去掉该行 extension=php_*.dll 前的注释符号，将想要加载的扩展库前的分号（;）删除即可。

    Example #1 启用 Bzip2 扩展库

    // 将这一行
;extension=php_bz2.dll

// 改成这样
extension=php_bz2.dll

  • 有些扩展库需要额外的 DLL 才能工作。其中一部分包括在发行包里，PHP 4 中在 C:\php\dlls\ 目录下，PHP 5 中在主目录下，但还有一些，例如 Oracle（php_oci8.dll）所需要的 DLL 没有绑定在发行包里。如果安装 PHP 4，将绑定的 DLL 从 C:\php\dlls 拷贝到主目录 C:\php 中。别忘了将 C:\php 放到系统路径 PATH 中去（此过程在另外的 FAQ 条目中有说明）。

  • 某些 DLL 没有绑定在 PHP 发行包中，详情见每个扩展库的文档页。此外有关 PECL 的说明见手册页 PECL 扩展库安装。在 PECL 中有日益增加数目巨大的 PHP 扩展库，这些扩展库需要单独下载。

Note: 如果运行服务器模块版的 PHP，在修改了 php.ini 之后别忘了重新启动 web 服务器以使其改动生效。

下表说明了哪些扩展库需要额外的 DLL。

PHP 扩展库
扩展库 | 说明 | 注解
php_bz2.dll | bzip2 压缩函数库 | 无
php_calendar.dll | 历法转换函数库 | 自 PHP 4.0.3 起内置
php_crack.dll | 密码破解函数库 | 无
php_ctype.dll | ctype 家族函数库 | 自 PHP 4.3.0 起内置
php_curl.dll | CURL，客户端 URL 库函数库 | 需要：libeay32.dll，ssleay32.dll（已附带）
php_dba.dll | DBA：数据库（dbm 风格）抽象层函数库 | 无
php_dbase.dll | dBase 函数库 | 无
php_dbx.dll | dbx 函数库 |
php_domxml.dll | DOM XML 函数库 | PHP <= 4.2.0 需要：libxml2.dll（已附带），PHP >= 4.3.0 需要：iconv.dll（已附带）
php_dotnet.dll | .NET 函数库 | PHP <= 4.1.1
php_exif.dll | EXIF 函数库 | 需要 php_mbstring.dll。并且在 php.ini 中，php_exif.dll 必须在 php_mbstring.dll 之后加载。
php_fbsql.dll | FrontBase 函数库 | PHP <= 4.2.0
php_fdf.dll | FDF：表单数据格式化函数库 | 需要：fdftk.dll（已附带）
php_filepro.dll | filePro 函数库 | 只读访问
php_ftp.dll | FTP 函数库 | 自 PHP 4.0.3 起内置
php_gd.dll | GD 库图像函数库 | 在 PHP 4.3.2 中删除。此外注意在 GD1 中不能用真彩色函数，用 php_gd2.dll 替代。
php_gd2.dll | GD 库图像函数库 | GD2
php_gettext.dll | Gettext 函数库 | PHP <= 4.2.0 需要 gnu_gettext.dll（已附带），PHP >= 4.2.3 需要 libintl-1.dll，iconv.dll（已附带）。
php_hyperwave.dll | HyperWave 函数库 | 无
php_iconv.dll | ICONV 字符集转换 | 需要：iconv-1.3.dll（已附带），PHP >=4.2.1 需要 iconv.dll
php_ifx.dll | Informix 函数库 | 需要：Informix 库
php_iisfunc.dll | IIS 管理函数库 | 无
php_imap.dll | IMAP，POP3 和 NNTP 函数库 | 无
php_ingres.dll | Ingres II 函数库 | 需要：Ingres II 库
php_interbase.dll | InterBase functions | 需要：gds32.dll（已附带）
php_java.dll | Java 函数库 | PHP <= 4.0.6 需要：jvm.dll（已附带）
php_ldap.dll | LDAP 函数库 | PHP <= 4.2.0 需要 libsasl.dll（已附带），PHP >= 4.3.0 需要 libeay32.dll，ssleay32.dll（已附带）
php_mbstring.dll | 多字节字符串函数库 | 无
php_mcrypt.dll | Mcrypt 加密函数库 | 需要：libmcrypt.dll
php_mhash.dll | Mhash 函数库 | PHP >= 4.3.0 需要：libmhash.dll（已附带）
php_mime_magic.dll | Mimetype 函数库 | 需要：magic.mime（已附带）
php_ming.dll | Ming 函数库（Flash） | 无
php_msql.dll | mSQL 函数库 | 需要：msql.dll（已附带）
php_mssql.dll | MSSQL 函数库 | 需要：ntwdblib.dll（已附带）
php_mysql.dll | MySQL 函数库 | PHP >= 5.0.0 需要 libmysql.dll（已附带）
php_mysqli.dll | MySQLi 函数库 | PHP >= 5.0.0 需要 libmysql.dll（PHP <= 5.0.2 中是 libmysqli.dll）（已附带）
php_oci8.dll | Oracle 8 函数库 | 需要：Oracle 8.1+ 客户端库
php_openssl.dll | OpenSSL 函数库 | 需要：libeay32.dll（已附带）
php_overload.dll | 对象重载函数库 | 自 PHP 4.3.0 起内置
php_pdf.dll | PDF 函数库 | 无
php_pgsql.dll | PostgreSQL 函数库 | 无
php_printer.dll | 打印机函数库 | 无
php_shmop.dll | 共享内存函数库 | 无
php_snmp.dll | SNMP 函数库 | 仅用于 Windows NT！
php_soap.dll | SOAP 函数库 | PHP >= 5.0.0
php_sockets.dll | Socket 函数库 | 无
php_sybase_ct.dll | Sybase 函数库 | 需要：Sybase 客户端库
php_tidy.dll | Tidy 函数库 | PHP >= 5.0.0
php_tokenizer.dll | Tokenizer 函数库 | 自 PHP 4.3.0 起内置
php_w32api.dll | W32api 函数库 | 无
php_xmlrpc.dll | XML-RPC 函数库 | PHP >= 4.2.1 需要 iconv.dll（已附带）
php_xslt.dll | XSLT 函数库 | PHP <= 4.2.0 需要 sablot.dll，expat.dll（已附带）。PHP >= 4.2.1 需要 sablot.dll，expat.dll，iconv.dll（已附带）。
php_yaz.dll | YAZ 函数库 | 需要：yaz.dll（已附带）
php_zip.dll | Zip 文件函数库 | 只读访问
php_zlib.dll | ZLib 压缩函数库 | 自 PHP 4.3.0 起内置

从源程序编译
PECL 扩展库安装
Windows 系统下的安装


PECL 扩展库安装

Table of Contents

  • PECL 安装介绍
  • 下载 PECL 扩展库
  • Windows 用户的 PECL
  • 用 PEAR 编译共享 PECL 扩展库
  • 用 phpize 编译共享 PECL 扩展库
  • 将 PECL 扩展库静态编译入 PHP
Windows 下安装扩展库
PECL 安装介绍
安装与配置


PECL 安装介绍

» PECL 是通过 » PEAR 打包系统来的 PHP 扩展库仓库，本章内容示范了怎样取得并安装 PECL 扩展。

以下指南中假定 /your/phpsrcdir/ 是 PHP 源程序的路径，extname 是 PECL 扩展库的名字。自己根据实际情况调整。此外还假定用户熟悉 » pear 命令。

要使用共享扩展库，必须经过编译，安装，然后加载。以下说明的方法提供了怎样编译和安装扩展库德各种指导，但并不会自动加载它们。可以通过将其包括在 php.ini 中用 extension PHP 指令加载，或者 用 dl() 函数。

当编译 PHP 模块时，拥有各种工具（autoconf，automake，libtool 等）的已知好使的版本很重要。所需工具和所需版本的详情见» 匿名 CVS 说明。

PECL 扩展库安装
下载 PECL 扩展库
PECL 扩展库安装


下载 PECL 扩展库

下载 PECL 扩展库有几种方法，如：

  • » http://pecl.php.net/ PECL 网站包括有 PHP 开发组提供的不同扩展库的信息。这里的信息包括：更新记录，版本说明，需求，以及其它信息。
  • pear download extname PECL 网站中列出的 PECL 扩展库的发行版本可以用 » pear 命令来下载和安装。也可以指明具体的修正版。
  • CVS 大多数 PECL 扩展库也在 CVS 中。其 web 页面见 » http://cvs.php.net/pecl/。要直接从 CVS 中下载，用以下命令，其中用户 cvsread 的密码是 phpfi：

    $ cvs -d:pserver:cvsread@cvs.php.net:/repository login
    $ cvs -d:pserver:cvsread@cvs.php.net:/repository co pecl/extname

  • Windows 下载 Windows 用户可以通过在 » PHP 下载页面下载 Collection of PECL modules 来找到已编译的 PECL 可执行程序，或下载 » PECL Snapshot。要在 Windows 下编译 PHP，请阅读有关章节。
PECL 安装介绍
Windows 用户的 PECL
PECL 扩展库安装


Windows 用户的 PECL

和其它任何 PHP 扩展库的 DLL 一样，把 PECL 扩展库的 DLL 移动到 extension_dir 目录并将其包括入 php.ini 来安装。例如：

extension=php_extname.dll

然后重新启动 web 服务器。

下载 PECL 扩展库
用 PEAR 编译共享 PECL 扩展库
PECL 扩展库安装


用 PEAR 编译共享 PECL 扩展库

PEAR 使建立共享 PHP 扩展库更容易。用 » pear 命令这样做：

$ pear install extname

这将下载 extname 的源代码，编译之，并将 extname.so 安装到 extension_dir 中。然后 extname.so 就可以通过 php.ini 加载了。

默认情况下，pear 命令不会安装标记为 alpha 或 beta 状态的包。如果没有 stable 包可用，也可以用以下命令安装一个 beta 包：

$ pear install extname-beta

也可以用此命令安装一个指定的版本：

$ pear install extname-0.1

Windows 用户的 PECL
用 phpize 编译共享 PECL 扩展库
PECL 扩展库安装


用 phpize 编译共享 PECL 扩展库

有时候不能用 pear 安装命令。这可能是因为在防火墙后面，或者是因为想要安装的扩展库还没有 PEAR 兼容的包，例如 CVS 中尚未发布的扩展库。如果要编译这种扩展库，可以用更底层的编译工具来手工进行编译。

phpize 命令是用来准备 PHP 扩展库的编译环境的。下面例子中，扩展库的源程序位于 extname 目录中：

$ cd extname
$ phpize
$ ./configure
$ make
# make install

成功的安装将创建 extname.so 并放置于 PHP 的扩展库目录中。需要调整 php.ini，加入 extension=extname.so 这一行之后才能使用此扩展库。

用 PEAR 编译共享 PECL 扩展库
将 PECL 扩展库静态编译入 PHP
PECL 扩展库安装


将 PECL 扩展库静态编译入 PHP

有时可能需要将扩展库静态编译到 PHP 中。这需要将扩展库源程序放入 php-src/ext/ 目录中去并告诉 PHP 编译系统来生成其配置脚本。

$ cd /your/phpsrcdir/ext
$ pear download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

这将产生以下目录：

/your/phpsrcdir/ext/extname

此时强制 PHP 重新生成配置脚本，然后正常编译 PHP：

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Note: 要运行“buildconf”脚本，需要 autoconf 2.13 和 automake 1.4+（更新版本的 autoconf 也许能工作，但不被支持）。

是否用 --enable-extname 或 --with-extname 取决于扩展库。通常不需要外部库文件的扩展库使用 --enable。要确认的话，在 buildconf 之后运行：

$ ./configure --help | grep extname

用 phpize 编译共享 PECL 扩展库
还有问题？
PECL 扩展库安装


还有问题？

Table of Contents

  • 阅读 FAQ
  • 其它问题
  • 错误报告
将 PECL 扩展库静态编译入 PHP
阅读 FAQ
安装与配置


阅读 FAQ

有些问题比其它的更为普遍。最常见的列在 PHP 常见问题中，是本手册的一部分。

还有问题？
其它问题
还有问题？


其它问题

如果还卡着，PHP 安装邮件列表中的人可能会帮你。应该先查看归档，也许有人已经回答了另一个人提出的和你相同的问题。归档可以从支持页 » http://www.php.net/support.php 访问到。要订阅 PHP 安装邮件列表，发送一封空邮件去 » php-install-subscribe@lists.php.net。邮件列表地址是 » php-install@lists.php.net。

如果想从邮件列表中取得帮助，请准确给出有关你的环境的必要细节（哪个操作系统，PHP 的版本，哪个 web 服务器，是否以 CGI 方式还是以服务器模块方式运行 PHP，安全模式，等等），并给出足够的代码让别人能重现和测试你碰到的问题。

阅读 FAQ
错误报告
还有问题？


错误报告

如果你觉得自己发现了一个 PHP 的 bug，请提出报告。PHP 开发人员也许还不知道有问题，除非你报告了，否则有可能不会被修正。可以通过错误跟踪系统 » http://bugs.php.net/ 来报告错误。请不要在邮件列表或私人信件中发送错误报告。错误跟踪系统也可以用来提出对新特性的要求。

在提交错误报告之前请先阅读» 怎样报告错误！

其它问题
运行时配置
还有问题？


运行时配置

Table of Contents

  • 配置文件
  • 怎样修改配置设定
错误报告
配置文件
安装与配置


配置文件

配置文件（PHP 3 中是 php3.ini，自 PHP 4 起是 php.ini）在 PHP 启动时被读取。对于服务器模块版本的 PHP，仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本，每次调用都会读取。

php.ini 的搜索路径如下（按顺序）：

  • SAPI 模块所指定的位置（Apache 2 中的 PHPIniDir 指令，CGI 和 CLI 中的 -c 命令行选项，NSAPI 中的 php_ini 参数，THTTPD 中的 PHP_INI_PATH 环境变量）

  • HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath（Windows 注册表位置）

  • PHPRC 环境变量

  • 当前工作目录（对于 CLI）

  • web 服务器目录（对于 SAPI 模块）或 PHP 所在目录（Windows 下其它情况）

  • Windows 目录（C:\windows 或 C:\winnt），或 --with-config-file-path 编译时选项指定的位置

如果存在 php-SAPI.ini（SAPI 是当前所用的 SAPI 名称，因此实际文件名为 php-cli.ini 或 php-apache.ini 等），则会用它替代 php.ini。SAPI 的名称可以用 php_sapi_name() 来测定。

Note: Apache web 服务器在启动时会把目录转到根目录，这将导致 PHP 尝试在根目录下读取 php.ini，如果存在的话。

由扩展库处理的 php.ini 指令，其文档分别在各扩展库的页面。内核配置选项见附录。不过也许不是所有的 PHP 指令都在手册中有文档说明。要得到自己的 PHP 版本中的配置指令完整列表，请阅读 php.ini 文件，其中都有注释。此外，也许从 CVS 得到的» 最新版 php.ini 也有帮助。

Example #1 php.ini 例子

; any text on a line after an unquoted semicolon (;) is ignored
[php] ; section markers (text within square brackets) are also ignored
; Boolean values can be set to either:
;    true, on, yes
; or false, off, no, none
register_globals = off
track_errors = yes

; you can enclose strings in double-quotes
include_path = ".:/usr/local/lib/php"

; backslashes are treated the same as any other character
include_path = ".;c:\php\lib"

自 PHP 5.1.0 起，有可能在 .ini 文件内引用已存在的 .ini 变量。例如：open_basedir = ${open_basedir} ":/new/dir"。

运行时配置
怎样修改配置设定
运行时配置


怎样修改配置设定

PHP 运行于 Apache 模块方式

当使用 PHP 作为 Apache 模块时，也可以用 Apache 的配置文件（例如 httpd.conf）和 .htaccess 文件中的指令来修改 PHP 的配置设定。需要有“AllowOverride Options”或“AllowOverride All”权限才可以。

在 PHP 4 和 PHP 5 中，有几个 Apache 指令可以使用户在 Apache 配置文件内部修改 PHP 的配置。哪些指令属于 PHP_INI_ALL，PHP_INI_PERDIR 或 PHP_INI_SYSTEM 中的哪一个，请参考附录中的 php.ini 配置选项列表。

Note: 在 PHP 3 中，每个 php3.ini 中的配置设定都有相应的 Apache 指令，不过名字前要加上前缀“php3_”。

php_value name value

设定指定的值。只能用于 PHP_INI_ALL 或 PHP_INI_PERDIR 类型的指令。要清除先前设定的值，把 value 设为 none。

Note: 不要用 php_value 设定布尔值。应该用 php_flag （见下面）。

php_flag name on|off

用来设定布尔值的配置指令。仅能用于 PHP_INI_ALL 和 PHP_INI_PERDIR 类型的指令。

php_admin_value name value

设定指定的指令的值。不能用于 .htaccess 文件。任何用 php_admin_value 设定的指令都不能被 .htaccess 或 virtualhost 中的指令覆盖。要清除先前设定的值，把 value 设为 none。

php_admin_flag name on|off

用来设定布尔值的配置指令。不能用于 .htaccess 文件。任何用 php_admin_flag 设定的指令都不能被 .htaccess 或 virtualhost 中的指令覆盖。

Example #1 Apache 配置例子

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Caution

PHP 常量不存在于 PHP 之外。例如在 httpd.conf 中不能使用 PHP 常量如 E_ALL 或 E_NOTICE 来设定 error_reporting 指令，因为其无意义，实际等于 0。应该用相应的掩码值来替代。这些常量可以在 php.ini 中使用。

通过 Windows 注册表修改 PHP 配置

在 Windows 下运行 PHP 时，可以用 Windows 注册表以目录为单位来修改配置。配置值存放于注册表项 HKLM\SOFTWARE\PHP\Per Directory Values 下面，子项对应于路径名。例如对于目录 c:\inetpub\wwwroot 的配置值会存放于 HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot 项下面。其中的设定对于任何位于此目录及其任何子目录的脚本都有效。项中的值的名称是 PHP 配置指令的名字，值的数据是字符串格式的指令值。值中的 PHP 常量不被解析。不过只有可修改范围是 PHP_INI_USER 的配置值可以用此方法设定，PHP_INI_PERDIR 的值就不行。

其它接口下的 PHP

无论怎样运行 PHP，都可以在脚本中通过 ini_set() 而在运行时修改某个值。更多信息见手册中 ini_set() 的页面。

如果对自己系统中的配置设定及其当前值的完整列表感兴趣，可以运行
phpinfo() 函数并查看其结果的页面。也可以在运行时用
ini_get() 或
get_cfg_var() 取得个别配置指令的值。

配置文件
语言参考
运行时配置


语言参考

  • 基本语法
    • 从 HTML 中分离
    • 指令分隔符
    • 注释
  • 类型
    • 简介
    • 布尔类型
    • 整型
    • 浮点型
    • Strings
    • 数组
    • 对象
    • 资源类型
    • NULL
    • 本文档中使用的伪类型
    • 类型转换的判别
  • 变量
    • 基础
    • 预定义变量
    • 变量范围
    • 可变变量
    • 来自 PHP 之外的变量
  • 常量
    • 语法
    • 魔术常量
  • 表达式
  • 运算符
    • 运算符优先级
    • 算术运算符
    • 赋值运算符
    • 位运算符
    • 比较运算符
    • 错误控制运算符
    • 执行运算符
    • 递增／递减运算符
    • 逻辑运算符
    • 字符串运算符
    • 数组运算符
    • 类型运算符
  • 控制结构
    • if
    • else
    • elseif/else if
    • 流程控制的替代语法
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
  • 函数
    • 用户自定义函数
    • 函数的参数
    • 返回值
    • 可变函数
    • 内部（内置）函数
  • 类与对象（PHP 4）
    • 类
    • 继承
    • 构造函数
    • 范围解析操作符（::）
    • parent
    • 序列化对象 － 会话中的对象
    • 魔术函数 __sleep 和 __wakeup
    • 构造函数中的引用
    • 对象的比较
  • 类与对象（PHP 5）
    • 前言
    • 基本概念
    • 自动加载对象
    • 构造函数和析构函数
    • 访问控制
    • 范围解析操作符（::）
    • Static关键字
    • 类常量
    • 抽象类
    • 接口
    • 重载
    • 对象迭代
    • 设计模式
    • 魔术方法
    • Final关键字
    • 对象复制
    • 对象比较
    • Reflection
    • Type Hinting
    • Late Static Bindings
    • Objects and references
  • 命名空间
    • 命名空间概述
    • 定义命名空间
    • 定义子命名空间
    • 在同一个文件中定义多个命名空间
    • 使用命名空间：基础
    • 命名空间和动态语言特征
    • namespace关键字和__NAMESPACE__常量
    • 使用命名空间：别名/导入
    • 全局空间
    • 使用命名空间：后备全局函数/常量
    • 名称解析规则
    • FAQ: things you need to know about namespaces
  • 异常处理
    • 扩展 PHP 内置的异常处理类
  • 引用的解释
    • 引用是什么
    • 引用做什么
    • 引用不是什么
    • 引用传递
    • 引用返回
    • 取消引用
    • 引用定位
  • Predefined variables
    • Superglobals — Superglobals are built-in variables that are always available in all scopes
    • $GLOBALS — References all variables available in global scope
    • $_SERVER — Server and execution environment information
    • $_GET — HTTP GET variables
    • $_POST — HTTP POST variables
    • $_FILES — HTTP File Upload variables
    • $_REQUEST — HTTP Request variables
    • $_SESSION — Session variables
    • $_ENV — Environment variables
    • $_COOKIE — HTTP Cookies
    • $php_errormsg — The previous error message
    • $HTTP_RAW_POST_DATA — Raw POST data
    • $http_response_header — HTTP response headers
    • $argc — The number of arguments passed to script
    • $argv — Array of arguments passed to script
  • Predefined Exceptions
    • Exception
    • ErrorException
  • Predefined Interfaces
    • Traversable — The Traversable interface
    • Iterator — The Iterator interface
    • IteratorAggregate — The IteratorAggregate interface
    • ArrayAccess — The ArrayAccess interface
    • Serializable — The Serializable interface
  • Context options and parameters
    • Socket context options — Socket context option listing
    • HTTP context options — HTTP context option listing
    • FTP context options — FTP context option listing
    • SSL context options — SSL context option listing
    • CURL context options — CURL context option listing
    • Phar context options — Phar context option listing
    • Context parameters — Context parameter listing
怎样修改配置设定
基本语法


基本语法

Table of Contents

  • 从 HTML 中分离
  • 指令分隔符
  • 注释
语言参考
从 HTML 中分离
语言参考


从 HTML 中分离

当 PHP 解析一个文件时，会寻找开始和结束标记，标记告诉 PHP 开始和停止解释其中的代码。此种方式的解析可以使 PHP 嵌入到各种不同的文档中，凡是在一对开始和结束标记之外的内容都会被 PHP 解析器忽略。大多数情况下 PHP 都是嵌入在 HTML 文档中的，如下例所示。

<p>This is going to be ignored.</p>
<?php echo 'While this is going to be parsed.'; ?>
<p>This will also be ignored.</p>

还可以用更高级的结构：

Example #1 高级分离术

<?php
if ($expression) {
    ?>
    <strong>This is true.</strong>
    <?php
} else {
    ?>
    <strong>This is false.</strong>
    <?php
}
?>

上例可正常工作，因为当 PHP 碰到结束标记 ?> 时，就简单地将其后的内容原样输出（ 除非其后紧接着一个新行,参见指令分隔符 )直到碰到下一个开始标记为止。当然，上面的例子很做作，但是对输出大块的文本而言，脱离 PHP 解析模式通常比将所有内容用 echo() 或者 print() 输出更有效率。

可以在 PHP 中使用四对不同的开始和结束标记。其中两种，<?php ?> 和 <script language="php"> </script> 总是可用的。另两种是短标记和 ASP 风格标记，可以在 php.ini 配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便，但移植性较差，通常不推荐。

Note: 此外注意如果将 PHP 嵌入到 XML 或 XHTML 中则需要使用 <?php ?> 以保持符合标准。

Example #2 PHP 开始和结束标记

1.  <?php echo 'if you want to serve XHTML or XML documents, do like this'; ?>

2.  <script language="php">
        echo 'some editors (like FrontPage) don\'t
              like processing instructions';
    </script>

3.  <? echo 'this is the simplest, an SGML processing instruction'; ?>
    <?= expression ?> This is a shortcut for "<? echo expression ?>"

4.  <% echo 'You may optionally use ASP-style tags'; %>
    <%= $variable; # This is a shortcut for "<% echo . . ." %>

上例中的 1 和 2 总是可用的，其中 1 是最常用，并建议使用的。

短标记（上例 3）仅在通过 php.ini 配置文件中的指令 short_open_tag 打开后才可用，或者在 PHP 编译时加入了 --enable-short-tags 选项。

ASP 风格标记（上例 4）仅在通过 php.ini 配置文件中的指令 asp_tags 打开后才可用。

Note: 在以下情况应避免使用短标记：开发需要发行的程序或者库，或者在用户不能控制的服务器上开发。因为目标服务器可能不支持短标记。为了代码的移植及发行，确保不要使用短标记。

基本语法
指令分隔符
基本语法


指令分隔符

同 C 或 Perl 一样，PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号；在一个 PHP 代码段中的最后一行可以不用分号结束。如果后面还有新行，则代码段的结束标记包含了行结束。

<?php
    echo "This is a test";
?>

<?php echo "This is a test" ?>

<?php echo 'We omitted the last closing tag';

Note: 文件末尾的 PHP 代码段结束标记可以不要，有些情况下当使用 include() 或者 require() 时省略掉会更好些，这样不期望的白空格就不会出现在文件末尾，之后仍然可以输出响应标头。在使用输出缓冲时也很便利，就不会看到由包含文件生成的不期望的白空格。

从 HTML 中分离
注释
基本语法


注释

PHP 支持 C，C++ 和 Unix Shell 风格（Perl 风格）的注释。例如:

<?php
    echo "This is a test"; // This is a one-line c++ style comment
    /* This is a multi line comment
       yet another line of comment */
    echo "This is yet another test";
    echo 'One Final Test'; # This is a one-line shell-style comment
?>

单行注释仅仅注释到行末或者当前的 PHP 代码块，视乎哪个首先出现。这意味着在 // ... ?> 或者 # ... ?> 之后的 HTML 代码将被显示出来：?> 跳出了 PHP 模式并返回了 HTML 模式，// 或 # 并不能影响到这一点。如果启用了 asp_tags 配置选项，其行为和 // %> 或 # %> 相同。不过，</script> 标记在单行注释中不会跳出 PHP 模式。

<h1>This is an <?php # echo "simple";?> example.</h1>
<p>The header above will say 'This is an example'.

C 风格的注释在碰到第一个 */ 时结束。要确保不要嵌套 C 风格的注释。试图注释掉一大块代码时很容易出现该错误。

<?php
 /*
    echo "This is a test"; /* This comment will cause a problem */
 */
?>

指令分隔符
类型
基本语法


类型

Table of Contents

  • 简介
  • 布尔类型
  • 整型
  • 浮点型
  • Strings
  • 数组
  • 对象
  • 资源类型
  • NULL
  • 本文档中使用的伪类型
  • 类型转换的判别
注释
简介
语言参考


简介

PHP 支持8种基本的数据类型。

四种标量类型：

  • boolean （布尔型）
  • integer （整型）
  • float （符点型, 也称作 double)
  • string （字符串）

两种复合类型：

  • array （数组）
  • object （对象）

最后是两种特殊类型：

  • resource　（资源）
  • NULL　（NULL）

为了确保代码的易读性，本手册还介绍了一些伪类型：

  • mixed
  • number
  • callback

以及伪变量 $... .

可能还会读到一些关于“双精度（double）”类型的参考。实际上 double 和 float 是相同的，由于一些历史的原因，这两个名称同时存在。

变量的类型通常不是由程序员设定的，确切地说，是由 PHP 根据该变量使用的上下文在运行时决定的。

Note: 如果想查看某个表达式的值和类型，用 var_dump()。 如果只是想得到一个易读懂的类型的表达方式用于调试，用 gettype()。要查看某个类型，不要用 gettype()，而用 is_type 函数。以下是一些范例：

<?php
$a_bool = TRUE;   // a boolean
$a_str  = "foo";  // a string
$a_str2 = 'foo';  // a string
$an_int = 12;     // an integer

echo gettype($a_bool); // prints out:  boolean
echo gettype($a_str);  // prints out:  string

// If this is an integer, increment it by four
if (is_int($an_int)) {
    $an_int += 4;
}

// If $bool is a string, print it out
// (does not print out anything)
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?>

如果要将一个变量强制转换为某类型，可以对其使用强制转换或者 settype() 函数。

注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见类型戏法。此外，你还可以参考 PHP 类型比较表看不同类型相互比较的例子。

类型
布尔类型
类型


布尔类型

这是最简单的类型。boolean 表达了真值，可以为 TRUE 或 FALSE。

Note: 布尔类型是 PHP 4 引进的。

语法

要指定一个布尔值，使用关键字 TRUE 或 FALSE。两个都不区分大小写。

<?php
$foo = True; // assign the value TRUE to $foo
?>

通常你用某些运算符返回 boolean 值，并将其传递给控制流程。

<?php
// == 是一个操作符，它检测两个变量是否相等，并返回一个布尔值
if ($action == "show_version") {
    echo "The version is 1.23";
}

// 这样做是不必要的...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...因为可以使用下面这种简单的方式：
if ($show_separators) {
    echo "<hr>\n";
}
?>

转换为布尔值

要明确地将一个值转换成 boolean，用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换，因为当运算符，函数或者流程控制结构需要一个 boolean 参数时，该值会被自动转换。

参见类型戏法。

当转换为 boolean 时，以下值被认为是 FALSE：

  • the 布尔值 FALSE 自身
  • the 整型值 0 (零)
  • the 浮点型值 0.0 (零)
  • 空 字符串, 以及 字符串 "0"
  • 不包括任何元素的数组
  • 不包括任何成员变量的对象（仅PHP 4.0 适用）
  • 特殊类型 NULL (包括尚未设定的变量)
  • 从没有任何标记（tags）的XML文档生成的SimpleXML 对象

所有其它值都被认为是 TRUE（包括任何资源）。

Warning

-1 和其它非零值（不论正负）一样，被认为是 TRUE！

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>
简介
整型
类型


整型

一个 integer 是集合 Z = {..., -2, -1, 0, 1, 2, ...} 中的一个数。

参见

  • 任意长度整数 / GMP
  • 浮点数
  • 任意精度数学库 / BCMath

语法

整型值可以使用十进制，十六进制或八进制表示，前面可以加上可选的符号（- 或者 +）。

八进制表示数字前必须加上 0（零），十六进制表示数字前必须加上 0x。

Example #1 整数文字表达

<?php
$a = 1234; // 十进制数
$a = -123; // 负数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
?>

整型(integer)的形式描述：

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal

整型数的字长和平台有关，尽管通常最大值是大约二十亿（32 位有符号）。PHP 不支持无符号整数。Integer值的字长可以用常量PHP_INT_SIZE来表示，自 PHP 4.4.0 和 PHP 5.0.5后，最大值可以用常量PHP_INT_MAX来表示。

Warning

如果向八进制数传递了一个非法数字（即 8 或 9），则后面其余数字会被忽略。

Example #2 八进制数的怪事

<?php
var_dump(01090); // 八进制 010 = 十进制 8
?>

整数溢出

如果给定的一个数超出了 integer 的范围，将会被解释为 float。同样如果执行的运算结果超出了 integer 范围，也会返回 float。

<?php
$large_number =  2147483647;
var_dump($large_number);
// 输出为：int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// 输出为：float(2147483648)

// 同样也适用于十六进制表示的整数： 从 2^31 到 2^32-1:
var_dump( 0xffffffff );
// 输出: float(4294967295)

// 不适用于大于 2^32-1　的十六进制表示的数:
var_dump( 0x100000000 );
// 输出: int(2147483647)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);
// 输出: float(50000000000)
?>
Warning

不幸的是 PHP 中有个 bug，因此当有负数参与时结果并不总是正确。例如当运算 -50000 * $million 时结果是 -429496728。不过当两个运算数都是正数时就没问题。

这个问题已经在 PHP 4.1.0 中解决了。

PHP 中没有整除的运算符。1/2 产生出 float 0.5。可以总是舍弃小数部分，或者使用 round() 函数。 There is no integer division operator in PHP. 1/2 yields the float 0.5. The value can be casted to an integer to round it downwards, or the round() function provides finer control over rounding.

<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

转换为整型

要明确地将一个值转换为 integer，用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换，因为当运算符，函数或流程控制需要一个 integer 参数时，值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。

参见: 类型转换的判别.

从布尔值转换

FALSE 将产生出 0（零），TRUE 将产生出 1（壹）。

从符点数转换

当从浮点数转换成整数时，将向零取整。

如果浮点数超出了整数范围（通常为 +/- 2.15e+9 = 2^31），则结果不确定，因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告，甚至没有任何通知！

Warning

决不要将未知的分数强制转换为 integer，这样有时会导致不可预料的结果。

<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7!
?>

参见 关于浮点数精度的警告。

从字符串转换

参见 字符串转换为数字

从其它类型转换

Caution

没有定义从其它类型转换为整型的行为。不要依赖任何可见的行为，因为它会未加通知地改变。 The behaviour of converting to integer is undefined for other types. Do not rely on any observed behaviour, as it can change without notice.

布尔类型
浮点型
类型


浮点型

浮点数（也叫浮点数，双精度数或实数）可以用以下任一语法定义：

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

浮点数的形式表示：

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})

浮点数的字长和平台相关，尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度（64 位 IEEE 格式）。

Warning

关于浮点数精度的警告

显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果：例如，floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8，因为该结果内部的表示其实是类似 7.9。

这和一个事实有关，那就是不可能精确的用有限位数表达某些十进制分数。例如，十进制的 1/3 变成了 0.3。

所以永远不要相信浮点数结果精确到了最后一位，也永远不要比较两个浮点数是否相等。如果确实需要更高的精度，应该使用任意精度数学函数或者 gmp 函数。

转换为浮点数

如果希望了解有关何时和如何将字符串转换成浮点数的信息，请查阅“将字符串转换为数值”一节。对于其它类型的值，其情况类似于先将值转换成整型，然后再转换成浮点。请参阅“转换为整型”一节以获取更多信息。自 PHP 5 起，如果试图将对象转换为浮点数，会发出一条 E_NOTICE 错误。

整型
Strings
类型


Strings

A string is series of characters. Before PHP 6, a character is the same as a byte. That is, there are exactly 256 different characters possible. This also implies that PHP has no native support of Unicode. See utf8_encode() and utf8_decode() for some basic Unicode functionality.

Note: It is no problem for a string to become very large. PHP imposes no boundary on the size of a string; the only limit is the available memory of the computer on which PHP is running.

Syntax

A string literal can be specified in four different ways:

  • single quoted
  • double quoted
  • heredoc syntax
  • nowdoc syntax (since PHP 5.3.0)

Single quoted

The simplest way to specify a string is to enclose it in single quotes (the character ').

To specify a literal single quote, escape it with a backslash (\). To specify a literal backslash before a single quote, or at the end of the string, double it (\\). Note that attempting to escape any other character will print the backslash too.

Note: Unlike the two other syntaxes, variables and escape sequences for special characters will not be expanded when they occur in single quoted strings.

<?php
echo 'this is a simple string';

echo 'You can also have embedded newlines in
strings this way as it is
okay to do';

// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// Outputs: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>

Double quoted

If the string is enclosed in double-quotes ("), PHP will interpret more escape sequences for special characters:

Escaped characters
Sequence | Meaning
\n | linefeed (LF or 0x0A (10) in ASCII)
\r | carriage return (CR or 0x0D (13) in ASCII)
\t | horizontal tab (HT or 0x09 (9) in ASCII)
\v | vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
\f | form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
\\ | backslash
\$ | dollar sign
\" | double-quote
\[0-7]{1,3} | the sequence of characters matching the regular expression is a character in octal notation
\x[0-9A-Fa-f]{1,2} | the sequence of characters matching the regular expression is a character in hexadecimal notation

As in single quoted strings, escaping any other character will result in the backslash being printed too. Before PHP 5.1.1, the backslash in \{$var} was not been printed.

The most important feature of double-quoted strings is the fact that variable names will be expanded. See string parsing for details.

Heredoc

A third way to delimit strings is the heredoc syntax: <<<. After this operator, an identifier is provided, then a newline. The string itself follows, and then the same identifier again to close the quotation.

The closing identifier must begin in the first column of the line. Also, the identifier must follow the same naming rules as any other label in PHP: it must contain only alphanumeric characters and underscores, and must start with a non-digit character or underscore.

Warning

It is very important to note that the line with the closing identifier must contain no other characters, except possibly a semicolon (;). That means especially that the identifier may not be indented, and there may not be any spaces or tabs before or after the semicolon. It's also important to realize that the first character before the closing identifier must be a newline as defined by the local operating system. This is \n on UNIX systems, including Mac OS X. The closing delimiter (possibly followed by a semicolon) must also be followed by a newline.

If this rule is broken and the closing identifier is not "clean", it will not be considered a closing identifier, and PHP will continue looking for one. If a proper closing identifier is not found before the end of the current file, a parse error will result at the last line.

Heredocs can not be used for initializing class members. Since PHP 5.3, this limitation is valid only for heredocs containing variables.

Example #1 Invalid example

<?php
class foo {
    public $bar = <<<EOT
bar
EOT;
}
?>

Heredoc text behaves just like a double-quoted string, without the double quotes. This means that quotes in a heredoc do not need to be escaped, but the escape codes listed above can still be used. Variables are expanded, but the same care must be taken when expressing complex variables inside a heredoc as with strings.

Example #2 Heredoc string quoting example

<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    var $foo;
    var $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MyName';

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

上例将输出：

My name is "MyName". I am printing some Foo.
Now, I am printing some Bar2.
This should print a capital 'A': A

Its also possible to use the Heredoc syntax to pass data to function arguments:

Example #3 Heredoc in arguments example

<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>

Note: Heredoc support was added in PHP 4.

Nowdoc

Nowdocs are to single-quoted strings what heredocs are to double-quoted strings. A nowdoc is specified similarly to a heredoc, but no parsing is done inside a nowdoc. The construct is ideal for embedding PHP code or other large blocks of text without the need for escaping. It shares some features in common with the SGML <![CDATA[ ]]> construct, in that it declares a block of text which is not for parsing.

A nowdoc is identified with the same <<< seqeuence used for heredocs, but the identifier which follows is enclosed in single quotes, e.g. <<<'EOT'. All the rules for heredoc identifiers also apply to nowdoc identifiers, especially those regarding the appearance of the closing identifier.

Example #4 Nowdoc string quoting example

<?php
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    public $foo;
    public $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MyName';

echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT;
?>

上例将输出：

My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41

Note: Unlike heredocs, nowdocs can be used in any static data context. The typical example is initializing class members or constants:

Example #5 Static data example

<?php
class foo {
    public $bar = <<<'EOT'
bar
EOT;
}
?>

Note: Nowdoc support was added in PHP 5.3.0.

Variable parsing

When a string is specified in double quotes or with heredoc, variables are parsed within it.

There are two types of syntax: a simple one and a complex one. The simple syntax is the most common and convenient. It provides a way to embed a variable, an array value, or an object property in a string with a minimum of effort.

The complex syntax was introduced in PHP 4, and can be recognised by the curly braces surrounding the expression.

Simple syntax

If a dollar sign ($) is encountered, the parser will greedily take as many tokens as possible to form a valid variable name. Enclose the variable name in curly braces to explicitly specify the end of the name.

<?php
$beer = 'Heineken';
echo "$beer's taste is great"; // works; "'" is an invalid character for variable names
echo "He drank some $beers";   // won't work; 's' is a valid character for variable names but the variable is "$beer"
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
?>

Similarly, an array index or an object property can be parsed. With array indices, the closing square bracket (]) marks the end of the index. The same rules apply to object properties as to simple variables.

<?php
// These examples are specific to using arrays inside of strings.
// When outside of a string, always quote array string keys and do not use
// {braces}.

// Show all errors
error_reporting(E_ALL);

$fruits = array('strawberry' => 'red', 'banana' => 'yellow');

// Works, but note that this works differently outside a string
echo "A banana is $fruits[banana].";

// Works
echo "A banana is {$fruits['banana']}.";

// Works, but PHP looks for a constant named banana first, as described below.
echo "A banana is {$fruits[banana]}.";

// Won't work, use braces.  This results in a parse error.
echo "A banana is $fruits['banana'].";

// Works
echo "A banana is " . $fruits['banana'] . ".";

// Works
echo "This square is $square->width meters broad.";

// Won't work. For a solution, see the complex syntax.
echo "This square is $square->width00 centimeters broad.";
?>

For anything more complex, you should use the complex syntax.

Complex (curly) syntax

This isn't called complex because the syntax is complex, but because it allows for the use of complex expressions.

In fact, any value in the namespace can be included in a string with this syntax. Simply write the expression the same way as it would have appeared outside the string, and then wrap it in { and }. Since { can not be escaped, this syntax will only be recognised when the $ immediately follows the {. Use {\$ to get a literal {$. Some examples to make it clear:

<?php
// Show all errors
error_reporting(E_ALL);

$great = 'fantastic';

// Won't work, outputs: This is { fantastic}
echo "This is { $great}";

// Works, outputs: This is fantastic
echo "This is {$great}";
echo "This is ${great}";

// Works
echo "This square is {$square->width}00 centimeters broad.";

// Works
echo "This works: {$arr[4][3]}";

// This is wrong for the same reason as $foo[bar] is wrong  outside a string.
// In other words, it will still work, but only because PHP first looks for a
// constant named foo; an error of level E_NOTICE (undefined constant) will be
// thrown.
echo "This is wrong: {$arr[foo][3]}";

// Works. When using multi-dimensional arrays, always use braces around arrays
// when inside of strings
echo "This works: {$arr['foo'][3]}";

// Works.
echo "This works: " . $arr['foo'][3];

echo "This works too: {$obj->values[3]->name}";

echo "This is the value of the var named $name: {${$name}}";

echo "This is the value of the var named by the return value of getName(): {${getName()}}";

echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";
?>

Note: Functions and method calls inside {$} work since PHP 5.

String access and modification by character

Characters within strings may be accessed and modified by specifying the zero-based offset of the desired character after the string using square array brackets, as in $str[42]. Think of a string as an array of characters for this purpose.

Note: Strings may also be accessed using braces, as in $str{42}, for the same purpose. However, this syntax is deprecated as of PHP 6. Use square brackets instead.

Warning

Writing to an out of range offset pads the string with spaces. Non-integer types are converted to integer. Illegal offset type emits E_NOTICE. Negative offset emits E_NOTICE in write but reads empty string. Only the first character of an assigned string is used. Assigning empty string assigns NUL byte.

Example #6 Some string examples

<?php
// Get the first character of a string
$str = 'This is a test.';
$first = $str[0];

// Get the third character of a string
$third = $str[2];

// Get the last character of a string.
$str = 'This is still a test.';
$last = $str[strlen($str)-1];

// Modify the last character of a string
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

Note: Accessing variables of other types using [] or {} silently returns NULL.

Useful functions and operators

Strings may be concatenated using the '.' (dot) operator. Note that the '+' (addition) operator will not work for this. See String operators for more information.

There are a number of useful functions for string manipulation.

See the string functions section for general functions, and the regular expression functions or the Perl-compatible regular expression functions for advanced find & replace functionality.

There are also functions for URL strings, and functions to encrypt/decrypt strings (mcrypt and mhash).

Finally, see also the character type functions.

Converting to string

A value can be converted to a string using the (string) cast or the strval() function. String conversion is automatically done in the scope of an expression where a string is needed. This happens when using the echo() or print() functions, or when a variable is compared to a string. The sections on Types and Type Juggling will make the following clearer. See also the settype() function.

A boolean TRUE value is converted to the string "1". Boolean FALSE is converted to "" (the empty string). This allows conversion back and forth between boolean and string values.

An integer or float is converted to a string representing the number textually (including the exponent part for floats). Floating point numbers can be converted using exponential notation (4.1E+6).

Note: The decimal point character is defined in the script's locale (category LC_NUMERIC). See the setlocale() function.

Arrays are always converted to the string "Array"; because of this, echo() and print() can not by themselves show the contents of an array. To view a single element, use a construction such as echo $arr['foo']. See below for tips on viewing the entire contents.

Objects in PHP 4 are always converted to the string "Object". To print the values of object members for debugging reasons, read the paragraphs below. To get an object's class name, use the get_class() function. As of PHP 5, the __toString method is used when applicable.

Resources are always converted to strings with the structure "Resource id #1", where 1 is the unique number assigned to the resource by PHP at runtime. Do not rely upon this structure; it is subject to change. To get a resource's type, use the get_resource_type() function.

NULL is always converted to an empty string.

As stated above, directly converting an array, object, or resource to a string does not provide any useful information about the value beyond its type. See the functions print_r() and var_dump() for more effective means of inspecting the contents of these types.

Most PHP values can also be converted to strings for permanent storage. This method is called serialization, and is performed by the serialize() function. If the PHP engine was built with WDDX support, PHP values can also be serialized as well-formed XML text.

String conversion to numbers

When a string is evaluated in a numeric context, the resulting value and type are determined as follows.

The string will be evaluated as a float if it contains any of the characters '.', 'e', or 'E'. Otherwise, it will be evaluated as an integer.

The value is given by the initial portion of the string. If the string starts with valid numeric data, this will be the value used. Otherwise, the value will be 0 (zero). Valid numeric data is an optional sign, followed by one or more digits (optionally containing a decimal point), followed by an optional exponent. The exponent is an 'e' or 'E' followed by one or more digits.

<?php
$foo = 1 + "10.5";                // $foo is float (11.5)
$foo = 1 + "-1.3e3";              // $foo is float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo is integer (1)
$foo = 1 + "bob3";                // $foo is integer (1)
$foo = 1 + "10 Small Pigs";       // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1;          // $foo is float (11)
$foo = "10.0 pigs " + 1.0;        // $foo is float (11)
?>

For more information on this conversion, see the Unix manual page for strtod(3).

To test any of the examples in this section, cut and paste the examples and insert the following line to see what's going on:

<?php
echo "\$foo==$foo; type is " . gettype ($foo) . "<br />\n";
?>

Do not expect to get the code of one character by converting it to integer, as is done in C. Use the ord() and chr() functions to convert between ASCII codes and characters.

浮点型
数组
类型


数组

PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化，因此可以把它当成真正的数组，或列表（向量），散列表（是映射的一种实现），字典，集合，栈，队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。

解释这些结构超出了本手册的范围，但对于每种结构至少会提供一个例子。要得到这些结构的更多信息，建议参考有关此广阔主题的其它著作。

语法

定义数组 array()

可以用 array() 语言结构来新建一个 array。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

array(  key =>  value
     , ...
     )
// 键(key) 可是是一个 整数(integer) 或 字符串(string)
// 值(value) 可以是任意类型的值
<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

key 可以是 integer 或者 string。如果key是一个 integer 的标准表示，则被解释为整数（例如 "8" 将被解释为 8，而 "08" 将被解释为 "08"）。key 中的浮点数被取整为 integer。在 PHP 中索引数组与关联 数组 是相同的，它们都可以同时包含 整型 和 字符串 的下标。

值可以是任意的 PHP 类型。

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

如果对给出的值没有指定键名，则取当前最大的整数索引值，而新的键名将是该值加一。如果指定的键名已经有了值，则该值会被覆盖。

<?php
// 这个数组与下面的数组相同 ...
array(5 => 43, 32, 56, "b" => 12);

// ...
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
Warning

自 PHP 4.3.0 起，上述的索引生成方法改变了。如今如果给一个当前最大键名是负值的数组添加一个新值，则新生成的的索引将为零（0）。以前新生成的索引为当前最大索引加一，和正值的索引相同。

使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建（或覆盖）一个用空字符串作为键名的值，这和用空的方括号不一样。

不能用数组和对象作为键(key)。这样做会导致一个警告：Illegal offset type。

用方括号的语法新建／修改

可以通过明示地设定值来改变一个现有的数组。

这是通过在方括号内指定键名来给数组赋值实现的。也可以省略键名，在这种情况下给变量名加上一对空的方括号（“[]”）。

$arr[key] = value;
$arr[] = value;
// key 可以是 integer 或 string
// value 可以是任意类型的值

如果 $arr 还不存在，将会新建一个。这也是一种定义数组的替换方法。要改变一个值，只要给它赋一个新值。如果要删除一个键名／值对，要对它用 unset()。

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // This is the same as $arr[13] = 56;
                // at this point of the script

$arr["x"] = 42; // This adds a new element to
                // the array with key "x"

unset($arr[5]); // This removes the element from the array

unset($arr);    // This deletes the whole array
?>

Note: 如上所述，如果给出方括号但没有指定键名，则取当前最大整数索引值，新的键名将是该值 + 1。如果当前还没有整数索引，则键名将为 0。如果指定的键名已经有值了，该值将被覆盖。
注意这里所使用的最大整数键名不一定当前就在数组中。它只要在上次数组重新生成索引后曾经存在过就行了。以下面的例子来说明：

<?php
// 创建一个简单的数组
$array = array(1, 2, 3, 4, 5);
print_r($array);

// 现在删除其中的所有元素，但保持数组本身不变:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// 添加一个单元（注意新的键名是 5，而不是你可能以为的 0）
$array[] = 6;
print_r($array);

// 重新索引：
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

上例将输出：

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

实用函数

有很多操作数组的函数，参见数组函数一节。

Note: unset() 函数允许删除数组中的某个键。但要注意数组将不会重建索引。 If a true "remove and shift" behavior is desired, the array can be reindexed using the array_values() function.

<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
   $a = array(1 => 'one', 3 => 'three');
   and NOT
   $a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>

foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。

数组做什么和不做什么

为什么 $foo[bar] 错了？

应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢？可能在老的脚本中见过如下语法：

<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>

这样是错的，但可以正常运行。那么为什么错了呢？原因是此代码中有一个未定义的常量（bar）而不是字符串（'bar'－注意引号），而 PHP 可能会在以后定义此常量，不幸的是你的代码中有同样的名字。它能运行，是因为 PHP 自动将裸字符串（没有引号的字符串且不对应于任何已知符号）转换成一个其值为该裸字符串的正常字符串。例如，如果没有常量定义为 bar，PHP 将把它替代为 'bar' 并使用之。

Note: 这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号，否则会使 PHP 不能解析它们。

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Simple array:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nChecking $i: \n";
    echo "Bad: " . $array['$i'] . "\n";
    echo "Good: " . $array[$i] . "\n";
    echo "Bad: {$array['$i']}\n";
    echo "Good: {$array[$i]}\n";
}
?>

上例将输出：

Checking 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Bad:
Good: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Bad:
Good: 1

Checking 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Bad:
Good: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Bad:
Good: 2

演示此行为的更多例子：

<?php
// Show all errors
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

// Correct
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Incorrect.  This works but also throws a PHP error of level E_NOTICE because
// of an undefined constant named fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// This defines a constant to demonstrate what's going on.  The value 'veggie'
// is assigned to a constant named fruit.
define('fruit', 'veggie');

// Notice the difference now
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// The following is okay, as it's inside a string. Constants are not looked for
// within strings, so no E_NOTICE occurs here
print "Hello $arr[fruit]";      // Hello apple

// With one exception: braces surrounding arrays within strings allows constants
// to be interpreted
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// This will not work, and will result in a parse error, such as:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// This of course applies to using superglobals in strings as well
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// Concatenation is another option
print "Hello " . $arr['fruit']; // Hello apple
?>

当打开 error_reporting 来显示 E_NOTICE 级别的错误（例如将其设为 E_ALL）时将看到这些错误。默认情况下 error_reporting 被关闭不显示这些。

和在语法一节中规定的一样，在方括号（“[”和“]”）之间必须有一个表达式。这意味着可以这样写：

<?php
echo $arr[somefunc($bar)];
?>

这是一个用函数返回值作为数组索引的例子。PHP 也可以用已知常量，可能之前已经见过

<?php
$error_descriptions[E_ERROR]   = "A fatal error has occured";
$error_descriptions[E_WARNING] = "PHP issued a warning";
$error_descriptions[E_NOTICE]  = "This is just an informal notice";
?>

注意 E_ERROR 也是个合法的标识符，就和第一个例子中的 bar 一样。但是上一个例子实际上和如下写法是一样的：

<?php
$error_descriptions[1] = "A fatal error has occured";
$error_descriptions[2] = "PHP issued a warning";
$error_descriptions[8] = "This is just an informal notice";
?>

因为 E_ERROR 等于 1, 等等.

那么为什么这样做不好？

也许有一天，PHP 开发小组可能会想新增一个常量或者关键字，或者用户可能希望以后在自己的程序中引入新的常量，那就有麻烦了。例如已经不能这样用 empty 和 default 这两个词了，因为他们是保留字。

Note: 重申一次，在双引号字符串中，不给索引加上引号是合法的因此 "$foo[bar]"是合法的（“合法”的原文为valid。在实际测试中，这么做确实可以访问数组的该元素，但是会报一个常量未定义的notice。无论如何，强烈建议不要使用$foo[bar]这样的写法，而要使用$foo['bar']来访问数组中元素。--haohappy注）。至于为什么参见以上的例子和字符串中的变量解析中的解释。

转换为数组

对于任意类型: integer, float, string, boolean and resource,如果将一个值转换为数组，将得到一个仅有一个元素的数组（其下标为 0），该元素即为此标量的值。换句话说， (array)$scalarValue 与 array($scalarValue) 完全一样。

If an object is converted to an array, the result is an array whose elements are the object's properties. The keys are the member variable names, with a few notable exceptions: integer properties are unaccessible; private variables have the class name prepended to the variable name; protected variables have a '*' prepended to the variable name. These prepended values have null bytes on either side. This can result in some unexpected behaviour:

<?php

class A {
    private $A; // This will become '\0A\0A'
}

class B extends A {
    private $A; // This will become '\0B\0A'
    public $AA; // This will become 'AA'
}

var_dump((array) new B());
?>

The above will appear to have two keys named 'AA', although one of them is actually named '\0A\0A'.

将 NULL 转换到 数组(array) 会得到一个空的数组。

比较

可能使用 array_diff() 和数组运算符来比较数组。

Examples

PHP 中的数组类型有非常多的用途，因此这里有一些例子展示数组的完整威力。

<?php
// This:
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
            4        // key will be 0
          );

$b = array('a', 'b', 'c');

// . . .is completely equivalent with this:
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // key will be 0

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// After the above code is executed, $a will be the array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), and $b will be the array
// array(0 => 'a', 1 => 'b', 2 => 'c'), or simply array('a', 'b', 'c').
?>

Example #1 Using array()

<?php
// Array as (property-)map
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );

// strictly numerical keys
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// this is the same as array(0 => 7, 1 => 8, ...)

$switching = array(         10, // key = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // key = 6 (maximum of integer-indices was 5)
                    '8'  =>  2, // key = 8 (integer!)
                    '02' => 77, // key = '02'
                    0    => 12  // the value 10 will be overwritten by 12
                  );

// empty array
$empty = array();
?>

Example #2 集合

<?php
$colors = array('red', 'blue', 'green', 'yellow');

foreach ($colors as $color) {
    echo "Do you like $color?\n";
}

?>

上例将输出：

Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?

直接改变数组的值在 PHP 5 中可以通过引用传递来做到。之前的版本需要需要采取变通的方法：

Example #3 集合

<?php
// PHP 5
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* ensure that following writes to
$color will not modify the last array element */

// Workaround for older versions
foreach ($colors as $key => $color) {
    $colors[$key] = strtoupper($color);
}

print_r($colors);
?>

上例将输出：

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

本例生成一个下标从1开始的数组。This example creates a one-based array.

Example #4 下标从1开始的数组

<?php
$firstquarter  = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

上例将输出：

Array
(
    [1] => 'January'
    [2] => 'February'
    [3] => 'March'
)

Example #5 填充数组

<?php
// fill an array with all items from a directory
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

数组是有序的。也可以使用不同的排序函数来改变顺序。更多信息参见数组函数。可以用 count() 函数来数出数组中元素的个数。

Example #6 数组排序

<?php
sort($files);
print_r($files);
?>

因为数组中的值可以为任意值，也可是另一个数组。这样可以产生递归或多维数组。

Example #7 递归和多维数组

<?php
$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banana",
                                       "c" => "apple"
                                     ),
                  "numbers" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "holes"   => array (      "first",
                                       5 => "second",
                                            "third"
                                     )
                );

// Some examples to address values in the array above
echo $fruits["holes"][5];    // prints "second"
echo $fruits["fruits"]["a"]; // prints "orange"
unset($fruits["holes"][0]);  // remove "first"

// Create a new multi-dimensional array
$juices["apple"]["green"] = "good";
?>

数组(Array) 的赋值总是会涉及到值的拷贝。使用 引用操作符 通过引用来拷贝数组。

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
             // $arr1 is still array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>
Strings
对象
类型


对象

对象初始化

要创建一个新的对象 object, 使用 new 语句实例化一个类：

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

详细讨论参见手册中 类与对象 章节。

转换为对象

如果将一个对象转换成对象，它将不会有任何变化。如果其它任何类型的值被转换成对象，将会实例化一个内置类 stdClass 的对象。如果该值为 NULL，则新的实例为空。数组转换成对象将使键名成为属性名并具有相对应的值。对于任何其它的值，名为 scalar 的成员变量将包含该值。

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // outputs 'ciao'
?>
数组
资源类型
类型


资源类型

资源是一种特殊变量，保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。所有这些函数及其相应资源类型见附录。

Note: 资源类型是 PHP 4 引进的。

参见 get_resource_type()。

转换为资源

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄，因此将其它类型的值转换为资源没有意义。

释放资源

由于 PHP4 Zend 引擎引进了引用计数系统，可以自动检测到一个资源不再被引用了（和 Java 一样）。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。因此，很少需要手工释放内存。 Thanks to the reference-counting system introduced with PHP 4's Zend Engine, a resource with no more references to it is detected automatically, and it is freed by the garbage collector. For this reason, it is rarely necessary to free the memory manually.

Note: 持久数据库连接比较特殊，它们不会被垃圾回收系统销毁。参见数据库永久连接一章。

对象
NULL
类型


NULL

特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。

Note: NULL 类型是 PHP 4 引进的。

在下列情况下一个变量被认为是 NULL：

  • 被赋值为 NULL。

  • 尚未被赋值。

  • 被 unset()。

语法

NULL 类型只有一个值，就是大小写不敏感的关键字 NULL（你可以写成NULL，也可以写成null）。

<?php
$var = NULL;
?>

参见 is_null() 和 unset()。

转换到 NULL

将一个变量转换为 null 类型将会删除该变量并且unset它的值。

资源类型
本文档中使用的伪类型
类型


本文档中使用的伪类型

mixed

mixed 说明一个参数可以接受多种不同的（但并不必须是所有的）类型。

例如 gettype() 可以接受所有的 PHP 类型，str_replace() 可以接受字符串和数组。

number

number 说明一个参数可以是 integer 或者 float。

callback

有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数，它还可以是一个对象的方法，包括静态类的方法。

一个 PHP 函数用函数名字符串来传递。可以传递任何内置的或者用户自定义的函数，除了语言结构如 array()，echo()，empty()，eval()，exit()，isset()，list()，print() 和 unset()。

一个对象的方法以数组的形式来传递，数组的下标 0 指明对象名，下标 1 指明方法名。

对于没有实例化为对象的静态类，要传递其方法，将数组 0 下标指明的对象名换成该类的名称即可。

除了普通的用户定义的函数外，也可以使用create_function()来创建一个匿名的回调函数(callback)。

Example #1 回调函数(callback)示例

<?php

// 普通的回调函数
function my_callback_function() {
    echo 'hello world!';
}

// 回调方法
class MyClass {
    static function myCallbackMethod() {
        echo 'Hello World!';
    }
}

// Type 1: Simple callback
call_user_func('my_callback_function');

// Type 2: Static class method call
call_user_func(array('MyClass', 'myCallbackMethod'));

// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));

// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Type 5: Relative static class method call (As of PHP 5.3.0)
class A {
    public static function who() {
        echo "A\n";
    }
}

class B extends A {
    public static function who() {
        echo "B\n";
    }
}

call_user_func(array('B', 'parent::who')); // A
?>

Note: 在 PHP4 中，必须使用引用来创建一个指向实际object，而不是它的一个拷贝。详情请见引用的解释。 In PHP4, it was necessary to use a reference to create a callback that points to the actual object, and not a copy of it. For more details, see References Explained.

void

void 作为返回类型意味着函数的返回值是无用的。void作为参数列表意味着函数不接受任何参数。

...

在函数原型中，$... 表示等等的意思。当一个函数可以接受任意个参数时使用此变量名。

NULL
类型转换的判别
类型


类型转换的判别

PHP 在变量定义中不需要（或不支持）明确的类型定义；变量类型是根据使用该变量的上下文所决定的。也就是说，如果把一个字符串值赋给变量 var ，var 就成了一个字符串。如果又把一个整型值赋给 var ，那它就成了一个整数。

PHP 的自动类型转换的一个例子是加号“+”。如果任何一个操作数是浮点数，则所有的操作数都被当成浮点数，结果也是浮点数。否则操作数会被解释为整数，结果也是整数。注意这并没有改变这些操作数本身的类型；改变的仅是这些操作数如何被求值以及表达式本身的类型。

<?php
$foo = "0";  // $foo 是字符串 (ASCII 48)
$foo += 2;   // $foo 现在是一个整数 (2)
$foo = $foo + 1.3;  // $foo 现在是一个浮点数 (3.3)
$foo = 5 + "10 Little Piggies"; // $foo 是整数 (15)
$foo = 5 + "10 Small Pigs";     // $foo 是整数 (15)
?>

如果上面两个例子看上去古怪的话，参见字符串转换为数值。

如果要强制将一个变量当作某种类型来求值，参见类型强制转换一节。如果要改变一个变量的类型，参见 settype()。

如果想要测试本节中任何例子的话，可以用 var_dump() 函数。

Note: 自动转换为 数组 的行为目前没有定义。
Also, because PHP supports indexing into strings via offsets using the same syntax as array indexing, the following example holds true for all PHP versions:

<?php
$a    = 'car'; // $a is a string
$a[0] = 'b';   // $a is still a string
echo $a;       // bar
?>

请参阅访问和修改字符串中的字符一节以获取更多信息。

类型强制转换

PHP 中的类型强制转换和 C 中的非常像：在要转换的变量之前加上用括号括起来的目标类型。

<?php
$foo = 10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>

允许的强制转换有：

  • (int), (integer) - 转换为 整型(integer)
  • (bool), (boolean) - 转换为 布尔型(boolean)
  • (float), (double), (real) - 转换为 浮点型(float)
  • (string) - 转换为 字符串(string)
  • (binary) - 转换为二进制 字符串(string) (PHP 6)
  • (array) - 转换为 数组(array)
  • (object) - 转换为 对象(object)
  • (unset) - 转换为 NULL (PHP 5)

(binary) 转换会在结果前面加上前缀'b'，PHP 5.2.1 新增。

注意在括号内允许有空格和制表符，所以下面两个例子功能相同：

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

将 字符串(string)文字和变量转换为二进制 字符串(string)：

<?php
$binary = (binary)$string;
$binary = b"binary string";
?>

Note: 可以将变量放置在双引号中的方式来代替将变量转换成 字符串(string)s：

<?php
$foo = 10;            // $foo 是一个整数
$str = "$foo";        // $str 是一个字符串
$fst = (string) $foo; // $fst 也是一个字符串

// 输出 "they are the same"
if ($fst === $str) {
    echo "they are the same";
}
?>

有时在类型之间强制转换时确切地会发生什么可能不是很明显。更多信息见如下小节：

  • 转换为布尔型
  • 转换为整型
  • 转换为浮点型
  • 转换为字符串
  • 转换为数组
  • 转换为对象
  • 转换为资源
  • 转换为 NULL
  • 类型比较表
本文档中使用的伪类型
变量
类型


变量

Table of Contents

  • 基础
  • 预定义变量
  • 变量范围
  • 可变变量
  • 来自 PHP 之外的变量
类型转换的判别
基础
语言参考


基础

PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。

变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头，后面跟上任意数量的字母，数字，或者下划线。按照正常的正则表达式，它将被表述为：'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'。

Note: 在此所说的字母是 a-z，A-Z，以及 ASCII 字符从 127 到 255（0x7f-0xff）。

Note: $this 是一个特殊的变量，它不能被赋值。

Tip

可以参考Userland Naming Guide。

有关变量的函数信息见变量函数。

<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var";      // 输出 "Bob, Joe"

$4site = 'not yet';     // 非法变更名；以数字开头
$_4site = 'not yet';    // 合法变量名；以下划线开头
$i站点is = 'mansikka';  // 合法变量名；可以用中文
?>

变量默认总是传值赋值。那也就是说，当将一个表达式的值赋予一个变量时，整个原始表达式的值被赋值到目标变量。这意味着，例如，当一个变量的值赋予另外一个变量时，改变其中一个变量的值，将不会影响到另外一个变量。有关这种类型的赋值操作，请参阅表达式一章。

PHP 也提供了另外一种方式给变量赋值：引用赋值。这意味着新的变量简单的引用（换言之，“成为其别名” 或者 “指向”）了原始变量。改动新的变量将影响到原始变量，反之亦然。

使用引用赋值，简单地将一个 & 符号加到将要赋值的变量前（源变量）。例如，下列代码片断将输出“My name is Bob”两次：

<?php
$foo = 'Bob';              // 将 'Bob' 赋给 $foo
$bar = &$foo;              // 通过 $bar 引用 $foo
$bar = "My name is $bar";  // 修改 $bar 变量
echo $bar;
echo $foo;                 // $foo 的值也被修改
?>

有一点重要事项必须指出，那就是只有有名字的变量才可以引用赋值。

<?php
$foo = 25;
$bar = &$foo;      // 合法的赋值
$bar = &(24 * 7);  // 非法; 引用没有名字的表达式

function test()
{
   return 25;
}

$bar = &test();    // 非法
?>

虽然在 PHP 中并不需要初始化变量，但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值 - 布尔类型的变量默认值是 FALSE，整形和符点型变量默认值是零，字符串型变量默认值是空字符串或者数组变量的默认值是空数组。

Example #1 未初始化变量的默认值

<?php
// Unset AND unreferenced (no use context) variable; outputs NULL
var_dump($unset_var);

// Boolean usage; outputs 'false' (See ternary operators for more on this syntax)
echo($unset_bool ? "true\n" : "false\n");

// String usage; outputs 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Integer usage; outputs 'int(25)'
$unset_int += 25; // 0 + 25 => 25
var_dump($unset_int);

// Float/double usage; outputs 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Array usage; outputs array(1) {  [3]=>  string(3) "def" }
$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Object usage; creates new stdClass object (see http://www.php.net/manual/en/reserved.classes.php)
// Outputs: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>

依赖未初始化变量的默认值在某些情况下会有问题，例如把一个文件包含到另一个之中时碰上相同的变量名。另外把 register_globals 打开是一个主要的安全隐患。使用未初始化的变量会发出E_NOTICE错误，但是在向一个未初始化的数组附加单元时不会。isset() 语言结构可以用来检测一个变量是否已被初始化。

变量
预定义变量
变量


预定义变量

PHP 提供了大量的预定义变量。由于许多变量依赖于运行的服务器的版本和设置，及其它因素，所以并没有详细的说明文档。一些预定义变量在 PHP 以命令行形式运行时并不生效。有关这些变量的详细列表，请参阅预定义变量一章。

Warning

PHP 4.2.0 以及后续版本中，PHP 指令 register_globals 的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off 将影响到预定义变量集在全局范围内的有效性。例如，为了得到 DOCUMENT_ROOT 的值，将必须使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT，又如，使用 $_GET['id'] 来代替 $id 从 URL http://www.example.com/test.php?id=3 中获取 id 值，亦或使用 $_ENV['HOME'] 来代替 $HOME 获取环境变量 HOME 的值。

更多相关信息，请阅读 register_globals 的配置项条目，安全一章中的使用 Register Globals，以及 PHP » 4.1.0 和 » 4.2.0 的发布公告。

如果有可用的 PHP 预定义变量那最好用，如超全局数组。

从 PHP 4.1.0 开始，PHP 提供了一套附加的预定数组，这些数组变量包含了来自 web 服务器（如果可用），运行环境，和用户输入的数据。这些数组非常特别，它们在全局范围内自动生效，例如，在任何范围内自动生效。因此通常被称为自动全局变量（autoglobals）或者超全局变量（superglobals）。（PHP 中没有用户自定义超全局变量的机制。）超全局变量罗列于下文中；但是为了得到它们的内容和关于 PHP 预定义变量的进一步的讨论以及它们的本质，请参阅预定义变量。而且，你也将注意到旧的预定义数组（$HTTP_*_VARS）仍旧存在。自 PHP 5.0.0 起，长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽。

Note: 可变变量
超级全局变量不能被用作可变变量。

Note: 尽管超全局变量和 HTTP_*_VARS 同时存在。但是他们并不是同一个变量，所以改变一个的值并不会对另一个产生影响。

如果某些 variables_order 中的变量没有设定，它们的对应的 PHP 预定义数组也是空的。

基础
变量范围
变量


变量范围

变量的范围即它定义的上下文背景（也就是它的生效范围）。大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件。例如：

<?php
$a = 1;
include 'b.inc';
?>

这里变量 $a 将会在包含文件 b.inc 中生效。但是，在用户自定义函数中，一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如：

<?php
$a = 1; /* global scope */

function Test()
{
    echo $a; /* reference to local scope variable */
}

Test();
?>

这个脚本不会有任何输出，因为 echo 语句引用了一个局部版本的变量 $a，而且在这个范围内，它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同，在 C 语言中，全局变量在函数中自动生效，除非被局部变量覆盖。这可能引起一些问题，有些人可能不小心就改变了一个全局变量。PHP 中全局变量在函数中使用时必须申明为global。

global 关键字

首先，一个使用 global 的例子：

Example #1 使用 global

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>

以上脚本的输出将是“3”。在函数中申明了全局变量 $a 和 $b，任何变量的所有引用变量都会指向到全局变量。对于一个函数能够申明的全局变量的最大个数，PHP 没有限制。

在全局范围内访问变量的第二个办法，是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成：

Example #2 使用 $GLOBALS 替代 global

<?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>

$GLOBALS 是一个关联数组，每一个变量为一个元素，键名对应变量名，值对应变量的内容。$GLOBALS 之所以在全局范围内存在，是因为 $GLOBALS 是一个超全局变量。以下范例显示了超全局变量的用处：

Example #3 演示超全局变量和作用域的例子

<?php
function test_global()
{
    // 大多数的预定义变量并不 "super"，它们需要用 'global' 关键字来使它们在函数的本地区域中有效。
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Superglobals 在任何范围内都有效，它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。
    echo $_POST['name'];
}
?>

使用静态变量

变量范围的另一个重要特性是静态变量（static variable）。静态变量仅在局部函数域中存在，但当程序执行离开此作用域时，其值并不丢失。看看下面的例子：

Example #4 演示需要静态变量的例子

<?php
function Test()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

本函数没什么用处，因为每次调用时都会将 $a 的值设为 0 并输出 "0"。将变量加一的 $a++ 没有作用，因为一旦退出本函数则变量 $a 就不存在了。要写一个不会丢失本次计数值的计数函数，要将变量 $a 定义为静态的：

Example #5 使用静态变量的例子

<?php
function test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

现在，变量$a在第一调用test()时被初始化，每次调用 test() 函数都会输出 $a 的值并加一。

静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心，因为可能会无穷递归下去。必须确保有充分的方法来中止递归。一下这个简单的函数递归计数到 10，使用静态变量 $count 来判断何时停止：

Example #6 静态变量与递归函数

<?php
function test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        test();
    }
    $count--;
}
?>

Note: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。

Example #7 声明静态变量

<?php
function foo(){
    static $int = 0;          // correct
    static $int = 1+2;        // wrong  (as it is an expression)
    static $int = sqrt(121);  // wrong  (as it is an expression too)

    $int++;
    echo $int;
}
?>

全局和静态变量的引用

在 Zend 引擎 1 代，它驱动了 PHP4，对于变量的 static 和 global 定义是以 references 的方式实现的。例如，在一个函数域内部用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用。这有可能导致预料之外的行为，如以下例子所演示的：

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

执行以上例子会导致如下输出：

NULL
object(stdClass)(0) {
}

类似的行为也适用于 static 语句。引用并不是静态地存储的：

<?php
function &get_instance_ref() {
    static $obj;

    echo 'Static object: ';
    var_dump($obj);
    if (!isset($obj)) {
        // 将一个引用赋值给静态变量
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo 'Static object: ';
    var_dump($obj);
    if (!isset($obj)) {
        // 将一个对象赋值给静态变量
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

执行以上例子会导致如下输出：

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)(1) {
["property"]=>
int(1)
}

上例演示了当把一个引用赋值给一个静态变量时，第二次调用 &get_instance_ref() 函数时其值并没有被记住。

预定义变量
可变变量
变量


可变变量

有时候使用可变变量名是很方便的。就是说，一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置，例如：

<?php
$a = 'hello';
?>

一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中 hello 使用了两个美元符号（$）以后，就可以作为一个可变变量的变量了。例如：

<?php
$$a = 'world';
?>

这时，两个变量都被定义了：$a 的内容是“hello”并且 $hello 的内容是“world”。因此，可以表述为：

<?php
echo "$a ${$a}";
?>

以下写法更准确并且会输出同样的结果：

<?php
echo "$a $hello";
?>

它们都会输出：hello world。

要将可变变量用于数组，必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时，解析器需要知道是想要 $a[1] 作为一个变量呢，还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是，对第一种情况用 ${$a[1]}，对第二种情况用 ${$a}[1]。

Warning

注意，在 PHP 的函数和类的方法中，超全局变量不能用作可变变量。

变量范围
来自 PHP 之外的变量
变量


来自 PHP 之外的变量

HTML 表单（GET 和 POST）

当一个表单体交给 PHP 脚本时，表单中的信息会自动在脚本中可用。有很多方法访问此信息，例如：

Example #1 一个简单的 HTML 表单

<form action="foo.php" method="POST">
    Name:  <input type="text" name="username"><br />
    Email: <input type="text" name="email"><br />
    <input type="submit" name="submit" value="Submit me!" />
</form>

根据特定的设置和个人的喜好，有很多种方法访问 HTML 表单中的数据。例如：

Example #2 从一个简单的 POST HTML 表单访问数据

<?php
// 自 PHP 4.1.0 起可用
   echo $_POST['username'];
   echo $_REQUEST['username'];

   import_request_variables('p', 'p_');
   echo $p_username;
// PHP 6以后将无效。自 PHP 5.0.0 起，这些较长的预定义变量
// 可用 register_long_arrays 指令关闭。

   echo $HTTP_POST_VARS['username'];

// 如果 PHP 指令 register_globals = on 时可用。不过自
// PHP 4.2.0 起默认值为 register_globals = off。
// 不提倡使用/依赖此种方法。

   echo $username;
?>

使用 GET 表单也类似，只不过要用适当的 GET 预定义变量。GET 也适用于 QUERY_STRING（URL 中在“?”之后的信息）。因此，举例说，http://www.example.com/test.php?id=3 包含有可用 $_GET['id'] 访问的 GET 数据。参见 $_REQUEST 和 import_request_variables()。

Note: 超全局数组和 $_POST 以及 $_GET 一样，自 PHP 4.1.0 起可用。

如上所示，在 PHP 4.2.0 之前 register_globals 的默认值是 on。PHP 社区鼓励大家不要依赖此指令，建议在编码时假定其为 off。

Note: magic_quotes_gpc 配置指令影响到 Get，Post 和 Cookie 的值。如果打开，值 (It's "PHP!") 会自动转换成 (It\'s \"PHP!\")。数据库的插入就需要转义。参见 addslashes()，stripslashes() 和 magic_quotes_sybase。

PHP 也懂得表单变量上下文中的数组（参见相关常见问题）。例如可以将相关的变量编成组，或者用此特性从多选输入框中取得值。例如，将一个表单 POST 给自己并在提交时显示数据：

Example #3 更复杂的表单变量

<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
    echo '<pre>';

    print_r($_POST);
    echo '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>';

    echo '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Name:  <input type="text" name="personal[name]"><br />
    Email: <input type="text" name="personal[email]"><br />
    Beer: <br>
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbr</option>
    </select><br />
    <input type="hidden" name="action" value="submitted" />
    <input type="submit" name="submit" value="submit me!" />
</form>
<?php
}
?>

IMAGE SUBMIT 变量名

当提交表单时，可以用一幅图像代替标准的提交按钮，用类似这样的标记：

<input type="image" src="image.gif" name="sub" />

当用户点击到图像中的某处时，相应的表单会被传送到服务器，并加上两个变量 sub_x 和 sub_y。它们包含了用户点击图像的坐标。有经验的用户可能会注意到被浏览器发送的实际变量名包含的是一个点而不是下划线（即 sub.x 和 sub.y），但 PHP 自动将点转换成了下划线。

HTTP Cookies

PHP 透明地支持 » Netscape 规范定义中的 HTTP cookies。Cookies 是一种在远端浏览器端存储数据并能追踪或识别再次访问的用户的机制。可以用 setcookie() 函数设定 cookies。Cookies 是 HTTP 信息头中的一部分，因此 SetCookie 函数必须在向浏览器发送任何输出之前调用。对于 header() 函数也有同样的限制。Cookie 数据会在相应的 cookie 数据数组中可用，例如 $_COOKIE，$HTTP_COOKIE_VARS 和 $_REQUEST。更多细节和例子见 setcookie() 手册页面。

如果要将多个值赋给一个 cookie 变量，必须将其赋成数组。例如：

<?php
  setcookie("MyCookie[foo]", 'Testing 1', time()+3600);
  setcookie("MyCookie[bar]", 'Testing 2', time()+3600);
?>

这将会建立两个单独的 cookie，尽管 MyCookie 在脚本中是一个单一的数组。如果想在仅仅一个 cookie 中设定多个值，考虑先在值上使用 serialize() 或 explode()。

注意在浏览器中一个 cookie 会替换掉上一个同名的 cookie，除非路径或者域不同。因此对于购物车程序可以保留一个计数器并一起传递，例如：

Example #4 一个 setcookie() 的示例

<?php
if (isset($_COOKIE['count'])) {
    $count = $_COOKIE['count'] + 1;
} else {
    $count = 1;
}
setcookie('count', $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

变量名中的点

通常，PHP 不会改变传递给脚本中的变量名。然而应该注意到点（句号）不是 PHP 变量名中的合法字符。至于原因，看看：

<?php
$varname.ext;  /* 非法变量名 */
?>

这时，解析器看到是一个名为 $varname 的变量，后面跟着一个字符串连接运算符，后面跟着一个裸字符串（即没有加引号的字符串，且不匹配任何已知的健名或保留字）'ext'。很明显这不是想要的结果。

出于此原因，要注意 PHP 将会自动将变量名中的点替换成下划线。

确定变量类型

因为 PHP 会判断变量类型并在需要时进行转换（通常情况下），因此在某一时刻给定的变量是何种类型并不明显。PHP 包括几个函数可以判断变量的类型，例如：gettype()，is_array()，is_float()，is_int()，is_object() 和 is_string()。参见类型一章。

可变变量
常量
变量


常量

Table of Contents

  • 语法
  • 魔术常量

常量是一个简单值的标识符（名字）。如同其名称所暗示的，在脚本执行期间该值不能改变（除了所谓的魔术常量，它们其实不是常量）。常量默认为大小写敏感。通常常量标识符总是大写的。

常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始，后面跟着任何字母，数字或下划线。用正则表达式是这样表达的：[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Tip

可以参考Userland Naming Guide。

Example #1 合法与非法的常量名

<?php

// 合法的常量名
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// 非法的常量名
define("2FOO",    "something");

// 下面的定义是合法的，但应该避免这样做：(自定义常量不要以__开头)
// 也许将来有一天PHP会定义一个__FOO__的魔术常量
// 这样就会与你的代码相冲突
define("__FOO__", "something");

?>

Note: 在这里，字母是 a-z，A-Z，以及从 127 到 255（0x7f-0xff）的 ASCII 字符。

和 superglobals 一样，常量的范围是全局的。不用管作用域就可以在脚本的任何地方访问常量。有关作用得更多信息请阅读手册中的变量范围。

来自 PHP 之外的变量
语法
语言参考


语法

可以用 define() 函数来定义常量。在 PHP 5.3.0 以后，可以使用 const 关键字在类定义的外部定义常量。一个常量一旦被定义，就不能再改变或者取消定义。

常量只能包含标量数据（boolean，integer，float 和 string）。 可以定义 resource 常量，但应尽量避免，因为会造成不可预料的结果。

可以简单的通过指定其名字来取得常量的值，与变量不同，不应该在常量前面加上 $ 符号。如果常量名是动态的，也可以用函数 constant() 来获取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。

Note: 常量和（全局）变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。

如果使用了一个未定义的常量，PHP 假定想要的是该常量本身的名字，如同用字符串调用它一样（CONSTANT 对应 "CONSTANT"）。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $foo[bar] 是错误的（除非事先用 define() 将 bar 定义为一个常量）。如果只想检查是否定义了某常量，用 defined() 函数。

常量和变量有如下不同：

  • 常量前面没有美元符号（$）；
  • 常量只能用 define() 函数定义，而不能通过赋值语句；
  • 常量可以不用理会变量的作用域而在任何地方定义和访问；
  • 常量一旦定义就不能被重新定义或者取消定义；
  • 常量的值只能是标量。

Example #1 定义常量

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // 输出 "Constant" 并发出一个提示性信息
?>

Example #2 使用关键字 const 定义常量

<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World';

echo CONSTANT;
?>

参见类常量。

常量
魔术常量
常量


魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的，只有在加载了这些扩展库时才会出现，或者动态加载后，或者在编译时已经包括进去了。

有七个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写，如下：

几个 PHP 的“魔术常量”
名称 | 说明
__LINE__ | 文件中的当前行号。
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中，则返回被包含的文件名。自 PHP 4.0.2 起，__FILE__ 总是包含一个绝对路径（如果是符号连接，则是解析后的绝对路径），而在此之前的版本有时会包含一个相对路径。
__DIR__ | 文件所在的目录。如果用在被包括文件中，则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录，否则目录中名不包括末尾的斜杠。（PHP 5.3.0中新增） =
__FUNCTION__ | 函数名称（PHP 4.3.0 新加）。自 PHP 5 起本常量返回该函数被定义时的名字（区分大小写）。在 PHP 4 中该值总是小写字母的。
__CLASS__ | 类的名称（PHP 4.3.0 新加）。自 PHP 5 起本常量返回该类被定义时的名字（区分大小写）。在 PHP 4 中该值总是小写字母的。
__METHOD__ | 类的方法名（PHP 5.0.0 新加）。返回该方法被定义时的名字（区分大小写）。
__NAMESPACE__ | 当前命名空间的名称（大小写敏感）。这个常量是在编译时定义的（PHP 5.3.0 新增）

参见 get_class()，get_object_vars()，file_exists() 和function_exists()。

语法
表达式
常量


表达式

表达式是 PHP 最重要的基石。在 PHP 中，几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。

最基本的表达式形式是常量和变量。当键入“$a = 5”，即将值“5”分配给变量 $a。“5”，很明显，其值为 5，换句话说“5”是一个值为 5 的表达式（在这里，“5”是一个整型常量）。

赋值之后，所期待情况是 $a 的值为 5，因而如果写下 $b = $a，期望的是它犹如 $b = 5 一样。换句话说，$a 是一个值也为 5 的表达式。如果一切运行正确，那这正是将要发生的正确结果。

稍微复杂的表达式例子就是函数。例如，考虑下面的函数：

<?php
function foo ()
{
    return 5;
}
?>

假定已经熟悉了函数的概念（如果不是的话，请看一下函数的相关章节），那么键入
$c = foo() 从本质上来说就如写下
$c = 5，这没错。函数也是表达式，表达式的值即为它们的返回值。既然
foo() 返回 5，表达式“foo()”的值也是 5。通常函数不会仅仅返回一个静态值，而可能会计算一些东西。

当然，PHP 中的值常常并非是整型的。PHP 支持四种标量值（标量值不能拆分为更小的单元，例如和数组不同）类型：整型值（integer），浮点数值（float），字符串值（string）和布尔值（boolean）。PHP 也支持两种复合类型：数组和对象。这两种类型具可以赋值给变量或者从函数返回。

PHP 和其它语言一样在表达式的道路上发展，但推进得更深远。PHP 是一种面向表达式的语言，从这一方面来讲几乎一切都是表达式。考虑刚才已经研究过的例子，“$a = 5”。很显然这里涉及到两个值，整型常量 5 的值以及而且变量 $a 的值，它也被更新为 5。但是事实是这里还涉及到一个额外的值，即附值语句本身的值。赋值语句本身求值为被赋的值，即 5。实际上这意味着“$a = 5”，不必管它是做什么的，是一个值为 5 的表达式。因而，这样写“$b = ($a = 5)”和这样写“$a =5; $b=5”（分号标志着语句的结束）是一样的。因为赋值操作的顺序是由右到左的，也可以这么写“$b = $a =5”。

另外一个很好的面向表达式的例子就是前、后递增和递减。PHP 和多数其它语言的用户应该比较熟悉变量 ++ 和变量 -- 符号。即递增和递减运算符。在 PHP/FI 2 中，语句“$a++”没有值（不是表达式），这样的话你便不能为其赋值或者以任何其它方式来使用它。PHP 通过将其变为了表达式，类似 C 语言，增强了递增/递减的能力。在 PHP 和 C 语言 中，有两种类型的递增前递增和后递增，本质上来讲，前递增和后递增均增加了变量的值，并且对于变量的影响是相同的。不同的是递增表达式的值。前递增，写做“++$variable”，求增加后的值（PHP 在读取变量的值之前，增加变量的值，因而称之为“前递增”）。后递增，写做“$variable++”，求变量未递增之前的原始值（PHP 在读取变量的值之后，增加变量的值，因而叫做“后递增”）。

一个常用到表达式类型是比较表达式。这些表达式求值 FALSE 或 TRUE。PHP 支持 >（大于），>=（大于等于），==（等于），!=（不等于），<（小于），<= (小于等于)。PHP 还支持全等运算符 ===（值和类型均相同）和非全等运算符 !==（值或者类型不同）。这些表达式都是在条件判断语句，比如，if 语句中最常用的。

这里，将要研究的最后一个例子是组合的运算赋值表达式。已经知道如果想要为变量 $a 加1，可以简单的写“$a++”或者“++$a”。但是如果想为变量增加大于 1 的值，比如 3，该怎么做？可以多次写“$a++”，但这样明显不是一种高效舒适的方法，一个更加通用的做法是“$a = $a + 3”。“$a + 3”计算 $a 加上 3 的值，并且得到的值重新赋予变量 $a，于是 $a 的值增加了3。在 PHP 及其它几种类似 C 的语言中，可以以一种更加简短的形式完成上述功能，因而也更加清楚快捷。为 $a 的当前值加 3，可以这样写：“$a += 3”。这里的意思是“取变量 $a 的值，加 3，得到的结果再次分配给变量 $a”。除了更简略和清楚外，也可以更快的运行。“$a += 3”的值，如同一个正常赋值操作的值，是赋值后的值。注意它不是 3，而是 $a 的值加上3 之后的值（此值将被赋给 $a）。任何二元运算符都可以用运算赋值模式，例如“$a -= 5”（从变量 $a 的值中减去 5），“$b *= 7”（变量 $b 乘以 7），等等。

还有一个表达式，如果没有在别的语言中看到过的话，可能看上去很奇怪，即三元条件运算符：

$first ? $second : $third

如果第一个子表达式的值是 TRUE（非零），那么计算第二个子表达式的值，其值即为整个表达式的值。否则，将是第三个子表达式的值。

下面的例子一般来说应该有助于理解前、后递增和表达式：

<?php
function double($i)
{
    return $i*2;
}
$b = $a = 5;        /* assign the value five into the variable $a and $b */
$c = $a++;          /* post-increment, assign original value of $a
                       (5) to $c */
$e = $d = ++$b;     /* pre-increment, assign the incremented value of
                       $b (6) to $d and $e */

/* at this point, both $d and $e are equal to 6 */

$f = double($d++);  /* assign twice the value of $d before
                       the increment, 2*6 = 12 to $f */
$g = double(++$e);  /* assign twice the value of $e after
                       the increment, 2*7 = 14 to $g */
$h = $g += 10;      /* first, $g is incremented by 10 and ends with the
                       value of 24. the value of the assignment (24) is
                       then assigned into $h, and $h ends with the value
                       of 24 as well. */
?>

一些表达式可以被当成语句。这时，一条语句的形式是 'expr' ';'，即一个表达式加一个分号结尾。在“$b=$a=5;”中，$a=5 是一个有效的表达式，但它本身不是一条语句。“$b=$a=5;”是一条有效的语句。

最后一件值得提起的事情就是表达式的真值。在许多事件中，大体上主要是在条件执行和循环中，不要专注于表达式中明确的值，反而要注意表达式的值是否是 TRUE 或者 FALSE。常量 TRUE 和 FALSE（大小写无关）是两种可能的 Boolean 值。如果有必要，一个表达式将自动转换为 Boolean。参见类型强制转换一节。

PHP 提供了一套完整强大的表达式，而为它提供完整的文件资料已经超出了本手册的范围。上面的例子应该为你提供了一个好的关于什么是表达式和怎样构建一个有用的表达式的概念。在本手册的其余部分，我们将始终使用 expr 来表示一个有效的 PHP 表达式。

魔术常量
运算符
语言参考


运算符

Table of Contents

  • 运算符优先级
  • 算术运算符
  • 赋值运算符
  • 位运算符
  • 比较运算符
  • 错误控制运算符
  • 执行运算符
  • 递增／递减运算符
  • 逻辑运算符
  • 字符串运算符
  • 数组运算符
  • 类型运算符

运算符是可以通过给出的一或多个值（用编程行话来说，表达式）来产生另一个值（因而整个结构成为一个表达式）的东西。所以可以认为函数或任何会返回一个值（例如 print）的结构是运算符，而那些没有返回值的（例如 echo）是别的东西。

有三种类型的运算符。第一种是一元运算符，只运算一个值，例如 !（取反运算符）或 ++（加一运算符）。第二种是有限二元运算符，PHP 支持的大多数运算符都是这种。列表见下节运算符优先级。

第三种是三元运算符：?:。它应该被用来根据一个表达式在另两个表达式中选择一个，而不是用来在两个语句或者程序路线中选择。把整个三元表达式放在扩号里是个很好的主意。

表达式
运算符优先级
语言参考


运算符优先级

运算符优先级指定了两个表达式绑定得有多“紧密”。例如，表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号（“*”）的优先级比加号（“+”）高。必要时可以用括号来强制改变优先级。例如：(1 + 5) * 3 的值为 18。如果运算符优先级相同，则使用从左到右的左联顺序。

下表从高到低列出了运算符的优先级。同一行中的运算符具有相同优先级，此时它们的结合方向决定求值顺序。

运算符优先级
结合方向 | 运算符 | 附加信息
非结合 | clone new | clone 和 new
左 | [ | array()
非结合 | ++ -- | 递增／递减运算符
非结合 | ~ - (int) (float) (string) (array) (object) (bool) @ | 类型
非结合 | instanceof | 类型
右结合 | ! | 逻辑操作符
左 | * / % | 算术运算符
左 | + - . | 算术运算符和字符串运算符
左 | << >> | 位运算符
非结合 | < <= > >= <> | 比较运算符
非结合 | == != === !== | 比较运算符
左 | & | 位运算符和引用
左 | ^ | 位运算符
左 | | | 位运算符
左 | && | 逻辑运算符
左 | || | 逻辑运算符
左 | ? : | 三元运算符
右 | = += -= *= /= .= %= &= |= ^= <<= >>= | 赋值运算符
左 | and | 逻辑运算符
左 | xor | 逻辑运算符
左 | or | 逻辑运算符
左 | , | 多处用到

左联表示表达式从左向右求值，右联相反。

Example #1 结合方向

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

使用括号可以增强代码的可读性。

Note:

     尽管 = 比其它大多数的运算符的优先级低，PHP
     仍旧允许类似如下的表达式：if (!$a = foo())，在此例中
     foo() 的返回值被赋给了 $a。

运算符
算术运算符
运算符


算术运算符

还记得学校里学到的基本数学知识吗？就和它们一样。

算术运算符
例子 | 名称 | 结果
-$a | 取反 | $a 的负值。
$a + $b | 加法 | $a 和 $b 的和。
$a - $b | 减法 | $a 和 $b 的差。
$a * $b | 乘法 | $a 和 $b 的积。
$a / $b | 除法 | $a 除以 $b 的商。
$a % $b | 取模 | $a 除以 $b 的余数。

除法运算符总是返回符点数。只有在下列情况例外：两个操作数都是整数（或字符串转换成的整数）并且正好能整除，这时它返回一个整数。

取模运算符的操作数在运算之前都会转换成整数（除去小数部分）。

Note: 取模 $a % $b 在 $a 为负值时的结果也是负值。

参见手册中的数学函数。

运算符优先级
赋值运算符
运算符


赋值运算符

基本的赋值运算符是“=”。一开始可能会以为它是“等于”，其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。

赋值运算表达式的值也就是所赋的值。也就是说，“$a = 3”的值是 3。这样就可以做一些小技巧：

<?php

$a = ($b = 4) + 5; // $a 现在成了 9，而 $b 成了 4。

?>

在基本赋值运算符之外，还有适合于所有二元算术，数组集合和字符串运算符的“组合运算符”，这样可以在一个表达式中使用它的值并把表达式的结果赋给它，例如：

<?php

$a = 3;
$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";

?>

注意赋值运算将原变量的值拷贝到新变量中（传值赋值），所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些值例如大数组。也可以使用引用赋值，用 $var = &$othervar; 语法。引用赋值意味着两个变量都指向同一个数据，没有任何数据的拷贝。有关引用的更多信息见引用的说明。在 PHP 5中，对象总是通过引用赋值的，除非明确使用新的 clone关键字。

算术运算符
位运算符
运算符


位运算符

位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串，则位运算符将操作字符的 ASCII 值。

<?php
echo 12 ^ 9; // 输出为 '5'

echo "12" ^ "9"; // 输出退格字符（ascii 8）
                    // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // 输出 ascii 值 #0 #4 #0 #0 #0
                            // 'a' ^ 'e' = #4

echo 2 ^ "3"; // 输出 1
              // 2 ^ ((int)"3") == 1

echo "2" ^ 3; // 输出 1
              // ((int)"2") ^ 3 == 1
?>

位运算符
例子 | 名称 | 结果
$a & $b | And（按位与） | 将把 $a 和 $b 中都为 1 的位设为 1。
$a | $b | Or（按位或） | 将把 $a 或者 $b 中为 1 的位设为 1。
$a ^ $b | Xor（按位异或） | 将把 $a 和 $b 中不同的位设为 1。
~ $a | Not（按位非） | 将 $a 中为 0 的位设为 1，反之亦然。
$a << $b | Shift left（左移） | 将 $a 中的位向左移动 $b 次（每一次移动都表示“乘以 2”）。
$a >> $b | Shift right（右移） | 将 $a 中的位向右移动 $b 次（每一次移动都表示“除以 2”）。
Warning

在 32 位系统上不要右移超过 32 位。不要在结果可能超过 32 位的情况下左移。

赋值运算符
比较运算符
运算符


比较运算符

比较运算符，如同它们名称所暗示的，允许对两个值进行比较。还可以参考 PHP 类型比较表看不同类型相互比较的例子。

比较运算符
例子 | 名称 | 结果
$a == $b | 等于 | TRUE，如果 $a 等于 $b。
$a === $b | 全等 | TRUE，如果 $a 等于 $b，并且它们的类型也相同。（PHP 4 引进）
$a != $b | 不等 | TRUE，如果 $a 不等于 $b。
$a <> $b | 不等 | TRUE，如果 $a 不等于 $b。
$a !== $b | 非全等 | TRUE，如果 $a 不等于 $b，或者它们的类型不同。（PHP 4 引进）
$a < $b | 小与 | TRUE，如果 $a 严格小于 $b。
$a > $b | 大于 | TRUE，如果 $a 严格 $b。
$a <= $b | 小于等于 | TRUE，如果 $a 小于或者等于 $b。
$a >= $b | 大于等于 | TRUE，如果 $a 大于或者等于 $b。

如果比较一个整数和字符串，则字符串会被转换为整数。如果比较两个数字字符串，则作为整数比较。此规则也适用于 switch 语句。

<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("1" == "1e0"); // 1 == 1 -> true
switch ("a") {
case 0:
    echo "0";
    break;
case "a": // never reached because "a" is already matched with 0
    echo "a";
    break;
}
?>

对于多种类型，比较运算符根据下表比较（按顺序）。

比较多种类型
运算数 1 类型 | 运算数 1 类型 | 结果
null 或 string | string | 将 NULL 转换为 ""，进行数字或词汇比较
bool 或 null | 任何其它类型 | 转换为 bool，FALSE < TRUE
object | object | 内置类可以定义自己的比较，不同类不能比较，相同类和数组同样方式比较属性（PHP 4 中），PHP 5 有其自己的说明
string，resource 或 number | string，resource 或 number | 将字符串和资源转换成数字，按普通数学比较
array | array | 具有较少成员的数组较小，如果运算数 1 中的键不存在于运算数 2 中则数组无法比较，否则挨个值比较（见下例）
array | 任何其它类型 | array 总是更大
object | 任何其它类型 | object 总是更大

Example #1 标准数组比较代码

<?php
// 数组是用标准比较运算符这样比较的
function standard_array_compare($op1, $op2)
{
    if (count($op1) < count($op2)) {
        return -1; // $op1 < $op2
    } elseif (count($op1) > count($op2)) {
        return 1; // $op1 > $op2
    }
    foreach ($op1 as $key => $val) {
        if (!array_key_exists($key, $op2)) {
            return null; // uncomparable
        } elseif ($val < $op2[$key]) {
            return -1;
        } elseif ($val > $op2[$key]) {
            return 1;
        }
    }
    return 0; // $op1 == $op2
}
?>

参见 strcasecmp()，strcmp()，数组运算符和类型一章。

三元运算符

另一个条件运算符是“?:”（或三元）运算符 。

Example #2 赋默认值

<?php
 // Example usage for: Ternary Operator
 $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

 // The above is identical to this if/else statement
 if (empty($_POST['action'])) {
     $action = 'default';
 } else {
     $action = $_POST['action'];
 }

 ?>

表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2，在 expr1 求值为 FALSE 时的值为 expr3。

Note: 注意三元运算符是个语句，因此其求值不是变量，而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用，以后的 PHP 版本会为此发出一条警告。

Note: 建议避免将三元运算符堆积在一起使用。当在一条语句中使用多个三元运算符时会造成 PHP 运算结果不清晰： Is is recommended that you avoid "stacking" ternary expressions. PHP's behaviour when using more than one ternary operator within a single statement is non-obvious:

Example #3 不清晰的三元运算符行为

<?php
// 乍看起来下面的输出是 'true'
echo (true?'true':false?'t':'f');

// 然而，上面语句的实际输出是't'，因为三元运算符是从左往右计算的

// 下面是与上面等价的语句，但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');

// here, you can see that the first expression is evaluated to 'true', which
// in turn evaluates to (bool)true, thus returning the true branch of the
// second ternary expression.
?>

位运算符
错误控制运算符
运算符


错误控制运算符

PHP 支持一个错误控制运算符：@。当将其放置在一个 PHP 表达式之前，该表达式可能产生的任何错误信息都被忽略掉。

如果激活了 track_errors 特性，表达式所产生的任何错误信息都被存放在变量 $php_errormsg 中。此变量在每次出错时都会被覆盖，所以如果想用它的话就要尽早检查。

<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
    die ("Failed opening file: error was '$php_errormsg'");

// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.

?>

Note: @ 运算符只对表达式有效。对新手来说一个简单的规则就是：如果能从某处得到值，就能在它前面加上 @ 运算符。例如，可以把它放在变量，函数和 include() 调用，常量，等等之前。不能把它放在函数或类的定义之前，也不能用于条件结构例如 if 和 foreach 等。

参见 error_reporting() 及手册中错误处理及日志函数的有关章节。

Warning

目前的“@”错误控制运算符前缀甚至使导致脚本终止的严重错误的错误报告也失效。这意味着如果在某个不存在或类型错误的函数调用前用了“@”来抑制错误信息，那脚本会没有任何迹象显示原因而死在那里。

比较运算符
执行运算符
运算符


执行运算符

PHP 支持一个执行运算符：反引号（``）。注意这不是单引号！PHP 将尝试将反引号中的内容作为外壳命令来执行，并将其输出信息返回（例如，可以赋给一个变量而不是简单地丢弃到标准输出）。使用反引号运算符“`”的效果与函数 shell_exec() 相同。

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Note: 反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。

参见函数 popen()、proc_open() 及手册中程序执行函数和 PHP 的命令行模式的有关章节。

错误控制运算符
递增／递减运算符
运算符


递增／递减运算符

PHP 支持 C 风格的前／后递增与递减运算符。

Note: 递增／递减运算符不影响布尔值。递减 NULL 值也没有效果，但是递增 NULL 的结果是 1。

递增／递减运算符
例子 | 名称 | 效果
++$a | 前加 | $a 的值加一，然后返回 $a。
$a++ | 后加 | 返回 $a，然后将 $a 的值加一。
--$a | 前减 | $a 的值减一， 然后返回 $a。
$a-- | 后减 | 返回 $a，然后将 $a 的值减一。

一个简单的示例脚本：

<?php
echo "<h3>Postincrement</h3>";
$a = 5;
echo "Should be 5: " . $a++ . "<br />\n";
echo "Should be 6: " . $a . "<br />\n";

echo "<h3>Preincrement</h3>";
$a = 5;
echo "Should be 6: " . ++$a . "<br />\n";
echo "Should be 6: " . $a . "<br />\n";

echo "<h3>Postdecrement</h3>";
$a = 5;
echo "Should be 5: " . $a-- . "<br />\n";
echo "Should be 4: " . $a . "<br />\n";

echo "<h3>Predecrement</h3>";
$a = 5;
echo "Should be 4: " . --$a . "<br />\n";
echo "Should be 4: " . $a . "<br />\n";
?>

在处理字符变量的算数运算时，PHP 沿袭了 Perl 的习惯，而非 C 的。例如，在 Perl 中 'Z'+1 将得到 'AA'，而在 C 中，'Z'+1 将得到 '['（ord('Z') == 90，ord('[') == 91）。注意字符变量只能递增，不能递减，并且只支持纯字母（a-z 和 A-Z）。

Example #1 涉及字符变量的算数运算

<?php
$i = 'W';
for ($n=0; $n<6; $n++) {
    echo ++$i . "\n";
}
?>

上例将输出：

X
Y
Z
AA
AB
AC

递增或递减布尔值没有效果。

执行运算符
逻辑运算符
运算符


逻辑运算符

逻辑运算符
例子 | 名称 | 结果
$a and $b | And（逻辑与） | TRUE，如果 $a 与 $b 都为 TRUE。
$a or $b | Or（逻辑或） | TRUE，如果 $a 或 $b 任一为 TRUE。
$a xor $b | Xor（逻辑异或） | TRUE，如果 $a 或 $b 任一为 TRUE，但不同时是。
! $a | Not（逻辑非） | TRUE，如果 $a 不为 TRUE。
$a && $b | And（逻辑与） | TRUE，如果 $a 与 $b 都为 TRUE。
$a || $b | Or（逻辑或） | TRUE，如果 $a 或 $b 任一为 TRUE。

“与”和“或”有两种不同形式运算符的原因是它们运算的优先级不同（见运算符优先级）。

Example #1 逻辑运算符示例

<?php

// 下面的 foo() 不会被调用，因为它们被运算符“短路”了。
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// "||" 的优先级比 "or" 高
$e = false || true; // $e 被赋值为 (false || true)，结果为 true
$f = false or true; // $f 被赋值为 false [Altair注："=" 的优先级比 "or" 高]
var_dump($e, $f);

// "&&" 的优先级比 "and"　高
$g = true && false; // $g 被赋值为 (true && false)，结果为 false
$h = true and false; // $h 被赋值为 true [Altair注："=" 的优先级比 "and" 高]
var_dump($g, $h);
?>

上例的输出类似于：

bool(true)
bool(false)
bool(false)
bool(true)
递增／递减运算符
字符串运算符
运算符


字符串运算符

有两个字符串运算符。第一个是连接运算符（“.”），它返回其左右参数连接后的字符串。第二个是连接赋值运算符（“.=”），它将右边参数附加到左边的参数后。更多信息见赋值运算符。

<?php
$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"

$a = "Hello ";
$a .= "World!";     // now $a contains "Hello World!"
?>

参见字符串类型和字符串函数章节。

逻辑运算符
数组运算符
运算符


数组运算符

数组运算符
例子 | 名称 | 结果
$a + $b | 联合 | $a 和 $b 的联合。
$a == $b | 相等 | 如果 $a 和 $b 具有相同的键／值对则为 TRUE。
$a === $b | 全等 | 如果 $a 和 $b 具有相同的键／值对并且顺序和类型都相同则为 TRUE。
$a != $b | 不等 | 如果 $a 不等于 $b 则为 TRUE。
$a <> $b | 不等 | 如果 $a 不等于 $b 则为 TRUE。
$a !== $b | 不全等 | 如果 $a 不全等于 $b 则为 TRUE。

+ 运算符把右边的数组元素（除去键值与左边的数组元素相同的那些元素）附加到左边的数组后面，但是重复的键值不会被覆盖。

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);
?>

执行后，此脚本会显示：

Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
Union of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}

数组中的单元如果具有相同的键名和值则比较时相等。

Example #1 比较数组

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

参见数组类型和数组函数章节。

字符串运算符
类型运算符
运算符


类型运算符

instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例：

Example #1 instanceof 使用示例

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

上例将输出：

bool(true)
bool(false)

instanceof　也可用来确定一个变量是不是继承自某一父类的子类的实例： can also be used to determine whether a variable is an instantiated object of a class that inherits from a parent class:

Example #2 instanceof 与继承类示例

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

上例将输出：

bool(true)
bool(true)

检查一个对象 不是 某个类的实例，可以使用 逻辑运算符 not。

Example #3 使用instanceof检查对象 不是 某一类的实例

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

上例将输出：

bool(true)

最后，instanceof也可用于确定一个变量是不是实现了某个接口的对象的实例:

Example #4 Using instanceof for class

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

上例将输出：

bool(true)
bool(true)

虽然 instanceof 通常直接与类名一起使用，但也可以使用对象或字符串变量：

Example #5 Using instanceof with other variables

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b is an object of class MyClass
var_dump($a instanceof $c); // $c is a string 'MyClass'
var_dump($a instanceof $d); // $d is a string 'NotMyClass'
?>

上例将输出：

bool(true)
bool(true)
bool(false)

然而 instanceof 的使用还有一些陷阱必须了解。在 PHP 5.1.0之前，如果要检查的类名称不存在，instanceof 会调用 __autoload()。另外，如果该类没有被装载则会产生一个致命错误。可以通过使用动态类引用(dynamic class reference)或用一个包含类名的字符串变量来避开这种问题：

Example #6 避免 PHP 5.0 中 instanceof 引起的类名查找和致命错误问题

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // no fatal error here
?>

上例将输出：

bool(false)

instanceof 运算符是 PHP 5 引进的。在此之前用 is_a()，但是 is_a() 已经过时了，最好用 instanceof。

参见 get_class() 和 is_a()。

数组运算符
控制结构
运算符


控制结构

Table of Contents

  • if
  • else
  • elseif/else if
  • 流程控制的替代语法
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • declare
  • return
  • require
  • include
  • require_once
  • include_once

任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句，一个函数调用，一个循环，一个条件语句或者甚至是一个什么也不做的语句（空语句）。语句通常以分号结束。此外，还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。本章讲述了各种语句类型。

类型运算符
if
语言参考


if

if 结构是很多语言包括 PHP 在内最重要的特性之一，它允许按照条件执行代码片段。PHP 的 if 结构和 C 语言相似：

<?php
if (expr)
    statement
?>

如同在表达式一章中定义的，expr 按照布尔求值。如果 expr 的值为 TRUE，PHP 将执行 statement，如果值为 FALSE － 将忽略 statement。有关哪些值被视为 FALSE 的更多信息参见转换为布尔值一节。

如果 $a 大于 $b，则以下例子将显示 a is bigger than b：

<?php
if ($a > $b)
    echo "a is bigger than b";
?>

经常需要按照条件执行不止一条语句，当然并不需要给每条语句都加上一个 if 子句。可以将这些语句放入语句组中。例如，如果 $a 大于 $b，以下代码将显示 a is bigger than b 并且将 $a 的值赋给 $b：

<?php
if ($a > $b) {
    echo "a is bigger than b";
    $b = $a;
}
?>

if 语句可以无限层地嵌套在其它 if 语句中，这给程序的不同部分的条件执行提供了充分的弹性。

控制结构
else
控制结构


else

经常需要在满足某个条件时执行一条语句，而在不满足该条件时执行其它语句，这正是 else 的功能。else 延伸了 if 语句，可以在 if 语句中的表达式的值为 FALSE 时执行语句。例如以下代码在 $a 大于 $b 时显示 a is bigger than b，反之则显示 a is NOT bigger than b：

<?php
if ($a > $b) {
    echo "a is bigger than b";
} else {
    echo "a is NOT bigger than b";
}
?>

else 语句仅在 if 以及 elseif（如果有的话）语句中的表达式的值为 FALSE 时执行（参见 elseif）。

if
elseif/else if
控制结构


elseif/else if

elseif，和此名称暗示的一样，是 if 和 else 的组合。和 else 一样，它延伸了 if 语句，可以在原来的 if 表达式值为 FALSE 时执行不同语句。但是和 else 不一样的是，它仅在 elseif 的条件表达式值为 TRUE 时执行语句。例如以下代码将根据条件分别显示 a is bigger than b，a equal to b 或者 a is smaller than b：

<?php
if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}
?>

在同一个 if 结构中可以有多个 elseif 语句。第一个表达式值为 TRUE 的 elseif 语句（如果有的话）将会执行。在 PHP 中，也可以写成“else if”（两个单词），它和“elseif”（一个单词）的行为完全一样。句法分析的含义有少许区别（如果你熟悉 C 语言的话，这是同样的行为），但是底线是两者会产生完全一样的行为。

elseif 的语句仅在之前的 if 或 elseif 的表达式值为 FALSE，而当前的 elseif 表达式值为 TRUE 时执行。

Note: 必须要注意的是 elseif 与 else if 只有在类似上例中使用大括号的情况下才认为是完全相同 Note that elseif and else if will only be considered exactly the same when using curly brackets as in the above example. When using a colon to define your if/elseif conditions, you must not separate else if into two words, or PHP will fail with a parse error.

<?php

/* Incorrect Method: */
if($a > $b):
    echo $a." is greater than ".$b;
else if($a == $b): // Will not compile.
    echo "The above line causes a parse error.";
endif;

/* Correct Method: */
if($a > $b):
    echo $a." is greater than ".$b;
elseif($a == $b): // Note the combination of the words.
    echo $a." equals ".$b;
else:
    echo $a." is neither greater than or equal to ".$b;
endif;

?>

else
流程控制的替代语法
控制结构


流程控制的替代语法

PHP 提供了一些流程控制的替代语法，包括 if，while，for，foreach 和 switch。替代语法的基本形式是把左花括号（{）换成冒号（:），把右花括号（}）分别换成 endif;，endwhile;，endfor;，endforeach; 以及 endswitch;。

<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>

在上面的例子中，HTML 内容“A is equal to 5”用替代语法嵌套在 if 语句中。该 HTML 的内容仅在 $a 等于 5 时显示。

替代语法同样可以用在 else 和 elseif 中。下面是一个包括 elseif 和 else 的 if 结构用替代语法格式写的例子：

<?php
if ($a == 5):
    echo "a equals 5";
    echo "...";
elseif ($a == 6):
    echo "a equals 6";
    echo "!!!";
else:
    echo "a is neither 5 nor 6";
endif;
?>

更多例子参见 while，for 和 if。

elseif/else if
while
控制结构


while

while 循环是 PHP 中最简单的循环类型。它和 C 语言中的 while 表现得一样。while 语句的基本格式是：

while (expr)
    statement

while 语句的含意很简单，它告诉 PHP 只要 while 表达式的值为 TRUE 就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查，所以即使这个值在循环语句中改变了，语句也不会停止执行，直到本次循环结束。有时候如果 while 表达式的值一开始就是 FALSE，则循环语句一次都不会执行。

和 if 语句一样，可以在 while 循环中用花括号括起一个语句组，或者用替代语法：

while (expr):
    statement
    ...
endwhile;

下面两个例子完全一样，都显示数字 1 到 10：

<?php
/* example 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* the printed value would be
                    $i before the increment
                    (post-increment) */
}

/* example 2 */

$i = 1;
while ($i <= 10):
    print $i;
    $i++;
endwhile;
?>

流程控制的替代语法
do-while
控制结构


do-while

do-while 和 while 循环非常相似，区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次（表达式的真值在每次循环结束后检查），然而在正规的 while 循环中就不一定了（表达式真值在循环开始时检查，如果一开始就为 FALSE 则整个循环立即终止）。

do-while 循环只有一种语法：

<?php
$i = 0;
do {
   echo $i;
} while ($i > 0);
?>

以上循环将正好运行一次，因为经过第一次循环后，当检查表达式的真值时，其值为 FALSE（$i 不大于 0）而导致循环终止。

资深的 C 语言用户可能熟悉另一种不同的 do-while 循环用法，把语句放在 do-while(0) 之中，在循环内部用 break 语句来结束执行循环。以下代码片段示范了此方法：

<?php
do {
    if ($i < 5) {
        echo "i is not big enough";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    echo "i is ok";

    /* process i */

} while(0);
?>

如果还不能立刻理解也不用担心。即使不用此“特性”也照样可以写出强大的代码来。

while
for
控制结构


for

for 循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。 for 循环的语法是：

for (expr1; expr2; expr3)
    statement

第一个表达式（expr1）在循环开始前无条件求值一次。

expr2 在每次循环开始前求值。如果值为 TRUE，则继续循环，执行嵌套的循环语句。如果值为 FALSE，则终止循环。

expr3 在每次循环之后被求值（执行）。

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中，所有用逗号分隔的表达式都会计算，但只取最后一个结果。expr2 为空意味着将无限循环下去（和 C 一样，PHP 认为其值为 TRUE）。这可能不像想象中那样没有用，因为经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。

考虑以下的例子，它们都显示数字 1 到 10：

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* example 3 */

$i = 1;
for (;;) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

当然，第一个例子看上去最正常（或者第四个），但用户可能会发现在 for 循环中用空的表达式在很多场合下会很方便。

PHP 也支持用冒号的 for 循环的替代语法。

for (expr1; expr2; expr3):
    statement;
    ...
endfor;

Its a common thing to many users to iterate though arrays like in the example below.

<?php
/*
 * This is an array with some data we want to modify
 * when running through the for loop.
 */
$people = Array(
        Array('name' => 'Kalle', 'salt' => 856412),
        Array('name' => 'Pierre', 'salt' => 215863)
        );

for($i = 0; $i < sizeof($people); ++$i)
{
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

The problem lies in the second for expression. This code can be slow because it has to calculate the size of the array on each iteration. Since the size never change, it can be optimized easily using an intermediate variable to store the size and use in the loop instead of sizeof. The example below illustrates this:

<?php
$people = Array(
        Array('name' => 'Kalle', 'salt' => 856412),
        Array('name' => 'Pierre', 'salt' => 215863)
        );

for($i = 0, $size = sizeof($people); $i < $size; ++$i)
{
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

do-while
foreach
控制结构


foreach

PHP 4 引入了 foreach 结构，和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组，当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法，第二种比较次要但却是第一种的有用的扩展。

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一种格式遍历给定的 array_expression 数组。每次循环中，当前单元的值被赋给 $value 并且数组内部的指针向前移一步（因此下一次循环中将会得到下一个单元）。

第二种格式做同样的事，只除了当前单元的键名也会在每次循环中被赋给变量 $key。

自PHP 5 起，还可能遍历对象。

Note: 当 foreach 开始执行时，数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

Note: 除非数组是被引用，foreach 所操作的是指定数组的一个拷贝，而不是该数组本身。foreach对数组指针有些副作用。除非对其重置，在 foreach 循环中或循环后都不要依赖数组指针的值。

自 PHP 5 起，可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>

此方法仅在被遍历的数组可以被引用时才可用（例如是个变量）。

Warning

Reference of a $value and the last array element remain even after the foreach loop. It is recommended to destroy it by unset().

Note: foreach 不支持用“@”来抑制错误信息的能力。

用户可能注意到了以下的代码功能完全相同：

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
    echo "Value: $value<br>\n";
}

foreach ($arr as $value) {
    echo "Value: $value<br />\n";
}
?>

以下代码功能也完全相同：

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Key: $key; Value: $value<br />\n";
}

foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}
?>

示范用法的更多例子：

<?php
/* foreach example 1: value only */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
   echo "Current value of \$a: $v.\n";
}

/* foreach example 2: value (with its manual access notation printed for illustration) */

$a = array(1, 2, 3, 17);

$i = 0; /* for illustrative purposes only */

foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* foreach example 3: key and value */

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* foreach example 4: multi-dimensional arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* foreach example 5: dynamic arrays */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

for
break
控制结构


break

break 结束当前 for，foreach，while，do-while 或者 switch 结构的执行。

break 可以接受一个可选的数字参数来决定跳出几重循环。

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list (, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
?>

foreach
continue
控制结构


continue

continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。

Note: 注意在 PHP 中 switch 语句被认为是可以使用 continue 的一种循环结构。

continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。

<?php
while (list ($key, $value) = each($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br />\n";
    while (1) {
        echo "&nbsp;&nbsp;Middle<br />\n";
        while (1) {
            echo "&nbsp;&nbsp;Inner<br />\n";
            continue 3;
        }
        echo "This never gets output.<br />\n";
    }
    echo "Neither does this.<br />\n";
}
?>

省略 continue 后面的分号会导致混淆。以下例子示意了不应该这样做。

<?php
  for ($i = 0; $i < 5; ++$i) {
      if ($i == 2)
          continue
      print "$i\n";
  }
?>

希望得到的结果是：

0
1
3
4

可实际的输出是：

2

因为 print() 调用的返回值是 int(1)，看上去作为了上述可选的数字参数。

break
switch
控制结构


switch

switch 语句和具有同样表达式的一系列的 IF 语句相似。很多场合下需要把同一个变量（或表达式）与很多不同的值比较，并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途。

Note: 注意和其它语言不同，continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一个轮回，用 continue 2。

Note: Note that switch/case does loose comparision.

下面两个例子使用两种不同方法实现同样的事，一个用一系列的 if 语句，另一个用 switch 语句：

Example #1 switch 结构

<?php
if ($i == 0) {
    echo "i equals 0";
} elseif ($i == 1) {
    echo "i equals 1";
} elseif ($i == 2) {
    echo "i equals 2";
}

switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
}
?>

Example #2 switch 结构可以用字符串

<?php
switch ($i) {
case "apple":
    echo "i is apple";
    break;
case "bar":
    echo "i is bar";
    break;
case "cake":
    echo "i is cake";
    break;
}
?>

为避免错误，理解 switch 是怎样执行的非常重要。switch 语句一行接一行地执行（实际上是语句接语句）。开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句，直到 switch 的程序段结束或者遇到第一个 break 语句为止。如果不在 case 的语句段最后写上 break 的话，PHP 将继续执行下一个 case 中的语句段。例如：

<?php
switch ($i) {
    case 0:
        echo "i equals 0";
    case 1:
        echo "i equals 1";
    case 2:
        echo "i equals 2";
}
?>

这里如果 $i 等于 0，PHP 将执行所有的 print 语句！如果 $i 等于 1，PHP 将执行后面两条 print 语句。只有当 $i 等于 2 时，才会得到“预期”的结果――只显示“i equals 2”。所以，别忘了 break 语句就很重要（即使在某些情况下故意想避免提供它们时）。

在 switch 语句中条件只求值一次并用来和每个 case 语句比较。在 elseif 语句中条件会再次求值。如果条件比一个简单的比较要复杂得多或者在一个很多次的循环中，那么用 switch 语句可能会快一些。

在一个 case 中的语句也可以为空，这样只不过将控制转移到了下一个 case 中的语句。

<?php
switch ($i) {
    case 0:
    case 1:
    case 2:
        echo "i is less than 3 but not negative";
        break;
    case 3:
        echo "i is 3";
}
?>

一个 case 的特例是 default。它匹配了任何和其它 case 都不匹配的情况。例如：

<?php
switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
    default:
        echo "i is not equal to 0, 1 or 2";
}
?>

case 表达式可以是任何求值为简单类型的表达式，即整型或浮点数以及字符串。不能用数组或对象，除非它们被解除引用成为简单类型。

switch 支持替代语法的流程控制。更多信息见流程控制的替代语法一节。

<?php
switch ($i):
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
    default:
        echo "i is not equal to 0, 1 or 2";
endswitch;
?>

允许使用分号(;)代替case语句后的冒号(:)，例如：

<?php
switch($beer)
{
    case 'tuborg';
    case 'carlsberg';
    case 'heineken';
        echo 'Good choice';
    break;
    default;
        echo 'Please make a new selection...';
    break;
}
?>

continue
declare
控制结构


declare

declare 结构用来设定一段代码的执行指令。declare 的语法和其它流程控制结构相似：

declare (directive)
    statement

directive 部分允许设定 declare 代码段的行为。目前只认识两个指令：ticks（更多信息见下面 ticks 指令）以及 encoding(更多信息见下面 encoding指令)。

Note: encoding 是 PHP 5.3.0 新增指令。

declare 代码段中的 statement 部分将被执行――怎样执行以及执行中有什么副作用出现取决于 directive 中设定的指令。

declare 结构也可用于全局范围，影响到其后的所有代码(但如果有 declare 结构的文件被其它文件包含，它对包含它的文件不起作用)。

<?php
// these are the same:

// you can use this:
declare(ticks=1) {
    // entire script here
}

// or you can use this:
declare(ticks=1);
// entire script here
?>

Ticks

Caution

ticks 指令在 PHP 5.3.0 中是过时指令，将会从 PHP 6.0.0 移除。

Tick 是一个在 declare 代码段中解释器每执行 N 条低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。

在每个 tick 中出现的事件是由 register_tick_function() 来指定的。更多细节见下面的例子。注意每个 tick 中可以出现多个事件。

Example #1 评估一段 PHP 代码的执行时间

<?php
// A function that records the time when it is called
function profile($dump = FALSE)
{
    static $profile;

    // Return the times stored in profile, then erase it
    if ($dump) {
        $temp = $profile;
        unset($profile);
        return ($temp);
    }

    $profile[] = microtime();
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile();

// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br />;";
    }
}

// Display the data stored in the profiler
print_r(profile (TRUE));
?>

这个例子评估“declare”中的 PHP 代码，每执行两条低级语句就记录一次时间。此信息可以用来找到一段特定代码中速度慢的部分。这个过程也可以用其它方法完成，但用 tick 更方便也更容易实现。

Ticks 很适合用来做调试，以及实现简单的多任务，后台 I/O 和很多其它任务。

参见 register_tick_function() 和 unregister_tick_function()。

Encoding

A script's encoding can be specified per-script using the encoding directive.

Example #2 Declaring an encoding for the script.

<?php
declare(encoding='ISO-8859-1');
// code here
?>

Caution

When combined with namespaces, the only legal syntax for declare is declare(encoding='...'); where ... is the encoding value. declare(encoding='...') {} will result in a parse error when combined with namespaces.

The encoding declare value is ignored in PHP 5.3 unless php is compiled with --enable-zend-multibyte. In PHP 6.0, the encoding directive will be used to inform the scanner what encoding the file is created in. Legal values are encoding names such as UTF-8.

switch
return
控制结构


return

如果在一个函数中调用 return()
语句，将立即结束此函数的执行并将它的参数作为函数的值返回。return()
也会终止 eval() 语句或者脚本文件的执行。

如果在全局范围中调用，则当前脚本文件中止运行。如果当前脚本文件是被 include() 的或者 require() 的，则控制交回调用文件。此外，如果当前脚本是被 include() 的，则 return() 的值会被当作 include() 调用的返回值。如果在主脚本文件中调用 return()，则脚本中止运行。如果当前脚本文件是在 php.ini 中的配置选项 auto_prepend_file 或者 auto_append_file 所指定的，则此脚本文件中止运行。

更多信息见返回值。

Note: 注意既然 return() 是语言结构而不是函数，因此其参数没有必要用括号将其括起来。通常都不用括号，实际上也应该不用，这样可以降低 PHP 的负担。

Note: 当用引用返回值时永远不要使用括号，这样行不通。只能通过引用返回变量，而不是语句的结果。如果使用 return ($a); 时其实不是返回一个变量，而是表达式 ($a) 的值（当然，此时该值也正是 $a 的值）。

declare
require
控制结构


require

return
include
控制结构
PHP 手册

require()

require() 语句包含并运行指定文件。

require() 语句包含并运行指定文件。有关包括如何工作的详细信息见 include() 的文档。

require() 和 include() 几乎完全一样，除了处理失败的方式不同之外。include() 产生一个Warning而 require() 则导致一个 Fatal Error。换句话说，如果想在丢失文件时停止处理页面，那就别犹豫了，用 require() 吧。include() 就不是这样，脚本会继续运行。同时也要确认设置了合适的include_path。

Example #1 基本的 require() 例子

<?php

require 'prepend.php';

require $somefile;

require ('somefile.txt');

?>

更多例子参见 include() 文档。

Note: 在 PHP 4.0.2 之前适用以下规则：require() 总是会尝试读取目标文件，即使它所在的行根本就不会执行。条件语句不会影响 require()。不过如果 require() 所在的行没有执行，则目标文件中的代码也不会执行。同样，循环结构也不影响 require() 的行为。尽管目标文件中包含的代码仍然是循环的主体，但 require() 本身只会运行一次。

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

参见 include()，require_once()，include_once()，get_included_files()，eval()，file()，readfile()，virtual() 和 include_path。

return
include
控制结构


include

require
require_once
控制结构
PHP 手册

include()

include() 语句包含并运行指定文件。

以下文档也适用于 require()。这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说，如果想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样，脚本会继续运行。同时也要确认设置了合适的 include_path。注意在 PHP 4.3.5 之前，包含文件中的语法错误不会导致程序停止，但从此版本之后会。

Files for including are first looked for in each include_path entry relative to the current working directory, and then in the directory of current script. E.g. if your include_path is libraries, current working directory is /www/, you included include/a.php and there is include "b.php" in that file, b.php is first looked in /www/libraries/ and then in /www/include/. If filename begins with ./ or ../, it is looked only in the current working directory. ++++ 寻找包含文件的顺序先是在当前工作目录的相对的 include_path 下寻找，然后是当前运行脚本所在目录相对的 include_path 下寻找。例如 include_path 是 .，当前工作目录是 /www/，脚本中要 include 一个 include/a.php 并且在该文件中有一句 include "b.php"，则寻找 b.php 的顺序先是 /www/，然后是 /www/include/。如果文件名以 ./ 或者 ../ 开始，则只在当前工作目录相对的 include_path 下寻找。

当一个文件被包含时，其中所包含的代码继承了 include 所在行的变量范围。从该处开始，调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。

Example #1 基本的 include() 例子

vars.php
<?php

$color = 'green';
$fruit = 'apple';

?>

test.php
<?php

echo "A $color $fruit"; // A

include 'vars.php';

echo "A $color $fruit"; // A green apple

?>

如果 include 出现于调用文件中的一个函数里，则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。所以它将遵循该函数的变量范围。 An exception to this rule are magic constants which are evaluated by the parser before the include occurs.

Example #2 函数中的包含

<?php

function foo()
{
    global $color;

    include 'vars.php';

    echo "A $color $fruit";
}

/* vars.php is in the scope of foo() so     *
 * $fruit is NOT available outside of this  *
 * scope.  $color is because we declared it *
 * as global.                               */

foo();                    // A green apple
echo "A $color $fruit";   // A green

?>

当一个文件被包含时，语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式，到文件结尾处恢复。由于此原因，目标文件中应被当作 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中。

如果“URL fopen wrappers”在 PHP 中被激活（默认配置），可以用 URL（通过 HTTP 或者其它支持的封装协议――所支持的协议见支持的协议／封装协议列表）而不是本地文件来指定要被包含的文件。如果目标服务器将目标文件作为 PHP 代码解释，则可以用适用于 HTTP GET 的 URL 请求字符串来向被包括的文件传递变量。严格的说这和包含一个文件并继承父文件的变量空间并不是一回事；该脚本文件实际上已经在远程服务器上运行了，而本地脚本则包括了其结果。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

Example #3 通过 HTTP 进行的 include()

<?php

/* This example assumes that www.example.com is configured to parse .php *
 * files and not .txt files. Also, 'Works' here means that the variables *
 * $foo and $bar are available within the included file.                 */

// Won't work; file.txt wasn't handled by www.example.com as PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
// local filesystem.
include 'file.php?foo=1&bar=2';

// Works.
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Works.
include 'file.php';  // Works.

?>

Warning

安全警告

远程文件可能会经远程服务器处理（根据文件后缀以及远程服务器是否在运行 PHP 而定），但必须产生出一个合法的 PHP 脚本，因为其将被本地服务器处理。如果来自远程服务器的文件应该在远端运行而只输出结果，那用 readfile() 函数更好。另外还要格外小心以确保远程的脚本产生出合法并且是所需的代码。

相关信息参见使用远程文件，fopen() 和 file()。

处理返回值：可以在被包括的文件中使用 return() 语句来终止该文件中程序的执行并返回调用它的脚本。同样也可以从被包含的文件中返回值。可以像普通函数一样获得 include 调用的返回值。不过这在包含远程文件时却不行，除非远程文件的输出具有合法的 PHP 开始和结束标记（如同任何本地文件一样）。可以在标记内定义所需的变量，该变量在文件被包含的位置之后就可用了。

因为 include() 是一个特殊的语言结构，其参数不需要括号。在比较其返回值时要注意。

Example #4 比较 include 的返回值

<?php
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// works
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>

Example #5 include() 和 return() 语句

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // prints 'PHP'

$bar = include 'noreturn.php';

echo $bar; // prints 1

?>

$bar 的值为 1 是因为 include 成功运行了。注意以上例子中的区别。第一个在被包含的文件中用了 return() 而另一个没有。如果文件不能被包含，则返回 FALSE 并发出一个 E_WARNING 警告。

如果在包含文件中定义有函数，这些函数可以独立于是否在 return() 之前还是之后在主文件中使用。如果文件被包含两次，PHP 5 发出致命错误因为函数已经被定义，但是 PHP 在 return() 之后不会抱怨函数已定义。推荐使用 include_once() 而不是检查文件是否已包含并在包含文件中有条件返回。

另一个将 PHP 文件“包含”到一个变量中的方法是用输出控制函数结合 include() 来捕获其输出，例如：

Example #6 使用输出缓冲来将 PHP 文件包含入一个字符串

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }
    return false;
}

?>

要在脚本中自动包含文件，参见 php.ini 中的 auto_prepend_file 和 auto_append_file 配置选项。

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

参见 require()，require_once()，include_once()，get_included_files()，readfile()，virtual() 和 include_path。

require
require_once
控制结构


require_once

include
include_once
控制结构
PHP 手册

require_once()

require_once() 语句在脚本执行期间包含并运行指定文件。此行为和 require() 语句类似，唯一区别是如果该文件中的代码已经被包含了，则不会再次包含。有关此语句怎样工作参见 require() 的文档。

require_once() 应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下，想确保它只被包含一次以避免函数重定义，变量重新赋值等问题。

使用 require_once() 和 include_once() 的例子见最新的 PHP 源程序发行包中的 » PEAR 代码。

返回值和 include() 相同。如果文件已被包含，本函数返回 TRUE。

Note: require_once() 是 PHP 4.0.1 中新加入的。

Note: 要注意 require_once() 和 include_once() 在大小写不敏感的操作系统中（例如 Windows）的行为可能不是所期望的。

Example #1 require_once() 在 Windows 下不区分大小写

<?php
require_once "a.php"; // this will include a.php
require_once "A.php"; // this will include a.php again on Windows!
?>

此行为在 PHP 5 中改了，路径先被规格化，因此 C:\PROGRA~1\A.php 和 C:\Program Files\a.php 的实现一样，文件只会被包含一次。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

参见 require()，include()，include_once()，get_required_files()，get_included_files()，readfile() 和 virtual()。

include
include_once
控制结构


include_once

require_once
函数
控制结构
PHP 手册

include_once()

The include_once() 语句在脚本执行期间包含并运行指定文件。此行为和 include() 语句类似，唯一区别是如果该文件中的代码已经被包含了，则不会再次包含。如同此语句名字暗示的那样，只会包含一次。

include_once() 应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下，想确保它只被包含一次以避免函数重定义，变量重新赋值等问题。

使用 require_once() 和 include_once() 的更多例子见最新的 PHP 源程序发行包中的 » PEAR 代码。

返回值和 include() 相同。如果文件已被包含，本函数返回 TRUE。

Note: include_once() 是 PHP 4.0.1pl2 中新加入的。

Note: 要注意 include_once() 和 require_once() 在大小写不敏感的操作系统中（例如 Windows）的行为可能不是所期望的。

Example #1 include_once() 在 Windows 下不区分大小写

<?php
include_once "a.php"; // this will include a.php
include_once "A.php"; // this will include a.php again on Windows! (PHP 4 only)
?>

此行为在 PHP 5 中改了，路径先被规格化，因此 C:\PROGRA~1\A.php 和 C:\Program Files\a.php 的实现一样，文件只会被包含一次。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

参见 include()，require()，require_once()，get_required_files()，get_included_files()，readfile() 和 virtual()。

require_once
函数
控制结构


函数

Table of Contents

  • 用户自定义函数
  • 函数的参数
  • 返回值
  • 可变函数
  • 内部（内置）函数
include_once
用户自定义函数
语言参考


用户自定义函数

一个函数可由以下的语法来定义：

Example #1 展示函数用途的伪代码

<?php
function foo($arg_1, $arg_2, ..., $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>

任何有效的 PHP 代码都有可能出现在函数内部，甚至包括其它函数和类定义。

函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头，后面跟字母，数字或下划线。可以用正则表达式表示为：[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*。

Tip

可以参考Userland Naming Guide。

除非是下面两个例子中的情况，函数必须在其调用之前定义。

Example #2 条件函数(Conditional functions)

<?php

$makefoo = true;

/* 我们不能在处调用foo()函数，
   因为它还不存在，但可以调用bar()函数。*/

bar();

if ($makefoo) {
  function foo()
  {
    echo "I don't exist until program execution reaches me.\n";
  }
}

/* 现在我们可以安全调用函数 foo()了，
   因为 $makefoo 值为真 */

if ($makefoo) foo();

function bar()
{
  echo "I exist immediately upon program start.\n";
}

?>

Example #3 函数中的函数

<?php
function foo()
{
  function bar()
  {
    echo "I don't exist until foo() is called.\n";
  }
}

/* 现在还不能调用bar()函数，因为它还不存在 */

foo();

/* 现在可以调用bar()函数了，因为foo()函数
   的执行使得bar()函数变为已定义的函数 */

bar();

?>

PHP 中的所有函数和类都具有全局作用域，可以在内部定义外部调用，反之亦然。

PHP 不支持函数重载，也不可能取消定义或者重定义已声明的函数。

Note: 函数名是大小写无关的，不过在调用函数的时候，通常使用其在定义时相同的形式。

PHP 支持可变数量的参数和默认参数。具体请参考： func_num_args()，func_get_arg()，以及func_get_args()。

在 PHP 中可以调用递归函数。但是要避免递归函数／方法调用超过 100-200 层，因为可能会破坏堆栈从而使当前脚本终止。

Example #4 递归函数

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

函数
函数的参数
函数


函数的参数

通过参数列表可以传递信息到函数，即以逗号作为分隔符的表达式列表。

PHP 支持按值传递参数（默认），通过引用传递参数以及默认参数。也支持可变数量的参数；更多信息请参照可变长度参数列表和涉及到的相关函数 func_num_args()，func_get_arg() 以及 func_get_args()。

Example #1 向函数传递数组

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

通过引用传递参数

缺省情况下，函数参数通过值传递（因而即使在函数内部改变参数的值，它并不会改变函数外部的值）。如果希望允许函数修改它的参数值，必须通过引用传递参数。

如果想要函数的一个参数总是通过引用传递，可以在函数定义中该参数的前面预先加上符号 &：

Example #2 用引用传递函数参数

<?php
function add_some_extra(&$string)
{
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str;    // outputs 'This is a string, and something extra.'
?>

默认参数的值

函数可以定义 C++ 风格的标量参数默认值，如下：

Example #3 在函数中使用默认参数

<?php
function makecoffee($type = "cappuccino")
{
    return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");
?>

上面代码段的输出是：

Making a cup of cappuccino.
Making a cup of .
Making a cup of espresso.

PHP 还允许使用数组和特殊类型 NULL 作为默认参数，例如：

Example #4 使用非标量类型作为默认参数

<?php
function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL)
{
    $device = is_null($coffeeMaker) ? "hands" : $coffeeMaker;
    return "Making a cup of ".join(", ", $types)." with $device.\n";
}
echo makecoffee();
echo makecoffee(array("cappuccino", "lavazza"), "teapot");
?>

默认值必须是常量表达式，不能是诸如变量，类成员，或者函数调用等表达式。

请注意当使用默认参数时，任何默认参数必须放在任何非默认参数的右侧；否则，函数将不会按照预期的情况工作。考虑下面的代码片断：

Example #5 函数默认参数不正确的用法

<?php
function makeyogurt($type = "acidophilus", $flavour)
{
    return "Making a bowl of $type $flavour.\n";
}

echo makeyogurt("raspberry");   // won't work as expected
?>

上述例子的输出是：

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Making a bowl of raspberry .

现在，比较上面的例子和这个例子：

Example #6 函数默认参数正确的用法

<?php
function makeyogurt($flavour, $type = "acidophilus")
{
    return "Making a bowl of $type $flavour.\n";
}

echo makeyogurt("raspberry");   // works as expected
?>

这个例子的输出是：

Making a bowl of acidophilus raspberry.

Note: 自 PHP 5 起，默认值可以通过引用传递。

可变数量的参数列表

PHP 4 及更高版本已经在用户自定义函数中支持可变数量的参数列表。其实很简单，只需使用 func_num_args()，func_get_arg()，和 func_get_args() 函数即可。

可变参数并不需要特别的语法，参数列表仍按函数定义的方式传递给函数，并按通常的方式使用这些参数。

用户自定义函数
返回值
函数


返回值

值通过使用可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行，并且将控制权交回调用该函数的代码行。更多信息见 return()。

Example #1 return() 的使用

<?php
function square($num)
{
    return $num * $num;
}
echo square(4);   // outputs '16'.
?>

函数不能返回多个值，但可以通过返回一个数组来得到类似的效果。

Example #2 返回一个数组以得到多个返回值

<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>

从函数返回一个引用，必须在函数声明和指派返回值给一个变量时都使用引用操作符 & ：

Example #3 从函数返回一个引用

<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>

有关引用的更多信息, 请查看引用的解释。

函数的参数
可变函数
函数


可变函数

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号，PHP 将寻找与变量的值同名的函数，并且尝试执行它。可变函数可以用来实现包括回调函数，函数表在内的一些用途。

变量函数不能用于语言结构，例如 echo()，print()，unset()，isset()，empty()，include()，require() 以及类似的语句。需要使用自己的包装函数来将这些结构用作变量函数。

Example #1 可变函数示例

<?php
function foo() {
    echo "In foo()<br />\n";
}

function bar($arg = '') {
    echo "In bar(); argument was '$arg'.<br />\n";
}

// 使用 echo 的包装函数
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // This calls foo()

$func = 'bar';
$func('test');  // This calls bar()

$func = 'echoit';
$func('test');  // This calls echoit()
?>

还可以利用可变函数的特性来调用一个对象的方法。

Example #2 可变方法范例

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // This calls the Bar() method
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();   // This calls $foo->Variable()

?>

请参阅 call_user_func()，可变变量和 function_exists()。

返回值
内部（内置）函数
函数


内部（内置）函数

PHP 有很多标准的函数和结构。还有一些函数需要和特定地 PHP 扩展模块一起编译，否则在使用它们的时候就会得到一个致命的“未定义函数”错误。例如，要使用image函数比如 imagecreatetruecolor()，需要在编译 PHP 的时候加上 GD 的支持。或者，要使用 mysql_connect() 函数，就需要在编译 PHP 的时候加上 MySQL 支持。有很多核心函数已包含在每个版本的 PHP 中如字符串和变量函数。调用 phpinfo() 或者 get_loaded_extensions() 可以得知 PHP 加载了那些扩展库。同时还应该注意，很多扩展库默认就是有效的。PHP 手册按照不同的扩展库组织了它们的文档。请参阅配置，安装以及各自的扩展库章节以获取有关如何设置 PHP 的信息。

手册中如何阅读函数原型讲解了如何阅读和理解一个函数的原型。确认一个函数将返回什么，或者函数是否直接作用于传递的参数是很重要的。例如，str_replace() 函数将返回修改过的字符串，而 usort() 却直接作用于传递的参数变量本身。手册中，每一个函数的页面中都有关于函数参数、行为改变、成功与否的返回值以及使用条件等信息。了解这些重要的（常常是细微的）差别是编写正确的 PHP 代码的关键。

Note: 如果传递给函数的参数类型与实际的类型不一致，例如将一个array传递给一个string类型的变量，那么函数的返回值是不确定的。在这种情况下，通常函数会返回NULL。但这仅仅是一个约定，并不一定如此。

参见 function_exists()，函数参考，get_extension_funcs() 和 dl()。

可变函数
类与对象（PHP 4）
函数


类与对象（PHP 4）

Table of Contents

  • 类
  • 继承
  • 构造函数
  • 范围解析操作符（::）
  • parent
  • 序列化对象 － 会话中的对象
  • 魔术函数 __sleep 和 __wakeup
  • 构造函数中的引用
  • 对象的比较
内部（内置）函数
类
语言参考


类

类是变量与作用于这些变量的函数的集合。变量通过var来定义，函数通过 function 来定义，而类则通过下面的语法定义：

<?php
class Cart {
    var $items;  // 购物车中的物品

    // 将 $num 个 $artnr 物品加入购物车

    function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // 将 $num 个 $artnr 物品从购物车中取出

    function remove_item($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } elseif ($this->items[$artnr] == $num) {
            unset($this->items[$artnr]);
            return true;
        } else {
            return false;
        }
    }
}
?>

上面的例子定义了一个 Cart 类，这个类由购物车中的商品构成的数组和两个用于从购物车中添加和删除商品的函数组成。

Warning

不能将一个类的定义分割到多个文件中。也不能将一个类的定义分割到多个 PHP 块中，除非该分割是在一个方法声明内部。以下用法将不起作用：

<?php
class test {
?>
<?php
    function test() {
        print 'OK';
    }
}
?>

但是以下用法是可以的：

<?php
class test {
    function test() {
        ?>
        <?php
        print 'OK';
    }
}
?>

以下警告仅用于 PHP 4。

Caution

名称 stdClass 已经被 Zend 使用并保留。不能在 PHP 代码中定义名为 stdClass 的类。

Caution

函数名 __sleep 和 __wakeup 在 PHP 类中是魔术函数。除非想要与之联系的魔术功能，否则在任何类中都不能以此命名函数。

Caution

PHP 将所有以 __ 开头的函数名保留为魔术函数。除非想要使用一些见于文档中的魔术功能，否则建议不要在 PHP 中将函数名以 __ 开头。

在 PHP 4 中，var 变量的值只能初始化为常量。用非常量值初始化变量，需要一个初始化函数，该函数在对象被创建时自动被调用。这样一个函数被称之为构造函数（见下面）。

<?php
/* PHP 4 中不能这样用 */
class Cart {
    var $todays_date = date("Y-m-d");
    var $name = $firstname;
    var $owner = 'Fred ' . 'Jones';
    /* 不过包含有常量的数组可以 */
    var $items = array("VCR", "TV");
}

/* 应该这样进行 */
class Cart {
    var $todays_date;
    var $name;
    var $owner;
    var $items = array("VCR", "TV");
    function Cart() {
        $this->todays_date = date("Y-m-d");
        $this->name = $GLOBALS['firstname'];
        /* etc. . . */
    }
}
?>

类也是一种类型，就是说，它们是实际变量的蓝图。必须用 new 运算符来创建相应类型的变量。

<?php
$cart = new Cart;
$cart->add_item("10", 1);

$another_cart = new Cart;
$another_cart->add_item("0815", 3);
?>

上述代码创建了两个 Cart 类的对象 $cart 和 $another_cart，对象 $cart 的方法 add_item() 被调用时，添加了 1 件 10 号商品。对于对象 $another_cart，3 件 0815 号商品被添加到购物车中。

$cart 和 $another_cart 都有方法 add_item()，remove_item() 和一个 items 变量。它们都是明显的函数和变量。可以把它们当作文件系统中的某些类似目录的东西来考虑。在文件系统中，可以拥有两个不同的 README.TXT 文件，只要不在相同的目录中。正如从为了根目录访问每个文件需要输入该文件的完整的路径名一样，必须指定需要调用的函数的完整名称：在 PHP 术语中，根目录将是全局名字空间，路径名符号将是 ->。因而，名称 $cart->items 和 $another_cart->items 命名了两个不同的变量。注意变量名为 $cart->items，不是 $cart->$items，那是因为在 PHP 中一个变量名只有一个单独的美元符号。

<?php
// 正确，只有一个 $
$cart->items = array("10" => 1);

// 不正确，因为 $cart->$items 变成了 $cart->""
$cart->$items = array("10" => 1);

// 正确，但可能不是想要的结果：
// $cart->$myvar 变成了 $cart->items
$myvar = 'items';
$cart->$myvar = array("10" => 1);
?>

在定义类的时候，无法得知将使什么名字的对象来访问：在编写 Cart 类时，并不知道之后对象的名称将会命名为 $cart 或者 $another_cart，还是什么其它的名字。因而你不能在类中使用 $cart->items。然而为了类定义的内部访问自身的函数和变量，可以使用伪变量 $this 来达到这个目的。$this 变量可以理解为“我自己的”或者“当前对象”。因而 '$this->items[$artnr] += $num' 可以理解为“我自己的物品数组的 $artnr 计数器加 $num”或者“在当前对象的物品数组的 $artnr 计数器加 $num”。

Note: 伪变量 $this 通常未定义，如果其所在的方法是被静态调用的话。但这不是个严格规定：如果一个方法被从另一个对象内静态调用的话，则 $this 会被定义。此时 $this 的值是那个发出调用的对象。用下例演示：

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

上例将输出：

$this is defined (a)
$this is not defined.
$this is defined (b)
$this is not defined.

Note: 有一些不错的函数用来处理类和对象。应该关注一下类／对象函数。

类与对象（PHP 4）
继承
类与对象（PHP 4）


继承

通常需要这样一些类，这些类与其它现有的类拥有相同变量和函数。实际上，定义一个通用类用于所有的项目，并且不断丰富这个类以适应每个具体项目将是一个不错的练习。为了使这一点变得更加容易，类可以从其它的类中扩展出来。扩展或派生出来的类拥有其基类（这称为“继承”，只不过没人死）的所有变量和函数，并包含所有派生类中定义的部分。类中的元素不可能减少，就是说，不可以注销任何存在的函数或者变量。一个扩充类总是依赖一个单独的基类，也就是说，不支持多继承。使用关键字“extends”来扩展一个类。

<?php
class Named_Cart extends Cart {
    var $owner;

    function set_owner ($name) {
        $this->owner = $name;
    }
}
?>

上述示例定义了名为 Named_Cart 的类，该类拥有 Cart 类的所有变量和函数，加上附加的变量 $owner 和一个附加函数 set_owner()。现在，以正常的方式创建了一个有名字的购物车，并且可以设置并取得该购物车的主人。而正常的购物车类的函数依旧可以在有名字的购物车类中使用：

<?php
$ncart = new Named_Cart;    // 新建一个有名字的购物车
$ncart->set_owner("kris");  // 给该购物车命名
print $ncart->owner;        // 输出该购物车主人的名字
$ncart->add_item("10", 1);  // （从购物车类中继承来的功能）
?>

这个也可以叫做“父－子”关系。创建一个类，父类，并使用 extends 来创建一个基于父类的新类：子类。甚至可以使用这个新的子类来创建另外一个基于这个子类的类。

Note: 类只有在定义后才可以使用！如果需要类 Named_Cart 继承类 Cart，必须首先定义 Cart 类。如果需要创建另一个基于 Named_Cart 类的 Yellow_named_cart 类，必须首先定义 Named_Cart 类。简捷的说：类定义的顺序是非常重要的。

类
构造函数
类与对象（PHP 4）


构造函数

构造函数是类中的一个特殊函数，当使用 new 操作符创建一个类的实例时，构造函数将会自动调用。当函数与类同名时，这个函数将成为构造函数。如果一个类没有构造函数，则调用基类的构造函数，如果有的话。

<?php
class Auto_Cart extends Cart {
    function Auto_Cart() {
        $this->add_item ("10", 1);
    }
}
?>

上文定义了一个 Auto_Cart 类，即 Cart 类加上一个构造函数，当每次使用“new”创建一个新的 Auto_Cart 类实例时，构造函数将自动调用并将一件商品的数目初始化为“10”。构造函数可以使用参数，而且这些参数可以是可选的，它们可以使构造函数更加有用。为了依然可以不带参数地使用类，所有构造函数的参数应该提供默认值，使其可选。

<?php
class Constructor_Cart extends Cart {
    function Constructor_Cart($item = "10", $num = 1) {
        $this->add_item ($item, $num);
    }
}

// 买些同样的无聊老货
$default_cart = new Constructor_Cart;
// 买些实在货...
$different_cart = new Constructor_Cart("20", 17);
?>

也可以使用 @ 操作符来抑制发生在构造函数中的错误。例如 @new。

<?php
class A
{
    function A()
    {
      echo "I am the constructor of A.<br>\n";
    }

    function B()
    {
        echo "I am a regular function named B in class A.<br>\n";
        echo "I am not a constructor in A.<br>\n";
    }
}

class B extends A
{
    function C()
    {
        echo "I am a regular function.<br>\n";
    }
}

// 调用 B() 作为构造函数
$b = new B;
?>

类 A 中的函数 B() 将立即成为类 B 中的构造函数，虽然并不是有意如此。PHP 4 并不关心函数是否在类 B 中定义的，或者是否被继承来的。

Caution

PHP 4 不会从派生类的构造函数中自动调用基类的构造函数。恰当地逐次调用上一级的构造函数是用户的责任。

析构函数是一种当对象被销毁时，无论使用了 unset() 或者简单的脱离范围，都会被自动调用的函数。PHP 中没有析构函数。可以用 register_shutdown_function() 来替代模拟大多数析构函数的效果。

继承
范围解析操作符（::）
类与对象（PHP 4）


范围解析操作符（::）

Caution

下列内容仅在 PHP 4 及以后版本中有效。

有时，在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处。而 :: 运算符即用于此情况。

<?php
class A {
    function example() {
        echo "I am the original function A::example().<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am the redefined function B::example().<br />\n";
        A::example();
    }
}

// A 类没有对象，这将输出
//   I am the original function A::example().<br />
A::example();

// 建立一个 B 类的对象
$b = new B;

// 这将输出
//   I am the redefined function B::example().<br />
//   I am the original function A::example().<br />
$b->example();
?>

上面的例子调用了 A 类的函数 example()，但是这里并不存在 A
类的对象，因此不能这样用 $a->example() 或者类似的方法调用
example()。反而我们将 example()
作为一个类函数来调用，也就是说，作为一个类自身的函数来调用，而不是这个类的任何对象。

这里有类函数，但没有类的变量。实际上，在调用函数时完全没有任何对象。因而一个类的函数可以不使用任何对象（但可以使用局部或者全局变量），并且可以根本不使用 $this 变量。

上面的例子中，类 B 重新定义了函数 example()。A
类中原始定义的函数 example()
将被屏蔽并且不再生效，除非使用 ::
运算符来访问 A 类中的 example() 函数。如：A::example()（实际上，应该写为
parent::example()，下一章介绍该内容）。

就此而论，对于当前对象，它可能有对象变量。因此可以在对象函数的内部使用 $this 和对象变量。

构造函数
parent
类与对象（PHP 4）


parent

用户可能会发现自己写的代码访问了基类的变量和函数。如果派生类非常精炼或者基类非常专业化的时候尤其是这样。

不要用代码中基类文字上的名字，应该用特殊的名字 parent，它指的就是派生类在 extends 声明中所指的基类的名字。这样做可以避免在多个地方使用基类的名字。如果继承树在实现的过程中要修改，只要简单地修改类中 extends 声明的部分。

<?php
class A {
    function example() {
        echo "I am A::example() and provide basic functionality.<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am B::example() and provide additional functionality.<br />\n";
        parent::example();
    }
}

$b = new B;

// 这将调用 B::example()，而它会去调用 A::example()。
$b->example();
?>
范围解析操作符（::）
序列化对象 － 会话中的对象
类与对象（PHP 4）


序列化对象 － 会话中的对象

serialize() 返回一个字符串，包含着可以储存于 PHP 的任何值的字节流表示。unserialize() 可以用此字符串来重建原始的变量值。用序列化来保存对象可以保存对象中的所有变量。对象中的函数不会被保存，只有类的名称。

要能够 unserialize() 一个对象，需要定义该对象的类。也就是，如果序列化了 page1.php 中类 A 的对象 $a，将得到一个指向类 A 的字符串并包含有所有 $a 中变量的值。如果要在 page2.php 中将其解序列化，重建类 A 的对象 $a，则 page2.php 中必须要出现类 A 的定义。例如可以这样实现，将类 A 的定义放在一个包含文件中，并在 page1.php 和 page2.php 都包含此文件。

<?php
// classa.inc:
  class A {
      var $one = 1;

      function show_one() {
          echo $this->one;
      }
  }

// page1.php:
  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // 将 $s 存放在某处使 page2.php 能够找到
  $fp = fopen("store", "w");
  fwrite($fp, $s);
  fclose($fp);

// page2.php:
  // 为了正常解序列化需要这一行
  include("classa.inc");

  $s = implode("", @file("store"));
  $a = unserialize($s);

  // 现在可以用 $a 对象的 show_one() 函数了
  $a->show_one();
?>

如果在用会话并使用了 session_register() 来注册对象，这些对象会在每个 PHP 页面结束时被自动序列化，并在接下来的每个页面中自动解序列化。基本上是说这些对象一旦成为会话的一部分，就能在任何页面中出现。

强烈建议在所有的页面中都包括这些注册的对象的类的定义，即使并不是在所有的页面中都用到了这些类。如果没有这样做，一个对象被解序列化了但却没有其类的定义，它将失去与之关联的类并成为 __PHP_Incomplete_Class_Name 的一个对象而完全没有任何可用的函数，这样就很没有用处。

因此如果在以上的例子中 $a 通过运行 session_register("a") 成为了会话的一部分，应该在所有的页面中包含 classa.inc 文件，而不只是 page1.php 和 page2.php。

parent
魔术函数 __sleep 和 __wakeup
类与对象（PHP 4）


魔术函数 __sleep 和 __wakeup

serialize() 检查类中是否有魔术名称 __sleep 的函数。如果这样，该函数将在任何序列化之前运行。它可以清除对象并应该返回一个包含有该对象中应被序列化的所有变量名的数组。如果该函数没有返回什么数据，则不会有什么数据被序列化，并且会发出一个 E_NOTICE 错误。

使用 __sleep 的目的是提交等待中的数据或进行类似的清除任务。此外，如果有非常大的对象而并不需要完全储存下来时此函数也很有用。

相反地，unserialize() 检查具有魔术名称 __wakeup 的函数的存在。如果存在，此函数可以重建对象可能具有的任何资源。

使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。

序列化对象 － 会话中的对象
构造函数中的引用
类与对象（PHP 4）


构造函数中的引用

在构造函数中创建引用可能会导致混淆的结果。本节以教程形式帮助避免问题。

<?php
class Foo {
    function Foo($name) {
        // 在全局数组 $globalref 中建立一个引用
        global $globalref;
        $globalref[] = &$this;
        // 将名字设定为传递的值
        $this->setName($name);
        // 并输出之
        $this->echoName();
    }

    function echoName() {
        echo "<br />",$this->name;
    }

    function setName($name) {
        $this->name = $name;
    }
}
?>

下面来检查一下用拷贝运算符 = 创建的 $bar1 和用引用运算符 =& 创建的 $bar2 有没有区别...

<?php
$bar1 = new Foo('set in constructor');
$bar1->echoName();
$globalref[0]->echoName();

/* 输出：
set in constructor
set in constructor
set in constructor */

$bar2 =& new Foo('set in constructor');
$bar2->echoName();
$globalref[1]->echoName();

/* 输出：
set in constructor
set in constructor
set in constructor */
?>

显然没有区别，但实际上有一个非常重要的区别：$bar1 和 $globalref[0] 并没有被引用，它们不是同一个变量。这是因为“new”默认并不返回引用，而返回一个拷贝。

Note: 在返回拷贝而不是引用中并没有性能上的损失（因为 PHP 4 及以上版本使用了引用计数）。相反更多情况下工作于拷贝而不是引用上更好，因为建立引用需要一些时间而建立拷贝实际上不花时间（除非它们都不是大的数组或对象，而其中之一跟着另一个变，那使用引用来同时修改它们会更聪明一些）。

要证明以上写的，看看下面的代码。

<?php
// 现在改个名字，你预期什么结果？
// 你可能预期 $bar1 和 $globalref[0] 二者的名字都改了...
$bar1->setName('set from outside');

// 但如同前面说的，并不是这样。
$bar1->echoName();
$globalref[0]->echoName();

/* 输出为：
set from outside
set in constructor */

// 现在看看 $bar2 和 $globalref[1] 有没有区别
$bar2->setName('set from outside');

// 幸运的是它们不但相同，根本就是同一个变量。
// 因此 $bar2->name 和 $globalref[1]->name 也是同一个变量。
$bar2->echoName();
$globalref[1]->echoName();

/* 输出为：
set from outside
set from outside */
?>

最后给出另一个例子，试着理解它。

<?php
class A {
    function A($i) {
        $this->value = $i;
        // 试着想明白为什么这里不需要引用
        $this->b = new B($this);
    }

    function createRef() {
        $this->c = new B($this);
    }

    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->value;
    }
}

class B {
    function B(&$a) {
        $this->a = &$a;
    }

    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->a->value;
    }
}

// 试着理解为什么这里一个简单的拷贝会在下面用 *
// 标出来的行中产生预期之外的结果
$a =& new A(10);
$a->createRef();

$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();

$a->value = 11;

$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();
?>

上例将输出：

class A: 10
class B: 10
class B: 10
class A: 11
class B: 11
class B: 11

魔术函数 __sleep 和 __wakeup
对象的比较
类与对象（PHP 4）


对象的比较

在 PHP 4 中，对象比较的规则十分简单：如果两个对象是同一个类的实例，且它们有相同的属性和值，则这两个对象相等。类似的规则还适用与用全等符（===）对两个对象的比较。

如果执行以下范例中的代码：

Example #1 PHP 4 中对象比较范例

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2) {
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class SwitchableFlag extends Flag {

    function turnOn() {
        $this->flag = true;
    }

    function turnOff() {
        $this->flag = false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo "Compare instances created with the same parameters\n";
compareObjects($o, $q);

echo "\nCompare instances created with different parameters\n";
compareObjects($o, $p);

echo "\nCompare an instance of a parent class with one from a subclass\n";
compareObjects($o, $r);
?>

上例将输出：

Compare instances created with the same parameters
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Compare instances created with different parameters
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Compare an instance of a parent class with one from a subclass
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

这和按照比较规则推测的结果一致。当且仅当出自同一个类且属性及其值都相同的对象被认为是相等且完全相同的。

即使对于具有对象成分的类，比较的规则也相同。在以下的范例中建立了一个容器类来储存 Flag 对象的一个相关数组。

Example #2 PHP 4 中复合对象的比较

<?php
class FlagSet {
    var $set;

    function FlagSet($flagArr = array()) {
        $this->set = $flagArr;
    }

    function addFlag($name, $flag) {
        $this->set[$name] = $flag;
    }

    function removeFlag($name) {
        if (array_key_exists($name, $this->set)) {
            unset($this->set[$name]);
        }
    }
}

$u = new FlagSet();
$u->addFlag('flag1', $o);
$u->addFlag('flag2', $p);
$v = new FlagSet(array('flag1'=>$q, 'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo "\nComposite objects u(o,p) and v(q,p)\n";
compareObjects($u, $v);

echo "\nu(o,p) and w(q)\n";
compareObjects($u, $w);
?>

上例将输出：

Composite objects u(o,p) and v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) and w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

构造函数中的引用
类与对象（PHP 5）
类与对象（PHP 4）


类与对象（PHP 5）

Table of Contents

  • 前言
  • 基本概念
  • 自动加载对象
  • 构造函数和析构函数
  • 访问控制
  • 范围解析操作符（::）
  • Static关键字
  • 类常量
  • 抽象类
  • 接口
  • 重载
  • 对象迭代
  • 设计模式
  • 魔术方法
  • Final关键字
  • 对象复制
  • 对象比较
  • Reflection
  • Type Hinting
  • Late Static Bindings
  • Objects and references
对象的比较
前言
语言参考


前言

PHP 5 引入了新的对象模型（Object Model）。完全重写了 PHP 处理对象的方式，允许更佳性能和更多特性。

Tip

可以参考Userland Naming Guide。

类与对象（PHP 5）
基本概念
类与对象（PHP 5）


基本概念

class

每个类的定义都以关键字 class 开头，后面跟着类名，可以是任何非 PHP 保留字的名字。后面跟着一对花括号，里面包含有类成员和方法的定义。伪变量 $this 可以在当一个方法在对象内部调用时使用。$this 是一个到调用对象（通常是方法所属于的对象，但也可以是另一个对象，如果该方法是从第二个对象内静态调用的话）的引用。看下面例子：

Example #1 面向对象语言中的 $this 变量

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

上例将输出：

$this is defined (a)
$this is not defined.
$this is defined (b)
$this is not defined.

Example #2 简单的类定义

<?php
class SimpleClass
{
    // 成员声明
    public $var = 'a default value';

    // 方法声明
    public function displayVar() {
        echo $this->var;
    }
}
?>

Example #3 类成员的默认值

<?php
class SimpleClass
{
    // 无效的类成员定义：
    public $var1 = 'hello '.'world';
    public $var2 = <<<EOD
hello world
EOD;
    public $var3 = 1+2;
    public $var4 = self::myStaticMethod();
    public $var5 = $myVar;

    // 正确的类成员定义：
    public $var6 = myConstant;
    public $var7 = self::classConstant;
    public $var8 = array(true, false);

}
?>

Note: 除此之外还有不少用于处理类与对象的函数，详情参见 类 / 对象函数

new

要创建一个对象的实例，必须创建一个新对象并将其赋给一个变量。当创建新对象时该对象总是被赋值，除非该对象定义了构造函数并且在出错时抛出了一个异常。

Example #4 创建一个实例e

<?php
$instance = new SimpleClass();
?>

当把一个对象已经创建的实例赋给一个新变量时，新变量会访问同一个实例，就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。

Example #5 对象赋值

<?php
$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned will have this value';

$instance = null; // $instance and $reference become null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

上例将输出：

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned will have this value"
}

extends

一个类可以在声明中用 extends 关键字继承另一个类的方法和成员。不能扩展多个类，只能继承一个基类。

被继承的方法和成员可以通过用同样的名字重新声明被覆盖，除非父类定义方法时使用了 final 关键字。可以通过 parent:: 来访问被覆盖的方法或成员。

Example #6 简单的类继承

<?php
class ExtendClass extends SimpleClass
{
    // Redefine the parent method
    function displayVar()
    {
        echo "Extending class\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

上例将输出：

Extending class
a default value
前言
自动加载对象
类与对象（PHP 5）


自动加载对象

很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本（每个类一个文件）开头写一个长长的包含文件列表。

在 PHP 5 中，不再需要这样了。可以定义一个 __autoload 函数，它会在试图使用尚未被定义的类时自动调用。通过调用此函数，脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

Note: 在 __autoload 函数中抛出的异常不能被 catch 语句块捕获并导致致命错误。

Note: 如果使用 PHP 的 CLI 交互模式 时，Autoloading 不存在。

Example #1 Autoload 例子

本例尝试分别从 MyClass1.php 和 MyClass2.php 文件中加载 MyClass1 和 MyClass2 类。

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>

基本概念
构造函数和析构函数
类与对象（PHP 5）


构造函数和析构函数

构造函数

void __construct ([ mixed $args [, $... ]] )

PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法，所以非常适合在使用对象之前做一些初始化工作。

Note: 如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数，需要在子类的构造函数中调用 parent::__construct()。

Example #1 使用新标准的构造函数

<?php
class BaseClass {
   function __construct() {
       print "In BaseClass constructor\n";
   }
}

class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "In SubClass constructor\n";
   }
}

$obj = new BaseClass();
$obj = new SubClass();
?>

为了实现向后兼容性，如果 PHP 5 在类中找不到 __construct() 函数，它就会尝试寻找旧式的构造函数，也就是和类同名的函数。因此唯一会产生兼容性问题的情况是：类中已有一个名为 __construct() 的方法，但它却又不是构造函数。

析构函数

void __destruct ( void )

PHP 5 引入了析构函数的概念，这类似于其它面向对象的语言，如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。

Example #2 析构函数示例

<?php
class MyDestructableClass {
   function __construct() {
       print "In constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "Destroying " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
?>

和构造函数一样，父类的析构函数不会被引擎暗中调用。要执行父类的析构函数，必须在子类的析构函数体中显式调用 parent::__destruct()。

Note: 析构函数在脚本关闭时调用，此时所有的头信息已经发出。

Note: 试图在析构函数中抛出一个异常会导致致命错误。

自动加载对象
访问控制
类与对象（PHP 5）


访问控制

对属性或方法的访问控制，是通过在前面添加关键字 public、protected 或 private 来实现的。由 public 所定义的类成员可以在任何地方被访问；由 protected 所定义的类成员则可以被其所在类的子类和父类访问（当然，该成员所在的类也可以访问）；而由 private 定义的类成员则只能被其所在类访问。

对类成员的访问控制

类成员都必须使用关键字public、protected 或 private 进行定义

Example #1 声明类成员

<?php
/**
 * Define MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
echo $obj->protected; // 这行会产生一个致命错误
echo $obj->private; // 这行也会产生一个致命错误
$obj->printHello(); // 输出 Public、Protected 和 Private

/**
 * Define MyClass2
 */
class MyClass2 extends MyClass
{
    // 可以对 public 和 protected 进行重定义，但 private 而不能
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj2 = new MyClass2();
echo $obj->public; // 这行能被正常执行
echo $obj2->private; // 未定义 private
echo $obj2->protected; // 这行会产生一个致命错误
$obj2->printHello(); // 输出 Public、Protected2，但不会输出 Private

class Bar
{
    public function test() {
        $this->testPrivate();
        $this->testPublic();
    }

    public function testPublic() {
        echo "Bar::testPublic\n";
    }

    private function testPrivate() {
        echo "Bar::testPrivate\n";
    }
}

class Foo extends Bar
{
    public function testPublic() {
        echo "Foo::testPublic\n";
    }

    private function testPrivate() {
        echo "Foo::testPrivate\n";
    }
}

$myFoo = new foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>

Note: 为了兼容性考虑，在 PHP 4 中使用 var 关键字对变量进行定义的方法在 PHP 5 中仍然有效（只是作为 public 关键字的一个别名）。在 PHP 5.1.3 之前的版本，该语法会产生一个 E_STRICT 警告。

对方法的访问控制

类中的方法都必须使用关键字public、protected 或 private 进行定义。如果没有设置这些关键字，则该方法会被设置成默认的 public。

Example #2 声明类中的方法

<?php
/**
 * Define MyClass
 */
class MyClass
{
    // 构造函数必须是 public
    public function __construct() { }

    // 声明一个 public 的方法
    public function MyPublic() { }

    // 声明一个 protected 的方法
    protected function MyProtected() { }

    // 声明一个 private 的方法
    private function MyPrivate() { }

    // 这个方法也是 public 的
    function Foo()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // 这行能被正常执行
$myclass->MyProtected(); // 这行会产生一个致命错误
$myclass->MyPrivate(); // 这行会产生一个致命错误
$myclass->Foo(); // Public、Protected 和 Private 都被调用了

/**
 * Define MyClass2
 */
class MyClass2 extends MyClass
{
    // This is public
    function Foo2()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate(); // 这行会产生一个致命错误
    }
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // 这行能被正常执行
$myclass2->Foo2(); // Public 和 Protected 都被调用了，但 Private 不会被调用
?>

构造函数和析构函数
范围解析操作符（::）
类与对象（PHP 5）


范围解析操作符（::）

范围解析操作符（也可称作 Paamayim Nekudotayim）或者更简单地说是一对冒号，可以用于访问静态成员、方法和常量，还可以用于覆盖类中的成员和方法。

当在类的外部访问这些静态成员、方法和常量时，必须使用类的名字。

把 Paamayim Nekudotayim 选作该操作符的名字似乎有些奇怪。然而，这是 Zend 开发小组在写 Zend Engine 0.5 （被用于 PHP 3 中）时所作出的决定。事实上这个词在希伯莱文就是双冒号的意思。

Example #1 在类的外部使用 :: 操作符

<?php
class MyClass {
    const CONST_VALUE = 'A constant value';
}

echo MyClass::CONST_VALUE;
?>

self 和 parent 这两个特殊的关键字是用于在类的内部对成员或方法进行访问的。

Example #2 :: from inside the class definition

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'static var';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}

OtherClass::doubleColon();
?>

当一个子类覆盖其父类中的方法时，PHP 不会再执行父类中已被覆盖的方法，直到子类中调用这些方法为止。这种机制也作用于 构造函数和析构函数、重载 及 魔术 函数。

Example #3 调用父类的方法

<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    // 覆盖父类中的方法
    public function myFunc()
    {
        // 但仍然可以调用已被覆盖的方法
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

$class = new OtherClass();
$class->myFunc();
?>
访问控制
Static关键字
类与对象（PHP 5）


Static关键字

声明类成员或方法为static，就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员（静态方法除外）。

为了兼容PHP4，如果没有指定“可见性”，属性和方法默认为public。

由于静态方法不需要通过对象即可调用，所以伪变量$this在静态方法中不可用。

静态属性也可以由对象通过->操作符来访问。

用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。

就像其它所有的PHP静态变量一样，静态属性只能被初始化为一个字符值或一个常量，不能使用表达式。 所以你可以把静态属性初始化为整型或数组，但不能指向另一个变量或函数返回值，也不能指向一个对象。

PHP5.3.0之后，我们可以用一个变量来动态调用类。但该变量的值不能为关键字self, parent 或static。

Example #1 静态成员代码示例

<?php
class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // Undefined "Property" my_static

print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // PHP 5.3.0之后可以动态调用

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Example #2 静态方法代码示例

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // As of PHP 5.3.0
?>
范围解析操作符（::）
类常量
类与对象（PHP 5）


类常量

我们可以在类中定义常量。常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号。

常量的值必须是一个定值，不能是变量，类属性或其它操作（如函数调用）的结果。

Its also possible for interfaces to have constants. Look at the interface documentation for examples. 接口（interface）中也可以定义常量。请查看接口的文档获得更多示例。

PHP5.3.0之后，我们可以用一个变量来动态调用类。但该变量的值不能为关键字self, parent 或static。

Example #1 定义和使用一个类常量

<?php
class MyClass
{
    const constant = 'constant value';

    function showConstant() {
        echo  self::constant . "\n";
    }
}

echo MyClass::constant . "\n";

$classname = "MyClass";
echo $classname::constant . "\n"; // PHP 5.3.0之后

$class = new MyClass();
$class->showConstant();

echo $class::constant."\n"; // PHP 5.3.0之后
?>

Example #2 静态数据示例

<?php
class foo {
    // PHP 5.3.0之后
    const bar = <<<'EOT'
bar
EOT;
}
?>

和heredocs（字符串边界符）不同，nowdocs可以用在任何静态数据中。

Note: PHP 5.3.0起PHP支持Nowdoc功能。

Static关键字
抽象类
类与对象（PHP 5）


抽象类

PHP5支持抽象类和抽象方法。抽象类不能直接被实例化，你必须先继承该抽象类，然后再实例化子类。抽象类中 至少要包含一个抽象方法。如果类方法被声明为抽象的，那么其中就不能包括具体的功能实现。

继承一个抽象类的时候，子类必须实现抽象类中的所有抽象方法；另外，这些方法的可见性 必须和抽象类中一样（或者更为宽松）。如果抽象类中某个抽象方法被声明为protected，那么子类中实现的方法就应该声明为protected或者public，而不 能定义为private。

Example #1 抽象类代码示例

<?php
abstract class AbstractClass
{
    // 强制要求子类定义这些方法
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // 普通方法（非抽象方法）
    public function printOut() {
        print $this->getValue() . "\n";
    }
}

class ConcreteClass1 extends AbstractClass
{
    protected function getValue() {
        return "ConcreteClass1";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass
{
    public function getValue() {
        return "ConcreteClass2";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>

上例将输出：

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

抽象类的子类中的普通方法执行方式和其他类相同。

类常量
接口
类与对象（PHP 5）


接口

使用接口（interface），你可以指定某个类必须实现哪些方法，但不需要定义这些方法的具体内容。

我们可以通过interface来定义一个接口，就像定义一个标准的类一样，但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是public，这是接口的特性。

实现

要实现一个接口，可以使用implements操作符。类中必须实现接口中定义的所有方法，否则 会报一个fatal错误。如果要实现多个接口，可以用逗号来分隔多个接口的名称。

Note: 实现多个接口时，接口中的方法不能有重名。

Note: 接口也可以继承，通过使用extends操作符。

常量

接口中也可以定义常量。接口常量和类常量的使用完全相同。 它们都是定值，不能被子类或子接口修改。

范例

Example #1 接口代码示例

<?php

// 声明一个'iTemplate'接口
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}

// 实现接口
// 下面的写法是正确的
class Template implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }

    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }

        return $template;
    }
}

// 下面的写法是错误的，会报错：
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>

Example #2 Extendable Interfaces

<?php
interface a
{
    public function foo();
}

interface b extends a
{
    public function baz(Baz $baz);
}

// 正确写法
class c implements b
{
    public function foo()
    {
    }

    public function baz(Baz $baz)
    {
    }
}

// 错误写法会导致一个fatal error
class d implements b
{
    public function foo()
    {
    }

    public function baz(Foo $foo)
    {
    }
}
?>

Example #3 多个接口间的继承

<?php
interface a
{
    public function foo();
}

interface b
{
    public function bar();
}

interface c extends a, b
{
    public function baz();
}

class d implements c
{
    public function foo()
    {
    }

    public function bar()
    {
    }

    public function baz()
    {
    }
}
?>

Example #4 使用接口常量

<?php
interface a
{
    const b = 'Interface constant';
}

// 输出接口常量
echo a::b;

// 错误写法，因为常量的值不能被修改。接口常量的概念和类常量是一样的。
class b implements a
{
    const b = 'Class constant';
}
?>

你也可以看看instanceof关键字的文档。

抽象类
重载
类与对象（PHP 5）


重载

PHP所提供的"重载"（overloading）是指动态地"创建"类属性和方法。我们是通过 魔术方法（magic methods）来实现的。

当调用当前环境下未定义或不可见的类属性或方法时，重载方法会被调用。本节后面将使用 "不可访问成员（inaccessible members）"和"不可访问方法（inaccessible methods）"来称呼这些未定义或不可见的类属性或方法。

所有的重载方法都必须被声明为public。

Note: 这些魔术方法的参数都不能 通过引用传递。

Note: PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的 类方法，但各方法的参数类型和个数不同。

更新日志

版本 | 说明
5.1.0 | 新增 __isset() 和 __unset()两个魔术方法.
5.3.0 | 新增 __callStatic()魔术方法. 可见性未设置为public或未声明为static的时候会产生一个警告

属性重载

void __set ( string $name , mixed $value )
mixed __get ( string $name )
bool __isset ( string $name )
void __unset ( string $name )

在给未定义的变量赋值时，__set() 会被调用。

读取未定义的变量的值时，__get() 会被调用。

当对未定义的变量调用isset() 或 empty()时，__isset() 会被调用。

当对未定义的变量调用unset()时，__unset() 会被调用。

参数$name是指要操作的变量名称。__set() 方法的$value 参数指定了$name变量的值。

属性重载只能在对象中进行。在静态方法中，这些魔术方法将不会被调用。所以这些方法都不能被 声明为static。

Example #1 使用__get, __set, __isset 和 __unset 进行重载

<?php
class MemberTest {
      /**  被重载的数据保存在此  */
    private $data = array();

    /**  重载不能被用在已经定义的属性  */
    public $declared = 1;

       /**  只有从类外部访问这个属性时，重载才会发生 */
    private $hidden = 2;

    public function __set($name, $value) {
        echo "Setting '$name' to '$value'\n";
        $this->data[$name] = $value;
    }

    public function __get($name) {
        echo "Getting '$name'\n";
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }

        $trace = debug_backtrace();
        trigger_error(
            'Undefined property via __get(): ' . $name .
            ' in ' . $trace[0]['file'] .
            ' on line ' . $trace[0]['line'],
            E_USER_NOTICE);
        return null;
    }

    /**  PHP 5.1.0之后版本 */
    public function __isset($name) {
        echo "Is '$name' set?\n";
        return isset($this->data[$name]);
    }

    /**  PHP 5.1.0之后版本 */
    public function __unset($name) {
        echo "Unsetting '$name'\n";
        unset($this->data[$name]);
    }

    /**  非魔术方法  */
    public function getHidden() {
        return $this->hidden;
    }
}

echo "<pre>\n";

$obj = new MemberTest;

$obj->a = 1;
echo $obj->a . "\n\n";

var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "\n";

echo $obj->declared . "\n\n";

echo "Let's experiment with the private property named 'hidden':\n";
echo "Privates are visible inside the class, so __get() not used...\n";
echo $obj->getHidden() . "\n";
echo "Privates not visible outside of class, so __get() is used...\n";
echo $obj->hidden . "\n";
?>

上例将输出：

Setting 'a' to '1'
Getting 'a'
1

Is 'a' set?
bool(true)
Unsetting 'a'
Is 'a' set?
bool(false)

1

Let's experiment with the private property named 'hidden':
Privates are visible inside the class, so __get() not used...
2
Privates not visible outside of class, so __get() is used...
Getting 'hidden'

Notice:  Undefined property via __get(): hidden in <file> on line 70 in <file> on line 29

方法重载

mixed __call ( string $name , array $arguments )
mixed __callStatic ( string $name , array $arguments )

当调用一个不可访问方法（如未定义，或者不可见）时，__call() 会被调用。

当在静态方法中调用一个不可访问方法（如未定义，或者不可见）时，__callStatic() 会被调用。

$name参数是要调用的方法名称。$arguments参数是一个数组，包含着要传递给方法的参数。

Example #2 使用 __call 和 ___callStatic 调用对象中的方法

<?php
class MethodTest {
    public function __call($name, $arguments) {
        // 注意: $name 区分大小写
        echo "Calling object method '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  PHP 5.3.0之后版本  */
    public static function __callStatic($name, $arguments) {
        // Note: value of $name is case sensitive.
        echo "Calling static method '$name' "
             . implode(', ', $arguments). "\n";
    }
}

$obj = new MethodTest;
$obj->runTest('in object context');

MethodTest::runTest('in static context');  // PHP 5.3.0之后版本
?>

上例将输出：

Calling object method 'runTest' in object context
Calling static method 'runTest' in static context
接口
对象迭代
类与对象（PHP 5）


对象迭代

PHP 5 provides a way for objects to be defined so it is possible to iterate through a list of items, with, for example a foreach statement. By default, all visible properties will be used for the iteration. PHP5提供了一种迭代（iteration）对象的功能，就像使用数组那样，可以通过foreach 来遍历对象中的属性。默认情况下，在外部迭代只能得到外部可见的属性的值。

Example #1 简单的对象迭代

<?php
class MyClass
{
    public $var1 = 'value 1';
    public $var2 = 'value 2';
    public $var3 = 'value 3';

    protected $protected = 'protected var';
    private   $private   = 'private var';

    function iterateVisible() {
       echo "MyClass::iterateVisible:\n";
       foreach($this as $key => $value) {
           print "$key => $value\n";
       }
    }
}

$class = new MyClass();

foreach($class as $key => $value) {
    print "$key => $value\n";
}
echo "\n";

$class->iterateVisible();

?>

上例将输出：

var1 => value 1
var2 => value 2
var3 => value 3

MyClass::iterateVisible:
var1 => value 1
var2 => value 2
var3 => value 3
protected => protected var
private => private var

如上所示, the foreach 遍历了所有 可见的 属性. 你也可以通过实现PHP 5自带的 Iterator接口来实现迭代. 使用Iterator接口可以让对象自行决定如何迭代自已。

Example #2 实现Iterator接口的迭代

<?php
class MyIterator implements Iterator
{
    private $var = array();

    public function __construct($array)
    {
        if (is_array($array)) {
            $this->var = $array;
        }
    }

    public function rewind() {
        echo "rewinding\n";
        reset($this->var);
    }

    public function current() {
        $var = current($this->var);
        echo "current: $var\n";
        return $var;
    }

    public function key() {
        $var = key($this->var);
        echo "key: $var\n";
        return $var;
    }

    public function next() {
        $var = next($this->var);
        echo "next: $var\n";
        return $var;
    }

    public function valid() {
        $var = $this->current() !== false;
        echo "valid: {$var}\n";
        return $var;
    }
}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a: $b\n";
}
?>

上例将输出：

rewinding
current: 1
valid: 1
current: 1
key: 0
0: 1
next: 2
current: 2
valid: 1
current: 2
key: 1
1: 2
next: 3
current: 3
valid: 1
current: 3
key: 2
2: 3
next:
current:
valid:

你也可以让类实现IteratorAggregate接口，这样你的类就不用强制性地实现 Iterator接口中的所有方法。

Example #3 通过IteratorAggregate来实现对象迭代

<?php
class MyCollection implements IteratorAggregate
{
    private $items = array();
    private $count = 0;

    // Required definition of interface IteratorAggregate
    public function getIterator() {
        return new MyIterator($this->items);
    }

    public function add($value) {
        $this->items[$this->count++] = $value;
    }
}

$coll = new MyCollection();
$coll->add('value 1');
$coll->add('value 2');
$coll->add('value 3');

foreach ($coll as $key => $val) {
    echo "key/value: [$key -> $val]\n\n";
}
?>

上例将输出：

rewinding
current: value 1
valid: 1
current: value 1
key: 0
key/value: [0 -> value 1]

next: value 2
current: value 2
valid: 1
current: value 2
key: 1
key/value: [1 -> value 2]

next: value 3
current: value 3
valid: 1
current: value 3
key: 2
key/value: [2 -> value 3]

next:
current:
valid:

Note: 请查看SPL Extension了解更多Iterator相关信息。

重载
设计模式
类与对象（PHP 5）


设计模式

使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。

工厂模式

工厂模式（Factory）允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是 你要生成的对象对应的类名称。

Example #1 调用工厂方法（带参数）

<?php
class Example
{
    // The parameterized factory method
    public static function factory($type)
    {
        if (include_once 'Drivers/' . $type . '.php') {
            $classname = 'Driver_' . $type;
            return new $classname;
        } else {
            throw new Exception ('Driver not found');
        }
    }
}
?>

按上面的方式可以动态加载drivers。如果Example类是一个数据库抽象类，那么 可以这样来生成MySQL和 SQLite驱动对象：

<?php
// Load a MySQL Driver
$mysql = Example::factory('MySQL');

// Load a SQLite Driver
$sqlite = Example::factory('SQLite');
?>

单例

单例模式（Singleton）用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后，该对象可以被其它众多对象所使用。

Example #2 单例模式

<?php
class Example
{
    // 保存类实例在此属性中
    private static $instance;

       // 构造方法声明为private，防止直接创建对象
    private function __construct()
    {
        echo 'I am constructed';
    }

    // singleton 方法
    public static function singleton()
    {
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }

        return self::$instance;
    }

    // Example类中的普通方法
    public function bark()
    {
        echo 'Woof!';
    }

    // 阻止用户复制对象实例
    public function __clone()
    {
        trigger_error('Clone is not allowed.', E_USER_ERROR);
    }

}

?>

这样我们可以得到一个独一无二的Example类的对象。

<?php

// 这个写法会出错，因为构造方法被声明为private
$test = new Example;

// 下面将得到Example类的单例对象
$test = Example::singleton();
$test->bark();

// 复制对象将导致一个E_USER_ERROR.
$test_clone = clone $test;

?>
对象迭代
魔术方法
类与对象（PHP 5）


魔术方法

__construct, __destruct (参看 构造方法和析构方法), __call, __callStatic, __get, __set, __isset, __unset (参看 重载), __sleep, __wakeup, __toString, __set_state 和 __clone 等方法在PHP中被称为“魔术方法”（Magic methods）。 你在命名自己的类方法时不能使用这些方法名。

Caution

PHP把所有以__（两个下划线）开头的类方法当成魔术方法。所以你定义自己的类方法时，不要以 __为前缀。

__sleep 和 __wakeup

serialize() 函数会检查是否存在一个魔术方法 __sleep.如果存在，__sleep()方法会先被调用， 然后才执行序列化操作。这个功能可以用于清理对象，并返回一个包含对象中所有变量名称的数组。如果该方法不返回任何内容，则NULL被序列化，导致 一个E_NOTICE错误。

__sleep方法常用于提交未提交的数据，或类似的操作。同时，如果你有一些很大的对象， 不需要保存，这个功能就很好用。

与之相反，unserialize()会检查是否存在一个__wakeup方法。如果存在，则会先调用 __wakeup方法，预先准备对象数据。

__wakeup经常用在反序列化操作中，例如重新建立数据库连接，或执行其它初始化操作。

Example #1 Sleep 和 wakeup

<?php
class Connection {
    protected $link;
    private $server, $username, $password, $db;

    public function __construct($server, $username, $password, $db)
    {
        $this->server = $server;
        $this->username = $username;
        $this->password = $password;
        $this->db = $db;
        $this->connect();
    }

    private function connect()
    {
        $this->link = mysql_connect($this->server, $this->username, $this->password);
        mysql_select_db($this->db, $this->link);
    }

    public function __sleep()
    {
        return array('server', 'username', 'password', 'db');
    }

    public function __wakeup()
    {
        $this->connect();
    }
}
?>

__toString

The __toString method allows a class to decide how it will react when it is converted to a string. __toString 方法可以让一个类决定它如何转换成一个字符串。

Example #2 简单示例

<?php
// Declare a simple class
class TestClass
{
    public $foo;

    public function __construct($foo) {
        $this->foo = $foo;
    }

    public function __toString() {
        return $this->foo;
    }
}

$class = new TestClass('Hello');
echo $class;
?>

上例将输出：

Hello

在PHP 5.2.0之前，__toString方法只有结合使用echo() 或 print()时 才能生效。PHP 5.2.0之后，则可以在任何字符串环境生效（例如通过printf()，使用%s修饰符），但 不能用于非字符串环境（如使用%d修饰符）。从PHP 5.2.0，如果将一个未定义__toString方法的对象 转换为字符串，会报出一个E_RECOVERABLE_ERROR错误。

__set_state

当调用var_export()时，这个静态 方法会被调用（自PHP 5.1.0起有效）。

本方法的唯一参数是一个数组，其中包含按array('property' => value, ...)格式排列的类属性。

Example #3 Using __set_state (PHP 5.1.0及更高版本支持)

<?php

class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array) // As of PHP 5.1.0
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);

?>

上例将输出：

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
设计模式
Final关键字
类与对象（PHP 5）


Final关键字

PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为final，则子类无法覆盖该方法； 如果一个类被声明为final，则不能被继承。

Example #1 Final 方法示例

<?php
class BaseClass {
   public function test() {
       echo "BaseClass::test() called\n";
   }

   final public function moreTesting() {
       echo "BaseClass::moreTesting() called\n";
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo "ChildClass::moreTesting() called\n";
   }
}
// 产生 Fatal error: Cannot override final method BaseClass::moreTesting()
?>

Example #2 Final 类示例

<?php
final class BaseClass {
   public function test() {
       echo "BaseClass::test() called\n";
   }

   // 这里无论你是否将方法声明为final，都没有关系
   final public function moreTesting() {
       echo "BaseClass::moreTesting() called\n";
   }
}

class ChildClass extends BaseClass {
}
// 产生 Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>
魔术方法
对象复制
类与对象（PHP 5）


对象复制

在多数情况下，我们并不需要完全复制一个对象来获得其中属性。但有一个情况下确实需要：如果你有一个 GTK窗口对象，该对象持有窗口相关的资源。你可能会想复制一个新的窗口，保持所有属性与原来的窗口相同， 但必须是一个新的对象（因为如果不是新的对象，那么一个窗口中的改变就会影响到另一个窗口）。还有一种情况： 如果对象A中保存着对象B的引用，当你复制对象A时，你想其中使用的对象不再是对象B而是B的一个副本，那么 你必须得到对象A的一个副本。

对象复制可以通过clone关键字来完成（如果对象中存在__clone()方法，会先被调用）。对象中的 __clone()方法不能直接调用。

$copy_of_object = clone $object;

当对象被复制后，PHP5会对对象的所有属性执行一个“浅复制”（shallow copy）。所有的属性中的引用 仍然不变，指向原来的变量。如果定义了__clone()方法，则新创建的对象（复制生成的对象）中的__clone()方法会被调用， 可用于修改属性的值（如果有必要的话）。

Example #1 复制一个对象

<?php
class SubObject
{
    static $instances = 0;
    public $instance;

    public function __construct() {
        $this->instance = ++self::$instances;
    }

    public function __clone() {
        $this->instance = ++self::$instances;
    }
}

class MyCloneable
{
    public $object1;
    public $object2;

    function __clone()
    {

        // 强制复制一份this->object， 否则仍然指向同一个对象
        $this->object1 = clone $this->object1;
    }
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;

print("Original Object:\n");
print_r($obj);

print("Cloned Object:\n");
print_r($obj2);

?>

上例将输出：

Original Object:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 1
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Cloned Object:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 3
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Final关键字
对象比较
类与对象（PHP 5）


对象比较

PHP5中的对象比较（object comparison）要比PHP4中复杂，也比其它一般的面向对象语言复杂。

当使用对比操作符(==)比较两个对象变量时，比较的原则是：如果两个对象的属性和属性值 都相等，而且两个对象是同一个类的实例，那么这两个对象变量相等。

而如果使用全等操作符(===)，这两个对象变量一定要指向某个类的同一个实例（即同一个对象）。

通过下面的示例你可以理解以上原则。

Example #1 PHP 5的对象比较

<?php
function bool2str($bool)
{
    if ($bool === false) {
        return 'FALSE';
    } else {
        return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2)
{
    echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n";
    echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n";
    echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n";
    echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n";
}

class Flag
{
    public $flag;

    function Flag($flag = true) {
        $this->flag = $flag;
    }
}

class OtherFlag
{
    public $flag;

    function OtherFlag($flag = true) {
        $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Two instances of the same class\n";
compareObjects($o, $p);

echo "\nTwo references to the same instance\n";
compareObjects($o, $q);

echo "\nInstances of two different classes\n";
compareObjects($o, $r);
?>

上例将输出：

Two instances of the same class
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Two references to the same instance
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instances of two different classes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Note: PHP扩展中可以自行定义对象比较的原则。

对象复制
Reflection
类与对象（PHP 5）


Reflection

Table of Contents

  • Introduction
  • The Reflector interface
  • The ReflectionException class
  • The ReflectionFunction class
  • The ReflectionParameter class
  • The ReflectionClass class
  • The ReflectionObject class
  • The ReflectionMethod class
  • The ReflectionProperty class
  • The ReflectionExtension class
  • Extending the reflection classes

Introduction

PHP 5 comes with a complete reflection API that adds the ability to reverse-engineer classes, interfaces, functions and methods as well as extensions. Additionally, the reflection API also offers ways of retrieving doc comments for functions, classes and methods.

The reflection API is an object-oriented extension to the Zend Engine, consisting of the following classes:

<?php
class Reflection { }
interface Reflector { }
class ReflectionException extends Exception { }
class ReflectionFunction extends ReflectionFunctionAbstract implements Reflector { }
class ReflectionParameter implements Reflector { }
class ReflectionMethod extends ReflectionFunctionAbstract implements Reflector { }
class ReflectionClass implements Reflector { }
class ReflectionObject extends ReflectionClass { }
class ReflectionProperty implements Reflector { }
class ReflectionExtension implements Reflector { }
?>

Note: For details on these classes, have a look at the next chapters.

If we were to execute the code in the example below:

Example #1 Basic usage of the reflection API

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

上例将输出：

Class [ <internal> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [6] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
  }

  - Methods [9] {
    Method [ <internal> final private method __clone ] {
    }

    Method [ <internal, ctor> public method __construct ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
      }
    }

    Method [ <internal> final public method getMessage ] {
    }

    Method [ <internal> final public method getCode ] {
    }

    Method [ <internal> final public method getFile ] {
    }

    Method [ <internal> final public method getLine ] {
    }

    Method [ <internal> final public method getTrace ] {
    }

    Method [ <internal> final public method getTraceAsString ] {
    }

    Method [ <internal> public method __toString ] {
    }
  }
}

Reflector

Reflector is an interface implemented by all exportable Reflection classes.

<?php
interface Reflector
{
    public string __toString()
    public static string export()
}
?>

ReflectionException

ReflectionException extends the standard Exception and is thrown by Reflection API. No specific methods or properties are introduced.

ReflectionFunction

The ReflectionFunction class lets you reverse-engineer functions.

<?php
class ReflectionFunction extends ReflectionFunctionAbstract implements Reflector
{
    final private __clone()
    public void __construct(string name)
    public string __toString()
    public static string export(string name, bool return)
    public string getName()
    public bool isInternal()
    public bool isDisabled()
    public mixed getClosure() /* As of PHP 5.3.0 */
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public mixed invoke([mixed args [, ...]])
    public mixed invokeArgs(array args)
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

Parent class ReflectionFunctionAbstract has the
same methods except invoke(),
invokeArgs(), export() and
isDisabled().

Note: getNumberOfParameters() and getNumberOfRequiredParameters() were added in PHP 5.0.3, while invokeArgs() was added in PHP 5.1.0.

To introspect a function, you will first have to create an instance of the ReflectionFunction class. You can then call any of the above methods on this instance.

Example #2 Using the ReflectionFunction class

<?php
/**
 * A simple counter
 *
 * @return    int
 */
function counter()
{
    static $c = 0;
    return $c++;
}

// Create an instance of the ReflectionFunction class
$func = new ReflectionFunction('counter');

// Print out basic information
printf(
    "===> The %s function '%s'\n".
    "     declared in %s\n".
    "     lines %d to %d\n",
    $func->isInternal() ? 'internal' : 'user-defined',
    $func->getName(),
    $func->getFileName(),
    $func->getStartLine(),
    $func->getEndline()
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));

// Print static variables if existant
if ($statics = $func->getStaticVariables())
{
    printf("---> Static variables: %s\n", var_export($statics, 1));
}

// Invoke the function
printf("---> Invokation results in: ");
var_dump($func->invoke());

// you may prefer to use the export() method
echo "\nReflectionFunction::export() results:\n";
echo ReflectionFunction::export('counter');
?>

Note: The method invoke() accepts a variable number of arguments which are passed to the function just as in call_user_func().

ReflectionParameter

The ReflectionParameter class retrieves information about a function's or method's parameters.

<?php
class ReflectionParameter implements Reflector
{
    final private __clone()
    public void __construct(string function, string parameter)
    public string __toString()
    public static string export(mixed function, mixed parameter, bool return)
    public string getName()
    public bool isPassedByReference()
    public ReflectionClass getDeclaringClass()
    public ReflectionClass getClass()
    public bool isArray()
    public bool allowsNull()
    public bool isPassedByReference()
    public bool isOptional()
    public bool isDefaultValueAvailable()
    public mixed getDefaultValue()
    public int getPosition()
}
?>

Note:

     getDefaultValue(),
     isDefaultValueAvailable() and
     isOptional() were added in PHP 5.0.3,
     while isArray() was added in PHP 5.1.0.
     getDeclaringFunction() and
     getPosition() were added in PHP 5.2.3.

To introspect function parameters, you will first have to create an instance of the ReflectionFunction or ReflectionMethod classes and then use their getParameters() method to retrieve an array of parameters.

Example #3 Using the ReflectionParameter class

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

// Create an instance of ReflectionFunction with the
// parameter given from the command line.
$reflect = new ReflectionFunction($argv[1]);

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Parameter #%d: %s {\n".
        "   Class: %s\n".
        "   Allows NULL: %s\n".
        "   Passed to by reference: %s\n".
        "   Is optional?: %s\n".
        "}\n",
        $i, // $param->getPosition() can be used from PHP 5.2.3
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'yes' : 'no'
    );
}
?>

ReflectionClass

The ReflectionClass class lets you reverse-engineer classes and interfaces.

<?php
class ReflectionClass implements Reflector
{
    final private __clone()
    public void __construct(string name)
    public string __toString()
    public static string export(mixed class, bool return)
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public bool isInstantiable()
    public bool hasConstant(string name)
    public bool hasMethod(string name)
    public bool hasProperty(string name)
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public ReflectionMethod getConstructor()
    public ReflectionMethod getMethod(string name)
    public ReflectionMethod[] getMethods()
    public ReflectionProperty getProperty(string name)
    public ReflectionProperty[] getProperties()
    public array getConstants()
    public mixed getConstant(string name)
    public ReflectionClass[] getInterfaces()
    public bool isInterface()
    public bool isAbstract()
    public bool isFinal()
    public int getModifiers()
    public bool isInstance(stdclass object)
    public stdclass newInstance(mixed args)
    public stdclass newInstanceArgs(array args)
    public ReflectionClass getParentClass()
    public bool isSubclassOf(ReflectionClass class)
    public array getStaticProperties()
    public mixed getStaticPropertyValue(string name [, mixed default])
    public void setStaticPropertyValue(string name, mixed value)
    public array getDefaultProperties()
    public bool isIterateable()
    public bool implementsInterface(string name)
    public ReflectionExtension getExtension()
    public string getExtensionName()
}
?>

Note: hasConstant(), hasMethod(), hasProperty(), getStaticPropertyValue() and setStaticPropertyValue() were added in PHP 5.1.0, while newInstanceArgs() was added in PHP 5.1.3.

To introspect a class, you will first have to create an instance of the ReflectionClass class. You can then call any of the above methods on this instance.

Example #4 Using the ReflectionClass class

<?php
interface Serializable
{
    // ...
}

class Object
{
    // ...
}

/**
 * A counter class
 */
class Counter extends Object implements Serializable
{
    const START = 0;
    private static $c = Counter::START;

    /**
     * Invoke counter
     *
     * @access  public
     * @return  int
     */
    public function count() {
        return self::$c++;
    }
}

// Create an instance of the ReflectionClass class
$class = new ReflectionClass('Counter');

// Print out basic information
printf(
    "===> The %s%s%s %s '%s' [extends %s]\n" .
    "     declared in %s\n" .
    "     lines %d to %d\n" .
    "     having the modifiers %d [%s]\n",
        $class->isInternal() ? 'internal' : 'user-defined',
        $class->isAbstract() ? ' abstract' : '',
        $class->isFinal() ? ' final' : '',
        $class->isInterface() ? 'interface' : 'class',
        $class->getName(),
        var_export($class->getParentClass(), 1),
        $class->getFileName(),
        $class->getStartLine(),
        $class->getEndline(),
        $class->getModifiers(),
        implode(' ', Reflection::getModifierNames($class->getModifiers()))
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($class->getDocComment(), 1));

// Print which interfaces are implemented by this class
printf("---> Implements:\n %s\n", var_export($class->getInterfaces(), 1));

// Print class constants
printf("---> Constants: %s\n", var_export($class->getConstants(), 1));

// Print class properties
printf("---> Properties: %s\n", var_export($class->getProperties(), 1));

// Print class methods
printf("---> Methods: %s\n", var_export($class->getMethods(), 1));

// If this class is instantiable, create an instance
if ($class->isInstantiable()) {
    $counter = $class->newInstance();

    echo '---> $counter is instance? ';
    echo $class->isInstance($counter) ? 'yes' : 'no';

    echo "\n---> new Object() is instance? ";
    echo $class->isInstance(new Object()) ? 'yes' : 'no';
}
?>

Note: The method newInstance() accepts a variable number of arguments which are passed to the function just as in call_user_func().

Note: $class = new ReflectionClass('Foo'); $class->isInstance($arg) is equivalent to $arg instanceof Foo or is_a($arg, 'Foo').

ReflectionObject

The ReflectionObject class lets you reverse-engineer objects.

<?php
class ReflectionObject extends ReflectionClass
{
    final private __clone()
    public void __construct(mixed object)
    public string __toString()
    public static string export(mixed object, bool return)
}
?>

ReflectionMethod

The ReflectionMethod class lets you reverse-engineer class methods.

<?php
class ReflectionMethod extends ReflectionFunctionAbstract implements Reflector
{
    public void __construct(mixed class, string name)
    public string __toString()
    public static string export(mixed class, string name, bool return)
    public mixed invoke(stdclass object [, mixed args [, ...]])
    public mixed invokeArgs(stdclass object, array args)
    public bool isFinal()
    public bool isAbstract()
    public bool isPublic()
    public bool isPrivate()
    public bool isProtected()
    public bool isStatic()
    public bool isConstructor()
    public bool isDestructor()
    public int getModifiers()
    public mixed getClosure() /* As of PHP 5.3.0 */
    public ReflectionClass getDeclaringClass()

    // Inherited from ReflectionFunctionAbstract
    final private __clone()
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

To introspect a method, you will first have to create an instance of the ReflectionMethod class. You can then call any of the above methods on this instance.

Example #5 Using the ReflectionMethod class

<?php
class Counter
{
    private static $c = 0;

    /**
     * Increment counter
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return ++self::$c;
    }
}

// Create an instance of the ReflectionMethod class
$method = new ReflectionMethod('Counter', 'increment');

// Print out basic information
printf(
    "===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .
    "     declared in %s\n" .
    "     lines %d to %d\n" .
    "     having the modifiers %d[%s]\n",
        $method->isInternal() ? 'internal' : 'user-defined',
        $method->isAbstract() ? ' abstract' : '',
        $method->isFinal() ? ' final' : '',
        $method->isPublic() ? ' public' : '',
        $method->isPrivate() ? ' private' : '',
        $method->isProtected() ? ' protected' : '',
        $method->isStatic() ? ' static' : '',
        $method->getName(),
        $method->isConstructor() ? 'the constructor' : 'a regular method',
        $method->getFileName(),
        $method->getStartLine(),
        $method->getEndline(),
        $method->getModifiers(),
        implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), 1));

// Print static variables if existant
if ($statics= $method->getStaticVariables()) {
    printf("---> Static variables: %s\n", var_export($statics, 1));
}

// Invoke the method
printf("---> Invokation results in: ");
var_dump($method->invoke(NULL));
?>

Example #6 Getting closure using ReflectionMethod class

<?php

class Example {
    static function printer () {
        echo "Hello World!\n";
    }
}

$class = new ReflectionClass('Example');
$method = $class->getMethod('printer');
$closure = $method->getClosure(); /* As of PHP 5.3.0 */
$closure(); // Hello World!

?>

Note: Trying to invoke private, protected or abstract methods will result in an exception being thrown from the invoke() method.

Note: For static methods as seen above, you should pass NULL as the first argument to invoke(). For non-static methods, pass an instance of the class.

ReflectionProperty

The ReflectionProperty class lets you reverse-engineer class properties.

<?php
class ReflectionProperty implements Reflector
{
    final private __clone()
    public void __construct(mixed class, string name)
    public string __toString()
    public static string export(mixed class, string name, bool return)
    public string getName()
    public bool isPublic()
    public bool isPrivate()
    public bool isProtected()
    public bool isStatic()
    public bool isDefault()
    public void setAccessible() /* As of PHP 5.3.0 */
    public int getModifiers()
    public mixed getValue(stdclass object)
    public void setValue(stdclass object, mixed value)
    public ReflectionClass getDeclaringClass()
    public string getDocComment()
}
?>

Note: getDocComment() was added in PHP 5.1.0. setAccessible() was added in PHP 5.3.0.

To introspect a property, you will first have to create an instance of the ReflectionProperty class. You can then call any of the above methods on this instance.

Example #7 Using the ReflectionProperty class

<?php
class String
{
    public $length  = 5;
}

// Create an instance of the ReflectionProperty class
$prop = new ReflectionProperty('String', 'length');

// Print out basic information
printf(
    "===> The%s%s%s%s property '%s' (which was %s)\n" .
    "     having the modifiers %s\n",
        $prop->isPublic() ? ' public' : '',
        $prop->isPrivate() ? ' private' : '',
        $prop->isProtected() ? ' protected' : '',
        $prop->isStatic() ? ' static' : '',
        $prop->getName(),
        $prop->isDefault() ? 'declared at compile-time' : 'created at run-time',
        var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Create an instance of String
$obj= new String();

// Get current value
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Change value
$prop->setValue($obj, 10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Dump object
var_dump($obj);
?>

Example #8 Getting value from private and protected properties using ReflectionProperty class

<?php

class Foo {
    public $x = 1;
    protected $y = 2;
    private $z = 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

Note: Trying to get or set private or protected class property's values will result in an exception being thrown.

ReflectionExtension

The ReflectionExtension class lets you reverse-engineer extensions. You can retrieve all loaded extensions at runtime using the get_loaded_extensions().

<?php
class ReflectionExtension implements Reflector {
    final private __clone()
    public void __construct(string name)
    public string __toString()
    public static string export(string name, bool return)
    public string getName()
    public string getVersion()
    public ReflectionFunction[] getFunctions()
    public array getConstants()
    public array getINIEntries()
    public ReflectionClass[] getClasses()
    public array getClassNames()
    public string info()
}
?>

To introspect an extension, you will first have to create an instance of the ReflectionExtension class. You can then call any of the above methods on this instance.

Example #9 Using the ReflectionExtension class

<?php
// Create an instance of the ReflectionExtension class
$ext = new ReflectionExtension('standard');

// Print out basic information
printf(
    "Name        : %s\n" .
    "Version     : %s\n" .
    "Functions   : [%d] %s\n" .
    "Constants   : [%d] %s\n" .
    "INI entries : [%d] %s\n" .
    "Classes     : [%d] %s\n",
        $ext->getName(),
        $ext->getVersion() ? $ext->getVersion() : 'NO_VERSION',
        sizeof($ext->getFunctions()),
        var_export($ext->getFunctions(), 1),

        sizeof($ext->getConstants()),
        var_export($ext->getConstants(), 1),

        sizeof($ext->getINIEntries()),
        var_export($ext->getINIEntries(), 1),

        sizeof($ext->getClassNames()),
        var_export($ext->getClassNames(), 1)
);
?>

Extending the reflection classes

In case you want to create specialized versions of the built-in classes (say, for creating colorized HTML when being exported, having easy-access member variables instead of methods or having utility methods), you may go ahead and extend them.

Example #10 Extending the built-in classes

<?php
/**
 * My Reflection_Method class
 */
class My_Reflection_Method extends ReflectionMethod
{
    public $visibility = array();

    public function __construct($o, $m)
    {
        parent::__construct($o, $m);
        $this->visibility = Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Demo class #1
 *
 */
class T {
    protected function x() {}
}

/**
 * Demo class #2
 *
 */
class U extends T {
    function x() {}
}

// Print out information
var_dump(new My_Reflection_Method('U', 'x'));
?>

Note: Caution: If you're overwriting the constructor, remember to call the parent's constructor _before_ any code you insert. Failing to do so will result in the following: Fatal error: Internal error: Failed to retrieve the reflection object

对象比较
Type Hinting
类与对象（PHP 5）


Type Hinting

PHP 5 introduces Type Hinting. Functions are now able to force parameters to be objects (by specifying the name of the class in the function prototype) or arrays (since PHP 5.1). However, if NULL is used as the default parameter value, it will be allowed as an argument for any later call.

Example #1 Type Hinting examples

<?php
// An example class
class MyClass
{
    /**
     * A test function
     *
     * First parameter must be an object of type OtherClass
     */
    public function test(OtherClass $otherclass) {
        echo $otherclass->var;
    }

    /**
     * Another test function
     *
     * First parameter must be an array
     */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}

// Another example class
class OtherClass {
    public $var = 'Hello World';
}
?>

Failing to satisfy the type hint results in a catchable fatal error.

<?php
// An instance of each class
$myclass = new MyClass;
$otherclass = new OtherClass;

// Fatal Error: Argument 1 must be an object of class OtherClass
$myclass->test('hello');

// Fatal Error: Argument 1 must be an instance of OtherClass
$foo = new stdClass;
$myclass->test($foo);

// Fatal Error: Argument 1 must not be null
$myclass->test(null);

// Works: Prints Hello World
$myclass->test($otherclass);

// Fatal Error: Argument 1 must be an array
$myclass->test_array('a string');

// Works: Prints the array
$myclass->test_array(array('a', 'b', 'c'));
?>

Type hinting also works with functions:

<?php
// An example class
class MyClass {
    public $var = 'Hello World';
}

/**
 * A test function
 *
 * First parameter must be an object of type MyClass
 */
function MyFunction (MyClass $foo) {
    echo $foo->var;
}

// Works
$myclass = new MyClass;
MyFunction($myclass);
?>

Type hinting allowing NULL value:

<?php

/* Accepting NULL value */
function test(stdClass $obj = NULL) {

}

test(NULL);
test(new stdClass);

?>

Type Hints can only be of the object and array (since PHP 5.1) type. Traditional type hinting with int and string isn't supported.

Reflection
Late Static Bindings
类与对象（PHP 5）


Late Static Bindings

As of PHP 5.3.0, PHP implements a feature called late static bindings which can be used to reference the called class in a context of static inheritance.

This feature was named "late static bindings" with an internal perspective in mind. "Late binding" comes from the fact that static:: will no longer be resolved using the class where the method is defined but it will rather be computed using runtime information. It was also called a "static binding" as it can be used for (but is not limited to) static method calls.

Limitations of self::

Static references to the current class like self:: or __CLASS__ are resolved using the class in which the function belongs, as in where it was defined:

Example #1 self:: usage

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}

class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}

B::test();
?>

上例将输出：

A

Late Static Bindings' usage

Late static bindings tries to solve that limitation by introducing a keyword that references the class that was initially called at runtime. Basically, a keyword that would allow you to reference B from test() in the previous example. It was decided not to introduce a new keyword but rather use static that was already reserved.

Example #2 static:: simple usage

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // Here comes Late Static Bindings
    }
}

class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}

B::test();
?>

上例将输出：

B

Note: static:: does not work like $this for static methods! $this-> follows the rules of inheritance while static:: doesn't. This difference is detailed later on this manual page.

Example #3 static:: usage in a non-static context

<?php
class TestChild extends TestParent {
    public function __construct() {
        static::who();
    }

    public function test() {
        $o = new TestParent();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}

class TestParent {
    public function __construct() {
        static::who();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}
$o = new TestChild;
$o->test();

?>

上例将输出：

TestChild
TestParent

Note: Late static bindings' resolution will stop at a fully resolved static call with no fallback. On the other hand, static calls using keywords like parent:: or self:: will forward the calling information.

Example #4 Forwarding and non-forwarding calls

<?php
class A {
    public static function foo() {
        static::who();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}

class B extends A {
    public static function test() {
        A::foo();
        parent::foo();
        self::foo();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}
class C extends B {
    public static function who() {
        echo __CLASS__."\n";
    }
}

C::test();
?>

上例将输出：

A
C
C

Edge cases

There are lots of different ways to trigger a method call in PHP, like callbacks or magic methods. As late static bindings base their resolution on runtime information, it might give unexpected results in so-called edge cases.

Example #5 Late static bindings inside magic methods

<?php
class A {

   protected static function who() {
        echo __CLASS__."\n";
   }

   public function __get($var) {
       return static::who();
   }
}

class B extends A {

   protected static function who() {
        echo __CLASS__."\n";
   }
}

$b = new B;
$b->foo;
?>

上例将输出：

B
Type Hinting
Objects and references
类与对象（PHP 5）


Objects and references

One of the key-point of PHP5 OOP that is often mentioned is that "objects are passed by references by default" This is not completely true. This section rectifies that general thought using some examples.

A PHP reference is an alias, which allows two different variables to write to the same value. As of PHP5, an object variable doesn't contain the object itself as value anymore. It only contains a object identifier which allows object accessors to find the actual object. When an object is sent by argument, returned or assigned to another variable, the different variables are not aliases: they hold a copy of the identifier, which points to the same object.

Example #1 References and Objects

<?php
class A {
    public $foo = 1;
}

$a = new A;
$b = $a;     // $a and $b are copies of the same identifier
             // ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";

$c = new A;
$d = &$c;    // $c and $d are references
             // ($c,$d) = <id>

$d->foo = 2;
echo $c->foo."\n";

$e = new A;

function foo($obj) {
    // ($obj) = ($e) = <id>
    $obj->foo = 2;
}

foo($e);
echo $e->foo."\n";

?>

上例将输出：

2
2
2
Late Static Bindings
命名空间
类与对象（PHP 5）


命名空间

Table of Contents

  • 命名空间概述
  • 定义命名空间
  • 定义子命名空间
  • 在同一个文件中定义多个命名空间
  • 使用命名空间：基础
  • 命名空间和动态语言特征
  • namespace关键字和__NAMESPACE__常量
  • 使用命名空间：别名/导入
  • 全局空间
  • 使用命名空间：后备全局函数/常量
  • 名称解析规则
  • FAQ: things you need to know about namespaces
Objects and references
命名空间概述
语言参考


命名空间概述

什么是命名空间？从广义上来说，命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如，在操作系统中目录用来将相关文件分组，对于目录中的文件来说，它就扮演了命名空间的角色。具体举个例子，文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在，但在同一个目录中不能存在两个 foo.txt 文件。另外，在目录 /home/greg 外访问 foo.txt 文件时，我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

在PHP中，命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题： In the PHP world, namespaces are designed to solve two problems that authors of libraries and applications encounter when creating re-usable code elements such as classes or functions:

  1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
  2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名（或简短）的名称，提高源代码的可读性。

PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。下面是一个说明 PHP 命名空间语法的示例：

Example #1 命名空间语法示例

<?php
namespace my\name; // 参考 "定义命名空间" 小节

class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // 参考 "全局空间" 小节

$a = strlen('hi'); // 参考 "使用命名空间：后备全局函数/常量" 小节

$d = namespace\MYCONST; // 参考 "namespace操作符和__NAMESPACE__常量” 小节

$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // 参考 "命名空间和动态语言特征" 小节
?>

PHP 在 5.3.0 以后的版本开始支持命名空间。

命名空间
定义命名空间
命名空间


定义命名空间

虽然任意合法的PHP代码都可以包含在命名空间中，但只有三种类型的代码受命名空间的影响，它们是：类，函数和常量。

命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间，它必须在其它所有代码之前声明命名空间。

Example #1 声明单个命名空间

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。另外，所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前：

Example #2 声明单个命名空间

<html>
<?php
namespace MyProject; // 致命错误 -　命名空间必须是程序脚本的第一条语句
?>

另外，与PHP其它的语言特征不同，同一个命名空间可以定义在多个文件中，即允许将同一个命名空间的内容分割存放在不同的文件中。

命名空间概述
定义子命名空间
命名空间


定义子命名空间

与目录和文件的关系很象，PHP 命名空间也允许指定层次化的命名空间的名称。因此，命名空间的名字可以使用分层次的方式定义：

Example #1 声明分层次的单个命名空间

<?php
namespace MyProject\Sub\Level;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>

上面的例子创建了常量MyProject\Sub\Level\CONNECT_OK，类 MyProject\Sub\Level\Connection和函数 MyProject\Sub\Level\Connection。

定义命名空间
在同一个文件中定义多个命名空间
命名空间


在同一个文件中定义多个命名空间

也可以在同一个文件中定义多个命名空间。在同一个文件中定义多个命名空间有两种语法形式。

Example #1 定义多个命名空间，简单组合语法

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

namespace AnotherProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
?>

不建议使用这种语法在单个文件中定义多个命名空间。建议使用下面的大括号形式的语法。

Example #2 定义多个命名空间，大括号语法

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace AnotherProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}
?>

在实际的编程实践中，非常不提倡在同一个文件中定义多个命名空间。这种方式的主要用于将多个 PHP 脚本合并在同一个文件中。

将全局的非命名空间中的代码与命名空间中的代码组合在一起，只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来，例如：

Example #3 定义多个命名空间和不包含在命名空间中的代码

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace { // global code
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

除了开始的declare语句外，命名空间的括号外不得有任何PHP代码。

Example #4 定义多个命名空间和不包含在命名空间中的代码

<?php
declare(encoding='UTF-8');
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace { // 全局代码
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

定义子命名空间
使用命名空间：基础
命名空间


使用命名空间：基础

在讨论如何使用命名空间之前，必须了解 PHP 是如何知道要使用哪一个命名空间中的元素的。可以将 PHP 命名空间与文件系统作一个简单的类比。在文件系统中访问一个文件有三种方式：

  1. 相对文件名形式如foo.txt。它会被解析为 currentdirectory/foo.txt，其中 currentdirectory 表示当前目录。因此如果当前目录是 /home/foo，则该文件名被解析为/home/foo/foo.txt。
  2. 相对路径名形式如subdirectory/foo.txt。它会被解析为 currentdirectory/subdirectory/foo.txt。
  3. 绝对路径名形式如/main/foo.txt。它会被解析为/main/foo.txt。

PHP 命名空间中的元素使用同样的原理。例如，类名可以通过三种方式引用：

  1. 非限定名称，或不包含前缀的类名称，例如 $a=new foo(); 或 foo::staticmethod();。如果当前命名空间是 currentnamespace，foo 将被解析为 currentnamespace\foo。如果使用 foo 的代码是全局的，不包含在任何命名空间中的代码，则 foo 会被解析为foo。 警告：如果命名空间中的函数或常量未定义，则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。详情参见 使用命名空间：后备全局函数名称/常量名称。
  2. 限定名称,或包含前缀的名称，例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。如果当前的命名空间是 currentnamespace，则 foo 会被解析为 currentnamespace\subnamespace\foo。如果使用 foo 的代码是全局的，不包含在任何命名空间中的代码，foo 会被解析为subnamespace\foo。
  3. 完全限定名称，或包含了全局前缀操作符的名称，例如， $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。在这种情况下，foo 总是被解析为代码中的文字名(literal name)currentnamespace\foo。

下面是一个使用这三种方式的实例：

file1.php

<?php
namespace Foo\Bar\subnamespace;

const FOO = 1;
function foo() {}
class foo
{
    static function staticmethod() {}
}
?>

file2.php

<?php
namespace Foo\Bar;
include 'file1.php';

const FOO = 2;
function foo() {}
class foo
{
    static function staticmethod() {}
}

/* 非限定名称 */
foo(); // 解析为 Foo\Bar\foo resolves to function Foo\Bar\foo
foo::staticmethod(); // 解析为类 Foo\Bar\foo的静态方法staticmethod。resolves to class Foo\Bar\foo, method staticmethod
echo FOO; // resolves to constant Foo\Bar\FOO

/* 限定名称 */
subnamespace\foo(); // 解析为函数 Foo\Bar\subnamespace\foo
subnamespace\foo::staticmethod(); // 解析为类 Foo\Bar\subnamespace\foo,
                                  // 以及类的方法 staticmethod
echo subnamespace\FOO; // 解析为常量 Foo\Bar\subnamespace\FOO

/* 完全限定名称 */
\Foo\Bar\foo(); // 解析为函数 Foo\Bar\foo
\Foo\Bar\foo::staticmethod(); // 解析为类 Foo\Bar\foo, 以及类的方法 staticmethod
echo \Foo\Bar\FOO; // 解析为常量 Foo\Bar\FOO
?>

注意访问任意全局类、函数或常量，都可以使用完全限定名称，例如 \strlen() 或 \Exception 或 \INI_ALL。

Example #1 在命名空间内部访问全局类、函数和常量

<?php
namespace Foo;

function strlen() {}
const INI_ALL = 3;
class Exception {}

$a = \strlen('hi'); // 调用全局函数strlen
$b = \INI_ALL; // 访问全局常量 INI_ALL
$c = new \Exception('error'); // 实例化全局类 Exception
?>

在同一个文件中定义多个命名空间
命名空间和动态语言特征
命名空间


命名空间和动态语言特征

PHP 命名空间的实现受到其语言自身的动态特征的影响。因此，如果要将下面的代码转换到命名空间中：

Example #1 动态访问元素

example1.php:

<?php
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "global";

$a = 'classname';
$obj = new $a; // prints classname::__construct
$b = 'funcname';
$b(); // prints funcname
echo constant('constname'), "\n"; // prints global
?>

必须使用完全限定名称（包括命名空间前缀的类名称）。注意因为在动态的类名称、函数名称或常量名称中，限定名称和完全限定名称没有区别，因此其前导的反斜杠是不必要的。

Example #2 动态访问命名空间的元素

<?php
namespace namespacename;
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "namespaced";

include 'example1.php';

$a = 'classname';
$obj = new $a; // prints classname::__construct
$b = 'funcname';
$b(); // prints funcname
echo constant('constname'), "\n"; // prints global

/* note that if using double quotes, "\\namespacename\\classname" must be used */
$a = '\namespacename\classname';
$obj = new $a; // prints namespacename\classname::__construct
$a = 'namespacename\classname';
$obj = new $a; // also prints namespacename\classname::__construct
$b = 'namespacename\funcname';
$b(); // prints namespacename\funcname
$b = '\namespacename\funcname';
$b(); // also prints namespacename\funcname
echo constant('\namespacename\constname'), "\n"; // prints namespaced
echo constant('namespacename\constname'), "\n"; // also prints namespaced
?>

请一定别忘了阅读 对字符串中的命名空间名称转义的注解.

使用命名空间：基础
namespace关键字和__NAMESPACE__常量
命名空间


namespace关键字和__NAMESPACE__常量

PHP支持两种抽象的访问当前命名空间内部元素的方法，__NAMESPACE__ 魔术常量和namespace关键字。

常量__ NAMESPACE__的值是包含当前命名空间名称的字符串。在全局的，不包括在任何命名空间中的代码，它包含一个空的字符串。

Example #1 __NAMESPACE__ 示例, 在命名空间中的代码

<?php
namespace MyProject;

echo '"', __NAMESPACE__, '"'; // 输出 "MyProject"
?>

Example #2 __NAMESPACE__ 示例，全局代码

<?php

echo '"', __NAMESPACE__, '"'; // 输出 ""
?>

常量 __NAMESPACE__ 在动态创建名称时很有用，例如：

Example #3 使用__NAMESPACE__动态创建名称

<?php
namespace MyProject;

function get($classname)
{
    $a = __NAMESPACE__ . '\\' . $classname;
    return new $a;
}
?>

关键字 namespace 可用来显式访问当前命名空间或子命名空间中的元素。它等价于类中的 self 操作符。

Example #4 namespace操作符，命名空间中的代码

<?php
namespace MyProject;

use blah\blah as mine; // see "Using namespaces: importing/aliasing"

blah\mine(); // calls function blah\blah\mine()
namespace\blah\mine(); // calls function MyProject\blah\mine()

namespace\func(); // calls function MyProject\func()
namespace\sub\func(); // calls function MyProject\sub\func()
namespace\cname::method(); // calls static method "method" of class MyProject\cname
$a = new namespace\sub\cname(); // instantiates object of class MyProject\sub\cname
$b = namespace\CONSTANT; // assigns value of constant MyProject\CONSTANT to $b
?>

Example #5 namespace操作符, 全局代码

<?php

namespace\func(); // calls function func()
namespace\sub\func(); // calls function sub\func()
namespace\cname::method(); // calls static method "method" of class cname
$a = new namespace\sub\cname(); // instantiates object of class sub\cname
$b = namespace\CONSTANT; // assigns value of constant CONSTANT to $b
?>

命名空间和动态语言特征
使用命名空间：别名/导入
命名空间


使用命名空间：别名/导入

允许通过别名引用或导入外部的完全限定名称，是命名空间的一个重要特征。这有点类似于在类 unix 文件系统中可以创建对其它的文件或目录的符号连接。

PHP 命名空间支持 有两种使用别名或导入方式：为类名称使用别名，或为命名空间名称使用别名。注意PHP不支持导入函数或常量。

在PHP中，别名是通过操作符 use 来实现的. 下面是一个使用所有可能的三种导入方式的例子：

Example #1 使用use操作符导入/使用别名

<?php
namespace foo;
use My\Full\Classname as Another;

// 下面的例子与 use My\Full\NSname as NSname 相同
use My\Full\NSname;

// 导入一个全局类
use \ArrayObject;

$obj = new namespace\Another; // 实例化 foo\Another 对象
$obj = new Another; // 实例化 My\Full\Classname　对象
NSname\subns\func(); // 调用函数 My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // 实例化 ArrayObject 对象
// 如果不使用 "use \ArrayObject" ，则实例化一个 foo\ArrayObject 对象
?>

注意对命名空间中的名称（包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命名空间分隔符的全局名称如 FooBar）来说，前导的反斜杠是不必要的也不允许有反斜杠，因为导入的名称必须是完全限定的，不会根据当前的命名空间作相对解析。 Note that for namespaced names (fully qualified namespace names containing namespace separator, such as Foo\Bar as opposed to global names that do not, such as FooBar), the leading backslash is unnecessary and not allowed, as import names must be fully qualified, and are not processed relative to the current namespace.

为了简化操作，PHP还支持在一行中使用多个use语句

Example #2 通过use操作符导入/使用别名，一行中包含多个use语句

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // 实例化 My\Full\Classname 对象
NSname\subns\func(); // 调用函数 My\Full\NSname\subns\func
?>

导入操作是在编译执行的，但动态的类名称、函数名称或常量名称则不是。 Importing is performed at compile-time, and so does not affect dynamic class, function or constant names.

Example #3 导入和动态名称

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // 实例化一个 My\Full\Classname 对象
$a = 'Another';
$obj = new $a;      // 实际化一个 Another 对象
?>

另外，导入操作只影响非限定名称和限定名称。完全限定名称由于是确定的，故不受导入的影响。

Example #4 导入和完全限定名称

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // instantiates object of class My\Full\Classname
$obj = new \Another; // instantiates object of class Another
$obj = new Another\thing; // instantiates object of class My\Full\Classname\thing
$obj = new \Another\thing; // instantiates object of class Another\thing
?>

namespace关键字和__NAMESPACE__常量
全局空间
命名空间


全局空间

如果没有定义任何命名空间，所有的类与函数的定义都是在全局空间，与 PHP 引入命名空间概念前一样。在名称前加上前缀 \ 表示该名称是全局空间中的名称，即使该名称位于其它的命名空间中时也是如此。

Example #1 使用全局空间说明

<?php
namespace A\B\C;

/* 这个函数是 A\B\C\fopen */
function fopen() {
     /* ... */
     $f = \fopen(...); // 调用全局的fopen函数
     return $f;
}
?>

使用命名空间：别名/导入
使用命名空间：后备全局函数/常量
命名空间


使用命名空间：后备全局函数/常量

在一个命名空间中，当 PHP 遇到一个非限定的类、函数或常量名称时，它使用不同的优先策略来解析该名称。类名称总是解析到当前命名空间中的名称。因此在访问系统内部或不包含在命名空间中的类名称时，必须使用完全限定名称，例如：

Example #1 在命名空间中访问全局类

<?php
namespace A\B\C;
class Exception extends \Exception {}

$a = new Exception('hi'); // $a 是类 A\B\C\Exception 的一个对象
$b = new \Exception('hi'); // $b 是类 Exception 的一个对象

$c = new ArrayObject; // 致命错误, 找不到 A\B\C\ArrayObject 类
?>

对于函数和常量来说，如果当前命名空间中不存在该函数或常量，PHP 会退而使用全局空间中的函数或常量。 For functions and constants, PHP will fall back to global functions or constants if a namespaced function or constant does not exist.

Example #2 命名空间中后备的全局函数/常量

<?php
namespace A\B\C;

const E_ERROR = 45;
function strlen($str)
{
    return \strlen($str) - 1;
}

echo E_ERROR, "\n"; // 输出 "45"
echo INI_ALL, "\n"; // 输出 "7" - 使用全局常量 INI_ALL

echo strlen('hi'), "\n"; // 输出 "1"
if (is_array('hi')) { // 输出 "is not array"
    echo "is array\n";
} else {
    echo "is not array\n";
}
?>

全局空间
名称解析规则
命名空间


名称解析规则

在说明名称解析规则之前，我们先看一些重要的定义：

命名空间名称定义
非限定名称Unqualified name

名称中不包含命名空间分隔符的标识符，例如 Foo

限定名称Qualified name

名称中含有命名空间分隔符的标识符，例如 Foo\Bar

完全限定名称Fully qualified name

名称中包含命名空间分隔符，并以命名空间分隔符开始的标识符，例如 \Foo\Bar。 namespace\Foo 也是一个完全限定名称。

名称解析遵循下列规则：

  1. 对完全限定名称的函数，类和常量的调用在编译时解析。例如 new \A\B 解析为类 A\B。
  2. 所有的非限定名称和限定名称（非完全限定名称）根据当前的导入规则在编译时进行转换。例如，如果命名空间 A\B\C 被导入为 C，那么对 C\D\e() 的调用就会被转换为 A\B\C\D\e()。
  3. 在命名空间内部，所有的没有根据导入规则转换的限定名称均会在其前面加上当前的命名空间名称。例如，在命名空间 A\B 内部调用 C\D\e()，则 C\D\e() 会被转换为 A\B\C\D\e() 。
  4. 非限定类名根据当前的导入规则在编译时转换（用全名代替短的导入名称）。例如，如果命名空间 A\B\C 导入为C，则 new C() 被转换为 new A\B\C() 。
  5. 在命名空间内部（例如A\B），对非限定名称的函数调用是在运行时解析的。例如对函数 foo() 的调用是这样解析的：
    1. 在当前命名空间中查找名为 A\B\foo() 的函数
    2. 尝试查找并调用 全局(global) 空间中的函数 foo()。
  6. 在命名空间（例如A\B）内部对非限定名称或限定名称类（非完全限定名称）的调用是在运行时解析的。下面是调用 new C() 及 new D\E() 的解析过程： new C()的解析:
    1. 在当前命名空间中查找A\B\C类。
    2. 尝试自动装载类A\B\C。
    new D\E()的解析:
    1. 在类名称前面加上当前命名空间名称变成：A\B\D\E，然后查找该类。
    2. 尝试自动装载类 A\B\D\E。
    为了引用全局命名空间中的全局类，必须使用完全限定名称 new \C()。

Example #1 名称解析示例

<?php
namespace A;
use B\D, C\E as F;

// 函数调用

foo();      // 首先尝试调用定义在命名空间"A"中的函数foo()
            // 再尝试调用全局函数 "foo"

\foo();     // 调用全局空间函数 "foo"

my\foo();   // 调用定义在命名空间"A\my"中函数 "foo"

F();        // 首先尝试调用定义在命名空间"A"中的函数 "F"
            // 再尝试调用全局函数 "F"

// 类引用

new B();    // 创建命名空间 "A" 中定义的类 "B" 的一个对象
            // 如果未找到，则尝试自动装载类 "A\B"

new D();    // 使用导入规则，创建命名空间 "B" 中定义的类 "D" 的一个对象
            // 如果未找到，则尝试自动装载类 "B\D"

new F();    // 使用导入规则，创建命名空间 "C" 中定义的类 "E" 的一个对象
            // 如果未找到，则尝试自动装载类 "C\E"

new \B();   // 创建定义在全局空间中的类 "B" 的一个对象
            // 如果未发现，则尝试自动装载类 "B"

new \D();   // 创建定义在全局空间中的类 "D" 的一个对象
            // 如果未发现，则尝试自动装载类 "D"

new \F();   // 创建定义在全局空间中的类 "F" 的一个对象
            // 如果未发现，则尝试自动装载类 "F"

// 调用另一个命名空间中的静态方法或命名空间函数

B\foo();    // 调用命名空间 "A\B" 中函数 "foo"

B::foo();   // 调用命名空间 "A" 中定义的类 "B" 的 "foo" 方法
            // 如果未找到类 "A\B" ，则尝试自动装载类 "A\B"

D::foo();   // 使用导入规则，调用命名空间 "B" 中定义的类 "D" 的 "foo" 方法
            // 如果类 "B\D" 未找到，则尝试自动装载类 "B\D"

\B\foo();   // 调用命名空间 "B" 中的函数 "foo"

\B::foo();  // 调用全局空间中的类 "B" 的 "foo" 方法
            // 如果类 "B" 未找到，则尝试自动装载类 "B"

// 当前命名空间中的静态方法或函数

A\B::foo();   // 调用命名空间 "A\A" 中定义的类 "B" 的 "foo" 方法
              // 如果类 "A\A\B" 未找到，则尝试自动装载类 "A\A\B"

\A\B::foo();  // 调用命名空间 "A\B" 中定义的类 "B" 的 "foo" 方法
              // 如果类 "A\B" 未找到，则尝试自动装载类 "A\B"
?>
使用命名空间：后备全局函数/常量
FAQ: things you need to know about namespaces
命名空间


FAQ: things you need to know about namespaces

This FAQ is split into two sections: common questions, and some specifics of implementation that are helpful to understand fully.

First, the common questions.

  1. If I don't use namespaces, should I care about any of this?
  2. How do I use internal or global classes in a namespace?
  3. How do I use namespaces classes functions, or constants in their own namespace?
  4. How does a name like \my\name or \name resolve?
  5. How does a name like my\name resolve?
  6. How does an unqualified class name like name resolve?
  7. How does an unqualified function name or unqualified constant name like name resolve?

There are a few implementation details of the namespace implementations that are helpful to understand.

  1. Import names cannot conflict with classes defined in the same file.
  2. Nested namespaces are not allowed.
  3. Neither functions nor constants can be imported via the use statement.
  4. Dynamic namespace names (quoted identifiers) should escape backslash.
  5. Undefined Constants referenced using any backslash die with fatal error
  6. Cannot override special constants NULL, TRUE, FALSE, ZEND_THREAD_SAFE or ZEND_DEBUG_BUILD

If I don't use namespaces, should I care about any of this?

No. Namespaces do not affect any existing code in any way, or any as-yet-to-be-written code that does not contain namespaces. You can write this code if you wish:

Example #1 Accessing global classes outside a namespace

<?php
$a = new \stdClass;

This is functionally equivalent to:

Example #2 Accessing global classes outside a namespace

<?php
$a = new stdClass;

How do I use internal or global classes in a namespace?

Example #3 Accessing internal classes in namespaces

<?php
namespace foo;
$a = new \stdClass;

function test(\ArrayObject $typehintexample = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// extending an internal or global class
class MyException extends \Exception {}
?>

How do I use namespaces classes, functions, or constants in their own namespace?

Example #4 Accessing internal classes, functions or constants in namespaces

<?php
namespace foo;

class MyClass {}

// using a class from the current namespace as a type hint
function test(MyClass $typehintexample = null) {}
// another way to use a class from the current namespace as a type hint
function test(\foo\MyClass $typehintexample = null) {}

// extending a class from the current namespace
class Extended extends MyClass {}

// accessing a global function
$a = \globalfunc();

// accessing a global constant
$b = \INI_ALL;
?>

How does a name like \my\name or \name resolve?

Names that begin with a \ always resolve to what they look like, so \my\name is in fact my\name, and \Exception is Exception.

Example #5 Fully Qualified names

<?php
namespace foo;
$a = new \my\name(); // instantiates "my\name" class
echo \strlen('hi'); // calls function "strlen"
$a = \INI_ALL; // $a is set to the value of constant "INI_ALL"
?>

How does a name like my\name resolve?

Names that contain a backslash but do not begin with a backslash like my\name can be resolved in 2 different ways.

If there is an import statement that aliases another name to my, then the import alias is applied to the my in my\name.

Otherwise, the current namespace name is prepended to my\name.

Example #6 Qualified names

<?php
namespace foo;
use blah\blah as foo;

$a = new my\name(); // instantiates "foo\my\name" class
foo\bar::name(); // calls static method "name" in class "blah\blah\bar"
my\bar(); // calls function "foo\my\bar"
$a = my\BAR; // sets $a to the value of constant "foo\my\BAR"
?>

How does an unqualified class name like name resolve?

Class names that do not contain a backslash like name can be resolved in 2 different ways.

If there is an import statement that aliases another name to name, then the import alias is applied.

Otherwise, the current namespace name is prepended to name.

Example #7 Unqualified class names

<?php
namespace foo;
use blah\blah as foo;

$a = new name(); // instantiates "foo\name" class
foo::name(); // calls static method "name" in class "blah\blah"
?>

How does an unqualified function name or unqualified constant name like name resolve?

Function or constant names that do not contain a backslash like name can be resolved in 2 different ways.

First, the current namespace name is prepended to name.

Finally, if the constant or function name does not exist in the current namespace, a global constant or function name is used if it exists.

Example #8 Unqualified function or constant names

<?php
namespace foo;
use blah\blah as foo;

const FOO = 1;

function my() {}
function foo() {}
function sort(&$a)
{
    sort($a);
    $a = array_flip($a);
    return $a;
}

my(); // calls "foo\my"
$a = strlen('hi'); // calls global function "strlen" because "foo\strlen" does not exist
$arr = array(1,3,2);
$b = sort($arr); // calls function "foo\sort"
$c = foo(); // calls function "foo\foo" - import is not applied

$a = FOO; // sets $a to value of constant "foo\FOO" - import is not applied
$b = INI_ALL; // sets $b to value of global constant "INI_ALL"
?>

Import names cannot conflict with classes defined in the same file.

The following script combinations are legal:

file1.php

<?php
namespace my\stuff;
class MyClass {}
?>

another.php

<?php
namespace another;
class thing {}
?>

file2.php

<?php
namespace my\stuff;
include 'file1.php';
include 'another.php';

use another\thing as MyClass;
$a = new MyClass; // instantiates class "thing" from namespace another
?>

There is no name conflict, even though the class MyClass exists within the my\stuff namespace, because the MyClass definition is in a separate file. However, the next example causes a fatal error on name conflict because MyClass is defined in the same file as the use statement.

<?php
namespace my\stuff;
use another\thing as MyClass;
class MyClass {} // fatal error: MyClass conflicts with import statement
$a = new MyClass;
?>

Nested namespaces are not allowed.

PHP does not allow nesting namespaces

<?php
namespace my\stuff {
    namespace nested {
        class foo {}
    }
}
?>

However, it is easy to simulate nested namespaces like so:

<?php
namespace my\stuff\nested {
    class foo {}
}
?>

Neither functions nor constants can be imported via the use statement.

The only elements that are affected by use statements are namespaces and class names. In order to shorten a long constant or function, import its containing namespace

<?php
namespace mine;
use ultra\long\ns\name;

$a = name\CONSTANT;
name\func();
?>

Dynamic namespace names (quoted identifiers) should escape backslash

It is very important to realize that because the backslash is used as an escape character within strings, it should always be doubled when used inside a string. Otherwise there is a risk of unintended consequences:

Example #9 Dangers of using namespaced names inside a double-quoted string

<?php
$a = new "dangerous\name"; // \n is a newline inside double quoted strings!
$obj = new $a;

$a = new 'not\at\all\dangerous'; // no problems here.
$obj = new $a;
?>

Inside a single-quoted string, the backslash escape sequence is much safer to use, but it is still recommended practice to escape backslashes in all strings as a best practice.

Undefined Constants referenced using any backslash die with fatal error

Any undefined constant that is unqualified like FOO will produce a notice explaining that PHP assumed FOO was the value of the constant. Any constant, qualified or fully qualified, that contains a backslash will produce a fatal error if not found.

Example #10 Undefined constants

<?php
namespace bar;
$a = FOO; // produces notice - undefined constants "FOO" assumed "FOO";
$a = \FOO; // fatal error, undefined namespace constant FOO
$a = Bar\FOO; // fatal error, undefined namespace constant bar\Bar\FOO
$a = \Bar\FOO; // fatal error, undefined namespace constant Bar\FOO
?>

Cannot override special constants NULL, TRUE, FALSE, ZEND_THREAD_SAFE or ZEND_DEBUG_BUILD

Any attempt to define a namespaced constant that is a special, built-in constant results in a fatal error

Example #11 Undefined constants

<?php
namespace bar;
const NULL = 0; // fatal error;
const true = 'stupid'; // also fatal error;
// etc.
?>

名称解析规则
异常处理
命名空间


异常处理

Table of Contents

  • 扩展 PHP 内置的异常处理类

PHP 5 添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw 语句抛出并被 catch 语句捕获。需要进行异常处理的代码都必须放入 try 代码块内，以便捕获可能存在的异常。每一个 try 至少要有一个与之对应的 catch。使用多个 catch 可以捕获不同的类所产生的异常。当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时，PHP 代码就会在跳转到最后一个 catch 的后面继续执行。当然，PHP 允许在 catch 代码块内再次抛出（throw）异常。

当一个异常被抛出时，其后（译者注：指抛出异常时所在的代码块）的代码将不会继续执行，而 PHP 就会尝试查找第一个能与之匹配的 catch。如果一个异常没有被捕获，而且又没用使用 set_exception_handler() 作相应的处理的话，那么 PHP 将会产生一个严重的错误，并且输出 Uncaught Exception ... （未捕获异常）的提示信息。

Note: PHP 内部函数主要使用错误报告, 只有现代面向对象的扩展才使用异常。但错误可以很容易的通过ErrorException转换为异常。

Tip

PHP标准库 (SPL) 提供了许多内建的异常类。

Example #1 抛出一个异常

<![CDATA[
<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    else return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

上例将输出：

0.2
Caught exception: Division by zero.
Hello World

Example #2 嵌套的异常

<?php

class MyException extends Exception { }

class Test {
    public function testing() {
        try {
            try {
                throw new MyException('foo!');
            } catch (MyException $e) {
                /* rethrow it */
                throw $e;
            }
        } catch (Exception $e) {
            var_dump($e->getMessage());
        }
    }
}

$foo = new Test;
$foo->testing();

?>

上例将输出：

string(4) "foo!"
FAQ: things you need to know about namespaces
扩展 PHP 内置的异常处理类
语言参考


扩展 PHP 内置的异常处理类

用户可以用自定义的异常处理类来扩展 PHP 内置的异常处理类。以下的代码说明了在内置的异常处理类中，哪些属性和方法在子类中是可访问和可继承的。译者注：以下这段代码只为说明内置异常处理类的结构，它并不是一段有实际意义的可用代码。

Example #1 内置的异常处理类

<?php
class Exception
{
    protected $message = 'Unknown exception';   // 异常信息
    protected $code = 0;                        // 用户自定义异常代码
    protected $file;                            // 发生异常的文件名
    protected $line;                            // 发生异常的代码行号

    function __construct($message = null, $code = 0);

    final function getMessage();                // 返回异常信息
    final function getCode();                   // 返回异常代码
    final function getFile();                   // 返回发生异常的文件名
    final function getLine();                   // 返回发生异常的代码行号
    final function getTrace();                  // backtrace() 数组
    final function getTraceAsString();          // 已格成化成字符串的 getTrace() 信息

    /* 可重载的方法 */
    function __toString();                       // 可输出的字符串
}
?>

如果使用自定义的类来扩展内置异常处理类，并且要重新定义构造函数的话，建议同时调用 parent::__construct() 来检查所有的变量是否已被赋值。当对象要输出字符串的时候，可以重载 __toString() 并自定义输出的样式。

Example #2 扩展 PHP 内置的异常处理类

<?php
/**
 * 自定义一个异常处理类
 */
class MyException extends Exception
{
    // 重定义构造器使 message 变为必须被指定的属性
    public function __construct($message, $code = 0) {
        // 自定义的代码

        // 确保所有变量都被正确赋值
        parent::__construct($message, $code);
    }

    // 自定义字符串输出的样式
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "A Custom function for this type of exception\n";
    }
}

/**
 * 创建一个用于测试异常处理机制的类
 */
class TestException
{
    public $var;

    const THROW_NONE    = 0;
    const THROW_CUSTOM  = 1;
    const THROW_DEFAULT = 2;

    function __construct($avalue = self::THROW_NONE) {

        switch ($avalue) {
            case self::THROW_CUSTOM:
                // 抛出自定义异常
                throw new MyException('1 is an invalid parameter', 5);
                break;

            case self::THROW_DEFAULT:
                // 抛出默认的异常
                throw new Exception('2 isnt allowed as a parameter', 6);
                break;

            default:
                // 没有异常的情况下，创建一个对象
                $this->var = $avalue;
                break;
        }
    }
}

// 例子 1
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {      // 捕获异常
    echo "Caught my exception\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // 被忽略
    echo "Caught Default Exception\n", $e;
}

// 执行后续代码
var_dump($o);
echo "\n\n";

// 例子 2
try {
    $o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) {      // 不能匹配异常的种类，被忽略
    echo "Caught my exception\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // 捕获异常
    echo "Caught Default Exception\n", $e;
}

// 执行后续代码
var_dump($o);
echo "\n\n";

// 例子 3
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {        // 捕获异常
    echo "Default Exception caught\n", $e;
}

// 执行后续代码
var_dump($o);
echo "\n\n";

// 例子 4
try {
    $o = new TestException();
} catch (Exception $e) {        // 没有异常，被忽略
    echo "Default Exception caught\n", $e;
}

// 执行后续代码
var_dump($o);
echo "\n\n";
?>
异常处理
引用的解释
异常处理


引用的解释

Table of Contents

  • 引用是什么
  • 引用做什么
  • 引用不是什么
  • 引用传递
  • 引用返回
  • 取消引用
  • 引用定位
扩展 PHP 内置的异常处理类
引用是什么
语言参考


引用是什么

在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针，替代的是，引用是符号表别名。注意在 PHP 中，变量名和变量内容是不一样的，因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目，而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的 hardlink。

引用的解释
引用做什么
引用的解释


引用做什么

PHP 的引用允许用两个变量来指向同一个内容。意思是，当这样做时：

<?php
$a =& $b;
?>

这意味着 $a 和 $b 指向了同一个变量。

Note: $a 和 $b 在这里是完全相同的，这并不是 $a 指向了 $b 或者相反，而是 $a 和 $b 指向了同一个地方。

Note: 如果具有引用的数组被拷贝，其值不会解除引用。对于数组传值给函数也是如此。

Note: 如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回，则会自动创建该变量。

Example #1 对未定义的变量使用引用

<?php
function foo(&$var) { }

foo($a); // $a is "created" and assigned to null

$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>

同样的语法可以用在函数中，它返回引用，以及用在 new 运算符中（PHP 4.0.4 以及以后版本）：

<?php
$bar =& new fooclass();
$foo =& find_var($bar);
?>

自 PHP 5 起，new 自动返回引用，因此在此使用 =& 已经过时了并且会产生 E_STRICT 级别的消息。

Note: 不用 & 运算符导致对象生成了一个拷贝。如果在类中用 $this，它将作用于该类当前的实例。没有用 & 的赋值将拷贝这个实例（例如对象）并且 $this 将作用于这个拷贝上，这并不总是想要的结果。由于性能和内存消耗的问题，通常只想工作在一个实例上面。
尽管可以用 @ 运算符来抑制构造函数中的任何错误信息，例如用 @new，但用 &new 语句时这不起效果。这是 Zend 引擎的一个限制并且会导致一个解析错误。

Warning

如果在一个函数内部给一个声明为 global 的变量赋于一个引用，该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。

Example #2 在函数内引用全局变量

<?php
$var1 = "Example variable";
$var2 = "";

function global_references($use_globals)
{
    global $var1, $var2;
    if (!$use_globals) {
        $var2 =& $var1; // visible only inside the function
    } else {
        $GLOBALS["var2"] =& $var1; // visible also in global context
    }
}

global_references(false);
echo "var2 is set to '$var2'\n"; // var2 is set to ''
global_references(true);
echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable'
?>

把 global $var; 当成是 $var =& $GLOBALS['var']; 的简写。从而将其它引用赋给 $var 只改变了本地变量的引用。

Note: 如果在 foreach 语句中给一个具有引用的变量赋值，被引用的对象也被改变。

Example #3 引用与 foreach 语句

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
    // do something
}
echo $ref; // 3 - last element of the iterated array
?>

引用做的第二件事是用引用传递变量。这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的。例如：

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
?>

将使 $a 变成 6。这是因为在 foo 函数中变量 $var 指向了和 $a 指向的同一个内容。更多详细解释见引用传递。

引用做的第三件事是引用返回。

引用是什么
引用不是什么
引用的解释


引用不是什么

如前所述，引用不是指针。这意味着下面的结构不会产生预期的效果：

<?php
function foo(&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);
?>

这将使 foo 函数中的 $var 变量在函数调用时和 $bar 绑定在一起，但接着又被重新绑定到了 $GLOBALS["baz"] 上面。不可能通过引用机制将 $bar 在函数调用范围内绑定到别的变量上面，因为在函数 foo 中并没有变量 $bar（它被表示为 $var，但是 $var 只有变量内容而没有调用符号表中的名字到值的绑定）。可以使用引用返回来引用被函数选择的变量。

引用做什么
引用传递
引用的解释


引用传递

可以将一个变量通过引用传递给函数，这样该函数就可以修改其参数的值。语法如下：

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a is 6 here
?>

注意在函数调用时没有引用符号——只有函数定义中有。光是函数定义就足够使参数通过引用来正确传递了。在最近版本的 PHP 中如果把 & 用在 foo(&$a); 中会得到一条警告说“Call-time pass-by-reference”已经过时了。

以下内容可以通过引用传递：

  • 变量，例如 foo($a)
  • New 语句，例如 foo(new foobar())

  • 从函数中返回的引用，例如：

    <?php
    function &bar()
    {
            $a = 5;
        return     $a;
    }
    foo(bar());
    ?>

    详细解释见引用返回。

任何其它表达式都不能通过引用传递，结果未定义。例如下面引用传递的例子是无效的：

<?php
function bar() // Note the missing &
{
    $a = 5;
    return $a;
}
foo(bar()); // 自 PHP 5.0.5 起导致致命错误
foo($a = 5) // 表达式，不是变量
foo(5) // 导致致命错误
?>

这些条件是 PHP 4.0.4 以及以后版本有的。

引用不是什么
引用返回
引用的解释


引用返回

引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能，引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用！要返回引用，使用此语法：

<?php
class foo {
    public $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.
$obj->value = 2;
echo $myValue;                // prints the new value of $obj->value, i.e. 2.
?>

本例中 getValue 函数所返回的对象的属性将被赋值，而不是拷贝，就和没有用引用语法一样。

Note: 和参数传递不同，这里必须在两个地方都用 & 符号——指出返回的是一个引用，而不是通常的一个拷贝，同样也指出 $myValue 是作为引用的绑定，而不是通常的赋值。

Note: 如果试图这样从函数返回引用：return ($this->value);，这将不会起作用，因为在试图返回一个表达式的结果而不是一个引用的变量。只能从函数返回引用变量——没别的方法。如果代码试图返回一个动态表达式或 new 运算符的结果，自 PHP 4.4.0 和 PHP 5.1.0 起会发出一条 E_NOTICE 错误。

引用传递
取消引用
引用的解释


取消引用

当 unset 一个引用，只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如：

<?php
$a = 1;
$b =& $a;
unset($a);
?>

不会 unset $b，只是 $a。

再拿这个和 Unix 的 unlink 调用来类比一下可能有助于理解。

引用返回
引用定位
引用的解释


引用定位

许多 PHP 的语法结构是通过引用机制实现的，所以上述有关引用绑定的一切也都适用于这些结构。一些结构，例如引用传递和返回，已经在上面提到了。其它使用引用的结构有：

global 引用

当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的：

<?php
$var =& $GLOBALS["var"];
?>

这意味着，例如，unset $var 不会 unset 全局变量。

$this

在一个对象的方法中，$this 永远是调用它的对象的引用。

取消引用
Predefined variables
引用的解释


Predefined variables

PHP provides a large number of predefined variables to all scripts. The variables represent everything from external variables to built-in environment variables, last error messages to last retrieved headers.

See also the FAQ titled "How does register_globals affect me?"

Table of Contents

  • Superglobals — Superglobals are built-in variables that are always available in all scopes
  • $GLOBALS — References all variables available in global scope
  • $_SERVER — Server and execution environment information
  • $_GET — HTTP GET variables
  • $_POST — HTTP POST variables
  • $_FILES — HTTP File Upload variables
  • $_REQUEST — HTTP Request variables
  • $_SESSION — Session variables
  • $_ENV — Environment variables
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — The previous error message
  • $HTTP_RAW_POST_DATA — Raw POST data
  • $http_response_header — HTTP response headers
  • $argc — The number of arguments passed to script
  • $argv — Array of arguments passed to script
引用定位
Superglobals
语言参考


Superglobals are built-in variables that are always available in all scopes

Predefined variables
$GLOBALS
Predefined variables
PHP 手册

Superglobals

Superglobals — Superglobals are built-in variables that are always available in all scopes

说明

Several predefined variables in PHP are "superglobals", which means they are available in all scopes throughout a script. There is no need to do global $variable; to access them within functions or methods.

These superglobal variables are:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

更新日志

版本 | 说明
4.1.0 | Superglobals were introduced to PHP.

注释

Note: Variable availability
By default, all of the superglobals are available but there are directives that affect this availability. For further information, refer to the documentation for variables_order.

Note: Dealing with register_globals
If the deprecated register_globals directive is set to on then the variables within will also be made available in the global scope of the script. For example, $_POST['foo'] would also exist as $foo.
For related information, see the FAQ titled "How does register_globals affect me?"

Note: Variable variables
Superglobals cannot be used as variable variables inside functions or class methods.

参见

  • variable scope
  • The variables_order directive
  • The filter extension

Predefined variables
$GLOBALS
Predefined variables


References all variables available in global scope

Superglobals
$_SERVER
Predefined variables
PHP 手册

$GLOBALS

$GLOBALS — References all variables available in global scope

说明

An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array.

范例

Example #1 $GLOBALS example

<?php
function test() {
    $foo = "local variable";

    echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
    echo '$foo in current scope: ' . $foo . "\n";
}

$foo = "Example content";
test();
?>

上例的输出类似于：

$foo in global scope: Example content
$foo in current scope: local variable

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

Note: Variable availability
Unlike all of the other superglobals, $GLOBALS has essentially always been available in PHP.

Superglobals
$_SERVER
Predefined variables


Server and execution environment information

$GLOBALS
$_GET
Predefined variables
PHP 手册

$_SERVER

$HTTP_SERVER_VARS [deprecated]

$_SERVER -- $HTTP_SERVER_VARS [deprecated] — Server and execution environment information

说明

$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here. That said, a large number of these variables are accounted for in the » CGI 1.1 specification, so you should be able to expect those.

$HTTP_SERVER_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_SERVER_VARS and $_SERVER are different variables and that PHP handles them as such)

Indices

You may or may not find any of the following elements in $_SERVER. Note that few, if any, of these will be available (or indeed have any meaning) if running PHP on the command line.

'PHP_SELF'
The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar. The __FILE__ constant contains the full path and filename of the current (i.e. included) file. If PHP is running as a command-line processor this variable contains the script name since PHP 4.3.0. Previously it was not available.
'argv'
Array of arguments passed to the script. When the script is run on the command line, this gives C-style access to the command line parameters. When called via the GET method, this will contain the query string.
'argc'
Contains the number of command line parameters passed to the script (if run on the command line).
'GATEWAY_INTERFACE'
What revision of the CGI specification the server is using; i.e. 'CGI/1.1'.
'SERVER_ADDR'
The IP address of the server under which the current script is executing.
'SERVER_NAME'
The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.
'SERVER_SOFTWARE'
Server identification string, given in the headers when responding to requests.
'SERVER_PROTOCOL'
Name and revision of the information protocol via which the page was requested; i.e. 'HTTP/1.0';
'REQUEST_METHOD'
Which request method was used to access the page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

Note: PHP script is terminated after sending headers (it means after producing any output without output buffering) if the request method was HEAD.

'REQUEST_TIME'
The timestamp of the start of the request. Available since PHP 5.1.0.
'QUERY_STRING'
The query string, if any, via which the page was accessed.
'DOCUMENT_ROOT'
The document root directory under which the current script is executing, as defined in the server's configuration file.
'HTTP_ACCEPT'
Contents of the Accept: header from the current request, if there is one.
'HTTP_ACCEPT_CHARSET'
Contents of the Accept-Charset: header from the current request, if there is one. Example: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Contents of the Accept-Encoding: header from the current request, if there is one. Example: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Contents of the Accept-Language: header from the current request, if there is one. Example: 'en'.
'HTTP_CONNECTION'
Contents of the Connection: header from the current request, if there is one. Example: 'Keep-Alive'.
'HTTP_HOST'
Contents of the Host: header from the current request, if there is one.
'HTTP_REFERER'
The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.
'HTTP_USER_AGENT'
Contents of the User-Agent: header from the current request, if there is one. This is a string denoting the user agent being which is accessing the page. A typical example is: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Among other things, you can use this value with get_browser() to tailor your page's output to the capabilities of the user agent.
'HTTPS'
Set to a non-empty value if the script was queried through the HTTPS protocol.

Note: Note that when using ISAPI with IIS, the value will be off if the request was not made through the HTTPS protocol.

'REMOTE_ADDR'
The IP address from which the user is viewing the current page.
'REMOTE_HOST'
The Host name from which the user is viewing the current page. The reverse dns lookup is based off the REMOTE_ADDR of the user.

Note: Your web server must be configured to create this variable. For example in Apache you'll need HostnameLookups On inside httpd.conf for it to exist. See also gethostbyaddr().

'REMOTE_PORT'
The port being used on the user's machine to communicate with the web server.
'SCRIPT_FILENAME'

The absolute pathname of the currently executing script.

Note: If a script is executed with the CLI, as a relative path, such as file.php or ../file.php, $_SERVER['SCRIPT_FILENAME'] will contain the relative path specified by the user.

'SERVER_ADMIN'
The value given to the SERVER_ADMIN (for Apache) directive in the web server configuration file. If the script is running on a virtual host, this will be the value defined for that virtual host.
'SERVER_PORT'
The port on the server machine being used by the web server for communication. For default setups, this will be '80'; using SSL, for instance, will change this to whatever your defined secure HTTP port is.
'SERVER_SIGNATURE'
String containing the server version and virtual host name which are added to server-generated pages, if enabled.
'PATH_TRANSLATED'
Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.

Note: As of PHP 4.3.2, PATH_TRANSLATED is no longer set implicitly under the Apache 2 SAPI in contrast to the situation in Apache 1, where it's set to the same value as the SCRIPT_FILENAME server variable when it's not populated by Apache. This change was made to comply with the CGI specification that PATH_TRANSLATED should only exist if PATH_INFO is defined. Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.

'SCRIPT_NAME'
Contains the current script's path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.
'REQUEST_URI'
The URI which was given in order to access this page; for instance, '/index.html'.
'PHP_AUTH_DIGEST'
When running under Apache as module doing Digest HTTP authentication this variable is set to the 'Authorization' header sent by the client (which you should then use to make the appropriate validation).
'PHP_AUTH_USER'
When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the username provided by the user.
'PHP_AUTH_PW'
When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the password provided by the user.
'AUTH_TYPE'
When running under Apache as module doing HTTP authenticated this variable is set to the authentication type.

更新日志

版本 | 说明
4.1.0 | Introduced $_SERVER that deprecated $HTTP_SERVER_VARS.

范例

Example #1 $_SERVER example

<?php
echo $_SERVER['SERVER_NAME'];
?>

上例的输出类似于：

www.example.com

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • The filter extension

$GLOBALS
$_GET
Predefined variables


HTTP GET variables

$_SERVER
$_POST
Predefined variables
PHP 手册

$_GET

$HTTP_GET_VARS [deprecated]

$_GET -- $HTTP_GET_VARS [deprecated] — HTTP GET variables

说明

An associative array of variables passed to the current script via the HTTP GET method.

$HTTP_GET_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_GET_VARS and $_GET are different variables and that PHP handles them as such)

更新日志

版本 | 说明
4.1.0 | Introduced $_GET that deprecated $HTTP_GET_VARS.

范例

Example #1 $_GET example

<?php
echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>

Assuming the user entered http://example.com/?name=Hannes

上例的输出类似于：

Hello Hannes!

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • Handling external variables
  • The filter extension

$_SERVER
$_POST
Predefined variables


HTTP POST variables

$_GET
$_FILES
Predefined variables
PHP 手册

$_POST

$HTTP_POST_VARS [deprecated]

$_POST -- $HTTP_POST_VARS [deprecated] — HTTP POST variables

说明

An associative array of variables passed to the current script via the HTTP POST method.

$HTTP_POST_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_POST_VARS and $_POST are different variables and that PHP handles them as such)

更新日志

版本 | 说明
4.1.0 | Introduced $_POST that deprecated $HTTP_POST_VARS.

范例

Example #1 $_POST example

<?php
echo 'Hello ' . htmlspecialchars($_POST["name"]) . '!';
?>

Assuming the user POSTed name=Hannes

上例的输出类似于：

Hello Hannes!

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • Handling external variables
  • The filter extension

$_GET
$_FILES
Predefined variables


HTTP File Upload variables

$_POST
$_REQUEST
Predefined variables
PHP 手册

$_FILES

$HTTP_POST_FILES [deprecated]

$_FILES -- $HTTP_POST_FILES [deprecated] — HTTP File Upload variables

说明

An associative array of items uploaded to the current script via the HTTP POST method.

$HTTP_POST_FILES contains the same initial information, but is not a superglobal. (Note that $HTTP_POST_FILES and $_FILES are different variables and that PHP handles them as such)

更新日志

版本 | 说明
4.1.0 | Introduced $_FILES that deprecated $HTTP_POST_FILES.

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • move_uploaded_file() - 将上传的文件移动到新位置
  • Handling File Uploads

$_POST
$_REQUEST
Predefined variables


HTTP Request variables

$_FILES
$_SESSION
Predefined variables
PHP 手册

$_REQUEST

$_REQUEST — HTTP Request variables

说明

An associative array that by default contains the contents of $_GET, $_POST 和 $_COOKIE.

更新日志

版本 | 说明
5.3.0 | Introduced request_order. This directive affects the contents of $_REQUEST.
4.3.0 | $_FILES information was removed from $_REQUEST.
4.1.0 | Introduced $_REQUEST.

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

Note: When running on the command line , this will not include the argv and argc entries; these are present in the $_SERVER array.

Note: The variables in $_REQUEST are provided to the script via the GET, POST, and COOKIE input mechanisms and therefore could be modified by the remote user and cannot be trusted. The presence and order of variables listed in this array is defined according to the PHP variables_order configuration directive.

参见

  • import_request_variables() - 将 GET／POST／Cookie 变量导入到全局作用域中
  • Handling external variables
  • The filter extension
$_FILES
$_SESSION
Predefined variables


Session variables

$_REQUEST
$_ENV
Predefined variables
PHP 手册

$_SESSION

$HTTP_SESSION_VARS [deprecated]

$_SESSION -- $HTTP_SESSION_VARS [deprecated] — Session variables

说明

An associative array containing session variables available to the current script. See the Session functions documentation for more information on how this is used.

$HTTP_SESSION_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_SESSION_VARS and $_SESSION are different variables and that PHP handles them as such)

更新日志

版本 | 说明
4.1.0 | Introduced $_SESSION that deprecated $HTTP_SESSION_VARS.

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • session_start() - Initialize session data

$_REQUEST
$_ENV
Predefined variables


Environment variables

$_SESSION
$_COOKIE
Predefined variables
PHP 手册

$_ENV

$HTTP_ENV_VARS [deprecated]

$_ENV -- $HTTP_ENV_VARS [deprecated] — Environment variables

说明

An associative array of variables passed to the current script via the environment method.

These variables are imported into PHP's global namespace from the environment under which the PHP parser is running. Many are provided by the shell under which PHP is running and different systems are likely running different kinds of shells, a definitive list is impossible. Please see your shell's documentation for a list of defined environment variables.

Other environment variables include the CGI variables, placed there regardless of whether PHP is running as a server module or CGI processor.

$HTTP_ENV_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_ENV_VARS and $_ENV are different variables and that PHP handles them as such)

更新日志

版本 | 说明
4.1.0 | Introduced $_ENV that deprecated $HTTP_ENV_VARS.

范例

Example #1 $_ENV example

<?php
echo 'My username is ' .$_ENV["USER"] . '!';
?>

Assuming "bjori" executes this script

上例的输出类似于：

My username is bjori!

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • getenv() - Gets the value of an environment variable
  • The filter extension

$_SESSION
$_COOKIE
Predefined variables


HTTP Cookies

$_ENV
$php_errormsg
Predefined variables
PHP 手册

$_COOKIE

$HTTP_COOKIE_VARS [deprecated]

$_COOKIE -- $HTTP_COOKIE_VARS [deprecated] — HTTP Cookies

说明

An associative array of variables passed to the current script via HTTP Cookies.

$HTTP_COOKIE_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_COOKIE_VARS and $_COOKIE are different variables and that PHP handles them as such)

更新日志

版本 | 说明
4.1.0 | Introduced $_COOKIE that deprecated $HTTP_COOKIE_VARS.

范例

Example #1 $_COOKIE example

<?php
echo 'Hello ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Assuming the "name" cookie has been set earlier

上例的输出类似于：

Hello Hannes!

注释

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

参见

  • setcookie() - Send a cookie
  • Handling external variables
  • The filter extension

$_ENV
$php_errormsg
Predefined variables


The previous error message

$_COOKIE
$HTTP_RAW_POST_DATA
Predefined variables
PHP 手册

$php_errormsg

$php_errormsg — The previous error message

说明

$php_errormsg is a variable containing the text of the last error message generated by PHP. This variable will only be available within the scope in which the error occurred, and only if the track_errors configuration option is turned on (it defaults to off).

Note: This variable is only available when track_errors is enabled in php.ini.

Warning

If a user defined error handler is set $php_errormsg is only set if the error handler returns FALSE

范例

Example #1 $php_errormsg example

<?php
@strpos();
echo $php_errormsg;
?>

上例的输出类似于：

Wrong parameter count for strpos()

$_COOKIE
$HTTP_RAW_POST_DATA
Predefined variables


Raw POST data

$php_errormsg
$http_response_header
Predefined variables
PHP 手册

$HTTP_RAW_POST_DATA

$HTTP_RAW_POST_DATA — Raw POST data

说明

$HTTP_RAW_POST_DATA contains the raw POST data. See always_populate_raw_post_data

$php_errormsg
$http_response_header
Predefined variables


HTTP response headers

$HTTP_RAW_POST_DATA
$argc
Predefined variables
PHP 手册

$http_response_header

$http_response_header — HTTP response headers

说明

The $http_response_header array is similar to the get_headers() function. When using the HTTP wrapper, $http_response_header will be populated with the HTTP response headers.

范例

Example #1 $http_response_header example

<?php
file_get_contents("http://example.com");
var_dump($http_response_header);
?>

上例的输出类似于：

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; charset=UTF-8"
}

$HTTP_RAW_POST_DATA
$argc
Predefined variables


The number of arguments passed to script

$http_response_header
$argv
Predefined variables
PHP 手册

$argc

$argc — The number of arguments passed to script

说明

Contains the number of arguments passed to the current script when running from the command line.

Note: The script's filename is always passed as an argument to the script, therefore the minimum value of $argc is 1.

Note: This variable is only available when register_argc_argv is enabled.

范例

Example #1 $argc example

<?php
var_dump($argc);
?>

When executing the example with: php script.php arg1 arg2 arg3

上例的输出类似于：

int(4)

$http_response_header
$argv
Predefined variables


Array of arguments passed to script

$argc
Predefined Exceptions
Predefined variables
PHP 手册

$argv

$argv — Array of arguments passed to script

说明

Contains an array of all the arguments passed to the script when running from the command line.

Note: The first argument is always the current script's filename, therefore $argv[0] is the script's name.

Note: This variable is only available when register_argc_argv is enabled.

范例

Example #1 $argv example

<?php
var_dump($argv);
?>

When executing the example with: php script.php arg1 arg2 arg3

上例的输出类似于：

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

$argc
Predefined Exceptions
Predefined variables


Predefined Exceptions

Table of Contents

  • Exception
  • ErrorException

See also the SPL Exceptions

$argv
Exception
语言参考


Exception

简介

Exception is the base class for all Exceptions.

Class synopsis

Exception
Exception {
/* Properties */
protected string $message ;
private string $string ;
protected int $code ;
protected string $file ;
protected int $line ;
private array $trace ;
/* Methods */
public __construct ([ string $message="" [, int $code=0 [, Exception $previous=NULL ]]] )
final public string getMessage ( void )
final public int getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
final public array getTrace ( void )
final public string getTraceAsString ( void )
public string __toString ( void )
final private void __clone ( void )
}

属性

message

The exception message

string

Internal Exception name

code

The Exception code

file

The filename where the exception was thrown

line

The line where the exception was thrown

trace

The stack trace

Table of Contents

  • Exception::__construct — Construct the exception
  • Exception::getMessage — Gets the Exception message
  • Exception::getCode — Gets the Exception code
  • Exception::getFile — Gets the file in which the exception occurred
  • Exception::getLine — Gets the line in which the exception occurred
  • Exception::getTrace — Gets the stack trace
  • Exception::getTraceAsString — Gets the stack trace as a string
  • Exception::__toString — String representation of the exception
  • Exception::__clone — Clone the exception
Predefined Exceptions
Exception::__construct
Predefined Exceptions


Construct the exception

Exception
Exception::getMessage
Exception
PHP 手册

Exception::__construct

(No version information available, might be only in CVS)

Exception::__construct — Construct the exception

说明

public Exception::__construct ([ string $message="" [, int $code=0 [, Exception $previous=NULL ]]] )

Constructs the Exception.

参数

message

The Exception message to throw.

code

The Exception code.

previous

The previous exception used for the exception chaining.

更新日志

版本 | 说明
5.3.0 | The previous parameter was added.

Exception
Exception::getMessage
Exception


Gets the Exception message

Exception::__construct
Exception::getCode
Exception
PHP 手册

Exception::getMessage

(PHP 5 >= 5.1.0)

Exception::getMessage — Gets the Exception message

说明

final public string Exception::getMessage ( void )

Returns the Exception message.

参数

This function has no parameters.

返回值

Returns the Exception message as a string.

范例

Example #1 Exception::getMessage() example

<?php
try {
    throw new Exception("Some error message");
} catch(Exception $e) {
    echo $e->getMessage();
}
?>

上例的输出类似于：

Some error message

Exception::__construct
Exception::getCode
Exception


Gets the Exception code

Exception::getMessage
Exception::getFile
Exception
PHP 手册

Exception::getCode

(PHP 5 >= 5.1.0)

Exception::getCode — Gets the Exception code

说明

final public int Exception::getCode ( void )

Returns the Exception code.

参数

This function has no parameters.

返回值

Returns the Exception code as a integer.

范例

Example #1 Exception::getCode() example

<?php
try {
    throw new Exception("Some error message", 30);
} catch(Exception $e) {
    echo "The exception code is: " . $e->getCode();
}
?>

上例的输出类似于：

The exception code is: 30

Exception::getMessage
Exception::getFile
Exception


Gets the file in which the exception occurred

Exception::getCode
Exception::getLine
Exception
PHP 手册

Exception::getFile

(PHP 5 >= 5.1.0)

Exception::getFile — Gets the file in which the exception occurred

说明

final public string Exception::getFile ( void )

Get the name of the file the exception was thrown from.

参数

This function has no parameters.

返回值

Returns the filename in which the exception was thrown.

范例

Example #1 Exception::getFile() example

<?php
try {
    throw new Exception;
} catch(Exception $e) {
    echo $e->getFile();
}
?>

上例的输出类似于：

/home/bjori/tmp/ex.php

Exception::getCode
Exception::getLine
Exception


Gets the line in which the exception occurred

Exception::getFile
Exception::getTrace
Exception
PHP 手册

Exception::getLine

(PHP 5 >= 5.1.0)

Exception::getLine — Gets the line in which the exception occurred

说明

final public int Exception::getLine ( void )

Returns line number where the exception was thrown.

参数

This function has no parameters.

返回值

Returns the line number where the exception was thrown.

范例

Example #1 Exception::getLine() example

<?php
try {
    throw new Exception("Some error message");
} catch(Exception $e) {
    echo "The exception was thrown on line: " . $e->getLine();
}
?>

上例的输出类似于：

The exception was thrown on line: 3

Exception::getFile
Exception::getTrace
Exception


Gets the stack trace

Exception::getLine
Exception::getTraceAsString
Exception
PHP 手册

Exception::getTrace

(PHP 5 >= 5.1.0)

Exception::getTrace — Gets the stack trace

说明

final public array Exception::getTrace ( void )

Returns the Exception stack trace.

参数

This function has no parameters.

返回值

Returns the Exception stack trace as an array.

范例

Example #1 Exception::getTrace() example

<?php
function test() {
 throw new Exception;
}

try {
 test();
} catch(Exception $e) {
 var_dump($e->getTrace());
}
?>

上例的输出类似于：

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Exception::getLine
Exception::getTraceAsString
Exception


Gets the stack trace as a string

Exception::getTrace
Exception::__toString
Exception
PHP 手册

Exception::getTraceAsString

(PHP 5 >= 5.1.0)

Exception::getTraceAsString — Gets the stack trace as a string

说明

final public string Exception::getTraceAsString ( void )

Returns the Exception stack trace as a string.

参数

This function has no parameters.

返回值

Returns the Exception stack trace as a string.

范例

Example #1 Exception::getTraceAsString() example

<?php
function test() {
    throw new Exception;
}

try {
    test();
} catch(Exception $e) {
    echo $e->getTraceAsString();
}
?>

上例的输出类似于：

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Exception::getTrace
Exception::__toString
Exception


String representation of the exception

Exception::getTraceAsString
Exception::__clone
Exception
PHP 手册

Exception::__toString

(PHP 5 >= 5.1.0)

Exception::__toString — String representation of the exception

说明

public string Exception::__toString ( void )

Returns the string representation of the exception.

参数

This function has no parameters.

返回值

Returns the string representation of the exception.

范例

Example #1 Exception::__toString() example

<?php
try {
    throw new Exception("Some error message");
} catch(Exception $e) {
    echo $e;
}
?>

上例的输出类似于：

exception 'Exception' with message 'Some error message' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Exception::getTraceAsString
Exception::__clone
Exception


Clone the exception

Exception::__toString
ErrorException
Exception
PHP 手册

Exception::__clone

(PHP 5 >= 5.1.0)

Exception::__clone — Clone the exception

说明

final private void Exception::__clone ( void )

Tries to clone the Exception, which results in Fatal error.

参数

This function has no parameters.

返回值

无返回值。

错误／异常

Exceptions are not clonable.

Exception::__toString
ErrorException
Exception


ErrorException

简介

An Error Exception.

Class synopsis

ErrorException
ErrorException extends Exception {
/* Properties */
protected int $severity ;
/* Methods */
public __construct ([ string $message [, int $code [, int $severity [, string $filename [, int $lineno ]]]]] )
final public int getSeverity ( void )
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

属性

severity

The severity of the exception

范例

Example #1 Turn all error messages into ErrorException.

<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");

/* Trigger exception */
strpos();
?>

上例的输出类似于：

Fatal error: Uncaught exception 'ErrorException' with message 'Wrong parameter count for strpos()' in /home/bjori/tmp/ex.php:8
Stack trace:
#0 [internal function]: exception_error_handler(2, 'Wrong parameter...', '/home/bjori/php...', 8, Array)
#1 /home/bjori/php/cleandocs/test.php(8): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 8

Table of Contents

  • ErrorException::__construct — Construct the exception
  • ErrorException::getSeverity — Gets the exception severity
Exception::__clone
ErrorException::__construct
Predefined Exceptions


Construct the exception

ErrorException
ErrorException::getSeverity
ErrorException
PHP 手册

ErrorException::__construct

(No version information available, might be only in CVS)

ErrorException::__construct — Construct the exception

说明

public ErrorException::__construct ([ string $message [, int $code [, int $severity [, string $filename [, int $lineno ]]]]] )

Constructs the Exception.

参数

message

The Exception message to throw.

code

The Exception code.

severity

The severity level of the exception.

filename

The filename where the exception is thrown.

lineno

The line number where the exception is thrown.

ErrorException
ErrorException::getSeverity
ErrorException


Gets the exception severity

ErrorException::__construct
Predefined Interfaces
ErrorException
PHP 手册

ErrorException::getSeverity

(PHP 5 >= 5.1.0)

ErrorException::getSeverity — Gets the exception severity

说明

final public int ErrorException::getSeverity ( void )

Returns the severity of the exception.

参数

This function has no parameters.

返回值

Returns the severity level of the exception.

范例

Example #1 ErrorException() example

<?php
try {
    throw new ErrorException("Exception message", 0, 75);
} catch(ErrorException $e) {
    echo "This exception severity is: " . $e->getSeverity();
}
?>

上例的输出类似于：

This exception severity is: 75

ErrorException::__construct
Predefined Interfaces
ErrorException


Predefined Interfaces

Table of Contents

  • The Traversable interface
  • The Iterator interface
  • The IteratorAggregate interface
  • The ArrayAccess interface
  • The Serializable interface
ErrorException::getSeverity
Traversable
语言参考


The Traversable interface

简介

Interface to detect if a class is traversable using foreach().

Abstract base interface that cannot be implemented alone. Instead it must be implemented by either IteratorAggregate or Iterator.

Note: Internal (built-in) classes that implement this interface can be used in a foreach() construct and do not need to implement IteratorAggregate or Iterator.

Note: This is an internal engine interface which cannot be implemented in PHP scripts. Either IteratorAggregate or Iterator must be used instead.

Class synopsis

Traversable
Traversable {
}

This interface has no methods, its only purpose is to be the base interface for all traversable classes.

Predefined Interfaces
Iterator
Predefined Interfaces


The Iterator interface

简介

Interface for external iterators or objects that can be iterated themselves internally.

Class synopsis

Iterator
Iterator implements Traversable {
/* Methods */
abstract public mixed current ( void )
abstract public scalar key ( void )
abstract public void next ( void )
abstract public void rewind ( void )
abstract public boolean valid ( void )
}

Example #1 Basic usage

This example demonstrates in which order methods are called when foreach()ing over an iterator.

<?php
class myIterator implements Iterator {
    private $position = 0;
    private $array = array(
        "firstelement",
        "secondelement",
        "lastelement",
    );

    public function __construct() {
        $this->position = 0;
    }

    function rewind() {
        var_dump(__METHOD__);
        $this->position = 0;
    }

    function current() {
        var_dump(__METHOD__);
        return $this->array[$this->position];
    }

    function key() {
        var_dump(__METHOD__);
        return $this->position;
    }

    function next() {
        var_dump(__METHOD__);
        ++$this->position;
    }

    function valid() {
        var_dump(__METHOD__);
        return isset($this->array[$this->position]);
    }
}

$it = new myIterator;

foreach($it as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

上例的输出类似于：

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "firstelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "lastelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"

Table of Contents

  • Iterator::current — Return the current element
  • Iterator::key — Return the key of the current element
  • Iterator::next — Move forward to next element
  • Iterator::rewind — Rewind the Iterator to the first element
  • Iterator::valid — Checks if current position is valid
Traversable
Iterator::current
Predefined Interfaces


Return the current element

Iterator
Iterator::key
Iterator
PHP 手册

Iterator::current

(No version information available, might be only in CVS)

Iterator::current — Return the current element

说明

abstract public mixed Iterator::current ( void )

Returns the current element.

参数

This function has no parameters.

返回值

Can return any type.

Iterator
Iterator::key
Iterator


Return the key of the current element

Iterator::current
Iterator::next
Iterator
PHP 手册

Iterator::key

(No version information available, might be only in CVS)

Iterator::key — Return the key of the current element

说明

abstract public scalar Iterator::key ( void )

Returns the key of the current element.

参数

This function has no parameters.

返回值

Returns scalar on success, integer 0 on failure.

错误／异常

Issues E_WARNING on failure.

Iterator::current
Iterator::next
Iterator


Move forward to next element

Iterator::key
Iterator::rewind
Iterator
PHP 手册

Iterator::next

(No version information available, might be only in CVS)

Iterator::next — Move forward to next element

说明

abstract public void Iterator::next ( void )

Moves the current position to the next element.

Note: This method is called after each foreach() loop.

参数

This function has no parameters.

返回值

Any returned value is ignored.

Iterator::key
Iterator::rewind
Iterator


Rewind the Iterator to the first element

Iterator::next
Iterator::valid
Iterator
PHP 手册

Iterator::rewind

(No version information available, might be only in CVS)

Iterator::rewind — Rewind the Iterator to the first element

说明

abstract public void Iterator::rewind ( void )

Rewinds back to the first element of the Iterator.

Note: This is the first method called when starting a foreach() loop. It will not be executed after foreach() loops.

参数

This function has no parameters.

返回值

Any returned value is ignored.

Iterator::next
Iterator::valid
Iterator


Checks if current position is valid

Iterator::rewind
IteratorAggregate
Iterator
PHP 手册

Iterator::valid

(No version information available, might be only in CVS)

Iterator::valid — Checks if current position is valid

说明

abstract public boolean Iterator::valid ( void )

This method is called after Iterator::rewind and Iterator::next to check if the current position is valid.

参数

This function has no parameters.

返回值

The return value will be casted to boolean and then evaluated. 如果成功则返回 TRUE，失败则返回 FALSE。

Iterator::rewind
IteratorAggregate
Iterator


The IteratorAggregate interface

简介

Interface to create an external Iterator.

Class synopsis

IteratorAggregate
IteratorAggregate implements Traversable {
/* Methods */
abstract public Traversable getIterator ( void )
}

Example #1 Basic usage

<?php
class myData implements IteratorAggregate {
    public $property1 = "Public property one";
    public $property2 = "Public property two";
    public $property3 = "Public property three";

    public function __construct() {
        $this->property4 = "last property";
    }

    public function getIterator() {
        return new ArrayIterator($this);
    }
}

$obj = new myData;

foreach($obj as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

上例的输出类似于：

string(9) "property1"
string(19) "Public property one"

string(9) "property2"
string(19) "Public property two"

string(9) "property3"
string(21) "Public property three"

string(9) "property4"
string(13) "last property"

Table of Contents

  • IteratorAggregate::getIterator — Retrieve an external iterator
Iterator::valid
IteratorAggregate::getIterator
Predefined Interfaces


Retrieve an external iterator

IteratorAggregate
ArrayAccess
IteratorAggregate
PHP 手册

IteratorAggregate::getIterator

(No version information available, might be only in CVS)

IteratorAggregate::getIterator — Retrieve an external iterator

说明

abstract public Traversable IteratorAggregate::getIterator ( void )

Returns an external iterator.

参数

This function has no parameters.

返回值

An instance of an object implementing Iterator or Traversable

错误／异常

Throws an Exception on failure.

IteratorAggregate
ArrayAccess
IteratorAggregate


The ArrayAccess interface

简介

Interface to provide accessing objects as arrays.

Class synopsis

ArrayAccess
ArrayAccess {
/* Methods */
abstract public boolean offsetExists ( string $offset )
abstract public mixed offsetGet ( string $offset )
abstract public void offsetSet ( string $offset , string $value )
abstract public void offsetUnset ( string $offset )
}

Example #1 Basic usage

<?php
class obj implements arrayaccess {
    private $container = array();
    public function __construct() {
        $this->container = array(
            "one"   => 1,
            "two"   => 2,
            "three" => 3,
        );
    }
    public function offsetSet($offset, $value) {
        $this->container[$offset] = $value;
    }
    public function offsetExists($offset) {
        return isset($this->container[$offset]);
    }
    public function offsetUnset($offset) {
        unset($this->container[$offset]);
    }
    public function offsetGet($offset) {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new obj;

var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);

?>

上例的输出类似于：

bool(true)
int(2)
bool(false)
string(7) "A value"

Table of Contents

  • ArrayAccess::offsetExists — Whether a offset exists
  • ArrayAccess::offsetGet — Offset to retrieve
  • ArrayAccess::offsetSet — Offset to set
  • ArrayAccess::offsetUnset — Offset to unset
IteratorAggregate::getIterator
ArrayAccess::offsetExists
Predefined Interfaces


Whether a offset exists

ArrayAccess
ArrayAccess::offsetGet
ArrayAccess
PHP 手册

ArrayAccess::offsetExists

(No version information available, might be only in CVS)

ArrayAccess::offsetExists — Whether a offset exists

说明

abstract public boolean ArrayAccess::offsetExists ( string $offset )

Whether or not an offset exists.

This method is executed when using isset() or empty() on objects implementing ArrayAccess.

Note: When using empty() ArrayAccess::offsetGet() will be called and checked if empty only if ArrayAccess::offsetExists() returns TRUE.

参数

offset

An offset to check for.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Note: The return value will be casted to boolean if non-boolean was returned.

范例

Example #1 ArrayAccess::offsetExists() example

<?php
class obj implements arrayaccess {
    public function offsetSet($offset, $value) {
        var_dump(__METHOD__);
    }
    public function offsetExists($var) {
        var_dump(__METHOD__);
        if ($var == "foobar") {
            return true;
        }
        return false;
    }
    public function offsetUnset($var) {
        var_dump(__METHOD__);
    }
    public function offsetGet($var) {
        var_dump(__METHOD__);
        return "value";
    }
}

$obj = new obj;

echo "Runs obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo "\nRuns obj::offsetExists() and obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo "\nRuns obj::offsetExists(), *not* obj:offsetGet() as there is nothing to get\n";
var_dump(empty($obj["foobaz"]));
?>

上例的输出类似于：

Runs obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Runs obj::offsetExists() and obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Runs obj::offsetExists(), *not* obj:offsetGet() as there is nothing to get
string(17) "obj::offsetExists"
bool(true)

ArrayAccess
ArrayAccess::offsetGet
ArrayAccess


Offset to retrieve

ArrayAccess::offsetExists
ArrayAccess::offsetSet
ArrayAccess
PHP 手册

ArrayAccess::offsetGet

(No version information available, might be only in CVS)

ArrayAccess::offsetGet — Offset to retrieve

说明

abstract public mixed ArrayAccess::offsetGet ( string $offset )

Returns the value at specified offset.

This method is executed when checking if offset is empty().

参数

offset

The offset to retrieve.

返回值

Can return all value types.

参见

  • ArrayAccess::offsetExists - Whether a offset exists

ArrayAccess::offsetExists
ArrayAccess::offsetSet
ArrayAccess


Offset to set

ArrayAccess::offsetGet
ArrayAccess::offsetUnset
ArrayAccess
PHP 手册

ArrayAccess::offsetSet

(No version information available, might be only in CVS)

ArrayAccess::offsetSet — Offset to set

说明

abstract public void ArrayAccess::offsetSet ( string $offset , string $value )

Assigns a value to the specified offset.

参数

offset

The offset to assign the value to.

value

The value to set.

返回值

无返回值。

ArrayAccess::offsetGet
ArrayAccess::offsetUnset
ArrayAccess


Offset to unset

ArrayAccess::offsetSet
Serializable
ArrayAccess
PHP 手册

ArrayAccess::offsetUnset

(No version information available, might be only in CVS)

ArrayAccess::offsetUnset — Offset to unset

说明

abstract public void ArrayAccess::offsetUnset ( string $offset )

Unsets an offset.

Note: This method will not be called when type-casting to (unset)

参数

offset

The offset to unset.

返回值

无返回值。

ArrayAccess::offsetSet
Serializable
ArrayAccess


The Serializable interface

简介

Interface for customized serializing.

Classes that implement this interface no longer support __sleep() and __wakeup(). The method serialize is called whenever an instance needs to be serialized. This does not invoke __destruct() or has any other side effect unless programmed inside the method. When the data is unserialized the class is known and the appropriate unserialize() method is called as a constructor instead of calling __construct(). If you need to execute the standard constructor you may do so in the method.

Class synopsis

Serializable
Serializable {
/* Methods */
abstract public string serialize ( void )
abstract public mixed unserialize ( string $serialized )
}

Example #1 Basic usage

<?php
class obj implements Serializable {
    private $data;
    public function __construct() {
        $this->data = "My private data";
    }
    public function serialize() {
        return serialize($this->data);
    }
    public function unserialize($data) {
        $this->data = unserialize($data);
    }
    public function getData() {
        return $this->data;
    }
}

$obj = new obj;
$ser = serialize($obj);

$newobj = unserialize($ser);

var_dump($newobj->getData());
?>

上例的输出类似于：

string(15) "My private data"

Table of Contents

  • Serializable::serialize — String representation of object
  • Serializable::unserialize — Constructs the object
ArrayAccess::offsetUnset
Serializable::serialize
Predefined Interfaces


String representation of object

Serializable
Serializable::unserialize
Serializable
PHP 手册

Serializable::serialize

(No version information available, might be only in CVS)

Serializable::serialize — String representation of object

说明

abstract public string Serializable::serialize ( void )

Should return the string representation of the object.

Note: This method acts as the destructor of the object. The __destruct() method will not be called after this method.

参数

This function has no parameters.

返回值

Returns the string representation of the object or NULL

错误／异常

Throws Exception when returning other types then strings and NULL

参见

  • __sleep()

Serializable
Serializable::unserialize
Serializable


Constructs the object

Serializable::serialize
Context options and parameters
Serializable
PHP 手册

Serializable::unserialize

(No version information available, might be only in CVS)

Serializable::unserialize — Constructs the object

说明

abstract public mixed Serializable::unserialize ( string $serialized )

Called during unserialization of the object.

Note: This method acts as the constructor of the object. The __construct() method will not be called after this method.

参数

serialized

The string representation of the object.

返回值

Returns the original value unserialized.

参见

  • __wakeup()

Serializable::serialize
Context options and parameters
Serializable


Context options and parameters

PHP offers various context options and parameters which can be used with all
filesystem and stream wrappers. The context is created with
stream_context_create(). Options are set with
stream_context_set_option() and parameters with
stream_context_set_params().

Table of Contents

  • Socket context options — Socket context option listing
  • HTTP context options — HTTP context option listing
  • FTP context options — FTP context option listing
  • SSL context options — SSL context option listing
  • CURL context options — CURL context option listing
  • Phar context options — Phar context option listing
  • Context parameters — Context parameter listing
Serializable::unserialize
Socket context options
语言参考


Socket context option listing

Context options and parameters
HTTP context options
Context options and parameters
PHP 手册

Socket context options

Socket context options — Socket context option listing

说明

Socket context options are available for all wrappers that work over sockets, like tcp, http and ftp.

Options

bindto

Used to specify the IP address (either IPv4 or IPv6) and/or the port number that PHP will use to access the network. The syntax is ip:port. Setting the IP or the port to 0 will let the system choose the IP and/or port.

Note: As FTP creates two socket connections during normal operation, the port number cannot be specified using this option.

更新日志

版本 | 说明
5.1.0 | Added bindto.

范例

Example #1 Basic bindto usage example

<?php
// connect to the internet using the '192.168.0.100' IP
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
    ),
);

// connect to the internet using the '192.168.0.100' IP and port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:7000',
    ),
);

// connect to the internet using port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '0:7000',
    ),
);

// create the context...
$context = stream_context_create($opts);

// ...and use it to fetch the data
echo file_get_contents('http://www.example.com', false, $context);

?>

Context options and parameters
HTTP context options
Context options and parameters


HTTP context option listing

Socket context options
FTP context options
Context options and parameters
PHP 手册

HTTP context options

HTTP context options — HTTP context option listing

说明

Context options for http:// and https:// transports.

Options

method string

GET, POST, or any other HTTP method supported by the remote server.

Defaults to GET.

header string

Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:).

user_agent string

Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above.

By default the user_agent php.ini setting is used.

content string

Additional data to be sent after the headers. Typically used with POST or PUT requests.

proxy string

URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100).

request_fulluri boolean

When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it.

Defaults to FALSE.

max_redirects integer

The max number of redirects to follow. Value 1 or less means that no redirects are followed.

Defaults to 20.

protocol_version float

HTTP protocol version.

Defaults to 1.0.

timeout float

Read timeout in seconds, specified by a float (e.g. 10.5).

By default the default_socket_timeout php.ini setting is used.

ignore_errors boolean

Fetch the content even on failure status codes.

Defaults to FALSE

更新日志

版本 | 说明
5.3.0 | Added ignore_errors .
5.2.1 | Added timeout .
5.1.0 | Added HTTPS proxying through HTTP proxies.
5.1.0 | Added max_redirects .
5.1.0 | Added protocol_version .

范例

Example #1 Fetch a page and send POST data

<?php

$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

注释

Note: Underlying socket stream context options
Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.

参见

  • Socket context options
  • SSL context options

Socket context options
FTP context options
Context options and parameters


FTP context option listing

HTTP context options
SSL context options
Context options and parameters
PHP 手册

FTP context options

FTP context options — FTP context option listing

说明

Context options for ftp:// and ftps:// transports.

Options

overwrite boolean

Allow overwriting of already existing files on remote server. Applies to write mode (uploading) only.

Defaults to FALSE.

resume_pos integer

File offset at which to begin transfer. Applies to read mode (downloading) only.

Defaults to 0 (Beginning of File).

proxy string

Proxy FTP request via http proxy server. Applies to file read operations only. Ex: tcp://squid.example.com:8000.

更新日志

版本 | 说明
5.1.0 | Added proxy .
5.0.0 | Added overwrite and resume_pos .

注释

Note: Underlying socket stream context options
Additional context options may be supported by the underlying transport For ftp:// streams, refer to context options for the tcp:// transport. For ftps:// streams, refer to context options for the ssl:// transport.

参见

  • Socket context options
  • SSL context options

HTTP context options
SSL context options
Context options and parameters


SSL context option listing

FTP context options
CURL context options
Context options and parameters
PHP 手册

SSL context options

SSL context options — SSL context option listing

说明

Context options for ssl:// and tls:// transports.

Options

verify_peer boolean

Require verification of SSL certificate used.

Defaults to FALSE.

allow_self_signed boolean

Allow self-signed certificates.

Defaults to FALSE

cafile string

Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer.

capath string

If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory.

local_cert string

Path to local certificate file on filesystem. It must be a PEM encoded file which contains your certificate and private key. It can optionally contain the certificate chain of issuers.

passphrase string

Passphrase with which your local_cert file was encoded.

CN_match string

Common Name we are expecting. PHP will perform limited wildcard matching. If the Common Name does not match this, the connection attempt will fail.

verify_depth integer

Abort if the certificate chain is too deep.

Defaults to no verification.

ciphers string

Sets the list of available ciphers. The format of the string is described in » ciphers(1).

Defaults to DEFAULT.

capture_peer_cert boolean

If set to TRUE a peer_certificate context option will be created containing the peer certificate.

capture_peer_chain boolean

If set to TRUE a peer_certificate_chain context option will be created containing the certificate chain.

更新日志

版本 | 说明
5.0.0 | Added capture_peer_cert , capture_peer_chain and ciphers .

注释

Note: Because ssl:// is the underlying transport for the https:// and ftps:// wrappers, any context options which apply to ssl:// also apply to https:// and ftps://.

参见

  • Socket context options

FTP context options
CURL context options
Context options and parameters


CURL context option listing

SSL context options
Phar context options
Context options and parameters
PHP 手册

CURL context options

CURL context options — CURL context option listing

说明

CURL context options are available when the CURL extension was compiled using the --with-curlwrappers configure option.

Options

method string

GET, POST, or any other HTTP method supported by the remote server.

Defaults to GET.

header string

Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:).

user_agent string

Value to send with User-Agent: header.

By default the user_agent php.ini setting is used.

content string

Additional data to be sent after the headers. This option is not used for GET or HEAD requests.

proxy string

URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100).

max_redirects integer

The max number of redirects to follow. Value 1 or less means that no redirects are followed.

Defaults to 20.

curl_verify_ssl_host boolean

Verify the host.

Defaults to FALSE

Note: This option is available for both the http and ftp protocol wrappers.

curl_verify_ssl_peer boolean

Require verification of SSL certificate used.

Defaults to FALSE

Note: This option is available for both the http and ftp protocol wrappers.

范例

Example #1 Fetch a page and send POST data

<?php

$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

参见

  • Socket context options

SSL context options
Phar context options
Context options and parameters


Phar context option listing

CURL context options
Context parameters
Context options and parameters
PHP 手册

Phar context options

Phar context options — Phar context option listing

说明

Context options for phar:// wrapper.

Options

compress int

One of Phar compression constants.

metadata mixed

Phar metadata. See Phar::setMetadata().

参见

  • Phar context options
  • Phar stream wrapper

CURL context options
Context parameters
Context options and parameters


Context parameter listing

Phar context options
安全
Context options and parameters
PHP 手册

Context parameters

Context parameters — Context parameter listing

说明

These parameters can be set on a context using the stream_context_set_params() function.

Options

notification callback

A callback to be called when an event occurs on a stream.

See stream_notification_callback() for more details.

Phar context options
安全
Context options and parameters


安全

  • 简介
  • 总则
  • 以 CGI 模式安装时
    • 可能受到的攻击
    • 情形一：只运行公开的文件
    • 情形二：使用 --enable-force-cgi-redirect 选项
    • 情形三：设置 doc_root 或 user_dir
    • 情形四：PHP 解释器放在 web 目录以外
  • 以 Apache 模块安装时
  • 文件系统安全
    • Null 字符问题
  • 数据库安全
    • 设计数据库
    • 连接数据库
    • 加密存储模型
    • SQL 注入
  • 错误报告
  • 使用 Register Globals
  • 用户提交的数据
  • 魔术引号
    • 什么是魔术引号
    • 为什么要用魔术引号
    • 为什么不用魔术引号
    • 关闭魔术引号
  • 隐藏 PHP
  • 保持更新
Context parameters
简介


简介

PHP 作为一种强大的语言，无论是以模块还是 CGI 的方式安装，它的解释器都可以在服务器上访问文件、运行命令以及创建网络连接等。这些功能也许会给服务器添加很多不安全因素，但是只要正确地安装和配置 PHP，以及编写安全的代码，那么 PHP 相对于 Perl 和 C 来说，是能创建出更安全的 CGI 程序的。而且，也可以在可用性和安全性之间找到一个很好的平衡点。

PHP 可能会被用在很多不同的方面，因此，PHP 内置的选项以方便用户对其进行配置。虽然众多的选项可以使 PHP 完成很多工作，但是对这些选项的设定以及对服务器的配置很可能会产生安全问题。

PHP 的选项与其语法一样，具有很高的灵活性。使用 PHP，可以在只有 shell 用户权限的环境下创建完善的服务器端程序，或者在被严格限制环境下使用它来完成服务器端包含（Server-Side Includes）而无需承但太大的风险。如何建立这样一种环境，其安全性如何，很大程度上取决于 PHP 的开发者。

本章以一些常规的安全建议作开头，讲述如何在不同的环境下尽可能地提高安全性，以及介绍对于不同安全级别的一些编程原则。

安全
总则
安全


总则

绝对安全的系统是不存在的，因此安全业界常用的方法有助于平衡可用性和风险。对用户提交的每一个变量都进行双重验证可能是一个很负责任的行为，但会导致用户必须花很多时间去填写一张复杂无比的表格，从而迫使某些用户尝试绕过安全机制。

最好的安全机制应该能在不防碍用户，并且不过多地增加开发难度的情况下做到能满足需求。实际上，一些安全问题往往会发生在这种过度强化安全机制的系统上。

不要忘记著名的等强原则：一个系统的的强度是由它最薄弱的环节决定的（译者注：相当于木桶原理）。如果所有的事务都基于时间、地点、事务种类进行详细的记录，而用户验证却只依靠一个 cookie，那么用户所对应的事务记录的可信度就被大大剥弱了。

调试代码的时候一定要记住，就算是一个简单的页面也很难对所有可能发生的情况进行检测：对你不满的雇员不一定会输入如你所愿的东西，黑客也有足够的时间研究你的系统，当然，你的宠物猫也会跳到你的键盘上。这就是为什么必须检查所有的代码，去发现哪里可以引入不正当的数据，然后对代码改进、简化或者增强。

互联网上充满了为了成名而破坏你的代码、攻击你的网站并输入不正当数据的人，总之他们会使你的生活充满乐趣。无论是大网站还是小网站，只要能和互联网连接，就会成为一个目标。很多黑客程序并不理会网站的大小，只会机械地扫描 IP 地址并找寻受害者。我们希望那个不要是你。

简介
以 CGI 模式安装时
安全


以 CGI 模式安装时

Table of Contents

  • 可能受到的攻击
  • 情形一：只运行公开的文件
  • 情形二：使用 --enable-force-cgi-redirect 选项
  • 情形三：设置 doc_root 或 user_dir
  • 情形四：PHP 解释器放在 web 目录以外
总则
可能受到的攻击
安全


可能受到的攻击

如果不想把 PHP 嵌入到服务器端软件（如 Apache）作为一个模块安装的话，可以选择以 CGI 的模式安装。或者把 PHP 用于不同的 CGI 封装以便为代码创建安全的 chroot 和 setuid 环境。这种安装方式通常会把 PHP 的可执行文件安装到 web 服务器的 cgi-bin 目录。CERT 建议书 » CA-96.11 建议不要把任何的解释器放到 cgi-bin 目录。尽管 PHP 可以作为一个独立的解释器，但是它的设计使它可以防止下面类型的攻击：

  • 访问系统文件：http://my.host/cgi-bin/php?/etc/passwd 在 URL 请求的问号（?）后面的信息会传给 CGI 接口作为命名行的参数。其它的解释器会在命令行中打开并执行第一个参数所指定的文件。 但是，以 CGI 模式安装的 PHP 解释器被调用时，它会拒绝解释这些参数。
  • 访问服务器上的任意目录：http://my.host/cgi-bin/php/secret/doc.html 好像上面这种情况，PHP 解释器所在目录后面的 URL 信息 /secret/doc.html 将会例行地传给 CGI 程序并进行解释。通常一些 web 服务器的会将它重定向到页面，如 http://my.host/secret/script.php。如果是这样的话，某些服务器会先检查用户访问 /secret 目录的权限，然后才会创建 http://my.host/cgi-bin/php/secret/script.php 上的页面重定向。不幸的是，很多服务器并没有检查用户访问 /secret/script.php 的权限，只检查了 /cgi-bin/php 的权限，这样任何能访问 /cgi-bin/php 的用户就可以访问 web 目录下的任意文件了。 在 PHP 里，编译时配置选项 --enable-force-cgi-redirect 以及运行时配置指令 doc_root 和 user_dir 都可以为服务器上的文件和目录添加限制，用于防止这类攻击。下面将对各个选项的设置进行详细讲解。
以 CGI 模式安装时
情形一：只运行公开的文件
以 CGI 模式安装时


情形一：只运行公开的文件

如果 web 服务器中所有内容都受到密码或 IP 地址的访问限制，就不需要设置这些选项。如果 web 服务器不支持重定向，或者 web 服务器不能和 PHP 通信而使访问请求变得更为安全，可以在 configure 脚本中指定 --enable-force-cgi-redirect 选项。除此之外，还要确认 PHP 程序不依赖其它方式调用，比如通过直接的 http://my.host/cgi-bin/php/dir/script.php 访问或通过重定向访问 http://my.host/dir/script.php。

在Apache中，重定向可以使用 AddHandler 和 Action 语句来设置，请看下一节。

可能受到的攻击
情形二：使用 --enable-force-cgi-redirect 选项
以 CGI 模式安装时


情形二：使用 --enable-force-cgi-redirect 选项

此编译选项可以防止任何人通过如 http://my.host/cgi-bin/php/secretdir/script.php 这样的 URL 直接调用 PHP。PHP 在此模式下只会解析已经通过了 web 服务器的重定向规则的 URL。

通常 Apache 中的重定向设置可以通过以下指令完成：

Action php-script /cgi-bin/php
AddHandler php-script .php

此选项只在 Apache 下进行过测试，并且要依赖于 Apache 在重定向操作中所设置的非标准 CGI 环境变量 REDIRECT_STATUS。如果 web 服务器不支持任何方式能够判断请求是直接的还是重定向的，就不能使用这个选项，而应该用其它方法。请看下一节。

情形一：只运行公开的文件
情形三：设置 doc_root 或 user_dir
以 CGI 模式安装时


情形三：设置 doc_root 或 user_dir

在 web 服务器的主文档目录中包含动态内容如脚本和可执行程序有时被认为是一种不安全的实践。如果因为配置上的错误而未能执行脚本而作为普通 HTML 文档显示，那就可能导致知识产权或密码资料的泄露。所以很多系统管理员都会专门设置一个只能通过 PHP CGI 来访问的目录，这样该目录中的内容只会被解析而不会原样显示出来。

对于前面所说无法判断是否重定向的情况，很有必要在主文档目录之外建立一个专用于脚本的 doc_root 目录。

可以通过配置文件内的 doc_root 或设置环境变量 PHP_DOCUMENT_ROOT 来定义 PHP 脚本主目录。如果设置了该项，那么 PHP 就只会解释 doc_root 目录下的文件，并确保目录外的脚本不会被 PHP 解释器执行（下面所说的 user_dir 除外）。

另一个可用的选项就是 user_dir。当 user_dir 没有设置的时候，doc_root 就是唯一能控制在哪里打开文件的选项。访问如 http://my.host/~user/doc.php 这个 URL 时，并不会打开用户主目录下文件，而只会执行 doc_root 目录下的 ~user/doc.php（这个子目录以 [~] 作开头）。

如果设置了 user_dir，例如 public_php，那么像 http://my.host/~user/doc.php 这样的请求将会执行用户主目录下的 public_php 子目录下的 doc.php 文件。假设用户主目录的绝对路径是 /home/user，那么被执行文件将会是 /home/user/public_php/doc.php。

user_dir 的设置与 doc_root 无关，所以可以分别控制 PHP 脚本的主目录和用户目录。

情形二：使用 --enable-force-cgi-redirect 选项
情形四：PHP 解释器放在 web 目录以外
以 CGI 模式安装时


情形四：PHP 解释器放在 web 目录以外

一个非常安全的做法就是把 PHP 解释器放在 web 目录外的地方，比如说 /usr/local/bin。这样做唯一不便的地方就是必须在每一个包含 PHP 代码的文件的第一行加入如下语句：

#!/usr/local/bin/php

还要将这些文件的属性改成可执行。也就是说，要像处理用 Perl 或 sh 或其它任何脚本语言写的 CGI 脚本一样，使用以 #! 开头的 shell-escape 机制来启动它们。

在这种情况下，要使 PHP 能正确处理 PATH_INFO 和 PATH_TRANSLATED 等变量的话，在编译 PHP 解释器时必须加入 --enable-discard-path 参数。

情形三：设置 doc_root 或 user_dir
以 Apache 模块安装时
以 CGI 模式安装时


以 Apache 模块安装时

当 PHP 以 Apache 模块方式安装时，它将继承 Apache 用户（通常为“nobody”）的权限。这对安全和认证有一些影响。比如，如果用 PHP 来访问数据库，除非数据库有自己的访问控制，否则就要使“nobody”用户可以访问数据库。这意味着恶意的脚本在不用提供用户名和密码时就可能访问和修改数据库。一个 web Spider 也完全有可能偶然发现数据库的管理页面，并且删除所有的数据库。可以通过 Apache 认证来避免此问题，或者用 LDAP、.htaccess 等技术来设计自己的防问模型，并把这些代码作为 PHP 脚本的一部份。

通常，一但安全性达到可以使 PHP 用户（这里也就是 Apache 用户）承担的风险极小的程度时候，可能 PHP 已经到了阻止向用户目录写入任何文件或禁止访问和修改数据库的地步了。这就是说，无论是正常的文件还是非正常的文件，无论是正常的数据库事务来是恶意的请求，都会被拒之门外。

一个常犯的对安全性不利的错误就是让 Apache 拥有 root 权限，或者通过其它途径斌予 Apache 更强大的功能。

把 Apache 用户的权限提升为 root 是极度危险的做法，而且可能会危及到整个系统的安全。所以除非是安全专家，否则决不要考虑使用 su，chroot 或者以 root 权限运行。

除此之外还有一些比较简单的解决方案。比如说可以使用 open_basedir 来限制哪些目录可以被 PHP 使用。也可以设置 Apache 的专属区域，从而把所有的 web 活动都限制到非用户和非系统文件之中。

情形四：PHP 解释器放在 web 目录以外
文件系统安全
安全


文件系统安全

Table of Contents

  • Null 字符问题

PHP 遵从大多数服务器系统中关于文件和目录权限的安全机制。这就使管理员可以控制哪些文件在文件系统内是可读的。必须特别注意的是全局的可读文件，并确保每一个有权限的用户对这些文件的读取动作都是安全的。

PHP 被设计为以用户级别来访问文件系统，所以完全有可能通过编写一段 PHP 代码来读取系统文件如 /etc/passwd，更改网络连接以及发送大量打印任务等等。因此必须确保 PHP 代码读取和写入的是合适的文件。

请看下面的代码，用户想要删除自己主目录中的一个文件。假设此情形是通过 web 界面来管理文件系统，因此 Apache 用户有权删除用户目录下的文件。

Example #1 不对变量进行安全检查会导致……

<?php
// 从用户目录中删除指定的文件
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>

既然 username 和 filename 变量可以通过用户表单来提交，那就可以提交别人的用户名和文件名，甚至可以删掉本来不应该让他们删除的文件。这种情况下，就要考虑其它方式的认证。想想看如果提交的变量是“../etc/”和“passwd”会发生什么。上面的代码就等同于：

Example #2 ……文件系统攻击

<?php
// 删除硬盘中任何 PHP 有访问权限的文件。如果 PHP 有 root 权限：
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir  = "/home/$username"; // "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "The file has been deleted!";
?>

有两个重要措施来防止此类问题。

  • 只给 PHP 的 web 用户很有限的权限。
  • 检查所有提交上来的变量。

下面是改进的脚本：

Example #3 更安全的文件名检查

<?php
// 删除硬盘中 PHP 有权访问的文件
$username = $_SERVER['REMOTE_USER']; // 使用认证机制
$userfile = basename($_POST['user_submitted_filename']);
$homedir = "/home/$username";

$filepath = "$homedir/$userfile";

if (file_exists($filepath) && unlink($filepath)) {
    $logstring = "Deleted $filepath\n";
} else {
    $logstring = "Failed to delete $filepath\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite ($fp, $logstring);
fclose($fp);

echo htmlentities($logstring, ENT_QUOTES);
?>

然而，这样做仍然是有缺陷的。如果认证系统允许用户建立自己的登录用户名，而用户选择用“../etc/”作为用户名，系统又一次沦陷了。所以，需要加强检查：

Example #4 更安全的文件名检查

<?php
$username = $_SERVER['REMOTE_USER']; // 使用认证机制
$userfile     = $_POST['user_submitted_filename'];
$homedir = "/home/$username";

$filepath     = "$homedir/$userfile";
if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
    die("Bad username/filename");
}
//后略……
?>

根据操作系统的不同，存在着各种各样需要注意的文件，包括联系到系统的设备（/dev/ 或者 COM1）、配置文件（/ect/ 文件和 .ini文件）、常用的存储区域（/home/ 或者 My Documents）等等。由于此原因，建立一个策略禁止所有权限而只开放明确允许的通常更容易些。

以 Apache 模块安装时
Null 字符问题
安全


Null 字符问题

由于 PHP 的文件系统操作是基于 C 语言的函数的，所以它可能会以您意想不到的方式处理 Null 字符。 Null字符在 C 语言中用于标识字符串结束，一个完整的字符串是从其开头到遇见 Null 字符为止。 以下代码演示了类似的攻击：

Example #1 会被 Null 字符问题攻击的代码

<?php
$file = $_GET['file']; // "../../etc/passwd\0"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
    // file_exists will return true as the file /home/wwwrun/../../etc/passwd exists
    include '/home/wwwrun/'.$file.'.php';
    // the file /etc/passwd will be included
}
?>

因此，任何用于操作文件系统的字符串（译注：特别是程序外部输入的字符串）都必须经过适当的检查。以下是上述例子的改进版本：

Example #2 验证输入的正确做法

<?php
$file = $_GET['file'];

// 对字符串进行白名单检查
switch ($file) {
    case 'main':
    case 'foo':
    case 'bar':
        include '/home/wwwrun/include/'.$file.'.php';
        break;
    default:
        include '/home/wwwrun/include/main.php';
}
?>
文件系统安全
数据库安全
文件系统安全


数据库安全

Table of Contents

  • 设计数据库
  • 连接数据库
  • 加密存储模型
  • SQL 注入

今时今日，数据库系统已经成为各个动态网站上 web 应用程序的重要组成部分。由于非常敏感和机密的数据有可能保存在数据库中，所以对数据库实施保护就显得尤为重要了。

要从数据库中提取或者存入数据，就必须经过连接数据库、发送一条合法查询、获取结果、关闭连接等步骤。目前，能完成这一系列动作的最常用的查询语言是结构化查询语言 Structured Query Language (SQL)。可以看看攻击者是如何篡改 SQL 查询语句的。

PHP 本身并不能保护数据库的安全。下面的章节只是讲述怎样用 PHP 脚本对数据库进行基本的访问和操作。

记住一条简单的原则：深入防御。保护数据库的措施越多，攻击者就越难获得和使用数据库内的信息。正确地设计和应用数据库可以减少被攻击的担忧。

Null 字符问题
设计数据库
安全


设计数据库

第一步一般都是创建数据库，除非是使用第三方的数据库服务。当创建一个数据库的时候，会指定一个所有者来执行和新建语句。通常，只有所有者（或超级用户）才有权对数据库中的对象进行任意操作。如果想让其他用户使用，就必须赋予他们权限。

应用程序永远不要使用数据库所有者或超级用户帐号来连接数据库，因为这些帐号可以执行任意的操作，比如说修改数据库结构（例如删除一个表）或者清空整个数据库的内容。

应该为程序的每个方面创建不同的数据库帐号，并赋予对数据库对象的极有限的权限。仅分配给能完成其功能所需的权限，避免同一个用户可以完成另一个用户的事情。这样即使攻击者利用程序漏洞取得了数据库的访问权限，也最多只能做到和该程序一样的影响范围。

鼓励用户不要把所有的事务逻辑都用 web 应用程序（即用户的脚本）来实现。最好用视图（view）、触发器（trigger）或者规则（rule）在数据库层面完成。当系统升级的时候，需要为数据库开辟新的接口，这时就必须重做所有的数据库客户端。除此之外，触发器还可以透明和自动地处理字段，并在调试程序和跟踪事实时提供有用的信息。

数据库安全
连接数据库
数据库安全


连接数据库

把连接建立在 SSL 加密技术上可以增加客户端和服务器端通信的安全性，或者 SSH 也可以用于加密客户端和数据库之间的连接。如果使用了这些技术的话，攻击者要监视服务器的通信或者得到数据库的信息是很困难的。

设计数据库
加密存储模型
数据库安全


加密存储模型

SSL/SSH 能保护客户端和服务器端交换的数据，但 SSL/SSH 并不能保护数据库中已有的数据。SSL 只是一个加密网络数据流的协议。

如果攻击者取得了直接访问数据库的许可（绕过 web 服务器），敏感数据就可能暴露或者被滥用，除非数据库自己保护了这些信息。对数据库内的数据加密是减少这类风险的有效途径，但是只有很少的数据库提供这些加密功能。

对于这个问题，有一个简单的解决办法，就是创建自己的加密机制，然后把它用在 PHP 程序内。PHP 有几个扩展库可以完成这个工作，比如说 Mcrypt 和 Mhash 等，它们包含多种加密运算法则。脚本在插入数据库之前先把数据加密，以后提取出来时再解密。有关加密如何工作的例子请参考相关手册。

对某些真正隐蔽的数据，如果不需要以明文的形式存在（即不用显示），可以考虑用散列算法。使用散列算法最常见的例子就是把密码经过 MD5 加密后的散列存进数据库来代替原来的明文密码。参见 crypt() 和 md5()。

Example #1 对密码字段进行散列加密

<?php

// 存储密码散列
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username), md5($password));
$result = pg_query($connection, $query);

// 发送请求来验证用户密码
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            pg_escape_string($username), md5($password));
$result = pg_query($connection, $query);

if (pg_num_rows($result) > 0) {
    echo 'Welcome, $username!';
} else {
    echo 'Authentication failed for $username.';
}

?>
连接数据库
SQL 注入
数据库安全


SQL 注入

很多 web 开发者没有注意到 SQL 查询是可以被篡改的，因而把 SQL 查询当作可信任的命令。殊不知道，SQL 查询可以绕开访问控制，从而绕过身份验证和权限检查。更有甚者，有可能通过 SQL 查询去运行主机操作系统级的命令。

直接 SQL 命令注入就是攻击者常用的一种创建或修改已有 SQL 语句的技术，从而达到取得隐藏数据，或覆盖关键的值，甚至执行数据库主机操作系统命令的目的。这是通过应用程序取得用户输入并与静态参数组合成 SQL 查询来实现的。下面将会给出一些真实的例子。

由于在缺乏对输入的数据进行验证，并且使用了超级用户或其它有权创建新用户的数据库帐号来连接，攻击者可以在数据库中新建一个超级用户。

Example #1 一段实现数据分页显示的代码……也可以被用作创建一个超级用户（PostgreSQL系统）。

<?php

$offset = $argv[0]; // 注意，没有输入验证！
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);

?>

一般的用户会点击 $offset 已被斌值的“上一页”、“下一页”的链接。原本代码只会认为 $offset 是一个数值。然而，如果有人尝试把以下语句先经过 urlencode() 处理，然后加入URL中的话：

0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

那么他就可以创建一个超级用户了。注意那个 0; 只不过是为了提供一个正确的偏移量以便补充完整原来的查询，使它不要出错而已。

Note: -- 是 SQL 的注释标记，一般可以使用来它告诉 SQL 解释器忽略后面的语句。

对显示搜索结果的页面下手是一个能得到密码的可行办法。攻击者所要做的只不过是找出哪些提交上去的变量是用于 SQL 语句并且处理不当的。而这类的变量通常都被用于 SELECT 查询中的条件语句，如 WHERE, ORDER BY, LIMIT 和 OFFSET。如果数据库支持 UNION 构造的话，攻击者还可能会把一个完整的 SQL 查询附加到原来的语句上以便从任意数据表中得到密码。因此，对密码字段加密是很重要的。

Example #2 显示文章……以及一些密码（任何数据库系统）

<?php

$query  = "SELECT id, name, inserted, size FROM products
                  WHERE size = '$size'
                  ORDER BY $order LIMIT $limit, $offset;";
$result = odbc_exec($conn, $query);

?>

可以在原来的查询的基础上添加另一个 SELECT 查询来获得密码：

'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

假如上述语句（使用 ' 和 --）被加入到 $query 中的任意一个变量的话，那么就麻烦了。

SQL 中的 UPDATE 也会受到攻击。这种查询也可能像上面的例子那样被插入或附加上另一个完整的请求。但是攻击者更愿意对 SET 子句下手，这样他们就可以更改数据表中的一些数据。这种情况下必须要知道数据库的结构才能修改查询成功进行。可以通过表单上的变量名对字段进行猜测，或者进行暴力破解。对于存放用户名和密码的字段，命名的方法并不多。

Example #3 从重设密码……到获得更多权限（任何数据库系统）

<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>

但是恶意的用户会把 ' or uid like'%admin%'; -- 作为变量的值提交给 $uid 来改变 admin 的密码，或者把 $pwd 的值提交为 "hehehe', admin='yes', trusted=100 "（后面有个空格）去获得更多的权限。这样做的话，查询语句实际上就变成了：

<?php

// $uid == ' or uid like'%admin%'; --
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE
...;";

?>

下面这个可怕的例子将会演示如何在某些数据库上执行系统命令。

Example #4 攻击数据库所在主机的操作系统（MSSQL Server）

<?php

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);

?>

如果攻击提交 a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- 作为变量 $prod的值，那么 $query 将会变成

<?php

$query  = "SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);

?>

MSSQL 服务器会执行这条 SQL 语句，包括它后面那个用于向系统添加用户的命令。如果这个程序是以 sa 运行而 MSSQLSERVER 服务又有足够的权限的话，攻击者就可以获得一个系统帐号来访问主机了。

Note: 虽然以上的例子是针对某一特定的数据库系统的，但是这并不代表不能对其它数据库系统实施类似的攻击。使用不同的方法，各种数据库都有可能遭殃。

预防措施

也许有人会自我安慰，说攻击者要知道数据库结构的信息才能实施上面的攻击。没错，确实如此。但没人能保证攻击者一定得不到这些信息，一但他们得到了，数据库有泄露的危险。如果你在用开放源代码的软件包来访问数据库，比如论坛程序，攻击者就很容得到到相关的代码。如果这些代码设计不良的话，风险就更大了。

这些攻击总是建立在发掘安全意识不强的代码上的。所以，永远不要信任外界输入的数据，特别是来自于客户端的，包括选择框、表单隐藏域和 cookie。就如上面的第一个例子那样，就算是正常的查询也有可能造成灾难。

  • 永远不要使用超级用户或所有者帐号去连接数据库。要用权限被严格限制的帐号。
  • 检查输入的数据是否具有所期望的数据格式。PHP 有很多可以用于检查输入的函数，从简单的变量函数和字符类型函数（比如 is_numeric()，ctype_digit()）到复杂的 Perl 兼容正则表达式函数都可以完成这个工作。

  • 如果程序等待输入一个数字，可以考虑使用 is_numeric()
来检查，或者直接使用 settype() 来转换它的类型，也可以用
sprintf() 把它格式化为数字。

    Example #5 一个实现分页更安全的方法

    <?php

    settype    ($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // 请注意格式字符串中的 %d，如果用 %s 就毫无意义了
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                         $offset);

    ?>

  • 使用数据库特定的敏感字符转义函数（比如 mysql_escape_string() 和
sql_escape_string()）把用户提交上来的非数字数据进行转义。如果数据库没有专门的敏感字符转义功能的话
addslashes() 和 str_replace()
可以代替完成这个工作。看看第一个例子，此例显示仅在查询的静态部分加上引号是不够的，查询很容易被攻破。
  • 要不择手段避免显示出任何有关数据库的信心，尤其是数据库结构。参见错误报告和错误处理函数。
  • 也可以选择使用数据库的存储过程和预定义指针等特性来抽象数库访问，使用户不能直接访问数据表和视图。但这个办法又有别的影响。

除此之外，在允许的情况下，使用代码或数据库系统保存查询日志也是一个好办法。显然，日志并不能防止任何攻击，但利用它可以跟踪到哪个程序曾经被尝试攻击过。日志本身没用，要查阅其中包含的信息才行。毕竟，更多的信息总比没有要好。

加密存储模型
错误报告
数据库安全


错误报告

对于 PHP 的安全性来说错误报告是一把双刃剑。一方面可以提高安全性，另一方面又有害。

攻击系统时经常使用的手法就是输入不正确的数据，然后查看错误提示的类型及上下文。这样做有利于攻击者收集服务器的信息以便寻找弱点。比如说，如果一个攻击者知道了一个页面所基于的表单信息，那么他就会尝试修改变量：

Example #1 用自定义的 HTML 页面攻击变量

<form method="post" action="attacktarget?username=badfoo&amp;password=badfoo">
<input type="hidden" name="username" value="badfoo" />
<input type="hidden" name="password" value="badfoo" />
</form>

通常 PHP 所返回的错误提示都能帮助开发者调试程序，它会提出哪个文件的哪些函数或代码出错，并指出错误发生的在文件的第几行，这些就是 PHP 本身所能给出的信息。很多 PHP 开发者会使用 show_source()、highlight_string() 或者 highlight_file() 函数来调试代码，但是在正式运行的网站中，这种做法可能会暴露出隐藏的变量、未检查的语法和其它的可能危及系统安全的信息。在运行一些具有内部调试处理的程序，或者使用通用调试技术是很危险的。如果让攻击者确定了程序是使用了哪种具体的调试技术，他们会尝试发送变量来打开调试功能：

Example #2 利用变量打开调式功能

<form method="post" action="attacktarget?errors=Y&amp;showerrors=1&amp;debug=1">
<input type="hidden" name="errors" value="Y" />
<input type="hidden" name="showerrors" value="1" />
<input type="hidden" name="debug" value="1" />
</form>

不管错误处理机制如何，可以探测系统错误的能力会给攻击者提供更多信息。

比如说，PHP 的独有的错误提示风格可以说明系统在运行 PHP。如果攻击者在寻找一个 .html 为页面，想知道其后台的技术（为了寻找系统弱点），他们就会把错误的数据提交上去，然后就有可以得知系统是基于 PHP 的了。

一个函数错误就可能暴露系统正在使用的数据库，或者为攻击者提供有关网页、程序或设计方面的有用信息。攻击者往往会顺藤摸瓜地找到开放的数据库端口，以及页面上某些 bug 或弱点等。比如说，攻击者可以一些不正常的数据使程序出错，来探测脚本中认证的顺序（通过错误提示的行号数字）以及脚本中其它位置可能泄露的信息。

一个文件系统或者 PHP 的错误就会暴露 web 服务器具有什么权限，以及文件在服务器上的组织结构。开发者自己写的错误代码会加剧此问题，导致泄漏了原本隐藏的信息。

有三个常用的办法处理这些问题。第一个是彻底地检查所有函数，并尝试弥补大多数错误。第二个是对在线系统彻底关闭错误报告。第三个是使用 PHP 自定义的错误处理函数创建自己的错误处理机制。根据不同的安全策略，三种方法可能都适用。

一个能提前阻止这个问题发生的方法就是利用 error_reporting() 来帮助使代码更安全并发现变量使用的危险之处。在发布程序之前，先打开 E_ALL 测试代码，可以帮你很快找到变量使用不当的地方。一旦准备正式发布，就应该把 error_reporting() 的参数设为 0 来彻底关闭错误报告或者把 php.ini 中的 display_errors 设为 off 来关闭所有的错误显示以将代码隔绝于探测。当然，如果要迟一些再这样做，就不要忘记打开 ini 文件内的 log_errors 选项，并通过 error_log 指定用于记录错误信息的文件。

Example #3 用 E_ALL 来查找危险的变量

<?php
if ($username) {  // Not initialized or checked before usage
    $good_login = 1;
}
if ($good_login == 1) { // If above test fails, not initialized or checked before usage
    readfile ("/highly/sensitive/data/index.html");
}
?>

SQL 注入
使用 Register Globals
安全


使用 Register Globals

可能 PHP 中最具争议的变化就是从 PHP » 4.2.0 版开始配置文件中 register_globals 的默认值从 on 改为 off 了。对此选项的依赖是如此普遍以至于很多人根本不知道它的存在而以为 PHP 本来就是这么工作的。本节会解释用这个指令如何写出不安全的代码，但要知道这个指令本身没有不安全的地方，误用才会。

当 register_globals 打开以后，各种变量都被注入代码，例如来自 HTML 表单的请求变量。再加上 PHP 在使用变量之前是无需进行初始化的，这就使得更容易写出不安全的代码。这是个很艰难的抉择，但 PHP 社区还是决定默认关闭此选项。当打开时，人们使用变量时确实不知道变量是哪里来的，只能想当然。但是 register_globals 的关闭改变了这种代码内部变量和客户端发送的变量混杂在一起的糟糕情况。下面举一个错误使用 register_globals 的例子：

Example #1 错误使用 register_globals = on 的例子

<?php
// 当用户合法的时候，赋值 $authorized = true
if (authenticated_user()) {
    $authorized = true;
}

// 由于并没有事先把 $authorized 初始化为 false，
// 当 register_globals 打开时，可能通过GET auth.php?authorized=1 来定义该变量值
// 所以任何人都可以绕过身份验证
if ($authorized) {
    include "/highly/sensitive/data.php";
}
?>

当 register_globals = on 的时候，上面的代码就会有危险了。如果是 off，$authorized 就不能通过如 URL 请求等方式来改变，这样就好多了，尽管初始化变量是一个良好的编程习惯。比如说，如果在上面的代码执行之前加入 $authorized = false 的话，无论 register_globals 是 on 还是 off 都可以，因为用户状态被初始化为未经认证。

另一个例子是关于会话的。当 register_globals = on 的时候，$username 也可以用在下面的代码中，但要意识到 $username 也可能会从其它途径进来，比如说通过 URL 的 GET。

Example #2 使用会话时同时兼容 register_globals on 和 off 的例子

<?php
// 我们不知道 $username 的来源，但很清楚 $_SESSION 是
// 来源于会话数据
if (isset($_SESSION['username'])) {

    echo "Hello <b>{$_SESSION['username']}</b>";

} else {

    echo "Hello <b>Guest</b><br />";
    echo "Would you like to login?";

}
?>

采取相应的预防措施以便在伪造变量输入的时候给予警告是完全有可能的。如果事先确切知道变量是哪里来的，就可以检查所提交的数据是否是从不正当的表单提交而来。不过这不能保证变量未被伪造，这需要攻击者去猜测应该怎样去伪造。如果不在乎请求数据来源的话，可以使用 $_REQUEST 数组，它包括了 GET、POST 和 COOKIE 的所有数据。详情可参见本手册的来自 PHP 之外的变量。

Example #3 探测有害变量

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE 来自 cookie
    // 这样做是确保是来自 cookie 的数据

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Possible breakin attempt", $_SERVER['REMOTE_ADDR']);
   echo "Security violation, admin has been alerted.";
   exit;

} else {

   // 这一次请求中并没有设置 MAGIC_COOKIE 变量

}
?>

当然，单纯地关闭 register_globals 并不代表所有的代码都安全了。对于每一段提交上来的数据，都要对其进行具体的检查。永远要验证用户数据和对变量进行初始化！把 error_reporting() 设为 E_NOTICE 级别可以检查未初始化的变量。

更多关于模拟 register_globals 为 on 或 off 的信息，请见此 FAQ。

Note: Superglobals 可用性说明
自 PHP 4.1.0 起，可以使用超全局数组变量例如 $_GET，$_POST 和 $_SERVER 等等。更多信息请阅读手册中的 superglobals。

错误报告
用户提交的数据
安全


用户提交的数据

很多 PHP 程序所存在的重大弱点并不是 PHP 语言本身的问题，而是编程者的安全意识不高而导致的。因此，必须时时注意每一段代码可能存在的问题，去发现非正确数据提交时可能造成的影响。

Example #1 危险的变量用法

<?php
// 从用户目录中删除一个文件，或者……能删除更多的东西？
unlink ($evil_var);

// 记录用户的登陆，或者……能否在 /etc/passwd 添加数据？
fwrite ($fp, $evil_var);

// 执行一些普通的命令，或者……可以执行 rm -rf * ？
system ($evil_var);
exec ($evil_var);

?>

必须时常留意你的代码，以确保每一个从客户端提交的变量都经过适当的检查，然后问自己以下一些问题：

  • 此脚本是否只能影响所预期的文件？
  • 非正常的数据被提交后能否产生作用？
  • 此脚本能用于计划外的用途吗？
  • 此脚本能否和其它脚本结合起来做坏事？
  • 是否所有的事务都被充分记录了？

在写代码的时候问自己这些问题，否则以后可能要为了增加安全性而重写代码了。注意了这些问题的话，也许还不完全能保证系统的安全，但是至少可以提高安全性。

还可以考虑关闭 register_globals，magic_quotes 或者其它使编程更方便但会使某个变量的合法性，来源和其值被搞乱的设置。在开发时，可以使用 error_reporting(E_ALL) 模式帮助检查变量使用前是否有被检查或被初始化，这样就可以防止某些非正常的数据的挠乱了。

使用 Register Globals
魔术引号
安全


魔术引号

Table of Contents

  • 什么是魔术引号
  • 为什么要用魔术引号
  • 为什么不用魔术引号
  • 关闭魔术引号

魔术引号（Magic Quote）是一个自动将进入 PHP 脚本的数据进行转义的过程。最好在编码时不要转义而在运行时根据需要而转义。

用户提交的数据
什么是魔术引号
安全


什么是魔术引号

当打开时，所有的 '（单引号），"（双引号），\（反斜线）和 NULL 字符都会被自动加上一个反斜线进行转义。这和 addslashes() 作用完全相同。

一共有三个魔术引号指令：

  • magic_quotes_gpc 影响到 HTTP 请求数据（GET，POST 和 COOKIE）。不能在运行时改变。在 PHP 中默认值为 on。 参见 get_magic_quotes_gpc()。
  • magic_quotes_runtime 如果打开的话，大部份从外部来源取得数据并返回的函数，包括从数据库和文本文件，所返回的数据都会被反斜线转义。该选项可在运行的时改变，在 PHP 中的默认值为 off。 参见 set_magic_quotes_runtime() 和 get_magic_quotes_runtime()。
  • magic_quotes_sybase 如果打开的话，将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话，单引号将会被转义成 ''。而双引号、反斜线 和 NULL 字符将不会进行转义。 如何取得其值参见 ini_get()。
魔术引号
为什么要用魔术引号
魔术引号


为什么要用魔术引号

  • 对初学者很有用 魔术引号在 PHP 中用来实现避免初学者的代码更危险。尽管 SQL 注入在魔术引号打开的情况下仍然有可能实现，但起码系统的风险减少很多了。
  • 方便使用 当向数据库中插入数据时，魔术引号所做的就是自动对所有的 GET、POST、COOKIE 数据运用 addslashes() 函数。
什么是魔术引号
为什么不用魔术引号
魔术引号


为什么不用魔术引号

  • 可移植性 编程时认为其打开或并闭都会影响到移植性。可以用 get_magic_quotes_gpc() 来检查是否打开，并据此编程。
  • 性能 由于并不是每一段被转义的数据都要插入数据库的，如果所有进入 PHP 的数据都被转义的话，那么会对程序的执行效率产生一定的影响。在运行时调用转义函数（如 addslashes()）更有效率。 尽管 php.ini-dist 默认打开了这个选项，但是 php.ini-recommended 默认却关闭了它，主要是出于性能的考虑。
  • 不便 由于不是所有数据都需要转义，在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件，结果看到一大堆的 \'。针对这个问题，可以使用 stripslashes() 函数处理。
为什么要用魔术引号
关闭魔术引号
魔术引号


关闭魔术引号

magic_quotes_gpc 指令只能在系统级关闭，不能在运行时。也就是说不能用 ini_set()。

Example #1 在服务器端关闭魔术引号

下面是一个通过 php.ini 文件把这些选项设为 Off 的范例。更多信息请参见本手册的怎样修改配置设定。

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

如果不能修改服务器端的配置文件，使用 .htaccess 也可以。范例如下：

php_flag magic_quotes_gpc Off

为了能写出移植性较强的代码（可以运行于任何环境），例如不能修改服务器配置的情况，下面的例子可以在运行时关闭 magic_quotes_gpc。但是这样做比较低效，适当的修改配置才是更好的办法。

Example #2 在运行时关闭魔术引号

<?php
if (get_magic_quotes_gpc()) {
    function stripslashes_deep($value)
    {
        $value = is_array($value) ?
                    array_map('stripslashes_deep', $value) :
                    stripslashes($value);

        return $value;
    }

    $_POST = array_map('stripslashes_deep', $_POST);
    $_GET = array_map('stripslashes_deep', $_GET);
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
    $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>

为什么不用魔术引号
隐藏 PHP
魔术引号


隐藏 PHP

一般而言，通过隐藏的手段提高安全性被认为是作用不大的做法。但某些情况下，尽可能的多增加一份安全性都是值得的。

一些简单的方法可以帮助隐藏 PHP，这样做可以提高攻击者发现系统弱点的难度。在 php.ini 文件里设置 expose_php = off ，可以减少他们能获得的有用信息。

另一个策略就是让 web 服务器用 PHP 解析不同扩展名。无论是通过 .htaccess 文件还是 Apache 的配置文件，都可以设置能误导攻击者的文件扩展名：

Example #1 把 PHP 隐藏为另一种语言

# 使PHP看上去像其它的编程语言
AddType application/x-httpd-php .asp .py .pl

或者干脆彻底隐藏它：

Example #2 使用未知的扩展名作为 PHP 的扩展名

# 使 PHP 看上去像未知的文件类型
AddType application/x-httpd-php .bop .foo .133t

或者把它隐藏为 HTML 页面，这样所有的 HTML 文件都会通过 PHP 引擎，会为服务器增加一些负担：

Example #3 用 HTML 做 PHP 的文件后缀

# 使 PHP 代码看上去像 HTML 页面
AddType application/x-httpd-php .htm .html

要让此方法生效，必须把 PHP 文件的扩展名改为以上的扩展名。这样就通过隐藏来提高了安全性，虽然防御能力很低而且有些缺点。

关闭魔术引号
保持更新
安全


保持更新

PHP 和其它的大型系统一样，在持续的研究和改进中。每一个版本都会有或多或少的改进来增强安全性和修复任何缺陷，配置问题以及任何会影响到整个系统安全与性能的问题。

和其它系统级的脚本语言一样，最好的途径是经常更新，并时刻留意最新版本及其改变。

隐藏 PHP
特点
安全


特点

  • 用 PHP 进行 HTTP 认证
  • Cookie
  • 会话
  • 处理 XForms
  • 文件上传处理
    • POST 方法上传
    • 错误信息说明
    • 常见缺陷
    • 上传多个文件
    • 对 PUT 方法的支持
  • 使用远程文件
  • 连接处理
  • 数据库永久连接
  • 安全模式
    • 保安措施和安全模式
    • 被安全模式限制或屏蔽的函数
  • PHP 的命令行模式
保持更新
用 PHP 进行 HTTP 认证


用 PHP 进行 HTTP 认证

PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效，因此该功能不适用于 CGI 版本。在 Apache 模块的 PHP 脚本中，可以用 header() 函数来向客户端浏览器发送“Authentication Required”信息，使其弹出一个用户名／密码输入窗口。当用户输入用户名和密码后，包含有 URL 的 PHP 脚本将会加上预定义变量 PHP_AUTH_USER，PHP_AUTH_PW 和 AUTH_TYPE 被再次调用，这三个变量分别被设定为用户名，密码和认证类型。预定义变量保存在 $_SERVER 或者 $HTTP_SERVER_VARS 数组中。支持“Basic”和“Digest”（自 PHP 5.1.0 起）认证方法。请参阅 header() 函数以获取更多信息。

Note: PHP 版本问题
Autoglobals 全局变量，包括 $_SERVER等，自 PHP » 4.1.0 起有效，$HTTP_SERVER_VARS 从 PHP 3 开始有效。

以下是在页面上强迫客户端认证的脚本范例：

Example #1 Basic HTTP 认证范例

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
  }
?>

Example #2 Digest HTTP 认证范例

本例演示怎样实现一个简单的 Digest HTTP 认证脚本。更多信息请参考 » RFC 2617。

<?php
$realm = 'Restricted area';

//user => password
$users = array('admin' => 'mypass', 'guest' => 'guest');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Digest realm="'.$realm.
           '" qop="auth" nonce="'.uniqid().'" opaque="'.md5($realm).'"');

    die('Text to send if user hits Cancel button');
}

// analyze the PHP_AUTH_DIGEST variable
if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
    !isset($users[$data['username']]))
    die('Wrong Credentials!');

// generate the valid response
$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if ($data['response'] != $valid_response)
    die('Wrong Credentials!');

// ok, valid username & password
echo 'Your are logged in as: ' . $data['username'];

// function to parse the http auth header
function http_digest_parse($txt)
{
    // protect against missing data
    $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
    $data = array();

    preg_match_all('@(\w+)=([\'"]?)([a-zA-Z0-9=./\_-]+)\2@', $txt, $matches, PREG_SET_ORDER);

    foreach ($matches as $m) {
        $data[$m[1]] = $m[3];
        unset($needed_parts[$m[1]]);
    }

    return $needed_parts ? false : $data;
}
?>
   </programlisting>
  </example>
 </para>

 <note>
  <title>兼容性问题</title>
  <para>
   在编写 HTTP
   标头代码时请格外小心。为了对所有的客户端保证兼容性，关键字“Basic”的第一个字母必须大写为“B”，分界字符串必须用双引号（不是单引号）引用；并且在标头行
   <emphasis>HTTP/1.0 401</emphasis> 中，在 <emphasis>401</emphasis> 前必须有且仅有一个空格。
  </para>
 </note>

 <para>
  在以上例子中，仅仅只打印出了 <varname>PHP_AUTH_USER</varname> 和
  <varname>PHP_AUTH_PW</varname>
  的值，但在实际运用中，可能需要对用户名和密码的合法性进行检查。或许进行数据库的查询，或许从 dbm 文件中检索。
 </para>

 <para>
  注意有些 Internet Explorer
  浏览器本身有问题。它对标头的顺序显得似乎有点吹毛求疵。目前看来在发送
  <literal>HTTP/1.0 401</literal> 之前先发送
  <emphasis>WWW-Authenticate</emphasis> 标头似乎可以解决此问题。
 </para>

 <simpara>
  自 PHP 4.3.0
  起，为了防止有人通过编写脚本来从用传统外部机制认证的页面上获取密码，当外部认证对特定页面有效，并且&safemode;被开启时，PHP_AUTH
  变量将不会被设置。但无论如何，<varname>REMOTE_USER</varname>
  可以被用来辨认外部认证的用户，因此可以用
  <varname>$_SERVER['REMOTE_USER']</varname> 变量。
 </simpara>

 <note>
  <title>配置说明</title>
  <para>
   PHP 用是否有 <literal>AuthType</literal> 指令来判断外部认证机制是否有效。
  </para>
 </note>

 <simpara>
  注意，这仍然不能防止有人通过未认证的 URL 来从同一服务器上认证的 URL 上偷取密码。
 </simpara>
 <simpara>
  Netscape Navigator 和 Internet Explorer 浏览器都会在收到 401
  的服务端返回信息时清空所有的本地浏览器整个域的 Windows
  认证缓存。这能够有效的注销一个用户，并迫使他们重新输入他们的用户名和密码。有些人用这种方法来使登录状态“过期”，或者作为“注销”按钮的响应行为。
 </simpara>
 <para>
  <example>
    <title>强迫重新输入用户名和密码的 HTTP 认证的范例</title>
    <programlisting role="php">
<![CDATA[
<?php
  function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "You must enter a valid login ID and password to access this resource\n";
    exit;
  }

  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
   authenticate();
  }
  else {
   echo "<p>Welcome: {$_SERVER['PHP_AUTH_USER']}<br />";
   echo "Old: {$_REQUEST['OldAuth']}";
   echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='post'>\n";
   echo "<input type='hidden' name='SeenBefore' value='1' />\n";
   echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}' />\n";
   echo "<input type='submit' value='Re Authenticate' />\n";
   echo "</form></p>\n";
  }

该行为对于 HTTP 的 Basic 认证标准来说并不是必须的，因此不能依靠这种方法。对 Lynx 浏览器的测试表明 Lynx 在收到 401 的服务端返回信息时不会清空认证文件，因此只要对认证文件的检查要求没有变化，只要用户点击“后退”按钮，再点击“前进”按钮，其原有资源仍然能够被访问。不过，用户可以通过按“_”键来清空他们的认证信息。

同时请注意，在 PHP 4.3.3 之前，由于微软 IIS 的限制，HTTP 认证无法工作在 IIS 服务器的 CGI 模式下。为了能够使其在 PHP 4.3.3 以上版本能够工作，需要编辑 IIS 的设置“目录安全”。点击“编辑”并且只选择“匿名访问”，其它所有的复选框都应该留空。

另一个限制是在 IIS 的 ISAPI 模式下使用 PHP 4 的时候，无法使用 PHP_AUTH_* 变量，而只能使用 HTTP_AUTHORIZATION。例如，考虑如下代码：list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));。

Note: IIS 注意事项
要 HTTP 认证能够在 IIS 下工作，PHP 配置选项 cgi.rfc2616_headers 必须设置成 0（默认值）。

Note: 如果安全模式被激活，脚本的 UID 会被加到 WWW-Authenticate 标头的 realm 部分。

特点
Cookie
特点


Cookie

PHP 透明地支持 HTTP cookie。cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。cookie 是 HTTP 标头的一部分，因此 setcookie() 函数必须在其它信息被输出到浏览器前调用，这和对 header() 函数的限制类似。可以使用输出缓冲函数来延迟脚本的输出，直到按需要设置好了所有的 cookie 或者其它 HTTP 标头。

如果 variables_order 中包括“C”，则任何从客户端发送的 cookie 都会被自动包括进 $_COOKIE 自动全局数组。如果希望对一个 cookie 变量设置多个值，则需在 cookie 的名称后加 [] 符号。

根据 register_globals 的设置，可以从 cookie 建立普通的 PHP 变量。但是不推荐依赖于此特性，因为出于安全原因此选项通常是关闭的。在早期的 PHP 版本中，当 track_vars 配置选项打开时（此选项自 PHP 4.0.3 后总是打开的），系统还会设定 $HTTP_COOKIE_VARS。

关于更多细节以及有关浏览器问题的注意事项，参见 setcookie() 和 setrawcookie() 函数。

用 PHP 进行 HTTP 认证
会话
特点


会话

会话机制（Session）在 PHP 中用于保存并发访问中的一些数据。这使可以帮助创建更为人性化的程序，增加站点的吸引力。关于会话机制的更多信息，请参见会话处理函数一章。

Cookie
处理 XForms
特点


处理 XForms

» XForms 定义了一种传统 web 表单的变种，它可以用于更多的平台和浏览器，甚至非传统的媒体例如 PDF 文档。

XFroms 的第一个关键区别是表单怎样发送到客户端。» XForms for HTML Authors 包含有怎样创建 XForms 的详细说明。本节只看一个简单例子。

Example #1 一个简单的 XForms 搜索表单

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" xml:id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

上面的表单显示一个文本输入框（命名为 q ）和一个提交按钮。当点击提交按钮，表单将被发送到 action 所指示的页面。

下面是从 web 应用端的角度看上去的区别。在普通的 HTML 表单中，数据发送格式是 application/x-www-form-urlencoded，在 XForms 的世界中，该信息是以 XML 格式数据发送的。

如果选择使用 XForms，那么数据为 XML，这种情况下，在 $HTTP_RAW_POST_DATA 中包含了由浏览器产生的 XML 文档，可以将其传递给所偏好的 XSLT 引擎或者文档解析器。

如果对格式不感兴趣，只想让数据进入到传统的 $_POST 变量中，可以指示客户端浏览器将其以 application/x-www-form-urlencoded 格式发送，只要将 method 属性改成 urlencoded-post 即可。

Example #2 使用 XForm 来产生 $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" xml:id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Note: 在写本文档时，许多浏览器还不支持 XForms。如果上面例子失败请检查自己的浏览器版本。

会话
文件上传处理
特点


文件上传处理

Table of Contents

  • POST 方法上传
  • 错误信息说明
  • 常见缺陷
  • 上传多个文件
  • 对 PUT 方法的支持
处理 XForms
POST 方法上传
特点


POST 方法上传

本特性可以使用户上传文本和二进制文件。用 PHP 的认证和文件操作函数，可以完全控制允许哪些人上传以及文件上传后怎样处理。

PHP 能够接受任何来自符合 RFC-1867 标准的浏览器（包括 Netscape Navigator 3 及更高版本，打了补丁的 Microsoft Internet Explorer 3 或者更高版本）上传的文件。

Note: 相关的设置
请参阅 php.ini 的 file_uploads，upload_max_filesize，upload_tmp_dir post_max_size 以及 max_input_time 设置选项。

请注意 PHP 也支持 PUT 方法的文件上传，Netscape Composer 和 W3C 的 Amaya 客户端使用这种方法。请参阅对 PUT 方法的支持以获取更多信息。

Example #1 文件上传表单

可以如下建立一个特殊的表单来支持文件上传：

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

以上范例中的 __URL__ 应该被换掉，指向一个真实的 PHP 文件。

MAX_FILE_SIZE 隐藏字段（单位为字节）必须放在文件输入字段之前，其值为接收文件的最大尺寸。这是对浏览器的一个建议，PHP 也会检查此项。在浏览器端可以简单绕过此设置，因此不要指望用此特性来阻挡大文件。实际上，PHP 设置中的上传文件最大值是不会失效的。但是最好还是在表单中加上此项目，因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。

Note: 要确保文件上传表单的属性是 enctype="multipart/form-data"，否则文件上传不了。

全局变量 $_FILES 自 PHP 4.1.0 起存在（在更早的版本中用 $HTTP_POST_FILES 替代）。此数组包含有所有上传的文件信息。

以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称如上例所示，为 userfile。名称可随意命名。

$_FILES['userfile']['name']

客户端机器文件的原名称。

$_FILES['userfile']['type']

文件的 MIME 类型，如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查，因此不要想当然认为有这个值。

$_FILES['userfile']['size']

已上传文件的大小，单位为字节。

$_FILES['userfile']['tmp_name']

文件被上传后在服务端储存的临时文件名。

$_FILES['userfile']['error']

和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。

文件被上传后，默认地会被储存到服务端的默认临时目录中，除非 php.ini 中的 upload_tmp_dir 设置为其它的路径。服务端的默认临时目录可以通过更改 PHP 运行环境的环境变量 TMPDIR 来重新设置，但是在 PHP 脚本内部通过运行 putenv() 函数来设置是不起作用的。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的。

Example #2 使文件上传生效

请查阅函数 is_uploaded_file() 和 move_uploaded_file() 以获取进一步的信息。以下范例处理由表单提供的文件上传。

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>

接受上传文件的 PHP 脚本为了决定接下来要对该文件进行哪些操作，应该实现任何逻辑上必要的检查。例如可以用 $_FILES['userfile']['size'] 变量来排除过大或过小的文件，也可以通过 $_FILES['userfile']['type'] 变量来排除文件类型和某种标准不相符合的文件，但只把这个当作一系列检查中的第一步，因为此值完全由客户端控制而在 PHP 端并不检查。自 PHP 4.2.0 起，还可以通过 $_FILES['userfile']['error'] 变量来根据不同的错误代码来计划下一步如何处理。不管怎样，要么将该文件从临时目录中删除，要么将其移动到其它的地方。

如果表单中没有选择上传的文件，则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0，$_FILES['userfile']['tmp_name'] 将为空。

如果该文件没有被移动到其它地方也没有被改名，则该文件将在表单请求结束时被删除。

Example #3 上传一组文件

PHP 的 HTML 数组特性甚至支持文件类型。

<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>
文件上传处理
错误信息说明
文件上传处理


错误信息说明

从 PHP 4.2.0 开始，PHP 将随文件信息数组一起返回一个对应的错误代码。该代码可以在文件上传时生成的文件数组中的 error 字段中被找到，也就是 $_FILES['userfile']['error']。

UPLOAD_ERR_OK

其值为 0，没有错误发生，文件上传成功。

UPLOAD_ERR_INI_SIZE

其值为 1，上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

UPLOAD_ERR_FORM_SIZE

其值为 2，上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

UPLOAD_ERR_PARTIAL

其值为 3，文件只有部分被上传。

UPLOAD_ERR_NO_FILE

其值为 4，没有文件被上传。

UPLOAD_ERR_NO_TMP_DIR

其值为 6，找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。

UPLOAD_ERR_CANT_WRITE

其值为 7，文件写入失败。PHP 5.1.0 引进。

Note: 以上值在 PHP 4.3.0 之后变成了 PHP 常量。

POST 方法上传
常见缺陷
文件上传处理


常见缺陷

对 MAX_FILE_SIZE 设置的值，不能大于 ini 设置中 upload_max_filesize 选项设置的值。其默认值为 2M 字节。

如果内存限制设置被激活，可能需要将 memory_limit 设置的更大些，请确认 memory_limit 的设置足够的大。

如果 max_execution_time 设置的值太小，脚本运行的时间可能会超过该设置。因此，也请保证 max_execution_time 足够的大。

Note: max_execution_time 仅仅只影响脚本本身运行的时间。任何其它花费在脚本运行之外的时间，诸如用函数 system() 对系统的调用、sleep() 函数的使用、数据库查询、文件上传等，在计算脚本运行的最大时间时都不包括在内。

Warning

max_input_time 以秒为单位设定了脚本接收输入的最大时间，包括文件上传。对于较大或多个文件，或者用户的网速较慢时，可能会超过默认的 60 秒。

如果 post_max_size 设置的值太小，则较大的文件会无法被上传。因此，请保证 post_max_size 的值足够的大。

不对正在操作的文件进行验证可能意味着用户能够访问其它目录下的敏感信息。

请注意 CERN httpd 似乎会丢弃它从客户端获得的 content-type mime 头信息中第一个空格后所有的内容，基于这一点，CERN httpd 不支持文件上传特性。

鉴于文件路径的表示方法有很多种，我们无法确保用使用各种外语的文件名（尤其是包含空格的）能够被正确的处理。

开发人员不应将普通的输入字段和文件上传的字段混用同一个表单变量（例如都用 foo[]）。

错误信息说明
上传多个文件
文件上传处理


上传多个文件

可以对 input 域使用不同的 name 来上传多个文件。

PHP 支持同时上传多个文件并将它们的信息自动以数组的形式组织。要完成这项功能，需要在 HTML 表单中对文件上传域使用和多选框与复选框相同的数组式提交语法。

Note: 对多文件上传的支持是在 PHP 3.0.10 版本添加的。

Example #1 上传多个文件

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Send files" />
</form>

当以上表单被提交后，数组 $_FILES['userfile']，$_FILES['userfile']['name'] 和 $_FILES['userfile']['size'] 将被初始化（在 PHP 4.1.0 以前版本是 $HTTP_POST_FILES）。如果 register_globals 的设置为 on，则和文件上传相关的全局变量也将被初始化。所有这些提交的信息都将被储存到以数字为索引的数组中。

例如，假设名为 /home/test/review.html 和 /home/test/xwp.out 的文件被提交，则 $_FILES['userfile']['name'][0] 的值将是 review.html，而 $_FILES['userfile']['name'][1] 的值将是 xwp.out。类似的，$_FILES['userfile']['size'][0] 将包含文件 review.html 的大小，依此类推。

此外也同时设置了 $_FILES['userfile']['name'][0]，$_FILES['userfile']['tmp_name'][0]，$_FILES['userfile']['size'][0] 以及 $_FILES['userfile']['type'][0]。

常见缺陷
对 PUT 方法的支持
文件上传处理


对 PUT 方法的支持

PHP 3 和 PHP 4 对 PUT 方法的支持有所不同。在 PHP 4 中，必须使用标准的输入流来读取一个 HTTP PUT 的内容。

Example #1 用 PHP 4 来保存 HTTP PUT 文件

<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://stdin", "r");

/* Open a file for writing */
$fp = fopen("myputfile.ext", "w");

/* Read the data 1 KB at a time
   and write to the file */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Close the streams */
fclose($fp);
fclose($putdata);
?>

Note: 以下文档的内容仅对 PHP 3 适用。

PHP 提供对诸如 Netscape Composer 和 W3C Amaya 等客户端使用的 HTTP PUT 方法的支持。PUT 请求比文件上传要简单的多，它们一般的形式为：

PUT /path/filename.html HTTP/1.1

这通常意味着远程客户端会将其中的 /path/filename.html 存储到 web 目录树。让 Apache 或者 PHP 自动允许所有人覆盖 web 目录树下的任何文件显然是很不明智的。因此，要处理类似的请求，必须先告诉 web 服务器需要用特定的 PHP 脚本来处理该请求。在 Apache 下，可以用 Script 选项来设置。它可以被放置到 Apache 配置文件中几乎所有的位置。通常我们把它放置在 <Directory> 区域或者 <Virtualhost> 区域。可以用如下一行来完成该设置：

Script PUT /put.php

这将告诉 Apache 将所有对 URI 的 PUT 请求全部发送到 put.php 脚本，这些 URI 必须和 PUT 命令中的内容相匹配。当然，这是建立在 PHP 支持 .php 扩展名，并且 PHP 已经在运行的假设之上。

在 put.php 文件中，可以作如下操作：

<?php copy($PHP_UPLOADED_FILE_NAME, $DOCUMENT_ROOT . $REQUEST_URI); ?>

这将会把文件拷贝到远程客户端请求的位置。可能希望在文件拷贝之前进行一些检查或者对用户认证之类的操作。这里唯一的问题是，当 PHP 接受到 PUT 方法的请求时，它将会把上传的文件储存到和其它用 POST 方法处理过的文件相同的临时目录。在请求结束时，临时文件将被删除。因此，用来处理 PUT 的 PHP 脚本必须将该文件拷贝到其它的地方。该临时文件的文件名被储存在变量 $PHP_PUT_FILENAME 中，也可以通过 $REQUEST_URI 变量获得建议的目标文件名（在非 Apache web 服务器上可能会有较大的变化）。该目标文件名是由远程客户端指定的。也可以不听从改客户端的信息，而把所有上传的文件存储到一个特殊的上传目录下。

上传多个文件
使用远程文件
文件上传处理


使用远程文件

只要在 php.ini 文件中激活了 allow_url_fopen 选项，就可以在大多数需要用文件名作为参数的函数中使用 HTTP 和 FTP 的 URL 来代替文件名。同时，也可以在 include()、include_once()、require() 及 require_once() 语句中使用 URL。PHP 所支持协议的更多信息参见支持的协议／封装协议列表。

Note: 要在 PHP 4.0.3 及其更早的版本中使用 URL 封装协议，需要在编译时用 --enable-url-fopen-wrapper 参数来配置 PHP。

Note: Windows 版本的 PHP 4.3 版之前不支持以下函数的远程访问：include()，include_once()，require()，require_once() 以及GD 函数中的 imagecreatefromXXX 函数。

例如，可以用以下范例来打开远程 web 服务器上的文件，解析需要的输出数据，然后将这些数据用在数据库的检索中，或者简单地以和自己网站其它页面相同的风格输出其内容。

Example #1 获取远程文件的标题

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* This only works if the title and its tags are on one line */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

如果有合法的访问权限，以一个用户的身份和某 FTP 服务器建立了链接，还可以向该 FTP 服务器端的文件进行写操作。仅能用该方法来创建新的文件；如果尝试覆盖已经存在的文件，fopen() 函数的调用将会失败。

要以“anonymous”以外的用户名连接服务器，需要指明用户名（可能还有密码），例如“ftp://user:password@ftp.example.com/path/to/file”（也可以在通过需要 Basic 认证的 HTTP 协议访问远程文件时使用相同的语法）。

Example #2 将数据保存到远程服务器

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Unable to open remote file for writing.\n";
    exit;
}
/* Write the data here. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Note: 或许可以从以上范例中得到启发，用该技术来存储远程日志文件。但是正如以上提到的，在用 fopen() 方式打开的 URL 中，仅能对新文件进行写操作。如果远程文件已经存在则 fopen() 函数的操作将会失败。要做类似于分布式日志的事，可以参考 syslog() 函数。

对 PUT 方法的支持
连接处理
特点


连接处理

Note: 以下内容对 PHP 3.0.7 及更高版本适用。

在 PHP 内部，系统维护着连接状态，其状态有三种可能的情况：

  • 0 - NORMAL（正常）
  • 1 - ABORTED（异常退出）
  • 2 - TIMEOUT（超时）

当 PHP 脚本正常地运行 NORMAL 状态时，连接为有效。当远程客户端中断连接时，ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限（请参阅 set_time_limit() 函数）时，TIMEOUT 状态的标记将被打开。

可以决定脚本是否需要在客户端中断连接时退出。有时候让脚本完整地运行会带来很多方便，即使没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由 php.ini 的 ignore_user_abort 或由 Apache .conf 设置中对应的“php_value ignore_user_abort”以及 ignore_user_abort() 函数来控制。如果没有告诉 PHP 忽略用户的中断，脚本将会被中断，除非通过 register_shutdown_function() 设置了关闭触发函数。通过该关闭触发函数，当远程用户点击 STOP 按钮后，脚本再次尝试输出数据时，PHP 将会检测到连接已被中断，并调用关闭触发函数。

脚本也有可能被内置的脚本计时器中断。默认的超时限制为 30 秒。这个值可以通过设置 php.ini 的 max_execution_time 或 Apache .conf 设置中对应的“php_value max_execution_time”参数或者 set_time_limit() 函数来更改。当计数器超时的时候，脚本将会类似于以上连接中断的情况退出，先前被注册过的关闭触发函数也将在这时被执行。在该关闭触发函数中，可以通过调用 connection_status() 函数来检查超时是否导致关闭触发函数被调用。如果超时导致了关闭触发函数的调用，该函数将返回 2。

需要注意的一点是 ABORTED 和 TIMEOUT 状态可以同时有效。这在告诉 PHP 忽略用户的退出操作时是可能的。PHP 将仍然注意用户已经中断了连接但脚本仍然在运行的情况。如果到了运行的时间限制，脚本将被退出，设置过的关闭触发函数也将被执行。在这时会发现函数 connection_status() 返回 3。

使用远程文件
数据库永久连接
特点


数据库永久连接

永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP 将检查是否已经存在一个（前面已经开启的）相同的永久连接。如果存在，将直接使用这个连接；如果不存在，则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。

对 web 服务器的工作和分布负载没有完全理解的读者可能会错误地理解永久连接的作用。特别的，永久连接不会在相同的连接上提供建立“用户会话”的能力，也不提供有效建立事务的能力。实际上，从严格意义上来讲，永久连接不会提供任何非永久连接无法提供的特殊功能。

为什么？

这和 web 服务器工作的方式有关。web 服务器可以用三种方法来利用 PHP 生成 web 页面。

第一种方法是将 PHP 用作一个“外壳”。以这种方法运行，PHP 会为向 web 服务器提出的每个 PHP 页面请求生成并结束一个 PHP 解释器线程。由于该线程会随每个请求的结束而结束，因此任何在这个线程中利用的任何资源（例如指向 SQL 数据库服务器的连接）都会随线程的结束而关闭。在这种情况下，使用永久连接不会获得任何地改变――因为它们根本不是永久的。

第二，也是最常用的方法，是把 PHP 用作多进程 web 服务器的一个模块，这种方法目前只适用于 Apache。对于一个多进程的服务器，其典型特征是有一个父进程和一组子进程协调运行，其中实际生成 web 页面的是子进程。每当客户端向父进程提出请求时，该请求会被传递给还没有被其它的客户端请求占用的子进程。这也就是说当相同的客户端第二次向服务端提出请求时，它将有可能被一个不同的子进程来处理。在开启了一个永久连接后，所有请求 SQL 服务的后继页面都能够重新使用这个已经建立的 SQL Server 连接。

最后一种方法是将 PHP 用作多线程 web 服务器的一个插件。目前 PHP 4 已经支持 ISAPI、WSAPI 和 NSAPI（在 Windows 环境下），这些使得 PHP 可以被用作诸如 Netscape FastTrack (iPlanet)、Microsoft's Internet Information Server (IIS) 和 O'Reilly's WebSite Pro 等多线程 web 服务器的插件。永久连接的行为和前面所描述的多过程模型在本质上是相同的。注意 PHP 3 不支持 SAPI。

如果永久连接并没有任何附加的功能，那么使用它有什么好处？

答案非常简单――效率。当客户端对 SQL 服务器的连接请求非常频繁时，永久连接将更加高效。连接请求频繁的标准取决于很多因素。例如，数据库的种类，数据库服务和 web 服务是否在同一台服务器上，SQL 服务器如何加载负载等。但我们至少知道，当连接请求很频繁时，永久连接将显著的提高效率。它使得每个子进程在其生命周期中只做一次连接操作，而非每次在处理一个页面时都要向 SQL 服务器提出连接请求。这也就是说，每个子进程将对服务器建立各自独立的永久连接。例如，如果有 20 个不同的子进程运行某脚本建立了永久的 SQL 服务器永久连接，那么实际上向该 SQL 服务器建立了 20 个不同的永久连接，每个进程占有一个。

注意，如果永久连接的子进程数目超过了设定的数据库连接数限制，系统将会产生一些缺陷。如果数据库的同时连接数限制为 16，而在繁忙会话的情况下，有 17 个线程试图连接，那么有一个线程将无法连接。如果这个时候，在脚本中出现了使得连接无法关闭的错误（例如无限循环），则该数据库的 16 个连接将迅速地受到影响。请查阅使用的数据库的文档，以获取关于如何处理已放弃的及闲置的连接的方法。

Warning

在使用永久连接时还有一些特别的问题需要注意。例如在永久连接中使用数据表锁时，如果脚本不管什么原因无法释放该数据表锁，其随后使用相同连接的脚本将会被永久的阻塞，使得需要重新启动 httpd 服务或者数据库服务。另外，在使用事务处理时，如果脚本在事务阻塞产生前结束，则该阻塞也会影响到使用相同连接的下一个脚本。不管在什么情况下，都可以通过使用 register_shutdown_function() 函数来注册一个简单的清理函数来打开数据表锁，或者回滚事务。或者更好的处理方法，是不在使用数据表锁或者事务处理的脚本中使用永久连接，这可以从根本上解决这个问题（当然还可以在其它地方使用永久连接）。

以下是一点重要的总结。永久连接是为通常连接建立一对一的分布而设计的。这意味着必须能够保证在将永久连接替换为非永久连接时，脚本的行为不会改变。使用永久连接将（非常）有可能改变脚本的效率，但不改变其行为！

参见 fbsql_pconnect()，ibase_pconnect()，ifx_pconnect()，ingres_pconnect()，msql_pconnect()，mssql_pconnect()，mysql_pconnect()，ociplogon()，odbc_pconnect()，ora_plogon()，pfsockopen()，pg_pconnect() 和 sybase_pconnect()。

连接处理
安全模式
特点


安全模式

Table of Contents

  • 保安措施和安全模式
  • 被安全模式限制或屏蔽的函数

PHP 的安全模式是为了试图解决共享服务器（shared-server）安全问题而设立的。在结构上，试图在 PHP 层上解决这个问题是不合理的，但修改 web 服务器层和操作系统层显得非常不现实。因此许多人，特别是 ISP，目前使用安全模式。

Warning

在 PHP 6.0.0 中去除了安全模式。

数据库永久连接
保安措施和安全模式
特点


保安措施和安全模式

保安措施和安全模式配置指令
名称 | 默认值 | 可修改范围 | 更新记录
safe_mode | "0" | PHP_INI_SYSTEM |
safe_mode_gid | "0" | PHP_INI_SYSTEM | 自 PHP 4.1.0 起可用
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | 自 PHP 4.1.0 起可用
safe_mode_exec_dir | "" | PHP_INI_SYSTEM |
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM |
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM |
open_basedir | NULL | PHP_INI_SYSTEM |
disable_functions | "" | 仅 php.ini | 自 PHP 4.0.1 起可用
disable_classes | "" | 仅 php.ini | 自 PHP 4.3.2 起可用

PHP_INI_* 常量的进一步详细说明与定义见 ini_set()。

以下是配置选项的简要解释。

safe_mode boolean

是否启用 PHP 的安全模式。

safe_mode_gid boolean

默认情况下，安全模式在打开文件时会做 UID 比较检查。如果想将其放宽到 GID 比较，则打开 safe_mode_gid。是否在文件访问时使用 UID（FALSE）或者 GID（TRUE）来做检查。

safe_mode_include_dir string

当从此目录及其子目录（目录必须在 include_path 中或者用完整路径来包含）包含文件时越过 UID/GID 检查。

从 PHP 4.2.0 开始，本指令可以接受和 include_path 指令类似的风格用冒号（Windows 中是分号）隔开的路径，而不只是一个目录。 指定的限制实际上是一个前缀，而非一个目录名。这也就是说“safe_mode_include_dir = /dir/incl”将允许访问“/dir/include”和“/dir/incls”，如果它们存在的话。如果希望将访问控制在一个指定的目录，那么请在结尾加上一个斜线，例如：“safe_mode_include_dir = /dir/incl/”。 如果本指令的值为空，在 PHP 4.2.3 中以及 PHP 4.3.3 起具有不同 UID/GID 的文件将不能被包含。在较早版本中，所有文件都能被包含。
safe_mode_exec_dir string

如果 PHP 使用了安全模式，system() 和其它程序执行函数将拒绝启动不在此目录中的程序。必须使用 / 作为目录分隔符，包括 Windows 中。

safe_mode_allowed_env_vars string

设置某些环境变量可能是潜在的安全缺口。本指令包含有一个逗号分隔的前缀列表。在安全模式下，用户只能改变那些名字具有在这里提供的前缀的环境变量。默认情况下，用户只能设置以 PHP_ 开头的环境变量（例如 PHP_FOO = BAR）。

Note: 如果本指令为空，PHP 将使用户可以修改任何环境变量！

safe_mode_protected_env_vars string

本指令包含有一个逗号分隔的环境变量的列表，最终用户不能用 putenv() 来改变这些环境变量。甚至在 safe_mode_allowed_env_vars 中设置了允许修改时也不能改变这些变量。

open_basedir string

将 PHP 所能打开的文件限制在指定的目录树，包括文件本身。本指令不受安全模式打开或者关闭的影响。

当一个脚本试图用例如 fopen() 或者 gzopen() 打开一个文件时，该文件的位置将被检查。当文件在指定的目录树之外时 PHP 将拒绝打开它。所有的符号连接都会被解析，所以不可能通过符号连接来避开此限制。

特殊值 . 指明脚本的工作目录将被作为基准目录。但这有些危险，因为脚本的工作目录可以轻易被 chdir() 而改变。

在 httpd.conf 文件中中，open_basedir 可以像其它任何配置选项一样用“php_admin_value open_basedir none”的方法关闭（例如某些虚拟主机中）。

在 Windows 中，用分号分隔目录。在任何其它系统中用冒号分隔目录。作为 Apache 模块时，父目录中的 open_basedir 路径自动被继承。

用 open_basedir 指定的限制实际上是前缀，不是目录名。也就是说“open_basedir = /dir/incl”也会允许访问“/dir/include”和“/dir/incls”，如果它们存在的话。如果要将访问限制在仅为指定的目录，用斜线结束路径名。例如：“open_basedir = /dir/incl/”。

Note: 支持多个目录是 3.0.7 加入的。

默认是允许打开所有文件。

disable_functions string
本指令允许你基于安全原因禁止某些函数。接受逗号分隔的函数名列表作为参数。 disable_functions 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf。
disable_classes string
本指令可以使你出于安全的理由禁用某些类。用逗号分隔类名。disable_classes 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf。

Note: 可用性说明
本指令自 PHP 4.3.2 起可用。

参见 register_globals，display_errors 和 log_errors。

当 safe_mode 设置为 on，PHP 将通过文件函数或其目录检查当前脚本的拥有者是否和将被操作的文件的拥有者相匹配。例如：

-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd

运行 script.php

<?php
 readfile('/etc/passwd');
?>

如果安全模式被激活，则将会导致以下错误：

Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

同时，或许会存在这样的环境，在该环境下，宽松的 GID 检查已经足够，但严格的 UID 检查反而是不适合的。可以用 safe_mode_gid 选项来控制这种检查。如果设置为 On 则进行宽松的 GID 检查；设置为 Off（默认值）则进行 UID 检查。

除了 safe_mode 以外，如果设置了 open_basedir 选项，则所有的文件操作将被限制在指定的目录下。例如：

<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>

如果在设置了 open_basedir 选项后运行同样的 script.php，则其结果会是：

Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

也可以单独地屏蔽某些函数。请注意 disable_functions 选项不能在 php.ini 文件外部使用，也就是说无法在 httpd.conf 文件的按不同虚拟主机或不同目录的方式来屏蔽函数。如果将如下内容加入到 php.ini 文件：

disable_functions readfile,system

则会得到如下的输出：

Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Warning

当然，这些 PHP 限制不适用于可执行文件。

安全模式
被安全模式限制或屏蔽的函数
安全模式


被安全模式限制或屏蔽的函数

以下安全模式列表可能不完整或不正确。

安全模式限制函数
函数名 | 限制
dbmopen() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
dbase_open() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
filepro() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
filepro_rowcount() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
filepro_retrieve() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
ifx_* | sql_safe_mode 限制, (!= safe mode)
ingres_* | sql_safe_mode 限制, (!= safe mode)
mysql_* | sql_safe_mode 限制, (!= safe mode)
pg_loimport() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
posix_mkfifo() | 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
putenv() | 遵循 ini 设置的 safe_mode_protected_env_vars 和 safe_mode_allowed_env_vars 选项。请参考 putenv() 函数的有关文档。
move_uploaded_file() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
chdir() | 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
dl() | 本函数在安全模式下被禁用。
backtick operator | 本函数在安全模式下被禁用。
shell_exec()（在功能上和 backticks 函数相同） | 本函数在安全模式下被禁用。
exec() | 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因，目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
system() | 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因，目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
passthru() | 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因，目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
popen() | 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因，目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
fopen() | 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
mkdir() | 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
rmdir() | 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
rename() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
unlink() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
copy() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。 (on source and target )
chgrp() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
chown() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。
chmod() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 另外，不能设置 SUID、SGID 和 sticky bits
touch() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。
symlink() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。 （注意：仅测试 target）
link() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。 （注意：仅测试 target）
apache_request_headers() | 在安全模式下，以“authorization”（区分大小写）开头的标头将不会被返回。
header() | 在安全模式下，如果设置了 WWW-Authenticate，当前脚本的 uid 将被添加到该标头的 realm 部分。
PHP_AUTH 变量 | 在安全模式下，变量 PHP_AUTH_USER、PHP_AUTH_PW 和 PHP_AUTH_TYPE 在 $_SERVER 中不可用。但无论如何，您仍然可以使用 REMOTE_USER 来获取用户名称（USER）。（注意：仅 PHP 4.3.0 以后有效）
highlight_file(), show_source() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。 （注意，仅在 4.2.1 版本后有效）
parse_ini_file() | 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID（所有者）。 检查被操作的目录是否与正在执行的脚本有相同的 UID（所有者）。 （注意，仅在 4.2.1 版本后有效）
set_time_limit() | 在安全模式下不起作用。
max_execution_time | 在安全模式下不起作用。
mail() | 在安全模式下，第五个参数被屏蔽。（注意，仅自 PHP 4.2.3 起受影响）
任何使用 php4/main/fopen_wrappers.c 的函数 | ??

保安措施和安全模式
PHP 的命令行模式
安全模式


PHP 的命令行模式

从版本 4.3.0 开始，PHP 提供了一种新类型的 SAPI（Server Application Programming Interface，服务端应用编程端口）支持，名为 CLI，意为 Command Line Interface，即命令行接口。顾名思义，该 SAPI 模块主要用作 PHP 的开发外壳应用。CLI SAPI 和其它 SAPI 模块相比有很多的不同之处，我们将在本章中详细阐述。值得一提的是，CLI 和 CGI 是不同的 SAPI，尽管它们之间有很多共同的行为。

CLI SAPI 最先是随 PHP 4.2.0 版本发布的，但仍旧只是一个实验性的版本，并需要在运行 ./configure 时加上 --enable-cli 参数。从 PHP 4.3.0 版本开始，CLI SAPI 成为了正式模块，--enable-cli 参数会被默认得设置为 on，也可以用参数 --disable-cli 来屏蔽。

从 PHP 4.3.0开始，CLI/CGI 二进制执行文件的文件名、位置和是否存在会根据 PHP 在系统上的安装而不同。在默认情况下，当运行 make 时，CGI 和 CLI 都会被编译并且分别放置在 PHP 源文件目录的 sapi/cgi/php 和 sapi/cli/php 下。可以注意到两个文件都被命名为了 php。在 make install 的过程中会发生什么取决于配置行。如果在配置的时候选择了一个 SAPI 模块，如 apxs，或者使用了 --disable-cgi 参数，则在 make install 的过程中，CLI 将被拷贝到 {PREFIX}/bin/php，除非 CGI 已经被放置在了那个位置。因此，例如，如果在配置行中有 --with--apxs，则在 make install 的过程中，CLI 将被拷贝到 {PREFIX}/bin/php。如果希望撤销 CGI 执行文件的安装，请在 make install 之后运行 make install-cli。或者，也可以在配置行中加上 --disable-cgi 参数。

Note: 由于 --enable-cli 和 --enable-cgi 同时默认有效，因此，不必再配置行中加上 --enable-cli 来使得 CLI 在 make install 过程中被拷贝到 {PREFIX}/bin/php。

在 PHP 4.2.0 到 PHP 4.2.3 之间的 Windows 发行包中，CLI 的文件名为 php-cli.exe，相同文件夹下的 php.exe 为 CGI。从 PHP 4.3.0 版本开始，Windows 的发行包中 CLI 的执行文件为 php.exe，被放置在一个单独的名为 cli 的文件夹下，即 cli/php.exe。在 PHP 5 中，CLI 存在于主文件夹中，名为 php.exe，而 CGI 版本名为 php-cgi.exe。

从 PHP 5 起，一个名为 php-win.exe 的新文件随包发布。它相当于 CLI 版本，但是 php-win 不输出任何内容，便不提供控制台（不会弹出“DOS 窗口”）。这种方式类似于 php-gtk。需要使用 --enable-cli-win32 选项来配置它。

Note: 如何得知自己使用的是哪个 SAPI？
在命令行下，运行 php -v 便能得知该 php 是 CGI 还是 CLI。请参考函数 php_sapi_name() 以及常量 PHP_SAPI。

Note: 在 PHP 4.3.2 中加入了 Unix 的 man 页面。可以在命令行中键入 man php 来查看。

以下为 CLI SAPI 和其它 SAPI 模块相比的显著区别：

  • 与 CGI SAPI 不同，其输出没有任何头信息。

    尽管 CGI SAPI 提供了取消 HTTP 头信息的方法，但在 CLI SAPI 中并不存在类似的方法以开启 HTTP 头信息的输出。

    CLI 默认以安静模式开始，但为了保证兼容性，-q 和 --no-header 参数为了向后兼容仍然保留，使得可以使用旧的 CGI 脚本。

    在运行时，不会把工作目录改为脚本的当前目录（可以使用 -C 和 --no-chdir 参数来兼容 CGI 模式）。

    出错时输出纯文本的错误信息（非 HTML 格式）。

  • CLI SAPI 强制覆盖了 php.ini 中的某些设置，因为这些设置在外壳环境下是没有意义的。

    覆盖 php.ini 设置选项
    设置选项 | CLI SAPI 默认值 | 备注
    html_errors | FALSE | 无意义的 HTML 标记符会使得出错信息很凌乱，所以在外壳下阅读报错信息是十分困难的。因此将该选项的默认值改为 FALSE。
    implicit_flush | TRUE | 在命令行模式下，所有来自 print() 和 echo() 的输出将被立即写到输出端，而不作任何地缓冲操作。如果希望延缓或控制标准输出，仍然可以使用 output buffering 设置项。
    max_execution_time | 0（无限值） | 鉴于在外壳环境下使用 PHP 的无穷的可能性，最大运行时间被设置为了无限值。为 web 开发的应用程序可能只需运行几秒钟时间，而外壳应用程序的运行时间可能会长的多。
    register_argc_argv TRUE

    由于该设置为 TRUE，将总是可以在 CLI SAPI 中访问到 argc（传送给应用程序参数的个数）和 argv（包含有实际参数的数组）。

    对于 PHP 4.3.0，在使用 CLI SAPI 时，PHP 变量 $argc 和 $argv 已被注册并且设定了对应的值。而在这之前的版本，这两个变量在 CGI 或者 模块 版本中的建立依赖于将 PHP 的设置选项 register_globals 设为 on。除了版本和 register_globals 设定以外，可以随时通过调用 $_SERVER 或者 $HTTP_SERVER_VARS 来访问它们。例如：$_SERVER['argv']

    Note: 这些设置无法在设置文件 php.ini 或任何指定的其它文件中被初始化为其它值。这些默认值被限制在所有其它的设置文件被解析后改变。不过，它们的值可以在程序运行的过程中被改变（尽管对于该运行过程来说，这些设置项是没有意义的）。

  • 为了减轻外壳环境下的工作，我们定义了如下常量：

    CLI 专用常量
    常量名称 描 述
    STDIN 一个已打开的指向 stdin 的流。可以用如下方法来调用：
    <?php

    $stdin     = fopen('php://stdin', 'r');

    ?>
    如果想从 stdin 读取一行内容，可以使用
    <?php
    $line     = trim(fgets(STDIN)); // 从 STDIN 读取一行
    fscanf(STDIN, "%d\n", $number); // 从 STDIN 读取数字
    ?>
    STDOUT 一个已打开的指向 stdout 的流。可以用如下方式来调用：
    <?php

    $stdout     = fopen('php://stdout', 'w');

    ?>
    STDERR 一个已打开的指向 stderr 的流。可以用如下方式来调用：
    <?php

    $stderr     = fopen('php://stderr', 'w');

    ?>

    有了以上常量，就无需自己建立指向诸如 stderr 的流，只需简单的使用这些常量来代替流指向：

    php -r 'fwrite(STDERR, "stderr\n");'

    无需自己来关闭这些流，PHP 会自动完成这些操作。

  • CLI SAPI 不会将当前目录改为已运行的脚本所在的目录。

    以下范例显示了本模块与 CGI SAPI 模块之间的不同：

    <?php
    // 名为 test.php 的简单测试程序
    echo getcwd(), "\n";
    ?>

    在使用 CGI 版本时，其输出为

    $ pwd
/tmp

$ php-cgi -f another_directory/test.php
/tmp/another_directory

    明显可以看到 PHP 将当前目录改成了刚刚运行过的脚本所在的目录。

    使用 CLI SAPI 模式，得到：

    $ pwd
/tmp

$ php -q another_directory/test.php
/tmp
    这使得在利用 PHP 编写外壳工具时获得了很大的便利。

    Note: 可以在命令行运行时给该 CGI SAPI 加上 -C 参数，使其支持 CLI SAPI 的功能。

以下是 PHP 二进制文件（即 php.exe 程序）提供的命令行模式的选项参数，随时可以运行带 -h 参数的 PHP 命令来查询这些参数。

Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

CLI SAPI 模块有以下三种不同的方法来获取要运行的 PHP 代码：

  1. 让 PHP 运行指定文件。

    php my_script.php

php -f my_script.php

    以上两种方法（使用或不使用 -f 参数）都能够运行给定的 my_script.php 文件。可以选择任何文件来运行，指定的 PHP 脚本并非必须要以 .php 为扩展名，它们可以有任意的文件名和扩展名。

  2. 在命令行直接运行 PHP 代码。

    php -r 'print_r(get_defined_constants());'

    在使用这种方法时，请注意外壳变量的替代及引号的使用。

    Note: 请仔细阅读以上范例，在运行代码时没有开始和结束的标记符！加上 -r 参数后，这些标记符是不需要的，加上它们会导致语法错误。

  3. 通过标准输入（stdin）提供需要运行的 PHP 代码。

    以上用法提供了非常强大的功能，使得可以如下范例所示，动态地生成 PHP 代码并通过命令行运行这些代码：

    $ some_application | some_filter | php | sort -u >final_output.txt

以上三种运行代码的方法不能同时使用。

和所有的外壳应用程序一样，PHP 的二进制文件（php.exe 文件）及其运行的 PHP 脚本能够接受一系列的参数。PHP 没有限制传送给脚本程序的参数的个数（外壳程序对命令行的字符数有限制，但通常都不会超过该限制）。传递给脚本的参数可在全局变量 $argv 中获取。该数组中下标为零的成员为脚本的名称（当 PHP 代码来自标准输入获直接用 -r 参数以命令行方式运行时，该名称为“-”）。另外，全局变量 $argc 存有 $argv 数组中成员变量的个数（而非传送给脚本程序的参数的个数）。

只要传送给脚本的参数不是以 - 符号开头，就无需过多的注意什么。向脚本传送以 - 开头的参数会导致错误，因为 PHP 会认为应该由它自身来处理这些参数。可以用参数列表分隔符 -- 来解决这个问题。在 PHP 解析完参数后，该符号后所有的参数将会被原样传送给脚本程序。

# 以下命令将不会运行 PHP 代码，而只显示 PHP 命令行模式的使用说明：
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# 以下命令将会把“-h”参数传送给脚本程序，PHP 不会显示命令行模式的使用说明：
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

除此之外，还有另一个方法将 PHP 用于外壳脚本。可以在写一个脚本，并在第一行以 #!/usr/bin/php 开头，在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码，然后为该文件设置正确的运行属性（例如：chmod +x test）。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。

<?php
    var_dump($argv);
?>

假设改文件名为 test 并被放置在当前目录下，可以做如下操作：

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

正如所看到的，在向该脚本传送以 - 开头的参数时，脚本仍然能够正常运行。

PHP 4.3.3 以来有效的长选项:

命令行选项
选项名称 | 长名称 | 说明
-a --interactive

交互式运行 PHP。如果编译 PHP 时加入了 Readline 扩展（Windows 下不可用），那将会得到一个很好的外壳，包括一个自动完成的功能（例如可以在键入变量名的时候，按下 TAB 键，PHP 会自动完成该变量名）以及命令历史记录，可以用上下键来访问。历史记录存在 ~/.php_history 文件中。

Note: 通过 auto_prepend_file 和 auto_append_file 包含的文件在此模式下会被解析，但有些限制，例如函数必须在被调用之前定义。

-c --php-ini

用该参数，可以指定一个放置 php.ini 文件的目录，或者直接指定一个自定义的 INI 文件（其文件名可以不是 php.ini），例如：

$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php
如果不指定此选项，PHP 将在默认位置搜索文件。

-n --no-php-ini

完全忽略 php.ini。此参数在 PHP 4.3.0 以后有效。

-d --define

用该参数可以自行设置任何可以在 php.ini 文件中设置的配置选项的值，其语法为：

-d configuration_directive[=value]

例子（因版面原因而折行显示）：

# 取值部分被省略，将会把配置选项设为 "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# 取值部分为空白，将会把配置选项设为 ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# 配置选项将被设置成为任何 '=' 字符之后的值
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e --profile-info

激活扩展信息模式，被用于调试／测试。

-f --file

解析并运行 -f 选项给定的文件名。该参数为可选参数，可以省略，仅指明需要运行的文件名即可。

-h and -? | --help and --usage | 使用该参数，可以得到完整的命令行参数的列表及这些参数作用的简单描述。
-i | --info | 该命令行参数会调用 phpinfo() 函数并显示出结果。如果 PHP 没有正常工作，建议执行 php -i 命令来查看在信息表格之前或者对应的地方是否有任何错误信息输出。请注意当使用 CGI 摸索时，输出的内容为 HTML 格式，因此输出的信息篇幅较大。
-l --syntax-check

该参数提供了对指定 PHP 代码进行语法检查的方便的方法。如果成功，则向标准输出写入 No syntax errors detected in <filename> 字符串，并且外壳返回值为 0。如果失败，则输出 Errors parsing <filename> 以及内部解析器错误信息到标准输出，同时外壳返回值将别设置为 255。

该参数将无法检查致命错误（如未定义函数），如果也希望检测致命错误，请使用 -f 参数。

Note: 该参数不能和 -r 一同使用。

-m --modules

使用该参数，PHP 将打印出内置以及已加载的 PHP 及 Zend 模块：

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

使用该参数可以在命令行内运行单行 PHP 代码。无需加上 PHP 的起始和结束标识符（<?php 和 ?>），否则将会导致语法解析错误。

Note: 使用这种形式的 PHP 时，应注意避免和外壳环境进行的命令行参数替换相冲突。
显示语法解析错误的范例

$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
这里的问题在于即使使用了双引号 "，sh/bash 仍然实行了参数替换。由于 $foo 没有被定义，被替换后它所在的位置变成了空字符，因此在运行时，实际被 PHP 读取的代码为：
$ php -r " = get_defined_constants();"
正确的方法是使用单引号 '。在用单引号引用的字符串中，变量不会被 sh/bash 还原成其原值。
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]
如果使用的外壳不是 sh/bash，可能会碰到更多问题。请将碰到的 Bug 向 » http://bugs.php.net/ 报告。注意，当试图将 shell 变量用到代码中或者使用反斜线时仍然很容易碰到问题。

Note: -r 在 CLI SAPI 中有效，在 CGI SAPI 中无效。

Note: 此选项只用于非常基本的用途。因此一些配置指令（例如 auto_prepend_file 和 auto_append_file）在此模式下被忽略。

-B --process-begin

在处理 stdin 之前先执行 PHP 代码。PHP 5 新加。

-R --process-code

对每个输入行都执行 PHP 代码。PHP 5 新加。

此模式下有两个特殊变量：$argn 和 $argi。$argn 包含 PHP 当前处理的行内容，而 $argi 则包含该行号。

-F --process-file

对每个输入行都执行 PHP 文件。PHP 5 新加。

-E --process-end

在处理完输入后执行的 PHP 代码。PHP 5 新加。

使用 -B，-R 和 -E 选项来计算一个项目总行数的例子。

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
Total Lines: 37328

-s --syntax-highlight and --syntax-highlight

显示有语法高亮色彩的源代码。

该参数使用内建机制来解析文件并为其生成一个 HTML 高亮版本并将结果写到标准输出。请注意该过程所做的只是生成了一个 <code> [...] </code> 的 HTML 标记的块，并不包含任何的 HTML 头。

Note: 该选项不能和 -r 参数同时使用。

-v --version

将 PHP，PHP SAPI 和 Zend 的版本信息写入标准输出。例如：

$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-w --strip

显示除去了注释和多余空白的源代码。

Note: 该选项不能和 -r 参数同时使用。

-z --zend-extension

加载 Zend 扩展库。如果仅给定一个文件名，PHP 将试图从当前系统扩展库的默认路径（在 Linux 系统下，该路径通常由 /etc/ld.so.conf 指定）加载该扩展库。如果用一个绝对路径指定文件名，则不会使用系统的扩展库默认路径。如果用相对路径指定的文件名，则 PHP 仅试图在当前目录的相对目录加载扩展库。

PHP 的命令行模式能使得 PHP 脚本能完全独立于 web 服务器单独运行。如果使用 Unix 系统，需要在 PHP 脚本的最前面加上一行特殊的代码，使得它能够被执行，这样系统就能知道用哪个程序去运行该脚本。在 Windows 平台下可以将 php.exe 和 .php 文件的双击属性相关联，也可以编写一个批处理文件来用 PHP 执行脚本。为 Unix 系统增加的第一行代码不会影响该脚本在 Windows 下的运行，因此也可以用该方法编写跨平台的脚本程序。以下是一个简单的 PHP 命令行程序的范例。

Example #1 试图以命令行方式运行的 PHP 脚本（script.php）

<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

This is a command line PHP script with one option.

  Usage:
  <?php echo $argv[0]; ?> <option>

  <option> can be some word you would like
  to print out. With the --help, -help, -h,
  or -? options, you can get this help.

<?php
} else {
    echo $argv[1];
}
?>

在以上脚本中，用第一行特殊的代码来指明该文件应该由 PHP 来执行。在这里使用 CLI 的版本，因此不会有 HTTP 头信息输出。在用 PHP 编写命令行应用程序时，可以使用两个参数：$argc 和 $argv。前面一个的值是比参数个数大 1 的整数（运行的脚本本身的名称也被当作一个参数）。第二个是包含有参数的数组，其第一个元素为脚本的名称，下标为数字 0（$argv[0]）。

以上程序中检查了参数的个数是大于 1 个还是小于 1 个。此外如果参数是 --help，-help，-h 或 -? 时，打印出帮助信息，并同时动态输出脚本的名称。如果还收到了其它参数，将其显示出来。

如果希望在 Unix 下运行以上脚本，需要使其属性为可执行文件，然后简单的运行 script.php echothis 或 script.php -h。在 Windows 下，可以为此编写一个批处理文件：

Example #2 运行 PHP 命令行脚本的批处理文件（script.bat）

@C:\php\php.exe script.php %1 %2 %3 %

假设将上述程序命名为 script.php，且 CLI 版的 php.exe 文件放置在 c:\php\cli\php.exe，该批处理文件会帮助将附加的参数传给脚本程序：script.bat echothis 或 script.bat -h。

请参阅 Readline 扩展模块的有关文档，以获取更多的函数的信息。这些函数可以帮助完善 PHP 命令行应用程序。

被安全模式限制或屏蔽的函数
函数参考
特点


函数参考

Tip

参见 扩展库分类.

  • 影响PHP行为的扩展
    • APC — Alternative PHP Cache
    • APD — Advanced PHP debugger
    • bcompiler — PHP bytecode Compiler
    • Error Handling — Error Handling and Logging
    • Memtrack
    • Object overloading — Object property and method call overloading
    • Output Control — Output Buffering Control
    • inclued — Inclusion hierarchy viewer
    • PHP Options/Info — PHP Options and Information
    • runkit
  • 音频格式操作
    • ID3 — ID3 Tags
    • KTaglib
    • oggvorbis — OGG/Vorbis
    • OpenAL — OpenAL Audio Bindings
  • 身份认证服务
    • KADM5 — Kerberos V
    • Radius
  • 日历和事件相关扩展
    • Calendar
    • Date/Time — Date and Time
  • 命令行特有的扩展
    • Newt
    • Ncurses — Ncurses Terminal Screen Control
    • Readline — GNU Readline
  • 压缩与归档扩展
    • Bzip2
    • LZF
    • Phar
    • Rar — Rar Archiving
    • Zip
    • Zlib — Zlib Compression
  • 信用卡处理
    • MCVE — MCVE (Monetra) Payment
    • SPPLUS — SPPLUS Payment System
  • 加密扩展
    • Crack — Cracklib
    • Hash — HASH Message Digest Framework
    • Mcrypt
    • Mhash
    • OpenSSL
  • 数据库扩展
    • 数据库抽象层
    • 与具体数据库系统相关的扩展
  • 文件系统相关扩展
    • Direct IO
    • Directories
    • Fileinfo — File Information
    • Filesystem
    • Inotify
    • Mimetype
    • xattr
    • xdiff
  • 国际化与字符编码支持
    • Enchant — Enchant spelling library
    • FriBiDi
    • Gettext
    • i18n — Internationalization
    • iconv
    • idn — International Domain Names
    • intl — Internationalization Functions
    • Multibyte String
    • Pspell
    • Recode — GNU Recode
    • Unicode
  • 图像生成和处理
    • Exif — Exchangeable image information
    • GD — Image Processing (GD)
    • ImageMagick — Image Processing (ImageMagick)
  • 邮件相关扩展
    • Cyrus — Cyrus IMAP administration
    • IMAP — IMAP, POP3 and NNTP
    • Mail
    • Mailparse
    • vpopmail
  • 数学扩展
    • BC Math — BCMath Arbitrary Precision Mathematics
    • GMP — GNU Multiple Precision
    • Math — Mathematical Functions
    • Statistics
  • 非文本内容的MIME输出
    • FDF — Forms Data Format
    • GnuPG — GNU Privacy Guard
    • haru — Haru PDF
    • Ming — Ming (flash)
    • PDF
    • PS — PostScript document creation
    • RPM Reader — RPM Header Reading
    • SWF — Shockwave Flash
  • 进程控制扩展
    • Program execution — System program execution
    • Expect
    • PCNTL — Process Control
    • POSIX
    • Semaphore — Semaphore, Shared Memory and IPC
    • Shared Memory
  • 其它基本扩展
    • GeoIP — Geo IP Location
    • JSON — JavaScript Object Notation
    • Misc. — Miscellaneous Functions
    • Parsekit
    • SPL — PHP标准库 (SPL)
    • SPL Types — SPL Type Handling
    • Streams
    • Tidy
    • Tokenizer
    • URLs
  • 其它服务
    • cURL — Client URL Library
    • FAM — File Alteration Monitor
    • FTP
    • Hyperwave
    • Hyperwave API
    • HTTP
    • Java — PHP / Java Integration
    • LDAP — Lightweight Directory Access Protocol
    • Lotus Notes
    • Memcache
    • Memcached
    • mqseries
    • Gopher — Net Gopher
    • Network
    • SAM — Simple Asynchronous Messaging
    • SNMP
    • Sockets
    • SSH2 — Secure Shell2
    • SVN — Subversion
    • TCP — TCP Wrappers
    • YAZ
    • YP/NIS
  • 搜索引擎扩展
    • mnoGoSearch
    • Sphinx — Sphinx Client
    • Swish — Swish Indexing
  • 面向服务器的扩展
    • Apache
    • IIS — IIS Administration
    • NSAPI
  • Session扩展
    • Msession — Mohawk Software Session Handler Functions
    • Sessions — Session Handling
    • Session PgSQL — PostgreSQL Session Save Handler
  • 文本处理
    • BBCode — Bulletin Board Code
    • PCRE — Regular Expressions (Perl-Compatible)
    • POSIX Regex — Regular Expression (POSIX Extended)
    • Strings
  • 与变量和类型有关的扩展
    • 数组
    • Classes/Objects — Class/Object Information
    • Classkit
    • Ctype — Character type checking
    • Filter — Data Filtering
    • Function Handling
    • Object Aggregation — Object Aggregation/Composition
    • Variable handling
  • Web Services
    • OAuth
    • SCA
    • SOAP
    • XML-RPC
  • Windows平台下的扩展
    • .NET
    • COM — COM and .Net (Windows)
    • Printer
    • W32api
    • win32ps
    • win32service
  • XML操作
    • DOM — Document Object Model
    • DOM XML
    • libxml
    • qtdom
    • SDO — Service Data Objects
    • SDO-DAS-Relational — SDO Relational Data Access Service
    • SDO DAS XML — SDO XML Data Access Service
    • SimpleXML
    • WDDX
    • XML Parser
    • XMLReader
    • XMLWriter
    • XSL
    • XSLT
PHP 的命令行模式
影响PHP行为的扩展


影响PHP行为的扩展

  • APC — Alternative PHP Cache
    • 简介
    • 安装/配置
    • 预定义常量
    • APC 函数
  • APD — Advanced PHP debugger
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • APD 函数
  • bcompiler — PHP bytecode Compiler
    • 简介
    • 安装/配置
    • 预定义常量
    • bcompiler 函数
  • Error Handling — Error Handling and Logging
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Error Handling 函数
  • Memtrack
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
  • Object overloading — Object property and method call overloading
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Object overloading 函数
  • Output Control — Output Buffering Control
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Output Control 函数
  • inclued — Inclusion hierarchy viewer
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • inclued 函数
  • PHP Options/Info — PHP Options and Information
    • 简介
    • 安装/配置
    • 预定义常量
    • PHP Options/Info 函数
  • runkit
    • 简介
    • 预定义常量
    • 安装/配置
    • runkit 函数
函数参考
APC
函数参考


Alternative PHP Cache

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • APC 函数
    • apc_add — Cache a variable in the data store
    • apc_cache_info — Retrieves cached information from APC's data store
    • apc_clear_cache — Clears the APC cache
    • apc_compile_file — Stores a file in the bytecode cache, bypassing all filters.
    • apc_define_constants — Defines a set of constants for retrieval and mass-definition
    • apc_delete — Removes a stored variable from the cache
    • apc_fetch — Fetch a stored variable from the cache
    • apc_load_constants — Loads a set of constants from the cache
    • apc_sma_info — Retrieves APC's Shared Memory Allocation information
    • apc_store — Cache a variable in the data store
影响PHP行为的扩展
简介
影响PHP行为的扩展


简介

The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. It was conceived of to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.

APC
安装/配置
APC


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
APC


需求

要编译本扩展模块无需外部库文件。

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/apc.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

Note: On Windows, APC needs a temp path to exist, and be writable by the web server. It checks TMP, TEMP, USERPROFILE environment variables in that order and finally tries the WINDOWS directory if none of those are set.

Note: For more in-depth, highly technical implementation details, see the » developer-supplied TECHNOTES file .

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

尽管默认的 APC 设定对于大多数安装已经没问题，但专业人员应考虑调整以下参数。

APC configuration options
名称 | 默认值 | 可修改范围 | 更新记录
apc.enabled | "1" | PHP_INI_ALL |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.cache_by_default | "1" | PHP_INI_SYSTEM |
apc.filters | NULL | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM |
apc.file_update_protection | "2" | PHP_INI_SYSTEM |
apc.enable_cli | "0" | PHP_INI_SYSTEM | > APC 3.0.6

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

apc.enabled boolean

apc.enabled 可以设成 0 来禁用 APC。这主要是用在当 APC 被静态编译入 PHP 时，因为没有其它方法来禁用了（编译为 DSO 的时候，可以将 php.ini 中的 extension 行注释掉）。

apc.shm_segments integer

对编译器缓存要分配的共享内存块的数目。如果 APC 用光了共享内存但是已经将 apc.shm_size 设为了系统所能允许的最大值，可以尝试增大此值。

apc.shm_size integer

以 MB 为单位的每个共享内存块的大小。默认时，有些系统（包括大多数 BSD 变种）的共享内存块大小非常低。

apc.optimization integer

优化级别。设为 0 则禁用优化器，更高的值则使用更主动的优化。期望非常有限的速度提升。尚在试验中。

apc.num_files_hint integer

Web 服务器上的被包含或被请求的不同源文件的数目的大概估计。如果不确定则设为 0 或去掉此项；此设定主要用在有数千个源文件的站点。

apc.ttl integer

缓存条目在缓冲区所允许的空闲时间的秒数。将此设为零意味着缓冲区有可能被阻赛了的缓存充满而导致新条目不被缓存。

apc.gc_ttl integer

缓存条目在垃圾回收表中能够存在的秒数。此值提供了一个安全措施，即在服务器进程在执行缓存的源文件时，如果该文件被修改则旧版本将不会被回收，直到达到此 TTL 为止。设为零将禁用此特性。

apc.cache_by_default boolean

默认为 on，但可以设为 off 并和加号开头的 apc.filters 一起用，则文件仅在匹配过滤器时被缓存。

apc.filters string

一个以逗号分隔的 POSIX 扩展正则表达式的列表。如果任一个模式匹配源文件名，则该文件不被缓存。注意用来匹配的文件名是传递给 include/require 的文件名，而不是绝对路径。如果正则表达式的第一个字符是 + 则意味着任何匹配表达式的文件会被缓存，如果第一个字符是 - 则任何匹配项都不会被缓存。- 是默认值，可以省略掉。

apc.mmap_file_mask string

If compiled with MMAP support by using --enable-mmap this is the mktemp-style file_mask to pass to the mmap module for determing whether your mmap'ed memory region is going to be file-backed or shared memory backed. For straight file-backed mmap, set it to something like /tmp/apc.XXXXXX (exactly 6 Xs). To use POSIX-style shm_open/mmap put a .shm somewhere in your mask. e.g. /apc.shm.XXXXXX You can also set it to /dev/zero to use your kernel's /dev/zero interface to anonymous mmap'ed memory. Leaving it undefined will force an anonymous mmap.

apc.slam_defense integer

On very busy servers whenever you start the server or modify files you can create a race of many processes all trying to cache the same file at the same time. This option sets the percentage of processes that will skip trying to cache an uncached file. Or think of it as the probability of a single process to skip caching. For example, setting apc.slam_defense to 75 would mean that there is a 75% chance that the process will not cache an uncached file. So, the higher the setting the greater the defense against cache slams. Setting this to 0 disables this feature.

apc.file_update_protection integer

When you modify a file on a live web server you really should do so in an atomic manner. That is, write to a temporary file and rename (mv) the file into its permanent position when it is ready. Many text editors, cp, tar and other such programs don't do this. This means that there is a chance that a file is accessed (and cached) while it is still being written to. This apc.file_update_protection setting puts a delay on caching brand new files. The default is 2 seconds which means that if the modification timestamp (mtime) on a file shows that it is less than 2 seconds old when it is accessed, it will not be cached. The unfortunate person who accessed this half-written file will still see weirdness, but at least it won't persist. If you are certain you always atomically update your files by using something like rsync which does this correctly, you can turn this protection off by setting it to 0. If you have a system that is flooded with io causing some update procedure to take longer than 2 seconds, you may want to increase this a bit.

apc.enable_cli integer

Mostly for testing and debugging. Setting this enables APC for the CLI version of PHP. Normally you wouldn't want to create, populate and tear down the APC cache on every CLI request, but for various test scenarios it is handy to be able to enable APC for the CLI version of APC easily.

安装
资源类型
安装/配置


资源类型

本扩展模块未定义任何资源类型。

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
APC 函数
APC


APC 函数

Table of Contents

  • apc_add — Cache a variable in the data store
  • apc_cache_info — Retrieves cached information from APC's data store
  • apc_clear_cache — Clears the APC cache
  • apc_compile_file — Stores a file in the bytecode cache, bypassing all filters.
  • apc_define_constants — Defines a set of constants for retrieval and mass-definition
  • apc_delete — Removes a stored variable from the cache
  • apc_fetch — Fetch a stored variable from the cache
  • apc_load_constants — Loads a set of constants from the cache
  • apc_sma_info — Retrieves APC's Shared Memory Allocation information
  • apc_store — Cache a variable in the data store
预定义常量
apc_add
APC


Cache a variable in the data store

APC 函数
apc_cache_info
APC 函数
PHP 手册

apc_add

(PECL apc >= 3.0.13)

apc_add — Cache a variable in the data store

说明

bool apc_add ( string $key , mixed $var [, int $ttl=0 ] )

Caches a variable in the data store, only if it's not already stored.

Note: Unlike many other mechanisms in PHP, variables stored using apc_add() will persist between requests (until the value is removed from the cache).

参数

key

Store the variable using this name. key s are cache-unique, so attempting to use apc_add() to store data with a key that already exists will not overwrite the existing data, and will instead return FALSE. (This is the only difference between apc_add() and apc_store().)

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A apc_add() example

<?php
$bar = 'BAR';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
?>

上例将输出：

string(3) "BAR"
string(3) "BAR"

参见

  • apc_store() - Cache a variable in the data store
  • apc_fetch() - Fetch a stored variable from the cache
  • apc_delete() - Removes a stored variable from the cache

APC 函数
apc_cache_info
APC 函数


Retrieves cached information from APC's data store

apc_add
apc_clear_cache
APC 函数
PHP 手册

apc_cache_info

(PECL apc >= 2.0.0)

apc_cache_info — Retrieves cached information from APC's data store

说明

array apc_cache_info ([ string $cache_type [, bool $limited=false ]] )

Retrieves cached information and meta-data from APC's data store.

返回值

Array of cached data (and meta-data), or FALSE on failure

Note: apc_cache_info() will raise a warning if it is unable to retrieve APC cache data. This typically occurs when APC is not enabled.

参数

cache_type

If cache_type is "user", information about the user cache will be returned.

If cache_type is "filehits", information about which files have been served from the bytecode cache for the current request will be returned. This feature must be enabled at compile time using --enable-filehits.

If an invalid or no cache_type is specified, information about the system cache (cached files) will be returned.

limited

If limited is TRUE, the return value will exclude the individual list of cache entries. This is usefull when trying to optimize calls for statistics gathering.

更新日志

版本 | 说明
3.0.11 | The limited parameter was introduced.
3.0.16 | The "filehits" option for the cache_type parameter was introduced.

范例

Example #1 A apc_cache_info() example

<?php
print_r(apc_cache_info());
?>

上例的输出类似于：

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apc_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...iterates for each cached file)
)

参见

  • APC configuration directives

apc_add
apc_clear_cache
APC 函数


Clears the APC cache

apc_cache_info
apc_compile_file
APC 函数
PHP 手册

apc_clear_cache

(PECL apc >= 2.0.0)

apc_clear_cache — Clears the APC cache

说明

bool apc_clear_cache ([ string $cache_type ] )

Clears the user/system cache.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参数

cache_type

If cache_type is "user", the user cache will be cleared; otherwise, the system cache (cached files) will be cleared.

参见

  • apc_cache_info() - Retrieves cached information from APC's data store

apc_cache_info
apc_compile_file
APC 函数


Stores a file in the bytecode cache, bypassing all filters.

apc_clear_cache
apc_define_constants
APC 函数
PHP 手册

apc_compile_file

(PECL apc >= 3.0.13)

apc_compile_file — Stores a file in the bytecode cache, bypassing all filters.

说明

bool apc_compile_file ( string $filename )

Stores a file in the bytecode cache, bypassing all filters.

参数

filename

Full or relative path to a PHP file that will be compiled and stored in the bytecode cache.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

apc_clear_cache
apc_define_constants
APC 函数


Defines a set of constants for retrieval and mass-definition

apc_compile_file
apc_delete
APC 函数
PHP 手册

apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants — Defines a set of constants for retrieval and mass-definition

说明

bool apc_define_constants ( string $key , array $constants [, bool $case_sensitive=true ] )

define() is notoriously slow. Since the main benefit of APC is to increase the performance of scripts/applications, this mechanism is provided to streamline the process of mass constant definition. However, this function does not perform as well as anticipated.

For a better-performing solution, try the » hidef extension from PECL.

Note: To remove a set of stored constants (without clearing the entire cache), an empty array may be passed as the constants parameter, effectively clearing the stored value(s).

参数

key

The key serves as the name of the constant set being stored. This key is used to retrieve the stored constants in apc_load_constants().

constants

An associative array of constant_name => value pairs. The constant_name must follow the normal constant naming rules. value must evaluate to a scalar value.

case_sensitive

The default behaviour for constants is to be declared case-sensitive; i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE the constants will be declared as case-insensitive symbols.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 apc_define_constants() example

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
echo ONE, TWO, THREE;
?>

上例将输出：

123

参见

  • apc_load_constants() - Loads a set of constants from the cache
  • define() - Defines a named constant
  • constant() - Returns the value of a constant
  • Or the PHP constants reference

apc_compile_file
apc_delete
APC 函数


Removes a stored variable from the cache

apc_define_constants
apc_fetch
APC 函数
PHP 手册

apc_delete

(PECL apc >= 3.0.0)

apc_delete — Removes a stored variable from the cache

说明

bool apc_delete ( string $key )

Removes a stored variable from the cache.

参数

key

The key used to store the value (with apc_store()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A apc_delete() example

<?php
$bar = 'BAR';
apc_store('foo', $bar);
apc_delete('foo');
// this is obviously useless in this form
?>

参见

  • apc_store() - Cache a variable in the data store
  • apc_fetch() - Fetch a stored variable from the cache

apc_define_constants
apc_fetch
APC 函数


Fetch a stored variable from the cache

apc_delete
apc_load_constants
APC 函数
PHP 手册

apc_fetch

(PECL apc >= 3.0.0)

apc_fetch — Fetch a stored variable from the cache

说明

mixed apc_fetch ( string $key [, bool &$success ] )

Fetchs a stored variable from the cache.

参数

key

The key used to store the value (with apc_store()).

success

Set to TRUE in success and FALSE in failure.

返回值

The stored variable on success; FALSE on failure

范例

Example #1 A apc_fetch() example

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

上例将输出：

string(3) "BAR"

参见

  • apc_store() - Cache a variable in the data store
  • apc_delete() - Removes a stored variable from the cache

apc_delete
apc_load_constants
APC 函数


Loads a set of constants from the cache

apc_fetch
apc_sma_info
APC 函数
PHP 手册

apc_load_constants

(PECL apc >= 3.0.0)

apc_load_constants — Loads a set of constants from the cache

说明

bool apc_load_constants ( string $key [, bool $case_sensitive=true ] )

Loads a set of constants from the cache.

参数

key

The name of the constant set (that was stored with apc_define_constants()) to be retrieved.

case_sensitive

The default behaviour for constants is to be declared case-sensitive; i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE the constants will be declared as case-insensitive symbols.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 apc_load_constants() example

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo ONE, TWO, THREE;
?>

上例将输出：

123

参见

  • apc_define_constants() - Defines a set of constants for retrieval and mass-definition
  • define() - Defines a named constant
  • constant() - Returns the value of a constant
  • Or the PHP constants reference

apc_fetch
apc_sma_info
APC 函数


Retrieves APC's Shared Memory Allocation information

apc_load_constants
apc_store
APC 函数
PHP 手册

apc_sma_info

(PECL apc >= 2.0.0)

apc_sma_info — Retrieves APC's Shared Memory Allocation information

说明

array apc_sma_info ([ bool $limited=false ] )

Retrieves APC's Shared Memory Allocation information.

参数

limited

When set to FALSE (default) apc_sma_info() will return a detailed information about each segment.

返回值

Array of Shared Memory Allocation data; FALSE on failure.

范例

Example #1 A apc_sma_info() example

<?php
print_r(apc_sma_info());
?>

上例的输出类似于：

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

参见

  • APC configuration directives

apc_load_constants
apc_store
APC 函数


Cache a variable in the data store

apc_sma_info
APD
APC 函数
PHP 手册

apc_store

(PECL apc >= 3.0.0)

apc_store — Cache a variable in the data store

说明

bool apc_store ( string $key , mixed $var [, int $ttl=0 ] )

Cache a variable in the data store.

Note: Unlike many other mechanisms in PHP, variables stored using apc_store() will persist between requests (until the value is removed from the cache).

参数

key

Store the variable using this name. key s are cache-unique, so storing a second value with the same key will overwrite the original value.

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A apc_store() example

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

上例将输出：

string(3) "BAR"

参见

  • apc_add() - Cache a variable in the data store
  • apc_fetch() - Fetch a stored variable from the cache
  • apc_delete() - Removes a stored variable from the cache

apc_sma_info
APD
APC 函数


Advanced PHP debugger

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 在 Win32 下编译
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • How to use PHP-APD in your scripts
  • APD 函数
    • apd_breakpoint — Stops the interpreter and waits on a CR from the socket
    • apd_callstack — Returns the current call stack as an array
    • apd_clunk — Throw a warning and a callstack
    • apd_continue — Restarts the interpreter
    • apd_croak — Throw an error, a callstack and then exit
    • apd_dump_function_table — Outputs the current function table
    • apd_dump_persistent_resources — Return all persistent resources as an array
    • apd_dump_regular_resources — Return all current regular resources as an array
    • apd_echo — Echo to the debugging socket
    • apd_get_active_symbols — Get an array of the current variables names in the local scope
    • apd_set_pprof_trace — Starts the session debugging
    • apd_set_session_trace — Starts the session debugging
    • apd_set_session — Changes or sets the current debugging level
    • apd_set_socket_session_trace — Starts the remote session debugging
    • override_function — Overrides built-in functions
    • rename_function — Renames orig_name to new_name in the global function table
apc_store
简介
影响PHP行为的扩展


简介

APD is the Advanced PHP Debugger. It was written to provide profiling and debugging capabilities for PHP code, as well as to provide the ability to print out a full stack backtrace. APD supports interactive debugging, but by default it writes data to trace files. It also offers event based logging so that varying levels of information (including function calls, arguments passed, timings, etc.) can be turned on or off for individual scripts.

Caution

APD is a Zend Extension, modifying the way the internals of PHP handle function calls, and thus may or may not be compatible with other Zend Extensions (for example Zend Optimizer).

APD
安装/配置
APD


安装/配置

Table of Contents

  • 需求
  • 安装
  • 在 Win32 下编译
  • 运行时配置
  • 资源类型
简介
需求
APD


安装

APD 目前作为一个 PECL 扩展，可以从 » http://pecl.php.net/package/apd 得到。确保安装了 CGI 版的 PHP 并且在当前目录下可以运行，以及可以运行 phpize 脚本。

运行以下命令以下载，编译并安装最新稳定版的 APD：

pear install apd

这将自动把 APD Zend 扩展安装到 PHP 扩展库目录中。不是一定要放到那里，可以将此模块存放到任何 PHP 可以读取的目录中，只要正确设定了相应的 zend_extension 参数即可。

Windows 用户可以从 » http://snaps.php.net/win32/PECL_STABLE/ 下载扩展库的 DLL 文件 php_apd.dll。

在 INI 文件中，加入下面几行：

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

根据 PHP 版本，zend_extension 指令可以是以下之一：

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)

需求
在 Win32 下编译
安装/配置


在 Win32 下编译

要在 Windows 下编译 APD，需要一个在 http://php.net/ 中说明的可用 PHP 编译环境――基本上，需要有 Microsoft Visual C++，win32build.zip，bison/flex，以及相关知识。另外确保 adp.dsp 具有 DOS 行结束符，如果是 Unix 的行结束符，Microsoft Visual C++ 会觉得有问题。

安装
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

APD 配置选项
名称 | 默认值 | 可修改范围 | 更新记录
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

apd.dumpdir string

设定 APD 写入调试输出文件的目录。可以指定绝对路径或相对路径。

可以在 apd_set_pprof_trace() 中以参数指定一个不同目录。

apd.statement_tracing boolean

指定是否进行每行的跟踪。将此项打开（设为 1）将影响到程序的性能。

在 Win32 下编译
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

APD constants
Constant | Value | Description
FUNCTION_TRACE (integer) | 1 |
ARGS_TRACE (integer) | 2 |
ASSIGNMENT_TRACE (integer) | 4 |
STATEMENT_TRACE (integer) | 8 |
MEMORY_TRACE (integer) | 16 |
TIMING_TRACE (integer) | 32 |
SUMMARY_TRACE (integer) | 64 |
ERROR_TRACE (integer) | 128 |
PROF_TRACE (integer) | 256 |
APD_VERSION (string) | example: 1.0.2-dev |
资源类型
范例
APD


范例

Table of Contents

  • How to use PHP-APD in your scripts
预定义常量
How to use PHP-APD in your scripts
APD


How to use PHP-APD in your scripts

  1. As the first line of your PHP script, call the apd_set_pprof_trace() function to start the trace:

    apd_set_pprof_trace();

    You can insert the line anywhere in your script, but if you do not start tracing at the beginning of your script you discard profile data that might otherwise lead you to a performance bottleneck.

  2. Now run your script. The dump output will be written to apd.dumpdir/pprof_pid.ext.

    Tip

    If you're running the CGI version of PHP, you will need to add the '-e' flag to enable extended information for apd to work properly. For example: php -e -f script.php

  3. To display formatted profile data, issue the pprofp command with the sort and display options of your choice. The formatted output will look something like:

    bash-2.05b$ pprofp -R /tmp/pprof.22141.0

Trace for /home/dan/testapd.php
Total Elapsed Time = 0.00
Total System Time  = 0.00
Total User Time    = 0.00

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace

    The -R option used in this example sorts the profile table by the amount of real time the script spent executing a given function. The "cumm call" column reveals how many times each function was called, and the "s/call" column reveals how many seconds each call to the function required, on average.

  4. To generate a calltree file that you can import into the KCacheGrind profile analysis application, issue the pprof2calltree comand.

范例
APD 函数
范例


APD 函数

Contact information

If you have comments, bugfixes, enhancements or want to help developing this beast, you can send an mail to » apd@mail.communityconnect.com. Any help is very welcome.

Table of Contents

  • apd_breakpoint — Stops the interpreter and waits on a CR from the socket
  • apd_callstack — Returns the current call stack as an array
  • apd_clunk — Throw a warning and a callstack
  • apd_continue — Restarts the interpreter
  • apd_croak — Throw an error, a callstack and then exit
  • apd_dump_function_table — Outputs the current function table
  • apd_dump_persistent_resources — Return all persistent resources as an array
  • apd_dump_regular_resources — Return all current regular resources as an array
  • apd_echo — Echo to the debugging socket
  • apd_get_active_symbols — Get an array of the current variables names in the local scope
  • apd_set_pprof_trace — Starts the session debugging
  • apd_set_session_trace — Starts the session debugging
  • apd_set_session — Changes or sets the current debugging level
  • apd_set_socket_session_trace — Starts the remote session debugging
  • override_function — Overrides built-in functions
  • rename_function — Renames orig_name to new_name in the global function table
How to use PHP-APD in your scripts
apd_breakpoint
APD


Stops the interpreter and waits on a CR from the socket

APD 函数
apd_callstack
APD 函数
PHP 手册

apd_breakpoint

(PECL apd >= 0.2)

apd_breakpoint — Stops the interpreter and waits on a CR from the socket

说明

bool apd_breakpoint ( int $debug_level )

This can be used to stop the running of your script, and await responses on the connected socket. To step the program, just send enter (a blank line), or enter a php command to be executed.

参数

debug_level

An integer which is formed by adding together the XXX_TRACE constants.

It is not recommended to use MEMORY_TRACE. It is very slow and does not appear to be accurate. ASSIGNMENT_TRACE is not implemented yet.

To turn on all functional traces (TIMING, FUNCTIONS, ARGS SUMMARY (like strace -c)) use the value 99

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Typical session using tcplisten

bash#tcplisten localhost 7777

APD - Advanced PHP Debugger Trace File
---------------------------------------------------------------------------
Process Pid (6118)
Trace Begun at Sun Mar 10 23:13:12 2002
---------------------------------------------------------------------------
(  0.000000): apd_set_session_trace called at /home/alan/Projects/project2/test.
php:5
(  0.074824): apd_set_session_trace_socket() at /home/alan/Projects/project2/tes
t.php:5 returned.  Elapsed (0.074824)
(  0.074918): apd_breakpoint() /home/alan/Projects/project2/test.php:7
              ++ argv[0] $(??) = 9
apd_breakpoint() at /home/alan/Projects/project2/test.php:7 returned.  Elapsed (
-2089521468.1073275368)
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:10
>apd_echo($i);
EXEC: apd_echo($i);
0
>apd_echo(serialize(apd_get_active_symbols()));
EXEC:  apd_echo(serialize(apd_get_active_symbols()));
a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:"
COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE
SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:"
MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP
LAY";i:15;s:8:"LOGNAME";i:16;s:6:"
>apd_echo(system('ls /home/mydir'));
........
>apd_continue(0);

APD 函数
apd_callstack
APD 函数


Returns the current call stack as an array

apd_breakpoint
apd_clunk
APD 函数
PHP 手册

apd_callstack

(PECL apd 0.2-0.4)

apd_callstack — Returns the current call stack as an array

说明

array apd_callstack ( void )

Returns the current call stack as an array

返回值

An array containing the current call stack.

范例

Example #1 apd_callstack() example

<?php
print_r(apd_callstack());
?>

apd_breakpoint
apd_clunk
APD 函数


Throw a warning and a callstack

apd_callstack
apd_continue
APD 函数
PHP 手册

apd_clunk

(PECL apd 0.2-0.4)

apd_clunk — Throw a warning and a callstack

说明

void apd_clunk ( string $warning [, string $delimiter ] )

Behaves like perl's Carp::cluck. Throw a warning and a callstack.

参数

warning

The warning to throw.

delimiter

The delimiter. Default to <BR />.

返回值

无返回值。

范例

Example #1 apd_clunk() example

<?php
apd_clunk("Some Warning", "<br/>");
?>

参见

  • apd_croak() - Throw an error, a callstack and then exit

apd_callstack
apd_continue
APD 函数


Restarts the interpreter

apd_clunk
apd_croak
APD 函数
PHP 手册

apd_continue

(PECL apd >= 0.2)

apd_continue — Restarts the interpreter

说明

bool apd_continue ( int $debug_level )

Usually sent via the socket to restart the interpreter.

参数

debug_level

An integer which is formed by adding together the XXX_TRACE constants.

It is not recommended to use MEMORY_TRACE. It is very slow and does not appear to be accurate. ASSIGNMENT_TRACE is not implemented yet.

To turn on all functional traces (TIMING, FUNCTIONS, ARGS SUMMARY (like strace -c)) use the value 99

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 apd_continue() example

<?php
apd_continue(0);
?>

apd_clunk
apd_croak
APD 函数


Throw an error, a callstack and then exit

apd_continue
apd_dump_function_table
APD 函数
PHP 手册

apd_croak

(PECL apd 0.2-0.4)

apd_croak — Throw an error, a callstack and then exit

说明

void apd_croak ( string $warning [, string $delimiter ] )

Behaves like perl's Carp::croak. Throw an error, a callstack and then exit.

参数

warning

The warning to throw.

delimiter

The delimiter. Default to <BR />.

返回值

无返回值。

范例

Example #1 apd_croak() example

<?php
apd_croak("Some Warning","<P>");
?>

参见

  • apd_clunk() - Throw a warning and a callstack

apd_continue
apd_dump_function_table
APD 函数


Outputs the current function table

apd_croak
apd_dump_persistent_resources
APD 函数
PHP 手册

apd_dump_function_table

(Unknown)

apd_dump_function_table — Outputs the current function table

说明

void apd_dump_function_table ( void )

Outputs the current function table.

返回值

无返回值。

范例

Example #1 apd_dump_function_table() example

<?php
apd_dump_function_table();
?>

apd_croak
apd_dump_persistent_resources
APD 函数


Return all persistent resources as an array

apd_dump_function_table
apd_dump_regular_resources
APD 函数
PHP 手册

apd_dump_persistent_resources

(PECL apd 0.2-0.4)

apd_dump_persistent_resources — Return all persistent resources as an array

说明

array apd_dump_persistent_resources ( void )

Return all persistent resources as an array.

返回值

An array containing the current call stack.

范例

Example #1 apd_dump_persistent_resources() example

<?php
print_r(apd_dump_persistent_resources());
?>

参见

  • apd_dump_regular_resources() - Return all current regular resources as an array

apd_dump_function_table
apd_dump_regular_resources
APD 函数


Return all current regular resources as an array

apd_dump_persistent_resources
apd_echo
APD 函数
PHP 手册

apd_dump_regular_resources

(PECL apd 0.2-0.4)

apd_dump_regular_resources — Return all current regular resources as an array

说明

array apd_dump_regular_resources ( void )

Return all current regular resources as an array.

返回值

An array containing the current regular resources.

范例

Example #1 apd_dump_regular_resources() example

<?php
print_r(apd_dump_regular_resources());
?>

参见

  • apd_dump_persistent_resources() - Return all persistent resources as an array

apd_dump_persistent_resources
apd_echo
APD 函数


Echo to the debugging socket

apd_dump_regular_resources
apd_get_active_symbols
APD 函数
PHP 手册

apd_echo

(PECL apd >= 0.2)

apd_echo — Echo to the debugging socket

说明

bool apd_echo ( string $output )

Usually sent via the socket to request information about the running script.

参数

output

The debugged variable.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 apd_echo() example

<?php
apd_echo($i);
?>

apd_dump_regular_resources
apd_get_active_symbols
APD 函数


Get an array of the current variables names in the local scope

apd_echo
apd_set_pprof_trace
APD 函数
PHP 手册

apd_get_active_symbols

(PECL apd 0.2)

apd_get_active_symbols — Get an array of the current variables names in the local scope

说明

array apd_get_active_symbols ( void )

Returns the names of all the variables defined in the active scope, (not their values).

返回值

A multidimensional array with all the variables.

范例

Example #1 apd_get_active_symbols() example

<?php
apd_echo(apd_get_active_symbols());
?>

apd_echo
apd_set_pprof_trace
APD 函数


Starts the session debugging

apd_get_active_symbols
apd_set_session_trace
APD 函数
PHP 手册

apd_set_pprof_trace

(PECL apd >= 0.2)

apd_set_pprof_trace — Starts the session debugging

说明

string apd_set_pprof_trace ([ string $dump_directory [, string $fragment="pprof" ]] )

Starts debugging to pprof_{process_id} in the dump directory.

参数

dump_directory

The directory in which the profile dump file is written. If not set, the apd.dumpdir setting from the php.ini file is used.

fragment

返回值

Returns path of the destination file.

范例

Example #1 apd_set_pprof_trace() example

<?php
apd_set_pprof_trace();
?>

参见

  • apd_set_session_trace() - Starts the session debugging

apd_get_active_symbols
apd_set_session_trace
APD 函数


Starts the session debugging

apd_set_pprof_trace
apd_set_session
APD 函数
PHP 手册

apd_set_session_trace

(PECL apd 0.2-0.4)

apd_set_session_trace — Starts the session debugging

说明

void apd_set_session_trace ( int $debug_level [, string $dump_directory ] )

Starts debugging to apd_dump_{process_id} in the dump directory.

参数

debug_level

An integer which is formed by adding together the XXX_TRACE constants.

It is not recommended to use MEMORY_TRACE. It is very slow and does not appear to be accurate. ASSIGNMENT_TRACE is not implemented yet.

To turn on all functional traces (TIMING, FUNCTIONS, ARGS SUMMARY (like strace -c)) use the value 99

dump_directory

The directory in which the profile dump file is written. If not set, the apd.dumpdir setting from the php.ini file is used.

返回值

无返回值。

范例

Example #1 apd_set_session_trace() example

<?php
apd_set_session_trace(99);
?>

apd_set_pprof_trace
apd_set_session
APD 函数


Changes or sets the current debugging level

apd_set_session_trace
apd_set_socket_session_trace
APD 函数
PHP 手册

apd_set_session

(PECL apd 0.2-0.4)

apd_set_session — Changes or sets the current debugging level

说明

void apd_set_session ( int $debug_level )

This can be used to increase or decrease debugging in a different area of your application.

参数

debug_level

An integer which is formed by adding together the XXX_TRACE constants.

It is not recommended to use MEMORY_TRACE. It is very slow and does not appear to be accurate. ASSIGNMENT_TRACE is not implemented yet.

To turn on all functional traces (TIMING, FUNCTIONS, ARGS SUMMARY (like strace -c)) use the value 99

返回值

无返回值。

范例

Example #1 apd_set_session() example

<?php
apd_set_session(9);
?>

apd_set_session_trace
apd_set_socket_session_trace
APD 函数


Starts the remote session debugging

apd_set_session
override_function
APD 函数
PHP 手册

apd_set_socket_session_trace

(No version information available, might be only in CVS)

apd_set_socket_session_trace — Starts the remote session debugging

说明

bool apd_set_socket_session_trace ( string $tcp_server , int $socket_type , int $port , int $debug_level )

Connects to the specified tcp_server (eg. tcplisten) and sends debugging data to the socket.

参数

tcp_server

IP or Unix Domain socket (like a file) of the TCP server.

socket_type

Can be AF_UNIX for file based sockets or APD_AF_INET for standard tcp/ip.

port

You can use any port, but higher numbers are better as most of the lower numbers may be used by other system services.

debug_level

An integer which is formed by adding together the XXX_TRACE constants.

It is not recommended to use MEMORY_TRACE. It is very slow and does not appear to be accurate. ASSIGNMENT_TRACE is not implemented yet.

To turn on all functional traces (TIMING, FUNCTIONS, ARGS SUMMARY (like strace -c)) use the value 99

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 apd_set_socket_session_trace() example

<?php
  apd_set_socket_session_trace("127.0.0.1",APD_AF_INET,7112,0);
?>

apd_set_session
override_function
APD 函数


Overrides built-in functions

apd_set_socket_session_trace
rename_function
APD 函数
PHP 手册

override_function

(PECL apd >= 0.2)

override_function — Overrides built-in functions

说明

bool override_function ( string $function_name , string $function_args , string $function_code )

Overrides built-in functions by replacing them in the symbol table.

参数

function_name

The function to override.

function_args

The function arguments, as a coma separated string.

Usually you will want to pass this parameter, as well as the function_code parameter, as a single quote delimited string. The reason for using single quoted strings, is to protect the variable names from parsing, otherwise, if you use double quotes there will be a need to escape the variable names, e.g. \$your_var.

function_code

The new code for the function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 override_function() example

<?php
override_function('test', '$a,$b', 'echo "DOING TEST"; return $a * $b;');
?>

apd_set_socket_session_trace
rename_function
APD 函数


Renames orig_name to new_name in the global function table

override_function
bcompiler
APD 函数
PHP 手册

rename_function

(PECL apd >= 0.2)

rename_function — Renames orig_name to new_name in the global function table

说明

bool rename_function ( string $original_name , string $new_name )

Renames a orig_name to new_name in the global function table. Useful for temporarily overriding built-in functions.

参数

original_name

The original function name.

new_name

The new name for the original_name function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 rename_function() example

<?php
rename_function('mysql_connect', 'debug_mysql_connect' );
?>

override_function
bcompiler
APD 函数


PHP bytecode Compiler

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • bcompiler 函数
    • bcompiler_load_exe — Reads and creates classes from a bcompiler exe file
    • bcompiler_load — Reads and creates classes from a bz compressed file
    • bcompiler_parse_class — Reads the bytecodes of a class and calls back to a user function
    • bcompiler_read — Reads and creates classes from a filehandle
    • bcompiler_write_class — Writes an defined class as bytecodes
    • bcompiler_write_constant — Writes a defined constant as bytecodes
    • bcompiler_write_exe_footer — Writes the start pos, and sig to the end of a exe type file
    • bcompiler_write_file — Writes a php source file as bytecodes
    • bcompiler_write_footer — Writes the single character \x00 to indicate End of compiled data
    • bcompiler_write_function — Writes an defined function as bytecodes
    • bcompiler_write_functions_from_file — Writes all functions defined in a file as bytecodes
    • bcompiler_write_header — Writes the bcompiler header
    • bcompiler_write_included_filename — Writes an included file as bytecodes
rename_function
简介
影响PHP行为的扩展


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Bcompiler was written for several reasons:

  • To encode entire script in a proprietary PHP application
  • To encode some classes and/or functions in a proprietary PHP application
  • To enable the production of php-gtk applications that could be used on client desktops, without the need for a php.exe.
  • To do the feasibility study for a PHP to C converter

The first of these goals is achieved using the bcompiler_write_header(), bcompiler_write_file() and bcompiler_write_footer() functions. The bytecode files can be written as either uncompressed or plain. To use the generated bytecode, you can simply include it with include or require statements.

The second of these goals is achieved using the bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), and bcompiler_load() functions. The bytecode files can be written as either uncompressed or plain. The bcompiler_load() reads a bzip compressed bytecode file, which tends to be 1/3 of the size of the original file.

To create EXE type files, bcompiler has to be used with a modified sapi file or a version of PHP which has been compiled as a shared library. In this scenario, bcompiler reads the compressed bytecode from the end of the exe file.

bcompiler can improve performance by about 30% when used with uncompressed bytecodes only. But keep in mind that uncompressed bytecode can be up to 5 times larger than the original source code. Using bytecode compression can save your space, but decompression requires much more time than parsing a source. bcompiler also does not do any bytecode optimization, this could be added in the future...

In terms of code protection, it is safe to say that it would be impossible to recreate the exact source code that it was built from, and without the accompanying source code comments. It would effectively be useless to use the bcompiler bytecodes to recreate and modify a class. However it is possible to retrieve data from a bcompiled bytecode file - so don't put your private passwords or anything in it.

bcompiler
安装/配置
bcompiler


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
bcompiler


安装

short installation note:

  • You need at least PHP 4.3.0 for the compression to work
  • To install on PHP 4.3.0 and later at the Unix command prompt type pear install bcompiler
  • To install on Windows, until the binary package distribution mechanism is finished please search the archives of the pear-general mailing list for pre-built packages. (or send an email to it if you could not find a reference)
  • To install on older versions you need to make some slight changes to the build.
  • untar the bcompiler.tgz archive into php4/ext.(Get it directly from PECL » http://pecl.php.net/get/bcompiler)
  • If the new directory is now called something like bcompiler-0.x, then you should rename it to bcompiler (except you only want to build it as self-contained php-module).
  • If you are using versions before PHP 4.3.0, the you will need to copy the Makefile.in.old to Makefile.in and config.m4.old to config.m4.
  • run phpize in ext/bcompiler
  • run ./buildconf in php4
  • run configure with --enable-bcompiler (and your other options)
  • make; make install
  • that's it.

需求
运行时配置
安装/配置


运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
bcompiler 函数
bcompiler


bcompiler 函数

Contact Information

If you have comments, bugfixes, enhancements or want to help developing this beast, you can drop me a mail at » alan_k@php.net. Any help is very welcome.

Table of Contents

  • bcompiler_load_exe — Reads and creates classes from a bcompiler exe file
  • bcompiler_load — Reads and creates classes from a bz compressed file
  • bcompiler_parse_class — Reads the bytecodes of a class and calls back to a user function
  • bcompiler_read — Reads and creates classes from a filehandle
  • bcompiler_write_class — Writes an defined class as bytecodes
  • bcompiler_write_constant — Writes a defined constant as bytecodes
  • bcompiler_write_exe_footer — Writes the start pos, and sig to the end of a exe type file
  • bcompiler_write_file — Writes a php source file as bytecodes
  • bcompiler_write_footer — Writes the single character \x00 to indicate End of compiled data
  • bcompiler_write_function — Writes an defined function as bytecodes
  • bcompiler_write_functions_from_file — Writes all functions defined in a file as bytecodes
  • bcompiler_write_header — Writes the bcompiler header
  • bcompiler_write_included_filename — Writes an included file as bytecodes
预定义常量
bcompiler_load_exe
bcompiler


Reads and creates classes from a bcompiler exe file

bcompiler 函数
bcompiler_load
bcompiler 函数
PHP 手册

bcompiler_load_exe

(PECL bcompiler >= 0.4)

bcompiler_load_exe — Reads and creates classes from a bcompiler exe file

说明

bool bcompiler_load_exe ( string $filename )

Reads data from a bcompiler exe file and creates classes from the bytecodes.

参数

filename

The exe file path, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_load_exe() example

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_load() - Reads and creates classes from a bz compressed file

bcompiler 函数
bcompiler_load
bcompiler 函数


Reads and creates classes from a bz compressed file

bcompiler_load_exe
bcompiler_parse_class
bcompiler 函数
PHP 手册

bcompiler_load

(PECL bcompiler >= 0.4)

bcompiler_load — Reads and creates classes from a bz compressed file

说明

bool bcompiler_load ( string $filename )

Reads data from a bzcompressed file and creates classes from the bytecodes.

参数

filename

The bzcompressed file path, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_load() example

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Note: Please use include or require statements to parse bytecodes, it's more portable and convenient way than using this function.
Please note that this function won't execute script body code contained in the bytecode file.

参见

  • bcompiler_load_exe() - Reads and creates classes from a bcompiler exe file

bcompiler_load_exe
bcompiler_parse_class
bcompiler 函数


Reads the bytecodes of a class and calls back to a user function

bcompiler_load
bcompiler_read
bcompiler 函数
PHP 手册

bcompiler_parse_class

(PECL bcompiler >= 0.4)

bcompiler_parse_class — Reads the bytecodes of a class and calls back to a user function

说明

bool bcompiler_parse_class ( string $class , string $callback )

Reads the bytecodes of a class and calls back to a user function.

参数

class

The class name, as a string.

callback

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_parse_class() example

<?php

function readByteCodes($data) {
    print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Note: This function has been removed from bcompiler and is no longer available as of bcompiler 0.5.

bcompiler_load
bcompiler_read
bcompiler 函数


Reads and creates classes from a filehandle

bcompiler_parse_class
bcompiler_write_class
bcompiler 函数
PHP 手册

bcompiler_read

(PECL bcompiler >= 0.4)

bcompiler_read — Reads and creates classes from a filehandle

说明

bool bcompiler_read ( resource $filehandle )

Reads data from a open file handle and creates classes from the bytecodes.

参数

filehandle

A file handle as returned by fopen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_read() example

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Note: Please use include or require statements to parse bytecodes, it's more portable and convenient way than using this function.
Please note that this function won't execute script body code contained in the bytecode file.

bcompiler_parse_class
bcompiler_write_class
bcompiler 函数


Writes an defined class as bytecodes

bcompiler_read
bcompiler_write_constant
bcompiler 函数
PHP 手册

bcompiler_write_class

(PECL bcompiler >= 0.4)

bcompiler_write_class — Writes an defined class as bytecodes

说明

bool bcompiler_write_class ( resource $filehandle , string $className [, string $extends ] )

Reads the bytecodes from PHP for an existing class, and writes them to the open file handle.

参数

filehandle

A file handle as returned by fopen().

className

The class name, as a string.

extends

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_class() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// you must write DB_common before DB_mysql, as DB_mysql extends DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Note: This function does not perform dependency checking, so make sure you write the classes in an order that will not result in an undefined class error occurring when you load it.

参见

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_read
bcompiler_write_constant
bcompiler 函数


Writes a defined constant as bytecodes

bcompiler_write_class
bcompiler_write_exe_footer
bcompiler 函数
PHP 手册

bcompiler_write_constant

(PECL bcompiler >= 0.5)

bcompiler_write_constant — Writes a defined constant as bytecodes

说明

bool bcompiler_write_constant ( resource $filehandle , string $constantName )

Reads the bytecodes from PHP for an existing constant, and writes them to the open file handle.

参数

filehandle

A file handle as returned by fopen().

constantName

The name of the defined constant, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_constant() example

<?php
define("MODULE_MAX", 30);

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_write_class
bcompiler_write_exe_footer
bcompiler 函数


Writes the start pos, and sig to the end of a exe type file

bcompiler_write_constant
bcompiler_write_file
bcompiler 函数
PHP 手册

bcompiler_write_exe_footer

(PECL bcompiler >= 0.4)

bcompiler_write_exe_footer — Writes the start pos, and sig to the end of a exe type file

说明

bool bcompiler_write_exe_footer ( resource $filehandle , int $startpos )

An EXE (or self executable) file consists of 3 parts:

  • The stub (executable code, e.g. a compiled C program) that loads PHP interpreter, bcompiler extension, stored Bytecodes and initiates a call for the specified function (e.g. main) or class method (e.g. main::main)
  • The Bytecodes (uncompressed only for the moment)
  • The bcompiler EXE footer

To obtain a suitable stub you can compile php_embed-based stub phpe.c located in the examples/embed directory on bcompiler's CVS.

参数

filehandle

A file handle as returned by fopen().

startpos

The file position at which the Bytecodes start, and can be obtained using ftell().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_exe_footer() example

<?php

/* creating the output file (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) writing a stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) writing bytecodes */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) writing EXE footer */
bcompiler_write_exe_footer($fh, $startpos);

/* closing the output file */
fclose($fh);
?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_class() - Writes an defined class as bytecodes
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_write_constant
bcompiler_write_file
bcompiler 函数


Writes a php source file as bytecodes

bcompiler_write_exe_footer
bcompiler_write_footer
bcompiler 函数
PHP 手册

bcompiler_write_file

(PECL bcompiler >= 0.6)

bcompiler_write_file — Writes a php source file as bytecodes

说明

bool bcompiler_write_file ( resource $filehandle , string $filename )

This function complies specified source file into bytecodes, and writes them to the open file handle.

参数

filehandle

A file handle as returned by fopen().

filename

The source file path, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_file() example

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* the following should be equivalent:
include "example.php";
   and
include "example.phb";
*/
?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_write_exe_footer
bcompiler_write_footer
bcompiler 函数


Writes the single character \x00 to indicate End of compiled data

bcompiler_write_file
bcompiler_write_function
bcompiler 函数
PHP 手册

bcompiler_write_footer

(PECL bcompiler >= 0.4)

bcompiler_write_footer — Writes the single character \x00 to indicate End of compiled data

说明

bool bcompiler_write_footer ( resource $filehandle )

Writes the single character \x00 to indicate End of compiled data.

参数

filehandle

A file handle as returned by fopen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_footer() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_class($fh,"DB_common");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_header() - Writes the bcompiler header

bcompiler_write_file
bcompiler_write_function
bcompiler 函数


Writes an defined function as bytecodes

bcompiler_write_footer
bcompiler_write_functions_from_file
bcompiler 函数
PHP 手册

bcompiler_write_function

(PECL bcompiler >= 0.5)

bcompiler_write_function — Writes an defined function as bytecodes

说明

bool bcompiler_write_function ( resource $filehandle , string $functionName )

Reads the bytecodes from PHP for an existing function, and writes them to the open file handle. Order is not important, (eg. if function b uses function a, and you compile it like the example below, it will work perfectly OK).

参数

filehandle

A file handle as returned by fopen().

functionName

The function name, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_function() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_write_footer
bcompiler_write_functions_from_file
bcompiler 函数


Writes all functions defined in a file as bytecodes

bcompiler_write_function
bcompiler_write_header
bcompiler 函数
PHP 手册

bcompiler_write_functions_from_file

(PECL bcompiler >= 0.5)

bcompiler_write_functions_from_file — Writes all functions defined in a file as bytecodes

说明

bool bcompiler_write_functions_from_file ( resource $filehandle , string $fileName )

Searches for all functions declared in the given file, and writes their correspondent bytecodes to the open file handle.

参数

filehandle

A file handle as returned by fopen().

fileName

The file to be compiled. You must always include or require the file you intend to compile.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_functions_from_file() example

<?php
require('module.php');

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_write_function
bcompiler_write_header
bcompiler 函数


Writes the bcompiler header

bcompiler_write_functions_from_file
bcompiler_write_included_filename
bcompiler 函数
PHP 手册

bcompiler_write_header

(PECL bcompiler >= 0.3)

bcompiler_write_header — Writes the bcompiler header

说明

bool bcompiler_write_header ( resource $filehandle [, string $write_ver ] )

Writes the header part of a bcompiler file.

参数

filehandle

A file handle as returned by fopen().

write_ver

Can be used to write bytecode in a previously used format, so that you can use it with older versions of bcompiler.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcompiler_write_header() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data

bcompiler_write_functions_from_file
bcompiler_write_included_filename
bcompiler 函数


Writes an included file as bytecodes

bcompiler_write_header
Error Handling
bcompiler 函数
PHP 手册

bcompiler_write_included_filename

(PECL bcompiler >= 0.5)

bcompiler_write_included_filename — Writes an included file as bytecodes

说明

bool bcompiler_write_included_filename ( resource $filehandle , string $filename )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

bcompiler_write_header
Error Handling
bcompiler 函数


Error Handling and Logging

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Error Handling 函数
    • debug_backtrace — Generates a backtrace
    • debug_print_backtrace — Prints a backtrace
    • error_get_last — Get the last occurred error
    • error_log — Send an error message somewhere
    • error_reporting — Sets which PHP errors are reported
    • restore_error_handler — Restores the previous error handler function
    • restore_exception_handler — Restores the previously defined exception handler function
    • set_error_handler — Sets a user-defined error handler function
    • set_exception_handler — Sets a user-defined exception handler function
    • trigger_error — Generates a user-level error/warning/notice message
    • user_error — Alias of trigger_error
bcompiler_write_included_filename
简介
影响PHP行为的扩展


简介

These are functions dealing with error handling and logging. They allow you to define your own error handling rules, as well as modify the way the errors can be logged. This allows you to change and enhance error reporting to suit your needs.

With the logging functions, you can send messages directly to other machines, to an email (or email to pager gateway!), to system logs, etc., so you can selectively log and monitor the most important parts of your applications and websites.

The error reporting functions allow you to customize what level and kind of error feedback is given, ranging from simple notices to customized functions returned during errors.

Error Handling
安装/配置
Error Handling


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Error Handling


安装

本扩展模块作为 PHP 内核的一部分，无需安装即可使用。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Errors and Logging Configuration Options
Name | Default | Changeable | Changelog
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Available since PHP 4.3.0.
ignore_repeated_errors | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
report_memleaks | "1" | PHP_INI_ALL | Available since PHP 4.3.0.
track_errors | "0" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Available since PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Available since PHP 4.1.0.
docref_root | "" | PHP_INI_ALL | Available since PHP 4.3.0.
docref_ext | "" | PHP_INI_ALL | Available since PHP 4.3.2.
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

error_reporting integer

Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in Predefined Constants, and in php.ini. To set at runtime, use the error_reporting() function. See also the display_errors directive.

In PHP 4 and PHP 5 the default value is E_ALL & ~E_NOTICE. This setting does not show E_NOTICE level errors. You may want to show them during development.

Note: Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.

Note: In PHP 5 a new error level E_STRICT is available. As E_STRICT is not included within E_ALL you have to explicitly enable this kind of error level. Enabling E_STRICT during development has some benefits. STRICT messages will help you to use the latest and greatest suggested method of coding, for example warn you about using deprecated functions.

Note: PHP Constants outside of PHP
Using PHP Constants outside of PHP, like in httpd.conf, will have no useful meaning so in such cases the integer values are required. And since error levels will be added over time, the maximum value (for E_ALL) will likely change. So in place of E_ALL consider using a larger value to cover all bit fields from now and well into the future, a numeric value like 2147483647.

display_errors string

This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.

Value "stderr" sends the errors to stderr instead of stdout. The value is available as of PHP 5.2.4. In earlier versions, this directive was of type boolean.

Note: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).

Note: Although display_errors may be set at runtime (with ini_set()), it won't have any affect if the script has fatal errors. This is because the desired runtime action does not get executed.

display_startup_errors boolean

Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.

log_errors boolean

Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.

Note: You're strongly advised to use error logging in place of error displaying on production web sites.

log_errors_max_len integer

Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all. This length is applied to logged errors, displayed errors and also to $php_errormsg.

当使用 integer 类型时，其值以字节为度量单位。还可以用简化符号，说明见此 FAQ。
ignore_repeated_errors boolean

Do not log repeated messages. Repeated errors must occur in the same file on the same line unless ignore_repeated_source is set true.

ignore_repeated_source boolean

Ignore source of message when ignoring repeated messages. When this setting is On you will not log errors with repeated messages from different files or sourcelines.

report_memleaks boolean

If this parameter is set to Off, then memory leaks will not be shown (on stdout or in the log). This has only effect in a debug compile, and if error_reporting includes E_WARNING in the allowed list

track_errors boolean

If enabled, the last error message will always be present in the variable $php_errormsg.

html_errors boolean

Turn off HTML tags in error messages. The new format for HTML errors produces clickable messages that direct the user to a page describing the error or function in causing the error. These references are affected by docref_root and docref_ext.

xmlrpc_errors boolean

Turns off normal error reporting and formats errors as XML-RPC error message.

xmlrpc_error_number integer

Used as the value of the XML-RPC faultCode element.

docref_root string

The new error format contains a reference to a page describing the error or function causing the error. In case of manual pages you can download the manual in your language and set this ini directive to the URL of your local copy. If your local copy of the manual can be reached by '/manual/' you can simply use docref_root=/manual/ . Additional you have to set docref_ext to match the fileextensions of your copy docref_ext=.html . It is possible to use external references. For example you can use docref_root=http://manual/en/ or docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

Most of the time you want the docref_root value to end with a slash '/'. But see the second example above which does not have nor need it.

Note: This is a feature to support your development since it makes it easy to lookup a function description. However it should never be used on production systems (e.g. systems connected to the internet).

docref_ext string

See docref_root.

Note: The value of docref_ext must begin with a dot '.'.

error_prepend_string string

String to output before an error message.

error_append_string string

String to output after an error message.

error_log string

Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog(). If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI.

安装
资源类型
安装/配置


预定义常量

以下常量作为 PHP 核心的一部分一直有效。

Note: You may use these constant names in php.ini but not outside of PHP, like in httpd.conf, where you'd use the bitmask values instead.

Errors and Logging
Value | Constant | Description | Note
1 | E_ERROR (integer) | Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted. |
2 | E_WARNING (integer) | Run-time warnings (non-fatal errors). Execution of the script is not halted. |
4 | E_PARSE (integer) | Compile-time parse errors. Parse errors should only be generated by the parser. |
8 | E_NOTICE (integer) | Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. |
16 | E_CORE_ERROR (integer) | Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. | since PHP 4
32 | E_CORE_WARNING (integer) | Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. | since PHP 4
64 | E_COMPILE_ERROR (integer) | Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. | since PHP 4
128 | E_COMPILE_WARNING (integer) | Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. | since PHP 4
256 | E_USER_ERROR (integer) | User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
512 | E_USER_WARNING (integer) | User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
1024 | E_USER_NOTICE (integer) | User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
2048 | E_STRICT (integer) | Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. | since PHP 5
4096 | E_RECOVERABLE_ERROR (integer) | Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR. | since PHP 5.2.0
8192 | E_DEPRECATED (integer) | Run-time notices. Enable this to receive warnings about code that will not work in future versions. | since PHP 5.3.0
16384 | E_USER_DEPRECATED (integer) | User-generated warning message. This is like an E_DEPRECATED, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 5.3.0
30719 | E_ALL (integer) | All errors and warnings, as supported, except of level E_STRICT in PHP < 6. | 32767 in PHP 6, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously

The above values (either numerical or symbolic) are used to build up a bitmask that specifies which errors to report. You can use the bitwise operators to combine these values or mask out certain types of errors. Note that only '|', '~', '!', '^' and '&' will be understood within php.ini.

资源类型
范例
Error Handling


范例

Below we can see an example of using the error handling capabilities in PHP. We define an error handling function which logs the information into a file (using an XML format), and e-mails the developer in case a critical error in the logic happens.

Example #1 Using error handling in a script

<?php
// we will do our own error handling
error_reporting(0);

// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // timestamp for the error entry
    $dt = date("Y-m-d H:i:s (T)");

    // define an assoc array of error string
    // in reality the only entries we should
    // consider are E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING and E_USER_NOTICE
    $errortype = array (
                E_ERROR              => 'Error',
                E_WARNING            => 'Warning',
                E_PARSE              => 'Parsing Error',
                E_NOTICE             => 'Notice',
                E_CORE_ERROR         => 'Core Error',
                E_CORE_WARNING       => 'Core Warning',
                E_COMPILE_ERROR      => 'Compile Error',
                E_COMPILE_WARNING    => 'Compile Warning',
                E_USER_ERROR         => 'User Error',
                E_USER_WARNING       => 'User Warning',
                E_USER_NOTICE        => 'User Notice',
                E_STRICT             => 'Runtime Notice',
                E_RECOVERABLE_ERROR  => 'Catchable Fatal Error'
                );
    // set of errors for which a var trace will be saved
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors)) {
        $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";

    // for testing
    // echo $err;

    // save to the error log, and e-mail me if there is a critical user error
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com", "Critical User Error", $err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vectors need to be of the same size", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Coordinate $i in vector 1 is not a number, using zero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Coordinate $i in vector 2 is not a number, using zero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// undefined constant, generates a warning
$t = I_AM_NOT_DEFINED;

// define some "vectors"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// generate a user error
$t1 = distance($c, $b) . "\n";

// generate another user error
$t2 = distance($b, "i am not an array") . "\n";

// generate a warning
$t3 = distance($a, $b) . "\n";

?>

预定义常量
Error Handling 函数
Error Handling


Error Handling 函数

参见

See also syslog().

Table of Contents

  • debug_backtrace — Generates a backtrace
  • debug_print_backtrace — Prints a backtrace
  • error_get_last — Get the last occurred error
  • error_log — Send an error message somewhere
  • error_reporting — Sets which PHP errors are reported
  • restore_error_handler — Restores the previous error handler function
  • restore_exception_handler — Restores the previously defined exception handler function
  • set_error_handler — Sets a user-defined error handler function
  • set_exception_handler — Sets a user-defined exception handler function
  • trigger_error — Generates a user-level error/warning/notice message
  • user_error — Alias of trigger_error
范例
debug_backtrace
Error Handling


Generates a backtrace

Error Handling 函数
debug_print_backtrace
Error Handling 函数
PHP 手册

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtrace — Generates a backtrace

说明

array debug_backtrace ([ bool $provide_object=true ] )

debug_backtrace() generates a PHP backtrace.

参数

provide_object

Wether or not to populate the "object" index. Defaults to TRUE.

返回值

Returns an associative array. The possible returned elements are as follows:

Possible returned elements from debug_backtrace()
名字 | Type | 说明
function | string | The current function name. See also __FUNCTION__.
line | integer | The current line number. See also __LINE__.
file | string | The current file name. See also __FILE__.
class | string | The current class name. See also __CLASS__
object | object | The current object.
type | string | The current call type. If a method call, "->" is returned. If a static method call, "::" is returned. If a function call, nothing is returned.
args | array | If inside a function, this lists the functions arguments. If inside an included file, this lists the included file name(s).

更新日志

版本 | 说明
5.2.5 | Added the optional parameter provide_object .
5.1.1 | Added the current object as a possible return element.

范例

Example #1 debug_backtrace() example

<?php
// filename: /tmp/a.php

function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>

Results similar to the following when executing /tmp/b.php:

Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

参见

  • trigger_error() - Generates a user-level error/warning/notice message
  • debug_print_backtrace() - Prints a backtrace

Error Handling 函数
debug_print_backtrace
Error Handling 函数


Prints a backtrace

debug_backtrace
error_get_last
Error Handling 函数
PHP 手册

debug_print_backtrace

(PHP 5)

debug_print_backtrace — Prints a backtrace

说明

void debug_print_backtrace ( void )

debug_print_backtrace() prints a PHP backtrace. It prints the function calls, included/required files and eval()ed stuff.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 debug_print_backtrace() example

<?php
// include.php file

function a() {
    b();
}

function b() {
    c();
}

function c(){
    debug_print_backtrace();
}

a();

?>
<?php
// test.php file
// this is the file you should run

include 'include.php';
?>

上例的输出类似于：

#0  eval() called at [/tmp/include.php:5]
#1  a() called at [/tmp/include.php:17]
#2  include(/tmp/include.php) called at [/tmp/test.php:3]

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

参见

  • debug_backtrace() - Generates a backtrace

debug_backtrace
error_get_last
Error Handling 函数


Get the last occurred error

debug_print_backtrace
error_log
Error Handling 函数
PHP 手册

error_get_last

(PHP 5 >= 5.2.0)

error_get_last — Get the last occurred error

说明

array error_get_last ( void )

Gets information about the last error that occurred.

返回值

Returns an associative array describing the last error with keys "type", "message", "file" and "line". Returns NULL if there hasn't been an error yet.

范例

Example #1 An error_get_last() example

<?php
echo $a;
print_r(error_get_last());
?>

上例的输出类似于：

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

参见

  • Error constants
  • Variable $php_errormsg
  • Directive display_errors
  • Directive html_errors
  • Directive xmlrpc_errors

debug_print_backtrace
error_log
Error Handling 函数


Send an error message somewhere

error_get_last
error_reporting
Error Handling 函数
PHP 手册

error_log

(PHP 4, PHP 5)

error_log — Send an error message somewhere

说明

bool error_log ( string $message [, int $message_type=0 [, string $destination [, string $extra_headers ]]] )

Sends an error message to the web server's error log, a TCP port or to a file.

参数

message

The error message that should be logged.

message_type

Says where the error should go. The possible message types are as follows:

error_log() log types
0 | message is sent to PHP's system logger, using the Operating System's system logging mechanism or a file, depending on what the error_log configuration directive is set to. This is the default option.
1 | message is sent by email to the address in the destination parameter. This is the only message type where the fourth parameter, extra_headers is used.
2 | No longer an option.
3 | message is appended to the file destination . A newline is not automatically added to the end of the message string.
4 | message is sent directly to the SAPI logging handler.

destination

The destination. Its meaning depends on the message_type parameter as described above.

extra_headers

The extra headers. It's used when the message_type parameter is set to 1. This message type uses the same internal function as mail() does.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.2.7 | The possible value of 4 was added to message_type .

范例

Example #1 error_log() examples

<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}

// another way to call error_log():
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>

error_get_last
error_reporting
Error Handling 函数


Sets which PHP errors are reported

error_log
restore_error_handler
Error Handling 函数
PHP 手册

error_reporting

(PHP 4, PHP 5)

error_reporting — Sets which PHP errors are reported

说明

int error_reporting ([ int $level ] )

The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script.

参数

level

The new error_reporting level. It takes on either a bitmask, or named constants. Using named constants is strongly encouraged to ensure compatibility for future versions. As error levels are added, the range of integers increases, so older integer-based error levels will not always behave as expected.

The available error level constants are listed below. The actual meanings of these error levels are described in the predefined constants.

error_reporting() level constants and bit values
value | constant
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING
64 | E_COMPILE_ERROR
128 | E_COMPILE_WARNING
256 | E_USER_ERROR
512 | E_USER_WARNING
1024 | E_USER_NOTICE
6143 | E_ALL
2048 | E_STRICT
4096 | E_RECOVERABLE_ERROR
8192 | E_DEPRECATED
16384 | E_USER_DEPRECATED

返回值

Returns the old error_reporting level.

更新日志

版本 | 说明
5.0.0 | E_STRICT introduced (not part of E_ALL).
5.2.0 | E_RECOVERABLE_ERROR introduced.
5.3.0 | E_DEPRECATED and E_USER_DEPRECATED introduced.
6 | E_STRICT became part of E_ALL.

范例

Example #1 error_reporting() examples

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Report all PHP errors
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

注释

Warning

Most of E_STRICT errors are evaluated at the compile time thus such errors are not reported in the file where error_reporting is enhanced to include E_STRICT errors (and vice versa).

参见

  • The display_errors directive
  • The html_errors directive
  • The xmlrpc_errors directive
  • ini_set() - Sets the value of a configuration option

error_log
restore_error_handler
Error Handling 函数


Restores the previous error handler function

error_reporting
restore_exception_handler
Error Handling 函数
PHP 手册

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handler — Restores the previous error handler function

说明

bool restore_error_handler ( void )

Used after changing the error handler function using set_error_handler(), to revert to the previous error handler (which could be the built-in or a user defined function).

返回值

This function always returns TRUE.

范例

Example #1 restore_error_handler() example

Decide if unserialize() caused an error, then restore the original error handler.

<?php
function unserialize_handler($errno, $errstr)
{
    echo "Invalid serialized value.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

上例将输出：

Invalid serialized value.

注释

Note: Calling restore_error_handler() from the error_handler function is ignored.

参见

  • error_reporting() - Sets which PHP errors are reported
  • set_error_handler() - Sets a user-defined error handler function
  • restore_exception_handler() - Restores the previously defined exception handler function
  • trigger_error() - Generates a user-level error/warning/notice message

error_reporting
restore_exception_handler
Error Handling 函数


Restores the previously defined exception handler function

restore_error_handler
set_error_handler
Error Handling 函数
PHP 手册

restore_exception_handler

(PHP 5)

restore_exception_handler — Restores the previously defined exception handler function

说明

bool restore_exception_handler ( void )

Used after changing the exception handler function using set_exception_handler(), to revert to the previous exception handler (which could be the built-in or a user defined function).

返回值

This function always returns TRUE.

范例

Example #1 restore_exception_handler() example

<?php
    function exception_handler_1(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    function exception_handler_2(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    set_exception_handler('exception_handler_1');
    set_exception_handler('exception_handler_2');

    restore_exception_handler();

    throw new Exception('This triggers the first exception handler...');
?>

上例将输出：

[exception_handler_1] This triggers the first exception handler...

参见

  • set_exception_handler() - Sets a user-defined exception handler function
  • set_error_handler() - Sets a user-defined error handler function
  • restore_error_handler() - Restores the previous error handler function
  • error_reporting() - Sets which PHP errors are reported

restore_error_handler
set_error_handler
Error Handling 函数


Sets a user-defined error handler function

restore_exception_handler
set_exception_handler
Error Handling 函数
PHP 手册

set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handler — Sets a user-defined error handler function

说明

mixed set_error_handler ( callback $error_handler [, int $error_types=E_ALL | E_STRICT ] )

Sets a user function (error_handler ) to handle errors in a script.

This function can be used for defining your own way of handling errors during runtime, for example in applications in which you need to do cleanup of data/files when a critical error happens, or when you need to trigger an error under certain conditions (using trigger_error()).

It is important to remember that the standard PHP error handler is completely bypassed. error_reporting() settings will have no effect and your error handler will be called regardless - however you are still able to read the current value of error_reporting and act appropriately. Of particular note is that this value will be 0 if the statement that caused the error was prepended by the @ error-control operator.

Also note that it is your responsibility to die() if necessary. If the error-handler function returns, script execution will continue with the next statement after the one that caused an error.

The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called.

If errors occur before the script is executed (e.g. on file uploads) the custom error handler cannot be called since it is not registered at that time.

参数

error_handler

The user function needs to accept two parameters: the error code, and a string describing the error. Then there are three optional parameters that may be supplied: the filename in which the error occurred, the line number in which the error occurred, and the context in which the error occurred (an array that points to the active symbol table at the point the error occurred). The function can be shown as:

handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )

errno
The first parameter, errno , contains the level of the error raised, as an integer.
errstr
The second parameter, errstr , contains the error message, as a string.
errfile
The third parameter is optional, errfile , which contains the filename that the error was raised in, as a string.
errline
The fourth parameter is optional, errline , which contains the line number the error was raised at, as an integer.
errcontext
The fifth parameter is optional, errcontext , which is an array that points to the active symbol table at the point the error occurred. In other words, errcontext will contain an array of every variable that existed in the scope the error was triggered in. User error handler must not modify error context.

If the function returns FALSE then the normal error handler continues.

error_types

Can be used to mask the triggering of the error_handler function just like the error_reporting ini setting controls which errors are shown. Without this mask set the error_handler will be called for every error regardless to the setting of the error_reporting setting.

返回值

Returns a string containing the previously defined error handler (if any). If the built-in error handler is used NULL is returned. NULL is also returned in case of an error such as an invalid callback. If the previous error handler was a class method, this function will return an indexed array with the class and the method name.

更新日志

版本 | 说明
5.2.0 | The error handler must return FALSE to populate $php_errormsg.
5.0.0 | The error_types parameter was introduced.
4.3.0 | Instead of a function name, an array containing an object reference and a method name can also be supplied as the error_handler .
4.0.2 | Three optional parameters for the error_handler user function was introduced. These are the filename, the line number, and the context.

范例

Example #1 Error handling with set_error_handler() and trigger_error()

The example below shows the handling of internal exceptions by triggering errors and handling them with a user defined function:

<?php
// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
        echo "  Fatal error on line $errline in file $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Aborting...<br />\n";
        exit(1);
        break;

    case E_USER_WARNING:
        echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
        break;

    default:
        echo "Unknown error type: [$errno] $errstr<br />\n";
        break;
    }

    /* Don't execute PHP internal error handler */
    return true;
}

// function to test the error handling
function scale_by_log($vect, $scale)
{
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
    }

    if (!is_array($vect)) {
        trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("Value at position $pos is not a number, using 0 (zero)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }

    return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

// trigger some errors, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// now generate second array
echo "----\nvector b - a notice (b = log(PI) * a)\n";
/* Value at position $pos is not a number, using 0 (zero) */
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - a warning\n";
/* Incorrect input vector, array of values expected */
$c = scale_by_log("not array", 2.3);
var_dump($c); // NULL

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
/* log(x) for x <= 0 is undefined, you used: scale = $scale" */
$d = scale_by_log($a, -2.5);
var_dump($d); // Never reached
?>

上例的输出类似于：

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a notice (b = log(PI) * a)
<b>My NOTICE</b> [1024] Value at position 2 is not a number, using 0 (zero)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - a warning
<b>My WARNING</b> [512] Incorrect input vector, array of values expected<br />
NULL
----
vector d - fatal error
<b>My ERROR</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
  Fatal error on line 35 in file trigger_error.php, PHP 5.2.1 (FreeBSD)<br />
Aborting...<br />

参见

  • ErrorException
  • error_reporting() - Sets which PHP errors are reported
  • restore_error_handler() - Restores the previous error handler function
  • trigger_error() - Generates a user-level error/warning/notice message
  • error level constants
  • 有关 callback 类型的信息

restore_exception_handler
set_exception_handler
Error Handling 函数


Sets a user-defined exception handler function

set_error_handler
trigger_error
Error Handling 函数
PHP 手册

set_exception_handler

(PHP 5)

set_exception_handler — Sets a user-defined exception handler function

说明

string set_exception_handler ( callback $exception_handler )

Sets the default exception handler if an exception is not caught within a try/catch block. Execution will stop after the exception_handler is called.

参数

exception_handler

Name of the function to be called when an uncaught exception occurs. This function must be defined before calling set_exception_handler(). This handler function needs to accept one parameter, which will be the exception object that was thrown.

返回值

Returns the name of the previously defined exception handler, or NULL on error. If no previous handler was defined, NULL is also returned.

范例

Example #1 set_exception_handler() example

<?php
function exception_handler($exception) {
  echo "Uncaught exception: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>

参见

  • restore_exception_handler() - Restores the previously defined exception handler function
  • restore_error_handler() - Restores the previous error handler function
  • error_reporting() - Sets which PHP errors are reported
  • 有关 callback 类型的信息
  • PHP 5 Exceptions

set_error_handler
trigger_error
Error Handling 函数


Generates a user-level error/warning/notice message

set_exception_handler
user_error
Error Handling 函数
PHP 手册

trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_error — Generates a user-level error/warning/notice message

说明

bool trigger_error ( string $error_msg [, int $error_type=E_USER_NOTICE ] )

Used to trigger a user error condition, it can be used by in conjunction with the built-in error handler, or with a user defined function that has been set as the new error handler (set_error_handler()).

This function is useful when you need to generate a particular response to an exception at runtime.

参数

error_msg

The designated error message for this error. It's limited to 1024 characters in length. Any additional characters beyond 1024 will be truncated.

error_type

The designated error type for this error. It only works with the E_USER family of constants, and will default to E_USER_NOTICE.

返回值

This function returns FALSE if wrong error_type is specified, TRUE otherwise.

范例

Example #1 trigger_error() example

See set_error_handler() for a more extensive example.

<?php
if (assert($divisor == 0)) {
    trigger_error("Cannot divide by zero", E_USER_ERROR);
}
?>

参见

  • error_reporting() - Sets which PHP errors are reported
  • set_error_handler() - Sets a user-defined error handler function
  • restore_error_handler() - Restores the previous error handler function
  • The error level constants

set_exception_handler
user_error
Error Handling 函数


Alias of trigger_error

trigger_error
Memtrack
Error Handling 函数
PHP 手册

user_error

(PHP 4, PHP 5)

user_error — Alias of trigger_error()

说明

本函数是该函数的别名： trigger_error().

trigger_error
Memtrack
Error Handling 函数


Memtrack

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Creating large array in a function
user_error
简介
影响PHP行为的扩展


简介

The purpose of this extension is to detect the most memory hungry scripts and functions.

memtrack tracks memory consumption in PHP scripts and produces reports (warnings) when the consumption reaches certain levels set by the user. This is achieved by replacing default executor function by a special function which compares memory usage before and after running the original executor - this way we can tell how much the memory usage has changed during the execution of the current part of the code.

Zend Engine runs its executor for each opcode array (op_array), which usually means function, plain script and such, so memtrack doesn't have any noticeable effect on performance.

memtrack doesn't provide any functions, there are only INI directives which allow you to configure the way it should work.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Memtrack
安装/配置
Memtrack


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Memtrack


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/memtrack

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Memtrack Configuration Options
Name | Default | Changeable
memtrack.enabled | "0" | PHP_INI_SYSTEM
memtrack.soft_limit | "0" | PHP_INI_ALL
memtrack.hard_limit | "0" | PHP_INI_ALL
memtrack.vm_limit | "0" | PHP_INI_ALL
memtrack.ignore_functions | "" | PHP_INI_SYSTEM

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

memtrack.enabled boolean

Disables or enables the extension. Default value is 0, i.e. disabled.

memtrack.soft_limit int

Soft memory limit.

The extension checks memory consumption before and after executing an op_array and produces a warning is the difference between the two values is equal to or greater than the soft limit, but only if the function is not ignored.

Setting this option to 0 also disables both soft and hard limit warnings. Default value is 0, i.e. no warnings is produced.

memtrack.hard_limit int

Hard memory limit.

The extension checks memory consumption before and after executing an op_array and produces a warning is the difference between the two values is equal to or greater than the hard limit, even if the function is ignored. Setting this option to 0 disables hard limit warnings completely. Default value is 0, i.e. no hard limit warnings is produced.

memtrack.vm_limit int

Virtual memory limit (set on a process).

This limit is checked only on shutdown and a warning is produced if the value is greater than or equal to the limit.

This option is currently supported only on OSes where mallinfo() function is available (i.e. Linux).

memtrack.ignore_functions string

A comma or whitespace-separated list of functions which are to be ignored by soft_limit. The values are case-insensitive, for class methods use class::method syntax.

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Memtrack


范例

Table of Contents

  • Creating large array in a function
预定义常量
Creating large array in a function
Memtrack


Creating large array in a function

范例
Object overloading
范例
PHP 手册

Basic example on using memtrack extension:

Example #1 Creating large array in a function

<?php

/* /tmp/example1.php */

function foo() {
    $a = array();
    for ($i = 0; $i < 10000; $i++) $a[] = "test";
    return $a;
}
$arr = foo();

?>

Run the example with the following command:

php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/example1.php

上例的输出类似于：

Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0
范例
Object overloading
范例


Object property and method call overloading

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Overloading a PHP class
  • Object overloading 函数
    • overload — Enable property and method call overloading for a class
Creating large array in a function
简介
影响PHP行为的扩展


简介

The purpose of this extension is to allow overloading of object property access and method calls. Only one function is defined in this extension, overload() which takes the name of the class that should have this functionality enabled. The class named has to define appropriate methods if it wants to have this functionality: __get(), __set() and __call() respectively for getting/setting a property, or calling a method. This way overloading can be selective. Inside these handler functions the overloading is disabled so you can access object properties normally.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Warning

This extension is not a part of PHP 5. PHP 5 supports __get(), __set() and __call() natively. See the Overloading in PHP 5 page for more information.

Object overloading
安装/配置
Object overloading


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Object overloading


安装

In order to use these functions, you must compile PHP with the --enable-overload option. Starting with PHP 4.3.0 this extension is enabled by default. You can disable overload support with --disable--overload.

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

Note: Builtin support for overload is available with PHP 4.3.0.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Object overloading


范例

Table of Contents

  • Overloading a PHP class
预定义常量
Overloading a PHP class
Object overloading


Overloading a PHP class

范例
Object overloading 函数
范例
PHP 手册

Some simple examples on using the overload() function:

Example #1 Overloading a PHP class

<?php

class OO {
   var $a = 111;
   var $elem = array('b' => 9, 'c' => 42);

   // Callback method for getting a property
   function __get($prop_name, &$prop_value)
   {
       if (isset($this->elem[$prop_name])) {
           $prop_value = $this->elem[$prop_name];
           return true;
       } else {
           return false;
       }
   }

   // Callback method for setting a property
   function __set($prop_name, $prop_value)
   {
       $this->elem[$prop_name] = $prop_value;
       return true;
   }
}

// Here we overload the OO object
overload('OO');

$o = new OO;
echo "\$o->a: $o->a\n"; // print: $o->a: 111
echo "\$o->b: $o->b\n"; // print: $o->b: 9
echo "\$o->c: $o->c\n"; // print: $o->c: 42
echo "\$o->d: $o->d\n"; // print: $o->d:

// add a new item to the $elem array in OO
$o->x = 56;

// instantiate stdclass (it is built-in in PHP 4)
// $val is not overloaded!
$val = new stdclass;
$val->prop = 555;

// Set "a" to be an array with the $val object in it
// But __set() will put this in the $elem array
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

范例
Object overloading 函数
范例


Object overloading 函数

Table of Contents

  • overload — Enable property and method call overloading for a class
Overloading a PHP class
overload
Object overloading


Enable property and method call overloading for a class

Object overloading 函数
Output Control
Object overloading 函数
PHP 手册

overload

(PHP 4 >= 4.2.0)

overload — Enable property and method call overloading for a class

说明

void overload ( string $class_name )

The overload() function will enable property and method call overloading for a class identified by class_name .

参数

class_name

The overloaded class name, as a string

返回值

无返回值。

范例

See an example in the introductory section of this part.

Object overloading 函数
Output Control
Object overloading 函数


Output Buffering Control

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • 范例
  • Output Control 函数
    • flush — 刷新输出缓冲
    • ob_clean — Clean (erase) the output buffer
    • ob_end_clean — Clean (erase) the output buffer and turn off output buffering
    • ob_end_flush — Flush (send) the output buffer and turn off output buffering
    • ob_flush — Flush (send) the output buffer
    • ob_get_clean — Get current buffer contents and delete current output buffer
    • ob_get_contents — Return the contents of the output buffer
    • ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering
    • ob_get_length — Return the length of the output buffer
    • ob_get_level — Return the nesting level of the output buffering mechanism
    • ob_get_status — Get status of output buffers
    • ob_gzhandler — ob_start callback function to gzip output buffer
    • ob_implicit_flush — Turn implicit flush on/off
    • ob_list_handlers — List all output handlers in use
    • ob_start — Turn on output buffering
    • output_add_rewrite_var — Add URL rewriter values
    • output_reset_rewrite_vars — Reset URL rewriter values
overload
简介
影响PHP行为的扩展


简介

The Output Control functions allow you to control when output is sent from the script. This can be useful in several different situations, especially if you need to send headers to the browser after your script has began outputting data. The Output Control functions do not affect headers sent using header() or setcookie(), only functions such as echo() and data between blocks of PHP code.

Note: When upgrading from PHP 4.1.x (and 4.2.x) to 4.3.x due to a bug in earlier versions you must ensure that implict_flush is OFF in your php.ini, otherwise any output with ob_start() will not be hidden from output.

Output Control
安装/配置
Output Control


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Output Control


运行时配置

这些函数的行为受 php.ini 的影响。

输出控制配置选项
名称 | 默认值 | 作用范围 | 修正记录
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | 自 PHP 4.0.4 起可用
implicit_flush | "0" | PHP_INI_ALL | 在 PHP <= 4.2.3 版本中是 PHP_INI_PERDIR

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

output_buffering boolean/integer

该选项设置为 On 时，将在所有的脚本中使用输出控制。如果要限制输出缓冲区的最大值，可将该选项设定为指定的最大字节数（例如 output_buffering=4096）。从PHP 4.3.5 版开始，该选项在 PHP-CLI 下总是为 Off。

output_handler string

该选项可将脚本所有的输出，重定向到一个函数。例如，将 output_handler 设置为 mb_output_handler() 时，字符的编码将被修改为指定的编码。设置的任何处理函数，将自动的处理输出缓冲。

Note:

      不能同时使用 mb_output_handler() 和
      ob_iconv_handler()，也不能同时使用
      ob_gzhandler() 和
      zlib.output_compression。

Note: 只有内置函数可以使用此指令。对于用户定义的函数，使用 ob_start()。

implicit_flush boolean

默认为 FALSE。如将该选项改为 TRUE，PHP 将使输出层，在每段信息块输出后，自动刷新。这等同于在每次使用 print()、echo() 等函数或每个 HTML 块之后，调用 PHP 中的 flush() 函数。

不在web环境中使用 PHP 时，打开这个选项对程序执行的性能有严重的影响，通常只推荐在调试时使用。在 CLI SAPI 的执行模式下，该标记默认为 TRUE。

参见 ob_implicit_flush()。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Output Control


范例
Output Control
PHP 手册

范例

Table of Contents

  • 范例
预定义常量
范例
Output Control


范例
Output Control 函数
范例
PHP 手册

范例

Example #1 Output Control example

<?php

ob_start();
echo "Hello\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

In the above example, the output from echo() would be stored in the output buffer until ob_end_flush() was called. In the mean time, the call to setcookie() successfully stored a cookie without causing an error. (You can not normally send headers to the browser after data has already been sent.)

范例
Output Control 函数
范例
PHP 手册


Output Control 函数

参见

See also header() and setcookie().

Table of Contents

  • flush — 刷新输出缓冲
  • ob_clean — Clean (erase) the output buffer
  • ob_end_clean — Clean (erase) the output buffer and turn off output buffering
  • ob_end_flush — Flush (send) the output buffer and turn off output buffering
  • ob_flush — Flush (send) the output buffer
  • ob_get_clean — Get current buffer contents and delete current output buffer
  • ob_get_contents — Return the contents of the output buffer
  • ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering
  • ob_get_length — Return the length of the output buffer
  • ob_get_level — Return the nesting level of the output buffering mechanism
  • ob_get_status — Get status of output buffers
  • ob_gzhandler — ob_start callback function to gzip output buffer
  • ob_implicit_flush — Turn implicit flush on/off
  • ob_list_handlers — List all output handlers in use
  • ob_start — Turn on output buffering
  • output_add_rewrite_var — Add URL rewriter values
  • output_reset_rewrite_vars — Reset URL rewriter values
范例
flush
Output Control


刷新输出缓冲

Output Control 函数
ob_clean
Output Control 函数
PHP 手册

flush

(PHP 4, PHP 5)

flush — 刷新输出缓冲

说明

void flush ( void )

刷新PHP程序的缓冲，而不论PHP执行在何种情况下（CGI ，web服务器等等）。该函数将当前为止程序的所有输出发送到用户的浏览器。

flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响。因此，必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。

个别web服务器程序，特别是Win32下的web服务器程序，在发送结果到浏览器之前，仍然会缓存脚本的输出，直到程序结束为止。

有些Apache的模块，比如mod_gzip，可能自己进行输出缓存，这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。

甚至浏览器也会在显示之前，缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容，并且在接受到 </table> 标记之前，不会显示出整个表格。

一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面，所以必须发送一些额外的空格来让这些浏览器显示页面内容。

Output Control 函数
ob_clean
Output Control 函数


Clean (erase) the output buffer

flush
ob_end_clean
Output Control 函数
PHP 手册

ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_clean — Clean (erase) the output buffer

说明

void ob_clean ( void )

This function discards the contents of the output buffer.

This function does not destroy the output buffer like ob_end_clean() does.

返回值

无返回值。

参见

  • ob_flush() - Flush (send) the output buffer
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering
  • ob_end_clean() - Clean (erase) the output buffer and turn off output buffering

flush
ob_end_clean
Output Control 函数


Clean (erase) the output buffer and turn off output buffering

ob_clean
ob_end_flush
Output Control 函数
PHP 手册

ob_end_clean

(PHP 4, PHP 5)

ob_end_clean — Clean (erase) the output buffer and turn off output buffering

说明

bool ob_end_clean ( void )

This function discards the contents of the topmost output buffer and turns off this output buffering. If you want to further process the buffer's contents you have to call ob_get_contents() before ob_end_clean() as the buffer contents are discarded when ob_end_clean() is called.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Reasons for failure are first that you called the function without an active buffer or that for some reason a buffer could not be deleted (possible for special buffer).

错误／异常

If the function fails it generates an E_NOTICE.

更新日志

版本 | 说明
4.2.0 | The boolean return value was added.

范例

The following example shows an easy way to get rid of all output buffers:

Example #1 ob_end_clean() example

<?php
ob_start();
echo 'Text that won\'t get displayed.';
ob_end_clean();
?>

参见

  • ob_start() - Turn on output buffering
  • ob_get_contents() - Return the contents of the output buffer
  • ob_flush() - Flush (send) the output buffer

ob_clean
ob_end_flush
Output Control 函数


Flush (send) the output buffer and turn off output buffering

ob_end_clean
ob_flush
Output Control 函数
PHP 手册

ob_end_flush

(PHP 4, PHP 5)

ob_end_flush — Flush (send) the output buffer and turn off output buffering

说明

bool ob_end_flush ( void )

This function will send the contents of the topmost output buffer (if any) and turn this output buffer off. If you want to further process the buffer's contents you have to call ob_get_contents() before ob_end_flush() as the buffer contents are discarded after ob_end_flush() is called.

Note: This function is similar to ob_get_flush(), except that ob_get_flush() returns the buffer as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Reasons for failure are first that you called the function without an active buffer or that for some reason a buffer could not be deleted (possible for special buffer).

错误／异常

If the function fails it generates an E_NOTICE.

更新日志

版本 | 说明
4.2.0 | The boolean return value was added.

范例

Example #1 ob_end_flush() example

The following example shows an easy way to flush and end all output buffers:

<?php
  while (@ob_end_flush());
?>

参见

  • ob_start() - Turn on output buffering
  • ob_get_contents() - Return the contents of the output buffer
  • ob_get_flush() - Flush the output buffer, return it as a string and turn off output buffering
  • ob_flush() - Flush (send) the output buffer
  • ob_end_clean() - Clean (erase) the output buffer and turn off output buffering

ob_end_clean
ob_flush
Output Control 函数


Flush (send) the output buffer

ob_end_flush
ob_get_clean
Output Control 函数
PHP 手册

ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flush — Flush (send) the output buffer

说明

void ob_flush ( void )

This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

This function does not destroy the output buffer like ob_end_flush() does.

返回值

无返回值。

参见

  • ob_get_contents() - Return the contents of the output buffer
  • ob_clean() - Clean (erase) the output buffer
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering
  • ob_end_clean() - Clean (erase) the output buffer and turn off output buffering

ob_end_flush
ob_get_clean
Output Control 函数


Get current buffer contents and delete current output buffer

ob_flush
ob_get_contents
Output Control 函数
PHP 手册

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_clean — Get current buffer contents and delete current output buffer

说明

string ob_get_clean ( void )

Gets the current buffer contents and delete current output buffer.

ob_get_clean() essentially executes both
ob_get_contents() and
ob_end_clean().

返回值

Returns the contents of the output buffer and end output buffering. If output buffering isn't active then FALSE is returned.

范例

Example #1 A simple ob_get_clean() example

<?php

ob_start();

echo "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

上例将输出：

string(11) "hello world"

参见

  • ob_get_contents() - Return the contents of the output buffer
  • ob_start() - Turn on output buffering

ob_flush
ob_get_contents
Output Control 函数


Return the contents of the output buffer

ob_get_clean
ob_get_flush
Output Control 函数
PHP 手册

ob_get_contents

(PHP 4, PHP 5)

ob_get_contents — Return the contents of the output buffer

说明

string ob_get_contents ( void )

Gets the contents of the output buffer without clearing it.

返回值

This will return the contents of the output buffer or FALSE, if output buffering isn't active.

范例

Example #1 A simple ob_get_contents() example

<?php

ob_start();

echo "Hello ";

$out1 = ob_get_contents();

echo "World";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

上例将输出：

string(6) "Hello "
string(11) "Hello World"

参见

  • ob_start() - Turn on output buffering
  • ob_get_length() - Return the length of the output buffer

ob_get_clean
ob_get_flush
Output Control 函数


Flush the output buffer, return it as a string and turn off output buffering

ob_get_contents
ob_get_length
Output Control 函数
PHP 手册

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering

说明

string ob_get_flush ( void )

ob_get_flush() flushes the output buffer, return it as a string and turns off output buffering.

Note: This function is similar to ob_end_flush(), except that this function returns the buffer as a string.

返回值

Returns the output buffer or FALSE if no buffering is active.

范例

Example #1 ob_get_flush() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());

//save buffer in a file
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

上例将输出：

Array
(
    [0] => default output handler
)
Array
(
)

参见

  • ob_end_clean() - Clean (erase) the output buffer and turn off output buffering
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering
  • ob_list_handlers() - List all output handlers in use

ob_get_contents
ob_get_length
Output Control 函数


Return the length of the output buffer

ob_get_flush
ob_get_level
Output Control 函数
PHP 手册

ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_length — Return the length of the output buffer

说明

int ob_get_length ( void )

This will return the length of the contents in the output buffer.

返回值

Returns the length of the output buffer contents or FALSE if no buffering is active.

范例

Example #1 A simple ob_get_length() example

<?php

ob_start();

echo "Hello ";

$len1 = ob_get_length();

echo "World";

$len2 = ob_get_length();

ob_end_clean();

echo $len1 . ", ." . $len2;
?>

上例将输出：

6, 11

参见

  • ob_start() - Turn on output buffering
  • ob_get_contents() - Return the contents of the output buffer

ob_get_flush
ob_get_level
Output Control 函数


Return the nesting level of the output buffering mechanism

ob_get_length
ob_get_status
Output Control 函数
PHP 手册

ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level — Return the nesting level of the output buffering mechanism

说明

int ob_get_level ( void )

Returns the nesting level of the output buffering mechanism.

返回值

Returns the level of nested output buffering handlers or zero if output buffering is not active.

参见

  • ob_start() - Turn on output buffering
  • ob_get_contents() - Return the contents of the output buffer

ob_get_length
ob_get_status
Output Control 函数


Get status of output buffers

ob_get_level
ob_gzhandler
Output Control 函数
PHP 手册

ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_status — Get status of output buffers

说明

array ob_get_status ([ bool $full_status =FALSE ] )

ob_get_status() returns status information on either the top level output buffer or all active output buffer levels if full_status is set to TRUE.

参数

full_status

TRUE to return all active output buffer levels. If FALSE or not set, only the top level output buffer is returned.

返回值

If called without the full_status parameter or with full_status = FALSE a simple array with the following elements is returned:

Array
(
    [level] => 2
    [type] => 0
    [status] => 0
    [name] => URL-Rewriter
    [del] => 1
)

Simple ob_get_status() results
Key:level
Value:Output nesting level
Key:type
Value:PHP_OUTPUT_HANDLER_INTERNAL (0) or PHP_OUTPUT_HANDLER_USER (1)
Key:status
Value:One of PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) or PHP_OUTPUT_HANDLER_END (2)
Key:name
Value:Name of active output handler or ' default output handler' if none is set
Key:del
Value:Erase-flag as set by ob_start()

If called with full_status = TRUE an array with one element for each active output buffer level is returned. The output level is used as key of the top level array and each array element itself is another array holding status information on one active output level.

Array
(
    [0] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 1
            [status] => 0
            [name] => default output handler
            [del] => 1
        )

    [1] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 0
            [buffer_size] => 0
            [status] => 0
            [name] => URL-Rewriter
            [del] => 1
        )

)

The full output contains these additional elements:

Full ob_get_status() results
Key:chunk_size
Value:Chunk size as set by ob_start()
Key:size
Value:...
Key:blocksize
Value:...

参见

  • ob_get_level() - Return the nesting level of the output buffering mechanism
  • ob_list_handlers() - List all output handlers in use

ob_get_level
ob_gzhandler
Output Control 函数


ob_start callback function to gzip output buffer

ob_get_status
ob_implicit_flush
Output Control 函数
PHP 手册

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler — ob_start callback function to gzip output buffer

说明

string ob_gzhandler ( string $buffer , int $mode )

ob_gzhandler() is intended to be used as a callback function for ob_start() to help facilitate sending gz-encoded data to web browsers that support compressed web pages. Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages. If a browser doesn't support compressed pages this function returns FALSE.

参数

buffer

mode

返回值

更新日志

版本 | 说明
4.0.5 | The mode parameter was added.

范例

Example #1 ob_gzhandler() example

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.</p>
</html>
<body>

注释

Note: ob_gzhandler() requires the zlib extension.

Note: You cannot use both ob_gzhandler() and zlib.output_compression. Also note that using zlib.output_compression is preferred over ob_gzhandler().

参见

  • ob_start() - Turn on output buffering
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering

ob_get_status
ob_implicit_flush
Output Control 函数


Turn implicit flush on/off

ob_gzhandler
ob_list_handlers
Output Control 函数
PHP 手册

ob_implicit_flush

(PHP 4, PHP 5)

ob_implicit_flush — Turn implicit flush on/off

说明

void ob_implicit_flush ([ int $flag ] )

ob_implicit_flush() will turn implicit flushing on or off. Implicit flushing will result in a flush operation after every output call, so that explicit calls to flush() will no longer be needed.

参数

flag

TRUE to turn implicit flushing on, FALSE otherwise. Defaults to TRUE.

返回值

无返回值。

参见

  • flush() - 刷新输出缓冲
  • ob_start() - Turn on output buffering
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering

ob_gzhandler
ob_list_handlers
Output Control 函数


List all output handlers in use

ob_implicit_flush
ob_start
Output Control 函数
PHP 手册

ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlers — List all output handlers in use

说明

array ob_list_handlers ( void )

Lists all output handlers in use.

返回值

This will return an array with the output handlers in use (if any). If output_buffering is enabled or an anonymous function was used with ob_start(), ob_list_handlers() will return "default output handler".

范例

Example #1 ob_list_handlers() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// anonymous functions
ob_start(create_function('$string', 'return $string;'));
print_r(ob_list_handlers());
ob_end_flush();
?>

上例将输出：

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => default output handler
)

参见

  • ob_end_clean() - Clean (erase) the output buffer and turn off output buffering
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering
  • ob_get_flush() - Flush the output buffer, return it as a string and turn off output buffering
  • ob_start() - Turn on output buffering

ob_implicit_flush
ob_start
Output Control 函数


Turn on output buffering

ob_list_handlers
output_add_rewrite_var
Output Control 函数
PHP 手册

ob_start

(PHP 4, PHP 5)

ob_start — Turn on output buffering

说明

bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )

This function will turn output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer.

The contents of this internal buffer may be copied into a string variable using ob_get_contents(). To output what is stored in the internal buffer, use ob_end_flush(). Alternatively, ob_end_clean() will silently discard the buffer contents.

Warning

Some web servers (e.g. Apache) change the working directory of a script when calling the callback function. You can change it back by e.g. chdir(dirname($_SERVER['SCRIPT_FILENAME'])) in the callback function.

Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active. Just make sure that you call ob_end_flush() the appropriate number of times. If multiple output callback functions are active, output is being filtered sequentially through each of them in nesting order.

参数

output_callback

An optional output_callback function may be specified. This function takes a string as a parameter and should return a string. The function will be called when the output buffer is flushed (sent) or cleaned (with ob_flush(), ob_clean() or similar function) or when the output buffer is flushed to the browser at the end of the request. When output_callback is called, it will receive the contents of the output buffer as its parameter and is expected to return a new output buffer as a result, which will be sent to the browser. If the output_callback is not a callable function, this function will return FALSE.

If the callback function has two parameters, the second parameter is filled with a bit-field consisting of PHP_OUTPUT_HANDLER_START, PHP_OUTPUT_HANDLER_CONT and PHP_OUTPUT_HANDLER_END.

If output_callback returns FALSE original input is sent to the browser.

The output_callback parameter may be bypassed by passing a NULL value.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() and ob_start() may not be called from a callback function. If you call them from callback function, the behavior is undefined. If you would like to delete the contents of a buffer, return "" (a null string) from callback function. You can't even call functions using the output buffering functions like print_r($expression, true) or highlight_file($filename, true) from a callback function.

Note: In PHP 4.0.4, ob_gzhandler() was introduced to facilitate sending gz-encoded data to web browsers that support compressed web pages. ob_gzhandler() determines what type of content encoding the browser will accept and will return its output accordingly.

chunk_size

If the optional parameter chunk_size is passed, the buffer will be flushed after any output call which causes the buffer's length to equal or exceed chunk_size . Default value 0 means that the function is called only in the end, other special value 1 sets chunk_size to 4096.

erase

If the optional parameter erase is set to FALSE, the buffer will not be deleted until the script finishes (as of PHP 4.3.0).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
4.3.2 | This function was changed to return FALSE in case the passed output_callback can not be executed.

范例

Example #1 User defined callback function example

<?php

function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush();

?>

上例将输出：

<html>
<body>
<p>It's like comparing oranges to oranges.</p>
</body>
</html>

参见

  • ob_get_contents() - Return the contents of the output buffer
  • ob_end_clean() - Clean (erase) the output buffer and turn off output buffering
  • ob_end_flush() - Flush (send) the output buffer and turn off output buffering
  • ob_implicit_flush() - Turn implicit flush on/off
  • ob_gzhandler() - ob_start callback function to gzip output buffer
  • ob_iconv_handler() - Convert character encoding as output buffer handler
  • mb_output_handler() - Callback function converts character encoding in output buffer
  • ob_tidyhandler() - ob_start callback function to repair the buffer

ob_list_handlers
output_add_rewrite_var
Output Control 函数


Add URL rewriter values

ob_start
output_reset_rewrite_vars
Output Control 函数
PHP 手册

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_var — Add URL rewriter values

说明

bool output_add_rewrite_var ( string $name , string $value )

This function adds another name/value pair to the URL rewrite mechanism. The name and value will be added to URLs (as GET parameter) and forms (as hidden input fields) the same way as the session ID when transparent URL rewriting is enabled with session.use_trans_sid. Please note that absolute URLs (http://example.com/..) aren't rewritten.

This function's behavior is controlled by the url_rewriter.tags php.ini parameter.

Note: Calling this function will implicitly start output buffering if it is not active already.

参数

name

The variable name.

value

The variable value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 output_add_rewrite_var() example

<?php
output_add_rewrite_var('var', 'value');

// some links
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

上例将输出：

<a href="file.php?var=value">link</a>
<a href="http://example.com">link2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

参见

  • output_reset_rewrite_vars() - Reset URL rewriter values
  • ob_flush() - Flush (send) the output buffer
  • ob_list_handlers() - List all output handlers in use

ob_start
output_reset_rewrite_vars
Output Control 函数


Reset URL rewriter values

output_add_rewrite_var
inclued
Output Control 函数
PHP 手册

output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_vars — Reset URL rewriter values

说明

bool output_reset_rewrite_vars ( void )

This function resets the URL rewriter and removes all rewrite variables previously set by the output_add_rewrite_var() function or the session mechanism (if session.use_trans_sid was set on session_start()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 output_reset_rewrite_vars() example

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

上例将输出：

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

参见

  • output_add_rewrite_var() - Add URL rewriter values
  • ob_flush() - Flush (send) the output buffer
  • ob_list_handlers() - List all output handlers in use
  • session_start() - Initialize session data

output_add_rewrite_var
inclued
Output Control 函数


Inclusion hierarchy viewer

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Example that implements inclued into an application
  • inclued 函数
    • inclued_get_data — Get the inclued data
output_reset_rewrite_vars
简介
影响PHP行为的扩展


简介

Traces through and dumps the hierarchy of file inclusions and class inheritance at runtime.

The files may have been included using include(), include_once(), require(), or require_once().

Class inheritance dependencies are also reported.

inclued
安装/配置
inclued


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
inclued


需求

PHP version 5.1.0 or greater.

The included gengraph.php file utilizes the » graphviz library, however, this is not required.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/inclued

The latest PECL/inclued Win32 DLL is available here: » php_inclued.dll

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

inclued 配置选项
名字 | 默认 | 可修改范围 | Changelog
inclued.enabled | Off | PHP_INI_* |
inclued.dumpdir | Off | PHP_INI_* |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

inclued.enabled int

Whether or not to enable inclued.

inclued.dumpdir int

Location (path) to the directory that stores inclued files. If set, each PHP request will create a file.

Caution

Because every request creates a file, this directory may fill up fast!

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

本扩展模块未定义任何常量。

资源类型
范例
inclued


范例

Table of Contents

  • Example that implements inclued into an application
预定义常量
Example that implements inclued into an application
inclued


Example that implements inclued into an application

This example demonstrates the process of implementing inclued into an existing application, and viewing the results.

Example #1 Getting the data from inclued

<?php
// File to store the inclued information
$fp = fopen('/tmp/wp.json', 'w');
if ($fp) {
    $clue = inclued_get_data();
    if ($clue) {
        fwrite($fp, json_encode($clue));
    }
    fclose($fp);
}
?>

Now that some data exists, it's time to make sense of it in the form of a graph. The inclued extension includes a PHP file named gengraph.php that creates a dot file that requires the » graphviz library. However, this form is not required.

Example #2 Example use of gengraph.php

This example creates an image named inclued.png that shows the inclued data.

# First, create the dot file
$ php graphviz.php -i /tmp/wp.json -o wp.dot

# Next, create the image
$ dot -Tpng -o inclued.png wp.dot

范例
inclued 函数
范例


inclued 函数

Table of Contents

  • inclued_get_data — Get the inclued data
Example that implements inclued into an application
inclued_get_data
inclued


Get the inclued data

inclued 函数
PHP Options/Info
inclued 函数
PHP 手册

inclued_get_data

(PECL inclued >= 0.1.0)

inclued_get_data — Get the inclued data

说明

array inclued_get_data ( void )

Get the inclued data.

参数

This function has no parameters.

返回值

The inclued data.

范例

Example #1 inclued_get_data() example

See the inclued examples section for ways to create a graphs with this data.

<?php
include 'x.php';

$clue = inclued_get_data();

print_r($clue);
?>

上例的输出类似于：

Array
(
  [includes] => Array
    (
      [0] => Array
        (
          [operation] => include
          [op_type] => 2
          [filename] => x.php
          [opened_path] => /tmp/x.php
          [fromfile] => /tmp/z.php
          [fromline] => 2
        )
    )
)

参见

  • inclued examples
  • debug_backtrace() - Generates a backtrace
  • include() - include

inclued 函数
PHP Options/Info
inclued 函数


PHP Options and Information

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • PHP Options/Info 函数
    • assert_options — Set/get the various assert flags
    • assert — Checks if assertion is FALSE
    • dl — Loads a PHP extension at runtime
    • extension_loaded — Find out whether an extension is loaded
    • gc_collect_cycles — Forces collection of any existing garbage cycles
    • gc_disable — Deactivates the circular reference collector
    • gc_enable — Activates the circular reference collector
    • gc_enabled — Returns status of the circular reference collector
    • get_cfg_var — Gets the value of a PHP configuration option
    • get_current_user — Gets the name of the owner of the current PHP script
    • get_defined_constants — Returns an associative array with the names of all the constants and their values
    • get_extension_funcs — Returns an array with the names of the functions of a module
    • get_include_path — Gets the current include_path configuration option
    • get_included_files — Returns an array with the names of included or required files
    • get_loaded_extensions — Returns an array with the names of all modules compiled and loaded
    • get_magic_quotes_gpc — Gets the current configuration setting of magic quotes gpc
    • get_magic_quotes_runtime — Gets the current active configuration setting of magic_quotes_runtime
    • get_required_files — 别名 get_included_files
    • getenv — Gets the value of an environment variable
    • getlastmod — Gets time of last page modification
    • getmygid — Get PHP script owner's GID
    • getmyinode — Gets the inode of the current script
    • getmypid — Gets PHP's process ID
    • getmyuid — Gets PHP script owner's UID
    • getopt — Gets options from the command line argument list
    • getrusage — Gets the current resource usages
    • ini_alter — 别名 ini_set
    • ini_get_all — Gets all configuration options
    • ini_get — Gets the value of a configuration option
    • ini_restore — Restores the value of a configuration option
    • ini_set — Sets the value of a configuration option
    • main — Dummy for main
    • memory_get_peak_usage — Returns the peak of memory allocated by PHP
    • memory_get_usage — Returns the amount of memory allocated to PHP
    • php_ini_loaded_file — Retrieve a path to the loaded php.ini file
    • php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir
    • php_logo_guid — Gets the logo guid
    • php_sapi_name — Returns the type of interface between web server and PHP
    • php_uname — Returns information about the operating system PHP is running on
    • phpcredits — Prints out the credits for PHP
    • phpinfo — Outputs lots of PHP information
    • phpversion — Gets the current PHP version
    • putenv — Sets the value of an environment variable
    • restore_include_path — Restores the value of the include_path configuration option
    • set_include_path — Sets the include_path configuration option
    • set_magic_quotes_runtime — Sets the current active configuration setting of magic_quotes_runtime
    • set_time_limit — Limits the maximum execution time
    • sys_get_temp_dir — Returns directory path used for temporary files
    • version_compare — Compares two "PHP-standardized" version number strings
    • zend_logo_guid — Gets the Zend guid
    • zend_thread_id — Returns a unique identifier for the current thread
    • zend_version — Gets the version of the current Zend engine
inclued_get_data
简介
影响PHP行为的扩展


简介

This functions enable you to get a lot of information about PHP itself, e.g. runtime configuration, loaded extensions, version and much more. You'll also find functions to set options for your running PHP. The probably best known function of PHP - phpinfo() - can be found here.

PHP Options/Info
安装/配置
PHP Options/Info


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PHP Options/Info


运行时配置

这些函数的行为受 php.ini 的影响。

PHP Options/Inf Configuration Options
Name | Default | Changeable | Changelog
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
enable_dl | "1" | PHP_INI_SYSTEM | Removed in PHP 6.0.0.
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Available since PHP 4.3.0.
max_input_nesting_level | "64" | PHP_INI_PERDIR | Available since PHP 4.4.8. Removed in PHP 5.0.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. Removed in PHP 6.0.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Removed in PHP 6.0.0.
zend.enable_gc | "1" | PHP_INI_ALL | Available since PHP 5.3.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

assert.active boolean

Enable assert() evaluation.

assert.bail boolean

Terminate script execution on failed assertions.

assert.warning boolean

Issue a PHP warning for each failed assertion.

assert.callback string

user function to call on failed assertions

assert.quiet_eval boolean

Use the current setting of error_reporting() during assertion expression evaluation. If enabled, no errors are shown (implicit error_reporting(0)) while evaluation. If disabled, errors are shown according to the settings of error_reporting()

enable_dl boolean

This directive is really only useful in the Apache module version of PHP. You can turn dynamic loading of PHP extensions with dl() on and off per virtual server or per directory.

The main reason for turning dynamic loading off is security. With dynamic loading, it's possible to ignore all open_basedir restrictions. The default is to allow dynamic loading, except when using 安全模式. In 安全模式, it's always impossible to use dl().

max_execution_time integer

This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30. When running PHP from the command line the default setting is 0.

The maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details.

You can not change this setting with ini_set() when running in 安全模式. The only workaround is to turn off safe mode or by changing the time limit in the php.ini.

Your web server can have other timeout configurations that may also interrupt PHP execution. Apache has a Timeout directive and IIS has a CGI timeout function. Both default to 300 seconds. See your web server documentation for specific details.

max_input_time integer

This sets the maximum time in seconds a script is allowed to parse input data, like POST, GET and file uploads.

max_input_nesting_level integer

Sets the max nesting depth of input variables (i.e. $_GET, $_POST..)

magic_quotes_gpc boolean
Warning

This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.

Note: In PHP 4, also $_ENV variables are escaped.

Note: If the magic_quotes_sybase directive is also ON it will completely override magic_quotes_gpc. Having both directives enabled means only single quotes are escaped as ''. Double quotes, backslashes and NUL's will remain untouched and unescaped.

See also get_magic_quotes_gpc()

magic_quotes_runtime boolean
Warning

This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

If magic_quotes_runtime is enabled, most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash. If magic_quotes_sybase is also on, a single-quote is escaped with a single-quote instead of a backslash.

zend.enable_gc boolean

Enables or disables the circular reference collector.

安装
资源类型
安装/配置


预定义常量

以下常量作为 PHP 核心的一部分一直有效。

Pre-defined phpcredits() constants
Constant | Value | Description
CREDITS_GROUP | 1 | A list of the core developers
CREDITS_GENERAL | 2 | General credits: Language design and concept, PHP authors and SAPI module.
CREDITS_SAPI | 4 | A list of the server API modules for PHP, and their authors.
CREDITS_MODULES | 8 | A list of the extension modules for PHP, and their authors.
CREDITS_DOCS | 16 | The credits for the documentation team.
CREDITS_FULLPAGE | 32 | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_QA | 64 | The credits for the quality assurance team.
CREDITS_ALL | -1 | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags. This is the default value.
phpinfo() constants
Constant | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings.
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the » license faq.
INFO_ALL | -1 | Shows all of the above. This is the default value.
ASSERT_ACTIVE (integer)
ASSERT_CALLBACK (integer)
ASSERT_BAIL (integer)
ASSERT_WARNING (integer)
ASSERT_QUIET_EVAL (integer)
资源类型
PHP Options/Info 函数
PHP Options/Info


PHP Options/Info 函数

Table of Contents

  • assert_options — Set/get the various assert flags
  • assert — Checks if assertion is FALSE
  • dl — Loads a PHP extension at runtime
  • extension_loaded — Find out whether an extension is loaded
  • gc_collect_cycles — Forces collection of any existing garbage cycles
  • gc_disable — Deactivates the circular reference collector
  • gc_enable — Activates the circular reference collector
  • gc_enabled — Returns status of the circular reference collector
  • get_cfg_var — Gets the value of a PHP configuration option
  • get_current_user — Gets the name of the owner of the current PHP script
  • get_defined_constants — Returns an associative array with the names of all the constants and their values
  • get_extension_funcs — Returns an array with the names of the functions of a module
  • get_include_path — Gets the current include_path configuration option
  • get_included_files — Returns an array with the names of included or required files
  • get_loaded_extensions — Returns an array with the names of all modules compiled and loaded
  • get_magic_quotes_gpc — Gets the current configuration setting of magic quotes gpc
  • get_magic_quotes_runtime — Gets the current active configuration setting of magic_quotes_runtime
  • get_required_files — 别名 get_included_files
  • getenv — Gets the value of an environment variable
  • getlastmod — Gets time of last page modification
  • getmygid — Get PHP script owner's GID
  • getmyinode — Gets the inode of the current script
  • getmypid — Gets PHP's process ID
  • getmyuid — Gets PHP script owner's UID
  • getopt — Gets options from the command line argument list
  • getrusage — Gets the current resource usages
  • ini_alter — 别名 ini_set
  • ini_get_all — Gets all configuration options
  • ini_get — Gets the value of a configuration option
  • ini_restore — Restores the value of a configuration option
  • ini_set — Sets the value of a configuration option
  • main — Dummy for main
  • memory_get_peak_usage — Returns the peak of memory allocated by PHP
  • memory_get_usage — Returns the amount of memory allocated to PHP
  • php_ini_loaded_file — Retrieve a path to the loaded php.ini file
  • php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir
  • php_logo_guid — Gets the logo guid
  • php_sapi_name — Returns the type of interface between web server and PHP
  • php_uname — Returns information about the operating system PHP is running on
  • phpcredits — Prints out the credits for PHP
  • phpinfo — Outputs lots of PHP information
  • phpversion — Gets the current PHP version
  • putenv — Sets the value of an environment variable
  • restore_include_path — Restores the value of the include_path configuration option
  • set_include_path — Sets the include_path configuration option
  • set_magic_quotes_runtime — Sets the current active configuration setting of magic_quotes_runtime
  • set_time_limit — Limits the maximum execution time
  • sys_get_temp_dir — Returns directory path used for temporary files
  • version_compare — Compares two "PHP-standardized" version number strings
  • zend_logo_guid — Gets the Zend guid
  • zend_thread_id — Returns a unique identifier for the current thread
  • zend_version — Gets the version of the current Zend engine
预定义常量
assert_options
PHP Options/Info


Set/get the various assert flags

PHP Options/Info 函数
assert
PHP Options/Info 函数
PHP 手册

assert_options

(PHP 4, PHP 5)

assert_options — Set/get the various assert flags

说明

mixed assert_options ( int $what [, mixed $value ] )

Set the various assert() control options or just query their current settings.

参数

what

Assert Options
option | ini-parameter | default | description
ASSERT_ACTIVE | assert.active | 1 | enable assert() evaluation
ASSERT_WARNING | assert.warning | 1 | issue a PHP warning for each failed assertion
ASSERT_BAIL | assert.bail | 0 | terminate execution on failed assertions
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | disable error_reporting during assertion expression evaluation
ASSERT_CALLBACK | assert.callback | (NULL) | user function to call on failed assertions

value

An optional new value for the option.

返回值

Returns the original setting of any option or FALSE on errors.

范例

Example #1 assert_options() example

<?php
// This is our function to handle
// assert failures
function assert_failure()
{
    echo 'Assert failed';
}

// This is our test function
function test_assert($parameter)
{
    assert(is_bool($parameter));
}

// Set our assert options
assert_options(ASSERT_ACTIVE,    true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,     false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// Make an assert that would fail
test_assert(1);

// This is never reached due to ASSERT_BAIL
// being true
echo 'Never reached';
?>

参见

  • assert() - Checks if assertion is FALSE

PHP Options/Info 函数
assert
PHP Options/Info 函数


Checks if assertion is FALSE

assert_options
dl
PHP Options/Info 函数
PHP 手册

assert

(PHP 4, PHP 5)

assert — Checks if assertion is FALSE

说明

bool assert ( mixed $assertion )

assert() will check the given assertion and take appropriate action if its result is FALSE.

If the assertion is given as a string it will be evaluated as PHP code by assert(). The advantages of a string assertion are less overhead when assertion checking is off and messages containing the assertion expression when an assertion fails. This means that if you pass a boolean condition as assertion this condition will not show up as parameter to the assertion function which you may have defined with the assert_options() function, the condition is converted to a string before calling that handler function, and the boolean FALSE is converted as the empty string.

Assertions should be used as a debugging feature only. You may use them for sanity-checks that test for conditions that should always be TRUE and that indicate some programming errors if not or to check for the presence of certain features like extension functions or certain system limits and features.

Assertions should not be used for normal runtime operations like input parameter checks. As a rule of thumb your code should always be able to work correctly if assertion checking is not activated.

The behavior of assert() may be configured by assert_options() or by .ini-settings described in that functions manual page.

The assert_options() function and/or ASSERT_CALLBACK configuration directive allow a callback function to be set to handle failed assertions.

assert() callbacks are particularly useful for building automated test suites because they allow you to easily capture the code passed to the assertion, along with information on where the assertion was made. While this information can be captured via other methods, using assertions makes it much faster and easier!

The callback function should accept three arguments. The first argument will contain the file the assertion failed in. The second argument will contain the line the assertion failed on and the third argument will contain the expression that failed (if any - literal values such as 1 or "two" will not be passed via this argument)

参数

assertion

The assertion.

返回值

FALSE if the assertion is false, TRUE otherwise.

范例

Example #1 Handle a failed assertion with a custom handler

<?php
// Active assert and make it quiet
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Create a handler function
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Assertion Failed:
        File '$file'<br />
        Line '$line'<br />
        Code '$code'<br /><hr />";
}

// Set up the callback
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Make an assertion that should fail
assert('mysql_query("")');
?>

参见

  • assert_options() - Set/get the various assert flags

assert_options
dl
PHP Options/Info 函数


Loads a PHP extension at runtime

assert
extension_loaded
PHP Options/Info 函数
PHP 手册

dl

(PHP 4, PHP 5)

dl — Loads a PHP extension at runtime

说明

int dl ( string $library )

Loads the PHP extension given by the parameter library .

Use extension_loaded() to test whether a given extension is already available or not. This works on both built-in extensions and dynamically loaded ones (either through php.ini or dl()).

参数

library

This parameter is only the filename of the extension to load which also depends on your platform. For example, the sockets extension (if compiled as a shared module, not the default!) would be called sockets.so on Unix platforms whereas it is called php_sockets.dll on the Windows platform.

The directory where the extension is loaded from depends on your platform:

Windows - If not explicitly set in the php.ini, the extension is loaded from c:\php4\extensions\ by default.

Unix - If not explicitly set in the php.ini, the default extension directory depends on

  • whether PHP has been built with --enable-debug or not
  • whether PHP has been built with (experimental) ZTS (Zend Thread Safety) support or not
  • the current internal ZEND_MODULE_API_NO (Zend internal module API number, which is basically the date on which a major module API change happened, e.g. 20010901)

Taking into account the above, the directory then defaults to <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 or /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If the functionality of loading modules is not available (see Note) or has been disabled (either by turning it off enable_dl or by enabling 安全模式 in php.ini) an E_ERROR is emitted and execution is stopped. If dl() fails because the specified library couldn't be loaded, in addition to FALSE an E_WARNING message is emitted.

范例

Example #1 dl() examples

<?php
// Example loading an extension based on OS
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

更新日志

版本 | 说明
5.3.0 | This function now throws an E_DEPRECATED notice on all sapi's except for CLI, CGI and Embed.

注释

Note: dl() is not supported in multithreaded Web servers. Use the extensions statement in your php.ini when operating under such an environment. However, the CGI and CLI build are not affected !

Note: As of PHP 5, the dl() function is deprecated in every SAPI except CLI. Use Extension Loading Directives method instead.

Note: Since PHP 6 this function is disabled in all SAPIs, except CLI, CGI and embed.

Note: dl() is case sensitive on Unix platforms.

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

参见

  • Extension Loading Directives
  • extension_loaded() - Find out whether an extension is loaded

assert
extension_loaded
PHP Options/Info 函数


Find out whether an extension is loaded

dl
gc_collect_cycles
PHP Options/Info 函数
PHP 手册

extension_loaded

(PHP 4, PHP 5)

extension_loaded — Find out whether an extension is loaded

说明

bool extension_loaded ( string $name )

Finds out whether the extension is loaded.

参数

name

The extension name.

You can see the names of various extensions by using phpinfo() or if you're using the CGI or CLI version of PHP you can use the -m switch to list all available extensions:

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

返回值

Returns TRUE if the extension identified by name is loaded, FALSE otherwise.

范例

Example #1 extension_loaded() example

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

注释

Note: extension_loaded() uses the internal extension name to test whether a certain extension is available or not. Most internal extension names are written in lower case but there may be extension available which also use uppercase letters. Be warned that this function compares case sensitive !

参见

  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • get_extension_funcs() - Returns an array with the names of the functions of a module
  • phpinfo() - Outputs lots of PHP information
  • dl() - Loads a PHP extension at runtime

dl
gc_collect_cycles
PHP Options/Info 函数


Forces collection of any existing garbage cycles

extension_loaded
gc_disable
PHP Options/Info 函数
PHP 手册

gc_collect_cycles

(PHP 5 >= 5.3.0)

gc_collect_cycles — Forces collection of any existing garbage cycles

说明

int gc_collect_cycles ( void )
Warning

本函数暂无文档，仅有参数列表。

Forces collection of any existing garbage cycles.

参数

This function has no parameters.

返回值

Returns number of collected cycles.

extension_loaded
gc_disable
PHP Options/Info 函数


Deactivates the circular reference collector

gc_collect_cycles
gc_enable
PHP Options/Info 函数
PHP 手册

gc_disable

(PHP 5 >= 5.3.0)

gc_disable — Deactivates the circular reference collector

说明

void gc_disable ( void )
Warning

本函数暂无文档，仅有参数列表。

Deactivates the circular reference collector.

参数

This function has no parameters.

返回值

无返回值。

gc_collect_cycles
gc_enable
PHP Options/Info 函数


Activates the circular reference collector

gc_disable
gc_enabled
PHP Options/Info 函数
PHP 手册

gc_enable

(PHP 5 >= 5.3.0)

gc_enable — Activates the circular reference collector

说明

void gc_enable ( void )
Warning

本函数暂无文档，仅有参数列表。

Activates the circular reference collector.

参数

This function has no parameters.

返回值

无返回值。

gc_disable
gc_enabled
PHP Options/Info 函数


Returns status of the circular reference collector

gc_enable
get_cfg_var
PHP Options/Info 函数
PHP 手册

gc_enabled

(PHP 5 >= 5.3.0)

gc_enabled — Returns status of the circular reference collector

说明

bool gc_enabled ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns status of the circular reference collector.

参数

This function has no parameters.

返回值

Returns TRUE if the garbage collector is enabled, FALSE otherwise.

gc_enable
get_cfg_var
PHP Options/Info 函数


Gets the value of a PHP configuration option

gc_enabled
get_current_user
PHP Options/Info 函数
PHP 手册

get_cfg_var

(PHP 4, PHP 5)

get_cfg_var — Gets the value of a PHP configuration option

说明

string get_cfg_var ( string $option )

Gets the value of a PHP configuration option .

This function will not return configuration information set when the PHP was compiled, or read from an Apache configuration file.

To check whether the system is using a configuration file, try retrieving the value of the cfg_file_path configuration setting. If this is available, a configuration file is being used.

参数

option

The configuration option name.

返回值

Returns the current value of the PHP configuration variable specified by option , or FALSE if an error occurs.

更新日志

版本 | 说明
5.3.0 | get_cfg_var() was fixed to be able to return "array" ini options.

参见

  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options

gc_enabled
get_current_user
PHP Options/Info 函数


Gets the name of the owner of the current PHP script

get_cfg_var
get_defined_constants
PHP Options/Info 函数
PHP 手册

get_current_user

(PHP 4, PHP 5)

get_current_user — Gets the name of the owner of the current PHP script

说明

string get_current_user ( void )

Returns the name of the owner of the current PHP script.

返回值

Returns the username as a string.

范例

Example #1 get_current_user() example

<?php
echo 'Current script owner: ' . get_current_user();
?>

上例的输出类似于：

Current script owner: SYSTEM

参见

  • getmyuid() - Gets PHP script owner's UID
  • getmygid() - Get PHP script owner's GID
  • getmypid() - Gets PHP's process ID
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Gets time of last page modification

get_cfg_var
get_defined_constants
PHP Options/Info 函数


Returns an associative array with the names of all the constants and their values

get_current_user
get_extension_funcs
PHP Options/Info 函数
PHP 手册

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants — Returns an associative array with the names of all the constants and their values

说明

array get_defined_constants ([ bool $categorize ] )

Returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function.

参数

categorize

Causing this function to return a multi-dimensional array with categories in the keys of the first dimension and constants and their values in the second dimension.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

上例的输出类似于：

Array
(
    [internal] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

返回值

更新日志

版本 | 说明
5.0.0 | The categorize parameter was added.

范例

Example #1 get_defined_constants() Example

<?php
print_r(get_defined_constants());
?>

上例的输出类似于：

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

参见

  • defined() - Checks whether a given named constant exists
  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • get_defined_functions() - Returns an array of all defined functions
  • get_defined_vars() - 返回由所有已定义变量所组成的数组

get_current_user
get_extension_funcs
PHP Options/Info 函数


Returns an array with the names of the functions of a module

get_defined_constants
get_include_path
PHP Options/Info 函数
PHP 手册

get_extension_funcs

(PHP 4, PHP 5)

get_extension_funcs — Returns an array with the names of the functions of a module

说明

array get_extension_funcs ( string $module_name )

This function returns the names of all the functions defined in the module indicated by module_name .

参数

module_name

The module name.

Note: This parameter must be in lowercase.

返回值

Returns an array with all the functions, or FALSE if module_name is not a valid extension.

范例

Example #1 Prints the XML functions

<?php
print_r(get_extension_funcs("xml"));
?>

上例的输出类似于：

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

参见

  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded

get_defined_constants
get_include_path
PHP Options/Info 函数


Gets the current include_path configuration option

get_extension_funcs
get_included_files
PHP Options/Info 函数
PHP 手册

get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path — Gets the current include_path configuration option

说明

string get_include_path ( void )

Gets the current include_path configuration option value.

返回值

Returns the path, as a string.

范例

Example #1 get_include_path() example

<?php
// Works as of PHP 4.3.0
echo get_include_path();

// Works in all PHP versions
echo ini_get('include_path');
?>

参见

  • ini_get() - Gets the value of a configuration option
  • restore_include_path() - Restores the value of the include_path configuration option
  • set_include_path() - Sets the include_path configuration option
  • include() - include

get_extension_funcs
get_included_files
PHP Options/Info 函数


Returns an array with the names of included or required files

get_include_path
get_loaded_extensions
PHP Options/Info 函数
PHP 手册

get_included_files

(PHP 4, PHP 5)

get_included_files — Returns an array with the names of included or required files

说明

array get_included_files ( void )

Gets the names of all files that have been included using include(), include_once(), require() or require_once().

返回值

Returns an array of the names of all files.

The script originally called is considered an "included file," so it will be listed together with the files referenced by include() and family.

Files that are included or required multiple times only show up once in the returned array.

更新日志

版本 | 说明
4.0.1 | In PHP 4.0.1 and previous versions this function assumed that the required files ended in the extension .php; other extensions would not be returned. The array returned by get_included_files() was an associative array and only listed files included by include() and include_once().

范例

Example #1 get_included_files() example

<?php
// This file is abc.php

include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\n";
}

?>

上例将输出：

abc.php
test1.php
test2.php
test3.php
test4.php

注释

Note: Files included using the auto_prepend_file configuration directive are not included in the returned array.

参见

  • include() - include
  • include_once() - include_once
  • require() - require
  • require_once() - require_once
  • get_required_files() - 别名 get_included_files

get_include_path
get_loaded_extensions
PHP Options/Info 函数


Returns an array with the names of all modules compiled and loaded

get_included_files
get_magic_quotes_gpc
PHP Options/Info 函数
PHP 手册

get_loaded_extensions

(PHP 4, PHP 5)

get_loaded_extensions — Returns an array with the names of all modules compiled and loaded

说明

array get_loaded_extensions ([ bool $zend_extensions=false ] )

This function returns the names of all the modules compiled and loaded in the PHP interpreter.

参数

zend_extensions

Return zend_extensions or not, defaults to FALSE (do not list zend_extensions).

返回值

Returns an indexed array of all the modules names.

更新日志

版本 | 说明
5.2.4 | The optional zend_extensions parameter was added

范例

Example #1 get_loaded_extensions() Example

<?php
print_r(get_loaded_extensions());
?>

上例的输出类似于：

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

参见

  • get_extension_funcs() - Returns an array with the names of the functions of a module
  • extension_loaded() - Find out whether an extension is loaded
  • dl() - Loads a PHP extension at runtime
  • phpinfo() - Outputs lots of PHP information

get_included_files
get_magic_quotes_gpc
PHP Options/Info 函数


Gets the current configuration setting of magic quotes gpc

get_loaded_extensions
get_magic_quotes_runtime
PHP Options/Info 函数
PHP 手册

get_magic_quotes_gpc

(PHP 4, PHP 5)

get_magic_quotes_gpc — Gets the current configuration setting of magic quotes gpc

说明

int get_magic_quotes_gpc ( void )

Returns the current configuration setting of magic_quotes_gpc

Keep in mind that the setting magic_quotes_gpc will not work at runtime.

For more information about magic_quotes, see this security section.

返回值

Returns 0 if magic quotes gpc are off, 1 otherwise.

范例

Example #1 get_magic_quotes_gpc() example

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

注释

Note: If the directive magic_quotes_sybase is ON it will completely override magic_quotes_gpc. So even when get_magic_quotes_gpc() returns TRUE neither double quotes, backslashes or NUL's will be escaped. Only single quotes will be escaped. In this case they'll look like: ''

参见

  • addslashes() - 使用反斜线引用字符串
  • stripslashes() - Un-quotes a quoted string
  • get_magic_quotes_runtime() - Gets the current active configuration setting of magic_quotes_runtime
  • ini_get() - Gets the value of a configuration option

get_loaded_extensions
get_magic_quotes_runtime
PHP Options/Info 函数


Gets the current active configuration setting of magic_quotes_runtime

get_magic_quotes_gpc
get_required_files
PHP Options/Info 函数
PHP 手册

get_magic_quotes_runtime

(PHP 4, PHP 5)

get_magic_quotes_runtime — Gets the current active configuration setting of magic_quotes_runtime

说明

int get_magic_quotes_runtime ( void )

Returns the current active configuration setting of magic_quotes_runtime.

返回值

Returns 0 if magic quotes runtime is off, 1 otherwise.

范例

Example #1 get_magic_quotes_runtime() example

<?php
// Check if magic_quotes_runtime is active
if(get_magic_quotes_runtime())
{
    // Deactive
    set_magic_quotes_runtime(false);
}
?>

参见

  • get_magic_quotes_gpc() - Gets the current configuration setting of magic quotes gpc
  • set_magic_quotes_runtime() - Sets the current active configuration setting of magic_quotes_runtime

get_magic_quotes_gpc
get_required_files
PHP Options/Info 函数


别名 get_included_files

get_magic_quotes_runtime
getenv
PHP Options/Info 函数
PHP 手册

get_required_files

(PHP 4, PHP 5)

get_required_files — 别名 get_included_files()

说明

本函数是该函数的别名： get_included_files().

get_magic_quotes_runtime
getenv
PHP Options/Info 函数


Gets the value of an environment variable

get_required_files
getlastmod
PHP Options/Info 函数
PHP 手册

getenv

(PHP 4, PHP 5)

getenv — Gets the value of an environment variable

说明

string getenv ( string $varname )

Gets the value of an environment variable.

You can see a list of all the environmental variables by using phpinfo(). You can find out what many of them mean by taking a look at the » CGI specification, specifically the » page on environmental variables.

参数

varname

The variable name.

返回值

Returns the value of the environment variable varname , or FALSE on an error.

范例

Example #1 getenv() Example

<?php
// Example use of getenv()
$ip = getenv('REMOTE_ADDR');

// Or simply use a Superglobal ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
?>

参见

  • putenv() - Sets the value of an environment variable
  • apache_getenv() - Get an Apache subprocess_env variable
  • Superglobals

get_required_files
getlastmod
PHP Options/Info 函数


Gets time of last page modification

getenv
getmygid
PHP Options/Info 函数
PHP 手册

getlastmod

(PHP 4, PHP 5)

getlastmod — Gets time of last page modification

说明

int getlastmod ( void )

Gets the time of the last modification of the current page.

If you're interested in getting the last modification time of a different file, consider using filemtime().

返回值

Returns the time of the last modification of the current page. The value returned is a Unix timestamp, suitable for feeding to date(). Returns FALSE on error.

范例

Example #1 getlastmod() example

<?php
// outputs e.g. 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: " . date ("F d Y H:i:s.", getlastmod());
?>

参见

  • date() - 格式化一个本地时间／日期
  • getmyuid() - Gets PHP script owner's UID
  • getmygid() - Get PHP script owner's GID
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getmypid() - Gets PHP's process ID
  • filemtime() - 取得文件修改时间

getenv
getmygid
PHP Options/Info 函数


Get PHP script owner's GID

getlastmod
getmyinode
PHP Options/Info 函数
PHP 手册

getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygid — Get PHP script owner's GID

说明

int getmygid ( void )

Gets the group ID of the current script.

返回值

Returns the group ID of the current script, or FALSE on error.

参见

  • getmyuid() - Gets PHP script owner's UID
  • getmypid() - Gets PHP's process ID
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Gets time of last page modification

getlastmod
getmyinode
PHP Options/Info 函数


Gets the inode of the current script

getmygid
getmypid
PHP Options/Info 函数
PHP 手册

getmyinode

(PHP 4, PHP 5)

getmyinode — Gets the inode of the current script

说明

int getmyinode ( void )

Gets the inode of the current script.

返回值

Returns the current script's inode as an integer, or FALSE on error.

参见

  • getmygid() - Get PHP script owner's GID
  • getmyuid() - Gets PHP script owner's UID
  • getmypid() - Gets PHP's process ID
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getlastmod() - Gets time of last page modification

getmygid
getmypid
PHP Options/Info 函数


Gets PHP's process ID

getmyinode
getmyuid
PHP Options/Info 函数
PHP 手册

getmypid

(PHP 4, PHP 5)

getmypid — Gets PHP's process ID

说明

int getmypid ( void )

Gets the current PHP process ID.

返回值

Returns the current PHP process ID, or FALSE on error.

注释

Warning

Process IDs are not unique, thus they are a weak entropy source. We recommend against relying on pids in security-dependent contexts.

参见

  • getmygid() - Get PHP script owner's GID
  • getmyuid() - Gets PHP script owner's UID
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Gets time of last page modification

getmyinode
getmyuid
PHP Options/Info 函数


Gets PHP script owner's UID

getmypid
getopt
PHP Options/Info 函数
PHP 手册

getmyuid

(PHP 4, PHP 5)

getmyuid — Gets PHP script owner's UID

说明

int getmyuid ( void )

Gets the user ID of the current script.

返回值

Returns the user ID of the current script, or FALSE on error.

参见

  • getmygid() - Get PHP script owner's GID
  • getmypid() - Gets PHP's process ID
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Gets time of last page modification

getmypid
getopt
PHP Options/Info 函数


Gets options from the command line argument list

getmyuid
getrusage
PHP Options/Info 函数
PHP 手册

getopt

(PHP 4 >= 4.3.0, PHP 5)

getopt — Gets options from the command line argument list

说明

array getopt ( string $options [, array $longopts ] )

Parses options passed to the script.

参数

options
Each character in this string will be used as option characters and matched against options passed to the script starting with a single hyphen (-). For example, an option string "x" recognizes an option -x.
longopts
An array of options. Each element in this array will be used as option strings and matched against options passed to the script starting with two hyphens (--). For example, an longopts element "opt" recognizes an option --opt.

Note: Prior to PHP5.3.0 this parameter was only available on few systems

The options parameter may contain the following elements:

  • Individual characters (do not accept values)
  • Characters followed by a colon (parameter requires value)
  • Characters followed by two colons (optional value)

Option values are the first argument after the string. It does not matter if a value has leading white space or not.

Note: Optional values do not accept " " (space) as a seperator.

Note: The format for the options and longopts is almost the same, the only difference is that longopts takes an array of options (where each element is the option) where as options takes a string (where each character is the option).

返回值

This function will return an array of option / argument pairs or FALSE on failure.

更新日志

版本 | 说明
5.3.0 | Added support for "=" as argument/value separator.
5.3.0 | Added support for optional values (specified with "::").
5.3.0 | This function is no longer system dependent and works on Windows too.

范例

Example #1 getopt() Example

<?php
$options = getopt("f:hp:");
var_dump($options);
?>

Running the above script with php script.php -fvalue -h will output:

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Example #2 getopt() Example#2

<?php
$shortopts  = "";
$shortopts .= "f:";  // Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values

$longopts  = array(
    "required:",     // Required value
    "optional::",    // Optional value
    "option",        // No value
    "opt",           // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>

Running the above script with php script.php -f "value for f" -v -a --required value --optional="optional value" --option will output:

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Example #3 getopt() Example#3

Passing multiple options as one

<?php
$options = getopt("abc");
var_dump($options);
?>

Running the above script with php script.php -aaac will output:

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

getmyuid
getrusage
PHP Options/Info 函数


Gets the current resource usages

getopt
ini_alter
PHP Options/Info 函数
PHP 手册

getrusage

(PHP 4, PHP 5)

getrusage — Gets the current resource usages

说明

array getrusage ([ int $who=0 ] )

This is an interface to getrusage(2). It gets data returned from the system call.

参数

who

If who is 1, getrusage will be called with RUSAGE_CHILDREN.

返回值

Returns an associative array containing the data returned from the system call. All entries are accessible by using their documented field names.

范例

Example #1 getrusage() example

<?php
$dat = getrusage();
echo $dat["ru_nswap"];         // number of swaps
echo $dat["ru_majflt"];        // number of page faults
echo $dat["ru_utime.tv_sec"];  // user time used (seconds)
echo $dat["ru_utime.tv_usec"]; // user time used (microseconds)
?>

注释

Note: 本函数未在 Windows 平台下实现。

参见

  • Your system's man page on getrusage(2)

getopt
ini_alter
PHP Options/Info 函数


别名 ini_set

getrusage
ini_get_all
PHP Options/Info 函数
PHP 手册

ini_alter

(PHP 4, PHP 5)

ini_alter — 别名 ini_set()

说明

本函数是该函数的别名： ini_set().

getrusage
ini_get_all
PHP Options/Info 函数


Gets all configuration options

ini_alter
ini_get
PHP Options/Info 函数
PHP 手册

ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_all — Gets all configuration options

说明

array ini_get_all ([ string $extension [, bool $details=true ]] )

Returns all the registered configuration options.

参数

extension

An optional extension name. If set, the function return only options specific for that extension.

details

Retrieve details settings or only the current value for each setting. Default is TRUE (retrieve details).

返回值

Returns an associative array with directive name as the array key.

When details is TRUE (default) the array will contain global_value (set in php.ini), local_value (perhaps set with ini_set() or .htaccess), and access (the access level).

When details is FALSE the value will be the current value of the option.

See the manual section for information on what access levels mean.

Note: It's possible for a directive to have multiple access levels, which is why access shows the appropriate bitmask values.

更新日志

版本 | 说明
5.3.0 | Added details .

范例

Example #1 ini_get_all() examples

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

上例的输出类似于：

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Example #2 Disabling details

<?php
print_r(ini_get_all("pcre", false)); // Added in PHP 5.3.0
print_r(ini_get_all(null, false)); // Added in PHP 5.3.0
?>

上例的输出类似于：

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

参见

  • 怎样修改配置设定
  • ini_get() - Gets the value of a configuration option
  • ini_restore() - Restores the value of a configuration option
  • ini_set() - Sets the value of a configuration option
  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • phpinfo() - Outputs lots of PHP information

ini_alter
ini_get
PHP Options/Info 函数


Gets the value of a configuration option

ini_get_all
ini_restore
PHP Options/Info 函数
PHP 手册

ini_get

(PHP 4, PHP 5)

ini_get — Gets the value of a configuration option

说明

string ini_get ( string $varname )

Returns the value of the configuration option on success.

参数

varname

The configuration option name.

返回值

Returns the value of the configuration option as a string on success, or an empty string on failure or for null values.

范例

Example #1 A few ini_get() examples

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

上例的输出类似于：

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

注释

Note: When querying boolean values
A boolean ini value of off will be returned as an empty string or "0" while a boolean ini value of on will be returned as "1". The function can also return the literal string of INI value.

Note: When querying memory size values
Many ini memory size values, such as upload_max_filesize, are stored in the php.ini file in shorthand notation. ini_get() will return the exact string stored in the php.ini file and NOT its integer equivalent. Attempting normal arithmetic functions on these values will not have otherwise expected results. The example above shows one way to convert shorthand notation into bytes, much like how the PHP source does it.

参见

  • get_cfg_var() - Gets the value of a PHP configuration option
  • ini_get_all() - Gets all configuration options
  • ini_restore() - Restores the value of a configuration option
  • ini_set() - Sets the value of a configuration option

ini_get_all
ini_restore
PHP Options/Info 函数


Restores the value of a configuration option

ini_get
ini_set
PHP Options/Info 函数
PHP 手册

ini_restore

(PHP 4, PHP 5)

ini_restore — Restores the value of a configuration option

说明

void ini_restore ( string $varname )

Restores a given configuration option to its original value.

参数

varname

The configuration option name.

返回值

无返回值。

范例

Example #1 ini_restore() example

<?php
$setting = 'y2k_compliance';

echo 'Current value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'New value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 'Original value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>

上例将输出：

Current value for 'y2k_compliance': 1
New value for 'y2k_compliance': 0
Original value for 'y2k_compliance': 1

参见

  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options
  • ini_set() - Sets the value of a configuration option

ini_get
ini_set
PHP Options/Info 函数


Sets the value of a configuration option

ini_restore
main
PHP Options/Info 函数
PHP 手册

ini_set

(PHP 4, PHP 5)

ini_set — Sets the value of a configuration option

说明

string ini_set ( string $varname , string $newvalue )

Sets the value of the given configuration option. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

参数

varname

Not all the available options can be changed using ini_set(). There is a list of all available options in the appendix.

newvalue

The new value for the option.

返回值

Returns the old value on success, FALSE on failure.

范例

Example #1 Setting an ini option

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', 1);
}

echo ini_get('display_errors');
?>

参见

  • get_cfg_var() - Gets the value of a PHP configuration option
  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options
  • ini_restore() - Restores the value of a configuration option
  • How to change configuration settings

ini_restore
main
PHP Options/Info 函数


Dummy for main

ini_set
memory_get_peak_usage
PHP Options/Info 函数
PHP 手册

main

main — Dummy for main()

说明

There is no function named main() except in the PHP source. In PHP 4.3.0, a new type of error handling in the PHP source (php_error_docref) was introduced. One feature is to provide links to a manual page in PHP error messages when the PHP directives html_errors (on by default) and docref_root (on by default until PHP 4.3.2) are set.

Sometimes error messages refer to a manual page for the function main() which is why this page exists. Please add a user comment below that mentions what PHP function caused the error that linked to main() and it will be fixed and properly documented.

Known errors that point to main()
Function name | No longer points here as of
include() | 5.1.0
include_once() | 5.1.0
require() | 5.1.0
require_once() | 5.1.0

参见

  • html_errors
  • display_errors

ini_set
memory_get_peak_usage
PHP Options/Info 函数


Returns the peak of memory allocated by PHP

main
memory_get_usage
PHP Options/Info 函数
PHP 手册

memory_get_peak_usage

(PHP 5 >= 5.2.0)

memory_get_peak_usage — Returns the peak of memory allocated by PHP

说明

int memory_get_peak_usage ([ bool $real_usage=false ] )

Returns the peak of memory, in bytes, that's been allocated to your PHP script.

参数

real_usage

Set this to TRUE to get the real size of memory allocated from system. If not set or FALSE only the memory used by emalloc() is reported.

返回值

Returns the memory peak in bytes.

更新日志

版本 | 说明
5.2.1 | Compiling with --enable-memory-limit is no longer required for this function to exist.
5.2.0 | real_usage was added.

参见

  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • memory_limit

main
memory_get_usage
PHP Options/Info 函数


Returns the amount of memory allocated to PHP

memory_get_peak_usage
php_ini_loaded_file
PHP Options/Info 函数
PHP 手册

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usage — Returns the amount of memory allocated to PHP

说明

int memory_get_usage ([ bool $real_usage=false ] )

Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

参数

real_usage

Set this to TRUE to get the real size of memory allocated from system. If not set or FALSE only the memory used by emalloc() is reported.

返回值

Returns the memory amount in bytes.

更新日志

版本 | 说明
5.2.1 | Compiling with --enable-memory-limit is no longer required for this function to exist.
5.2.0 | real_usage was added.

范例

Example #1 A memory_get_usage() example

<?php
// This is only an example, the numbers below will
// differ depending on your system

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

参见

  • memory_get_peak_usage() - Returns the peak of memory allocated by PHP
  • memory_limit

memory_get_peak_usage
php_ini_loaded_file
PHP Options/Info 函数


Retrieve a path to the loaded php.ini file

memory_get_usage
php_ini_scanned_files
PHP Options/Info 函数
PHP 手册

php_ini_loaded_file

(PHP 5 >= 5.2.4)

php_ini_loaded_file — Retrieve a path to the loaded php.ini file

说明

string php_ini_loaded_file ( void )

Check if a php.ini file is loaded, and retrieve its path.

参数

This function has no parameters.

返回值

The loaded php.ini path, or FALSE if one is not loaded.

范例

Example #1 php_ini_loaded_file() example

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}
?>

上例的输出类似于：

Loaded php.ini: /usr/local/php/php.ini

参见

  • php_ini_scanned_files() - Return a list of .ini files parsed from the additional ini dir
  • phpinfo() - Outputs lots of PHP information
  • The configuration file

memory_get_usage
php_ini_scanned_files
PHP Options/Info 函数


Return a list of .ini files parsed from the additional ini dir

php_ini_loaded_file
php_logo_guid
PHP Options/Info 函数
PHP 手册

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir

说明

string php_ini_scanned_files ( void )

php_ini_scanned_files() returns a comma-separated list of configuration files parsed after php.ini. These files are found in a directory defined by the --with-config-file-scan-dir option which is set during compilation.

The returned configuration files also include the path as declared in the --with-config-file-scan-dir option.

返回值

Returns a comma-separated string of .ini files on success. Each comma is followed by a newline. If the directive --with-config-file-scan-dir wasn't set, FALSE is returned. If it was set and the directory was empty, an empty string is returned. If a file is unrecognizable, the file will still make it into the returned string but a PHP error will also result. This PHP error will be seen both at compile time and while using php_ini_scanned_files().

范例

Example #1 A simple example to list the returned ini files

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

参见

  • ini_set() - Sets the value of a configuration option
  • phpinfo() - Outputs lots of PHP information
  • php_ini_loaded_file() - Retrieve a path to the loaded php.ini file

php_ini_loaded_file
php_logo_guid
PHP Options/Info 函数


Gets the logo guid

php_ini_scanned_files
php_sapi_name
PHP Options/Info 函数
PHP 手册

php_logo_guid

(PHP 4, PHP 5)

php_logo_guid — Gets the logo guid

说明

string php_logo_guid ( void )

This function returns the ID which can be used to display the PHP logo using the built-in image. Logo is displayed only if expose_php is On.

返回值

Returns PHPE9568F34-D428-11d2-A769-00AA001ACF42.

范例

Example #1 php_logo_guid() example

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

?>

参见

  • phpinfo() - Outputs lots of PHP information
  • phpversion() - Gets the current PHP version
  • phpcredits() - Prints out the credits for PHP
  • zend_logo_guid() - Gets the Zend guid

php_ini_scanned_files
php_sapi_name
PHP Options/Info 函数


Returns the type of interface between web server and PHP

php_logo_guid
php_uname
PHP Options/Info 函数
PHP 手册

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_name — Returns the type of interface between web server and PHP

说明

string php_sapi_name ( void )

Returns a lowercase string that describes the type of interface (the Server API, SAPI) that PHP is using. For example, in CLI PHP this string will be "cli" whereas with Apache it may have several different values depending on the exact SAPI used. Possible values are listed below.

返回值

Returns the interface type, as a lowercase string.

Although not exhaustive, the possible return values include aolserver, apache, apache2filter, apache2handler, caudium, cgi (until PHP 5.3), cgi-fcgi, cli, continuity, embed, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux, and webjames.

范例

Example #1 php_sapi_name() example

This example checks for the substring cgi because it may also be cgi-fcgi.

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "You are using CGI PHP\n";
} else {
    echo "You are not using CGI PHP\n";
}
?>

注释

Note: An alternative approach
The PHP constant PHP_SAPI has the same value as php_sapi_name().

Tip

A potential gotcha

The defined SAPI may not be obvious, because for example instead of apache it may be defined as apache2handler or apache2filter.

参见

  • PHP_SAPI

php_logo_guid
php_uname
PHP Options/Info 函数


Returns information about the operating system PHP is running on

php_sapi_name
phpcredits
PHP Options/Info 函数
PHP 手册

php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_uname — Returns information about the operating system PHP is running on

说明

string php_uname ([ string $mode="a" ] )

php_uname() returns a description of the operating system PHP is running on. For the name of just the operating system, consider using the PHP_OS constant, but be reminded this constant will contain the operating system PHP was built on.

On Unix, the output reverts to displaying the operating system information PHP was built on if it cannot determine the currently running OS.

参数

mode

mode is a single character that defines what information is returned:

  • 'a': This is the default. Contains all modes in the sequence "s n r v m".
  • 's': Operating system name. eg. FreeBSD.
  • 'n': Host name. eg. localhost.example.com.
  • 'r': Release name. eg. 5.1.2-RELEASE.
  • 'v': Version information. Varies a lot between operating systems.
  • 'm': Machine type. eg. i386.

返回值

Returns the description, as a string.

范例

Example #1 Some php_uname() examples

<?php
echo php_uname();
echo PHP_OS;

/* Some possible outputs:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'This is a server using Windows!';
} else {
    echo 'This is a server not using Windows!';
}

?>

There are also some related Predefined PHP constants that may come in handy, for example:

Example #2 A few OS related constant examples

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

参见

  • phpversion() - Gets the current PHP version
  • php_sapi_name() - Returns the type of interface between web server and PHP
  • phpinfo() - Outputs lots of PHP information

php_sapi_name
phpcredits
PHP Options/Info 函数


Prints out the credits for PHP

php_uname
phpinfo
PHP Options/Info 函数
PHP 手册

phpcredits

(PHP 4, PHP 5)

phpcredits — Prints out the credits for PHP

说明

bool phpcredits ([ int $flag=CREDITS_ALL ] )

This function prints out the credits listing the PHP developers, modules, etc. It generates the appropriate HTML codes to insert the information in a page.

参数

flag

To generate a custom credits page, you may want to use the flag parameter. flag is optional, and it defaults to CREDITS_ALL.

Pre-defined phpcredits() flags
name | description
CREDITS_ALL | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags.
CREDITS_DOCS | The credits for the documentation team
CREDITS_FULLPAGE | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_GENERAL | General credits: Language design and concept, PHP 4.0 authors and SAPI module.
CREDITS_GROUP | A list of the core developers
CREDITS_MODULES | A list of the extension modules for PHP, and their authors
CREDITS_SAPI | A list of the server API modules for PHP, and their authors

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Prints the general credits

<?php
phpcredits(CREDITS_GENERAL);
?>

Example #2 Prints the core developers and the documentation group

<?php
phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);
?>

Example #3 Printing all the credits

<html>
 <head>
  <title>My credits page</title>
 </head>
 <body>
<?php
// some code of your own
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// some more code
?>
 </body>
</html>

参见

  • phpversion() - Gets the current PHP version
  • php_logo_guid() - Gets the logo guid
  • phpinfo() - Outputs lots of PHP information

php_uname
phpinfo
PHP Options/Info 函数


Outputs lots of PHP information

phpcredits
phpversion
PHP Options/Info 函数
PHP 手册

phpinfo

(PHP 4, PHP 5)

phpinfo — Outputs lots of PHP information

说明

bool phpinfo ([ int $what=INFO_ALL ] )

Outputs a large amount of information about the current state of PHP. This includes information about PHP compilation options and extensions, the PHP version, server information and environment (if compiled as a module), the PHP environment, OS version information, paths, master and local values of configuration options, HTTP headers, and the PHP License.

Because every system is setup differently, phpinfo() is commonly used to check configuration settings and for available predefined variables on a given system.

phpinfo() is also a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.

参数

what

The output may be customized by passing one or more of the following constants bitwise values summed together in the optional what parameter. One can also combine the respective constants or bitwise values together with the or operator.

phpinfo() options
Name (constant) | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings. See also get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the » license FAQ.
INFO_ALL | -1 | Shows all of the above. This is the default value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.2.2 | The "Loaded Configuration File" information was added, when before only "Configuration File (php.ini) Path" existed.

范例

Example #1 phpinfo() Example

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);

?>

注释

Note: Parts of the information displayed are disabled when the expose_php configuration setting is set to off. This includes the PHP and Zend logos, and the credits.

Note: phpinfo() outputs plain text instead of HTML when using the CLI mode.

参见

  • phpversion() - Gets the current PHP version
  • phpcredits() - Prints out the credits for PHP
  • php_logo_guid() - Gets the logo guid
  • ini_get() - Gets the value of a configuration option
  • ini_set() - Sets the value of a configuration option
  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • Predefined Variables

phpcredits
phpversion
PHP Options/Info 函数


Gets the current PHP version

phpinfo
putenv
PHP Options/Info 函数
PHP 手册

phpversion

(PHP 4, PHP 5)

phpversion — Gets the current PHP version

说明

string phpversion ([ string $extension ] )

Returns a string containing the version of the currently running PHP parser or extension.

参数

extension

An optional extension name.

返回值

If the optional extension parameter is specified, phpversion() returns the version of that extension, or FALSE if there is no version information associated or the extension isn't enabled.

范例

Example #1 phpversion() example

<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();

// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');
?>

注释

Note: This information is also available in the predefined constant PHP_VERSION.

参见

  • version_compare() - Compares two "PHP-standardized" version number strings
  • phpinfo() - Outputs lots of PHP information
  • phpcredits() - Prints out the credits for PHP
  • php_logo_guid() - Gets the logo guid
  • zend_version() - Gets the version of the current Zend engine

phpinfo
putenv
PHP Options/Info 函数


Sets the value of an environment variable

phpversion
restore_include_path
PHP Options/Info 函数
PHP 手册

putenv

(PHP 4, PHP 5)

putenv — Sets the value of an environment variable

说明

bool putenv ( string $setting )

Adds setting to the server environment. The environment variable will only exist for the duration of the current request. At the end of the request the environment is restored to its original state.

Setting certain environment variables may be a potential security breach. The safe_mode_allowed_env_vars directive contains a comma-delimited list of prefixes. In Safe Mode, the user may only alter environment variables whose names begin with the prefixes supplied by this directive. By default, users will only be able to set environment variables that begin with PHP_ (e.g. PHP_FOO=BAR). Note: if this directive is empty, PHP will let the user modify ANY environment variable!

The safe_mode_protected_env_vars directive contains a comma-delimited list of environment variables, that the end user won't be able to change using putenv(). These variables will be protected even if safe_mode_allowed_env_vars is set to allow to change them.

参数

setting

The setting, like "FOO=BAR"

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Setting an environment variable

<?php
putenv("UNIQID=$uniqid");
?>

注释

Warning

These directives have only effect when safe-mode itself is enabled!

参见

  • getenv() - Gets the value of an environment variable

phpversion
restore_include_path
PHP Options/Info 函数


Restores the value of the include_path configuration option

putenv
set_include_path
PHP Options/Info 函数
PHP 手册

restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_path — Restores the value of the include_path configuration option

说明

void restore_include_path ( void )

Restores the include_path configuration option back to its original master value as set in php.ini

返回值

无返回值。

范例

Example #1 restore_include_path() example

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

// Works as of PHP 4.3.0
restore_include_path();

// Works in all PHP versions
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

参见

  • ini_restore() - Restores the value of a configuration option
  • get_include_path() - Gets the current include_path configuration option
  • set_include_path() - Sets the include_path configuration option
  • include() - include

putenv
set_include_path
PHP Options/Info 函数


Sets the include_path configuration option

restore_include_path
set_magic_quotes_runtime
PHP Options/Info 函数
PHP 手册

set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path — Sets the include_path configuration option

说明

string set_include_path ( string $new_include_path )

Sets the include_path configuration option for the duration of the script.

参数

new_include_path

The new value for the include_path

返回值

Returns the old include_path on success or FALSE on failure.

范例

Example #1 set_include_path() example

<?php
// Works as of PHP 4.3.0
set_include_path('/inc');

// Works in all PHP versions
ini_set('include_path', '/inc');
?>

Example #2 Adding to the include path

Making use of the PATH_SEPARATOR constant, it is possible to extend the include path regardless of the operating system.

In this example we add /usr/lib/pear to the end of the existing include_path.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

参见

  • ini_set() - Sets the value of a configuration option
  • get_include_path() - Gets the current include_path configuration option
  • restore_include_path() - Restores the value of the include_path configuration option
  • include() - include

restore_include_path
set_magic_quotes_runtime
PHP Options/Info 函数


Sets the current active configuration setting of magic_quotes_runtime

set_include_path
set_time_limit
PHP Options/Info 函数
PHP 手册

set_magic_quotes_runtime

(PHP 4, PHP 5)

set_magic_quotes_runtime — Sets the current active configuration setting of magic_quotes_runtime

说明

bool set_magic_quotes_runtime ( bool $new_setting )

Set the current active configuration setting of magic_quotes_runtime.

参数

new_setting

FALSE for off, TRUE for on.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 set_magic_quotes_runtime() example

<?php
// Create a temporary file pointer
$fp = tmpfile();

// Write some data to the pointer
fwrite($fp, '\'PHP\' is a Recursive acronym');

// Without magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);

echo 'Without magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;

// With magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);

echo 'With magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;

// Clean up
fclose($fp);
?>

上例将输出：

Without magic_quotes_runtime: 'PHP' is a Recursive acronym
With magic_quotes_runtime: \'PHP\' is a Recursive acronym

参见

  • get_magic_quotes_gpc() - Gets the current configuration setting of magic quotes gpc
  • get_magic_quotes_runtime() - Gets the current active configuration setting of magic_quotes_runtime

set_include_path
set_time_limit
PHP Options/Info 函数


Limits the maximum execution time

set_magic_quotes_runtime
sys_get_temp_dir
PHP Options/Info 函数
PHP 手册

set_time_limit

(PHP 4, PHP 5)

set_time_limit — Limits the maximum execution time

说明

void set_time_limit ( int $seconds )

Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. The default limit is 30 seconds or, if it exists, the max_execution_time value defined in the php.ini.

When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.

参数

seconds

The maximum execution time, in seconds. If set to zero, no time limit is imposed.

返回值

无返回值。

注释

Warning

This function has no effect when PHP is running in 安全模式. There is no workaround other than turning off safe mode or changing the time limit in the php.ini.

Note: The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.

参见

  • max_execution_time
  • max_input_time

set_magic_quotes_runtime
sys_get_temp_dir
PHP Options/Info 函数


Returns directory path used for temporary files

set_time_limit
version_compare
PHP Options/Info 函数
PHP 手册

sys_get_temp_dir

(PHP 5 >= 5.2.1)

sys_get_temp_dir — Returns directory path used for temporary files

说明

string sys_get_temp_dir ( void )

Returns the path of the directory PHP stores temporary files in by default.

返回值

Returns the path of the temporary directory.

范例

Example #1 sys_get_temp_dir() example

<?php
// Create a temporary file in the temporary
// files directory using sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');

echo $temp_file;
?>

上例的输出类似于：

C:\Windows\Temp\TuxA318.tmp

参见

  • tmpfile() - 建立一个临时文件
  • tempnam() - 建立一个具有唯一文件名的文件

set_time_limit
version_compare
PHP Options/Info 函数


Compares two "PHP-standardized" version number strings

sys_get_temp_dir
zend_logo_guid
PHP Options/Info 函数
PHP 手册

version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compare — Compares two "PHP-standardized" version number strings

说明

mixed version_compare ( string $version1 , string $version2 [, string $operator ] )

version_compare() compares two "PHP-standardized" version number strings. This is useful if you would like to write programs working only on some versions of PHP.

The function first replaces _, - and + with a dot . in the version strings and also inserts dots . before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it splits the results like if you were using explode('.', $ver). Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: dev < alpha = a < beta = b < RC < pl. This way not only versions with different levels like '4.1' and '4.1.2' can be compared but also any PHP specific version containing development state.

参数

version1

First version number.

version2

Second version number.

operator

If you specify the third optional operator argument, you can test for a particular relationship. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively.

This parameter is case-sensitive, so values should be lowercase.

返回值

By default, version_compare() returns -1 if the first version is lower than the second, 0 if they are equal, and 1 if the second is lower.

When using the optional operator argument, the function will return TRUE if the relationship is the one specified by the operator, FALSE otherwise.

范例

The examples below use the PHP_VERSION constant, because it contains the value of the PHP version that is executing the code.

Example #1 version_compare() examples

<?php
if (version_compare(PHP_VERSION, '6.0.0') === 1) {
    echo 'I am at least PHP version 6.0.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.3.0') === 1) {
    echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '>')) {
    echo 'I am using PHP 5, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    echo 'I am using PHP 4, my version: ' . PHP_VERSION . "\n";
}
?>

注释

Note: The PHP_VERSION constant holds current PHP version.

Note: Note that pre-release versions, such as 5.3.0-dev, are considered lower than their final release counterparts (like 5.3.0).

参见

  • phpversion() - Gets the current PHP version
  • php_uname() - Returns information about the operating system PHP is running on
  • function_exists() - Return TRUE if the given function has been defined

sys_get_temp_dir
zend_logo_guid
PHP Options/Info 函数


Gets the Zend guid

version_compare
zend_thread_id
PHP Options/Info 函数
PHP 手册

zend_logo_guid

(PHP 4, PHP 5)

zend_logo_guid — Gets the Zend guid

说明

string zend_logo_guid ( void )

This function returns the ID which can be used to display the Zend logo using the built-in image.

返回值

Returns PHPE9568F35-D428-11d2-A769-00AA001ACF42.

范例

Example #1 zend_logo_guid() example

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

参见

  • php_logo_guid() - Gets the logo guid

version_compare
zend_thread_id
PHP Options/Info 函数


Returns a unique identifier for the current thread

zend_logo_guid
zend_version
PHP Options/Info 函数
PHP 手册

zend_thread_id

(PHP 5)

zend_thread_id — Returns a unique identifier for the current thread

说明

int zend_thread_id ( void )

This function returns a unique identifier for the current thread.

返回值

Returns the thread id as an integer.

范例

Example #1 zend_thread_id() example

<?php
$thread_id = zend_thread_id();

echo 'Current thread id is: ' . $thread_id;
?>

上例的输出类似于：

Current thread id is: 7864

注释

Note: This function is only available if PHP has been built with ZTS (Zend Thread Safety) support and debug mode (--enable-debug).

zend_logo_guid
zend_version
PHP Options/Info 函数


Gets the version of the current Zend engine

zend_thread_id
runkit
PHP Options/Info 函数
PHP 手册

zend_version

(PHP 4, PHP 5)

zend_version — Gets the version of the current Zend engine

说明

string zend_version ( void )

Returns a string containing the version of the currently running Zend Engine.

返回值

Returns the Zend Engine version number, as a string.

范例

Example #1 zend_version() example

<?php
echo "Zend engine version: " . zend_version();
?>

上例的输出类似于：

Zend engine version: 2.2.0

参见

  • phpinfo() - Outputs lots of PHP information
  • phpcredits() - Prints out the credits for PHP
  • php_logo_guid() - Gets the logo guid
  • phpversion() - Gets the current PHP version

zend_thread_id
runkit
PHP Options/Info 函数


runkit

  • 简介
  • 预定义常量
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • runkit 函数
    • Runkit_Sandbox — Runkit Sandbox Class -- PHP Virtual Machine
    • Runkit_Sandbox_Parent — Runkit Anti-Sandbox Class
    • runkit_class_adopt — Convert a base class to an inherited class, add ancestral methods when appropriate
    • runkit_class_emancipate — Convert an inherited class to a base class, removes any method whose scope is ancestral
    • runkit_constant_add — Similar to define(), but allows defining in class definitions as well
    • runkit_constant_redefine — Redefine an already defined constant
    • runkit_constant_remove — Remove/Delete an already defined constant
    • runkit_function_add — Add a new function, similar to create_function
    • runkit_function_copy — Copy a function to a new function name
    • runkit_function_redefine — Replace a function definition with a new implementation
    • runkit_function_remove — Remove a function definition
    • runkit_function_rename — Change a function's name
    • runkit_import — Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit_lint_file — Check the PHP syntax of the specified file
    • runkit_lint — Check the PHP syntax of the specified php code
    • runkit_method_add — Dynamically adds a new method to a given class
    • runkit_method_copy — Copies a method from class to another
    • runkit_method_redefine — Dynamically changes the code of the given method
    • runkit_method_remove — Dynamically removes the given method
    • runkit_method_rename — Dynamically changes the name of the given method
    • runkit_return_value_used — Determines if the current functions return value will be used
    • runkit_sandbox_output_handler — Specify a function to capture and/or process output from a runkit sandbox
    • runkit_superglobals — Return numerically indexed array of registered superglobals
zend_version
简介
影响PHP行为的扩展


简介

The runkit extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables and embeddable sub-interpreters via sandboxing.

This package is meant as a feature added replacement for the » classkit package. When compiled with the --enable-runkit=classkit option to ./configure, it will export classkit compatible function definitions and constants.

runkit
预定义常量
runkit


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

RUNKIT_IMPORT_FUNCTIONS (integer)
runkit_import() flag indicating that normal functions should be imported from the specified file.
RUNKIT_IMPORT_CLASS_METHODS (integer)
runkit_import() flag indicating that class methods should be imported from the specified file.
RUNKIT_IMPORT_CLASS_CONSTS (integer)
runkit_import() flag indicating that class constants should be imported from the specified file. Note that this flag is only meaningful in PHP versions 5.1.0 and above.
RUNKIT_IMPORT_CLASS_PROPS (integer)
runkit_import() flag indicating that class standard properties should be imported from the specified file.
RUNKIT_IMPORT_CLASSES (integer)
runkit_import() flag representing a bitwise OR of the RUNKIT_IMPORT_CLASS_* constants.
RUNKIT_IMPORT_OVERRIDE (integer)
runkit_import() flag indicating that if any of the imported functions, methods, constants, or properties already exist, they should be replaced with the new definitions. If this flag is not set, then any imported definitions which already exist will be discarded.
RUNKIT_ACC_PUBLIC (integer)
PHP 5 specific flag to runkit_method_add()
RUNKIT_ACC_PROTECTED (integer)
PHP 5 specific flag to runkit_method_add()
RUNKIT_ACC_PRIVATE (integer)
PHP 5 specific flag to runkit_method_add()
CLASSKIT_ACC_PUBLIC (integer)
PHP 5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.
CLASSKIT_ACC_PROTECTED (integer)
PHP 5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.
CLASSKIT_ACC_PRIVATE (integer)
PHP 5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.
CLASSKIT_AGGREGATE_OVERRIDE (integer)
PHP 5 specific flag to classkit_import() Only defined when classkit compatibility is enabled.
RUNKIT_VERSION (string)
Defined to the current version of the runkit package.
CLASSKIT_VERSION (string)
Defined to the current version of the runkit package. Only defined when classkit compatibility is enabled.
简介
安装/配置
runkit


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
预定义常量
需求
runkit


需求

Modifying Constants, Functions, Classes, and Methods works with all releases of PHP 4 and PHP 5. No special requirements are necessary.

Custom Superglobals are only available in PHP 4.2.0 or later.

Sandboxing requires PHP 5.1.0 or later, or PHP 5.0.0 with a special TSRM patch applied. Regardless of which version of PHP is in use it must be compiled with the --enable-maintainer-zts option. See the README file in the runkit package for additional information.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/runkit.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Runkit Configuration Options
Name | Default | Changeable | Changelog
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

runkit.superglobal string
Comma-separated list of variable names to be treated as superglobals. This value should be set in the systemwide php.ini file, but may work in perdir configuration contexts depending on your SAPI.

Example #1 Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini

<?php
function show_values() {
  echo "Foo is $_FOO\n";
  echo "Bar is $_BAR\n";
  echo "Baz is $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Displays foo and bar, but not baz */
show_values();
?>
runkit.internal_override boolean
Enables ability to modify/rename/remove internal functions.

安装
资源类型
安装/配置


资源类型

本扩展模块未定义任何资源类型。

运行时配置
runkit 函数
安装/配置


runkit 函数

Table of Contents

  • Runkit_Sandbox — Runkit Sandbox Class -- PHP Virtual Machine
  • Runkit_Sandbox_Parent — Runkit Anti-Sandbox Class
  • runkit_class_adopt — Convert a base class to an inherited class, add ancestral methods when appropriate
  • runkit_class_emancipate — Convert an inherited class to a base class, removes any method whose scope is ancestral
  • runkit_constant_add — Similar to define(), but allows defining in class definitions as well
  • runkit_constant_redefine — Redefine an already defined constant
  • runkit_constant_remove — Remove/Delete an already defined constant
  • runkit_function_add — Add a new function, similar to create_function
  • runkit_function_copy — Copy a function to a new function name
  • runkit_function_redefine — Replace a function definition with a new implementation
  • runkit_function_remove — Remove a function definition
  • runkit_function_rename — Change a function's name
  • runkit_import — Process a PHP file importing function and class definitions, overwriting where appropriate
  • runkit_lint_file — Check the PHP syntax of the specified file
  • runkit_lint — Check the PHP syntax of the specified php code
  • runkit_method_add — Dynamically adds a new method to a given class
  • runkit_method_copy — Copies a method from class to another
  • runkit_method_redefine — Dynamically changes the code of the given method
  • runkit_method_remove — Dynamically removes the given method
  • runkit_method_rename — Dynamically changes the name of the given method
  • runkit_return_value_used — Determines if the current functions return value will be used
  • runkit_sandbox_output_handler — Specify a function to capture and/or process output from a runkit sandbox
  • runkit_superglobals — Return numerically indexed array of registered superglobals
资源类型
Runkit_Sandbox
runkit


Runkit Sandbox Class -- PHP Virtual Machine

runkit 函数
Runkit_Sandbox_Parent
runkit 函数
PHP 手册

Runkit_Sandbox

(PECL runkit >= 0.7.0)

Runkit_Sandbox — Runkit Sandbox Class -- PHP Virtual Machine

说明

Instantiating the Runkit_Sandbox class creates a new thread with its own scope and program stack. Using a set of options passed to the constructor, this environment may be restricted to a subset of what the primary interpreter can do and provide a safer environment for executing user supplied code.

Note: 对沙盒的支持（是函数 runkit_lint()、runkit_lint_file() 和 Runkit_Sandbox 类所必须的）仅在 PHP 5.1 中，或在加过特别补丁的 PHP 5.0 中可用，并需要启用线程安全。请阅读 runkit 包中的 README 文件以了解更多信息。

Constructor

void Runkit_Sandbox::__construct ([ array $options ] )

options is an associative array containing any combination of the special ini options listed below.

safe_mode

If the outer script which is instantiating the Runkit_Sandbox class is configured with safe_mode = off, then safe_mode may be turned on for the sandbox environment. This setting can not be used to disable safe_mode when it's already enabled in the outer script.

safe_mode_gid

If the outer script which is instantiating the Runkit_Sandbox class is configured with safe_mode_gid = on, then safe_mode_gid may be turned off for the sandbox environment. This setting can not be used to enable safe_mode_gid when it's already disabled in the outer script.

safe_mode_include_dir

If the outer script which is instantiating the Runkit_Sandbox class is configured with a safe_mode_include_dir, then a new safe_mode_include_dir may be set for sandbox environments below the currently defined value. safe_mode_include_dir may also be cleared to indicate that the bypass feature is disabled. If safe_mode_include_dir was blank in the outer script, but safe_mode was not enabled, then any arbitrary safe_mode_include_dir may be set while turning safe_mode on.

open_basedir

open_basedir may be set to any path below the current setting of open_basedir. If open_basedir is not set within the global scope, then it is assumed to be the root directory and may be set to any location.

allow_url_fopen

Like safe_mode , this setting can only be made more restrictive, in this case by setting it to FALSE when it is previously set to TRUE

disable_functions

Comma separated list of functions to disable within the sandbox sub-interpreter. This list need not contain the names of the currently disabled functions, they will remain disabled whether listed here or not.

disable_classes

Comma separated list of classes to disable within the sandbox sub-interpreter. This list need not contain the names of the currently disabled classes, they will remain disabled whether listed here or not.

runkit.superglobal

Comma separated list of variables to be treated as superglobals within the sandbox sub-interpreter. These variables will be used in addition to any variables defined internally or through the global runkit.superglobal setting.

runkit.internal_override

Ini option runkit.internal_override may be disabled (but not re-enabled) within sandboxes.

Example #1 Instantiating a restricted sandbox

<?php
$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);
/* Non-protected ini settings may set normally */
$sandbox->ini_set('html_errors',true);
?>

Accessing Variables

All variables in the global scope of the sandbox environment are accessible as properties of the sandbox object. The first thing to note is that because of the way memory between these two threads is managed, object and resource variables can not currently be exchanged between interpreters. Additionally, all arrays are deep copied and any references will be lost. This also means that references between interpreters are not possible.

Example #2 Working with variables in a sandbox

<?php
$sandbox = new Runkit_Sandbox();

$sandbox->foo = 'bar';
$sandbox->eval('echo "$foo\n"; $bar = $foo . "baz";');
echo "{$sandbox->bar}\n";
if (isset($sandbox->foo)) unset($sandbox->foo);
$sandbox->eval('var_dump(isset($foo));');
?>

上例将输出：

bar
barbaz
bool(false)

Calling PHP Functions

Any function defined within the sandbox may be called as
a method on the sandbox object.  This also includes a few
pseudo-function language constructs:  eval(),
include(), include_once(),
require(), require_once(),
echo(), print(),
die(), and exit().

Example #3 Calling sandbox functions

<?php
$sandbox = new Runkit_Sandbox();

echo $sandbox->str_replace('a','f','abc');
?>

上例将输出：

fbc

When passing arguments to a sandbox function, the arguments are taken from the outer instance of PHP. If you wish to pass arguments from the sandbox's scope, be sure to access them as properties of the sandbox object as illustrated above.

Example #4 Passing arguments to sandbox functions

<?php
$sandbox = new Runkit_Sandbox();

$foo = 'bar';
$sandbox->foo = 'baz';
echo $sandbox->str_replace('a',$foo,'a');
echo $sandbox->str_replace('a',$sandbox->foo,'a');
?>

上例将输出：

bar
baz

Changing Sandbox Settings

As of runkit version 0.5, certain Sandbox settings may be modified on the fly using ArrayAccess syntax. Some settings, such as active are read-only and meant to provide status information. Other settings, such as output_handler may be set and read much like a normal array offset. Future settings may be write-only, however no such settings currently exist.

Sandbox Settings / Status Indicators
Setting | Type | Purpose | Default
active | Boolean (Read Only) | TRUE if the Sandbox is still in a usable state, FALSE if the request is in bailout due to a call to die(), exit(), or because of a fatal error condition. | TRUE (Initial)
output_handler | Callback | When set to a valid callback, all output generated by the Sandbox instance will be processed through the named function. Sandbox output handlers follow the same calling conventions as the system-wide output handler. | None
parent_access | Boolean | May the sandbox use instances of the Runkit_Sandbox_Parent class? Must be enabled for other Runkit_Sandbox_Parent related settings to work. | FALSE
parent_read | Boolean | May the sandbox read variables in its parent's context? | FALSE
parent_write | Boolean | May the sandbox modify variables in its parent's context? | FALSE
parent_eval | Boolean | May the sandbox evaluate arbitrary code in its parent's context? DANGEROUS | FALSE
parent_include | Boolean | May the sandbox include php code files in its parent's context? DANGEROUS | FALSE
parent_echo | Boolean | May the sandbox echo data in its parent's context effectively bypassing its own output_handler? | FALSE
parent_call | Boolean | May the sandbox call functions in its parent's context? | FALSE
parent_die | Boolean | May the sandbox kill its own parent? (And thus itself) | FALSE
parent_scope | Integer | What scope will parental property access look at? 0 == Global scope, 1 == Calling scope, 2 == Scope preceeding calling scope, 3 == The scope before that, etc..., etc... | 0 (Global)
parent_scope | String | When parent_scope is set to a string value, it refers to a named array variable in the global scope. If the named variable does not exist at the time of access it will be created as an empty array. If the variable exists but it not an array, a dummy array will be created containing a reference to the named global variable. |

runkit 函数
Runkit_Sandbox_Parent
runkit 函数


Runkit Anti-Sandbox Class

Runkit_Sandbox
runkit_class_adopt
runkit 函数
PHP 手册

Runkit_Sandbox_Parent

(PECL runkit >= 0.7.0)

Runkit_Sandbox_Parent — Runkit Anti-Sandbox Class

说明

void Runkit_Sandbox_Parent::__construct ( void )

Instantiating the Runkit_Sandbox_Parent class from within a sandbox environment created from the Runkit_Sandbox class provides some (controlled) means for a sandbox child to access its parent.

Note: 对沙盒的支持（是函数 runkit_lint()、runkit_lint_file() 和 Runkit_Sandbox 类所必须的）仅在 PHP 5.1 中，或在加过特别补丁的 PHP 5.0 中可用，并需要启用线程安全。请阅读 runkit 包中的 README 文件以了解更多信息。

In order for any of the Runkit_Sandbox_Parent features to function. Support must be enabled on a per-sandbox basis by enabling the parent_access flag from the parent's context.

Example #1 Working with variables in a sandbox

<?php
$sandbox = new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Accessing the Parent's Variables

Just as with sandbox variable access, a sandbox parent's variables may be read from and written to as properties of the Runkit_Sandbox_Parent class. Read access to parental variables may be enabled with the parent_read setting (in addition to the base parent_access setting). Write access, in turn, is enabled through the parent_write setting.

Unlike sandbox child variable access, the variable scope is not limited to globals only. By setting the parent_scope setting to an appropriate integer value, other scopes in the active call stack may be inspected instead. A value of 0 (Default) will direct variable access at the global scope. 1 will point variable access at whatever variable scope was active at the time the current block of sandbox code was executed. Higher values progress back through the functions that called the functions that led to the sandbox executing code that tried to access its own parent's variables.

Example #2 Accessing parental variables

<?php
$php = new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function one() {
    $test = "one()";
    two();
}

function two() {
    $test = "two()";
    three();
}

function three() {
    $test = "three()";
    $GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

上例将输出：

string(6) "Global"
string(7) "three()"
string(5) "two()"
string(5) "one()"
string(6) "Global"
string(6) "Global"

Calling the Parent's Functions

Just as with sandbox access, a sandbox may access its parents functions providing that the proper settings have been enabled. Enabling parent_call will allow the sandbox to call all functions available to the parent scope. Language constructs are each controlled by their own setting: print() and echo() are enabled with parent_echo. die() and exit() are enabled with parent_die. eval() is enabled with parent_eval while include(), include_once(), require(), and require_once() are enabled through parent_include.

Runkit_Sandbox
runkit_class_adopt
runkit 函数


Convert a base class to an inherited class, add ancestral methods when appropriate

Runkit_Sandbox_Parent
runkit_class_emancipate
runkit 函数
PHP 手册

runkit_class_adopt

(PECL runkit >= 0.7.0)

runkit_class_adopt — Convert a base class to an inherited class, add ancestral methods when appropriate

说明

bool runkit_class_adopt ( string $classname , string $parentname )

参数

classname

Name of class to be adopted

parentname

Parent class which child class is extending

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A runkit_class_adopt() example

<?php
class myParent {
  function parentFunc() {
    echo "Parent Function Output\n";
  }
}

class myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

上例将输出：

Parent Function Output

参见

  • runkit_class_emancipate() - Convert an inherited class to a base class, removes any method whose scope is ancestral

Runkit_Sandbox_Parent
runkit_class_emancipate
runkit 函数


Convert an inherited class to a base class, removes any method whose scope is ancestral

runkit_class_adopt
runkit_constant_add
runkit 函数
PHP 手册

runkit_class_emancipate

(PECL runkit >= 0.7.0)

runkit_class_emancipate — Convert an inherited class to a base class, removes any method whose scope is ancestral

说明

bool runkit_class_emancipate ( string $classname )

参数

classname

Name of class to emancipate

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A runkit_class_emancipate() example

<?php
class myParent {
  function parentFunc () {
    echo "Parent Function Output\n";
  }
}
class myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

上例将输出：

Parent Function Output
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

参见

  • runkit_class_adopt() - Convert a base class to an inherited class, add ancestral methods when appropriate

runkit_class_adopt
runkit_constant_add
runkit 函数


Similar to define(), but allows defining in class definitions as well

runkit_class_emancipate
runkit_constant_redefine
runkit 函数
PHP 手册

runkit_constant_add

(PECL runkit >= 0.7.0)

runkit_constant_add — Similar to define(), but allows defining in class definitions as well

说明

bool runkit_constant_add ( string $constname , mixed $value )

参数

constname

Name of constant to declare. Either a string to indicate a global constant, or classname::constname to indicate a class constant.

value

NULL, Bool, Long, Double, String, or Resource value to store in the new constant.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • define() - Defines a named constant
  • runkit_constant_redefine() - Redefine an already defined constant
  • runkit_constant_remove() - Remove/Delete an already defined constant

runkit_class_emancipate
runkit_constant_redefine
runkit 函数


Redefine an already defined constant

runkit_constant_add
runkit_constant_remove
runkit 函数
PHP 手册

runkit_constant_redefine

(PECL runkit >= 0.7.0)

runkit_constant_redefine — Redefine an already defined constant

说明

bool runkit_constant_redefine ( string $constname , mixed $newvalue )

参数

constname

Constant to redefine. Either string indicating global constant, or classname::constname indicating class constant.

newvalue

New value to assign to constant.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • runkit_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit_constant_remove() - Remove/Delete an already defined constant

runkit_constant_add
runkit_constant_remove
runkit 函数


Remove/Delete an already defined constant

runkit_constant_redefine
runkit_function_add
runkit 函数
PHP 手册

runkit_constant_remove

(PECL runkit >= 0.7.0)

runkit_constant_remove — Remove/Delete an already defined constant

说明

bool runkit_constant_remove ( string $constname )

参数

constname

Name of constant to remove. Either a string indicating a global constant, or classname::constname indicating a class constant.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • define() - Defines a named constant
  • runkit_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit_constant_redefine() - Redefine an already defined constant

runkit_constant_redefine
runkit_function_add
runkit 函数


Add a new function, similar to create_function

runkit_constant_remove
runkit_function_copy
runkit 函数
PHP 手册

runkit_function_add

(PECL runkit >= 0.7.0)

runkit_function_add — Add a new function, similar to create_function()

说明

bool runkit_function_add ( string $funcname , string $arglist , string $code )

参数

funcname

Name of function to be created

arglist

Comma separated argument list

code

Code making up the function

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A runkit_function_add() example

<?php
runkit_function_add('testme','$a,$b','echo "The value of a is $a\n"; echo "The value of b is $b\n";');
testme(1,2);
?>

上例将输出：

The value of a is 1
The value of b is 2

参见

  • create_function() - Create an anonymous (lambda-style) function
  • runkit_function_redefine() - Replace a function definition with a new implementation
  • runkit_function_copy() - Copy a function to a new function name
  • runkit_function_rename() - Change a function's name
  • runkit_function_remove() - Remove a function definition
  • runkit_method_add() - Dynamically adds a new method to a given class

runkit_constant_remove
runkit_function_copy
runkit 函数


Copy a function to a new function name

runkit_function_add
runkit_function_redefine
runkit 函数
PHP 手册

runkit_function_copy

(PECL runkit >= 0.7.0)

runkit_function_copy — Copy a function to a new function name

说明

bool runkit_function_copy ( string $funcname , string $targetname )

参数

funcname

Name of existing function

targetname

Name of new function to copy definition to

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A runkit_function_copy() example

<?php
function original() {
  echo "In a function\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

上例将输出：

In a function
In a function

参见

  • runkit_function_add() - Add a new function, similar to create_function
  • runkit_function_redefine() - Replace a function definition with a new implementation
  • runkit_function_rename() - Change a function's name
  • runkit_function_remove() - Remove a function definition

runkit_function_add
runkit_function_redefine
runkit 函数


Replace a function definition with a new implementation

runkit_function_copy
runkit_function_remove
runkit 函数
PHP 手册

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine — Replace a function definition with a new implementation

说明

bool runkit_function_redefine ( string $funcname , string $arglist , string $code )

Note: 默认情况下，只有用户空间的函数可以被删除，重命名，或者修改。要覆盖内部函数，必须激活全系统范围的 php.ini 文件中的 runkit.internal_override 选项。

参数

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A runkit_function_redefine() example

<?php
function testme() {
  echo "Original Testme Implementation\n";
}
testme();
runkit_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

上例将输出：

Original Testme Implementation
New Testme Implementation

参见

  • runkit_function_add() - Add a new function, similar to create_function
  • runkit_function_copy() - Copy a function to a new function name
  • runkit_function_rename() - Change a function's name
  • runkit_function_remove() - Remove a function definition

runkit_function_copy
runkit_function_remove
runkit 函数


Remove a function definition

runkit_function_redefine
runkit_function_rename
runkit 函数
PHP 手册

runkit_function_remove

(PECL runkit >= 0.7.0)

runkit_function_remove — Remove a function definition

说明

bool runkit_function_remove ( string $funcname )

Note: 默认情况下，只有用户空间的函数可以被删除，重命名，或者修改。要覆盖内部函数，必须激活全系统范围的 php.ini 文件中的 runkit.internal_override 选项。

参数

funcname

Name of function to be deleted

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • runkit_function_add() - Add a new function, similar to create_function
  • runkit_function_copy() - Copy a function to a new function name
  • runkit_function_redefine() - Replace a function definition with a new implementation
  • runkit_function_rename() - Change a function's name

runkit_function_redefine
runkit_function_rename
runkit 函数


Change a function's name

runkit_function_remove
runkit_import
runkit 函数
PHP 手册

runkit_function_rename

(PECL runkit >= 0.7.0)

runkit_function_rename — Change a function's name

说明

bool runkit_function_rename ( string $funcname , string $newname )

Note: 默认情况下，只有用户空间的函数可以被删除，重命名，或者修改。要覆盖内部函数，必须激活全系统范围的 php.ini 文件中的 runkit.internal_override 选项。

参数

funcname

Current function name

newname

New function name

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • runkit_function_add() - Add a new function, similar to create_function
  • runkit_function_copy() - Copy a function to a new function name
  • runkit_function_redefine() - Replace a function definition with a new implementation
  • runkit_function_remove() - Remove a function definition

runkit_function_remove
runkit_import
runkit 函数


Process a PHP file importing function and class definitions, overwriting where appropriate

runkit_function_rename
runkit_lint_file
runkit 函数
PHP 手册

runkit_import

(PECL runkit >= 0.7.0)

runkit_import — Process a PHP file importing function and class definitions, overwriting where appropriate

说明

bool runkit_import ( string $filename [, int $flags=RUNKIT_IMPORT_CLASS_METHODS ] )

Similar to include() however any code residing outside of a function or class is simply ignored. Additionally, depending on the value of flags , any functions or classes which already exist in the currently running environment will be automatically overwritten by their new definitions.

参数

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT_IMPORT_* family of constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

runkit_function_rename
runkit_lint_file
runkit 函数


Check the PHP syntax of the specified file

runkit_import
runkit_lint
runkit 函数
PHP 手册

runkit_lint_file

(PECL runkit >= 0.7.0)

runkit_lint_file — Check the PHP syntax of the specified file

说明

bool runkit_lint_file ( string $filename )

The runkit_lint_file() function performs a syntax (lint) check on the specified filename testing for scripting errors. This is similar to using php -l from the commandline.

Note: 对沙盒的支持（是函数 runkit_lint()、runkit_lint_file() 和 Runkit_Sandbox 类所必须的）仅在 PHP 5.1 中，或在加过特别补丁的 PHP 5.0 中可用，并需要启用线程安全。请阅读 runkit 包中的 README 文件以了解更多信息。

参数

filename

File containing PHP Code to be lint checked

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • runkit_lint() - Check the PHP syntax of the specified php code

runkit_import
runkit_lint
runkit 函数


Check the PHP syntax of the specified php code

runkit_lint_file
runkit_method_add
runkit 函数
PHP 手册

runkit_lint

(PECL runkit >= 0.7.0)

runkit_lint — Check the PHP syntax of the specified php code

说明

bool runkit_lint ( string $code )

The runkit_lint() function performs a syntax (lint) check on the specified php code testing for scripting errors. This is similar to using php -l from the command line except runkit_lint() accepts actual code rather than a filename.

Note: 对沙盒的支持（是函数 runkit_lint()、runkit_lint_file() 和 Runkit_Sandbox 类所必须的）仅在 PHP 5.1 中，或在加过特别补丁的 PHP 5.0 中可用，并需要启用线程安全。请阅读 runkit 包中的 README 文件以了解更多信息。

参数

code

PHP Code to be lint checked

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • runkit_lint_file() - Check the PHP syntax of the specified file

runkit_lint_file
runkit_method_add
runkit 函数


Dynamically adds a new method to a given class

runkit_lint
runkit_method_copy
runkit 函数
PHP 手册

runkit_method_add

(PECL runkit >= 0.7.0)

runkit_method_add — Dynamically adds a new method to a given class

说明

bool runkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags=RUNKIT_ACC_PUBLIC ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class to which this method will be added

methodname

The name of the method to add

args

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when methodname is called

flags

The type of method to create, can be RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED or RUNKIT_ACC_PRIVATE

Note: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 runkit_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

上例将输出：

16

参见

  • runkit_method_copy() - Copies a method from class to another
  • runkit_method_redefine() - Dynamically changes the code of the given method
  • runkit_method_remove() - Dynamically removes the given method
  • runkit_method_rename() - Dynamically changes the name of the given method
  • runkit_function_add() - Add a new function, similar to create_function

runkit_lint
runkit_method_copy
runkit 函数


Copies a method from class to another

runkit_method_add
runkit_method_redefine
runkit 函数
PHP 手册

runkit_method_copy

(PECL runkit >= 0.7.0)

runkit_method_copy — Copies a method from class to another

说明

bool runkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

dClass

Destination class for copied method

dMethod

Destination method name

sClass

Source class of the method to copy

sMethod

Name of the method to copy from the source class. If this parameter is omitted, the value of dMethod is assumed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 runkit_method_copy() example

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
runkit_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

上例将输出：

foo!

参见

  • runkit_method_add() - Dynamically adds a new method to a given class
  • runkit_method_redefine() - Dynamically changes the code of the given method
  • runkit_method_remove() - Dynamically removes the given method
  • runkit_method_rename() - Dynamically changes the name of the given method
  • runkit_function_copy() - Copy a function to a new function name

runkit_method_add
runkit_method_redefine
runkit 函数


Dynamically changes the code of the given method

runkit_method_copy
runkit_method_remove
runkit 函数
PHP 手册

runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefine — Dynamically changes the code of the given method

说明

bool runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags=RUNKIT_ACC_PUBLIC ] )

Note: 本函数不能被用来操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class in which to redefine the method

methodname

The name of the method to redefine

args

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when methodname is called

flags

The redefined method can be RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED or RUNKIT_ACC_PRIVATE

Note: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 runkit_method_redefine() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

上例将输出：

Before: foo!
After: bar!

参见

  • runkit_method_add() - Dynamically adds a new method to a given class
  • runkit_method_copy() - Copies a method from class to another
  • runkit_method_remove() - Dynamically removes the given method
  • runkit_method_rename() - Dynamically changes the name of the given method
  • runkit_function_redefine() - Replace a function definition with a new implementation

runkit_method_copy
runkit_method_remove
runkit 函数


Dynamically removes the given method

runkit_method_redefine
runkit_method_rename
runkit 函数
PHP 手册

runkit_method_remove

(PECL runkit >= 0.7.0)

runkit_method_remove — Dynamically removes the given method

说明

bool runkit_method_remove ( string $classname , string $methodname )

Note: 本函数不能被用来操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class in which to remove the method

methodname

The name of the method to remove

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 runkit_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
runkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

上例将输出：

bar

参见

  • runkit_method_add() - Dynamically adds a new method to a given class
  • runkit_method_copy() - Copies a method from class to another
  • runkit_method_redefine() - Dynamically changes the code of the given method
  • runkit_method_rename() - Dynamically changes the name of the given method
  • runkit_function_remove() - Remove a function definition

runkit_method_redefine
runkit_method_rename
runkit 函数


Dynamically changes the name of the given method

runkit_method_remove
runkit_return_value_used
runkit 函数
PHP 手册

runkit_method_rename

(PECL runkit >= 0.7.0)

runkit_method_rename — Dynamically changes the name of the given method

说明

bool runkit_method_rename ( string $classname , string $methodname , string $newname )

Note: 本函数不能被用来操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class in which to rename the method

methodname

The name of the method to rename

newname

The new name to give to the renamed method

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 runkit_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
runkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

上例将输出：

foo!

参见

  • runkit_method_add() - Dynamically adds a new method to a given class
  • runkit_method_copy() - Copies a method from class to another
  • runkit_method_redefine() - Dynamically changes the code of the given method
  • runkit_method_remove() - Dynamically removes the given method
  • runkit_function_rename() - Change a function's name

runkit_method_remove
runkit_return_value_used
runkit 函数


Determines if the current functions return value will be used

runkit_method_rename
runkit_sandbox_output_handler
runkit 函数
PHP 手册

runkit_return_value_used

(PECL runkit >= 0.8.0)

runkit_return_value_used — Determines if the current functions return value will be used

说明

bool runkit_return_value_used ( void )

返回值

Returns TRUE if the function's return value is used by the calling scope, otherwise FALSE

范例

Example #1 runkit_return_value_used() example

<?php
function foo() {
  var_dump(runkit_return_value_used());
}

foo();
$f = foo();
?>

上例将输出：

bool(false)
bool(true)

runkit_method_rename
runkit_sandbox_output_handler
runkit 函数


Specify a function to capture and/or process output from a runkit sandbox

runkit_return_value_used
runkit_superglobals
runkit 函数
PHP 手册

runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler — Specify a function to capture and/or process output from a runkit sandbox

说明

mixed runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] )

Ordinarily, anything output (such as with echo() or print()) will be output as though it were printed from the parent's scope. Using runkit_sandbox_output_handler() however, output generated by the sandbox (including errors), can be captured by a function outside of the sandbox.

Note: 对沙盒的支持（是函数 runkit_lint()、runkit_lint_file() 和 Runkit_Sandbox 类所必须的）仅在 PHP 5.1 中，或在加过特别补丁的 PHP 5.0 中可用，并需要启用线程安全。请阅读 runkit 包中的 README 文件以了解更多信息。

Note: Deprecated
As of runkit version 0.5, this function is deprecated and is scheduled to be removed from the package prior to a 1.0 release. The output handler for a given Runkit_Sandbox instance may be read/set using the array offset syntax shown on the Runkit_Sandbox class definition page.

参数

sandbox

Object instance of Runkit_Sandbox class on which to set output handling.

callback

Name of a function which expects one parameter. Output generated by sandbox will be passed to this callback. Anything returned by the callback will be displayed normally. If this parameter is not passed then output handling will not be changed. If a non-truth value is passed, output handling will be disabled and will revert to direct display.

返回值

Returns the name of the previously defined output handler callback, or FALSE if no handler was previously defined.

范例

Example #1 Feeding output to a variable

<?php
function capture_output($str) {
  $GLOBALS['sandbox_output'] .= $str;

  return '';
}

$sandbox_output = '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php, 'capture_output');
$php->echo("Hello\n");
$php->eval('var_dump("Excuse me");');
$php->die("I lost myself.");
unset($php);

echo "Sandbox Complete\n\n";
echo $sandbox_output;
?>

上例将输出：

Sandbox Complete

Hello
string(9) "Excuse me"
I lost myself.

runkit_return_value_used
runkit_superglobals
runkit 函数


Return numerically indexed array of registered superglobals

runkit_sandbox_output_handler
音频格式操作
runkit 函数
PHP 手册

runkit_superglobals

(PECL runkit >= 0.7.0)

runkit_superglobals — Return numerically indexed array of registered superglobals

说明

array runkit_superglobals ( void )

返回值

Returns a numerically indexed array of the currently registered superglobals. i.e. _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

参见

  • Variable Scope

runkit_sandbox_output_handler
音频格式操作
runkit 函数


音频格式操作

  • ID3 — ID3 Tags
    • 简介
    • 安装/配置
    • Predefined Constants
    • ID3 函数
  • KTaglib
    • 简介
    • 安装/配置
    • 预定义常量
    • KTaglib_MPEG_File — The KTagLib_MPEG_File class
    • KTaglib_MPEG_AudioProperties — The KTaglib_MPEG_AudioProperties class
    • KTaglib_Tag — The KTaglib_Tag class
    • KTaglib_ID3v2_Tag — The KTagLib_ID3v2_Tag class
    • KTaglib_ID3v2_Frame — The KTagLib_ID3v2_Frame class
    • KTaglib_ID3v2_AttachedPictureFrame — The KTaglib_ID3v2_AttachedPictureFrame class
  • oggvorbis — OGG/Vorbis
    • 简介
    • 安装/配置
    • 预定义常量
    • Context options
    • 范例
  • OpenAL — OpenAL Audio Bindings
    • 简介
    • 安装/配置
    • 预定义常量
    • OpenAL 函数
runkit_superglobals
ID3
函数参考


ID3 Tags

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • Predefined Constants
  • ID3 函数
    • id3_get_frame_long_name — Get the long name of an ID3v2 frame
    • id3_get_frame_short_name — Get the short name of an ID3v2 frame
    • id3_get_genre_id — Get the id for a genre
    • id3_get_genre_list — Get all possible genre values
    • id3_get_genre_name — Get the name for a genre id
    • id3_get_tag — Get all information stored in an ID3 tag
    • id3_get_version — Get version of an ID3 tag
    • id3_remove_tag — Remove an existing ID3 tag
    • id3_set_tag — Update information stored in an ID3 tag
音频格式操作
简介
音频格式操作


简介

These functions let you read and manipulate ID3 tags. ID3 tags are used in MP3 files to store title of the song, as well as information about the artist, album, genre, year and track number.

Since version 0.2 it is also possible to extract text frames from ID3 v2.2+ tags.

ID3
安装/配置
ID3


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
ID3


安装

id3 is part of PECL and can be installed using the PEAR installer. To compile PHP with id3 support, download the sourcecode, put it in php-src/ext/id3 and compile PHP using --enable-id3.

需求
运行时配置
安装/配置


资源类型

本扩展模块未定义任何资源类型。

运行时配置
Predefined Constants
安装/配置


Predefined Constants

Most of the id3 functions either let you specify or return a tag version. In order to specify the version please use on of these constants.

ID3_V1_0 (integer)
ID3_V1_0 is used if you are working with ID3 V1.0 tags. These tags may contain the fields title, artist, album, genre, year and comment.
ID3_V1_1 (integer)
ID3_V1_1 is used if you are working with ID3 V1.1 tags. These tags may all information contained in v1.0 tags plus the track number.
ID3_V2_1 (integer)
ID3_V2_1 is used if you are working with ID3 V2.1 tags.
ID3_V2_2 (integer)
ID3_V2_2 is used if you are working with ID3 V2.2 tags.
ID3_V2_3 (integer)
ID3_V2_3 is used if you are working with ID3 V2.3 tags.
ID3_V2_4 (integer)
ID3_V2_4 is used if you are working with ID3 V2.4 tags.
ID3_BEST (integer)
ID3_BEST is used if would like to let the id3 functions determine which tag version should be used.

资源类型
ID3 函数
ID3


ID3 函数

Table of Contents

  • id3_get_frame_long_name — Get the long name of an ID3v2 frame
  • id3_get_frame_short_name — Get the short name of an ID3v2 frame
  • id3_get_genre_id — Get the id for a genre
  • id3_get_genre_list — Get all possible genre values
  • id3_get_genre_name — Get the name for a genre id
  • id3_get_tag — Get all information stored in an ID3 tag
  • id3_get_version — Get version of an ID3 tag
  • id3_remove_tag — Remove an existing ID3 tag
  • id3_set_tag — Update information stored in an ID3 tag
Predefined Constants
id3_get_frame_long_name
ID3


Get the long name of an ID3v2 frame

ID3 函数
id3_get_frame_short_name
ID3 函数
PHP 手册

id3_get_frame_long_name

(PECL id3 >= 0.2)

id3_get_frame_long_name — Get the long name of an ID3v2 frame

说明

string id3_get_frame_long_name ( string $frameId )

id3_get_frame_long_name() returns the long name for an ID3v2 frame.

参数

frameId

An ID3v2 frame

返回值

Returns the frame long name or FALSE on errors.

范例

Example #1 id3_get_frame_long_name() example

<?php
$longName = id3_get_frame_long_name("TOLY");
echo $longName;
?>

上例将输出：

Original lyricist(s)/text writer(s)

参见

  • id3_get_frame_short_name() - Get the short name of an ID3v2 frame

ID3 函数
id3_get_frame_short_name
ID3 函数


Get the short name of an ID3v2 frame

id3_get_frame_long_name
id3_get_genre_id
ID3 函数
PHP 手册

id3_get_frame_short_name

(PECL id3 >= 0.2)

id3_get_frame_short_name — Get the short name of an ID3v2 frame

说明

string id3_get_frame_short_name ( string $frameId )

id3_get_frame_short_name() returns the short name for an ID3v2 frame.

参数

frameId

An ID3v2 frame

返回值

Returns the frame short name or FALSE on errors.

The values returned by id3_get_frame_short_name() are used in the array returned by id3_get_tag().

范例

Example #1 id3_get_frame_short_name() example

<?php
$shortName = id3_get_frame_short_name("TOLY");
echo $shortName;
?>

上例将输出：

originalLyricist

参见

  • id3_get_frame_long_name() - Get the long name of an ID3v2 frame

id3_get_frame_long_name
id3_get_genre_id
ID3 函数


Get the id for a genre

id3_get_frame_short_name
id3_get_genre_list
ID3 函数
PHP 手册

id3_get_genre_id

(PECL id3 >= 0.1)

id3_get_genre_id — Get the id for a genre

说明

int id3_get_genre_id ( string $genre )

id3_get_genre_id() returns the id for a genre.

参数

genre

An integer ranging from 0 to 147

返回值

The genre id or FALSE on errors.

范例

Example #1 id3_get_genre_id() example

<?php
$id = id3_get_genre_id("Alternative");
echo $id;
?>

上例将输出：

20

参见

  • id3_get_genre_name() - Get the name for a genre id
  • id3_get_genre_list() - Get all possible genre values

id3_get_frame_short_name
id3_get_genre_list
ID3 函数


Get all possible genre values

id3_get_genre_id
id3_get_genre_name
ID3 函数
PHP 手册

id3_get_genre_list

(PECL id3 >= 0.1)

id3_get_genre_list — Get all possible genre values

说明

array id3_get_genre_list ( void )

id3_get_genre_list() returns an array containing all possible genres that may be stored in an ID3 tag. This list has been created by Eric Kemp and later extended by WinAmp.

This function is useful to provide you users a list of genres from which they may choose one. When updating the ID3 tag you will always have to specify the genre as an integer ranging from 0 to 147.

返回值

Returns an array containing all possible genres that may be stored in an ID3 tag.

范例

Example #1 id3_get_genre_list() example

<?php
$genres = id3_get_genre_list();
print_r($genres);
?>

上例将输出：

Array
(
    [0] => Blues
    [1] => Classic Rock
    [2] => Country
    [3] => Dance
    [4] => Disco
    [5] => Funk
    [6] => Grunge
    [7] => Hip-Hop
    [8] => Jazz
    [9] => Metal
    [10] => New Age
    [11] => Oldies
    [12] => Other
    [13] => Pop
    [14] => R&B
    [15] => Rap
    [16] => Reggae
    [17] => Rock
    [18] => Techno
    [19] => Industrial
    [20] => Alternative
    [21] => Ska
    [22] => Death Metal
    [23] => Pranks
    [24] => Soundtrack
    [25] => Euro-Techno
    [26] => Ambient
    [27] => Trip-Hop
    [28] => Vocal
    [29] => Jazz+Funk
    [30] => Fusion
    [31] => Trance
    [32] => Classical
    [33] => Instrumental
    [34] => Acid
    [35] => House
    [36] => Game
    [37] => Sound Clip
    [38] => Gospel
    [39] => Noise
    [40] => Alternative Rock
    [41] => Bass
    [42] => Soul
    [43] => Punk
    [44] => Space
    [45] => Meditative
    [46] => Instrumental Pop
    [47] => Instrumental Rock
    [48] => Ethnic
    [49] => Gothic
    [50] => Darkwave
    [51] => Techno-Industrial
    [52] => Electronic
    [53] => Pop-Folk
    [54] => Eurodance
    [55] => Dream
    [56] => Southern Rock
    [57] => Comedy
    [58] => Cult
    [59] => Gangsta
    [60] => Top 40
    [61] => Christian Rap
    [62] => Pop/Funk
    [63] => Jungle
    [64] => Native US
    [65] => Cabaret
    [66] => New Wave
    [67] => Psychadelic
    [68] => Rave
    [69] => Showtunes
    [70] => Trailer
    [71] => Lo-Fi
    [72] => Tribal
    [73] => Acid Punk
    [74] => Acid Jazz
    [75] => Polka
    [76] => Retro
    [77] => Musical
    [78] => Rock & Roll
    [79] => Hard Rock
    [80] => Folk
    [81] => Folk-Rock
    [82] => National Folk
    [83] => Swing
    [84] => Fast Fusion
    [85] => Bebob
    [86] => Latin
    [87] => Revival
    [88] => Celtic
    [89] => Bluegrass
    [90] => Avantgarde
    [91] => Gothic Rock
    [92] => Progressive Rock
    [93] => Psychedelic Rock
    [94] => Symphonic Rock
    [95] => Slow Rock
    [96] => Big Band
    [97] => Chorus
    [98] => Easy Listening
    [99] => Acoustic
    [100] => Humour
    [101] => Speech
    [102] => Chanson
    [103] => Opera
    [104] => Chamber Music
    [105] => Sonata
    [106] => Symphony
    [107] => Booty Bass
    [108] => Primus
    [109] => Porn Groove
    [110] => Satire
    [111] => Slow Jam
    [112] => Club
    [113] => Tango
    [114] => Samba
    [115] => Folklore
    [116] => Ballad
    [117] => Power Ballad
    [118] => Rhytmic Soul
    [119] => Freestyle
    [120] => Duet
    [121] => Punk Rock
    [122] => Drum Solo
    [123] => Acapella
    [124] => Euro-House
    [125] => Dance Hall
    [126] => Goa
    [127] => Drum & Bass
    [128] => Club-House
    [129] => Hardcore
    [130] => Terror
    [131] => Indie
    [132] => BritPop
    [133] => Negerpunk
    [134] => Polsk Punk
    [135] => Beat
    [136] => Christian Gangsta
    [137] => Heavy Metal
    [138] => Black Metal
    [139] => Crossover
    [140] => Contemporary C
    [141] => Christian Rock
    [142] => Merengue
    [143] => Salsa
    [144] => Thrash Metal
    [145] => Anime
    [146] => JPop
    [147] => SynthPop
)

参见

  • id3_get_genre_name() - Get the name for a genre id
  • id3_get_genre_id() - Get the id for a genre

id3_get_genre_id
id3_get_genre_name
ID3 函数


Get the name for a genre id

id3_get_genre_list
id3_get_tag
ID3 函数
PHP 手册

id3_get_genre_name

(PECL id3 >= 0.1)

id3_get_genre_name — Get the name for a genre id

说明

string id3_get_genre_name ( int $genre_id )

id3_get_genre_name() returns the name for a genre id.

参数

genre_id

An integer ranging from 0 to 147

返回值

Returns the name as a string.

范例

Example #1 id3_get_genre_name() example

<?php
$genre = id3_get_genre_name(20);
echo $genre;
?>

上例将输出：

Alternative

参见

  • id3_get_genre_list() - Get all possible genre values
  • id3_get_genre_id() - Get the id for a genre

id3_get_genre_list
id3_get_tag
ID3 函数


Get all information stored in an ID3 tag

id3_get_genre_name
id3_get_version
ID3 函数
PHP 手册

id3_get_tag

(PECL id3 >= 0.1)

id3_get_tag — Get all information stored in an ID3 tag

说明

array id3_get_tag ( string $filename [, int $version=ID3_BEST ] )

id3_get_tag() is used to get all information stored in the id3 tag of the specified file.

参数

filename

The path to the MP3 file

Instead of a filename you may also pass a valid stream resource

version

Allows you to specify the version of the tag as MP3 files may contain both, version 1.x and version 2.x tags

Since version 0.2 id3_get_tag() also supports ID3 tags of version 2.2, 2.3 and 2.4. To extract information from these tags, pass one of the constants ID3_V2_2, ID3_V2_3 or ID3_V2_4 as the second parameter. ID3 v2.x tags can contain a lot more information about the MP3 file than ID3 v1.x tags.

返回值

Returns an associative array with various keys like: title, artist, ..

The key genre will contain an integer between 0 and 147. You may use id3_get_genre_name() to convert it to a human readable string.

范例

Example #1 id3_get_tag() example

<?php
$tag = id3_get_tag( "path/to/example.mp3" );
print_r($tag);
?>

上例的输出类似于：

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

Example #2 id3_get_tag() example

<?php
$tag = id3_get_tag( "path/to/example2.mp3", ID3_V2_3 );
print_r($tag);
?>

上例的输出类似于：

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus Götze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

参见

  • id3_set_tag() - Update information stored in an ID3 tag
  • id3_remove_tag() - Remove an existing ID3 tag
  • id3_get_version() - Get version of an ID3 tag

id3_get_genre_name
id3_get_version
ID3 函数


Get version of an ID3 tag

id3_get_tag
id3_remove_tag
ID3 函数
PHP 手册

id3_get_version

(PECL id3 >= 0.1)

id3_get_version — Get version of an ID3 tag

说明

int id3_get_version ( string $filename )

id3_get_version() retrieves the version(s) of the ID3 tag(s) in the MP3 file.

If a file contains an ID3 v1.1 tag, it always contains a 1.0 tag, as version 1.1 is just an extension of 1.0.

参数

filename

The path to the MP3 file

Instead of a filename you may also pass a valid stream resource

返回值

Returns the version number of the ID3 tag of the file. As a tag can contain ID3 v1.x and v2.x tags, the return value of this function should be bitwise compared with the predefined constants ID3_V1_0, ID3_V1_1 and ID3_V2.

范例

Example #1 id3_get_version() example

<?php
$version = id3_get_version( "path/to/example.mp3" );
if ($version & ID3_V1_0) {
    echo "Contains a 1.x tag\n";
}
if ($version & ID3_V1_1) {
    echo "Contains a 1.1 tag\n";
}
if ($version & ID3_V2) {
    echo "Contains a 2.x tag\n";
}
?>

上例的输出类似于：

Contains a 1.x tag
Contains a 1.1 tag

参见

  • id3_set_tag() - Update information stored in an ID3 tag
  • id3_get_tag() - Get all information stored in an ID3 tag
  • id3_remove_tag() - Remove an existing ID3 tag

id3_get_tag
id3_remove_tag
ID3 函数


Remove an existing ID3 tag

id3_get_version
id3_set_tag
ID3 函数
PHP 手册

id3_remove_tag

(PECL id3 >= 0.1)

id3_remove_tag — Remove an existing ID3 tag

说明

bool id3_remove_tag ( string $filename [, int $version=ID3_V1_0 ] )

id3_remove_tag() is used to remove the information stored of an ID3 tag.

参数

filename

The path to the MP3 file

Instead of a filename you may also pass a valid stream resource

version

Allows you to specify the version of the tag as MP3 files may contain both, version 1.x and version 2.x tags.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 id3_remove_tag() example

<?php
$result = id3_remove_tag( "path/to/example.mp3", ID3_V1_0 );
if ($result === true) {
    echo "Tag succesfully removed\n";
}
?>

If the file is writable and contained a 1.0 tag, this will output:

Tag succesfully removed

注释

Note: Currently id3_remove_tag() only supports version 1.0 and 1.1. If you choose to remove a 1.0 tag and the file contains a 1.1 tag, this tag will be removed, as v1.1 is only an extension of 1.0.

参见

  • id3_set_tag() - Update information stored in an ID3 tag
  • id3_get_tag() - Get all information stored in an ID3 tag
  • id3_get_version() - Get version of an ID3 tag

id3_get_version
id3_set_tag
ID3 函数


Update information stored in an ID3 tag

id3_remove_tag
KTaglib
ID3 函数
PHP 手册

id3_set_tag

(PECL id3 >= 0.1)

id3_set_tag — Update information stored in an ID3 tag

说明

bool id3_set_tag ( string $filename , array $tag [, int $version=ID3_V1_0 ] )

id3_set_tag() is used to change the information stored of an ID3 tag. If no tag has been present, it will be added to the file.

参数

filename

The path to the MP3 file

Instead of a filename you may also pass a valid stream resource

tag

An associative array of tag keys and values

The following keys may be used in the associative array:

Keys in the associative array
key | possible value | available in version
title | string with maximum of 30 characters | v1.0, v1.1
artist | string with maximum of 30 characters | v1.0, v1.1
album | string with maximum of 30 characters | v1.0, v1.1
year | 4 digits | v1.0, v1.1
genre | integer value between 0 and 147 | v1.0, v1.1
comment | string with maximum of 30 characters (28 in v1.1) | v1.0, v1.1
track | integer between 0 and 255 | v1.1

version

Allows you to specify the version of the tag as MP3 files may contain both, version 1.x and version 2.x tags

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 id3_set_tag() example

<?php
$data = array(
              "title" => "Re:Start",
              "artist" => "Re:\Legion",
              "comment" => "A nice track"
             );
$result = id3_set_tag( "path/to/example.mp3", $data, ID3_V1_0 );
if ($result === true) {
    echo "Tag succesfully updated\n";
}
?>

If the file is writable, this will output:

Tag succesfully updated

注释

Note: Currently id3_remove_tag() only supports version 1.0 and 1.1.

参见

  • id3_remove_tag() - Remove an existing ID3 tag
  • id3_get_tag() - Get all information stored in an ID3 tag
  • id3_get_version() - Get version of an ID3 tag

id3_remove_tag
KTaglib
ID3 函数


KTaglib

  • 简介
  • 安装/配置
    • 需求
    • 安装
  • 预定义常量
  • KTaglib_MPEG_File — The KTagLib_MPEG_File class
    • KTaglib_MPEG_File::__construct — Opens a new file
    • KTaglib_MPEG_File::getAudioProperties — Returns an object that provides access to the audio properties
    • KTaglib_MPEG_File::getID3v1Tag — Returns an object representing an ID3v1 tag
    • KTaglib_MPEG_File::getID3v2Tag — Returns a ID3v2 object
  • KTaglib_MPEG_AudioProperties — The KTaglib_MPEG_AudioProperties class
    • KTaglib_MPEG_AudioProperties::getBitrate — Returns the bitrate of the MPEG file
    • KTaglib_MPEG_AudioProperties::getChannels — Returns the amount of channels of a MPEG file
    • KTaglib_MPEG_AudioProperties::getLayer — Returns the layer of a MPEG file
    • KTaglib_MPEG_AudioProperties::getLength — Returns the length of a MPEG file
    • KTaglib_MPEG_AudioProperties::getSampleBitrate — Returns the sample bitrate of a MPEG file
    • KTaglib_MPEG_AudioProperties::getVersion — Returns the version of a MPEG file
    • KTaglib_MPEG_AudioProperties::isCopyrighted — Returns the length of a MPEG file
    • KTaglib_MPEG_AudioProperties::isOriginal — Returns the length of a MPEG file
    • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Returns the length of a MPEG file
  • KTaglib_Tag — The KTaglib_Tag class
    • KTaglib_Tag::getAlbum — Returns the title string from a ID3 tag
    • KTaglib_Tag::getArtist — Returns the artist string from a ID3 tag
    • KTaglib_Tag::getComment — Returns the comment from a ID3 tag
    • KTaglib_Tag::getGenre — Returns the genre from a ID3 tag
    • KTaglib_Tag::getTitle — Returns the title string from a ID3 tag
    • KTaglib_Tag::getTrack — Returns the track number from a ID3 tag
    • KTaglib_Tag::getYear — Returns the year from a ID3 tag
    • KTaglib_Tag::isEmpty — Returns true if the tag is empty
  • KTaglib_ID3v2_Tag — The KTagLib_ID3v2_Tag class
    • KTaglib_ID3v2_Tag::addFrame — Add a frame to the ID3v2 tag
    • KTaglib_ID3v2_Tag::getFrameList — Returns an array of ID3v2 frames, associated with the ID3v2 tag
  • KTaglib_ID3v2_Frame — The KTagLib_ID3v2_Frame class
    • KTaglib_ID3v2_Frame::getSize — Returns the size of the frame in bytes
    • KTaglib_ID3v2_Frame::__toString — Returns a string representation of the frame
  • KTaglib_ID3v2_AttachedPictureFrame — The KTaglib_ID3v2_AttachedPictureFrame class
    • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Returns a description for the picture in a picture frame
    • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Returns the mime type of the picture
    • KTaglib_ID3v2_AttachedPictureFrame::getType — Returns the type of the image
    • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Saves the picture to a file
    • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Set's the mime type of the picture
    • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Sets the frame picture to the given image
    • KTaglib_ID3v2_AttachedPictureFrame::setType — Set the type of the image
id3_set_tag
简介
音频格式操作


简介

KTaglib is an object oriented binding to the taglib library from the KDE project used in projects like Amarok to read and write ID3 and Ogg tags. The library also provides access to audio information. The bindings are designed usually follow the underlying C++ API, but were changed whenever there is a more PHP-like way.

Note: At the moment ktaglib is able to read and write ID3v1 and ID3v2 tags.

KTaglib
安装/配置
KTaglib


安装/配置

Table of Contents

  • 需求
  • 安装
简介
需求
KTaglib


需求

If you want to build ktaglib you need at least taglib 1.5 installed. To obtain the taglib see the » taglib project page. Windows DLL's are build static against taglib, therefore there is no need to have taglib installed.

安装/配置
安装
安装/配置


安装

KTaglib support in PHP is not enabled by default. You will need to configure PHP --with-ktaglib[=DIR]

Note: KTaglib is part of PECL.

需求
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

KTaglib uses class constants. Most of the constants are mappings to the according Taglib enums and constants.

KTaglib_MPEG_Header::Version1 (integer)
ID3 version is 1.0
KTaglib_MPEG_Header::Version2 (integer)
ID3 version is 2.0
KTaglib_MPEG_Header::Version2_5 (integer)
ID3 version is 2.5
KTaglib_ID3v2_AttachedPictureFrame::Other (integer)
Picture type Other
KTaglib_ID3v2_AttachedPictureFrame::FileIcon (integer)
Picture type FileIcon
KTaglib_ID3v2_AttachedPictureFrame::OtherFileIcon (integer)
Picture type OtherFileIcon
KTaglib_ID3v2_AttachedPictureFrame::FrontCover (integer)
Picture type FrontCover
KTaglib_ID3v2_AttachedPictureFrame::BackCover (integer)
Picture type BackCover
KTaglib_ID3v2_AttachedPictureFrame::LeafletPage (integer)
Picture type LeafletPage
KTaglib_ID3v2_AttachedPictureFrame::Media (integer)
Picture type Media
KTaglib_ID3v2_AttachedPictureFrame::LeadArtist (integer)
Picture type LeadArtist
KTaglib_ID3v2_AttachedPictureFrame::Artist (integer)
Picture type Artist
KTaglib_ID3v2_AttachedPictureFrame::Conductor (integer)
Picture type Condutor
KTaglib_ID3v2_AttachedPictureFrame::Band (integer)
Picture type Band
KTaglib_ID3v2_AttachedPictureFrame::Composer (integer)
Picture type Composer
KTaglib_ID3v2_AttachedPictureFrame::Lyricist (integer)
Picture type Lyricist
KTaglib_ID3v2_AttachedPictureFrame::RecordingLocation (integer)
Picture type RecordingLocation
KTaglib_ID3v2_AttachedPictureFrame::DuringRecording (integer)
Picture type DuringRecording
KTaglib_ID3v2_AttachedPictureFrame::DuringPerformance (integer)
Picture type DuringPerformance
KTaglib_ID3v2_AttachedPictureFrame::MovieScreenCapture (integer)
Picture type MovieScreenCapture
KTaglib_ID3v2_AttachedPictureFrame::ColouredFish (integer)
Picture type ColouredFish
KTaglib_ID3v2_AttachedPictureFrame::Illustration (integer)
Picture type Illustration
KTaglib_ID3v2_AttachedPictureFrame::BandLogo (integer)
Picture type BandLogo
安装
KTaglib_MPEG_File
KTaglib


The KTagLib_MPEG_File class

简介

Represents an MPEG file. MPEG files can have ID3v1, ID3v2 tags and audio properties.

Class synopsis

KTagLib_MPEG_File
KTagLib_MPEG_File {
}

Table of Contents

  • KTaglib_MPEG_File::__construct — Opens a new file
  • KTaglib_MPEG_File::getAudioProperties — Returns an object that provides access to the audio properties
  • KTaglib_MPEG_File::getID3v1Tag — Returns an object representing an ID3v1 tag
  • KTaglib_MPEG_File::getID3v2Tag — Returns a ID3v2 object
预定义常量
KTaglib_MPEG_File::__construct
KTaglib


Opens a new file

KTaglib_MPEG_File
KTaglib_MPEG_File::getAudioProperties
KTaglib_MPEG_File
PHP 手册

KTaglib_MPEG_File::__construct

(0.0.1)

KTaglib_MPEG_File::__construct — Opens a new file

说明

KTaglib_MPEG_File::__construct ( string $filename )

Opens a new MPEG file.

参数

filename

The file to read

范例

Example #1 Opens a new MP3 file and read the title

<?php
$mpeg = new KTaglib_MPEG_File('example.mp3');
echo $mpeg->getID3v1Tag()->getTitle();
?>

KTaglib_MPEG_File
KTaglib_MPEG_File::getAudioProperties
KTaglib_MPEG_File


Returns an object that provides access to the audio properties

KTaglib_MPEG_File::__construct
KTaglib_MPEG_File::getID3v1Tag
KTaglib_MPEG_File
PHP 手册

KTaglib_MPEG_File::getAudioProperties

(0.0.1)

KTaglib_MPEG_File::getAudioProperties — Returns an object that provides access to the audio properties

说明

public KTaglib_MPEG_File: KTaglib_MPEG_File::getAudioProperties ( void )

Returns an object that provides access to the audio properties of the mpeg file.

返回值

Returns an KTaglib_MPEG_AudioProperties object or false.

KTaglib_MPEG_File::__construct
KTaglib_MPEG_File::getID3v1Tag
KTaglib_MPEG_File


Returns an object representing an ID3v1 tag

KTaglib_MPEG_File::getAudioProperties
KTaglib_MPEG_File::getID3v2Tag
KTaglib_MPEG_File
PHP 手册

KTaglib_MPEG_File::getID3v1Tag

(0.0.1)

KTaglib_MPEG_File::getID3v1Tag — Returns an object representing an ID3v1 tag

说明

public KTaglib_ID3v1_Tag KTaglib_MPEG_File::getID3v1Tag ([ bool $create=false ] )

Returns an object that represents an ID3v1 tag, which can be used to get information about the ID3v1 tag.

返回值

Returns an KTaglib_MPEG_ID3v1Tag object or false if there is no ID3v1 tag.

KTaglib_MPEG_File::getAudioProperties
KTaglib_MPEG_File::getID3v2Tag
KTaglib_MPEG_File


Returns a ID3v2 object

KTaglib_MPEG_File::getID3v1Tag
KTaglib_MPEG_AudioProperties
KTaglib_MPEG_File
PHP 手册

KTaglib_MPEG_File::getID3v2Tag

(0.0.1)

KTaglib_MPEG_File::getID3v2Tag — Returns a ID3v2 object

说明

public KTaglib_ID3v2_Tag KTaglib_MPEG_File::getID3v2Tag ([ bool $create=false ] )

Returns a ID3v2 object for the mpeg file. If no ID3v2 Tag is present, an KTaglib_TagNotFoundException is thrown.

返回值

Returns the KTaglib_ID3v2_Tag object of the MPEG file or false if there is no ID3v2 tag

KTaglib_MPEG_File::getID3v1Tag
KTaglib_MPEG_AudioProperties
KTaglib_MPEG_File


The KTaglib_MPEG_AudioProperties class

简介

Represents the audio properties of a MPEG file, like length, bitrate or samplerate.

Class synopsis

KTaglib_MPEG_Audioproperties
KTaglib_MPEG_AudioProperties {
}

Table of Contents

  • KTaglib_MPEG_AudioProperties::getBitrate — Returns the bitrate of the MPEG file
  • KTaglib_MPEG_AudioProperties::getChannels — Returns the amount of channels of a MPEG file
  • KTaglib_MPEG_AudioProperties::getLayer — Returns the layer of a MPEG file
  • KTaglib_MPEG_AudioProperties::getLength — Returns the length of a MPEG file
  • KTaglib_MPEG_AudioProperties::getSampleBitrate — Returns the sample bitrate of a MPEG file
  • KTaglib_MPEG_AudioProperties::getVersion — Returns the version of a MPEG file
  • KTaglib_MPEG_AudioProperties::isCopyrighted — Returns the length of a MPEG file
  • KTaglib_MPEG_AudioProperties::isOriginal — Returns the length of a MPEG file
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Returns the length of a MPEG file
KTaglib_MPEG_File::getID3v2Tag
KTaglib_MPEG_AudioProperties::getBitrate
KTaglib


Returns the bitrate of the MPEG file

KTaglib_MPEG_AudioProperties
KTaglib_MPEG_AudioProperties::getChannels
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::getBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getBitrate — Returns the bitrate of the MPEG file

说明

public int KTaglib_MPEG_AudioProperties::getBitrate ( void )

Returns the bitrate of the MPEG file

返回值

Returns the bitrate as an integer

KTaglib_MPEG_AudioProperties
KTaglib_MPEG_AudioProperties::getChannels
KTaglib_MPEG_AudioProperties


Returns the amount of channels of a MPEG file

KTaglib_MPEG_AudioProperties::getBitrate
KTaglib_MPEG_AudioProperties::getLayer
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::getChannels

(0.0.1)

KTaglib_MPEG_AudioProperties::getChannels — Returns the amount of channels of a MPEG file

说明

public int KTaglib_MPEG_AudioProperties::getChannels ( void )

Returns the amount of channels of the MPEG file

返回值

Returns the channel count as an integer

KTaglib_MPEG_AudioProperties::getBitrate
KTaglib_MPEG_AudioProperties::getLayer
KTaglib_MPEG_AudioProperties


Returns the layer of a MPEG file

KTaglib_MPEG_AudioProperties::getChannels
KTaglib_MPEG_AudioProperties::getLength
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::getLayer

(0.0.1)

KTaglib_MPEG_AudioProperties::getLayer — Returns the layer of a MPEG file

说明

public int KTaglib_MPEG_AudioProperties::getLayer ( void )

Returns the layer of the MPEG file (usually 3 for MP3).

返回值

Returns the layer as an integer

KTaglib_MPEG_AudioProperties::getChannels
KTaglib_MPEG_AudioProperties::getLength
KTaglib_MPEG_AudioProperties


Returns the length of a MPEG file

KTaglib_MPEG_AudioProperties::getLayer
KTaglib_MPEG_AudioProperties::getSampleBitrate
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::getLength

(0.0.1)

KTaglib_MPEG_AudioProperties::getLength — Returns the length of a MPEG file

说明

public int KTaglib_MPEG_AudioProperties::getLength ( void )

Returns the length of the MPEG file

返回值

Returns the length as an integer

KTaglib_MPEG_AudioProperties::getLayer
KTaglib_MPEG_AudioProperties::getSampleBitrate
KTaglib_MPEG_AudioProperties


Returns the sample bitrate of a MPEG file

KTaglib_MPEG_AudioProperties::getLength
KTaglib_MPEG_AudioProperties::getVersion
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::getSampleBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getSampleBitrate — Returns the sample bitrate of a MPEG file

说明

public int KTaglib_MPEG_AudioProperties::getSampleBitrate ( void )

Returns the sample bitrate of the MPEG file

返回值

Returns the sample bitrate as an integer

KTaglib_MPEG_AudioProperties::getLength
KTaglib_MPEG_AudioProperties::getVersion
KTaglib_MPEG_AudioProperties


Returns the version of a MPEG file

KTaglib_MPEG_AudioProperties::getSampleBitrate
KTaglib_MPEG_AudioProperties::isCopyrighted
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::getVersion

(0.0.1)

KTaglib_MPEG_AudioProperties::getVersion — Returns the version of a MPEG file

说明

public int KTaglib_MPEG_AudioProperties::getVersion ( void )

Returns the version of the MPEG file header. The possible versions are defined in Tag_MPEG_Header (Version1, Version2, Version2.5).

返回值

Returns the version

KTaglib_MPEG_AudioProperties::getSampleBitrate
KTaglib_MPEG_AudioProperties::isCopyrighted
KTaglib_MPEG_AudioProperties


Returns the length of a MPEG file

KTaglib_MPEG_AudioProperties::getVersion
KTaglib_MPEG_AudioProperties::isOriginal
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::isCopyrighted

(0.0.1)

KTaglib_MPEG_AudioProperties::isCopyrighted — Returns the length of a MPEG file

说明

public bool KTaglib_MPEG_AudioProperties::isCopyrighted ( void )

Returns true if the MPEG file is copyrighted

返回值

Returns true if the MPEG file is copyrighted

KTaglib_MPEG_AudioProperties::getVersion
KTaglib_MPEG_AudioProperties::isOriginal
KTaglib_MPEG_AudioProperties


Returns the length of a MPEG file

KTaglib_MPEG_AudioProperties::isCopyrighted
KTaglib_MPEG_AudioProperties::isProtectionEnabled
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::isOriginal

(0.0.1)

KTaglib_MPEG_AudioProperties::isOriginal — Returns the length of a MPEG file

说明

public bool KTaglib_MPEG_AudioProperties::isOriginal ( void )

Returns true if the file is marked as the original file

返回值

Returns true if the file is marked as the original file

KTaglib_MPEG_AudioProperties::isCopyrighted
KTaglib_MPEG_AudioProperties::isProtectionEnabled
KTaglib_MPEG_AudioProperties


Returns the length of a MPEG file

KTaglib_MPEG_AudioProperties::isOriginal
KTaglib_Tag
KTaglib_MPEG_AudioProperties
PHP 手册

KTaglib_MPEG_AudioProperties::isProtectionEnabled

(0.0.1)

KTaglib_MPEG_AudioProperties::isProtectionEnabled — Returns the length of a MPEG file

说明

public bool KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void )

Returns true if protection mechanism (like DRM) are enabled for this file

返回值

Returns true if protection mechanism (like DRM) are enabled for this file

KTaglib_MPEG_AudioProperties::isOriginal
KTaglib_Tag
KTaglib_MPEG_AudioProperties


The KTaglib_Tag class

简介

Base class for ID3v1 or ID3v2 tags

Class synopsis

KTaglib_Tag
KTaglib_Tag {
}

Table of Contents

  • KTaglib_Tag::getAlbum — Returns the title string from a ID3 tag
  • KTaglib_Tag::getArtist — Returns the artist string from a ID3 tag
  • KTaglib_Tag::getComment — Returns the comment from a ID3 tag
  • KTaglib_Tag::getGenre — Returns the genre from a ID3 tag
  • KTaglib_Tag::getTitle — Returns the title string from a ID3 tag
  • KTaglib_Tag::getTrack — Returns the track number from a ID3 tag
  • KTaglib_Tag::getYear — Returns the year from a ID3 tag
  • KTaglib_Tag::isEmpty — Returns true if the tag is empty
KTaglib_MPEG_AudioProperties::isProtectionEnabled
KTaglib_Tag::getAlbum
KTaglib


Returns the title string from a ID3 tag

KTaglib_Tag
KTaglib_Tag::getArtist
KTaglib_Tag
PHP 手册

KTaglib_Tag::getAlbum

(0.0.1)

KTaglib_Tag::getAlbum — Returns the title string from a ID3 tag

说明

public string KTaglib_Tag::getAlbum ( void )

Returns the album string of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the album string

KTaglib_Tag
KTaglib_Tag::getArtist
KTaglib_Tag


Returns the artist string from a ID3 tag

KTaglib_Tag::getAlbum
KTaglib_Tag::getComment
KTaglib_Tag
PHP 手册

KTaglib_Tag::getArtist

(0.0.1)

KTaglib_Tag::getArtist — Returns the artist string from a ID3 tag

说明

public string KTaglib_Tag::getArtist ( void )

Returns the artist string of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the artist string

KTaglib_Tag::getAlbum
KTaglib_Tag::getComment
KTaglib_Tag


Returns the comment from a ID3 tag

KTaglib_Tag::getArtist
KTaglib_Tag::getGenre
KTaglib_Tag
PHP 手册

KTaglib_Tag::getComment

(0.0.1)

KTaglib_Tag::getComment — Returns the comment from a ID3 tag

说明

public string KTaglib_Tag::getComment ( void )

Returns the comment of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the comment string

KTaglib_Tag::getArtist
KTaglib_Tag::getGenre
KTaglib_Tag


Returns the genre from a ID3 tag

KTaglib_Tag::getComment
KTaglib_Tag::getTitle
KTaglib_Tag
PHP 手册

KTaglib_Tag::getGenre

(0.0.1)

KTaglib_Tag::getGenre — Returns the genre from a ID3 tag

说明

public string KTaglib_Tag::getGenre ( void )

Returns the genre of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the genre string

KTaglib_Tag::getComment
KTaglib_Tag::getTitle
KTaglib_Tag


Returns the title string from a ID3 tag

KTaglib_Tag::getGenre
KTaglib_Tag::getTrack
KTaglib_Tag
PHP 手册

KTaglib_Tag::getTitle

(0.0.1)

KTaglib_Tag::getTitle — Returns the title string from a ID3 tag

说明

public string KTaglib_Tag::getTitle ( void )

Returns the title string of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the title string

KTaglib_Tag::getGenre
KTaglib_Tag::getTrack
KTaglib_Tag


Returns the track number from a ID3 tag

KTaglib_Tag::getTitle
KTaglib_Tag::getYear
KTaglib_Tag
PHP 手册

KTaglib_Tag::getTrack

(0.0.1)

KTaglib_Tag::getTrack — Returns the track number from a ID3 tag

说明

public int KTaglib_Tag::getTrack ( void )

Returns the track number of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the track number as an integer

KTaglib_Tag::getTitle
KTaglib_Tag::getYear
KTaglib_Tag


Returns the year from a ID3 tag

KTaglib_Tag::getTrack
KTaglib_Tag::isEmpty
KTaglib_Tag
PHP 手册

KTaglib_Tag::getYear

(0.0.1)

KTaglib_Tag::getYear — Returns the year from a ID3 tag

说明

public int KTaglib_Tag::getYear ( void )

Returns the year of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns the year as an integer

KTaglib_Tag::getTrack
KTaglib_Tag::isEmpty
KTaglib_Tag


Returns true if the tag is empty

KTaglib_Tag::getYear
KTaglib_ID3v2_Tag
KTaglib_Tag
PHP 手册

KTaglib_Tag::isEmpty

(0.0.1)

KTaglib_Tag::isEmpty — Returns true if the tag is empty

说明

public bool KTaglib_Tag::isEmpty ( void )

Returns true if the tag exists, but is empty. This method is implemented in ID3v1 and ID3v2 tags.

返回值

Returns true if the tag is empty, otherwise false.

KTaglib_Tag::getYear
KTaglib_ID3v2_Tag
KTaglib_Tag


The KTagLib_ID3v2_Tag class

简介

Represents and ID3v2 tag. It provides a list of ID3v2 frames and can be uesd to add and remove additional frames.

Class synopsis

KTagLib_ID3v2_Tag
extends KTagLib_Tag {
}

Table of Contents

  • KTaglib_ID3v2_Tag::addFrame — Add a frame to the ID3v2 tag
  • KTaglib_ID3v2_Tag::getFrameList — Returns an array of ID3v2 frames, associated with the ID3v2 tag
KTaglib_Tag::isEmpty
KTaglib_ID3v2_Tag::addFrame
KTaglib


Add a frame to the ID3v2 tag

KTaglib_ID3v2_Tag
KTaglib_ID3v2_Tag::getFrameList
KTaglib_ID3v2_Tag
PHP 手册

KTaglib_ID3v2_Tag::addFrame

(0.0.1)

KTaglib_ID3v2_Tag::addFrame — Add a frame to the ID3v2 tag

说明

public bool KTaglib_ID3v2_Tag::addFrame ( KTagLib_ID3v2_Frame $frame )

Adds a frame to the ID3v2 tag. The frame must be a valid KTagLib_ID3v2_Frame object. To save the tag, the save function needs to be invoked.

返回值

Returns true on success, otherwise false.

KTaglib_ID3v2_Tag
KTaglib_ID3v2_Tag::getFrameList
KTaglib_ID3v2_Tag


Returns an array of ID3v2 frames, associated with the ID3v2 tag

KTaglib_ID3v2_Tag::addFrame
KTaglib_ID3v2_Frame
KTaglib_ID3v2_Tag
PHP 手册

KTaglib_ID3v2_Tag::getFrameList

(0.0.1)

KTaglib_ID3v2_Tag::getFrameList — Returns an array of ID3v2 frames, associated with the ID3v2 tag

说明

public array KTaglib_ID3v2_Tag::getFrameList ( void )

Returns an array of ID3v2 frames, associated with the ID3v2 tag.

返回值

Return an array of KTaglib_ID3v2_Frame objects

KTaglib_ID3v2_Tag::addFrame
KTaglib_ID3v2_Frame
KTaglib_ID3v2_Tag


The KTagLib_ID3v2_Frame class

简介

The base class for ID3v2 frames. ID3v2 tags are separated in various specialized frames. Some frames can exists multiple times.

Class synopsis

KTagLib_ID3v2_Frame
extends KTagLib_Tag {
}

Table of Contents

  • KTaglib_ID3v2_Frame::getSize — Returns the size of the frame in bytes
  • KTaglib_ID3v2_Frame::__toString — Returns a string representation of the frame
KTaglib_ID3v2_Tag::getFrameList
KTaglib_ID3v2_Frame::getSize
KTaglib


Returns the size of the frame in bytes

KTaglib_ID3v2_Frame
KTaglib_ID3v2_Frame::__toString
KTaglib_ID3v2_Frame
PHP 手册

KTaglib_ID3v2_Frame::getSize

(0.0.1)

KTaglib_ID3v2_Frame::getSize — Returns the size of the frame in bytes

说明

public int KTaglib_ID3v2_Frame::getSize ( void )

Returns the size of the frame in bytes. Please refer to id3.org to see what ID3v2 frames are and how they are defined.

返回值

Returns the size of the frame in bytes

KTaglib_ID3v2_Frame
KTaglib_ID3v2_Frame::__toString
KTaglib_ID3v2_Frame


Returns a string representation of the frame

KTaglib_ID3v2_Frame::getSize
KTaglib_ID3v2_AttachedPictureFrame
KTaglib_ID3v2_Frame
PHP 手册

KTaglib_ID3v2_Frame::__toString

(0.0.1)

KTaglib_ID3v2_Frame::__toString — Returns a string representation of the frame

说明

public string KTaglib_ID3v2_Frame::__toString ( void )

Returns a string representation of the frame. This might be just the frame id, but might contain more information. Please see the ktaglib documentation for more information

返回值

Returns a string representation of the frame.

KTaglib_ID3v2_Frame::getSize
KTaglib_ID3v2_AttachedPictureFrame
KTaglib_ID3v2_Frame


The KTaglib_ID3v2_AttachedPictureFrame class

简介

Represents an ID3v2 frame that can hold a picture.

Class synopsis

KTaglib_ID3v2_AttachedPictureFrame
extends KTagLib_ID3v2_Frame {
}

Table of Contents

  • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Returns a description for the picture in a picture frame
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Returns the mime type of the picture
  • KTaglib_ID3v2_AttachedPictureFrame::getType — Returns the type of the image
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Saves the picture to a file
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Set's the mime type of the picture
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Sets the frame picture to the given image
  • KTaglib_ID3v2_AttachedPictureFrame::setType — Set the type of the image
KTaglib_ID3v2_Frame::__toString
KTaglib_ID3v2_AttachedPictureFrame::getDescription
KTaglib


Returns a description for the picture in a picture frame

KTaglib_ID3v2_AttachedPictureFrame
KTaglib_ID3v2_AttachedPictureFrame::getMimeType
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::getDescription

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::getDescription — Returns a description for the picture in a picture frame

说明

public string KTaglib_ID3v2_AttachedPictureFrame::getDescription ( void )

Returns the attached description for a picture frame in an ID3v2.x frame.

返回值

Returns a description for the picture in a picture frame

KTaglib_ID3v2_AttachedPictureFrame
KTaglib_ID3v2_AttachedPictureFrame::getMimeType
KTaglib_ID3v2_AttachedPictureFrame


Returns the mime type of the picture

KTaglib_ID3v2_AttachedPictureFrame::getDescription
KTaglib_ID3v2_AttachedPictureFrame::getType
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::getMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Returns the mime type of the picture

说明

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( void )

Returns the mime type of the image represented by the attached picture frame.

Please notice that this method might return different types. While ID3v2.2 have a mime type that doesn't start with "image/", ID3v2.3 and v2.4 usually start with "image/". Therefore the method might return "image/png" for IDv2.3 frames and just "PNG" for ID3v2.2 frames.

Notice that even the frame is an attached picture, the mime type might not be set and therefore an empty string might be returned.

返回值

Returns the mime type of the image represented by the attached picture frame.

KTaglib_ID3v2_AttachedPictureFrame::getDescription
KTaglib_ID3v2_AttachedPictureFrame::getType
KTaglib_ID3v2_AttachedPictureFrame


Returns the type of the image

KTaglib_ID3v2_AttachedPictureFrame::getMimeType
KTaglib_ID3v2_AttachedPictureFrame::savePicture
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::getType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getType — Returns the type of the image

说明

public int KTaglib_ID3v2_AttachedPictureFrame::getType ( void )

Returns the type of the image.

The ID3v2 specification allows an AttachedPictureFrame to set the type of an image. This can be e.g. FrontCover or FileIcon. Please refer to the KTagLib_ID3v2_AttachedPictureFrame class description for a list of available types.

返回值

Returns the integer representation of the type.

KTaglib_ID3v2_AttachedPictureFrame::getMimeType
KTaglib_ID3v2_AttachedPictureFrame::savePicture
KTaglib_ID3v2_AttachedPictureFrame


Saves the picture to a file

KTaglib_ID3v2_AttachedPictureFrame::getType
KTaglib_ID3v2_AttachedPictureFrame::setMimeType
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::savePicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::savePicture — Saves the picture to a file

说明

public bool KTaglib_ID3v2_AttachedPictureFrame::savePicture ( string $filename )

Saves the attached picture to the given filename.

返回值

Returns true on success, otherwise false

KTaglib_ID3v2_AttachedPictureFrame::getType
KTaglib_ID3v2_AttachedPictureFrame::setMimeType
KTaglib_ID3v2_AttachedPictureFrame


Set's the mime type of the picture

KTaglib_ID3v2_AttachedPictureFrame::savePicture
KTaglib_ID3v2_AttachedPictureFrame::setPicture
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::setMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Set's the mime type of the picture

说明

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( string $type )

Sets the mime type of the image. This should in most cases be "image/png" or "image/jpeg".

KTaglib_ID3v2_AttachedPictureFrame::savePicture
KTaglib_ID3v2_AttachedPictureFrame::setPicture
KTaglib_ID3v2_AttachedPictureFrame


Sets the frame picture to the given image

KTaglib_ID3v2_AttachedPictureFrame::setMimeType
KTaglib_ID3v2_AttachedPictureFrame::setType
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::setPicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::setPicture — Sets the frame picture to the given image

说明

public void KTaglib_ID3v2_AttachedPictureFrame::setPicture ( string $filename )

Sets the picture to the give image. The image is loaded from the given filename. Please note that the picture is not saved unless you call the save method of the corresponding file object.

返回值

Returns true on success, otherwise false

KTaglib_ID3v2_AttachedPictureFrame::setMimeType
KTaglib_ID3v2_AttachedPictureFrame::setType
KTaglib_ID3v2_AttachedPictureFrame


Set the type of the image

KTaglib_ID3v2_AttachedPictureFrame::setPicture
oggvorbis
KTaglib_ID3v2_AttachedPictureFrame
PHP 手册

KTaglib_ID3v2_AttachedPictureFrame::setType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setType — Set the type of the image

说明

public void KTaglib_ID3v2_AttachedPictureFrame::setType ( int $type )

Sets the type of the image. This can be e.g. FrontCover or FileIcon. Please refer to the KTaglib_ID3v2_AttachedPictureFrame class description for a list of available types and their constant mappings.

KTaglib_ID3v2_AttachedPictureFrame::setPicture
oggvorbis
KTaglib_ID3v2_AttachedPictureFrame


OGG/Vorbis

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Context options
  • 范例
    • Examples on using the ogg:// wrapper.
KTaglib_ID3v2_AttachedPictureFrame::setType
简介
音频格式操作


简介

The OGG/Vorbis file format, as defined by » http://www.vorbis.com/, is a scheme for compressing audio streams by multiple factors with a minimum of quality loss. This extension adds Ogg Vorbis support to PHP's URL Wrappers. When used in read mode, compressed OGG/Vorbis data is expanded to raw PCM audio in one of six PCM encoding formats listed below.

oggvorbis
安装/配置
oggvorbis


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
oggvorbis


需求

This extension requires PHP >= 4.3.0, » libogg >= 1.0, and » libvorbis >= 1.0.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/oggvorbis

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

OGG/Vorbis supports PCM encodings in the following formats
Constant | Definition
OGGVORBIS_PCM_U8 | Unsigned 8-bit PCM.
OGGVORBIS_PCM_S8 | Signed 8-bit PCM.
OGGVORBIS_PCM_U16_LE | Unsigned 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_U16_BE | Unsigned 16-bit PCM. Big Endian byte order.
OGGVORBIS_PCM_S16_LE | Signed 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_S16_BE | Signed 16-bit PCM. Big Endian byte order.
资源类型
Context options
oggvorbis


Context options

OGG/Vorbis tuning options
Option | Definition | Relevance | Default
pcm_mode | PCM byte encoding used. See constants below. | Read / Write | OGGVORBIS_PCM_S16_LE
rate | PCM Sampling rate. Measured in Hz. | Write only | 44100
bitrate | Vorbis Average Bitrate Encoding / Variable Bitrate Encoding. Measured in bps (ABR) or Quality level (VBR: 0.0 to 1.0). 128000 ABR is rough equal to 0.4 VBR. | Write only | 128000
channels | Number of PCM channels. 1 == Mono, 2 == Stereo. | Write only | 2
serialno | Serial Number of stream within file. Must be unique within file. Because of the potential to select a duplicate serial number within a chained file, make efforts to manually assign unique numbers when encoding. | Write only | Random
comments | Associative array of file comments. Will be translated to strtoupper($name) . "=$value". Note: This context option is not available in oggvorbis-0.1 | Write only | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')
预定义常量
范例
oggvorbis


范例

Table of Contents

  • Examples on using the ogg:// wrapper.
Context options
Examples on using the ogg:// wrapper.
oggvorbis


Examples on using the ogg:// wrapper.

Example #1 Reading an OGG/Vorbis file

<?php
dl("oggvorbis.so");

/* By default, ogg:// will decode to Signed 16-bit Little Endian */
$fp = fopen('ogg://myaudio.ogg', 'r');

/* Collect some information about the file. */
$metadata = stream_get_meta_data($fp);

/* Inspect the first song (usually the only song,
   but OGG/Vorbis files may be chained) */
$songdata = $metadata['wrapper_data'][0];

echo "OGG/Vorbis file encoded by: {$songdata['vendor']}\n.";
echo "  {$songdata['channels']} channels of {$songdata['rate']}Hz sampling encoded at {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
    echo "  $comment\n";
}

while ($audio_data = fread($fp, 8192)) {
  /* Do something with the PCM audio we're extracting from the OGG.
     Copying to /dev/dsp is a good target on linux systems,
     just remember to setup the device for your sampling mode first. */
}

fclose($fp);

?>

Example #2 Encode an audio file to OGG/Vorbis

<?php
dl('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
             'pcm_mode' => OGGVORBIS_PCM_S8,  /* Signed 8bit audio */
             'rate' => 44100,                 /* 44kHz CD quality */
             'bitrate' => 0.5,                /* Midquality VBR */
             'channels' => 1,                 /* Mono */
             'serialno' => 12345)));          /* Unique within our stream */

/* Open file for appending.  This will "chain" a second OGG stream at the end of the first. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Compress the raw PCM audio from mysample.pcm into mysong.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>

范例
OpenAL
范例


OpenAL Audio Bindings

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • OpenAL 函数
    • openal_buffer_create — Generate OpenAL buffer
    • openal_buffer_data — Load a buffer with data
    • openal_buffer_destroy — Destroys an OpenAL buffer
    • openal_buffer_get — Retrieve an OpenAL buffer property
    • openal_buffer_loadwav — Load a .wav file into a buffer
    • openal_context_create — Create an audio processing context
    • openal_context_current — Make the specified context current
    • openal_context_destroy — Destroys a context
    • openal_context_process — Process the specified context
    • openal_context_suspend — Suspend the specified context
    • openal_device_close — Close an OpenAL device
    • openal_device_open — Initialize the OpenAL audio layer
    • openal_listener_get — Retrieve a listener property
    • openal_listener_set — Set a listener property
    • openal_source_create — Generate a source resource
    • openal_source_destroy — Destroy a source resource
    • openal_source_get — Retrieve an OpenAL source property
    • openal_source_pause — Pause the source
    • openal_source_play — Start playing the source
    • openal_source_rewind — Rewind the source
    • openal_source_set — Set source property
    • openal_source_stop — Stop playing the source
    • openal_stream — Begin streaming on a source
Examples on using the ogg:// wrapper.
简介
音频格式操作


简介

Platform independent audio bindings. Requires the » OpenAL library.

OpenAL
安装/配置
OpenAL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
OpenAL


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/openal.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


资源类型

This extension defines four resource types:
Open AL(Device) - Returned by openal_device_open(),
Open AL(Context) - Returned by openal_context_create(),
Open AL(Buffer) - Returned by openal_buffer_create(),
and Open AL(Source) - Returned by openal_source_create().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

ALC_FREQUENCY (integer)
Context Attribute
ALC_REFRESH (integer)
Context Attribute
ALC_SYNC (integer)
Context Attribute
AL_FREQUENCY (integer)
Buffer Setting
AL_BITS (integer)
Buffer Setting
AL_CHANNELS (integer)
Buffer Setting
AL_SIZE (integer)
Buffer Setting
AL_BUFFER (integer)
Source/Listener Setting (Integer)
AL_SOURCE_RELATIVE (integer)
Source/Listener Setting (Integer)
AL_SOURCE_STATE (integer)
Source/Listener Setting (Integer)
AL_PITCH (integer)
Source/Listener Setting (Float)
AL_GAIN (integer)
Source/Listener Setting (Float)
AL_MIN_GAIN (integer)
Source/Listener Setting (Float)
AL_MAX_GAIN (integer)
Source/Listener Setting (Float)
AL_MAX_DISTANCE (integer)
Source/Listener Setting (Float)
AL_ROLLOFF_FACTOR (integer)
Source/Listener Setting (Float)
AL_CONE_OUTER_GAIN (integer)
Source/Listener Setting (Float)
AL_CONE_INNER_ANGLE (integer)
Source/Listener Setting (Float)
AL_CONE_OUTER_ANGLE (integer)
Source/Listener Setting (Float)
AL_REFERENCE_DISTANCE (integer)
Source/Listener Setting (Float)
AL_POSITION (integer)
Source/Listener Setting (Float Vector)
AL_VELOCITY (integer)
Source/Listener Setting (Float Vector)
AL_DIRECTION (integer)
Source/Listener Setting (Float Vector)
AL_ORIENTATION (integer)
Source/Listener Setting (Float Vector)
AL_FORMAT_MONO8 (integer)
PCM Format
AL_FORMAT_MONO16 (integer)
PCM Format
AL_FORMAT_STEREO8 (integer)
PCM Format
AL_FORMAT_STEREO16 (integer)
PCM Format
AL_INITIAL (integer)
Source State
AL_PLAYING (integer)
Source State
AL_PAUSED (integer)
Source State
AL_STOPPED (integer)
Source State
AL_LOOPING (integer)
Source State
AL_TRUE (integer)
Boolean value recognized by OpenAL
AL_FALSE (integer)
Boolean value recognized by OpenAL
资源类型
OpenAL 函数
OpenAL


OpenAL 函数

Table of Contents

  • openal_buffer_create — Generate OpenAL buffer
  • openal_buffer_data — Load a buffer with data
  • openal_buffer_destroy — Destroys an OpenAL buffer
  • openal_buffer_get — Retrieve an OpenAL buffer property
  • openal_buffer_loadwav — Load a .wav file into a buffer
  • openal_context_create — Create an audio processing context
  • openal_context_current — Make the specified context current
  • openal_context_destroy — Destroys a context
  • openal_context_process — Process the specified context
  • openal_context_suspend — Suspend the specified context
  • openal_device_close — Close an OpenAL device
  • openal_device_open — Initialize the OpenAL audio layer
  • openal_listener_get — Retrieve a listener property
  • openal_listener_set — Set a listener property
  • openal_source_create — Generate a source resource
  • openal_source_destroy — Destroy a source resource
  • openal_source_get — Retrieve an OpenAL source property
  • openal_source_pause — Pause the source
  • openal_source_play — Start playing the source
  • openal_source_rewind — Rewind the source
  • openal_source_set — Set source property
  • openal_source_stop — Stop playing the source
  • openal_stream — Begin streaming on a source
预定义常量
openal_buffer_create
OpenAL


Generate OpenAL buffer

OpenAL 函数
openal_buffer_data
OpenAL 函数
PHP 手册

openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_create — Generate OpenAL buffer

说明

resource openal_buffer_create ( void )

返回值

Returns an Open AL(Buffer) resource on success or FALSE on failure.

参见

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_buffer_data() - Load a buffer with data

OpenAL 函数
openal_buffer_data
OpenAL 函数


Load a buffer with data

openal_buffer_create
openal_buffer_destroy
OpenAL 函数
PHP 手册

openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_data — Load a buffer with data

说明

bool openal_buffer_data ( resource $buffer , int $format , string $data , int $freq )

参数

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

format

Format of data , one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 和 AL_FORMAT_STEREO16

data

Block of binary audio data in the format and freq specified.

freq

Frequency of data given in Hz.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_stream() - Begin streaming on a source

openal_buffer_create
openal_buffer_destroy
OpenAL 函数


Destroys an OpenAL buffer

openal_buffer_data
openal_buffer_get
OpenAL 函数
PHP 手册

openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroy — Destroys an OpenAL buffer

说明

bool openal_buffer_destroy ( resource $buffer )

参数

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_buffer_create() - Generate OpenAL buffer

openal_buffer_data
openal_buffer_get
OpenAL 函数


Retrieve an OpenAL buffer property

openal_buffer_destroy
openal_buffer_loadwav
OpenAL 函数
PHP 手册

openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_get — Retrieve an OpenAL buffer property

说明

int openal_buffer_get ( resource $buffer , int $property )

参数

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

property

Specific property, one of: AL_FREQUENCY, AL_BITS, AL_CHANNELS 和 AL_SIZE.

返回值

Returns an integer value appropriate to the property requested or FALSE on failure.

参见

  • openal_buffer_create() - Generate OpenAL buffer

openal_buffer_destroy
openal_buffer_loadwav
OpenAL 函数


Load a .wav file into a buffer

openal_buffer_get
openal_context_create
OpenAL 函数
PHP 手册

openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwav — Load a .wav file into a buffer

说明

bool openal_buffer_loadwav ( resource $buffer , string $wavfile )

参数

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

wavfile

Path to .WAV file on local file system.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_buffer_data() - Load a buffer with data
  • openal_stream() - Begin streaming on a source

openal_buffer_get
openal_context_create
OpenAL 函数


Create an audio processing context

openal_buffer_loadwav
openal_context_current
OpenAL 函数
PHP 手册

openal_context_create

(PECL openal >= 0.1.0)

openal_context_create — Create an audio processing context

说明

resource openal_context_create ( resource $device )

参数

device

An Open AL(Device) resource (previously created by openal_device_open()).

返回值

Returns an Open AL(Context) resource on success or FALSE on failure.

参见

  • openal_device_open() - Initialize the OpenAL audio layer
  • openal_context_destroy() - Destroys a context

openal_buffer_loadwav
openal_context_current
OpenAL 函数


Make the specified context current

openal_context_create
openal_context_destroy
OpenAL 函数
PHP 手册

openal_context_current

(PECL openal >= 0.1.0)

openal_context_current — Make the specified context current

说明

bool openal_context_current ( resource $context )

参数

context

An Open AL(Context) resource (previously created by openal_context_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_context_create() - Create an audio processing context

openal_context_create
openal_context_destroy
OpenAL 函数


Destroys a context

openal_context_current
openal_context_process
OpenAL 函数
PHP 手册

openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroy — Destroys a context

说明

bool openal_context_destroy ( resource $context )

参数

context

An Open AL(Context) resource (previously created by openal_context_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_context_create() - Create an audio processing context

openal_context_current
openal_context_process
OpenAL 函数


Process the specified context

openal_context_destroy
openal_context_suspend
OpenAL 函数
PHP 手册

openal_context_process

(PECL openal >= 0.1.0)

openal_context_process — Process the specified context

说明

bool openal_context_process ( resource $context )

参数

context

An Open AL(Context) resource (previously created by openal_context_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_suspend() - Suspend the specified context

openal_context_destroy
openal_context_suspend
OpenAL 函数


Suspend the specified context

openal_context_process
openal_device_close
OpenAL 函数
PHP 手册

openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspend — Suspend the specified context

说明

bool openal_context_suspend ( resource $context )

参数

context

An Open AL(Context) resource (previously created by openal_context_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_process() - Process the specified context

openal_context_process
openal_device_close
OpenAL 函数


Close an OpenAL device

openal_context_suspend
openal_device_open
OpenAL 函数
PHP 手册

openal_device_close

(PECL openal >= 0.1.0)

openal_device_close — Close an OpenAL device

说明

bool openal_device_close ( resource $device )

参数

device

An Open AL(Device) resource (previously created by openal_device_open()) to be closed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_device_open() - Initialize the OpenAL audio layer

openal_context_suspend
openal_device_open
OpenAL 函数


Initialize the OpenAL audio layer

openal_device_close
openal_listener_get
OpenAL 函数
PHP 手册

openal_device_open

(PECL openal >= 0.1.0)

openal_device_open — Initialize the OpenAL audio layer

说明

resource openal_device_open ([ string $device_desc ] )

参数

device_desc

Open an audio device optionally specified by device_desc . If device_desc is not specified the first available audio device will be used.

返回值

Returns an Open AL(Device) resource on success or FALSE on failure.

参见

  • openal_device_close() - Close an OpenAL device
  • openal_context_create() - Create an audio processing context

openal_device_close
openal_listener_get
OpenAL 函数


Retrieve a listener property

openal_device_open
openal_listener_set
OpenAL 函数
PHP 手册

openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_get — Retrieve a listener property

说明

mixed openal_listener_get ( int $property )

参数

property

Property to retrieve, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) 和
AL_ORIENTATION (array(float,float,float)).

返回值

Returns a float or array of floats (as appropriate), or FALSE on failure.

参见

  • openal_listener_set() - Set a listener property

openal_device_open
openal_listener_set
OpenAL 函数


Set a listener property

openal_listener_get
openal_source_create
OpenAL 函数
PHP 手册

openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_set — Set a listener property

说明

bool openal_listener_set ( int $property , mixed $setting )

参数

property

Property to set, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) 和
AL_ORIENTATION (array(float,float,float)).

setting

Value to set, either float, or an array of floats as appropriate.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_listener_get() - Retrieve a listener property

openal_listener_get
openal_source_create
OpenAL 函数


Generate a source resource

openal_listener_set
openal_source_destroy
OpenAL 函数
PHP 手册

openal_source_create

(PECL openal >= 0.1.0)

openal_source_create — Generate a source resource

说明

resource openal_source_create ( void )

返回值

Returns an Open AL(Source) resource on success or FALSE on failure.

参见

  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source
  • openal_source_destroy() - Destroy a source resource

openal_listener_set
openal_source_destroy
OpenAL 函数


Destroy a source resource

openal_source_create
openal_source_get
OpenAL 函数
PHP 手册

openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroy — Destroy a source resource

说明

bool openal_source_destroy ( resource $source )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_source_create() - Generate a source resource

openal_source_create
openal_source_get
OpenAL 函数


Retrieve an OpenAL source property

openal_source_destroy
openal_source_pause
OpenAL 函数
PHP 手册

openal_source_get

(PECL openal >= 0.1.0)

openal_source_get — Retrieve an OpenAL source property

说明

mixed openal_source_get ( resource $source , int $property )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to get, one of: AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

返回值

Returns the type associated with the property being retrieved or FALSE on failure.

参见

  • openal_source_create() - Generate a source resource
  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source

openal_source_destroy
openal_source_pause
OpenAL 函数


Pause the source

openal_source_get
openal_source_play
OpenAL 函数
PHP 手册

openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pause — Pause the source

说明

bool openal_source_pause ( resource $source )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_source_stop() - Stop playing the source
  • openal_source_play() - Start playing the source
  • openal_source_rewind() - Rewind the source

openal_source_get
openal_source_play
OpenAL 函数


Start playing the source

openal_source_pause
openal_source_rewind
OpenAL 函数
PHP 手册

openal_source_play

(PECL openal >= 0.1.0)

openal_source_play — Start playing the source

说明

bool openal_source_play ( resource $source )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source

openal_source_pause
openal_source_rewind
OpenAL 函数


Rewind the source

openal_source_play
openal_source_set
OpenAL 函数
PHP 手册

openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewind — Rewind the source

说明

bool openal_source_rewind ( resource $source )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_play() - Start playing the source

openal_source_play
openal_source_set
OpenAL 函数


Set source property

openal_source_rewind
openal_source_stop
OpenAL 函数
PHP 手册

openal_source_set

(PECL openal >= 0.1.0)

openal_source_set — Set source property

说明

bool openal_source_set ( resource $source , int $property , mixed $setting )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to set, one of: AL_BUFFER (OpenAL(Source)), AL_LOOPING (bool), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

Value to assign to specified property . Refer to the description of property for a description of the value(s) expected.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_source_create() - Generate a source resource
  • openal_source_get() - Retrieve an OpenAL source property
  • openal_source_play() - Start playing the source

openal_source_rewind
openal_source_stop
OpenAL 函数


Stop playing the source

openal_source_set
openal_stream
OpenAL 函数
PHP 手册

openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stop — Stop playing the source

说明

bool openal_source_stop ( resource $source )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openal_source_play() - Start playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source

openal_source_set
openal_stream
OpenAL 函数


Begin streaming on a source

openal_source_stop
身份认证服务
OpenAL 函数
PHP 手册

openal_stream

(PECL openal >= 0.1.0)

openal_stream — Begin streaming on a source

说明

resource openal_stream ( resource $source , int $format , int $rate )

参数

source

An Open AL(Source) resource (previously created by openal_source_create()).

format

Format of data , one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 和 AL_FORMAT_STEREO16

rate

Frequency of data to stream given in Hz.

返回值

Returns a stream resource on success, or FALSE on failure.

参见

  • openal_source_create() - Generate a source resource
  • fwrite() - 写入文件（可安全用于二进制文件）

openal_source_stop
身份认证服务
OpenAL 函数


身份认证服务

  • KADM5 — Kerberos V
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • KADM5 函数
  • Radius
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Radius 函数
openal_stream
KADM5
函数参考


Kerberos V

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
    • Constants for Attribute Flags
    • Constants for Options
  • 范例
    • KADM5 extension overview example
  • KADM5 函数
    • kadm5_chpass_principal — Changes the principal's password
    • kadm5_create_principal — Creates a kerberos principal with the given parameters
    • kadm5_delete_principal — Deletes a kerberos principal
    • kadm5_destroy — Closes the connection to the admin server and releases all related resources
    • kadm5_flush — Flush all changes to the Kerberos database
    • kadm5_get_policies — Gets all policies from the Kerberos database
    • kadm5_get_principal — Gets the principal's entries from the Kerberos database
    • kadm5_get_principals — Gets all principals from the Kerberos database
    • kadm5_init_with_password — Opens a connection to the KADM5 library
    • kadm5_modify_principal — Modifies a kerberos principal with the given parameters
身份认证服务
简介
身份认证服务


简介

These package allows you to access Kerberos V administration servers. You can create, modify, and delete Kerberos V principals and policies.

More information about Kerberos can be found at » http://web.mit.edu/kerberos/www/.

Documentation for Kerberos and KADM5 can be found at » http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.

KADM5
安装/配置
KADM5


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
KADM5


安装

These functions allow you to access Kerberos administration servers. In order to have these functions available, you must compile PHP with KADM5 support by using the --with-kadm5 configurable option. If you use this option without specifying the path to KADM5, PHP will use the built-in KADM5 client libraries. Users who run other applications that use KADM5 (for example, running PHP 4 and PHP 5 as concurrent apache modules, or auth-kadm5) should always specify the path to KADM5: --with-kadm5=/path/to/kadm5. This will force PHP to use the client libraries installed by KADM5, avoiding any conflicts.

需求
运行时配置
安装/配置


资源类型

This extension defines a KADM5 handle returned by kadm5_init_with_password().

运行时配置
预定义常量
安装/配置


预定义常量

Table of Contents

  • Constants for Attribute Flags
  • Constants for Options

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

资源类型
Constants for Attribute Flags
KADM5


Constants for Attribute Flags

The functions kadm5_create_principal(),
kadm5_modify_principal(), and
kadm5_modify_principal() allow to specify
special attributes using a bitfield. The symbols are defined below:

Attributes for use by the KDC
constant
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC

预定义常量
Constants for Options
预定义常量


Constants for Options

The functions kadm5_create_principal(),
kadm5_modify_principal(), and
kadm5_get_principal() allow to specify or return
principal's options as an associative array. The keys for the associative
array are defined as string constants below:

Options for creating/modifying/retrieving principals
constant | funcdef | description
KADM5_PRINCIPAL | long | The expire time of the princial as a Kerberos timestamp.
KADM5_PRINC_EXPIRE_TIME | long | The expire time of the princial as a Kerberos timestamp.
KADM5_LAST_PW_CHANGE | long | The time this principal's password was last changed.
KADM5_PW_EXPIRATION | long | The expire time of the principal's current password, as a Kerberos timestamp.
KADM5_MAX_LIFE | long | The maximum lifetime of any Kerberos ticket issued to this principal.
KADM5_MAX_RLIFE | long | The maximum renewable lifetime of any Kerberos ticket issued to or for this principal.
KADM5_MOD_NAME | string | The name of the Kerberos principal that most recently modified this principal.
KADM5_MOD_TIME | long | The time this principal was last modified, as a Kerberos timestamp.
KADM5_KVNO | long | The version of the principal's current key.
KADM5_POLICY | string | The name of the policy controlling this principal.
KADM5_CLEARPOLICY | long | Standard procedure is to assign the 'default' policy to new principals. KADM5_CLEARPOLICY suppresses this behaviour.
KADM5_LAST_SUCCESS | long | The KDC time of the last successfull AS_REQ.
KADM5_LAST_FAILED | long | The KDC time of the last failed AS_REQ.
KADM5_FAIL_AUTH_COUNT | long | The number of consecutive failed AS_REQs.
KADM5_RANDKEY | long | Generates a random password for the principal. The parameter password will be ignored.
KADM5_ATTRIBUTES | long | A bitfield of attributes for use by the KDC.

Constants for Attribute Flags
范例
预定义常量


范例

Table of Contents

  • KADM5 extension overview example
Constants for Options
KADM5 extension overview example
KADM5


KADM5 extension overview example

范例
KADM5 函数
范例
PHP 手册

This simple example shows how to connect, query, print resulting principals and disconnect from a KADM5 database.

Example #1 KADM5 extension overview example

<?php

  $handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

  print "<h1>get_principals</h1>\n";
  $principals = kadm5_get_principals($handle);
  for( $i=0; $i<count($principals); $i++)
      print "$principals[$i]<br>\n";

  print "<h1>get_policies</h1>\n";
  $policies = kadm5_get_policies($handle);
  for( $i=0; $i<count($policies); $i++)
      print "$policies[$i]<br>\n";

  print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  $options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );
  $keys = array_keys($options);
  for( $i=0; $i<count($keys); $i++) {
    $value = $options[$keys[$i]];
    print "$keys[$i]: $value<br>\n";
  }

  $options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

  kadm5_destroy($handle);
?>

范例
KADM5 函数
范例


KADM5 函数

Table of Contents

  • kadm5_chpass_principal — Changes the principal's password
  • kadm5_create_principal — Creates a kerberos principal with the given parameters
  • kadm5_delete_principal — Deletes a kerberos principal
  • kadm5_destroy — Closes the connection to the admin server and releases all related resources
  • kadm5_flush — Flush all changes to the Kerberos database
  • kadm5_get_policies — Gets all policies from the Kerberos database
  • kadm5_get_principal — Gets the principal's entries from the Kerberos database
  • kadm5_get_principals — Gets all principals from the Kerberos database
  • kadm5_init_with_password — Opens a connection to the KADM5 library
  • kadm5_modify_principal — Modifies a kerberos principal with the given parameters
KADM5 extension overview example
kadm5_chpass_principal
KADM5


Changes the principal's password

KADM5 函数
kadm5_create_principal
KADM5 函数
PHP 手册

kadm5_chpass_principal

(PECL kadm5 >= 0.2.3)

kadm5_chpass_principal — Changes the principal's password

说明

bool kadm5_chpass_principal ( resource $handle , string $principal , string $password )

kadm5_chpass_principal() sets the new password password for the principal .

参数

handle

A KADM5 handle.

principal

The principal.

password

The new password.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Example of changing principal's password

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_chpass_principal($handle, "burbach@GONICUS.LOCAL", "newpassword");

kadm5_destroy($handle);
?>

KADM5 函数
kadm5_create_principal
KADM5 函数


Creates a kerberos principal with the given parameters

kadm5_chpass_principal
kadm5_delete_principal
KADM5 函数
PHP 手册

kadm5_create_principal

(PECL kadm5 >= 0.2.3)

kadm5_create_principal — Creates a kerberos principal with the given parameters

说明

bool kadm5_create_principal ( resource $handle , string $principal [, string $password [, array $options ]] )

Creates a principal with the given password .

参数

handle

A KADM5 handle.

principal

The principal.

password

If password is omitted or is NULL, a random key will be generated.

options

It is possible to specify several optional parameters within the array options . Allowed are the following options: KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Example of principal's creation

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

参见

  • kadm5_modify_principal() - Modifies a kerberos principal with the given parameters
  • kadm5_delete_principal() - Deletes a kerberos principal

kadm5_chpass_principal
kadm5_delete_principal
KADM5 函数


Deletes a kerberos principal

kadm5_create_principal
kadm5_destroy
KADM5 函数
PHP 手册

kadm5_delete_principal

(PECL kadm5 >= 0.2.3)

kadm5_delete_principal — Deletes a kerberos principal

说明

bool kadm5_delete_principal ( resource $handle , string $principal )

Removes the principal from the Kerberos database.

参数

handle

A KADM5 handle.

principal

The removed principal.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 kadm5_delete_principal() example

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_delete_principal($handle, "burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

参见

  • kadm5_modify_principal() - Modifies a kerberos principal with the given parameters
  • kadm5_create_principal() - Creates a kerberos principal with the given parameters

kadm5_create_principal
kadm5_destroy
KADM5 函数


Closes the connection to the admin server and releases all related resources

kadm5_delete_principal
kadm5_flush
KADM5 函数
PHP 手册

kadm5_destroy

(PECL kadm5 >= 0.2.3)

kadm5_destroy — Closes the connection to the admin server and releases all related resources

说明

bool kadm5_destroy ( resource $handle )

Closes the connection to the admin server and releases all related resources.

参数

handle

A KADM5 handle.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • kadm5_init_with_password() - Opens a connection to the KADM5 library

kadm5_delete_principal
kadm5_flush
KADM5 函数


Flush all changes to the Kerberos database

kadm5_destroy
kadm5_get_policies
KADM5 函数
PHP 手册

kadm5_flush

(PECL kadm5 >= 0.2.3)

kadm5_flush — Flush all changes to the Kerberos database

说明

bool kadm5_flush ( resource $handle )

Flush all changes to the Kerberos database, leaving the connection to the Kerberos admin server open.

参数

handle

A KADM5 handle.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

kadm5_destroy
kadm5_get_policies
KADM5 函数


Gets all policies from the Kerberos database

kadm5_flush
kadm5_get_principal
KADM5 函数
PHP 手册

kadm5_get_policies

(PECL kadm5 >= 0.2.3)

kadm5_get_policies — Gets all policies from the Kerberos database

说明

array kadm5_get_policies ( resource $handle )

Gets an array containing the policies's names.

参数

handle

A KADM5 handle.

返回值

Returns array of policies on success, or FALSE on failure.

范例

Example #1 kadm5_get_policies() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_policies</h1>\n";
foreach (kadm5_get_policies($handle) as $policy) {
    echo "$policy<br />\n";
}

kadm5_destroy($handle);
?>

kadm5_flush
kadm5_get_principal
KADM5 函数


Gets the principal's entries from the Kerberos database

kadm5_get_policies
kadm5_get_principals
KADM5 函数
PHP 手册

kadm5_get_principal

(PECL kadm5 >= 0.2.3)

kadm5_get_principal — Gets the principal's entries from the Kerberos database

说明

array kadm5_get_principal ( resource $handle , string $principal )

Gets the principal's entries from the Kerberos database.

参数

handle

A KADM5 handle.

principal

The principal.

返回值

Returns array of options containing the following keys: KADM5_PRINCIPAL, KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_MOD_NAME, KADM5_MOD_TIME, KADM5_KVNO, KADM5_POLICY, KADM5_MAX_RLIFE, KADM5_LAST_SUCCESS, KADM5_LAST_FAILED, KADM5_FAIL_AUTH_COUNT on success, or FALSE on failure.

范例

Example #1 kadm5_get_principal() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

$options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );

foreach ($options as $key => $value) {
    echo "$key: $value<br />\n";
}

kadm5_destroy($handle);
?>

参见

  • kadm5_get_principals() - Gets all principals from the Kerberos database

kadm5_get_policies
kadm5_get_principals
KADM5 函数


Gets all principals from the Kerberos database

kadm5_get_principal
kadm5_init_with_password
KADM5 函数
PHP 手册

kadm5_get_principals

(PECL kadm5 >= 0.2.3)

kadm5_get_principals — Gets all principals from the Kerberos database

说明

array kadm5_get_principals ( resource $handle )

kadm5_get_principals() returns an array containing the principals's names.

参数

handle

A KADM5 handle.

返回值

Returns array of principals on success, or FALSE on failure.

范例

Example #1 kadm5_get_principals() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principals</h1>\n";
foreach (kadm5_get_principals($handle) as $principal) {
    echo "$principal<br />\n";
}

kadm5_destroy($handle);
?>

参见

  • kadm5_get_principal() - Gets the principal's entries from the Kerberos database

kadm5_get_principal
kadm5_init_with_password
KADM5 函数


Opens a connection to the KADM5 library

kadm5_get_principals
kadm5_modify_principal
KADM5 函数
PHP 手册

kadm5_init_with_password

(PECL kadm5 >= 0.2.3)

kadm5_init_with_password — Opens a connection to the KADM5 library

说明

resource kadm5_init_with_password ( string $admin_server , string $realm , string $principal , string $password )

Opens a connection with the KADM5 library using the principal and the given password to obtain initial credentials from the admin_server .

参数

admin_server

The server.

realm

Defines the authentication domain for the connection.

principal

The principal.

password

If password is omitted or is NULL, a random key will be generated.

返回值

Returns a KADM5 handle on success, or FALSE on failure.

范例

Example #1 KADM5 initialization example

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

注释

Note: Connection should be closed after use with kadm5_destroy().

参见

  • kadm5_destroy() - Closes the connection to the admin server and releases all related resources

kadm5_get_principals
kadm5_modify_principal
KADM5 函数


Modifies a kerberos principal with the given parameters

kadm5_init_with_password
Radius
KADM5 函数
PHP 手册

kadm5_modify_principal

(PECL kadm5 >= 0.2.3)

kadm5_modify_principal — Modifies a kerberos principal with the given parameters

说明

bool kadm5_modify_principal ( resource $handle , string $principal , array $options )

Modifies a principal according to the given options .

参数

handle

A KADM5 handle.

principal

The principal.

options

It is possible to specify several optional parameters within the array options . Allowed are the following options: KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE. KADM5_FAIL_AUTH_COUNT.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Example of modifying principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH;
$options = array(KADM5_PRINC_EXPIRE_TIME => 3451234,
                 KADM5_POLICY => "gonicus",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

kadm5_destroy($handle);
?>

参见

  • kadm5_create_principal() - Creates a kerberos principal with the given parameters
  • kadm5_delete_principal() - Deletes a kerberos principal

kadm5_init_with_password
Radius
KADM5 函数


Radius

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Radius 函数
    • radius_acct_open — Creates a Radius handle for accounting
    • radius_add_server — Adds a server
    • radius_auth_open — Creates a Radius handle for authentication
    • radius_close — Frees all ressources
    • radius_config — Causes the library to read the given configuration file
    • radius_create_request — Create accounting or authentication request
    • radius_cvt_addr — Converts raw data to IP-Address
    • radius_cvt_int — Converts raw data to integer
    • radius_cvt_string — Converts raw data to string
    • radius_demangle_mppe_key — Derives mppe-keys from mangled data
    • radius_demangle — Demangles data
    • radius_get_attr — Extracts an attribute
    • radius_get_vendor_attr — Extracts a vendor specific attribute
    • radius_put_addr — Attaches an IP-Address attribute
    • radius_put_attr — Attaches a binary attribute
    • radius_put_int — Attaches an integer attribute
    • radius_put_string — Attaches a string attribute
    • radius_put_vendor_addr — Attaches a vendor specific IP-Address attribute
    • radius_put_vendor_attr — Attaches a vendor specific binary attribute
    • radius_put_vendor_int — Attaches a vendor specific integer attribute
    • radius_put_vendor_string — Attaches a vendor specific string attribute
    • radius_request_authenticator — Returns the request authenticator
    • radius_send_request — Sends the request and waites for a reply
    • radius_server_secret — Returns the shared secret
    • radius_strerror — Returns an error message
kadm5_modify_principal
简介
身份认证服务


简介

This package is based on the libradius of FreeBSD. This PECL adds full support for Radius Authentication (» RFC 2865) and Radius Accounting (» RFC 2866). This package is available for Unix (tested on FreeBSD and Linux) and for Windows.

Note: An exact description for libradius can be found » here. A detailed description of the configuration file can be found » here.

Radius
安装/配置
Radius


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Radius


安装

Howto install the package?

  • untar the package (usually into php4/ext)
  • rename radius-x.x to radius
  • run ./buildconf in php4
  • run ./configure --enable-radius
  • make; make install

or if you would like to have it as .so:

  • untar the package
  • run phpize in the radius-x.x directory
  • run ./configure in the radius-x.x directory
  • make; make install

For Windows I recommend to use the php_radius.dll from » http://snaps.php.net/. 可以从不同的 PECL 页面（选择适合自己 PHP 版本的库）取得未绑定的 PECL 扩展：» PECL for PHP 4.3.x，» PECL for PHP 5.0.x 或 » PECL Unstable。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

RADIUS_ACCESS_REQUEST ()
Authentication Request
RADIUS_ACCESS_ACCEPT ()
Access accepted
RADIUS_ACCESS_REJECT ()
Access rejected
RADIUS_ACCOUNTING_REQUEST ()
Accounting request
RADIUS_ACCOUNTING_RESPONSE ()
Accounting response
RADIUS_ACCESS_CHALLENGE ()
Accsess challenge
RADIUS_USER_NAME (string)
Username
RADIUS_USER_PASSWORD (string)
Password
RADIUS_CHAP_PASSWORD (string)
Chap Password: chappass = md5(ident + plaintextpass + challenge)
RADIUS_NAS_IP_ADDRESS (string)
NAS IP-Adress
RADIUS_NAS_PORT (int)
NAS Port
RADIUS_SERVICE_TYPE (int)

Type of Service, one of:

  • RADIUS_LOGIN
  • RADIUS_FRAMED
  • RADIUS_CALLBACK_LOGIN
  • RADIUS_CALLBACK_FRAMED
  • RADIUS_OUTBOUND
  • RADIUS_ADMINISTRATIVE
  • RADIUS_NAS_PROMPT
  • RADIUS_AUTHENTICATE_ONLY
  • RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (int)

Framed Protocol, one of:

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (string)
IP-Address
RADIUS_FRAMED_IP_NETMASK (string)
Netmask
RADIUS_FRAMED_ROUTING (int)
Routing
RADIUS_FILTER_ID (string)
Filter ID
RADIUS_FRAMED_MTU (int)
MTU
RADIUS_FRAMED_COMPRESSION (int)

Compression, one of:

  • RADIUS_COMP_NONE
  • RADIUS_COMP_VJ
  • RADIUS_COMP_IPXHDR

RADIUS_LOGIN_IP_HOST (string)
Login IP Host
RADIUS_LOGIN_SERVICE (int)
Login Service
RADIUS_LOGIN_TCP_PORT (int)
Login TCP Port
RADIUS_REPLY_MESSAGE (string)
Reply Message
RADIUS_CALLBACK_NUMBER (string)
Callback Number
RADIUS_CALLBACK_ID (string)
Callback ID
RADIUS_FRAMED_ROUTE (string)
Framed Route
RADIUS_FRAMED_IPX_NETWORK (string)
Framed IPX Network
RADIUS_STATE (string)
State
RADIUS_CLASS (int)
Class
RADIUS_VENDOR_SPECIFIC (int)
Vendor specific attribute
RADIUS_SESSION_TIMEOUT (int)
Session timeout
RADIUS_IDLE_TIMEOUT (int)
Idle timeout
RADIUS_TERMINATION_ACTION (int)
Termination action
RADIUS_CALLED_STATION_ID (int)
Called Station Id
RADIUS_CALLING_STATION_ID (string)
Calling Station Id
RADIUS_NAS_IDENTIFIER (int)
NAS ID
RADIUS_PROXY_STATE (int)
Proxy State
RADIUS_LOGIN_LAT_SERVICE (int)
Login LAT Service
RADIUS_LOGIN_LAT_NODE (int)
Login LAT Node
RADIUS_LOGIN_LAT_GROUP (int)
Login LAT Group
RADIUS_FRAMED_APPLETALK_LINK (int)
Framed Appletalk Link
RADIUS_FRAMED_APPLETALK_NETWORK (int)
Framed Appletalk Network
RADIUS_FRAMED_APPLETALK_ZONE (int)
Framed Appletalk Zone
RADIUS_CHAP_CHALLENGE (string)
Challenge
RADIUS_NAS_PORT_TYPE (int)

NAS port type, one of:

  • RADIUS_ASYNC
  • RADIUS_SYNC
  • RADIUS_ISDN_SYNC
  • RADIUS_ISDN_ASYNC_V120
  • RADIUS_ISDN_ASYNC_V110
  • RADIUS_VIRTUAL
  • RADIUS_PIAFS
  • RADIUS_HDLC_CLEAR_CHANNEL
  • RADIUS_X_25
  • RADIUS_X_75
  • RADIUS_G_3_FAX
  • RADIUS_SDSL
  • RADIUS_ADSL_CAP
  • RADIUS_ADSL_DMT
  • RADIUS_IDSL
  • RADIUS_ETHERNET
  • RADIUS_XDSL
  • RADIUS_CABLE
  • RADIUS_WIRELESS_OTHER
  • RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (int)
Port Limit
RADIUS_LOGIN_LAT_PORT (int)
Login LAT Port
RADIUS_CONNECT_INFO (string)
Connect info
RADIUS_ACCT_STATUS_TYPE (int)

Accounting status type, one of:

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (int)
Accounting delay time
RADIUS_ACCT_INPUT_OCTETS (int)
Accounting input bytes
RADIUS_ACCT_OUTPUT_OCTETS (int)
Accounting output bytes
RADIUS_ACCT_SESSION_ID (int)
Accounting session ID
RADIUS_ACCT_AUTHENTIC (int)

Accounting authentic, one of:

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)
Accounting session time
RADIUS_ACCT_INPUT_PACKETS (int)
Accounting input packets
RADIUS_ACCT_OUTPUT_PACKETS (int)
Accounting output packets
RADIUS_ACCT_TERMINATE_CAUSE (int)

Accounting terminate cause, one of:

  • RADIUS_TERM_USER_REQUEST
  • RADIUS_TERM_LOST_CARRIER
  • RADIUS_TERM_LOST_SERVICE
  • RADIUS_TERM_IDLE_TIMEOUT
  • RADIUS_TERM_SESSION_TIMEOUT
  • RADIUS_TERM_ADMIN_RESET
  • RADIUS_TERM_ADMIN_REBOOT
  • RADIUS_TERM_PORT_ERROR
  • RADIUS_TERM_NAS_ERROR
  • RADIUS_TERM_NAS_REQUEST
  • RADIUS_TERM_NAS_REBOOT
  • RADIUS_TERM_PORT_UNNEEDED
  • RADIUS_TERM_PORT_PREEMPTED
  • RADIUS_TERM_PORT_SUSPENDED
  • RADIUS_TERM_SERVICE_UNAVAILABLE
  • RADIUS_TERM_CALLBACK
  • RADIUS_TERM_USER_ERROR
  • RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (string)
Accounting multi session ID
RADIUS_ACCT_LINK_COUNT (int)
Accounting link count
RADIUS_VENDOR_MICROSOFT (int)

Microsoft specific vendor attributes (» RFC 2548), one of:

  • RADIUS_MICROSOFT_MS_CHAP_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP_ERROR
  • RADIUS_MICROSOFT_MS_CHAP_PW_1
  • RADIUS_MICROSOFT_MS_CHAP_PW_2
  • RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
  • RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
  • RADIUS_MICROSOFT_MS_RAS_VENDOR
  • RADIUS_MICROSOFT_MS_CHAP_DOMAIN
  • RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
  • RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
  • RADIUS_MICROSOFT_MS_BAP_USAGE
  • RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
  • RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
  • RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
  • RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
  • RADIUS_MICROSOFT_MS_RAS_VERSION
  • RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
  • RADIUS_MICROSOFT_MS_FILTER
  • RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
  • RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
  • RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
  • RADIUS_MICROSOFT_MS_CHAP2_PW
  • RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_ARAP_CHALLENGE

资源类型
范例
Radius


范例

Howto start?

  • get a radius resource
  • configure the library
  • create the request
  • put attributes
  • send the request
  • receive attributes
  • close the radius resource (optional)

Take also a look at the examples in this package.

The package contains an example php script. This script demonstrates howto authenticate with radius using PAP or CHAP (md5). If you authenticate with Microsoft Radius servers then its not possible to use CHAP (md5). If you would like to authenticate with Microsoft Servers you have to use MS-CHAPv1 or MS-CHAPv2, but its more complicated, because you need md4, sha1 and des to generate the right data. The enclosed examples demonstrate all authentication-methods, including MS-CHAPv1 and MS-CHAPv2. To get the MS-CHAP to work you need the mcrypt and the mhash extension, starting with version 1.2 of the package, the mcrypt extension is no longer needed.

预定义常量
Radius 函数
Radius


Radius 函数

Contact Information

If you have comments, bugfixes, enhancements or want to help to develop this you can send me a mail at » mbretter@php.net. Binaries for Windows can be downloaded from » here.

Table of Contents

  • radius_acct_open — Creates a Radius handle for accounting
  • radius_add_server — Adds a server
  • radius_auth_open — Creates a Radius handle for authentication
  • radius_close — Frees all ressources
  • radius_config — Causes the library to read the given configuration file
  • radius_create_request — Create accounting or authentication request
  • radius_cvt_addr — Converts raw data to IP-Address
  • radius_cvt_int — Converts raw data to integer
  • radius_cvt_string — Converts raw data to string
  • radius_demangle_mppe_key — Derives mppe-keys from mangled data
  • radius_demangle — Demangles data
  • radius_get_attr — Extracts an attribute
  • radius_get_vendor_attr — Extracts a vendor specific attribute
  • radius_put_addr — Attaches an IP-Address attribute
  • radius_put_attr — Attaches a binary attribute
  • radius_put_int — Attaches an integer attribute
  • radius_put_string — Attaches a string attribute
  • radius_put_vendor_addr — Attaches a vendor specific IP-Address attribute
  • radius_put_vendor_attr — Attaches a vendor specific binary attribute
  • radius_put_vendor_int — Attaches a vendor specific integer attribute
  • radius_put_vendor_string — Attaches a vendor specific string attribute
  • radius_request_authenticator — Returns the request authenticator
  • radius_send_request — Sends the request and waites for a reply
  • radius_server_secret — Returns the shared secret
  • radius_strerror — Returns an error message
范例
radius_acct_open
Radius


Creates a Radius handle for accounting

Radius 函数
radius_add_server
Radius 函数
PHP 手册

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Creates a Radius handle for accounting

说明

resource radius_acct_open ( void )

返回值

Returns a handle on success, FALSE on error. This function only fails if insufficient memory is available.

范例

Example #1 radius_acct_open() example

<?php
$res = radius_acct_open ()
    or die ("Could not create handle");
print("Handle successfully created");
?>

Radius 函数
radius_add_server
Radius 函数


Adds a server

radius_acct_open
radius_auth_open
Radius 函数
PHP 手册

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Adds a server

说明

bool radius_add_server ( resource $radius_handle , string $hostname , int $port , string $secret , int $timeout , int $max_tries )

radius_add_server() may be called multiple times, and it may be used together with radius_config(). At most 10 servers may be specified. When multiple servers are given, they are tried in round-robin fashion until a valid response is received, or until each server's max_tries limit has been reached.

参数

radius_handle

hostname

The hostname parameter specifies the server host, either as a fully qualified domain name or as a dotted-quad IP address in text form.

port

The port specifies the UDP port to contact on the server. If port is given as 0, the library looks up the radius/udp or radacct/udp service in the network services database, and uses the port found there. If no entry is found, the library uses the standard Radius ports, 1812 for authentication and 1813 for accounting.

secret

The shared secret for the server host is passed to the secret parameter. The Radius protocol ignores all but the leading 128 bytes of the shared secret.

timeout

The timeout for receiving replies from the server is passed to the timeout parameter, in units of seconds.

max_tries

The maximum number of repeated requests to make before giving up is passed into the max_tries .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 radius_add_server() example

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br>";
    exit;
}
?>

参见

  • radius_config() - Causes the library to read the given configuration file

radius_acct_open
radius_auth_open
Radius 函数


Creates a Radius handle for authentication

radius_add_server
radius_close
Radius 函数
PHP 手册

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Creates a Radius handle for authentication

说明

resource radius_auth_open ( void )

返回值

Returns a handle on success, FALSE on error. This function only fails if insufficient memory is available.

范例

Example #1 radius_auth_open() example

<?php
$radh = radius_auth_open()
    or die ("Could not create handle");
echo "Handle successfully created";
?>

radius_add_server
radius_close
Radius 函数


Frees all ressources

radius_auth_open
radius_config
Radius 函数
PHP 手册

radius_close

(PECL radius >= 1.1.0)

radius_close — Frees all ressources

说明

bool radius_close ( resource $radius_handle )

It is not needed to call this function because php frees all resources at the end of each request.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

radius_auth_open
radius_config
Radius 函数


Causes the library to read the given configuration file

radius_close
radius_create_request
Radius 函数
PHP 手册

radius_config

(PECL radius >= 1.1.0)

radius_config — Causes the library to read the given configuration file

说明

bool radius_config ( resource $radius_handle , string $file )

Before issuing any Radius requests, the library must be made aware of the servers it can contact. The easiest way to configure the library is to call radius_config(). radius_config() causes the library to read a configuration file whose format is described in » radius.conf.

参数

radius_handle

file

The pathname of the configuration file is passed as the file argument to radius_config(). The library can also be configured programmatically by calls to radius_add_server().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • radius_add_server() - Adds a server

radius_close
radius_create_request
Radius 函数


Create accounting or authentication request

radius_config
radius_cvt_addr
Radius 函数
PHP 手册

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Create accounting or authentication request

说明

bool radius_create_request ( resource $radius_handle , int $type )

A Radius request consists of a code specifying the kind of request, and zero or more attributes which provide additional information. To begin constructing a new request, call radius_create_request().

Note: Attention: You must call this function, before you can put any attribute!

参数

radius_handle

Type is RADIUS_ACCESS_REQUEST or RADIUS_ACCOUNTING_REQUEST.

type

Its description

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 radius_create_request() example

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

参见

  • radius_send_request() - Sends the request and waites for a reply

radius_config
radius_cvt_addr
Radius 函数


Converts raw data to IP-Address

radius_create_request
radius_cvt_int
Radius 函数
PHP 手册

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Converts raw data to IP-Address

说明

string radius_cvt_addr ( string $data )

范例

Example #1 radius_cvt_addr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_IP_ADDRESS:
        $ip = radius_cvt_addr($data);
        echo "IP: $ip<br>\n";
        break;

    case RADIUS_FRAMED_IP_NETMASK:
        $mask = radius_cvt_addr($data);
        echo "MASK: $mask<br>\n";
        break;
    }
}
?>

参见

  • radius_cvt_int() - Converts raw data to integer
  • radius_cvt_string() - Converts raw data to string

radius_create_request
radius_cvt_int
Radius 函数


Converts raw data to integer

radius_cvt_addr
radius_cvt_string
Radius 函数
PHP 手册

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Converts raw data to integer

说明

int radius_cvt_int ( string $data )

范例

Example #1 radius_cvt_int() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_MTU:
        $mtu = radius_cvt_int($data);
        echo "MTU: $mtu<br>\n";
        break;
    }
}
?>

参见

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_string() - Converts raw data to string

radius_cvt_addr
radius_cvt_string
Radius 函数


Converts raw data to string

radius_cvt_int
radius_demangle_mppe_key
Radius 函数
PHP 手册

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Converts raw data to string

说明

string radius_cvt_string ( string $data )

范例

Example #1 radius_cvt_string() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FILTER_ID:
        $id = radius_cvt_string($data);
        echo "Filter ID: $id<br>\n";
        break;
    }
}
?>

参见

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_int() - Converts raw data to integer

radius_cvt_int
radius_demangle_mppe_key
Radius 函数


Derives mppe-keys from mangled data

radius_cvt_string
radius_demangle
Radius 函数
PHP 手册

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Derives mppe-keys from mangled data

说明

string radius_demangle_mppe_key ( resource $radius_handle , string $mangled )

When using MPPE with MS-CHAPv2, the send- and recv-keys are mangled (see » RFC 2548), however this function is useless, because I don't think that there is or will be a PPTP-MPPE implementation in PHP.

返回值

Returns the demangled string, or FALSE on error.

radius_cvt_string
radius_demangle
Radius 函数


Demangles data

radius_demangle_mppe_key
radius_get_attr
Radius 函数
PHP 手册

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Demangles data

说明

string radius_demangle ( resource $radius_handle , string $mangled )

Some data (Passwords, MS-CHAPv1 MPPE-Keys) is mangled for security reasons, and must be demangled before you can use them.

返回值

Returns the demangled string, or FALSE on error.

radius_demangle_mppe_key
radius_get_attr
Radius 函数


Extracts an attribute

radius_demangle
radius_get_vendor_attr
Radius 函数
PHP 手册

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Extracts an attribute

说明

mixed radius_get_attr ( resource $radius_handle )

Like Radius requests, each response may contain zero or more attributes. After a response has been received successfully by radius_send_request(), its attributes can be extracted one by one using radius_get_attr(). Each time radius_get_attr() is called, it gets the next attribute from the current response.

返回值

Returns an associative array containing the attribute-type and the data, or error number <= 0.

范例

Example #1 radius_get_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
}
?>

参见

  • radius_put_attr() - Attaches a binary attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute
  • radius_send_request() - Sends the request and waites for a reply

radius_demangle
radius_get_vendor_attr
Radius 函数


Extracts a vendor specific attribute

radius_get_attr
radius_put_addr
Radius 函数
PHP 手册

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Extracts a vendor specific attribute

说明

array radius_get_vendor_attr ( string $data )

If radius_get_attr() returns RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() may be called to determine the vendor.

返回值

Returns an associative array containing the attribute-type, vendor and the data, or FALSE on error.

范例

Example #1 radius_get_vendor_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
    if ($attr == RADIUS_VENDOR_SPECIFIC) {

        $resv = radius_get_vendor_attr($data);
        if (is_array($resv)) {
            $vendor = $resv['vendor'];
            $attrv = $resv['attr'];
            $datav = $resv['data'];
            printf("Got Vendor Attr:%d %d Bytes %s\n", $attrv, strlen($datav), bin2hex($datav));
        }

    }
}
?>

参见

  • radius_get_attr() - Extracts an attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute

radius_get_attr
radius_put_addr
Radius 函数


Attaches an IP-Address attribute

radius_get_vendor_attr
radius_put_attr
Radius 函数
PHP 手册

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Attaches an IP-Address attribute

说明

bool radius_put_addr ( resource $radius_handle , int $type , string $addr )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

radius_get_vendor_attr
radius_put_attr
Radius 函数


Attaches a binary attribute

radius_put_addr
radius_put_int
Radius 函数
PHP 手册

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Attaches a binary attribute

说明

bool radius_put_attr ( resource $radius_handle , int $type , string $value )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 radius_put_attr() example

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

参见

  • radius_get_attr() - Extracts an attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute

radius_put_addr
radius_put_int
Radius 函数


Attaches an integer attribute

radius_put_attr
radius_put_string
Radius 函数
PHP 手册

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Attaches an integer attribute

说明

bool radius_put_int ( resource $radius_handle , int $type , int $value )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 radius_put_int() example

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
   echo 'RadiusError:' . radius_strerror($res). "\n<br />";
   exit;
}
?>

参见

  • radius_put_string() - Attaches a string attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute

radius_put_attr
radius_put_string
Radius 函数


Attaches a string attribute

radius_put_int
radius_put_vendor_addr
Radius 函数
PHP 手册

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Attaches a string attribute

说明

bool radius_put_string ( resource $radius_handle , int $type , string $value )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 radius_put_string() example

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

参见

  • radius_put_int() - Attaches an integer attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute

radius_put_int
radius_put_vendor_addr
Radius 函数


Attaches a vendor specific IP-Address attribute

radius_put_string
radius_put_vendor_attr
Radius 函数
PHP 手册

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Attaches a vendor specific IP-Address attribute

说明

bool radius_put_vendor_addr ( resource $radius_handle , int $vendor , int $type , string $addr )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

radius_put_string
radius_put_vendor_attr
Radius 函数


Attaches a vendor specific binary attribute

radius_put_vendor_addr
radius_put_vendor_int
Radius 函数
PHP 手册

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Attaches a vendor specific binary attribute

说明

bool radius_put_vendor_attr ( resource $radius_handle , int $vendor , int $type , string $value )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 radius_put_vendor_attr() example

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

radius_put_vendor_addr
radius_put_vendor_int
Radius 函数


Attaches a vendor specific integer attribute

radius_put_vendor_attr
radius_put_vendor_string
Radius 函数
PHP 手册

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Attaches a vendor specific integer attribute

说明

bool radius_put_vendor_int ( resource $radius_handle , int $vendor , int $type , int $value )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

radius_put_vendor_attr
radius_put_vendor_string
Radius 函数


Attaches a vendor specific string attribute

radius_put_vendor_int
radius_request_authenticator
Radius 函数
PHP 手册

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Attaches a vendor specific string attribute

说明

bool radius_put_vendor_string ( resource $radius_handle , int $vendor , int $type , string $value )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

radius_put_vendor_int
radius_request_authenticator
Radius 函数


Returns the request authenticator

radius_put_vendor_string
radius_send_request
Radius 函数
PHP 手册

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Returns the request authenticator

说明

string radius_request_authenticator ( resource $radius_handle )

The request authenticator is needed for demangling mangled data like passwords and encryption-keys.

返回值

Returns the request authenticator as string, or FALSE on error.

参见

  • radius_demangle() - Demangles data

radius_put_vendor_string
radius_send_request
Radius 函数


Sends the request and waites for a reply

radius_request_authenticator
radius_server_secret
Radius 函数
PHP 手册

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Sends the request and waites for a reply

说明

int radius_send_request ( resource $radius_handle )

After the Radius request has been constructed, it is sent by radius_send_request().

The radius_send_request() function sends the request and waits for a valid reply, retrying the defined servers in round-robin fashion as necessary.

返回值

If a valid response is received, radius_send_request() returns the Radius code which specifies the type of the response. This will typically be RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT, or RADIUS_ACCESS_CHALLENGE. If no valid response is received, radius_send_request() returns FALSE.

参见

  • radius_create_request() - Create accounting or authentication request

radius_request_authenticator
radius_server_secret
Radius 函数


Returns the shared secret

radius_send_request
radius_strerror
Radius 函数
PHP 手册

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Returns the shared secret

说明

string radius_server_secret ( resource $radius_handle )

The shared secret is needed as salt for demangling mangled data like passwords and encryption-keys.

返回值

Returns the server's shared secret as string, or FALSE on error.

radius_send_request
radius_strerror
Radius 函数


Returns an error message

radius_server_secret
日历和事件相关扩展
Radius 函数
PHP 手册

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Returns an error message

说明

string radius_strerror ( resource $radius_handle )

If Radius-functions fail then they record an error message. This error message can be retrieved with this function.

返回值

Returns error messages as string from failed radius functions.

radius_server_secret
日历和事件相关扩展
Radius 函数


日历和事件相关扩展

  • Calendar
    • 简介
    • 安装/配置
    • 预定义常量
    • Calendar 函数
  • Date/Time — Date and Time
    • 简介
    • 安装/配置
    • 预定义常量
    • List of Supported Timezones
    • DateTime — The DateTime class
    • DateTimeZone — The DateTimeZone class
    • DateInterval — The DateInterval class
    • DatePeriod — The DatePeriod class
    • Date/Time 函数
radius_strerror
Calendar
函数参考


Calendar

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Calendar 函数
    • cal_days_in_month — Return the number of days in a month for a given year and calendar
    • cal_from_jd — Converts from Julian Day Count to a supported calendar
    • cal_info — Returns information about a particular calendar
    • cal_to_jd — Converts from a supported calendar to Julian Day Count
    • easter_date — Get Unix timestamp for midnight on Easter of a given year
    • easter_days — Get number of days after March 21 on which Easter falls for a given year
    • FrenchToJD — Converts a date from the French Republican Calendar to a Julian Day Count
    • GregorianToJD — Converts a Gregorian date to Julian Day Count
    • JDDayOfWeek — Returns the day of the week
    • JDMonthName — Returns a month name
    • JDToFrench — Converts a Julian Day Count to the French Republican Calendar
    • JDToGregorian — Converts Julian Day Count to Gregorian date
    • jdtojewish — Converts a Julian day count to a Jewish calendar date
    • JDToJulian — Converts a Julian Day Count to a Julian Calendar Date
    • jdtounix — Convert Julian Day to Unix timestamp
    • JewishToJD — Converts a date in the Jewish Calendar to Julian Day Count
    • JulianToJD — Converts a Julian Calendar date to Julian Day Count
    • unixtojd — Convert Unix timestamp to Julian Day
日历和事件相关扩展
简介
日历和事件相关扩展


简介

The calendar extension presents a series of functions to simplify converting between different calendar formats. The intermediary or standard it is based on is the Julian Day Count. The Julian Day Count is a count of days starting from January 1st, 4713 B.C. To convert between calendar systems, you must first convert to Julian Day Count, then to the calendar system of your choice. Julian Day Count is very different from the Julian Calendar! For more information on Julian Day Count, visit » http://www.hermetic.ch/cal_stud/jdn.htm. For more information on calendar systems visit » http://www.fourmilab.ch/documents/calendar/. Excerpts from this page are included in these instructions, and are in quotes.

Calendar
安装/配置
Calendar


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Calendar


安装

要使用本类函数，需要在编译 PHP 时加上 --enable-calendar。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

CAL_GREGORIAN (integer)
CAL_JULIAN (integer)
CAL_JEWISH (integer)
CAL_FRENCH (integer)
CAL_NUM_CALS (integer)
CAL_DOW_DAYNO (integer)
CAL_DOW_SHORT (integer)
CAL_DOW_LONG (integer)
CAL_MONTH_GREGORIAN_SHORT (integer)
CAL_MONTH_GREGORIAN_LONG (integer)
CAL_MONTH_JULIAN_SHORT (integer)
CAL_MONTH_JULIAN_LONG (integer)
CAL_MONTH_JEWISH (integer)
CAL_MONTH_FRENCH (integer)

以下常量自 PHP 4.3.0 起可用：

CAL_EASTER_DEFAULT (integer)
CAL_EASTER_ROMAN (integer)
CAL_EASTER_ALWAYS_GREGORIAN (integer)
CAL_EASTER_ALWAYS_JULIAN (integer)

以下常量自 PHP 5.0.0 起可用：

CAL_JEWISH_ADD_ALAFIM_GERESH (integer)
CAL_JEWISH_ADD_ALAFIM (integer)
CAL_JEWISH_ADD_GERESHAYIM (integer)
资源类型
Calendar 函数
Calendar


Calendar 函数

Table of Contents

  • cal_days_in_month — Return the number of days in a month for a given year and calendar
  • cal_from_jd — Converts from Julian Day Count to a supported calendar
  • cal_info — Returns information about a particular calendar
  • cal_to_jd — Converts from a supported calendar to Julian Day Count
  • easter_date — Get Unix timestamp for midnight on Easter of a given year
  • easter_days — Get number of days after March 21 on which Easter falls for a given year
  • FrenchToJD — Converts a date from the French Republican Calendar to a Julian Day Count
  • GregorianToJD — Converts a Gregorian date to Julian Day Count
  • JDDayOfWeek — Returns the day of the week
  • JDMonthName — Returns a month name
  • JDToFrench — Converts a Julian Day Count to the French Republican Calendar
  • JDToGregorian — Converts Julian Day Count to Gregorian date
  • jdtojewish — Converts a Julian day count to a Jewish calendar date
  • JDToJulian — Converts a Julian Day Count to a Julian Calendar Date
  • jdtounix — Convert Julian Day to Unix timestamp
  • JewishToJD — Converts a date in the Jewish Calendar to Julian Day Count
  • JulianToJD — Converts a Julian Calendar date to Julian Day Count
  • unixtojd — Convert Unix timestamp to Julian Day
预定义常量
cal_days_in_month
Calendar


Return the number of days in a month for a given year and calendar

Calendar 函数
cal_from_jd
Calendar 函数
PHP 手册

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_month — Return the number of days in a month for a given year and calendar

说明

int cal_days_in_month ( int $calendar , int $month , int $year )

This function will return the number of days in the month of year for the specified calendar .

参数

calendar

Calendar to use for calculation

month

Month in the selected calendar

year

Year in the selected calendar

返回值

The length in days of the selected month in the given calendar

范例

Example #1 cal_days_in_month() example

<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>

Calendar 函数
cal_from_jd
Calendar 函数


Converts from Julian Day Count to a supported calendar

cal_days_in_month
cal_info
Calendar 函数
PHP 手册

cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jd — Converts from Julian Day Count to a supported calendar

说明

array cal_from_jd ( int $jd , int $calendar )

cal_from_jd() converts the Julian day given in jd into a date of the specified calendar . Supported calendar values are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

参数

jd

Julian day as integer

calendar

Calendar to convert to

返回值

Returns an array containing calendar information like month, day, year, day of week, abbreviated and full names of weekday and month and the date in string form "month/day/year".

范例

Example #1 cal_from_jd() example

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

上例将输出：

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

参见

  • cal_to_jd() - Converts from a supported calendar to Julian Day Count
  • jdtofrench() - Converts a Julian Day Count to the French Republican Calendar
  • jdtogregorian() - Converts Julian Day Count to Gregorian date
  • jdtojewish() - Converts a Julian day count to a Jewish calendar date
  • jdtojulian() - Converts a Julian Day Count to a Julian Calendar Date
  • jdtounix() - Convert Julian Day to Unix timestamp

cal_days_in_month
cal_info
Calendar 函数


Returns information about a particular calendar

cal_from_jd
cal_to_jd
Calendar 函数
PHP 手册

cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_info — Returns information about a particular calendar

说明

array cal_info ([ int $calendar=-1 ] )

cal_info() returns information on the specified calendar .

Calendar information is returned as an array containing the elements calname, calsymbol, month, abbrevmonth and maxdaysinmonth. The names of the different calendars which can be used as calendar are as follows:

  • 0 or CAL_GREGORIAN - Gregorian Calendar
  • 1 or CAL_JULIAN - Julian Calendar
  • 2 or CAL_JEWISH - Jewish Calendar
  • 3 or CAL_FRENCH - French Revolutionary Calendar

If no calendar is specified information on all supported calendars is returned as an array.

参数

calendar

Calendar to return information for. If no calendar is specified information about all calendars is returned.

返回值

更新日志

版本 | 说明
Since 5.0 | The calendar parameter becomes optional and defaults to "all calendars" if omitted.

范例

Example #1 cal_info() example

<?php
$info = cal_info(0);
print_r($info);
?>

上例将输出：

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)

cal_from_jd
cal_to_jd
Calendar 函数


Converts from a supported calendar to Julian Day Count

cal_info
easter_date
Calendar 函数
PHP 手册

cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jd — Converts from a supported calendar to Julian Day Count

说明

int cal_to_jd ( int $calendar , int $month , int $day , int $year )

cal_to_jd() calculates the Julian day count for a date in the specified calendar . Supported calendar s are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

参数

calendar

Calendar to convert from, one of CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH or CAL_FRENCH.

month

The month as a number, the valid range depends on the calendar

day

The day as a number, the valid range depends on the calendar

year

The year as a number, the valid range depends on the calendar

返回值

A Julian Day number.

参见

  • cal_from_jd() - Converts from Julian Day Count to a supported calendar
  • frenchtojd() - Converts a date from the French Republican Calendar to a Julian Day Count
  • gregoriantojd() - Converts a Gregorian date to Julian Day Count
  • jewishtojd() - Converts a date in the Jewish Calendar to Julian Day Count
  • juliantojd() - Converts a Julian Calendar date to Julian Day Count
  • unixtojd() - Convert Unix timestamp to Julian Day

cal_info
easter_date
Calendar 函数


Get Unix timestamp for midnight on Easter of a given year

cal_to_jd
easter_days
Calendar 函数
PHP 手册

easter_date

(PHP 4, PHP 5)

easter_date — Get Unix timestamp for midnight on Easter of a given year

说明

int easter_date ([ int $year ] )

Returns the Unix timestamp corresponding to midnight on Easter of the given year.

Warning

This function will generate a warning if the year is outside of the range for Unix timestamps (i.e. before 1970 or after 2037).

The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox. The Equinox is assumed to always fall on 21st March, so the calculation reduces to determining the date of the full moon and the date of the following Sunday. The algorithm used here was introduced around the year 532 by Dionysius Exiguus. Under the Julian Calendar (for years before 1753) a simple 19-year cycle is used to track the phases of the Moon. Under the Gregorian Calendar (for years after 1753 - devised by Clavius and Lilius, and introduced by Pope Gregory XIII in October 1582, and into Britain and its then colonies in September 1752) two correction factors are added to make the cycle more accurate.

(The code is based on a C program by Simon Kershaw, <webmaster at ely.anglican dot org>)

参数

year

The year as a number between 1970 an 2037

返回值

The easter date as a unix timestamp.

更新日志

版本 | 说明
Since 4.3.0 | The year parameter is optional and defaults to the current year according to the local time if omitted.

范例

Example #1 easter_date() example

<?php

echo date("M-d-Y", easter_date(1999));        // Apr-04-1999
echo date("M-d-Y", easter_date(2000));        // Apr-23-2000
echo date("M-d-Y", easter_date(2001));        // Apr-15-2001

?>

参见

  • easter_days() - Get number of days after March 21 on which Easter falls for a given year for calculating Easter before 1970 or after 2037

cal_to_jd
easter_days
Calendar 函数


Get number of days after March 21 on which Easter falls for a given year

easter_date
FrenchToJD
Calendar 函数
PHP 手册

easter_days

(PHP 4, PHP 5)

easter_days — Get number of days after March 21 on which Easter falls for a given year

说明

int easter_days ([ int $year [, int $method=CAL_EASTER_DEFAULT ]] )

Returns the number of days after March 21 on which Easter falls for a given year. If no year is specified, the current year is assumed.

This function can be used instead of easter_date() to calculate Easter for years which fall outside the range of Unix timestamps (i.e. before 1970 or after 2037).

The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox. The Equinox is assumed to always fall on 21st March, so the calculation reduces to determining the date of the full moon and the date of the following Sunday. The algorithm used here was introduced around the year 532 by Dionysius Exiguus. Under the Julian Calendar (for years before 1753) a simple 19-year cycle is used to track the phases of the Moon. Under the Gregorian Calendar (for years after 1753 - devised by Clavius and Lilius, and introduced by Pope Gregory XIII in October 1582, and into Britain and its then colonies in September 1752) two correction factors are added to make the cycle more accurate.

(The code is based on a C program by Simon Kershaw, <webmaster at ely.anglican dot org>)

参数

year

The year as a positive number

method

Allows to calculate easter dates based on the Gregorian calendar during the years 1582 - 1752 when set to CAL_EASTER_ROMAN. See the calendar constants for more valid constants.

返回值

The number of days after March 21st that the Easter Sunday is in the given year .

更新日志

版本 | 说明
Since 4.3.0 | The year parameter is optional and defaults to the current year according to the local time if omitted.
Since 4.3.0 | The method parameter was introduced.

范例

Example #1 easter_days() example

<?php

echo easter_days(1999);        // 14, i.e. April 4
echo easter_days(1492);        // 32, i.e. April 22
echo easter_days(1913);        //  2, i.e. March 23

?>

参见

  • easter_date() - Get Unix timestamp for midnight on Easter of a given year

easter_date
FrenchToJD
Calendar 函数


Converts a date from the French Republican Calendar to a Julian Day Count

easter_days
GregorianToJD
Calendar 函数
PHP 手册

FrenchToJD

(PHP 4, PHP 5)

FrenchToJD — Converts a date from the French Republican Calendar to a Julian Day Count

说明

int frenchtojd ( int $month , int $day , int $year )

Converts a date from the French Republican Calendar to a Julian Day Count.

These routines only convert dates in years 1 through 14 (Gregorian dates 22 September 1792 through 22 September 1806). This more than covers the period when the calendar was in use.

参数

month

The month as a number from 1 (for VendÃ©miaire) to 13 (for the period of 5-6 days at the end of each year)

day

The day as a number from 1 to 30

year

The year as a number between 1 and 14

返回值

The julian day for the given french revolution date as an integer.

参见

  • jdtofrench() - Converts a Julian Day Count to the French Republican Calendar
  • cal_to_jd() - Converts from a supported calendar to Julian Day Count

easter_days
GregorianToJD
Calendar 函数


Converts a Gregorian date to Julian Day Count

FrenchToJD
JDDayOfWeek
Calendar 函数
PHP 手册

GregorianToJD

(PHP 4, PHP 5)

GregorianToJD — Converts a Gregorian date to Julian Day Count

说明

int gregoriantojd ( int $month , int $day , int $year )

Valid Range for Gregorian Calendar 4714 B.C. to 9999 A.D.

Although this function can handle dates all the way back to 4714 B.C., such use may not be meaningful. The Gregorian calendar was not instituted until October 15, 1582 (or October 5, 1582 in the Julian calendar). Some countries did not accept it until much later. For example, Britain converted in 1752, The USSR in 1918 and Greece in 1923. Most European countries used the Julian calendar prior to the Gregorian.

参数

month

The month as a number from 1 (for January) to 12 (for December)

day

The day as a number from 1 to 31

year

The year as a number between -4714 and 9999

返回值

The julian day for the given gregorian date as an integer.

范例

Example #1 Calendar functions

<?php
$jd = GregorianToJD(10, 11, 1970);
echo "$jd\n";
$gregorian = JDToGregorian($jd);
echo "$gregorian\n";
?>

参见

  • jdtogregorian() - Converts Julian Day Count to Gregorian date
  • cal_to_jd() - Converts from a supported calendar to Julian Day Count

FrenchToJD
JDDayOfWeek
Calendar 函数


Returns the day of the week

GregorianToJD
JDMonthName
Calendar 函数
PHP 手册

JDDayOfWeek

(PHP 4, PHP 5)

JDDayOfWeek — Returns the day of the week

说明

mixed jddayofweek ( int $julianday [, int $mode=CAL_DOW_DAYNO ] )

Returns the day of the week. Can return a string or an integer depending on the mode.

参数

julianday

A julian day number as integer

mode
Calendar week modes
Mode | Meaning
0 (Default) | Return the day number as an int (0=Sunday, 1=Monday, etc)
1 | Returns string containing the day of week (English-Gregorian)
2 | Return a string containing the abbreviated day of week (English-Gregorian)

返回值

The gregorian weekday as either an integer or string.

GregorianToJD
JDMonthName
Calendar 函数


Returns a month name

JDDayOfWeek
JDToFrench
Calendar 函数
PHP 手册

JDMonthName

(PHP 4, PHP 5)

JDMonthName — Returns a month name

说明

string jdmonthname ( int $julianday , int $mode )

Returns a string containing a month name. mode tells this function which calendar to convert the Julian Day Count to, and what type of month names are to be returned.

Calendar modes
Mode | Meaning | Values
0 | Gregorian - abbreviated | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 | Gregorian | January, February, March, April, May, June, July, August, September, October, November, December
2 | Julian - abbreviated | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 | Julian | January, February, March, April, May, June, July, August, September, October, November, December
4 | Jewish | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | French Republican | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

参数

jday

The Julian Day to operate on

calendar

The calendar to take the month name from

返回值

The month name for the given Julian Day and calendar .

JDDayOfWeek
JDToFrench
Calendar 函数


Converts a Julian Day Count to the French Republican Calendar

JDMonthName
JDToGregorian
Calendar 函数
PHP 手册

JDToFrench

(PHP 4, PHP 5)

JDToFrench — Converts a Julian Day Count to the French Republican Calendar

说明

string jdtofrench ( int $juliandaycount )

Converts a Julian Day Count to the French Republican Calendar.

参数

julianday

A julian day number as integer

返回值

The french revolution date as a string in the form "month/day/year"

参见

  • frenchtojd() - Converts a date from the French Republican Calendar to a Julian Day Count
  • cal_from_jd() - Converts from Julian Day Count to a supported calendar

JDMonthName
JDToGregorian
Calendar 函数


Converts Julian Day Count to Gregorian date

JDToFrench
jdtojewish
Calendar 函数
PHP 手册

JDToGregorian

(PHP 4, PHP 5)

JDToGregorian — Converts Julian Day Count to Gregorian date

说明

string jdtogregorian ( int $julianday )

Converts Julian Day Count to a string containing the Gregorian date in the format of "month/day/year".

参数

julianday

A julian day number as integer

返回值

The gregorian date as a string in the form "month/day/year"

参见

  • gregoriantojd() - Converts a Gregorian date to Julian Day Count
  • cal_from_jd() - Converts from Julian Day Count to a supported calendar

JDToFrench
jdtojewish
Calendar 函数


Converts a Julian day count to a Jewish calendar date

JDToGregorian
JDToJulian
Calendar 函数
PHP 手册

jdtojewish

(PHP 4, PHP 5)

jdtojewish — Converts a Julian day count to a Jewish calendar date

说明

string jdtojewish ( int $juliandaycount [, bool $hebrew=false [, int $fl=0 ]] )

Converts a Julian Day Count to the Jewish Calendar.

参数

julianday

A julian day number as integer

hebrew

If the hebrew parameter is set to TRUE, the fl parameter is used for Hebrew, string based, output format.

fl

The available formats are: CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM, CAL_JEWISH_ADD_GERESHAYIM.

返回值

The jewish date as a string in the form "month/day/year"

更新日志

版本 | 说明
5.0.0 | The hebrew and fl parameters were added

范例

Example #1 jdtojewish() Example

<?php
echo jdtojewish(gregoriantojd(10, 8, 2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

参见

  • jewishtojd() - Converts a date in the Jewish Calendar to Julian Day Count
  • cal_from_jd() - Converts from Julian Day Count to a supported calendar

JDToGregorian
JDToJulian
Calendar 函数


Converts a Julian Day Count to a Julian Calendar Date

jdtojewish
jdtounix
Calendar 函数
PHP 手册

JDToJulian

(PHP 4, PHP 5)

JDToJulian — Converts a Julian Day Count to a Julian Calendar Date

说明

string jdtojulian ( int $julianday )

Converts Julian Day Count to a string containing the Julian Calendar Date in the format of "month/day/year".

参数

julianday

A julian day number as integer

返回值

The julian date as a string in the form "month/day/year"

参见

  • juliantojd() - Converts a Julian Calendar date to Julian Day Count
  • cal_from_jd() - Converts from Julian Day Count to a supported calendar

jdtojewish
jdtounix
Calendar 函数


Convert Julian Day to Unix timestamp

JDToJulian
JewishToJD
Calendar 函数
PHP 手册

jdtounix

(PHP 4, PHP 5)

jdtounix — Convert Julian Day to Unix timestamp

说明

int jdtounix ( int $jday )

This function will return a Unix timestamp corresponding to the Julian Day given in jday or FALSE if jday is not inside the Unix epoch (Gregorian years between 1970 and 2037 or 2440588 <= jday <= 2465342 ). The time returned is localtime (and not GMT).

参数

jday

A julian day number between 2440588 and 2465342.

返回值

The unix timestamp for the start of the given julian day.

参见

  • unixtojd() - Convert Unix timestamp to Julian Day

JDToJulian
JewishToJD
Calendar 函数


Converts a date in the Jewish Calendar to Julian Day Count

jdtounix
JulianToJD
Calendar 函数
PHP 手册

JewishToJD

(PHP 4, PHP 5)

JewishToJD — Converts a date in the Jewish Calendar to Julian Day Count

说明

int jewishtojd ( int $month , int $day , int $year )

Although this function can handle dates all the way back to the year 1 (3761 B.C.), such use may not be meaningful. The Jewish calendar has been in use for several thousand years, but in the early days there was no formula to determine the start of a month. A new month was started when the new moon was first observed.

参数

month

The month as a number from 1 to 13

day

The day as a number from 1 to 30

year

The year as a number between 1 and 9999

返回值

The julian day for the given jewish date as an integer.

参见

  • jdtojewish() - Converts a Julian day count to a Jewish calendar date
  • cal_to_jd() - Converts from a supported calendar to Julian Day Count

jdtounix
JulianToJD
Calendar 函数


Converts a Julian Calendar date to Julian Day Count

JewishToJD
unixtojd
Calendar 函数
PHP 手册

JulianToJD

(PHP 4, PHP 5)

JulianToJD — Converts a Julian Calendar date to Julian Day Count

说明

int juliantojd ( int $month , int $day , int $year )

Valid Range for Julian Calendar 4713 B.C. to 9999 A.D.

Although this function can handle dates all the way back to 4713 B.C., such use may not be meaningful. The calendar was created in 46 B.C., but the details did not stabilize until at least 8 A.D., and perhaps as late at the 4th century. Also, the beginning of a year varied from one culture to another - not all accepted January as the first month.

Caution

Remember, the current calendar system being used worldwide is the Gregorian calendar. gregoriantojd() can be used to convert such dates to their Julian Day count.

参数

month

The month as a number from 1 (for January) to 12 (for December)

day

The day as a number from 1 to 31

year

The year as a number between -4713 and 9999

返回值

The julian day for the given julian date as an integer.

参见

  • jdtojulian() - Converts a Julian Day Count to a Julian Calendar Date
  • cal_to_jd() - Converts from a supported calendar to Julian Day Count

JewishToJD
unixtojd
Calendar 函数


Convert Unix timestamp to Julian Day

JulianToJD
Date/Time
Calendar 函数
PHP 手册

unixtojd

(PHP 4, PHP 5)

unixtojd — Convert Unix timestamp to Julian Day

说明

int unixtojd ([ int $timestamp=time() ] )

Return the Julian Day for a Unix timestamp (seconds since 1.1.1970), or for the current day if no timestamp is given.

参数

timestamp

A unix timestamp to convert.

返回值

A julian day number as integer.

参见

  • jdtounix() - Convert Julian Day to Unix timestamp

JulianToJD
Date/Time
Calendar 函数


Date and Time

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • List of Supported Timezones
    • Africa
    • America
    • Antarctica
    • Arctic
    • Asia
    • Atlantic
    • Australia
    • Europe
    • Indian
    • Pacific
    • Others
  • DateTime — The DateTime class
    • DateTime::add — Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object
    • DateTime::__construct — Returns new DateTime object
    • DateTime::createFromFormat — Returns new DateTime object formatted according to the specified format
    • DateTime::diff — Returns the difference between two DateTime objects
    • DateTime::format — Returns date formatted according to given format
    • DateTime::getLastErrors — Returns the warnings and errors
    • DateTime::getOffset — Returns the daylight saving time offset
    • DateTime::getTimestamp — Gets the Unix timestamp
    • DateTime::getTimezone — Return time zone relative to given DateTime
    • DateTime::modify — Alters the timestamp
    • DateTime::__set_state — The __set_state handler
    • DateTime::setDate — Sets the date
    • DateTime::setISODate — Sets the ISO date
    • DateTime::setTime — Sets the time
    • DateTime::setTimestamp — Sets the date and time based on an Unix timestamp
    • DateTime::setTimezone — Sets the time zone for the DateTime object
    • DateTime::sub — Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
    • DateTime::__wakeup — The __wakeup handler
  • DateTimeZone — The DateTimeZone class
    • DateTimeZone::__construct — Creates new DateTimeZone object
    • DateTimeZone::getLocation — Returns location information for a timezone
    • DateTimeZone::getName — Returns the name of the timezone
    • DateTimeZone::getOffset — Returns the timezone offset from GMT
    • DateTimeZone::getTransitions — Returns all transitions for the timezone
    • DateTimeZone::listAbbreviations — Returns associative array containing dst, offset and the timezone name
    • DateTimeZone::listIdentifiers — Returns numerically index array with all timezone identifiers
  • DateInterval — The DateInterval class
    • DateInterval::__construct — Creates new DateInterval object
    • DateInterval::createFromDateString — Sets up a DateInterval from the relative parts of the string
    • DateInterval::format — Formats the interval
  • DatePeriod — The DatePeriod class
    • DatePeriod::__construct — Creates new DatePeriod object
  • Date/Time 函数
    • checkdate — 验证一个格里高里日期
    • date_add — 别名 DateTime::add
    • date_create_from_format — 别名 DateTime::createFromFormat
    • date_create — Returns new DateTime object
    • date_date_set — 别名 DateTime::setDate
    • date_default_timezone_get — 取得一个脚本中所有日期时间函数所使用的默认时区
    • date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区
    • date_diff — 别名 DateTime::diff
    • date_format — 别名 DateTime::format
    • date_get_last_errors — 别名 DateTime::getLastErrors
    • date_interval_create_from_date_string — 别名 DateInterval::createFromDateString
    • date_interval_format — 别名 DateInterval::format
    • date_isodate_set — 别名 DateTime::setISODate
    • date_modify — 别名 DateTime::modify
    • date_offset_get — 别名 DateTime::getOffset
    • date_parse_from_format — Get info about given date
    • date_parse — Returns associative array with detailed info about given date
    • date_sub — 别名 DateTime::sub
    • date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end
    • date_sunrise — 返回给定的日期与地点的日出时间
    • date_sunset — 返回给定的日期与地点的日落时间
    • date_time_set — 别名 DateTime::setTime
    • date_timestamp_get — 别名 DateTime::getTimestamp
    • date_timestamp_set — 别名 DateTime::setTimestamp
    • date_timezone_get — 别名 DateTime::getTimezone
    • date_timezone_set — 别名 DateTime::setTimezone
    • date — 格式化一个本地时间／日期
    • getdate — 取得日期／时间信息
    • gettimeofday — 取得当前时间
    • gmdate — 格式化一个 GMT/UTC 日期／时间
    • gmmktime — 取得 GMT 日期的 UNIX 时间戳
    • gmstrftime — 根据区域设置格式化 GMT/UTC 时间／日期
    • idate — 将本地时间日期格式化为整数
    • localtime — 取得本地时间
    • microtime — 返回当前 Unix 时间戳和微秒数
    • mktime — 取得一个日期的 Unix 时间戳
    • strftime — 根据区域设置格式化本地时间／日期
    • strptime — 解析由 strftime 生成的日期／时间
    • strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳
    • time — 返回当前的 Unix 时间戳
    • timezone_abbreviations_list — 别名 DateTimeZone::listAbbreviations
    • timezone_identifiers_list — 别名 DateTimeZone::listIdentifiers
    • timezone_location_get — 别名 DateTimeZone::getLocation
    • timezone_name_from_abbr — Returns the timezone name from abbrevation
    • timezone_name_get — 别名 DateTimeZone::getName
    • timezone_offset_get — 别名 DateTimeZone::getOffset
    • timezone_open — Returns new DateTimeZone object
    • timezone_transitions_get — 别名 DateTimeZone::getTransitions
unixtojd
简介
日历和事件相关扩展


简介

These functions allow you to get the date and time from the server where your PHP scripts are running. You can use these functions to format the date and time in many different ways.

Note: Please keep in mind that these functions are dependent on the locale settings of your server. Make sure to take daylight saving time (use e.g. $date = strtotime('+7 days', $date) and not $date += 7*24*60*60) and leap years into consideration when working with these functions.

Note: The timezones referenced in this section can be found in the List of Supported Timezones.

Date/Time
安装/配置
Date/Time


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Date/Time


安装

本扩展模块作为 PHP 内核的一部分，无需安装即可使用。

Note: Getting the latest timezone database
The latest version of the timezone database can be installed via PECL's » timezonedb. For Windows users, a pre-compiled DLL can be downloaded from the PECL4Win site: » php_timezonedb.dll.

Note: Experimental DateTime support in PHP 5.1.x
Although the DateTime class (and related functions) are enabled by default since PHP 5.2.0, it is possible to add experimental support into PHP 5.1.x by using the following flag before configure/compile: CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

日期／时间配置选项
名称 | 默认值 | 可修改范围 | 更新记录
date.default_latitude | "31.7667" | PHP_INI_ALL | 自 PHP 5.0.0 起可用
date.default_longitude | "35.2333" | PHP_INI_ALL | 自 PHP 5.0.0 起可用
date.sunrise_zenith | "90.83" | PHP_INI_ALL | 自 PHP 5.0.0 起可用
date.sunset_zenith | "90.83" | PHP_INI_ALL | 自 PHP 5.0.0 起可用
date.timezone | "" | PHP_INI_ALL | 自 PHP 5.0.0 起可用

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

date.default_latitude float

默认纬度。

date.default_longitude float

默认经度。

date.sunrise_zenith float

默认日出天顶。

date.sunset_zenith float

默认日落天顶。

date.timezone string

在未设定 TZ 环境变量时用于所有日期／时间函数的默认时区。优先顺序在 date_default_timezone_get() 页面中有说明。

Note: 前四个配置选项目前仅用于 date_sunrise() 和 date_sunset()。

安装
资源类型
安装/配置


预定义常量

The DATE_ constants are defined since PHP 5.1.1 and they offer standard date representations, which can be used along with the date format functions (like date()).

Following constants exists since PHP 5.1.2 and specify a format returned by functions date_sunrise() and date_sunset().

SUNFUNCS_RET_TIMESTAMP (integer)
Timestamp
SUNFUNCS_RET_STRING (integer)
Hours:minutes (example: 08:02)
SUNFUNCS_RET_DOUBLE (integer)
Hours as floating point number (example 8.75)
资源类型
List of Supported Timezones
Date/Time


List of Supported Timezones

Table of Contents

  • Africa
  • America
  • Antarctica
  • Arctic
  • Asia
  • Atlantic
  • Australia
  • Europe
  • Indian
  • Pacific
  • Others

Here you'll find the complete list of timezones supported by PHP, which are meant to be used with e.g. date_default_timezone_set().

Note: The latest version of the timezone database can be installed via PECL's » timezonedb. For Windows users, a pre-compiled DLL can be downloaded from the PECL4Win site: » php_timezonedb.dll.

预定义常量
Africa
Date/Time


Africa

Africa
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers | Africa/Asmara
Africa/Asmera | Africa/Bamako | Africa/Bangui | Africa/Banjul | Africa/Bissau
Africa/Blantyre | Africa/Brazzaville | Africa/Bujumbura | Africa/Cairo | Africa/Casablanca
Africa/Ceuta | Africa/Conakry | Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti
Africa/Douala | Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare
Africa/Johannesburg | Africa/Kampala | Africa/Khartoum | Africa/Kigali | Africa/Kinshasa
Africa/Lagos | Africa/Libreville | Africa/Lome | Africa/Luanda | Africa/Lubumbashi
Africa/Lusaka | Africa/Malabo | Africa/Maputo | Africa/Maseru | Africa/Mbabane
Africa/Mogadishu | Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena | Africa/Niamey
Africa/Nouakchott | Africa/Ouagadougou | Africa/Porto-Novo | Africa/Sao_Tome | Africa/Timbuktu
Africa/Tripoli | Africa/Tunis | Africa/Windhoek |  |
List of Supported Timezones
America
List of Supported Timezones


America

America
America/Adak | America/Anchorage | America/Anguilla | America/Antigua | America/Araguaina
America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/ComodRivadavia | America/Argentina/Cordoba | America/Argentina/Jujuy
America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos | America/Argentina/Salta | America/Argentina/San_Juan
America/Argentina/San_Luis | America/Argentina/Tucuman | America/Argentina/Ushuaia | America/Aruba | America/Asuncion
America/Atikokan | America/Atka | America/Bahia | America/Barbados | America/Belem
America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota | America/Boise
America/Buenos_Aires | America/Cambridge_Bay | America/Campo_Grande | America/Cancun | America/Caracas
America/Catamarca | America/Cayenne | America/Cayman | America/Chicago | America/Chihuahua
America/Coral_Harbour | America/Cordoba | America/Costa_Rica | America/Cuiaba | America/Curacao
America/Danmarkshavn | America/Dawson | America/Dawson_Creek | America/Denver | America/Detroit
America/Dominica | America/Edmonton | America/Eirunepe | America/El_Salvador | America/Ensenada
America/Fort_Wayne | America/Fortaleza | America/Glace_Bay | America/Godthab | America/Goose_Bay
America/Grand_Turk | America/Grenada | America/Guadeloupe | America/Guatemala | America/Guayaquil
America/Guyana | America/Halifax | America/Havana | America/Hermosillo | America/Indiana/Indianapolis
America/Indiana/Knox | America/Indiana/Marengo | America/Indiana/Petersburg | America/Indiana/Tell_City | America/Indiana/Vevay
America/Indiana/Vincennes | America/Indiana/Winamac | America/Indianapolis | America/Inuvik | America/Iqaluit
America/Jamaica | America/Jujuy | America/Juneau | America/Kentucky/Louisville | America/Kentucky/Monticello
America/Knox_IN | America/La_Paz | America/Lima | America/Los_Angeles | America/Louisville
America/Maceio | America/Managua | America/Manaus | America/Marigot | America/Martinique
America/Mazatlan | America/Mendoza | America/Menominee | America/Merida | America/Mexico_City
America/Miquelon | America/Moncton | America/Monterrey | America/Montevideo | America/Montreal
America/Montserrat | America/Nassau | America/New_York | America/Nipigon | America/Nome
America/Noronha | America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Panama | America/Pangnirtung
America/Paramaribo | America/Phoenix | America/Port-au-Prince | America/Port_of_Spain | America/Porto_Acre
America/Porto_Velho | America/Puerto_Rico | America/Rainy_River | America/Rankin_Inlet | America/Recife
America/Regina | America/Resolute | America/Rio_Branco | America/Rosario | America/Santarem
America/Santiago | America/Santo_Domingo | America/Sao_Paulo | America/Scoresbysund | America/Shiprock
America/St_Barthelemy | America/St_Johns | America/St_Kitts | America/St_Lucia | America/St_Thomas
America/St_Vincent | America/Swift_Current | America/Tegucigalpa | America/Thule | America/Thunder_Bay
America/Tijuana | America/Toronto | America/Tortola | America/Vancouver | America/Virgin
America/Whitehorse | America/Winnipeg | America/Yakutat | America/Yellowknife |
Africa
Antarctica
List of Supported Timezones


Antarctica

Antarctica
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Mawson | Antarctica/McMurdo
Antarctica/Palmer | Antarctica/Rothera | Antarctica/South_Pole | Antarctica/Syowa | Antarctica/Vostok
America
Arctic
List of Supported Timezones


Arctic

Arctic
Arctic/Longyearbyen
Antarctica
Asia
List of Supported Timezones


Asia

Asia
Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr | Asia/Aqtau
Asia/Aqtobe | Asia/Ashgabat | Asia/Ashkhabad | Asia/Baghdad | Asia/Bahrain
Asia/Baku | Asia/Bangkok | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Calcutta | Asia/Choibalsan | Asia/Chongqing | Asia/Chungking | Asia/Colombo
Asia/Dacca | Asia/Damascus | Asia/Dhaka | Asia/Dili | Asia/Dubai
Asia/Dushanbe | Asia/Gaza | Asia/Harbin | Asia/Ho_Chi_Minh | Asia/Hong_Kong
Asia/Hovd | Asia/Irkutsk | Asia/Istanbul | Asia/Jakarta | Asia/Jayapura
Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka | Asia/Karachi | Asia/Kashgar
Asia/Kathmandu | Asia/Katmandu | Asia/Kolkata | Asia/Krasnoyarsk | Asia/Kuala_Lumpur
Asia/Kuching | Asia/Kuwait | Asia/Macao | Asia/Macau | Asia/Magadan
Asia/Makassar | Asia/Manila | Asia/Muscat | Asia/Nicosia | Asia/Novosibirsk
Asia/Omsk | Asia/Oral | Asia/Phnom_Penh | Asia/Pontianak | Asia/Pyongyang
Asia/Qatar | Asia/Qyzylorda | Asia/Rangoon | Asia/Riyadh | Asia/Saigon
Asia/Sakhalin | Asia/Samarkand | Asia/Seoul | Asia/Shanghai | Asia/Singapore
Asia/Taipei | Asia/Tashkent | Asia/Tbilisi | Asia/Tehran | Asia/Tel_Aviv
Asia/Thimbu | Asia/Thimphu | Asia/Tokyo | Asia/Ujung_Pandang | Asia/Ulaanbaatar
Asia/Ulan_Bator | Asia/Urumqi | Asia/Vientiane | Asia/Vladivostok | Asia/Yakutsk
Asia/Yekaterinburg | Asia/Yerevan |  |  |
Arctic
Atlantic
List of Supported Timezones


Atlantic

Atlantic
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde | Atlantic/Faeroe
Atlantic/Faroe | Atlantic/Jan_Mayen | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |  |
Asia
Australia
List of Supported Timezones


Australia

Australia
Australia/ACT | Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Canberra
Australia/Currie | Australia/Darwin | Australia/Eucla | Australia/Hobart | Australia/LHI
Australia/Lindeman | Australia/Lord_Howe | Australia/Melbourne | Australia/North | Australia/NSW
Australia/Perth | Australia/Queensland | Australia/South | Australia/Sydney | Australia/Tasmania
Australia/Victoria | Australia/West | Australia/Yancowinna |  |
Atlantic
Europe
List of Supported Timezones


Europe

Europe
Europe/Amsterdam | Europe/Andorra | Europe/Athens | Europe/Belfast | Europe/Belgrade
Europe/Berlin | Europe/Bratislava | Europe/Brussels | Europe/Bucharest | Europe/Budapest
Europe/Chisinau | Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Guernsey
Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey | Europe/Kaliningrad
Europe/Kiev | Europe/Lisbon | Europe/Ljubljana | Europe/London | Europe/Luxembourg
Europe/Madrid | Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Nicosia | Europe/Oslo | Europe/Paris | Europe/Podgorica
Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara | Europe/San_Marino
Europe/Sarajevo | Europe/Simferopol | Europe/Skopje | Europe/Sofia | Europe/Stockholm
Europe/Tallinn | Europe/Tirane | Europe/Tiraspol | Europe/Uzhgorod | Europe/Vaduz
Europe/Vatican | Europe/Vienna | Europe/Vilnius | Europe/Volgograd | Europe/Warsaw
Europe/Zagreb | Europe/Zaporozhye | Europe/Zurich |  |
Australia
Indian
List of Supported Timezones


Indian

Indian
Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos | Indian/Comoro
Indian/Kerguelen | Indian/Mahe | Indian/Maldives | Indian/Mauritius | Indian/Mayotte
Indian/Reunion |  |  |  |
Europe
Pacific
List of Supported Timezones


Pacific

Pacific
Pacific/Apia | Pacific/Auckland | Pacific/Chatham | Pacific/Easter | Pacific/Efate
Pacific/Enderbury | Pacific/Fakaofo | Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos
Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu | Pacific/Johnston
Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein | Pacific/Majuro | Pacific/Marquesas
Pacific/Midway | Pacific/Nauru | Pacific/Niue | Pacific/Norfolk | Pacific/Noumea
Pacific/Pago_Pago | Pacific/Palau | Pacific/Pitcairn | Pacific/Ponape | Pacific/Port_Moresby
Pacific/Rarotonga | Pacific/Saipan | Pacific/Samoa | Pacific/Tahiti | Pacific/Tarawa
Pacific/Tongatapu | Pacific/Truk | Pacific/Wake | Pacific/Wallis | Pacific/Yap
Indian
Others
List of Supported Timezones


Others

Others
Brazil/Acre | Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic
Canada/Central | Canada/East-Saskatchewan | Canada/Eastern | Canada/Mountain | Canada/Newfoundland
Canada/Pacific | Canada/Saskatchewan | Canada/Yukon | CET | Chile/Continental
Chile/EasterIsland | CST6CDT | Cuba | EET | Egypt
Eire | EST | EST5EDT | Etc/GMT | Etc/GMT+0
Etc/GMT+1 | Etc/GMT+10 | Etc/GMT+11 | Etc/GMT+12 | Etc/GMT+2
Etc/GMT+3 | Etc/GMT+4 | Etc/GMT+5 | Etc/GMT+6 | Etc/GMT+7
Etc/GMT+8 | Etc/GMT+9 | Etc/GMT-0 | Etc/GMT-1 | Etc/GMT-10
Etc/GMT-11 | Etc/GMT-12 | Etc/GMT-13 | Etc/GMT-14 | Etc/GMT-2
Etc/GMT-3 | Etc/GMT-4 | Etc/GMT-5 | Etc/GMT-6 | Etc/GMT-7
Etc/GMT-8 | Etc/GMT-9 | Etc/GMT0 | Etc/Greenwich | Etc/UCT
Etc/Universal | Etc/UTC | Etc/Zulu | Factory | GB
GB-Eire | GMT | GMT+0 | GMT-0 | GMT0
Greenwich | Hongkong | HST | Iceland | Iran
Israel | Jamaica | Japan | Kwajalein | Libya
MET | Mexico/BajaNorte | Mexico/BajaSur | Mexico/General | MST
MST7MDT | Navajo | NZ | NZ-CHAT | Poland
Portugal | PRC | PST8PDT | ROC | ROK
Singapore | Turkey | UCT | Universal | US/Alaska
US/Aleutian | US/Arizona | US/Central | US/East-Indiana | US/Eastern
US/Hawaii | US/Indiana-Starke | US/Michigan | US/Mountain | US/Pacific
US/Pacific-New | US/Samoa | UTC | W-SU | WET
Zulu |  |  |  |
Warning

Please do not use any of the timezones listed here (besides UTC), they only exist for backward compatible reasons.

Pacific
DateTime
List of Supported Timezones


The DateTime class

简介

Representation of date and time.

Class synopsis

DateTime
DateTime {
/* Constants */
const string DateTime::ATOM =Y-m-d\TH:i:sP ;
const string DateTime::COOKIE =l, d-M-y H:i:s T ;
const string DateTime::ISO8601 =Y-m-d\TH:i:sO ;
const string DateTime::RFC822 =D, d M y H:i:s O ;
const string DateTime::RFC850 =l, d-M-y H:i:s T ;
const string DateTime::RFC1036 =D, d M y H:i:s O ;
const string DateTime::RFC1123 =D, d M Y H:i:s O ;
const string DateTime::RFC2822 =D, d M Y H:i:s O ;
const string DateTime::RFC3339 =Y-m-d\TH:i:sP ;
const string DateTime::RSS =D, d M Y H:i:s O ;
const string DateTime::W3C =Y-m-d\TH:i:sP ;
/* Methods */
public DateTime add ( string $interval )
__construct ([ string $time="now" [, DateTimeZone $timezone=NULL ]] )
public static DateTime createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public DateInterval diff ( DateTime $datetime [, bool $absolute ] )
public string format ( string $format )
public static array getLastErrors ( void )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public DateTime modify ( string $modify )
public static DateTime __set_state ( array $array )
public DateTime setDate ( int $year , int $month , int $day )
public DateTime setISODate ( int $year , int $week [, int $day ] )
public DateTime setTime ( int $hour , int $minute [, int $second ] )
public DateTime setTimestamp ( int $unixtimestamp )
public DateTime setTimezone ( DateTimeZone $timezone )
public DateTime sub ( DateInterval $interval )
public DateTime __wakeup ( void )
}

预定义常量

DateTime Node Types

DateTime::ATOM
DATE_ATOM
Atom (example: 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (example: 2005-08-15T15:52:01+0000)
DateTime::RFC822
DATE_RFC822
RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Same as DATE_ATOM (since PHP 5.1.3)
DateTime::RSS
DATE_RSS
RSS (Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)

Table of Contents

  • DateTime::add — Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object
  • DateTime::__construct — Returns new DateTime object
  • DateTime::createFromFormat — Returns new DateTime object formatted according to the specified format
  • DateTime::diff — Returns the difference between two DateTime objects
  • DateTime::format — Returns date formatted according to given format
  • DateTime::getLastErrors — Returns the warnings and errors
  • DateTime::getOffset — Returns the daylight saving time offset
  • DateTime::getTimestamp — Gets the Unix timestamp
  • DateTime::getTimezone — Return time zone relative to given DateTime
  • DateTime::modify — Alters the timestamp
  • DateTime::__set_state — The __set_state handler
  • DateTime::setDate — Sets the date
  • DateTime::setISODate — Sets the ISO date
  • DateTime::setTime — Sets the time
  • DateTime::setTimestamp — Sets the date and time based on an Unix timestamp
  • DateTime::setTimezone — Sets the time zone for the DateTime object
  • DateTime::sub — Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
  • DateTime::__wakeup — The __wakeup handler
Others
DateTime::add
Date/Time


Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object

DateTime
DateTime::__construct
DateTime
PHP 手册

DateTime::add

(PHP 5 >= 5.3.0)

DateTime::add — Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object

说明

public DateTime DateTime::add ( string $interval )
DateTime date_add ( DateTime $object , DateInterval $interval )

Adds the specified DateInterval object to the specified DateTime object.

参数

object

Procedural style only: A DateTime object returned by date_create()

interval

The amount to be added. For the date use "P3D", "P3M", "P3Y" or a combination of the three e.g. "P2M5D" (Y = Years, M = Months, D = Days.) MUST BE YEAR MONTH DAY FORMAT "P5Y", "P5M2D", "P5Y4D". For the time use "T3H", "T3M", "T3S" or or a combination of the three e.g. "T5H20M" (H = Hours, M = Minutes, S = Seconds). For dateTime use "P5D2M4YT5H20M". The digit before the letter (NOT P or T) can be any amount.

返回值

Returns the modified DateTime.

范例

Example #1 date_add() example

<?php

$date = new DateTime("18-July-2008 16:30:30");
echo $date->format("d-m-Y H:i:s").'<br />';

date_add($date, new DateInterval("P5D"));
echo '<br />'.$date->format("d-m-Y").' : 5 Days';

date_add($date, new DateInterval("P5M"));
echo '<br />'.$date->format("d-m-Y").' : 5 Months';

date_add($date, new DateInterval("P5Y"));
echo '<br />'.$date->format("d-m-Y").' : 5 Years';

date_add($date, new DateInterval("P5Y5M5D"));
echo '<br />'.$date->format("d-m-Y").' : 5 Days, 5 Months, 5 Years';

date_add($date, new DateInterval("P5YT5H"));
echo '<br />'.$date->format("d-m-Y H:i:s").' : 5 Years, 5 Hours';

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • DateTime::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
  • DateTime::diff() - Returns the difference between two DateTime objects

DateTime
DateTime::__construct
DateTime


Returns new DateTime object

DateTime::add
DateTime::createFromFormat
DateTime
PHP 手册

DateTime::__construct

(PHP 5 >= 5.2.0)

DateTime::__construct — Returns new DateTime object

说明

DateTime::__construct ([ string $time="now" [, DateTimeZone $timezone=NULL ]] )

Returns new DateTime object.

参数

time

String in a format accepted by strtotime(), defaults to "now".

timezone

Time zone of the time.

错误／异常

Emits Exception in case of an error.

范例

Example #1 DateTime::__construct() example

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 14:52:10');
echo $datetime->format(DATE_ATOM);
?>

DateTime::add
DateTime::createFromFormat
DateTime


Returns new DateTime object formatted according to the specified format

DateTime::__construct
DateTime::diff
DateTime
PHP 手册

DateTime::createFromFormat

(PHP 5 >= 5.3.0)

DateTime::createFromFormat — Returns new DateTime object formatted according to the specified format

说明

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Returns new DateTime object formatted according to the specified format.

参数

format

Format accepted by date().

time

String represeting the time.

timezone

Time zone.

返回值

Returns new DateTime instance.

DateTime::__construct
DateTime::diff
DateTime


Returns the difference between two DateTime objects

DateTime::createFromFormat
DateTime::format
DateTime
PHP 手册

DateTime::diff

(PHP 5 >= 5.3.0)

DateTime::diff — Returns the difference between two DateTime objects

说明

public DateInterval DateTime::diff ( DateTime $datetime [, bool $absolute ] )

Returns the difference between two DateTime objects.

参数

datetime

The date to compare to.

absolute

Whether to return absolute difference. Defaults to FALSE.

返回值

The difference between two dates.

DateTime::createFromFormat
DateTime::format
DateTime


Returns date formatted according to given format

DateTime::diff
DateTime::getLastErrors
DateTime
PHP 手册

DateTime::format

(PHP 5 >= 5.2.0)

DateTime::format — Returns date formatted according to given format

说明

public string DateTime::format ( string $format )
string date_format ( DateTime $object , string $format )

参数

object

Procedural style only: A DateTime object returned by date_create()

format

Format accepted by date().

返回值

Returns formatted date on success or FALSE on failure.

范例

Example #1 Displaying the date and time using the procedural form

<?php
date_default_timezone_set('Europe/London');

$datetime = date_create('2008-08-03 14:52:10');
echo date_format($datetime, 'jS, F Y') . "\n";
echo date_format($datetime, DATE_ATOM);
?>

Example #2 Displaying the date and time using the object oriented form

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 14:52:10');
echo $datetime->format('jS, F Y') . "\n";
echo $datetime->format(DATE_ATOM);
?>
?>

上例将输出：

3rd, August 2008
2008-08-03T14:52:10+01:00

参见

  • date() - 格式化一个本地时间／日期

DateTime::diff
DateTime::getLastErrors
DateTime


Returns the warnings and errors

DateTime::format
DateTime::getOffset
DateTime
PHP 手册

DateTime::getLastErrors

(PHP 5 >= 5.3.0)

DateTime::getLastErrors — Returns the warnings and errors

说明

public static array DateTime::getLastErrors ( void )

Returns the warnings and errors found while parsing a date/time string.

参数

This function has no parameters.

返回值

Returns array containing info about warnings and errors.

范例

Example #1 DateTime::getLastErrors() example

<?php
$date = date_create('asdfasdf');
print_r(DateTime::getLastErrors());
?>

上例将输出：

Array
(
    [warning_count] => 1
    [warnings] => Array
        (
            [6] => Double timezone specification
        )

    [error_count] => 1
    [errors] => Array
        (
            [0] => The timezone could not be found in the database
        )

)

DateTime::format
DateTime::getOffset
DateTime


Returns the daylight saving time offset

DateTime::getLastErrors
DateTime::getTimestamp
DateTime
PHP 手册

DateTime::getOffset

(PHP 5 >= 5.2.0)

DateTime::getOffset — Returns the daylight saving time offset

说明

public int DateTime::getOffset ( void )
int date_offset_get ( DateTime $object )

参数

object

Procedural style only: A DateTime object returned by date_create()

返回值

Returns DST offset in seconds on success or FALSE on failure.

范例

Example #1 Comparing offsets between Summer and Winter

<?php
date_default_timezone_set('Europe/London');

$winter = new DateTime('2008-12-25 14:25:41');
$summer = new DateTime('2008-07-14 14:25:41');

echo $winter->getOffset(); // Winter offset: 0
echo $summer->getOffset(); // Summer offset: 3600 = 1 hour
?>

DateTime::getLastErrors
DateTime::getTimestamp
DateTime


Gets the Unix timestamp

DateTime::getOffset
DateTime::getTimezone
DateTime
PHP 手册

DateTime::getTimestamp

(PHP 5 >= 5.3.0)

DateTime::getTimestamp — Gets the Unix timestamp

说明

public int DateTime::getTimestamp ( void )

Gets the Unix timestamp.

参数

This function has no parameters.

返回值

Returns Unix timestamp representing the date.

参见

  • DateTime::setTimestamp - Sets the date and time based on an Unix timestamp

DateTime::getOffset
DateTime::getTimezone
DateTime


Return time zone relative to given DateTime

DateTime::getTimestamp
DateTime::modify
DateTime
PHP 手册

DateTime::getTimezone

(PHP 5 >= 5.2.0)

DateTime::getTimezone — Return time zone relative to given DateTime

说明

public DateTimeZone DateTime::getTimezone ( void )
DateTimeZone date_timezone_get ( DateTime $object )

参数

object

Procedural style only: A DateTime object returned by date_create()

返回值

Returns DateTimeZone object on success or FALSE on failure.

范例

Example #1 Setting and getting DateTimeZone objects

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->getTimezone()->getName() . "\n";

$datetime = new DateTime('2008-08-03 12:35:23');
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->getTimezone()->getName();
?>

上例将输出：

Europe/London
America/Los_Angeles

参见

  • DateTime::setTimezone() - Sets the time zone for the DateTime object
  • timezone_open() - Returns new DateTimeZone object

DateTime::getTimestamp
DateTime::modify
DateTime


Alters the timestamp

DateTime::getTimezone
DateTime::__set_state
DateTime
PHP 手册

DateTime::modify

(PHP 5 >= 5.3.0)

DateTime::modify — Alters the timestamp

说明

public DateTime DateTime::modify ( string $modify )
DateTime date_modify ( DateTime $object , string $modify )

Alter the timestamp of a DateTime object by incrementing or decrementing in a format accepted by strtotime().

参数

object

Procedural style only: A DateTime object returned by date_create()

modify

String in a relative format accepted by strtotime().

返回值

Returns the modified DateTime.

范例

Example #1 A date_modify() example

<?php
$date = new DateTime("2006-12-12");
$date->modify("+1 day");
echo $date->format("Y-m-d");
?>

上例将输出：

2006-12-13

参见

  • strtotime() - 将任何英文文本的日期时间描述解析为 Unix 时间戳

DateTime::getTimezone
DateTime::__set_state
DateTime


The __set_state handler

DateTime::modify
DateTime::setDate
DateTime
PHP 手册

DateTime::__set_state

(PHP 5 >= 5.2.0)

DateTime::__set_state — The __set_state handler

说明

public static DateTime DateTime::__set_state ( array $array )

The __set_state handler.

参数

array

Initialization array.

返回值

Returns a new instance of a DateTime object.

DateTime::modify
DateTime::setDate
DateTime


Sets the date

DateTime::__set_state
DateTime::setISODate
DateTime
PHP 手册

DateTime::setDate

(PHP 5 >= 5.2.0)

DateTime::setDate — Sets the date

说明

public DateTime DateTime::setDate ( int $year , int $month , int $day )
DateTime date_date_set ( DateTime $object , int $year , int $month , int $day )

Resets the current date of the DateTime object to a different date.

参数

object

Procedural style only: A DateTime object returned by date_create()

year

Year of the date.

month

Month of the date.

day

Day of the date.

返回值

Returns the modified DateTime.

范例

Example #1 Object oriented example usage

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 14:52:10');
$datetime->setDate(2008, 10, 12);

echo $datetime->format(DATE_RFC2822);
?>

Example #2 Procedural example usage

<?php
date_default_timezone_set('Europe/London');

$datetime = date_create('2008-08-03 14:52:10');
date_date_set($datetime, 2008, 10, 12);

echo date_format($datetime, DATE_RFC2822);
?>

上例将输出：

Sun, 12 Oct 2008 14:52:10 +0100

参见

  • DateTime::setISODate() - Sets the ISO date
  • DateTime::setTime() - Sets the time

DateTime::__set_state
DateTime::setISODate
DateTime


Sets the ISO date

DateTime::setDate
DateTime::setTime
DateTime
PHP 手册

DateTime::setISODate

(PHP 5 >= 5.2.0)

DateTime::setISODate — Sets the ISO date

说明

public DateTime DateTime::setISODate ( int $year , int $week [, int $day ] )
DateTime date_isodate_set ( DateTime $object , int $year , int $week [, int $day ] )

Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.

参数

object

Procedural style only: A DateTime object returned by date_create()

year

Year of the date.

week

Week of the date.

day

Offset from the first day of the week.

返回值

Returns the modified DateTime.

范例

Example #1 Finding the date from a week number and day offset

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime();

// Offset from start of week 2 (7) = 5
$datetime->setISODate(2008, 2, 5); // Day 5 of week 2 of 2008 is the 11th of January.

// Offset from start of week 2 (7) = 10
$datetime->setISODate(2008, 2, 10); // Day 10 of week 2 of 2008 is the 16th of January.
?>

Example #2 Finding the month a week is in

<?php
date_default_timezone_set('Europe/London');

$datetime = date_create();
date_isodate_set($datetime, 2008, 6); // Week 6 of 2008 is in February.
?>

参见

  • DateTime::setDate() - Sets the date

DateTime::setDate
DateTime::setTime
DateTime


Sets the time

DateTime::setISODate
DateTime::setTimestamp
DateTime
PHP 手册

DateTime::setTime

(PHP 5 >= 5.2.0)

DateTime::setTime — Sets the time

说明

public DateTime DateTime::setTime ( int $hour , int $minute [, int $second ] )
DateTime date_time_set ( DateTime $object , int $hour , int $minute [, int $second ] )

Resets the current time of the DateTime object to a different time.

参数

object

Procedural style only: A DateTime object returned by date_create()

hour

Hour of the time.

minute

Minute of the time.

second

Second of the time.

返回值

Returns the modified DateTime.

范例

Example #1 Changing the time of a DateTime object

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->format('Y-m-d H:i:s') . "\n";

$datetime->setTime(14, 55, 24);
echo $datetime->format('Y-m-d H:i:s') . "\n";

// Warning: Does not increment the hour!
// This is because the hour has been set (14) - see date_modify()
$datetime->setTime($datetime->format('H'), $datetime->format('n') + 6);
echo $datetime->format('Y-m-d H:i:s') . "\n";

// *Does* increment the day, because the day has not been set
$datetime->setTime($datetime->format('H') + 12, $datetime->format('n'));
echo $datetime->format('Y-m-d H:i:s') . "\n";
?>

上例将输出：

2008-08-03 12:35:23
2008-08-03 14:55:24
2008-08-03 14:14:00
2008-08-04 02:08:00

参见

  • DateTime::setDate() - Sets the date

DateTime::setISODate
DateTime::setTimestamp
DateTime


Sets the date and time based on an Unix timestamp

DateTime::setTime
DateTime::setTimezone
DateTime
PHP 手册

DateTime::setTimestamp

(PHP 5 >= 5.3.0)

DateTime::setTimestamp — Sets the date and time based on an Unix timestamp

说明

public DateTime DateTime::setTimestamp ( int $unixtimestamp )

Sets the date and time based on an Unix timestamp.

参数

unixtimestamp

Unix timestamp representing the date.

返回值

Returns the modified DateTime.

参见

  • DateTime::getTimestamp - Gets the Unix timestamp

DateTime::setTime
DateTime::setTimezone
DateTime


Sets the time zone for the DateTime object

DateTime::setTimestamp
DateTime::sub
DateTime
PHP 手册

DateTime::setTimezone

(PHP 5 >= 5.2.0)

DateTime::setTimezone — Sets the time zone for the DateTime object

说明

public DateTime DateTime::setTimezone ( DateTimeZone $timezone )
DateTime date_timezone_set ( DateTime $object , DateTimeZone $timezone )

参数

object

Procedural style only: A DateTime object returned by date_create()

timezone

Desired time zone.

返回值

Returns the modified DateTime.

范例

Example #1 Setting and getting DateTimeZone objects

<?php
date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->getTimezone()->getName() . "\n";

$datetime = new DateTime('2008-08-03 12:35:23');
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->getTimezone()->getName();
?>

上例将输出：

Europe/London
America/Los_Angeles

参见

  • DateTime::getTimezone() - Return time zone relative to given DateTime
  • timezone_open() - Returns new DateTimeZone object

DateTime::setTimestamp
DateTime::sub
DateTime


Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object

DateTime::setTimezone
DateTime::__wakeup
DateTime
PHP 手册

DateTime::sub

(PHP 5 >= 5.3.0)

DateTime::sub — Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object

说明

public DateTime DateTime::sub ( DateInterval $interval )
DateTime date_sub ( DateTime $object , DateInterval $interval )

Subtracts the specified DateInterval object from the specified DateTime object.

参数

object

Procedural style only: A DateTime object returned by date_create()

interval

The amount to be subtracted. For the date use "P3D", "P3M", "P3Y" or a combination of the three e.g. "P2M5D" (Y = Years, M = Months, D = Days.) MUST BE YEAR MONTH DAY FORMAT "P5Y", "P5M2D", "P5Y4D". For the time use "T3H", "T3M", "T3S" or or a combination of the three e.g. "T5H20M" (H = Hours, M = Minutes, S = Seconds). For dateTime us "P5D2M4YT5H20M". The digit before the letter (NOT P or T) can be any amount.

返回值

Returns the modified DateTime.

范例

Example #1 date_sub() example

<?php

$date = new DateTime("18-July-2008 16:30:30");
echo $date->format("d-m-Y H:i:s").'<br />';

date_sub($date, new DateInterval("P5D"));
echo '<br />'.$date->format("d-m-Y").' : 5 Days';

date_sub($date, new DateInterval("P5M"));
echo '<br />'.$date->format("d-m-Y").' : 5 Months';

date_sub($date, new DateInterval("P5Y"));
echo '<br />'.$date->format("d-m-Y").' : 5 Years';

date_sub($date, new DateInterval("P5Y5M5D"));
echo '<br />'.$date->format("d-m-Y").' : 5 Days, 5 Months, 5 Years';

date_sub($date, new DateInterval("P5YT5H"));
echo '<br />'.$date->format("d-m-Y H:i:s").' : 5 Years, 5 Hours';

?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • DateTime::add() - Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object
  • DateTime::diff() - Returns the difference between two DateTime objects

DateTime::setTimezone
DateTime::__wakeup
DateTime


The __wakeup handler

DateTime::sub
DateTimeZone
DateTime
PHP 手册

DateTime::__wakeup

(PHP 5 >= 5.2.0)

DateTime::__wakeup — The __wakeup handler

说明

public DateTime DateTime::__wakeup ( void )

The __wakeup handler.

参数

This function has no parameters.

返回值

Initializes a DateTime object.

DateTime::sub
DateTimeZone
DateTime


The DateTimeZone class

简介

Representation of time zone.

Class synopsis

DateTimeZone
DateTimeZone {
/* Constants */
const integer DateTimeZone::AFRICA =1 ;
const integer DateTimeZone::AMERICA =2 ;
const integer DateTimeZone::ANTARCTICA =4 ;
const integer DateTimeZone::ARCTIC =8 ;
const integer DateTimeZone::ASIA =16 ;
const integer DateTimeZone::ATLANTIC =32 ;
const integer DateTimeZone::AUSTRALIA =64 ;
const integer DateTimeZone::EUROPE =128 ;
const integer DateTimeZone::INDIAN =256 ;
const integer DateTimeZone::PACIFIC =512 ;
const integer DateTimeZone::UTC =1024 ;
const integer DateTimeZone::ALL =2047 ;
const integer DateTimeZone::ALL_WITH_BC =4095 ;
const integer DateTimeZone::PER_COUNTRY =4096 ;
/* Methods */
__construct ( string $timezone )
public array getLocation ( void )
public string getName ( void )
int getOffset ( DateTime $datetime )
array getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
array listAbbreviations ( void )
array listIdentifiers ([ int $what=DateTime::ALL [, string $country=NULL ]] )
}

预定义常量

DateTimeZone Node Types

DateTimeZone::AFRICA

Africa time zones.

DateTimeZone::AMERICA

America time zones.

DateTimeZone::ANTARCTICA

Antarctica time zones.

DateTimeZone::ARCTIC

Artic time zones.

DateTimeZone::ASIA

Asia time zones.

DateTimeZone::ATLANTIC

Atlantic time zones.

DateTimeZone::AUSTRALIA

Australia time zones.

DateTimeZone::EUROPE

Europe time zones.

DateTimeZone::INDIAN

Indian time zones.

DateTimeZone::PACIFIC

Pacific time zones.

DateTimeZone::UTC

UTC time zones.

DateTimeZone::ALL

All time zones.

DateTimeZone::ALL_WITH_BC

All time zones including backwards compatible.

DateTimeZone::PER_COUNTRY

Time zones per country.

Table of Contents

  • DateTimeZone::__construct — Creates new DateTimeZone object
  • DateTimeZone::getLocation — Returns location information for a timezone
  • DateTimeZone::getName — Returns the name of the timezone
  • DateTimeZone::getOffset — Returns the timezone offset from GMT
  • DateTimeZone::getTransitions — Returns all transitions for the timezone
  • DateTimeZone::listAbbreviations — Returns associative array containing dst, offset and the timezone name
  • DateTimeZone::listIdentifiers — Returns numerically index array with all timezone identifiers
DateTime::__wakeup
DateTimeZone::__construct
Date/Time


Creates new DateTimeZone object

DateTimeZone
DateTimeZone::getLocation
DateTimeZone
PHP 手册

DateTimeZone::__construct

(PHP 5 >= 5.2.0)

DateTimeZone::__construct — Creates new DateTimeZone object

说明

DateTimeZone::__construct ( string $timezone )

Creates new DateTimeZone object.

参数

timezone

One of timezones.

返回值

Returns DateTimeZone on success.

错误／异常

This method throws Exception if the timezone supplied is not recognised as a valid timezone.

范例

Example #1 Catching errors when instantiating DateTimeZone

<?php
// Error handling by catching exceptions
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');

foreach ($timezones as $tz) {
    try {
        $mars = new DateTimeZone($tz);
    } catch(Exception $e) {
        echo $e->getMessage() . '<br />';
    }
}
?>

上例将输出：

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)

DateTimeZone
DateTimeZone::getLocation
DateTimeZone


Returns location information for a timezone

DateTimeZone::__construct
DateTimeZone::getName
DateTimeZone
PHP 手册

DateTimeZone::getLocation

(PHP 5 >= 5.3.0)

DateTimeZone::getLocation — Returns location information for a timezone

说明

public array DateTimeZone::getLocation ( void )

Returns location information for a timezone, including country code, latitude/longitude and comments.

参数

This function has no parameters.

返回值

Array containing location information about timezone.

范例

Example #1 DateTimeZone::getLocation() example

<?php
$tz = new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
?>

上例将输出：

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)

DateTimeZone::__construct
DateTimeZone::getName
DateTimeZone


Returns the name of the timezone

DateTimeZone::getLocation
DateTimeZone::getOffset
DateTimeZone
PHP 手册

DateTimeZone::getName

(PHP 5 >= 5.2.0)

DateTimeZone::getName — Returns the name of the timezone

说明

public string DateTimeZone::getName ( void )

Returns the name of the timezone.

参数

This function has no parameters.

返回值

One of timezones.

DateTimeZone::getLocation
DateTimeZone::getOffset
DateTimeZone


Returns the timezone offset from GMT

DateTimeZone::getName
DateTimeZone::getTransitions
DateTimeZone
PHP 手册

DateTimeZone::getOffset

(PHP 5 >= 5.2.0)

DateTimeZone::getOffset — Returns the timezone offset from GMT

说明

int DateTimeZone::getOffset ( DateTime $datetime )
int timezone_offset_get ( DateTimeZone $object , DateTime $datetime )

This function returns the offset to GMT for the date/time specified in the datetime parameter. The GMT offset is calculated with the timezone information contained in the DateTime object being used.

参数

object

Procedural style only: A DateTimeZone object returned by timezone_open()

datetime

DateTime that contains the date/time to compute the offset from.

返回值

Returns time zone offset in seconds on success or FALSE on failure.

范例

Example #1 timezone_offset_get() examples

<?php
// Create two timezone objects, one for Taipei (Taiwan) and one for
// Tokyo (Japan)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Create two DateTime objects that will contain the same Unix timestamp, but
// have different timezones attached to them.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Calculate the GMT offset for the date/time contained in the $dateTimeTaipei
// object, but using the timezone rules as defined for Tokyo
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Should show int(32400) (for dates after Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>

DateTimeZone::getName
DateTimeZone::getTransitions
DateTimeZone


Returns all transitions for the timezone

DateTimeZone::getOffset
DateTimeZone::listAbbreviations
DateTimeZone
PHP 手册

DateTimeZone::getTransitions

(PHP 5 >= 5.2.0)

DateTimeZone::getTransitions — Returns all transitions for the timezone

说明

array DateTimeZone::getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
array timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin [, int $timestamp_end ]] )

参数

object

Procedural style only: A DateTimeZone object returned by timezone_open()

timestamp_begin

Begin timestamp.

timestamp_end

End timestamp.

返回值

Returns numerically indexed array containing associative array with all transitions on success or FALSE on failure.

范例

Example #1 A timezone_transitions_get() example

<?php
$timezone = new DateTimeZone("CET");
print_r(reset($timezone->getTransitions()));
?>

上例的输出类似于：

Array
(
    [ts] => -1693706400
    [time] => 1916-04-30T22:00:00+0000
    [offset] => 7200
    [isdst] => 1
    [abbr] => CEST
)

DateTimeZone::getOffset
DateTimeZone::listAbbreviations
DateTimeZone


Returns associative array containing dst, offset and the timezone name

DateTimeZone::getTransitions
DateTimeZone::listIdentifiers
DateTimeZone
PHP 手册

DateTimeZone::listAbbreviations

(PHP 5 >= 5.2.0)

DateTimeZone::listAbbreviations — Returns associative array containing dst, offset and the timezone name

说明

array DateTimeZone::listAbbreviations ( void )
array timezone_abbreviations_list ( void )

返回值

Returns array on success or FALSE on failure.

范例

Example #1 A timezone_abbreviations_list() example

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

上例的输出类似于：

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

参见

  • timezone_identifiers_list() - 别名 DateTimeZone::listIdentifiers

DateTimeZone::getTransitions
DateTimeZone::listIdentifiers
DateTimeZone


Returns numerically index array with all timezone identifiers

DateTimeZone::listAbbreviations
DateInterval
DateTimeZone
PHP 手册

DateTimeZone::listIdentifiers

(PHP 5 >= 5.3.0)

DateTimeZone::listIdentifiers — Returns numerically index array with all timezone identifiers

说明

array DateTimeZone::listIdentifiers ([ int $what=DateTime::ALL [, string $country=NULL ]] )
array timezone_identifiers_list ([ int $what=DateTime::ALL [, string $country=NULL ]] )

参数

object

Procedural style only: A DateTime object returned by date_create()

what

One of DateTimeZone class constants, defaults to DateTimeZone::ALL.

country

A two-letter ISO 3166-1 compatible country code.

返回值

Returns array on success or FALSE on failure.

范例

Example #1 A timezone_identifiers_list() example

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
    echo "$timezone_identifiers[$i]\n";
}
?>

上例的输出类似于：

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmera

参见

  • timezone_abbreviations_list() - 别名 DateTimeZone::listAbbreviations

DateTimeZone::listAbbreviations
DateInterval
DateTimeZone


The DateInterval class

简介

Representation of date interval.

Class synopsis

DateInterval
DateInterval {
/* Methods */
__construct ( string $interval_spec )
public static DateInterval createFromDateString ( string $time )
public string format ( void )
}

Table of Contents

  • DateInterval::__construct — Creates new DateInterval object
  • DateInterval::createFromDateString — Sets up a DateInterval from the relative parts of the string
  • DateInterval::format — Formats the interval
DateTimeZone::listIdentifiers
DateInterval::__construct
Date/Time


Creates new DateInterval object

DateInterval
DateInterval::createFromDateString
DateInterval
PHP 手册

DateInterval::__construct

(PHP 5 >= 5.3.0)

DateInterval::__construct — Creates new DateInterval object

说明

DateInterval::__construct ( string $interval_spec )

Creates new DateInterval object.

参数

interval_spec

Interval specification.

DateInterval
DateInterval::createFromDateString
DateInterval


Sets up a DateInterval from the relative parts of the string

DateInterval::__construct
DateInterval::format
DateInterval
PHP 手册

DateInterval::createFromDateString

(PHP 5 >= 5.3.0)

DateInterval::createFromDateString — Sets up a DateInterval from the relative parts of the string

说明

public static DateInterval DateInterval::createFromDateString ( string $time )

Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string.

参数

time

Date with relative parts.

返回值

Returns new DateInterval instance if success.

DateInterval::__construct
DateInterval::format
DateInterval


Formats the interval

DateInterval::createFromDateString
DatePeriod
DateInterval
PHP 手册

DateInterval::format

(PHP 5 >= 5.3.0)

DateInterval::format — Formats the interval

说明

public string DateInterval::format ( void )

Formats the interval.

参数

This function has no parameters.

返回值

Returns the formatted interval.

DateInterval::createFromDateString
DatePeriod
DateInterval


The DatePeriod class

简介

Representation of date period.

Class synopsis

DatePeriod
DatePeriod implements Traversable {
/* Constants */
const integer DatePeriod::EXCLUDE_START_DATE =1 ;
/* Methods */
__construct ( DateTime $start , DateInterval $interval , int $recurrences [, int $options ] )
}

预定义常量

DatePeriod Node Types

DatePeriod::EXCLUDE_START_DATE

Exclude start date, used in DatePeriod::__construct().

Table of Contents

  • DatePeriod::__construct — Creates new DatePeriod object
DateInterval::format
DatePeriod::__construct
Date/Time


Creates new DatePeriod object

DatePeriod
Date/Time 函数
DatePeriod
PHP 手册

DatePeriod::__construct

(PHP 5 >= 5.3.0)

DatePeriod::__construct — Creates new DatePeriod object

说明

DatePeriod::__construct ( DateTime $start , DateInterval $interval , int $recurrences [, int $options ] )
DatePeriod::__construct ( DateTime $start , DateInterval $interval , DateTime $end [, int $options ] )
DatePeriod::__construct ( string $isostr [, int $options ] )

Creates new DatePeriod object.

参数

start

Start date.

interval

Interval.

recurrences

Number of recurrences.

end

End date.

isostr

String containing the ISO interval.

options

Can be set to DateTime::EXCLUDE_START_DATE.

DatePeriod
Date/Time 函数
DatePeriod


Date/Time 函数

Table of Contents

  • checkdate — 验证一个格里高里日期
  • date_add — 别名 DateTime::add
  • date_create_from_format — 别名 DateTime::createFromFormat
  • date_create — Returns new DateTime object
  • date_date_set — 别名 DateTime::setDate
  • date_default_timezone_get — 取得一个脚本中所有日期时间函数所使用的默认时区
  • date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区
  • date_diff — 别名 DateTime::diff
  • date_format — 别名 DateTime::format
  • date_get_last_errors — 别名 DateTime::getLastErrors
  • date_interval_create_from_date_string — 别名 DateInterval::createFromDateString
  • date_interval_format — 别名 DateInterval::format
  • date_isodate_set — 别名 DateTime::setISODate
  • date_modify — 别名 DateTime::modify
  • date_offset_get — 别名 DateTime::getOffset
  • date_parse_from_format — Get info about given date
  • date_parse — Returns associative array with detailed info about given date
  • date_sub — 别名 DateTime::sub
  • date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end
  • date_sunrise — 返回给定的日期与地点的日出时间
  • date_sunset — 返回给定的日期与地点的日落时间
  • date_time_set — 别名 DateTime::setTime
  • date_timestamp_get — 别名 DateTime::getTimestamp
  • date_timestamp_set — 别名 DateTime::setTimestamp
  • date_timezone_get — 别名 DateTime::getTimezone
  • date_timezone_set — 别名 DateTime::setTimezone
  • date — 格式化一个本地时间／日期
  • getdate — 取得日期／时间信息
  • gettimeofday — 取得当前时间
  • gmdate — 格式化一个 GMT/UTC 日期／时间
  • gmmktime — 取得 GMT 日期的 UNIX 时间戳
  • gmstrftime — 根据区域设置格式化 GMT/UTC 时间／日期
  • idate — 将本地时间日期格式化为整数
  • localtime — 取得本地时间
  • microtime — 返回当前 Unix 时间戳和微秒数
  • mktime — 取得一个日期的 Unix 时间戳
  • strftime — 根据区域设置格式化本地时间／日期
  • strptime — 解析由 strftime 生成的日期／时间
  • strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳
  • time — 返回当前的 Unix 时间戳
  • timezone_abbreviations_list — 别名 DateTimeZone::listAbbreviations
  • timezone_identifiers_list — 别名 DateTimeZone::listIdentifiers
  • timezone_location_get — 别名 DateTimeZone::getLocation
  • timezone_name_from_abbr — Returns the timezone name from abbrevation
  • timezone_name_get — 别名 DateTimeZone::getName
  • timezone_offset_get — 别名 DateTimeZone::getOffset
  • timezone_open — Returns new DateTimeZone object
  • timezone_transitions_get — 别名 DateTimeZone::getTransitions
DatePeriod::__construct
checkdate
Date/Time


验证一个格里高里日期

Date/Time 函数
date_add
Date/Time 函数
PHP 手册

checkdate

(PHP 4, PHP 5)

checkdate — 验证一个格里高里日期

说明

bool checkdate ( int $month , int $day , int $year )

如果给出的日期有效则返回 TRUE，否则返回 FALSE。检查由参数构成的日期的合法性。日期在以下情况下被认为有效：

  • year 的值是从 1 到 32767
  • month 的值是从 1 到 12
  • Day 的值在给定的 month 所应该具有的天数范围之内，闰年已经考虑进去了。

Example #1 checkdate() 例子

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

上例将输出：

bool(true)
bool(false)

参见 mktime() 和 strtotime()。

Date/Time 函数
date_add
Date/Time 函数


别名 DateTime::add

checkdate
date_create_from_format
Date/Time 函数
PHP 手册

date_add

(PHP 5 >= 5.3.0)

date_add — 别名 DateTime::add

说明

本函数是该函数的别名： DateTime::add

checkdate
date_create_from_format
Date/Time 函数


别名 DateTime::createFromFormat

date_add
date_create
Date/Time 函数
PHP 手册

date_create_from_format

(PHP 5 >= 5.3.0)

date_create_from_format — 别名 DateTime::createFromFormat

说明

本函数是该函数的别名： DateTime::createFromFormat

date_add
date_create
Date/Time 函数


Returns new DateTime object

date_create_from_format
date_date_set
Date/Time 函数
PHP 手册

date_create

(PHP 5 >= 5.2.0)

date_create — Returns new DateTime object

说明

DateTime date_create ([ string $time="now" [, DateTimeZone $timezone=NULL ]] )

参数

time

String in a format accepted by strtotime(), defaults to "now".

timezone

Time zone of the time.

返回值

Returns DateTime object on success or FALSE on failure.

范例

Example #1 date_create() example

<?php
date_default_timezone_set('Europe/London');

$datetime = date_create('2008-08-03 14:52:10');
echo date_format($datetime, DATE_ATOM);
?>

上例将输出：

2008-08-03T14:52:10+01:00

date_create_from_format
date_date_set
Date/Time 函数


别名 DateTime::setDate

date_create
date_default_timezone_get
Date/Time 函数
PHP 手册

date_date_set

(PHP 5 >= 5.2.0)

date_date_set — 别名 DateTime::setDate

说明

本函数是该函数的别名： DateTime::setDate

date_create
date_default_timezone_get
Date/Time 函数


取得一个脚本中所有日期时间函数所使用的默认时区

date_date_set
date_default_timezone_set
Date/Time 函数
PHP 手册

date_default_timezone_get

(PHP 5 >= 5.2.0)

date_default_timezone_get — 取得一个脚本中所有日期时间函数所使用的默认时区

说明

string date_default_timezone_get ( void )

本函数返回默认时区，使用如下“假定”的顺序：

  • 用 date_default_timezone_set() 函数设定的时区（如果设定了的话）

  • TZ 环境变量（如果非空）

  • date.timezone 配置选项（如果设定了的话）

  • 自己推测（如果操作系统支持）

  • 如果以上选择都不成功，则返回 UTC

返回值

返回一个 string。

参见

  • date_default_timezone_set() - 设定用于一个脚本中所有日期时间函数的默认时区

date_date_set
date_default_timezone_set
Date/Time 函数


设定用于一个脚本中所有日期时间函数的默认时区

date_default_timezone_get
date_diff
Date/Time 函数
PHP 手册

date_default_timezone_set

(PHP 5 >= 5.2.0)

date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区

说明

bool date_default_timezone_set ( string $timezone_identifier )

date_default_timezone_set() 设定用于所有日期时间函数的默认时区。

Note: 自 PHP 5.1.0 起（此版本日期时间函数被重写了），如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息，如果使用系统设定或 TZ 环境变量则还会产生 E_STRICT 级别的信息。

参数

timezone_identifier

时区标识符，例如 UTC 或 Europe/Lisbon。合法标识符列表见List of Supported Timezones。

返回值

如果 timezone_identifier 参数无效则返回 FALSE，否则返回 TRUE。

更新日志

版本 | 说明
5.1.2 | 本版本开始验证 timezone_identifier 参数。

参见

  • date_default_timezone_get() - 取得一个脚本中所有日期时间函数所使用的默认时区

date_default_timezone_get
date_diff
Date/Time 函数


别名 DateTime::diff

date_default_timezone_set
date_format
Date/Time 函数
PHP 手册

date_diff

(PHP 5 >= 5.3.0)

date_diff — 别名 DateTime::diff

说明

本函数是该函数的别名： DateTime::diff

date_default_timezone_set
date_format
Date/Time 函数


别名 DateTime::format

date_diff
date_get_last_errors
Date/Time 函数
PHP 手册

date_format

(PHP 5 >= 5.2.0)

date_format — 别名 DateTime::format

说明

本函数是该函数的别名： DateTime::format

date_diff
date_get_last_errors
Date/Time 函数


别名 DateTime::getLastErrors

date_format
date_interval_create_from_date_string
Date/Time 函数
PHP 手册

date_get_last_errors

(PHP 5 >= 5.3.0)

date_get_last_errors — 别名 DateTime::getLastErrors

说明

本函数是该函数的别名： DateTime::getLastErrors

date_format
date_interval_create_from_date_string
Date/Time 函数


别名 DateInterval::createFromDateString

date_get_last_errors
date_interval_format
Date/Time 函数
PHP 手册

date_interval_create_from_date_string

(PHP 5 >= 5.3.0)

date_interval_create_from_date_string — 别名 DateInterval::createFromDateString

说明

本函数是该函数的别名： DateInterval::createFromDateString

date_get_last_errors
date_interval_format
Date/Time 函数


别名 DateInterval::format

date_interval_create_from_date_string
date_isodate_set
Date/Time 函数
PHP 手册

date_interval_format

(PHP 5 >= 5.3.0)

date_interval_format — 别名 DateInterval::format

说明

本函数是该函数的别名： DateInterval::format

date_interval_create_from_date_string
date_isodate_set
Date/Time 函数


别名 DateTime::setISODate

date_interval_format
date_modify
Date/Time 函数
PHP 手册

date_isodate_set

(PHP 5 >= 5.2.0)

date_isodate_set — 别名 DateTime::setISODate

说明

本函数是该函数的别名： DateTime::setISODate

date_interval_format
date_modify
Date/Time 函数


别名 DateTime::modify

date_isodate_set
date_offset_get
Date/Time 函数
PHP 手册

date_modify

(PHP 5 >= 5.2.0)

date_modify — 别名 DateTime::modify

说明

本函数是该函数的别名： DateTime::modify

date_isodate_set
date_offset_get
Date/Time 函数


别名 DateTime::getOffset

date_modify
date_parse_from_format
Date/Time 函数
PHP 手册

date_offset_get

(PHP 5 >= 5.2.0)

date_offset_get — 别名 DateTime::getOffset

说明

本函数是该函数的别名： DateTime::getOffset

date_modify
date_parse_from_format
Date/Time 函数


Get info about given date

date_offset_get
date_parse
Date/Time 函数
PHP 手册

date_parse_from_format

(PHP 5 >= 5.3.0)

date_parse_from_format — Get info about given date

说明

array date_parse_from_format ( string $format , string $date )

Returns associative array with detailed info about given date.

参数

format

Format accepted by date() with some extras.

date

String representing the date.

返回值

Returns associative array with detailed info about given date.

范例

Example #1 date_parse_from_format() example

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

上例将输出：

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => -60
    [is_dst] =>
)

date_offset_get
date_parse
Date/Time 函数


Returns associative array with detailed info about given date

date_parse_from_format
date_sub
Date/Time 函数
PHP 手册

date_parse

(PHP 5 >= 5.2.0)

date_parse — Returns associative array with detailed info about given date

说明

array date_parse ( string $date )

参数

date

Date in format accepted by strtotime().

返回值

Returns array with information about the parsed date on success, or FALSE on failure.

错误／异常

In case the date format has an error, the element 'errors' will contains the error messages.

范例

Example #1 A date_parse() example

<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>

上例将输出：

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

参见

  • getdate() - 取得日期／时间信息

date_parse_from_format
date_sub
Date/Time 函数


别名 DateTime::sub

date_parse
date_sun_info
Date/Time 函数
PHP 手册

date_sub

(PHP 5 >= 5.3.0)

date_sub — 别名 DateTime::sub

说明

本函数是该函数的别名： DateTime::sub

date_parse
date_sun_info
Date/Time 函数


Returns an array with information about sunset/sunrise and twilight begin/end

date_sub
date_sunrise
Date/Time 函数
PHP 手册

date_sun_info

(PHP 5 >= 5.1.2)

date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end

说明

array date_sun_info ( int $time , float $latitude , float $longitude )

参数

time

Timestamp.

latitude

Latitude in degrees.

longitude

Longitude in degrees.

返回值

Returns array on success or FALSE on failure.

范例

Example #1 A date_sun_info() example

<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
    echo "$key: " . date("H:i:s", $val) . "\n";
}
?>

上例将输出：

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

参见

  • date_sunrise() - 返回给定的日期与地点的日出时间
  • date_sunset() - 返回给定的日期与地点的日落时间

date_sub
date_sunrise
Date/Time 函数


返回给定的日期与地点的日出时间

date_sun_info
date_sunset
Date/Time 函数
PHP 手册

date_sunrise

(PHP 5)

date_sunrise — 返回给定的日期与地点的日出时间

说明

mixed date_sunrise ( int $timestamp [, int $format [, float $latitude [, float $longitude [, float $zenith [, float $gmt_offset ]]]]] )

date_sunrise() 返回给定的日期（以 timestamp 指定）与地点的日出时间。latitude ，longitude 和 zenith 参数默认值分别为配置选项中的 date.default_latitude，date.default_longitude 和 date.sunrise_zenith。

latitude 默认是指北纬。因此如果要指定南纬，必须传递一个负值。同样规则也适用于 longitude ，其默认是指东经。

gmt_offset 参数的单位是小时。

format 常量
常量 | 说明 | 取值举例
SUNFUNCS_RET_STRING | 以 string 格式返回结果 | 16:46
SUNFUNCS_RET_DOUBLE | 以 float 格式返回结果 | 16.78243132
SUNFUNCS_RET_TIMESTAMP | 以 integer 格式（时间戳）返回结果 | 1095034606

Example #1 date_sunrise() 例子

<?php

/* 计算葡萄牙里斯本的日出时间
Latitude:  北纬 38.4 度
Longitude: 西经 9 度
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

上例的输出类似于：

Mon Dec 20 2004, sunrise time : 08:54

参见 date_sunset()。

date_sun_info
date_sunset
Date/Time 函数


返回给定的日期与地点的日落时间

date_sunrise
date_time_set
Date/Time 函数
PHP 手册

date_sunset

(PHP 5)

date_sunset — 返回给定的日期与地点的日落时间

说明

mixed date_sunset ( int $timestamp [, int $format [, float $latitude [, float $longitude [, float $zenith [, float $gmt_offset ]]]]] )

date_sunset() 返回给定的日期（以 timestamp 指定）与地点的日落时间。latitude ，longitude 和 zenith 参数默认值分别为配置选项中的 date.default_latitude，date.default_longitude 和 date.sunrise_zenith。

latitude 默认是指北纬。因此如果要指定南纬，必须传递一个负值。同样规则也适用于 longitude ，其默认是指东经。

gmt_offset 参数的单位是小时。

format 常量
常量 | 说明 | 取值举例
SUNFUNCS_RET_STRING | 以 string 格式返回结果 | 16:46
SUNFUNCS_RET_DOUBLE | 以 float 格式返回结果 | 16.78243132
SUNFUNCS_RET_TIMESTAMP | 以 integer 格式（时间戳）返回结果 | 1095034606

Example #1 date_sunset() 例子

<?php

/* 计算葡萄牙里斯本的日落时间
Latitude:  北纬 38.4 度
Longitude: 西经 9 度
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

上例的输出类似于：

Mon Dec 20 2004, sunset time : 18:13

参见 date_sunrise()。

date_sunrise
date_time_set
Date/Time 函数


别名 DateTime::setTime

date_sunset
date_timestamp_get
Date/Time 函数
PHP 手册

date_time_set

(PHP 5 >= 5.2.0)

date_time_set — 别名 DateTime::setTime

说明

本函数是该函数的别名： DateTime::setTime

date_sunset
date_timestamp_get
Date/Time 函数


别名 DateTime::getTimestamp

date_time_set
date_timestamp_set
Date/Time 函数
PHP 手册

date_timestamp_get

(PHP 5 >= 5.3.0)

date_timestamp_get — 别名 DateTime::getTimestamp

说明

本函数是该函数的别名： DateTime::getTimestamp

date_time_set
date_timestamp_set
Date/Time 函数


别名 DateTime::setTimestamp

date_timestamp_get
date_timezone_get
Date/Time 函数
PHP 手册

date_timestamp_set

(PHP 5 >= 5.3.0)

date_timestamp_set — 别名 DateTime::setTimestamp

说明

本函数是该函数的别名： DateTime::setTimestamp

date_timestamp_get
date_timezone_get
Date/Time 函数


别名 DateTime::getTimezone

date_timestamp_set
date_timezone_set
Date/Time 函数
PHP 手册

date_timezone_get

(PHP 5 >= 5.2.0)

date_timezone_get — 别名 DateTime::getTimezone

说明

本函数是该函数的别名： DateTime::getTimezone

date_timestamp_set
date_timezone_set
Date/Time 函数


别名 DateTime::setTimezone

date_timezone_get
date
Date/Time 函数
PHP 手册

date_timezone_set

(PHP 5 >= 5.2.0)

date_timezone_set — 别名 DateTime::setTimezone

说明

本函数是该函数的别名： DateTime::setTimezone

date_timezone_get
date
Date/Time 函数


格式化一个本地时间／日期

date_timezone_set
getdate
Date/Time 函数
PHP 手册

date

(PHP 4, PHP 5)

date — 格式化一个本地时间／日期

说明

string date ( string $format [, int $timestamp ] )

返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说，timestamp 是可选的，默认值为 time()。

Tip

自 PHP 5.1.1 起有几个有用的常量可用作标准的日期／时间格式来指定 format 参数。

Tip

自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳。

Note: 有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。（此范围符合 32 位有符号整数的最小值和最大值）。不过在 PHP 5.1 之前此范围在某些系统（如 Windows）中限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日。

Note: 要将字符串表达的时间转换成时间戳，应该使用 strtotime()。此外一些数据库有一些函数将其时间格式转换成时间戳（例如 MySQL 的 » UNIX_TIMESTAMP 函数）。

格式字串可以识别以下 format 参数的字符串
format 字符 | 说明 | 返回值例子
日 | --- | ---
d | 月份中的第几天，有前导零的 2 位数字 | 01 到 31
D | 星期中的第几天，文本表示，3 个字母 | Mon 到 Sun
j | 月份中的第几天，没有前导零 | 1 到 31
l（“L”的小写字母） | 星期几，完整的文本格式 | Sunday 到 Saturday
N | ISO-8601 格式数字表示的星期中的第几天（PHP 5.1.0 新加） | 1（表示星期一）到 7（表示星期天）
S | 每月天数后面的英文后缀，2 个字符 | st，nd，rd 或者 th。可以和 j 一起用
w | 星期中的第几天，数字表示 | 0（表示星期天）到 6（表示星期六）
z | 年份中的第几天 | 0 到 366
星期 | --- | ---
W | ISO-8601 格式年份中的第几周，每周从星期一开始（PHP 4.1.0 新加的） | 例如：42（当年的第 42 周）
月 | --- | ---
F | 月份，完整的文本格式，例如 January 或者 March | January 到 December
m | 数字表示的月份，有前导零 | 01 到 12
M | 三个字母缩写表示的月份 | Jan 到 Dec
n | 数字表示的月份，没有前导零 | 1 到 12
t | 给定月份所应有的天数 | 28 到 31
年 | --- | ---
L | 是否为闰年 | 如果是闰年为 1，否则为 0
o | ISO-8601 格式年份数字。这和 Y 的值相同，只除了如果 ISO 的星期数（W）属于前一年或下一年，则用那一年。（PHP 5.1.0 新加） | Examples: 1999 or 2003
Y | 4 位数字完整表示的年份 | 例如：1999 或 2003
y | 2 位数字表示的年份 | 例如：99 或 03
时间 | --- | ---
a | 小写的上午和下午值 | am 或 pm
A | 大写的上午和下午值 | AM 或 PM
B | Swatch Internet 标准时 | 000 到 999
g | 小时，12 小时格式，没有前导零 | 1 到 12
G | 小时，24 小时格式，没有前导零 | 0 到 23
h | 小时，12 小时格式，有前导零 | 01 到 12
H | 小时，24 小时格式，有前导零 | 00 到 23
i | 有前导零的分钟数 | 00 到 59>
s | 秒数，有前导零 | 00 到 59>
时区 | --- | ---
e | 时区标识（PHP 5.1.0 新加） | 例如：UTC，GMT，Atlantic/Azores
I | 是否为夏令时 | 如果是夏令时为 1，否则为 0
O | 与格林威治时间相差的小时数 | 例如：+0200
P | 与格林威治时间（GMT）的差别，小时和分钟之间有冒号分隔（PHP 5.1.3 新加） | 例如：+02:00
T | 本机所在的时区 | 例如：EST，MDT（【译者注】在 Windows 下为完整文本格式，例如“Eastern Standard Time”，中文版会显示“中国标准时间”）。
Z | 时差偏移量的秒数。UTC 西边的时区偏移量总是负的，UTC 东边的时区偏移量总是正的。 | -43200 到 43200
完整的日期／时间 | --- | ---
c | ISO 8601 格式的日期（PHP 5 新加） | 2004-02-12T15:19:21+00:00
r | RFC 822 格式的日期 | 例如：Thu, 21 Dec 2000 16:01:07 +0200
U | 从 Unix 纪元（January 1 1970 00:00:00 GMT）开始至今的秒数 | 参见 time()

格式字串中不能被识别的字符将原样显示。Z 格式在使用 gmdate() 时总是返回 0。

Example #1 date() 例子

<?php
// 设定要用的默认时区。自 PHP 5.1 可用
date_default_timezone_set('UTC');

// 输出类似：Monday
echo date("l");

// 输出类似：Monday 15th of August 2005 03:12:46 PM
echo date('l dS \of F Y h:i:s A');

// 输出：July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* 在格式参数中使用常量 */
// 输出类似：Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// 输出类似：2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

在格式字串中的字符前加上反斜线来转义可以避免它被按照上表解释。如果加上反斜线后的字符本身就是一个特殊序列，那还要转义反斜线。

Example #2 在 date() 中转义字符

<?php
// prints something like: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

可以把 date() 和 mktime() 结合使用来得到未来或过去的日期。

Example #3 date() 和 mktime() 例子

<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Note: 由于夏令时的缘故，这种方法比简单地在时间戳上加减一天或者一个月的秒数更可靠。

一些使用 date() 格式化日期的例子。注意要转义所有其它的字符，因为目前有特殊含义的字符会产生不需要的结果，而其余字符在 PHP 将来的版本中可能会被用上。当转义时，注意用单引号以避免类似 \n 的字符变成了换行符。

Example #4 date() 格式举例

<?php
// 假定今天是：March 10th, 2001, 5:16:18 pm
$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
?>

要格式化其它语种的日期，应该用 setlocale() 和 strftime() 函数来代替 date()。

参见 getlastmod()，gmdate()，mktime()，strftime() 和 time()。

date_timezone_set
getdate
Date/Time 函数


取得日期／时间信息

date
gettimeofday
Date/Time 函数
PHP 手册

getdate

(PHP 4, PHP 5)

getdate — 取得日期／时间信息

说明

array getdate ([ int $timestamp ] )

返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下：

返回的关联数组中的键名单元
键名 | 说明 | 返回值例子
"seconds" | 秒的数字表示 | 0 到 59
"minutes" | 分钟的数字表示 | 0 到 59
"hours" | 小时的数字表示 | 0 到 23
"mday" | 月份中第几天的数字表示 | 1 到 31
"wday" | 星期中第几天的数字表示 | 0（表示星期天）到 6（表示星期六）
"mon" | 月份的数字表示 | 1 到 12
"year" | 4 位数字表示的完整年份 | 例如：1999 或 2003
"yday" | 一年中第几天的数字表示 | 0 到 365
"weekday" | 星期几的完整文本表示 | Sunday 到 Saturday
"month" | 月份的完整文本表示 | January> 到 December
0 | 自从 Unix 纪元开始至今的秒数，和 time() 的返回值以及用于 date() 的值类似。 | 系统相关，典型值为从 -2147483648 到 2147483647。

Example #1 getdate() 例子

<?php
$today = getdate();
print_r($today);
?>

上例的输出类似于：

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

参见 date()，time() 和 setlocale()。

date
gettimeofday
Date/Time 函数


取得当前时间

getdate
gmdate
Date/Time 函数
PHP 手册

gettimeofday

(PHP 4, PHP 5)

gettimeofday — 取得当前时间

说明

mixed gettimeofday ([ bool $return_float ] )

本函数是 gettimeofday(2) 的接口。返回一个关联数组，包含有系统调用返回的数据。

自 PHP 5.1.0 起有个可选参数 return_float ，当其设为 TRUE 时，gettimeofday() 会返回一个浮点数。

数组中的键为：

  • "sec" - 自 Unix 纪元起的秒数
  • "usec" - 微秒数
  • "minuteswest" - 格林威治向西的分钟数
  • "dsttime" - 夏令时修正的类型

Example #1 gettimeofday() example

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

上例的输出类似于：

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)

1073504408.23910

getdate
gmdate
Date/Time 函数


格式化一个 GMT/UTC 日期／时间

gettimeofday
gmmktime
Date/Time 函数
PHP 手册

gmdate

(PHP 4, PHP 5)

gmdate — 格式化一个 GMT/UTC 日期／时间

说明

string gmdate ( string $format [, int $timestamp ] )

同 date() 函数完全一样，只除了返回的时间是格林威治标准时（GMT）。例如当在中国（GMT +0800）运行以下程序时，第一行显示“Jan 01 2000 00:00:00”而第二行显示“Dec 31 1999 16:00:00”。

Example #1 gmdate() 例子

<?php
echo date("M d Y H:i:s", mktime (0,0,0,1,1,2000));
echo gmdate("M d Y H:i:s", mktime (0,0,0,1,1,2000));
?>

Note: 在 PHP 5.1.0 之前，负的时间戳（1970 年之前的日期）在某些系统下（例如 Windows）不能工作。

参见 date()，mktime()，gmmktime() 和 strftime()。

gettimeofday
gmmktime
Date/Time 函数


取得 GMT 日期的 UNIX 时间戳

gmdate
gmstrftime
Date/Time 函数
PHP 手册

gmmktime

(PHP 4, PHP 5)

gmmktime — 取得 GMT 日期的 UNIX 时间戳

说明

int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

和 mktime() 完全一样，只除了返回值是格林威治标准时的时间戳。

参数总是表示 GMT 日期，因此 is_dst 对结果没有影响。

和 mktime() 一样，参数可以从右到左依次空着，空着的参数会被设为相应的当前 GMT 值。

Note: 自 5.1.0 起，is_dst 参数被废弃。因此应该用新的时区处理特性。

Note: gmmktime() 内部使用了 mktime()，因此只有转换成本地时间也合法的时间才能用在其中。 so only times valid in derived local time can be used.

Example #1 gmmktime() 在 Windows 中的边界

<?php
gmmktime(0, 0, 0, 1, 1, 1970); // 在 GMT 和西方合法，在东方不合法
?>

参见 mktime()，date() 和 time()。

gmdate
gmstrftime
Date/Time 函数


根据区域设置格式化 GMT/UTC 时间／日期

gmmktime
idate
Date/Time 函数
PHP 手册

gmstrftime

(PHP 4, PHP 5)

gmstrftime — 根据区域设置格式化 GMT/UTC 时间／日期

说明

string gmstrftime ( string $format [, int $timestamp ] )

和 strftime() 的行为相同，只除了返回时间是格林威治标准时（GMT）。例如，当在东部标准时（EST，GMT -500）运行时，下面第一行显示“Dec 31 1998 20:00:00”，而第二行显示“Jan 01 1999 01:00:00”。

Example #1 gmstrftime() 例子

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime (20,0,0,12,31,98))."\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime (20,0,0,12,31,98))."\n";
?>

参见 strftime()。

gmmktime
idate
Date/Time 函数


将本地时间日期格式化为整数

gmstrftime
localtime
Date/Time 函数
PHP 手册

idate

(PHP 5)

idate — 将本地时间日期格式化为整数

说明

int idate ( string $format [, int $timestamp ] )

根据给定的格式字符对 timestamp 格式化并返回数字结果。timestamp 为可选项，默认值为本地当前时间，即 time() 的值。

和 date() 不同，idate() 只接受一个字符作为 format 参数。

format 参数可识别以下字符
format 字符 | 说明
B | Swatch Beat/Internet Time
d | 月份中的第几天
h | 小时（12 小时格式）
H | 小时（24 小时格式）
i | 分钟
I | 如果启用夏时制则返回 1，否则返回 0
L | 如果是闰年则返回 1，否则返回 0
m | 月份的数字
s | 秒数
t | 本月的总天数
U | 自 Unix 纪元（January 1 1970 00:00:00 GMT）起的秒数――这和 time() 作用相同
w | 星期中的第几天（星期天是 0）
W | ISO-8601 格式年份中的第几个星期，每星期从星期一开始
y | 年份（1 或 2 位数字――见下面说明）
Y | 年份（4 位数字）
z | 年份中的第几天
Z | 以秒为单位的时区偏移量

Note: 因为 idate() 总是返回 integer，不能以“0”开头，因此 idate() 可能会返回比用户期望中要少的数字。见下面例子：

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// 下面以两位数字格式显示年份，但是因为
// 以“0”打头，因此只会显示“4”
echo idate('y', $timestamp);
?>

参见 date() 和 time()。

gmstrftime
localtime
Date/Time 函数


取得本地时间

idate
microtime
Date/Time 函数
PHP 手册

localtime

(PHP 4, PHP 5)

localtime — 取得本地时间

说明

array localtime ([ int $timestamp [, bool $is_associative ]] )

localtime() 函数返回一个数组，其结构和 C 函数调用返回的完全一样。localtime() 的第一个参数是时间戳，如果没有给出则使用从 time() 返回的当前时间。第二个参数是 is_associative ，如果设为 FALSE 或未提供则返回的是普通的数字索引数组。如果该参数设为 TRUE 则 localtime() 函数返回包含有所有从 C 的 localtime 函数调用所返回的不同单元的关联数组。关联数组中不同的键名为：

  • "tm_sec" - 秒数
  • "tm_min" - 分钟数
  • "tm_hour" - 小时
  • "tm_mday" - 月份中的第几日
  • "tm_mon" - 年份中的第几个月，从 0 开始表示一月
  • "tm_year" - 年份，从 1900 开始
  • "tm_wday" - 星期中的第几天
  • "tm_yday" - 一年中的第几天
  • "tm_isdst" - 夏令时当前是否生效

Note: 月份从 0（一月）到 11（十二月），星期数从 0（星期天）到 6（星期六）。

Example #1 time() 例子

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

上例的输出类似于：

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [9] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

idate
microtime
Date/Time 函数


返回当前 Unix 时间戳和微秒数

localtime
mktime
Date/Time 函数
PHP 手册

microtime

(PHP 4, PHP 5)

microtime — 返回当前 Unix 时间戳和微秒数

说明

mixed microtime ([ bool $get_as_float ] )

microtime() 当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。

如果调用时不带可选参数，本函数以 "msec sec" 的格式返回一个字符串，其中 sec 是自 Unix 纪元（0:00:00 January 1, 1970 GMT）起到现在的秒数，msec 是微秒部分。字符串的两部分都是以秒为单位返回的。

如果给出了 get_as_float 参数并且其值等价于 TRUE，microtime() 将返回一个浮点数。

Note: get_as_float 参数是 PHP 5.0.0 新加的。

Example #1 用 microtime() 对脚本的运行计时

<?php
/**
 * Simple function to replicate PHP 5 behaviour
 */
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Sleep for a while
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";
?>

参见 time()。

localtime
mktime
Date/Time 函数


取得一个日期的 Unix 时间戳

microtime
strftime
Date/Time 函数
PHP 手册

mktime

(PHP 4, PHP 5)

mktime — 取得一个日期的 Unix 时间戳

说明

int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

根据给出的参数返回 Unix 时间戳。时间戳是一个长整数，包含了从 Unix 纪元（January 1 1970 00:00:00 GMT）到给定时间的秒数。

参数可以从右向左省略，任何省略的参数会被设置成本地日期和时间的当前值。

参数

hour

小时数。

minute

分钟数。

second

秒数（一分钟之内）。

month

月份数。

day

天数。

year

年份数，可以是两位或四位数字，0-69 对应于 2000-2069，70-100 对应于 1970-2000。在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下，year 的合法范围是 1901 到 2038 之间，不过此限制自 PHP 5.1.0 起已被克服了。

is_dst

本参数可以设为 1，表示正处于夏时制时间（DST），0 表示不是夏时制，或者 -1（默认值）表示不知道是否是夏时制。如果未知，PHP 会尝试自己搞明白。这可能产生不可预知（但并非不正确）的结果。如果 PHP 运行的系统中启用了 DST 或者 is_dst 设为 1，某些时间是无效的。例如 DST 自 2:00 生效，则所有处于 2:00 到 3:00 之间的时间都无效，mktime() 会返回一个未定义（通常为负）的值。某些系统（例如 Solaris 8）的 DST 在午夜生效，则 DST 生效当天的 0:30 会被计算为前一天的 23:30。

Note: 自 PHP 5.1.0 起，本参数已被废弃。应该使用新的时区处理特性来替代。

返回值

mktime() 根据给出的参数返回 Unix 时间戳。如果参数非法，本函数返回 FALSE（在 PHP 5.1 之前返回 -1）。

更新日志

版本 | 说明
3.0.10 | 加入了 is_dst 参数
5.1.0 | is_dst 参数被废弃。出错时函数返回 FALSE 而不再是 -1。修正了本函数可以接受年月日参数全为零。

范例

Example #1 mktime() 例子

mktime() 在做日期计算和验证方面很有用，它会自动计算超出范围的输入的正确值。例如下面例子中每一行都会产生字符串 "Jan-01-1998"。

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

Example #2 下个月的最后一天

任何给定月份的最后一天都可以被表示为下个月的第 "0" 天，而不是 -1 天。下面两个例子都会产生字符串 "The last day in Feb 2000 is: 29"。

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
?>

注释

Caution

在 PHP 5.1.0 之前，在任何已知 Windows 版本以及一些其它系统下不支持负的时间戳。因此年份的有效范围限制为 1970 到 2038。

参见

  • gmmktime() - 取得 GMT 日期的 UNIX 时间戳
  • date() - 格式化一个本地时间／日期
  • time() - 返回当前的 Unix 时间戳

microtime
strftime
Date/Time 函数


根据区域设置格式化本地时间／日期

mktime
strptime
Date/Time 函数
PHP 手册

strftime

(PHP 4, PHP 5)

strftime — 根据区域设置格式化本地时间／日期

说明

string strftime ( string $format [, int $timestamp ] )

返回用给定的格式字串对给出的 timestamp 进行格式输出后的字符串。如果没有给出时间戳则用当前的本地时间。月份和星期几以及其它和语言有关的字符串写法和用 setlocale() 设定的当前的区域有关。

格式字串能识别下列转换标记：

  • %a - 当前区域星期几的简写
  • %A - 当前区域星期几的全称
  • %b - 当前区域月份的简写
  • %B - 当前区域月份的全称
  • %c - 当前区域首选的日期时间表达
  • %C - 世纪值（年份除以 100 后取整，范围从 00 到 99）
  • %d - 月份中的第几天，十进制数字（范围从 01 到 31）
  • %D - 和 %m/%d/%y 一样
  • %e - 月份中的第几天，十进制数字，一位的数字前会加上一个空格（范围从 ' 1' 到 '31'）
  • %g - 和 %G 一样，但是没有世纪
  • %G - 4 位数的年份，符合 ISO 星期数（参见 %V）。和 %V 的格式和值一样，只除了如果 ISO 星期数属于前一年或者后一年，则使用那一年。
  • %h - 和 %b 一样
  • %H - 24 小时制的十进制小时数（范围从 00 到 23）
  • %I - 12 小时制的十进制小时数（范围从 00 到 12）
  • %j - 年份中的第几天，十进制数（范围从 001 到 366）
  • %m - 十进制月份（范围从 01 到 12）
  • %M - 十进制分钟数
  • %n - 换行符
  • %p - 根据给定的时间值为 `am' 或 `pm'，或者当前区域设置中的相应字符串
  • %r - 用 a.m. 和 p.m. 符号的时间
  • %R - 24 小时符号的时间
  • %S - 十进制秒数
  • %t - 制表符
  • %T - 当前时间，和 %H:%M:%S 一样
  • %u - 星期几的十进制数表达 [1,7]，1 表示星期一
    Warning

    尽管 ISO 9889:1999（当前的 C 标准）明确指出一周从星期一开始，但是 Sun Solaris 的一周似乎从星期天开始并作为 1。

  • %U - 本年的第几周，从第一周的第一个星期天作为第一天开始
  • %V - 本年第几周的 ISO 8601:1988 格式，范围从 01 到 53，第 1 周是本年第一个至少还有 4 天的星期，星期一作为每周的第一天。（用 %G 或者 %g 作为指定时间戳相应周数的年份组成。）
  • %W - 本年的第几周数，从第一周的第一个星期一作为第一天开始
  • %w - 星期中的第几天，星期天为 0
  • %x - 当前区域首选的时间表示法，不包括时间
  • %X - 当前区域首选的时间表示法，不包括日期
  • %y - 没有世纪数的十进制年份（范围从 00 到 99）
  • %Y - 包括世纪数的十进制年份
  • %Z 或 %z - 时区名或缩写
  • %% - 文字上的 `%' 字符

Note: 可能不是所有的转换标记都被 C 库文件支持，这种情况下 PHP 的 strftime() 也不支持。此外，不是所有的平台都支持负的时间戳，因此日期的范围可能限定在不早于 Unix 纪元。这意味着例如 %e, %T，%R 和 %D（可能更多）以及早于 Jan 1, 1970 的时间在 Windows，一些 Linux 发行版本，以及其它几个操作系统中无效。对于 Windows 系统，所支持的转换标记可在 » MSDN 网站找到。

Example #1 strftime() 区域的例子

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>

本例在你的系统中安装有各自的区域设置后才能工作。

Note: %G 和 %V，如果数字编号系统未能充分理解，基于 ISO 8601:1988 的星期数可能得出未预期的结果。见上面的 %V 和以下的例子。

Example #2 ISO 8601:1988 week number example

<?php
/*     December 2002 / January 2003
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     December 2004 / January 2005
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

参见 setlocale()，mktime()，strptime() 以及 » Open Group specification of strftime()。

mktime
strptime
Date/Time 函数


解析由 strftime 生成的日期／时间

strftime
strtotime
Date/Time 函数
PHP 手册

strptime

(PHP 5 >= 5.1.0)

strptime — 解析由 strftime() 生成的日期／时间

说明

array strptime ( string $date , string $format )

strptime() 返回一个将 date 解析后的数组，如果出错返回 FALSE。

月份和星期几的名字以及其它与语种有关的字符串对应于 setlocale()设定的当前区域（LC_TIME）。

参数

date （string）

被解析的字符串（例如从 strftime() 返回的）

format （string）

date 所使用的格式（例如同 strftime() 中所使用的相同）。

更多有关格式选项的信息见 strftime() 页面。

返回值

返回一个数组，失败则返回 FALSE。

数组中包含以下单元
键名 | 说明
tm_sec | 当前分钟内的秒数（0-61）
tm_min | 当前小时内的分钟数（0-59）
tm_hour | 午夜起的小时数（0-23）
tm_mday | 月份中的第几天（1-31）
tm_mon | 自一月起过了几个月（0-11）
tm_year | 自 1900 年起过了几年
tm_wday | 自星期天起过了几天（0-6）
tm_yday | 本年自一月一日起过了多少天（0-365）
unparsed | date 中未能通过指定的 format 识别的部分

范例

Example #1 strptime() 例子

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

上例的输出类似于：

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

参见

  • strftime() - 根据区域设置格式化本地时间／日期

strftime
strtotime
Date/Time 函数


将任何英文文本的日期时间描述解析为 Unix 时间戳

strptime
time
Date/Time 函数
PHP 手册

strtotime

(PHP 4, PHP 5)

strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳

说明

int strtotime ( string $time [, int $now ] )

本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳（自 January 1 1970 00:00:00 GMT 起的秒数），其值相对于 now 参数给出的时间，如果没有提供此参数则用系统当前时间。

本函数将使用 TZ 环境变量（如果有的话）来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期／时间函数。此过程在 date_default_timezone_get() 函数页面中有说明。

Note: 如果给定的年份是两位数字的格式，则其值 0-69 表示 2000-2069，70-100 表示 1970-2000。

参数

time

被解析的字符串，格式根据 GNU » 日期输入格式的语法。在 PHP 5.0 之前，time 中不允许有毫秒数，自 PHP 5.0 起可以有但是会被忽略掉。

now

用来计算返回值的时间戳。

返回值

成功则返回时间戳，否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。

更新日志

版本 | 说明
5.1.0 | 失败时返回 FALSE，不再是 -1。

范例

Example #1 strtotime() 例子

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Example #2 失败检查

<?php
$str = 'Not Good';

// previous to PHP 5.1.0 you would compare with -1, instead of false
if (($timestamp = strtotime($str)) === false) {
    echo "The string ($str) is bogus";
} else {
    echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
}
?>

注释

Warning

在 PHP 5 中到 5.0.2 之前，"now" 和其它相对时间从今天午夜起错误计算了。这和正确从当前时间起计算的其它版本不同。

Warning

在 PHP 4.4 之前，"next" 被错误计算为 +2。对此通常的解决方法是用 "+1"。

Note: 有效的时间戳通常从 Fri, 13 Dec 1901 20:45:54 GMT 到 Tue, 19 Jan 2038 03:14:07 GMT（对应于 32 位有符号整数的最小值和最大值）。不是所有的平台都支持负的时间戳，那么日记范围就被限制为不能早于 Unix 纪元。这意味着在 1970 年 1 月 1 日之前的日期将不能用在 Windows，一些 Linux 版本，以及几个其它的操作系统中。不过 PHP 5.1.0 及更新的版本克服了此限制。

参见

  • strptime() - 解析由 strftime 生成的日期／时间

strptime
time
Date/Time 函数


返回当前的 Unix 时间戳

strtotime
timezone_abbreviations_list
Date/Time 函数
PHP 手册

time

(PHP 4, PHP 5)

time — 返回当前的 Unix 时间戳

说明

int time ( void )

返回自从 Unix 纪元（格林威治时间 1970 年 1 月 1 日 00:00:00）到当前时间的秒数。

Tip

自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳。

Example #1 time() 例子

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
                   // 7 days; 24 hours; 60 mins; 60secs
echo 'Now:       '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>

上例的输出类似于：

Now:       2005-03-30
Next Week: 2005-04-07

参见 date() 和 microtime()。

strtotime
timezone_abbreviations_list
Date/Time 函数


别名 DateTimeZone::listAbbreviations

time
timezone_identifiers_list
Date/Time 函数
PHP 手册

timezone_abbreviations_list

(PHP 5 >= 5.1.0)

timezone_abbreviations_list — 别名 DateTimeZone::listAbbreviations

说明

本函数是该函数的别名： DateTimeZone::listAbbreviations

time
timezone_identifiers_list
Date/Time 函数


别名 DateTimeZone::listIdentifiers

timezone_abbreviations_list
timezone_location_get
Date/Time 函数
PHP 手册

timezone_identifiers_list

(PHP 5 >= 5.1.0)

timezone_identifiers_list — 别名 DateTimeZone::listIdentifiers

说明

本函数是该函数的别名： DateTimeZone::listIdentifiers

timezone_abbreviations_list
timezone_location_get
Date/Time 函数


别名 DateTimeZone::getLocation

timezone_identifiers_list
timezone_name_from_abbr
Date/Time 函数
PHP 手册

timezone_location_get

(PHP 5 >= 5.3.0)

timezone_location_get — 别名 DateTimeZone::getLocation

说明

本函数是该函数的别名： DateTimeZone::getLocation

timezone_identifiers_list
timezone_name_from_abbr
Date/Time 函数


Returns the timezone name from abbrevation

timezone_location_get
timezone_name_get
Date/Time 函数
PHP 手册

timezone_name_from_abbr

(PHP 5 >= 5.1.3)

timezone_name_from_abbr — Returns the timezone name from abbrevation

说明

string timezone_name_from_abbr ( string $abbr [, int $gmtOffset=-1 [, int $isdst=-1 ]] )

参数

abbr

Time zone abbreviation.

gmtOffset

Offset from GMT in seconds. Defaults to -1 which means that first found time zone corresponding to abbr is returned. Otherwise exact offset is searched and only if not found then the first time zone with any offset is returned.

isdst

Daylight saving time indicator. If abbr doesn't exist then the time zone is searched solely by offset and isdst .

返回值

Returns time zone name on success or FALSE on failure.

范例

Example #1 A timezone_name_from_abbr() example

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

上例的输出类似于：

Europe/Berlin
Europe/Paris

参见

  • timezone_abbreviations_list() - 别名 DateTimeZone::listAbbreviations

timezone_location_get
timezone_name_get
Date/Time 函数


别名 DateTimeZone::getName

timezone_name_from_abbr
timezone_offset_get
Date/Time 函数
PHP 手册

timezone_name_get

(PHP 5 >= 5.1.0)

timezone_name_get — 别名 DateTimeZone::getName

说明

本函数是该函数的别名： DateTimeZone::getName

timezone_name_from_abbr
timezone_offset_get
Date/Time 函数


别名 DateTimeZone::getOffset

timezone_name_get
timezone_open
Date/Time 函数
PHP 手册

timezone_offset_get

(PHP 5 >= 5.1.0)

timezone_offset_get — 别名 DateTimeZone::getOffset

说明

本函数是该函数的别名： DateTimeZone::getOffset

timezone_name_get
timezone_open
Date/Time 函数


Returns new DateTimeZone object

timezone_offset_get
timezone_transitions_get
Date/Time 函数
PHP 手册

timezone_open

(PHP 5 >= 5.1.0)

timezone_open — Returns new DateTimeZone object

说明

DateTimeZone timezone_open ( string $timezone )
DateTimeZone DateTimeZone::__construct ( string $timezone )

参数

timezone

Time zone identifier as full name (e.g. Europe/Prague) or abbreviation (e.g. CET).

返回值

Returns DateTimeZone object on success or FALSE on failure.

timezone_offset_get
timezone_transitions_get
Date/Time 函数


别名 DateTimeZone::getTransitions

timezone_open
命令行特有的扩展
Date/Time 函数
PHP 手册

timezone_transitions_get

(PHP 5 >= 5.2.0)

timezone_transitions_get — 别名 DateTimeZone::getTransitions

说明

本函数是该函数的别名： DateTimeZone::getTransitions

timezone_open
命令行特有的扩展
Date/Time 函数


命令行特有的扩展

  • Newt
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Newt 函数
  • Ncurses — Ncurses Terminal Screen Control
    • 简介
    • 安装/配置
    • 预定义常量
    • Ncurses 函数
  • Readline — GNU Readline
    • 简介
    • 安装/配置
    • 预定义常量
    • Readline 函数
timezone_transitions_get
Newt
函数参考


Newt

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
    • Newt form exit reasons
    • Newt colorsets
    • Newt argument flags
    • Newt Flags Sense
    • Newt Components Flags
    • File Descriptor Flags
    • Checkbox Tree Flags
    • Entry Flags
    • Listbox Flags
    • Textbox Flags
    • Form Flags
    • Newt Keys
    • Newt Anchors
    • Grid Flags
  • 范例
    • Basic usage
  • Newt 函数
    • newt_bell — Send a beep to the terminal
    • newt_button_bar — This function returns a grid containing the buttons created.
    • newt_button — Create a new button
    • newt_centered_window — Open a centered window of the specified size
    • newt_checkbox_get_value — Retreives value of checkox resource
    • newt_checkbox_set_flags — Configures checkbox resource
    • newt_checkbox_set_value — Sets the value of the checkbox
    • newt_checkbox_tree_add_item — Adds new item to the checkbox tree
    • newt_checkbox_tree_find_item — Finds an item in the checkbox tree
    • newt_checkbox_tree_get_current — Returns checkbox tree selected item
    • newt_checkbox_tree_get_entry_value — 说明
    • newt_checkbox_tree_get_multi_selection — 说明
    • newt_checkbox_tree_get_selection — 说明
    • newt_checkbox_tree_multi — 说明
    • newt_checkbox_tree_set_current — 说明
    • newt_checkbox_tree_set_entry_value — 说明
    • newt_checkbox_tree_set_entry — 说明
    • newt_checkbox_tree_set_width — 说明
    • newt_checkbox_tree — 说明
    • newt_checkbox — 说明
    • newt_clear_key_buffer — Discards the contents of the terminal's input buffer without waiting for additional input
    • newt_cls — 说明
    • newt_compact_button — 说明
    • newt_component_add_callback — 说明
    • newt_component_takes_focus — 说明
    • newt_create_grid — 说明
    • newt_cursor_off — 说明
    • newt_cursor_on — 说明
    • newt_delay — 说明
    • newt_draw_form — 说明
    • newt_draw_root_text — Displays the string text at the position indicated
    • newt_entry_get_value — 说明
    • newt_entry_set_filter — 说明
    • newt_entry_set_flags — 说明
    • newt_entry_set — 说明
    • newt_entry — 说明
    • newt_finished — Uninitializes newt interface
    • newt_form_add_component — Adds a single component to the form
    • newt_form_add_components — Add several components to the form
    • newt_form_add_hot_key — 说明
    • newt_form_destroy — Destroys a form
    • newt_form_get_current — 说明
    • newt_form_run — Runs a form
    • newt_form_set_background — 说明
    • newt_form_set_height — 说明
    • newt_form_set_size — 说明
    • newt_form_set_timer — 说明
    • newt_form_set_width — 说明
    • newt_form_watch_fd — 说明
    • newt_form — Create a form
    • newt_get_screen_size — Fills in the passed references with the current size of the terminal
    • newt_grid_add_components_to_form — 说明
    • newt_grid_basic_window — 说明
    • newt_grid_free — 说明
    • newt_grid_get_size — 说明
    • newt_grid_h_close_stacked — 说明
    • newt_grid_h_stacked — 说明
    • newt_grid_place — 说明
    • newt_grid_set_field — 说明
    • newt_grid_simple_window — 说明
    • newt_grid_v_close_stacked — 说明
    • newt_grid_v_stacked — 说明
    • newt_grid_wrapped_window_at — 说明
    • newt_grid_wrapped_window — 说明
    • newt_init — Initialize newt
    • newt_label_set_text — 说明
    • newt_label — 说明
    • newt_listbox_append_entry — 说明
    • newt_listbox_clear_selection — 说明
    • newt_listbox_clear — 说明
    • newt_listbox_delete_entry — 说明
    • newt_listbox_get_current — 说明
    • newt_listbox_get_selection — 说明
    • newt_listbox_insert_entry — 说明
    • newt_listbox_item_count — 说明
    • newt_listbox_select_item — 说明
    • newt_listbox_set_current_by_key — 说明
    • newt_listbox_set_current — 说明
    • newt_listbox_set_data — 说明
    • newt_listbox_set_entry — 说明
    • newt_listbox_set_width — 说明
    • newt_listbox — 说明
    • newt_listitem_get_data — 说明
    • newt_listitem_set — 说明
    • newt_listitem — 说明
    • newt_open_window — Open a window of the specified size and position
    • newt_pop_help_line — Replaces the current help line with the one from the stack
    • newt_pop_window — Removes the top window from the display
    • newt_push_help_line — Saves the current help line on a stack, and displays the new line
    • newt_radio_get_current — 说明
    • newt_radiobutton — 说明
    • newt_redraw_help_line — 说明
    • newt_reflow_text — 说明
    • newt_refresh — Updates modified portions of the screen
    • newt_resize_screen — 说明
    • newt_resume — Resume using the newt interface after calling newt_suspend
    • newt_run_form — Runs a form
    • newt_scale_set — 说明
    • newt_scale — 说明
    • newt_scrollbar_set — 说明
    • newt_set_help_callback — 说明
    • newt_set_suspend_callback — Set a callback function which gets invoked when user presses the suspend key
    • newt_suspend — Tells newt to return the terminal to its initial state
    • newt_textbox_get_num_lines — 说明
    • newt_textbox_reflowed — 说明
    • newt_textbox_set_height — 说明
    • newt_textbox_set_text — 说明
    • newt_textbox — 说明
    • newt_vertical_scrollbar — 说明
    • newt_wait_for_key — Doesn't return until a key has been pressed
    • newt_win_choice — 说明
    • newt_win_entries — 说明
    • newt_win_menu — 说明
    • newt_win_message — 说明
    • newt_win_messagev — 说明
    • newt_win_ternary — 说明
命令行特有的扩展
简介
命令行特有的扩展


简介

This is a PHP language extension for RedHat Newt library, a terminal-based window and widget library for writing applications with user friendly interface. Once this extension is enabled in PHP it will provide the use of Newt widgets, such as windows, buttons, checkboxes, radiobuttons, labels, editboxes, scrolls, textareas, scales, etc. Use of this extension if very similar to the original Newt API of C programming language.

Newt
安装/配置
Newt


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Newt


需求

This module uses the functions of the RedHat Newt library. You need libnewt version >= 0.51.0.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/newt.

在 PHP 4 中本 PECL 扩展的源程序位于 PHP 源程序中的 ext/ 目录下或者在上面的 PECL 连接中。 In order to use these functions you must compile CGI or CLI PHP with newt support by using the --with-newt[=DIR] configure option.

Note: This extension is not available for Windows platform.
You may need also curses and slang libraries, in order to compile this extension. To specify locations of these libraries, use the following configuration options: --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang

需求
运行时配置
安装/配置


资源类型

This extension uses two resource types: "newt component" and "newt grid".

Resource type "newt component" is returned by functions, which create common newt widgets (for example: newt_button())

Resource type "newt grid" is a special link identifier for components, returned by newt grid factory functions (for example: newt_create_grid())

运行时配置
预定义常量
安装/配置


预定义常量

Table of Contents

  • Newt form exit reasons
  • Newt colorsets
  • Newt argument flags
  • Newt Flags Sense
  • Newt Components Flags
  • File Descriptor Flags
  • Checkbox Tree Flags
  • Entry Flags
  • Listbox Flags
  • Textbox Flags
  • Form Flags
  • Newt Keys
  • Newt Anchors
  • Grid Flags

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

资源类型
Newt form exit reasons
Newt


Newt form exit reasons

Newt form exit reasons
constant | meaning
NEWT_EXIT_HOTKEY | hotkey defined by newt_form_add_hot_key() was pressed
NEWT_EXIT_COMPONENT | some component has caused form to exit
NEWT_EXIT_FDREADY | file descriptor specified in newt_form_watch_fd() is ready to be read or written to
NEWT_EXIT_TIMER | time specified in newt_form_set_timer() has elapsed
预定义常量
Newt colorsets
预定义常量


Newt colorsets

Newt colorsets
constant | meaning
NEWT_COLORSET_ROOT |
NEWT_COLORSET_BORDER |
NEWT_COLORSET_WINDOW |
NEWT_COLORSET_SHADOW |
NEWT_COLORSET_TITLE |
NEWT_COLORSET_BUTTON |
NEWT_COLORSET_ACTBUTTON |
NEWT_COLORSET_CHECKBOX |
NEWT_COLORSET_ACTCHECKBOX |
NEWT_COLORSET_ENTRY |
NEWT_COLORSET_LABEL |
NEWT_COLORSET_LISTBOX |
NEWT_COLORSET_ACTLISTBOX |
NEWT_COLORSET_TEXTBOX |
NEWT_COLORSET_ACTTEXTBOX |
NEWT_COLORSET_HELPLINE |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_EMPTYSCALE |
NEWT_COLORSET_FULLSCALE |
NEWT_COLORSET_DISENTRY |
NEWT_COLORSET_COMPACTBUTTON |
NEWT_COLORSET_ACTSELLISTBOX |
NEWT_COLORSET_SELLISTBOX |
Newt form exit reasons
Newt argument flags
预定义常量


Newt argument flags

Newt argument flags
constant | meaning
NEWT_ARG_LAST |
NEWT_ARG_APPEND |
Newt colorsets
Newt Flags Sense
预定义常量


Newt Flags Sense

Newt Flags Sense
constant | meaning
NEWT_FLAGS_SET |
NEWT_FLAGS_RESET |
NEWT_FLAGS_TOGGLE |
Newt argument flags
Newt Components Flags
预定义常量


Newt Components Flags

Newt Components Flags
constant | meaning
NEWT_FLAG_RETURNEXIT | Exit form, when component is activated
NEWT_FLAG_HIDDEN | Component is hidden
NEWT_FLAG_SCROLL | Component is scrollable
NEWT_FLAG_DISABLED | Component is disabled
NEWT_FLAG_BORDER |
NEWT_FLAG_WRAP | Wrap text
NEWT_FLAG_NOF12 | Don't exit form on pressing F12
NEWT_FLAG_MULTIPLE |
NEWT_FLAG_SELECTED | Component is selected
NEWT_FLAG_CHECKBOX | Component is checkbox
NEWT_FLAG_PASSWORD | Entry component is password entry
NEWT_FLAG_SHOWCURSOR | Show cursor
Newt Flags Sense
File Descriptor Flags
预定义常量


File Descriptor Flags

File Descriptor Flags
constant | meaning
NEWT_FD_READ |
NEWT_FD_WRITE |
NEWT_FD_EXCEPT |
Newt Components Flags
Checkbox Tree Flags
预定义常量


Checkbox Tree Flags

Checkbox Tree Flags
constant | meaning
NEWT_CHECKBOXTREE_UNSELECTABLE |
NEWT_CHECKBOXTREE_HIDE_BOX |
NEWT_CHECKBOXTREE_COLLAPSED |
NEWT_CHECKBOXTREE_EXPANDED |
NEWT_CHECKBOXTREE_UNSELECTED |
NEWT_CHECKBOXTREE_SELECTED |
File Descriptor Flags
Entry Flags
预定义常量


Entry Flags

Entry Flags
constant | meaning
NEWT_ENTRY_SCROLL |
NEWT_ENTRY_HIDDEN |
NEWT_ENTRY_RETURNEXIT |
NEWT_ENTRY_DISABLED |
Checkbox Tree Flags
Listbox Flags
预定义常量


Listbox Flags

Listbox Flags
constant | meaning
NEWT_LISTBOX_RETURNEXIT |
Entry Flags
Textbox Flags
预定义常量


Textbox Flags

Textbox Flags
constant | meaning
NEWT_TEXTBOX_WRAP | Wrap text in the textbox
NEWT_TEXTBOX_SCROLL | Scroll text in the textbox
Listbox Flags
Form Flags
预定义常量


Form Flags

Form Flags
constant | meaning
NEWT_FORM_NOF12 | Don't exit form on F12 press
Textbox Flags
Newt Keys
预定义常量


Newt Keys

Newt Keys
constant | meaning
NEWT_KEY_TAB |
NEWT_KEY_ENTER |
NEWT_KEY_SUSPEND |
NEWT_KEY_ESCAPE |
NEWT_KEY_RETURN |
NEWT_KEY_EXTRA_BASE |
NEWT_KEY_UP |
NEWT_KEY_DOWN |
NEWT_KEY_LEFT |
NEWT_KEY_RIGHT |
NEWT_KEY_BKSPC |
NEWT_KEY_DELETE |
NEWT_KEY_HOME |
NEWT_KEY_END |
NEWT_KEY_UNTAB |
NEWT_KEY_PGUP |
NEWT_KEY_PGDN |
NEWT_KEY_INSERT |
NEWT_KEY_F1 |
NEWT_KEY_F2 |
NEWT_KEY_F3 |
NEWT_KEY_F4 |
NEWT_KEY_F5 |
NEWT_KEY_F6 |
NEWT_KEY_F7 |
NEWT_KEY_F8 |
NEWT_KEY_F9 |
NEWT_KEY_F10 |
NEWT_KEY_F11 |
NEWT_KEY_F12 |
NEWT_KEY_RESIZE |
Form Flags
Newt Anchors
预定义常量


Newt Anchors

Newt Anchors
constant | meaning
NEWT_ANCHOR_LEFT |
NEWT_ANCHOR_RIGHT |
NEWT_ANCHOR_TOP |
NEWT_ANCHOR_BOTTOM |
Newt Keys
Grid Flags
预定义常量


Grid Flags

Grid Flags
constant | meaning
NEWT_GRID_FLAG_GROWX |
NEWT_GRID_FLAG_GROWY |
NEWT_GRID_EMPTY |
NEWT_GRID_COMPONENT |
NEWT_GRID_SUBGRID |
Newt Anchors
范例
预定义常量


范例

Table of Contents

  • Basic usage
Grid Flags
Basic usage
Newt


Basic usage

This example is a PHP port of RedHat 'setup' utility dialog, executed in text mode.

Example #1 Newt Usage Example

<?php
newt_init ();
newt_cls ();

newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
newt_push_help_line (null);
newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

newt_get_screen_size (&$rows, &$cols);

newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

$form = newt_form ();

$list = newt_listbox (3, 2, 10);

foreach (array (
    "Authentication configuration",
    "Firewall configuration",
    "Mouse configuration",
    "Network configuration",
    "Printer configuration",
    "System services") as $l_item)
{
    newt_listbox_add_entry ($list, $l_item, $l_item);
}

$b1 = newt_button (5, 12, "Run Tool");
$b2 = newt_button (21, 12, "Quit");

newt_form_add_component ($form, $list);
newt_form_add_components ($form, array($b1, $b2));

newt_refresh ();
newt_run_form ($form);

newt_pop_window ();
newt_pop_help_line ();
newt_finished ();
newt_form_destroy ($form);
?>
范例
Newt 函数
范例


Newt 函数

Table of Contents

  • newt_bell — Send a beep to the terminal
  • newt_button_bar — This function returns a grid containing the buttons created.
  • newt_button — Create a new button
  • newt_centered_window — Open a centered window of the specified size
  • newt_checkbox_get_value — Retreives value of checkox resource
  • newt_checkbox_set_flags — Configures checkbox resource
  • newt_checkbox_set_value — Sets the value of the checkbox
  • newt_checkbox_tree_add_item — Adds new item to the checkbox tree
  • newt_checkbox_tree_find_item — Finds an item in the checkbox tree
  • newt_checkbox_tree_get_current — Returns checkbox tree selected item
  • newt_checkbox_tree_get_entry_value — 说明
  • newt_checkbox_tree_get_multi_selection — 说明
  • newt_checkbox_tree_get_selection — 说明
  • newt_checkbox_tree_multi — 说明
  • newt_checkbox_tree_set_current — 说明
  • newt_checkbox_tree_set_entry_value — 说明
  • newt_checkbox_tree_set_entry — 说明
  • newt_checkbox_tree_set_width — 说明
  • newt_checkbox_tree — 说明
  • newt_checkbox — 说明
  • newt_clear_key_buffer — Discards the contents of the terminal's input buffer without waiting for additional input
  • newt_cls — 说明
  • newt_compact_button — 说明
  • newt_component_add_callback — 说明
  • newt_component_takes_focus — 说明
  • newt_create_grid — 说明
  • newt_cursor_off — 说明
  • newt_cursor_on — 说明
  • newt_delay — 说明
  • newt_draw_form — 说明
  • newt_draw_root_text — Displays the string text at the position indicated
  • newt_entry_get_value — 说明
  • newt_entry_set_filter — 说明
  • newt_entry_set_flags — 说明
  • newt_entry_set — 说明
  • newt_entry — 说明
  • newt_finished — Uninitializes newt interface
  • newt_form_add_component — Adds a single component to the form
  • newt_form_add_components — Add several components to the form
  • newt_form_add_hot_key — 说明
  • newt_form_destroy — Destroys a form
  • newt_form_get_current — 说明
  • newt_form_run — Runs a form
  • newt_form_set_background — 说明
  • newt_form_set_height — 说明
  • newt_form_set_size — 说明
  • newt_form_set_timer — 说明
  • newt_form_set_width — 说明
  • newt_form_watch_fd — 说明
  • newt_form — Create a form
  • newt_get_screen_size — Fills in the passed references with the current size of the terminal
  • newt_grid_add_components_to_form — 说明
  • newt_grid_basic_window — 说明
  • newt_grid_free — 说明
  • newt_grid_get_size — 说明
  • newt_grid_h_close_stacked — 说明
  • newt_grid_h_stacked — 说明
  • newt_grid_place — 说明
  • newt_grid_set_field — 说明
  • newt_grid_simple_window — 说明
  • newt_grid_v_close_stacked — 说明
  • newt_grid_v_stacked — 说明
  • newt_grid_wrapped_window_at — 说明
  • newt_grid_wrapped_window — 说明
  • newt_init — Initialize newt
  • newt_label_set_text — 说明
  • newt_label — 说明
  • newt_listbox_append_entry — 说明
  • newt_listbox_clear_selection — 说明
  • newt_listbox_clear — 说明
  • newt_listbox_delete_entry — 说明
  • newt_listbox_get_current — 说明
  • newt_listbox_get_selection — 说明
  • newt_listbox_insert_entry — 说明
  • newt_listbox_item_count — 说明
  • newt_listbox_select_item — 说明
  • newt_listbox_set_current_by_key — 说明
  • newt_listbox_set_current — 说明
  • newt_listbox_set_data — 说明
  • newt_listbox_set_entry — 说明
  • newt_listbox_set_width — 说明
  • newt_listbox — 说明
  • newt_listitem_get_data — 说明
  • newt_listitem_set — 说明
  • newt_listitem — 说明
  • newt_open_window — Open a window of the specified size and position
  • newt_pop_help_line — Replaces the current help line with the one from the stack
  • newt_pop_window — Removes the top window from the display
  • newt_push_help_line — Saves the current help line on a stack, and displays the new line
  • newt_radio_get_current — 说明
  • newt_radiobutton — 说明
  • newt_redraw_help_line — 说明
  • newt_reflow_text — 说明
  • newt_refresh — Updates modified portions of the screen
  • newt_resize_screen — 说明
  • newt_resume — Resume using the newt interface after calling newt_suspend
  • newt_run_form — Runs a form
  • newt_scale_set — 说明
  • newt_scale — 说明
  • newt_scrollbar_set — 说明
  • newt_set_help_callback — 说明
  • newt_set_suspend_callback — Set a callback function which gets invoked when user presses the suspend key
  • newt_suspend — Tells newt to return the terminal to its initial state
  • newt_textbox_get_num_lines — 说明
  • newt_textbox_reflowed — 说明
  • newt_textbox_set_height — 说明
  • newt_textbox_set_text — 说明
  • newt_textbox — 说明
  • newt_vertical_scrollbar — 说明
  • newt_wait_for_key — Doesn't return until a key has been pressed
  • newt_win_choice — 说明
  • newt_win_entries — 说明
  • newt_win_menu — 说明
  • newt_win_message — 说明
  • newt_win_messagev — 说明
  • newt_win_ternary — 说明
Basic usage
newt_bell
Newt


Send a beep to the terminal

Newt 函数
newt_button_bar
Newt 函数
PHP 手册

newt_bell

(PECL newt >= 0.1)

newt_bell — Send a beep to the terminal

说明

void newt_bell ( void )

This function sends a beep to the terminal.

Note: Depending on the terminal's settings, this beep may or may not be audible.

返回值

无返回值。

Newt 函数
newt_button_bar
Newt 函数


This function returns a grid containing the buttons created.

newt_bell
newt_button
Newt 函数
PHP 手册

newt_button_bar

(PECL newt >= 0.1)

newt_button_bar — This function returns a grid containing the buttons created.

说明

resource newt_button_bar ( array &$buttons )

This function returns a grid containing the buttons created.

参数

buttons

返回值

Returns grid containing the buttons created.

newt_bell
newt_button
Newt 函数


Create a new button

newt_button_bar
newt_centered_window
Newt 函数
PHP 手册

newt_button

(PECL newt >= 0.1)

newt_button — Create a new button

说明

resource newt_button ( int $left , int $top , string $text )

Creates a new button.

参数

left

X-coordinate of the button.

top

Y-coordinate of the button.

text

The text which should be displayed in the button.

返回值

Returns a resource link to the created button component, or FALSE on error.

范例

Example #1 A newt_button() example

<?php

$form = newt_form();

$ok_button = newt_button(5, 12, "Run Tool");

newt_form_add_component($form, $ok_button);

?>

参见

  • newt_button_bar() - This function returns a grid containing the buttons created.

newt_button_bar
newt_centered_window
Newt 函数


Open a centered window of the specified size

newt_button
newt_checkbox_get_value
Newt 函数
PHP 手册

newt_centered_window

(PECL newt >= 0.1)

newt_centered_window — Open a centered window of the specified size

说明

int newt_centered_window ( int $width , int $height [, string $title ] )

Open a centered window of the specified size.

参数

width

Window width

height

Window height

title

Window title

返回值

Undefined value.

参见

  • newt_pop_window() - Removes the top window from the display
  • newt_open_window() - Open a window of the specified size and position

newt_button
newt_checkbox_get_value
Newt 函数


Retreives value of checkox resource

newt_centered_window
newt_checkbox_set_flags
Newt 函数
PHP 手册

newt_checkbox_get_value

(PECL newt >= 0.1)

newt_checkbox_get_value — Retreives value of checkox resource

说明

string newt_checkbox_get_value ( resource $checkbox )

This function returns the character in the sequence which indicates the current value of the checkbox.

参数

checkbox

返回值

Returns character indicating the value of the checkbox.

newt_centered_window
newt_checkbox_set_flags
Newt 函数


Configures checkbox resource

newt_checkbox_get_value
newt_checkbox_set_value
Newt 函数
PHP 手册

newt_checkbox_set_flags

(PECL newt >= 0.1)

newt_checkbox_set_flags — Configures checkbox resource

说明

void newt_checkbox_set_flags ( resource $checkbox , int $flags , int $sense )

This function allows to set various flags on checkbox resource.

参数

checkbox

flags

sense

返回值

无返回值。

newt_checkbox_get_value
newt_checkbox_set_value
Newt 函数


Sets the value of the checkbox

newt_checkbox_set_flags
newt_checkbox_tree_add_item
Newt 函数
PHP 手册

newt_checkbox_set_value

(PECL newt >= 0.1)

newt_checkbox_set_value — Sets the value of the checkbox

说明

void newt_checkbox_set_value ( resource $checkbox , string $value )

This function allows to set the current value of the checkbox resource.

参数

checkbox

value

返回值

无返回值。

newt_checkbox_set_flags
newt_checkbox_tree_add_item
Newt 函数


Adds new item to the checkbox tree

newt_checkbox_set_value
newt_checkbox_tree_find_item
Newt 函数
PHP 手册

newt_checkbox_tree_add_item

(PECL newt >= 0.1)

newt_checkbox_tree_add_item — Adds new item to the checkbox tree

说明

void newt_checkbox_tree_add_item ( resource $checkboxtree , string $text , mixed $data , int $flags , int $index [, int $... ] )

This function allows to add new item to the checkbox tree.

参数

checkboxtree

text

data

flags

index

返回值

无返回值。

newt_checkbox_set_value
newt_checkbox_tree_find_item
Newt 函数


Finds an item in the checkbox tree

newt_checkbox_tree_add_item
newt_checkbox_tree_get_current
Newt 函数
PHP 手册

newt_checkbox_tree_find_item

(PECL newt >= 0.1)

newt_checkbox_tree_find_item — Finds an item in the checkbox tree

说明

array newt_checkbox_tree_find_item ( resource $checkboxtree , mixed $data )

Finds an item in the checkbox tree by item's data.

参数

checkboxtree

data

返回值

Returns checkbox tree item resource, or NULL if it wasn't found.

newt_checkbox_tree_add_item
newt_checkbox_tree_get_current
Newt 函数


Returns checkbox tree selected item

newt_checkbox_tree_find_item
newt_checkbox_tree_get_entry_value
Newt 函数
PHP 手册

newt_checkbox_tree_get_current

(PECL newt >= 0.1)

newt_checkbox_tree_get_current — Returns checkbox tree selected item

说明

mixed newt_checkbox_tree_get_current ( resource $checkboxtree )

This method returns checkbox tree selected tem.

参数

checkboxtree

返回值

Returns current (selected) checkbox tree item.

newt_checkbox_tree_find_item
newt_checkbox_tree_get_entry_value
Newt 函数


newt_checkbox_tree_get_current
newt_checkbox_tree_get_multi_selection
Newt 函数
PHP 手册

newt_checkbox_tree_get_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_get_entry_value —

说明

string newt_checkbox_tree_get_entry_value ( resource $checkboxtree , mixed $data )
Warning

本函数暂无文档，仅有参数列表。

参数

checkboxtree

data

返回值

newt_checkbox_tree_get_current
newt_checkbox_tree_get_multi_selection
Newt 函数


newt_checkbox_tree_get_entry_value
newt_checkbox_tree_get_selection
Newt 函数
PHP 手册

newt_checkbox_tree_get_multi_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_multi_selection —

说明

array newt_checkbox_tree_get_multi_selection ( resource $checkboxtree , string $seqnum )
Warning

本函数暂无文档，仅有参数列表。

参数

checkboxtree

seqnum

返回值

newt_checkbox_tree_get_entry_value
newt_checkbox_tree_get_selection
Newt 函数


newt_checkbox_tree_get_multi_selection
newt_checkbox_tree_multi
Newt 函数
PHP 手册

newt_checkbox_tree_get_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_selection —

说明

array newt_checkbox_tree_get_selection ( resource $checkboxtree )
Warning

本函数暂无文档，仅有参数列表。

参数

checkboxtree

返回值

newt_checkbox_tree_get_multi_selection
newt_checkbox_tree_multi
Newt 函数


newt_checkbox_tree_get_selection
newt_checkbox_tree_set_current
Newt 函数
PHP 手册

newt_checkbox_tree_multi

(PECL newt >= 0.1)

newt_checkbox_tree_multi —

说明

resource newt_checkbox_tree_multi ( int $left , int $top , int $height , string $seq [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

height

seq

flags

返回值

newt_checkbox_tree_get_selection
newt_checkbox_tree_set_current
Newt 函数


newt_checkbox_tree_multi
newt_checkbox_tree_set_entry_value
Newt 函数
PHP 手册

newt_checkbox_tree_set_current

(PECL newt >= 0.1)

newt_checkbox_tree_set_current —

说明

void newt_checkbox_tree_set_current ( resource $checkboxtree , mixed $data )
Warning

本函数暂无文档，仅有参数列表。

参数

checkboxtree

data

返回值

无返回值。

newt_checkbox_tree_multi
newt_checkbox_tree_set_entry_value
Newt 函数


newt_checkbox_tree_set_current
newt_checkbox_tree_set_entry
Newt 函数
PHP 手册

newt_checkbox_tree_set_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry_value —

说明

void newt_checkbox_tree_set_entry_value ( resource $checkboxtree , mixed $data , string $value )
Warning

本函数暂无文档，仅有参数列表。

参数

checkboxtree

data

value

返回值

无返回值。

newt_checkbox_tree_set_current
newt_checkbox_tree_set_entry
Newt 函数


newt_checkbox_tree_set_entry_value
newt_checkbox_tree_set_width
Newt 函数
PHP 手册

newt_checkbox_tree_set_entry

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry —

说明

void newt_checkbox_tree_set_entry ( resource $checkboxtree , mixed $data , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

checkboxtree

data

text

返回值

无返回值。

newt_checkbox_tree_set_entry_value
newt_checkbox_tree_set_width
Newt 函数


newt_checkbox_tree_set_entry
newt_checkbox_tree
Newt 函数
PHP 手册

newt_checkbox_tree_set_width

(PECL newt >= 0.1)

newt_checkbox_tree_set_width —

说明

void newt_checkbox_tree_set_width ( resource $checkbox_tree , int $width )
Warning

本函数暂无文档，仅有参数列表。

参数

checkbox_tree

width

返回值

无返回值。

newt_checkbox_tree_set_entry
newt_checkbox_tree
Newt 函数


newt_checkbox_tree_set_width
newt_checkbox
Newt 函数
PHP 手册

newt_checkbox_tree

(PECL newt >= 0.1)

newt_checkbox_tree —

说明

resource newt_checkbox_tree ( int $left , int $top , int $height [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

height

flags

返回值

newt_checkbox_tree_set_width
newt_checkbox
Newt 函数


newt_checkbox_tree
newt_clear_key_buffer
Newt 函数
PHP 手册

newt_checkbox

(PECL newt >= 0.1)

newt_checkbox —

说明

resource newt_checkbox ( int $left , int $top , string $text , string $def_value [, string $seq ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

text

def_value

seq

返回值

newt_checkbox_tree
newt_clear_key_buffer
Newt 函数


Discards the contents of the terminal's input buffer without waiting for additional input

newt_checkbox
newt_cls
Newt 函数
PHP 手册

newt_clear_key_buffer

(PECL newt >= 0.1)

newt_clear_key_buffer — Discards the contents of the terminal's input buffer without waiting for additional input

说明

void newt_clear_key_buffer ( void )

Discards the contents of the terminal's input buffer without waiting for additional input.

返回值

无返回值。

参见

  • newt_wait_for_key() - Doesn't return until a key has been pressed

newt_checkbox
newt_cls
Newt 函数


newt_clear_key_buffer
newt_compact_button
Newt 函数
PHP 手册

newt_cls

(PECL newt >= 0.1)

newt_cls —

说明

void newt_cls ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

无返回值。

newt_clear_key_buffer
newt_compact_button
Newt 函数


newt_cls
newt_component_add_callback
Newt 函数
PHP 手册

newt_compact_button

(PECL newt >= 0.1)

newt_compact_button —

说明

resource newt_compact_button ( int $left , int $top , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

text

返回值

newt_cls
newt_component_add_callback
Newt 函数


newt_compact_button
newt_component_takes_focus
Newt 函数
PHP 手册

newt_component_add_callback

(PECL newt >= 0.1)

newt_component_add_callback —

说明

void newt_component_add_callback ( resource $component , mixed $func_name , mixed $data )
Warning

本函数暂无文档，仅有参数列表。

参数

component

func_name

data

返回值

无返回值。

newt_compact_button
newt_component_takes_focus
Newt 函数


newt_component_add_callback
newt_create_grid
Newt 函数
PHP 手册

newt_component_takes_focus

(PECL newt >= 0.1)

newt_component_takes_focus —

说明

void newt_component_takes_focus ( resource $component , bool $takes_focus )
Warning

本函数暂无文档，仅有参数列表。

参数

component

takes_focus

返回值

无返回值。

newt_component_add_callback
newt_create_grid
Newt 函数


newt_component_takes_focus
newt_cursor_off
Newt 函数
PHP 手册

newt_create_grid

(PECL newt >= 0.1)

newt_create_grid —

说明

resource newt_create_grid ( int $cols , int $rows )
Warning

本函数暂无文档，仅有参数列表。

参数

cols

rows

返回值

newt_component_takes_focus
newt_cursor_off
Newt 函数


newt_create_grid
newt_cursor_on
Newt 函数
PHP 手册

newt_cursor_off

(PECL newt >= 0.1)

newt_cursor_off —

说明

void newt_cursor_off ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

无返回值。

newt_create_grid
newt_cursor_on
Newt 函数


newt_cursor_off
newt_delay
Newt 函数
PHP 手册

newt_cursor_on

(PECL newt >= 0.1)

newt_cursor_on —

说明

void newt_cursor_on ( void )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

newt_cursor_off
newt_delay
Newt 函数


newt_cursor_on
newt_draw_form
Newt 函数
PHP 手册

newt_delay

(PECL newt >= 0.1)

newt_delay —

说明

void newt_delay ( int $microseconds )
Warning

本函数暂无文档，仅有参数列表。

参数

microseconds

返回值

无返回值。

newt_cursor_on
newt_draw_form
Newt 函数


newt_delay
newt_draw_root_text
Newt 函数
PHP 手册

newt_draw_form

(PECL newt >= 0.1)

newt_draw_form —

说明

void newt_draw_form ( resource $form )
Warning

本函数暂无文档，仅有参数列表。

参数

form

返回值

无返回值。

newt_delay
newt_draw_root_text
Newt 函数


Displays the string text at the position indicated

newt_draw_form
newt_entry_get_value
Newt 函数
PHP 手册

newt_draw_root_text

(PECL newt >= 0.1)

newt_draw_root_text — Displays the string text at the position indicated

说明

void newt_draw_root_text ( int $left , int $top , string $text )

Displays the string text at the position indicated.

参数

left

Column number

Note: If left is negative, the position is measured from the opposite side of the screen.

top

Line number

Note: If top is negative, the position is measured from the opposite side of the screen.

text

Text to display.

返回值

无返回值。

范例

Example #1 A newt_draw_root_text() example

This code demonstrates drawing of titles in the both corners of the screen.

<?php
 newt_init();
 newt_cls();

 newt_draw_root_text (2, 0, "Some root text");
 newt_refresh();
 sleep(1);

 newt_draw_root_text (-30, 0, "Root text in the other corner");
 newt_refresh();
 sleep(1);

 newt_finished();
?>

参见

  • newt_push_help_line() - Saves the current help line on a stack, and displays the new line
  • newt_pop_help_line() - Replaces the current help line with the one from the stack

newt_draw_form
newt_entry_get_value
Newt 函数


newt_draw_root_text
newt_entry_set_filter
Newt 函数
PHP 手册

newt_entry_get_value

(PECL newt >= 0.1)

newt_entry_get_value —

说明

string newt_entry_get_value ( resource $entry )
Warning

本函数暂无文档，仅有参数列表。

参数

entry

返回值

newt_draw_root_text
newt_entry_set_filter
Newt 函数


newt_entry_get_value
newt_entry_set_flags
Newt 函数
PHP 手册

newt_entry_set_filter

(PECL newt >= 0.1)

newt_entry_set_filter —

说明

void newt_entry_set_filter ( resource $entry , callback $filter , mixed $data )
Warning

本函数暂无文档，仅有参数列表。

参数

entry

filter

data

返回值

无返回值。

newt_entry_get_value
newt_entry_set_flags
Newt 函数


newt_entry_set_filter
newt_entry_set
Newt 函数
PHP 手册

newt_entry_set_flags

(PECL newt >= 0.1)

newt_entry_set_flags —

说明

void newt_entry_set_flags ( resource $entry , int $flags , int $sense )
Warning

本函数暂无文档，仅有参数列表。

参数

entry

flags

sense

返回值

无返回值。

newt_entry_set_filter
newt_entry_set
Newt 函数


newt_entry_set_flags
newt_entry
Newt 函数
PHP 手册

newt_entry_set

(PECL newt >= 0.1)

newt_entry_set —

说明

void newt_entry_set ( resource $entry , string $value [, bool $cursor_at_end ] )
Warning

本函数暂无文档，仅有参数列表。

参数

entry

value

cursor_at_end

返回值

无返回值。

newt_entry_set_flags
newt_entry
Newt 函数


newt_entry_set
newt_finished
Newt 函数
PHP 手册

newt_entry

(PECL newt >= 0.1)

newt_entry —

说明

resource newt_entry ( int $left , int $top , int $width [, string $init_value [, int $flags ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

width

init_value

flags

返回值

newt_entry_set
newt_finished
Newt 函数


Uninitializes newt interface

newt_entry
newt_form_add_component
Newt 函数
PHP 手册

newt_finished

(PECL newt >= 0.1)

newt_finished — Uninitializes newt interface

说明

int newt_finished ( void )

Uninitializes newt interface. This function be called, when program is ready to exit.

返回值

Returns 1 on success, 0 on failure.

参见

  • newt_init() - Initialize newt

newt_entry
newt_form_add_component
Newt 函数


Adds a single component to the form

newt_finished
newt_form_add_components
Newt 函数
PHP 手册

newt_form_add_component

(PECL newt >= 0.1)

newt_form_add_component — Adds a single component to the form

说明

void newt_form_add_component ( resource $form , resource $component )

Adds a single component to the form .

参数

form

Form to which component will be added

component

Component to add to the form

返回值

无返回值。

范例

Example #1 A newt_form_add_component() example

<?php
$form = newt_form();

$options = array("Authentication configuration", "Firewall configuration",
"Mouse configuration", "Network configuration", "Printer configuration",
"System services");

$list = newt_listbox(3, 2, 10);

foreach ($options as $l_item) {
    newt_listbox_add_entry($list, $l_item, $l_item);
}

newt_form_add_component($form, $list);
?>

参见

  • newt_form_add_components() - Add several components to the form

newt_finished
newt_form_add_components
Newt 函数


Add several components to the form

newt_form_add_component
newt_form_add_hot_key
Newt 函数
PHP 手册

newt_form_add_components

(PECL newt >= 0.1)

newt_form_add_components — Add several components to the form

说明

void newt_form_add_components ( resource $form , array $components )

Adds several components to the form .

参数

form

Form to which components will be added

components

Array of components to add to the form

返回值

无返回值。

范例

Example #1 A newt_form_add_components() example

<?php
$form = newt_form();

$b1 = newt_button(5, 12, "Run Tool");
$b2 = newt_button(21, 12, "Quit");

newt_form_add_components($form, array($b1, $b2));
?>

参见

  • newt_form_add_component() - Adds a single component to the form

newt_form_add_component
newt_form_add_hot_key
Newt 函数


newt_form_add_components
newt_form_destroy
Newt 函数
PHP 手册

newt_form_add_hot_key

(PECL newt >= 0.1)

newt_form_add_hot_key —

说明

void newt_form_add_hot_key ( resource $form , int $key )
Warning

本函数暂无文档，仅有参数列表。

参数

form

key

返回值

无返回值。

newt_form_add_components
newt_form_destroy
Newt 函数


Destroys a form

newt_form_add_hot_key
newt_form_get_current
Newt 函数
PHP 手册

newt_form_destroy

(PECL newt >= 0.1)

newt_form_destroy — Destroys a form

说明

void newt_form_destroy ( resource $form )

This function frees the memory resources used by the form and all of the components which have been added to the form (including those components which are on subforms). Once a form has been destroyed, none of the form's components can be used.

参数

form

Form component, which is going to be destroyed

返回值

无返回值。

参见

  • newt_form_run() - Runs a form
  • newt_run_form() - Runs a form

newt_form_add_hot_key
newt_form_get_current
Newt 函数


newt_form_destroy
newt_form_run
Newt 函数
PHP 手册

newt_form_get_current

(PECL newt >= 0.1)

newt_form_get_current —

说明

resource newt_form_get_current ( resource $form )
Warning

本函数暂无文档，仅有参数列表。

参数

form

返回值

newt_form_destroy
newt_form_run
Newt 函数


Runs a form

newt_form_get_current
newt_form_set_background
Newt 函数
PHP 手册

newt_form_run

(PECL newt >= 0.1)

newt_form_run — Runs a form

说明

void newt_form_run ( resource $form , array &$exit_struct )

This function runs the form passed to it.

参数

form

Form component

exit_struct

Array, used for returning information after running the form component. Keys and values are described in the following table:

Form Exit Structure
Index Key | Value Type | Description
reason | integer | The reason, why the form has been exited. Possible values are defined here.
watch | resource | Resource link, specified in newt_form_watch_fd()
key | integer | Hotkey
component | resource | Component, which caused the form to exit

返回值

无返回值。

参见

  • newt_run_form() - Runs a form

newt_form_get_current
newt_form_set_background
Newt 函数


newt_form_run
newt_form_set_height
Newt 函数
PHP 手册

newt_form_set_background

(PECL newt >= 0.1)

newt_form_set_background —

说明

void newt_form_set_background ( resource $from , int $background )
Warning

本函数暂无文档，仅有参数列表。

参数

from

background

返回值

无返回值。

newt_form_run
newt_form_set_height
Newt 函数


newt_form_set_background
newt_form_set_size
Newt 函数
PHP 手册

newt_form_set_height

(PECL newt >= 0.1)

newt_form_set_height —

说明

void newt_form_set_height ( resource $form , int $height )
Warning

本函数暂无文档，仅有参数列表。

参数

form

height

返回值

无返回值。

newt_form_set_background
newt_form_set_size
Newt 函数


newt_form_set_height
newt_form_set_timer
Newt 函数
PHP 手册

newt_form_set_size

(PECL newt >= 0.1)

newt_form_set_size —

说明

void newt_form_set_size ( resource $form )
Warning

本函数暂无文档，仅有参数列表。

参数

form

返回值

无返回值。

newt_form_set_height
newt_form_set_timer
Newt 函数


newt_form_set_size
newt_form_set_width
Newt 函数
PHP 手册

newt_form_set_timer

(PECL newt >= 0.1)

newt_form_set_timer —

说明

void newt_form_set_timer ( resource $form , int $milliseconds )
Warning

本函数暂无文档，仅有参数列表。

参数

form

milliseconds

返回值

无返回值。

newt_form_set_size
newt_form_set_width
Newt 函数


newt_form_set_timer
newt_form_watch_fd
Newt 函数
PHP 手册

newt_form_set_width

(PECL newt >= 0.1)

newt_form_set_width —

说明

void newt_form_set_width ( resource $form , int $width )
Warning

本函数暂无文档，仅有参数列表。

参数

form

width

返回值

无返回值。

newt_form_set_timer
newt_form_watch_fd
Newt 函数


newt_form_set_width
newt_form
Newt 函数
PHP 手册

newt_form_watch_fd

(PECL newt >= 0.1)

newt_form_watch_fd —

说明

void newt_form_watch_fd ( resource $form , resource $stream [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

form

stream

flags

返回值

无返回值。

newt_form_set_width
newt_form
Newt 函数


Create a form

newt_form_watch_fd
newt_get_screen_size
Newt 函数
PHP 手册

newt_form

(PECL newt >= 0.1)

newt_form — Create a form

说明

resource newt_form ([ resource $vert_bar [, string $help [, int $flags ]]] )

Create a new form.

参数

vert_bar

Vertical scrollbar which should be associated with the form

help

Help text string

flags

Various flags

返回值

Returns a resource link to the created form component, or FALSE on error.

范例

Example #1 A newt_form() example

Displays a single button "Quit", which closes the application once it's pressed.

<?php
newt_init();
newt_cls();

$myform = newt_form();
$button = newt_button (5, 12, "Quit");

newt_form_add_component ($myform, $button);
newt_refresh ();
newt_run_form ($myform);

newt_finished ();
newt_form_destroy ($myform);
?>

参见

  • newt_form_run() - Runs a form
  • newt_run_form() - Runs a form
  • newt_form_add_component() - Adds a single component to the form
  • newt_form_add_components() - Add several components to the form
  • newt_form_destroy() - Destroys a form

newt_form_watch_fd
newt_get_screen_size
Newt 函数


Fills in the passed references with the current size of the terminal

newt_form
newt_grid_add_components_to_form
Newt 函数
PHP 手册

newt_get_screen_size

(PECL newt >= 0.1)

newt_get_screen_size — Fills in the passed references with the current size of the terminal

说明

void newt_get_screen_size ( int &$cols , int &$rows )

Fills in the passed references with the current size of the terminal.

参数

cols

Number of columns in the terminal

rows

Number of rows in the terminal

返回值

无返回值。

范例

Example #1 A newt_get_screen_size() example

This code prints out the screen size of your terminal.

<?php
 newt_init();
 newt_get_screen_size (&$cols, &$rows);
 newt_finished();

 print "Your terminal size is: {$cols}x{$rows}\n";
?>

上例将输出：

Your terminal size is: 138x47

newt_form
newt_grid_add_components_to_form
Newt 函数


newt_get_screen_size
newt_grid_basic_window
Newt 函数
PHP 手册

newt_grid_add_components_to_form

(PECL newt >= 0.1)

newt_grid_add_components_to_form —

说明

void newt_grid_add_components_to_form ( resource $grid , resource $form , bool $recurse )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

form

recurse

返回值

无返回值。

newt_get_screen_size
newt_grid_basic_window
Newt 函数


newt_grid_add_components_to_form
newt_grid_free
Newt 函数
PHP 手册

newt_grid_basic_window

(PECL newt >= 0.1)

newt_grid_basic_window —

说明

resource newt_grid_basic_window ( resource $text , resource $middle , resource $buttons )
Warning

本函数暂无文档，仅有参数列表。

参数

text

middle

buttons

返回值

newt_grid_add_components_to_form
newt_grid_free
Newt 函数


newt_grid_basic_window
newt_grid_get_size
Newt 函数
PHP 手册

newt_grid_free

(PECL newt >= 0.1)

newt_grid_free —

说明

void newt_grid_free ( resource $grid , bool $recurse )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

recurse

返回值

无返回值。

newt_grid_basic_window
newt_grid_get_size
Newt 函数


newt_grid_free
newt_grid_h_close_stacked
Newt 函数
PHP 手册

newt_grid_get_size

(PECL newt >= 0.1)

newt_grid_get_size —

说明

void newt_grid_get_size ( resouce $grid , int &$width , int &$height )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

width

height

返回值

无返回值。

newt_grid_free
newt_grid_h_close_stacked
Newt 函数


newt_grid_get_size
newt_grid_h_stacked
Newt 函数
PHP 手册

newt_grid_h_close_stacked

(PECL newt >= 0.1)

newt_grid_h_close_stacked —

说明

resource newt_grid_h_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

element1_type

element1

返回值

newt_grid_get_size
newt_grid_h_stacked
Newt 函数


newt_grid_h_close_stacked
newt_grid_place
Newt 函数
PHP 手册

newt_grid_h_stacked

(PECL newt >= 0.1)

newt_grid_h_stacked —

说明

resource newt_grid_h_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

element1_type

element1

返回值

newt_grid_h_close_stacked
newt_grid_place
Newt 函数


newt_grid_h_stacked
newt_grid_set_field
Newt 函数
PHP 手册

newt_grid_place

(PECL newt >= 0.1)

newt_grid_place —

说明

void newt_grid_place ( resource $grid , int $left , int $top )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

left

top

返回值

无返回值。

newt_grid_h_stacked
newt_grid_set_field
Newt 函数


newt_grid_place
newt_grid_simple_window
Newt 函数
PHP 手册

newt_grid_set_field

(PECL newt >= 0.1)

newt_grid_set_field —

说明

void newt_grid_set_field ( resource $grid , int $col , int $row , int $type , resource $val , int $pad_left , int $pad_top , int $pad_right , int $pad_bottom , int $anchor [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

col

row

type

val

pad_left

pad_top

pad_right

pad_bottom

anchor

flags

返回值

无返回值。

newt_grid_place
newt_grid_simple_window
Newt 函数


newt_grid_set_field
newt_grid_v_close_stacked
Newt 函数
PHP 手册

newt_grid_simple_window

(PECL newt >= 0.1)

newt_grid_simple_window —

说明

resource newt_grid_simple_window ( resource $text , resource $middle , resource $buttons )
Warning

本函数暂无文档，仅有参数列表。

参数

text

middle

buttons

返回值

newt_grid_set_field
newt_grid_v_close_stacked
Newt 函数


newt_grid_simple_window
newt_grid_v_stacked
Newt 函数
PHP 手册

newt_grid_v_close_stacked

(PECL newt >= 0.1)

newt_grid_v_close_stacked —

说明

resource newt_grid_v_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

element1_type

element1

返回值

newt_grid_simple_window
newt_grid_v_stacked
Newt 函数


newt_grid_v_close_stacked
newt_grid_wrapped_window_at
Newt 函数
PHP 手册

newt_grid_v_stacked

(PECL newt >= 0.1)

newt_grid_v_stacked —

说明

resource newt_grid_v_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

element1_type

element1

返回值

newt_grid_v_close_stacked
newt_grid_wrapped_window_at
Newt 函数


newt_grid_v_stacked
newt_grid_wrapped_window
Newt 函数
PHP 手册

newt_grid_wrapped_window_at

(PECL newt >= 0.1)

newt_grid_wrapped_window_at —

说明

void newt_grid_wrapped_window_at ( resource $grid , string $title , int $left , int $top )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

title

left

top

返回值

无返回值。

newt_grid_v_stacked
newt_grid_wrapped_window
Newt 函数


newt_grid_wrapped_window_at
newt_init
Newt 函数
PHP 手册

newt_grid_wrapped_window

(PECL newt >= 0.1)

newt_grid_wrapped_window —

说明

void newt_grid_wrapped_window ( resource $grid , string $title )
Warning

本函数暂无文档，仅有参数列表。

参数

grid

title

返回值

无返回值。

newt_grid_wrapped_window_at
newt_init
Newt 函数


Initialize newt

newt_grid_wrapped_window
newt_label_set_text
Newt 函数
PHP 手册

newt_init

(PECL newt >= 0.1)

newt_init — Initialize newt

说明

int newt_init ( void )

Initializes the newt interface. This function must be called before any other newt function.

返回值

Returns 1 on success, 0 on failure.

参见

  • newt_finished() - Uninitializes newt interface

newt_grid_wrapped_window
newt_label_set_text
Newt 函数


newt_init
newt_label
Newt 函数
PHP 手册

newt_label_set_text

(PECL newt >= 0.1)

newt_label_set_text —

说明

void newt_label_set_text ( resource $label , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

label

text

返回值

无返回值。

newt_init
newt_label
Newt 函数


newt_label_set_text
newt_listbox_append_entry
Newt 函数
PHP 手册

newt_label

(PECL newt >= 0.1)

newt_label —

说明

resource newt_label ( int $left , int $top , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

text

返回值

newt_label_set_text
newt_listbox_append_entry
Newt 函数


newt_label
newt_listbox_clear_selection
Newt 函数
PHP 手册

newt_listbox_append_entry

(PECL newt >= 0.1)

newt_listbox_append_entry —

说明

void newt_listbox_append_entry ( resource $listbox , string $text , mixed $data )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

text

data

返回值

无返回值。

newt_label
newt_listbox_clear_selection
Newt 函数


newt_listbox_append_entry
newt_listbox_clear
Newt 函数
PHP 手册

newt_listbox_clear_selection

(PECL newt >= 0.1)

newt_listbox_clear_selection —

说明

void newt_listbox_clear_selection ( resource $listbox )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

返回值

无返回值。

newt_listbox_append_entry
newt_listbox_clear
Newt 函数


newt_listbox_clear_selection
newt_listbox_delete_entry
Newt 函数
PHP 手册

newt_listbox_clear

(PECL newt >= 0.1)

newt_listbox_clear —

说明

void newt_listbox_clear ( resource $listobx )
Warning

本函数暂无文档，仅有参数列表。

参数

listobx

返回值

无返回值。

newt_listbox_clear_selection
newt_listbox_delete_entry
Newt 函数


newt_listbox_clear
newt_listbox_get_current
Newt 函数
PHP 手册

newt_listbox_delete_entry

(PECL newt >= 0.1)

newt_listbox_delete_entry —

说明

void newt_listbox_delete_entry ( resource $listbox , mixed $key )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

key

返回值

无返回值。

newt_listbox_clear
newt_listbox_get_current
Newt 函数


newt_listbox_delete_entry
newt_listbox_get_selection
Newt 函数
PHP 手册

newt_listbox_get_current

(PECL newt >= 0.1)

newt_listbox_get_current —

说明

string newt_listbox_get_current ( resource $listbox )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

返回值

newt_listbox_delete_entry
newt_listbox_get_selection
Newt 函数


newt_listbox_get_current
newt_listbox_insert_entry
Newt 函数
PHP 手册

newt_listbox_get_selection

(PECL newt >= 0.1)

newt_listbox_get_selection —

说明

array newt_listbox_get_selection ( resource $listbox )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

返回值

newt_listbox_get_current
newt_listbox_insert_entry
Newt 函数


newt_listbox_get_selection
newt_listbox_item_count
Newt 函数
PHP 手册

newt_listbox_insert_entry

(PECL newt >= 0.1)

newt_listbox_insert_entry —

说明

void newt_listbox_insert_entry ( resource $listbox , string $text , mixed $data , mixed $key )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

text

data

key

返回值

无返回值。

newt_listbox_get_selection
newt_listbox_item_count
Newt 函数


newt_listbox_insert_entry
newt_listbox_select_item
Newt 函数
PHP 手册

newt_listbox_item_count

(PECL newt >= 0.1)

newt_listbox_item_count —

说明

int newt_listbox_item_count ( resource $listbox )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

返回值

newt_listbox_insert_entry
newt_listbox_select_item
Newt 函数


newt_listbox_item_count
newt_listbox_set_current_by_key
Newt 函数
PHP 手册

newt_listbox_select_item

(PECL newt >= 0.1)

newt_listbox_select_item —

说明

void newt_listbox_select_item ( resource $listbox , mixed $key , int $sense )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

key

sense

返回值

无返回值。

newt_listbox_item_count
newt_listbox_set_current_by_key
Newt 函数


newt_listbox_select_item
newt_listbox_set_current
Newt 函数
PHP 手册

newt_listbox_set_current_by_key

(PECL newt >= 0.1)

newt_listbox_set_current_by_key —

说明

void newt_listbox_set_current_by_key ( resource $listbox , mixed $key )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

key

返回值

无返回值。

newt_listbox_select_item
newt_listbox_set_current
Newt 函数


newt_listbox_set_current_by_key
newt_listbox_set_data
Newt 函数
PHP 手册

newt_listbox_set_current

(PECL newt >= 0.1)

newt_listbox_set_current —

说明

void newt_listbox_set_current ( resource $listbox , int $num )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

num

返回值

无返回值。

newt_listbox_set_current_by_key
newt_listbox_set_data
Newt 函数


newt_listbox_set_current
newt_listbox_set_entry
Newt 函数
PHP 手册

newt_listbox_set_data

(PECL newt >= 0.1)

newt_listbox_set_data —

说明

void newt_listbox_set_data ( resource $listbox , int $num , mixed $data )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

num

data

返回值

无返回值。

newt_listbox_set_current
newt_listbox_set_entry
Newt 函数


newt_listbox_set_data
newt_listbox_set_width
Newt 函数
PHP 手册

newt_listbox_set_entry

(PECL newt >= 0.1)

newt_listbox_set_entry —

说明

void newt_listbox_set_entry ( resource $listbox , int $num , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

num

text

返回值

无返回值。

newt_listbox_set_data
newt_listbox_set_width
Newt 函数


newt_listbox_set_entry
newt_listbox
Newt 函数
PHP 手册

newt_listbox_set_width

(PECL newt >= 0.1)

newt_listbox_set_width —

说明

void newt_listbox_set_width ( resource $listbox , int $width )
Warning

本函数暂无文档，仅有参数列表。

参数

listbox

width

返回值

无返回值。

newt_listbox_set_entry
newt_listbox
Newt 函数


newt_listbox_set_width
newt_listitem_get_data
Newt 函数
PHP 手册

newt_listbox

(PECL newt >= 0.1)

newt_listbox —

说明

resource newt_listbox ( int $left , int $top , int $height [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

height

flags

返回值

newt_listbox_set_width
newt_listitem_get_data
Newt 函数


newt_listbox
newt_listitem_set
Newt 函数
PHP 手册

newt_listitem_get_data

(PECL newt >= 0.1)

newt_listitem_get_data —

说明

mixed newt_listitem_get_data ( resource $item )
Warning

本函数暂无文档，仅有参数列表。

参数

item

返回值

newt_listbox
newt_listitem_set
Newt 函数


newt_listitem_get_data
newt_listitem
Newt 函数
PHP 手册

newt_listitem_set

(PECL newt >= 0.1)

newt_listitem_set —

说明

void newt_listitem_set ( resource $item , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

item

text

返回值

无返回值。

newt_listitem_get_data
newt_listitem
Newt 函数


newt_listitem_set
newt_open_window
Newt 函数
PHP 手册

newt_listitem

(PECL newt >= 0.1)

newt_listitem —

说明

resource newt_listitem ( int $left , int $top , string $text , bool $is_default , resouce $prev_item , mixed $data [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

text

is_default

prev_item

data

flags

返回值

newt_listitem_set
newt_open_window
Newt 函数


Open a window of the specified size and position

newt_listitem
newt_pop_help_line
Newt 函数
PHP 手册

newt_open_window

(PECL newt >= 0.1)

newt_open_window — Open a window of the specified size and position

说明

int newt_open_window ( int $left , int $top , int $width , int $height [, string $title ] )

Open a window of the specified size and position.

参数

left

Location of the upper left-hand corner of the window (column number)

top

Location of the upper left-hand corner of the window (row number)

width

Window width

height

Window height

title

Window title

返回值

Returns 1 on success, 0 on failure.

参见

  • newt_pop_window() - Removes the top window from the display
  • newt_centered_window() - Open a centered window of the specified size

newt_listitem
newt_pop_help_line
Newt 函数


Replaces the current help line with the one from the stack

newt_open_window
newt_pop_window
Newt 函数
PHP 手册

newt_pop_help_line

(PECL newt >= 0.1)

newt_pop_help_line — Replaces the current help line with the one from the stack

说明

void newt_pop_help_line ( void )

Replaces the current help line with the one from the stack.

Note: It's important not to call to newt_pop_help_line() more than newt_push_help_line().

返回值

无返回值。

参见

  • newt_push_help_line() - Saves the current help line on a stack, and displays the new line

newt_open_window
newt_pop_window
Newt 函数


Removes the top window from the display

newt_pop_help_line
newt_push_help_line
Newt 函数
PHP 手册

newt_pop_window

(PECL newt >= 0.1)

newt_pop_window — Removes the top window from the display

说明

void newt_pop_window ( void )

Removes the top window from the display, and redraws the display areas which the window overwrote.

返回值

无返回值。

参见

  • newt_open_window() - Open a window of the specified size and position
  • newt_centered_window() - Open a centered window of the specified size

newt_pop_help_line
newt_push_help_line
Newt 函数


Saves the current help line on a stack, and displays the new line

newt_pop_window
newt_radio_get_current
Newt 函数
PHP 手册

newt_push_help_line

(PECL newt >= 0.1)

newt_push_help_line — Saves the current help line on a stack, and displays the new line

说明

void newt_push_help_line ([ string $text ] )

Saves the current help line on a stack, and displays the new line.

参数

text

New help text message

Note: If not specified, the help line is cleared.

返回值

无返回值。

参见

  • newt_pop_help_line() - Replaces the current help line with the one from the stack

newt_pop_window
newt_radio_get_current
Newt 函数


newt_push_help_line
newt_radiobutton
Newt 函数
PHP 手册

newt_radio_get_current

(PECL newt >= 0.1)

newt_radio_get_current —

说明

resource newt_radio_get_current ( resource $set_member )
Warning

本函数暂无文档，仅有参数列表。

参数

set_member

返回值

newt_push_help_line
newt_radiobutton
Newt 函数


newt_radio_get_current
newt_redraw_help_line
Newt 函数
PHP 手册

newt_radiobutton

(PECL newt >= 0.1)

newt_radiobutton —

说明

resource newt_radiobutton ( int $left , int $top , string $text , bool $is_default [, resource $prev_button ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

text

is_default

prev_button

返回值

newt_radio_get_current
newt_redraw_help_line
Newt 函数


newt_radiobutton
newt_reflow_text
Newt 函数
PHP 手册

newt_redraw_help_line

(PECL newt >= 0.1)

newt_redraw_help_line —

说明

void newt_redraw_help_line ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

无返回值。

newt_radiobutton
newt_reflow_text
Newt 函数


newt_redraw_help_line
newt_refresh
Newt 函数
PHP 手册

newt_reflow_text

(PECL newt >= 0.1)

newt_reflow_text —

说明

string newt_reflow_text ( string $text , int $width , int $flex_down , int $flex_up , int &$actual_width , int &$actual_height )
Warning

本函数暂无文档，仅有参数列表。

参数

text

width

flex_down

flex_up

actual_width

actual_height

返回值

newt_redraw_help_line
newt_refresh
Newt 函数


Updates modified portions of the screen

newt_reflow_text
newt_resize_screen
Newt 函数
PHP 手册

newt_refresh

(PECL newt >= 0.1)

newt_refresh — Updates modified portions of the screen

说明

void newt_refresh ( void )

To increase performance, newt only updates the display when it needs to, not when the program tells it to write to the terminal. Applications can force newt to immediately update modified portions of the screen by calling this function.

返回值

无返回值。

newt_reflow_text
newt_resize_screen
Newt 函数


newt_refresh
newt_resume
Newt 函数
PHP 手册

newt_resize_screen

(PECL newt >= 0.1)

newt_resize_screen —

说明

void newt_resize_screen ([ bool $redraw ] )
Warning

本函数暂无文档，仅有参数列表。

参数

redraw

返回值

无返回值。

newt_refresh
newt_resume
Newt 函数


Resume using the newt interface after calling newt_suspend

newt_resize_screen
newt_run_form
Newt 函数
PHP 手册

newt_resume

(PECL newt >= 0.1)

newt_resume — Resume using the newt interface after calling newt_suspend()

说明

void newt_resume ( void )

Resume using the newt interface after calling newt_suspend().

返回值

无返回值。

参见

  • newt_suspend() - Tells newt to return the terminal to its initial state

newt_resize_screen
newt_run_form
Newt 函数


Runs a form

newt_resume
newt_scale_set
Newt 函数
PHP 手册

newt_run_form

(PECL newt >= 0.1)

newt_run_form — Runs a form

说明

resource newt_run_form ( resource $form )

This function runs the form passed to it.

参数

form

Form component

返回值

The component which caused the form to stop running.

Note: Notice that this function doesn't fit in with newt's normal naming convention. It is an older interface which will not work for all forms. It was left in newt only for legacy applications. It is a simpler interface than the new newt_form_run() though, and is still used quite often as a result. When an application is done with a form, it destroys the form and all of the components the form contains.

参见

  • newt_form_run() - Runs a form
  • newt_form_destroy() - Destroys a form

newt_resume
newt_scale_set
Newt 函数


newt_run_form
newt_scale
Newt 函数
PHP 手册

newt_scale_set

(PECL newt >= 0.1)

newt_scale_set —

说明

void newt_scale_set ( resource $scale , int $amount )
Warning

本函数暂无文档，仅有参数列表。

参数

scale

amount

返回值

无返回值。

newt_run_form
newt_scale
Newt 函数


newt_scale_set
newt_scrollbar_set
Newt 函数
PHP 手册

newt_scale

(PECL newt >= 0.1)

newt_scale —

说明

resource newt_scale ( int $left , int $top , int $width , int $full_value )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

width

full_value

返回值

newt_scale_set
newt_scrollbar_set
Newt 函数


newt_scale
newt_set_help_callback
Newt 函数
PHP 手册

newt_scrollbar_set

(PECL newt >= 0.1)

newt_scrollbar_set —

说明

void newt_scrollbar_set ( resource $scrollbar , int $where , int $total )
Warning

本函数暂无文档，仅有参数列表。

参数

scrollbar

where

total

返回值

无返回值。

newt_scale
newt_set_help_callback
Newt 函数


newt_scrollbar_set
newt_set_suspend_callback
Newt 函数
PHP 手册

newt_set_help_callback

(PECL newt >= 0.1)

newt_set_help_callback —

说明

void newt_set_help_callback ( mixed $function )
Warning

本函数暂无文档，仅有参数列表。

参数

function

返回值

无返回值。

newt_scrollbar_set
newt_set_suspend_callback
Newt 函数


Set a callback function which gets invoked when user presses the suspend key

newt_set_help_callback
newt_suspend
Newt 函数
PHP 手册

newt_set_suspend_callback

(PECL newt >= 0.1)

newt_set_suspend_callback — Set a callback function which gets invoked when user presses the suspend key

说明

void newt_set_suspend_callback ( callback $function , mixed $data )

Set a callback function which gets invoked when user presses the suspend key (normally ^Z). If no suspend callback is registered, the suspend keystroke is ignored.

参数

function

A callback function, which accepts one argument: data

data

This data is been passed to the callback function

参见

  • newt_suspend() - Tells newt to return the terminal to its initial state
  • newt_resume() - Resume using the newt interface after calling newt_suspend

newt_set_help_callback
newt_suspend
Newt 函数


Tells newt to return the terminal to its initial state

newt_set_suspend_callback
newt_textbox_get_num_lines
Newt 函数
PHP 手册

newt_suspend

(PECL newt >= 0.1)

newt_suspend — Tells newt to return the terminal to its initial state

说明

void newt_suspend ( void )

Tells newt to return the terminal to its initial state. Once this is done, the application can suspend itself (by sending itself a SIGTSTP, fork a child program, or do whatever else it likes).

返回值

无返回值。

参见

  • newt_resume() - Resume using the newt interface after calling newt_suspend

newt_set_suspend_callback
newt_textbox_get_num_lines
Newt 函数


newt_suspend
newt_textbox_reflowed
Newt 函数
PHP 手册

newt_textbox_get_num_lines

(PECL newt >= 0.1)

newt_textbox_get_num_lines —

说明

int newt_textbox_get_num_lines ( resource $textbox )
Warning

本函数暂无文档，仅有参数列表。

参数

textbox

返回值

newt_suspend
newt_textbox_reflowed
Newt 函数


newt_textbox_get_num_lines
newt_textbox_set_height
Newt 函数
PHP 手册

newt_textbox_reflowed

(PECL newt >= 0.1)

newt_textbox_reflowed —

说明

resource newt_textbox_reflowed ( int $left , int $top , char $*text , int $width , int $flex_down , int $flex_up [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

*text

width

flex_down

flex_up

flags

返回值

newt_textbox_get_num_lines
newt_textbox_set_height
Newt 函数


newt_textbox_reflowed
newt_textbox_set_text
Newt 函数
PHP 手册

newt_textbox_set_height

(PECL newt >= 0.1)

newt_textbox_set_height —

说明

void newt_textbox_set_height ( resource $textbox , int $height )
Warning

本函数暂无文档，仅有参数列表。

参数

textbox

height

返回值

无返回值。

newt_textbox_reflowed
newt_textbox_set_text
Newt 函数


newt_textbox_set_height
newt_textbox
Newt 函数
PHP 手册

newt_textbox_set_text

(PECL newt >= 0.1)

newt_textbox_set_text —

说明

void newt_textbox_set_text ( resource $textbox , string $text )
Warning

本函数暂无文档，仅有参数列表。

参数

textbox

text

返回值

无返回值。

newt_textbox_set_height
newt_textbox
Newt 函数


newt_textbox_set_text
newt_vertical_scrollbar
Newt 函数
PHP 手册

newt_textbox

(PECL newt >= 0.1)

newt_textbox —

说明

resource newt_textbox ( int $left , int $top , int $width , int $height [, int $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

width

height

flags

返回值

newt_textbox_set_text
newt_vertical_scrollbar
Newt 函数


newt_textbox
newt_wait_for_key
Newt 函数
PHP 手册

newt_vertical_scrollbar

(PECL newt >= 0.1)

newt_vertical_scrollbar —

说明

resource newt_vertical_scrollbar ( int $left , int $top , int $height [, int $normal_colorset [, int $thumb_colorset ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

left

top

height

normal_colorset

thumb_colorset

返回值

newt_textbox
newt_wait_for_key
Newt 函数


Doesn't return until a key has been pressed

newt_vertical_scrollbar
newt_win_choice
Newt 函数
PHP 手册

newt_wait_for_key

(PECL newt >= 0.1)

newt_wait_for_key — Doesn't return until a key has been pressed

说明

void newt_wait_for_key ( void )

This function doesn't return until a key has been pressed. The keystroke is then ignored. If a key is already in the terminal's buffer, this function discards a keystroke and returns immediately.

返回值

无返回值。

参见

  • newt_clear_key_buffer() - Discards the contents of the terminal's input buffer without waiting for additional input

newt_vertical_scrollbar
newt_win_choice
Newt 函数


newt_wait_for_key
newt_win_entries
Newt 函数
PHP 手册

newt_win_choice

(PECL newt >= 0.1)

newt_win_choice —

说明

int newt_win_choice ( string $title , string $button1_text , string $button2_text , string $format [, mixed $args [, mixed $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

title

button1_text

button2_text

format

args

返回值

newt_wait_for_key
newt_win_entries
Newt 函数


newt_win_choice
newt_win_menu
Newt 函数
PHP 手册

newt_win_entries

(PECL newt >= 0.1)

newt_win_entries —

说明

int newt_win_entries ( string $title , string $text , int $suggested_width , int $flex_down , int $flex_up , int $data_width , array &$items , string $button1 [, string $... ] )
Warning

本函数暂无文档，仅有参数列表。

参数

title

text

suggested_width

flex_down

flex_up

data_width

items

button1

button2

返回值

范例

Example #1 A newt_win_entries() example

<?php

newt_init();
newt_cls();

$entries[] = array('text' => 'First name:', 'value' => &$f_name);
$entries[] = array('text' => 'Last name:',  'value' => &$l_name);

$rc = newt_win_entries("User information", "Please enter your credentials:", 50, 7, 7, 30, $entries, "Ok", "Back");
newt_finished ();

if ($rc != 2) {
    echo "Your name is: $f_name $l_name\n";
}
?>

newt_win_choice
newt_win_menu
Newt 函数


newt_win_entries
newt_win_message
Newt 函数
PHP 手册

newt_win_menu

(PECL newt >= 0.1)

newt_win_menu —

说明

int newt_win_menu ( string $title , string $text , int $suggestedWidth , int $flexDown , int $flexUp , int $maxListHeight , array $items , int &$listItem [, string $button1 [, string $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

title

text

suggestedWidth

flexDown

flexUp

maxListHeight

items

listItem

button1

返回值

无返回值。

newt_win_entries
newt_win_message
Newt 函数


newt_win_menu
newt_win_messagev
Newt 函数
PHP 手册

newt_win_message

(PECL newt >= 0.1)

newt_win_message —

说明

void newt_win_message ( string $title , string $button_text , string $format [, mixed $args [, mixed $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

title

button_text

format

args

返回值

无返回值。

newt_win_menu
newt_win_messagev
Newt 函数


newt_win_message
newt_win_ternary
Newt 函数
PHP 手册

newt_win_messagev

(PECL newt >= 0.1)

newt_win_messagev —

说明

void newt_win_messagev ( string $title , string $button_text , string $format , array $args )
Warning

本函数暂无文档，仅有参数列表。

参数

title

button_text

format

args

返回值

无返回值。

newt_win_message
newt_win_ternary
Newt 函数


newt_win_messagev
Ncurses
Newt 函数
PHP 手册

newt_win_ternary

(PECL newt >= 0.1)

newt_win_ternary —

说明

int newt_win_ternary ( string $title , string $button1_text , string $button2_text , string $button3_text , string $format [, mixed $args [, mixed $... ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

title

Its description

button1_text

Its description

button2_text

Its description

button3_text

Its description

format

Its description

args

Its description

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

newt_win_messagev
Ncurses
Newt 函数


Ncurses Terminal Screen Control

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
    • Error codes
    • Colors
    • Keys
    • Mouse
  • Ncurses 函数
    • ncurses_addch — Add character at current position and advance cursor
    • ncurses_addchnstr — Add attributed string with specified length at current position
    • ncurses_addchstr — Add attributed string at current position
    • ncurses_addnstr — Add string with specified length at current position
    • ncurses_addstr — Output text at current position
    • ncurses_assume_default_colors — Define default colors for color 0
    • ncurses_attroff — Turn off the given attributes
    • ncurses_attron — Turn on the given attributes
    • ncurses_attrset — Set given attributes
    • ncurses_baudrate — Returns baudrate of terminal
    • ncurses_beep — Let the terminal beep
    • ncurses_bkgd — Set background property for terminal screen
    • ncurses_bkgdset — Control screen background
    • ncurses_border — Draw a border around the screen using attributed characters
    • ncurses_bottom_panel — Moves a visible panel to the bottom of the stack
    • ncurses_can_change_color — Check if we can change terminals colors
    • ncurses_cbreak — Switch of input buffering
    • ncurses_clear — Clear screen
    • ncurses_clrtobot — Clear screen from current position to bottom
    • ncurses_clrtoeol — Clear screen from current position to end of line
    • ncurses_color_content — Gets the RGB value for color
    • ncurses_color_set — Set fore- and background color
    • ncurses_curs_set — Set cursor state
    • ncurses_def_prog_mode — Saves terminals (program) mode
    • ncurses_def_shell_mode — Saves terminals (shell) mode
    • ncurses_define_key — Define a keycode
    • ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)
    • ncurses_delay_output — Delay output on terminal using padding characters
    • ncurses_delch — Delete character at current position, move rest of line left
    • ncurses_deleteln — Delete line at current position, move rest of screen up
    • ncurses_delwin — Delete a ncurses window
    • ncurses_doupdate — Write all prepared refreshes to terminal
    • ncurses_echo — Activate keyboard input echo
    • ncurses_echochar — Single character output including refresh
    • ncurses_end — Stop using ncurses, clean up the screen
    • ncurses_erase — Erase terminal screen
    • ncurses_erasechar — Returns current erase character
    • ncurses_filter — Set LINES for iniscr() and newterm() to 1
    • ncurses_flash — Flash terminal screen (visual bell)
    • ncurses_flushinp — Flush keyboard input buffer
    • ncurses_getch — Read a character from keyboard
    • ncurses_getmaxyx — Returns the size of a window
    • ncurses_getmouse — Reads mouse event
    • ncurses_getyx — Returns the current cursor position for a window
    • ncurses_halfdelay — Put terminal into halfdelay mode
    • ncurses_has_colors — Check if terminal has colors
    • ncurses_has_ic — Check for insert- and delete-capabilities
    • ncurses_has_il — Check for line insert- and delete-capabilities
    • ncurses_has_key — Check for presence of a function key on terminal keyboard
    • ncurses_hide_panel — Remove panel from the stack, making it invisible
    • ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long
    • ncurses_inch — Get character and attribute at current position
    • ncurses_init_color — Set new RGB value for color
    • ncurses_init_pair — Allocate a color pair
    • ncurses_init — Initialize ncurses
    • ncurses_insch — Insert character moving rest of line including character at current position
    • ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)
    • ncurses_insertln — Insert a line, move rest of screen down
    • ncurses_insstr — Insert string at current position, moving rest of line right
    • ncurses_instr — Reads string from terminal screen
    • ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed
    • ncurses_keyok — Enable or disable a keycode
    • ncurses_keypad — Turns keypad on or off
    • ncurses_killchar — Returns current line kill character
    • ncurses_longname — Returns terminals description
    • ncurses_meta — Enables/Disable 8-bit meta key information
    • ncurses_mouse_trafo — Transforms coordinates
    • ncurses_mouseinterval — Set timeout for mouse button clicks
    • ncurses_mousemask — Sets mouse options
    • ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]
    • ncurses_move — Move output position
    • ncurses_mvaddch — Move current position and add character
    • ncurses_mvaddchnstr — Move position and add attributed string with specified length
    • ncurses_mvaddchstr — Move position and add attributed string
    • ncurses_mvaddnstr — Move position and add string with specified length
    • ncurses_mvaddstr — Move position and add string
    • ncurses_mvcur — Move cursor immediately
    • ncurses_mvdelch — Move position and delete character, shift rest of line left
    • ncurses_mvgetch — Move position and get character at new position
    • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
    • ncurses_mvinch — Move position and get attributed character at new position
    • ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long
    • ncurses_mvwaddstr — Add string at new position in window
    • ncurses_napms — Sleep
    • ncurses_new_panel — Create a new panel and associate it with window
    • ncurses_newpad — Creates a new pad (window)
    • ncurses_newwin — Create a new window
    • ncurses_nl — Translate newline and carriage return / line feed
    • ncurses_nocbreak — Switch terminal to cooked mode
    • ncurses_noecho — Switch off keyboard input echo
    • ncurses_nonl — Do not translate newline and carriage return / line feed
    • ncurses_noqiflush — Do not flush on signal characters
    • ncurses_noraw — Switch terminal out of raw mode
    • ncurses_pair_content — Gets the RGB value for color
    • ncurses_panel_above — Returns the panel above panel
    • ncurses_panel_below — Returns the panel below panel
    • ncurses_panel_window — Returns the window associated with panel
    • ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen
    • ncurses_prefresh — Copies a region from a pad into the virtual screen
    • ncurses_putp — Apply padding information to the string and output it
    • ncurses_qiflush — Flush on signal characters
    • ncurses_raw — Switch terminal into raw mode
    • ncurses_refresh — Refresh screen
    • ncurses_replace_panel — Replaces the window associated with panel
    • ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode
    • ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode
    • ncurses_resetty — Restores saved terminal state
    • ncurses_savetty — Saves terminal state
    • ncurses_scr_dump — Dump screen content to file
    • ncurses_scr_init — Initialize screen from file dump
    • ncurses_scr_restore — Restore screen from file dump
    • ncurses_scr_set — Inherit screen from file dump
    • ncurses_scrl — Scroll window content up or down without changing current position
    • ncurses_show_panel — Places an invisible panel on top of the stack, making it visible
    • ncurses_slk_attr — Returns current soft label key attribute
    • ncurses_slk_attroff — Turn off the given attributes for soft function-key labels
    • ncurses_slk_attron — Turn on the given attributes for soft function-key labels
    • ncurses_slk_attrset — Set given attributes for soft function-key labels
    • ncurses_slk_clear — Clears soft labels from screen
    • ncurses_slk_color — Sets color for soft label keys
    • ncurses_slk_init — Initializes soft label key functions
    • ncurses_slk_noutrefresh — Copies soft label keys to virtual screen
    • ncurses_slk_refresh — Copies soft label keys to screen
    • ncurses_slk_restore — Restores soft label keys
    • ncurses_slk_set — Sets function key labels
    • ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed
    • ncurses_standend — Stop using 'standout' attribute
    • ncurses_standout — Start using 'standout' attribute
    • ncurses_start_color — Start using colors
    • ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal
    • ncurses_termname — Returns terminals (short)-name
    • ncurses_timeout — Set timeout for special key sequences
    • ncurses_top_panel — Moves a visible panel to the top of the stack
    • ncurses_typeahead — Specify different filedescriptor for typeahead checking
    • ncurses_ungetch — Put a character back into the input stream
    • ncurses_ungetmouse — Pushes mouse event to queue
    • ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack
    • ncurses_use_default_colors — Assign terminal default colors to color id -1
    • ncurses_use_env — Control use of environment information about terminal size
    • ncurses_use_extended_names — Control use of extended names in terminfo descriptions
    • ncurses_vidattr — Display the string on the terminal in the video attribute mode
    • ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long
    • ncurses_waddch — Adds character at current position in a window and advance cursor
    • ncurses_waddstr — Outputs text at current postion in window
    • ncurses_wattroff — Turns off attributes for a window
    • ncurses_wattron — Turns on attributes for a window
    • ncurses_wattrset — Set the attributes for a window
    • ncurses_wborder — Draws a border around the window using attributed characters
    • ncurses_wclear — Clears window
    • ncurses_wcolor_set — Sets windows color pairings
    • ncurses_werase — Erase window contents
    • ncurses_wgetch — Reads a character from keyboard (window)
    • ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long
    • ncurses_wmouse_trafo — Transforms window/stdscr coordinates
    • ncurses_wmove — Moves windows output position
    • ncurses_wnoutrefresh — Copies window to virtual screen
    • ncurses_wrefresh — Refresh window on terminal screen
    • ncurses_wstandend — End standout mode for a window
    • ncurses_wstandout — Enter standout mode for a window
    • ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long
newt_win_ternary
简介
命令行特有的扩展


简介

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.3.0.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Ncurses is available for the following platforms:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：6.0.0

Ncurses
安装/配置
Ncurses


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Ncurses


需求

You need the ncurses libraries and headerfiles. Download the latest version from the » ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.

安装/配置
安装
安装/配置


安装

To get these functions to work, you have to compile the CGI or CLI version of PHP with --with-ncurses[=DIR].

需求
运行时配置
安装/配置


资源类型

This extension defines window, panel and pad resources.

运行时配置
预定义常量
安装/配置


预定义常量

Table of Contents

  • Error codes
  • Colors
  • Keys
  • Mouse

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

资源类型
Error codes
Ncurses


Error codes

On error ncurses functions return NCURSES_ERR.

预定义常量
Colors
预定义常量


Colors

ncurses color constants
constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mode
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mode
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mode
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mode
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mode
Error codes
Keys
预定义常量


Keys

ncurses key constants
constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value
Colors
Mouse
预定义常量


Mouse

mouse constants
Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position
Keys
Ncurses 函数
预定义常量


Ncurses 函数

Table of Contents

  • ncurses_addch — Add character at current position and advance cursor
  • ncurses_addchnstr — Add attributed string with specified length at current position
  • ncurses_addchstr — Add attributed string at current position
  • ncurses_addnstr — Add string with specified length at current position
  • ncurses_addstr — Output text at current position
  • ncurses_assume_default_colors — Define default colors for color 0
  • ncurses_attroff — Turn off the given attributes
  • ncurses_attron — Turn on the given attributes
  • ncurses_attrset — Set given attributes
  • ncurses_baudrate — Returns baudrate of terminal
  • ncurses_beep — Let the terminal beep
  • ncurses_bkgd — Set background property for terminal screen
  • ncurses_bkgdset — Control screen background
  • ncurses_border — Draw a border around the screen using attributed characters
  • ncurses_bottom_panel — Moves a visible panel to the bottom of the stack
  • ncurses_can_change_color — Check if we can change terminals colors
  • ncurses_cbreak — Switch of input buffering
  • ncurses_clear — Clear screen
  • ncurses_clrtobot — Clear screen from current position to bottom
  • ncurses_clrtoeol — Clear screen from current position to end of line
  • ncurses_color_content — Gets the RGB value for color
  • ncurses_color_set — Set fore- and background color
  • ncurses_curs_set — Set cursor state
  • ncurses_def_prog_mode — Saves terminals (program) mode
  • ncurses_def_shell_mode — Saves terminals (shell) mode
  • ncurses_define_key — Define a keycode
  • ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)
  • ncurses_delay_output — Delay output on terminal using padding characters
  • ncurses_delch — Delete character at current position, move rest of line left
  • ncurses_deleteln — Delete line at current position, move rest of screen up
  • ncurses_delwin — Delete a ncurses window
  • ncurses_doupdate — Write all prepared refreshes to terminal
  • ncurses_echo — Activate keyboard input echo
  • ncurses_echochar — Single character output including refresh
  • ncurses_end — Stop using ncurses, clean up the screen
  • ncurses_erase — Erase terminal screen
  • ncurses_erasechar — Returns current erase character
  • ncurses_filter — Set LINES for iniscr() and newterm() to 1
  • ncurses_flash — Flash terminal screen (visual bell)
  • ncurses_flushinp — Flush keyboard input buffer
  • ncurses_getch — Read a character from keyboard
  • ncurses_getmaxyx — Returns the size of a window
  • ncurses_getmouse — Reads mouse event
  • ncurses_getyx — Returns the current cursor position for a window
  • ncurses_halfdelay — Put terminal into halfdelay mode
  • ncurses_has_colors — Check if terminal has colors
  • ncurses_has_ic — Check for insert- and delete-capabilities
  • ncurses_has_il — Check for line insert- and delete-capabilities
  • ncurses_has_key — Check for presence of a function key on terminal keyboard
  • ncurses_hide_panel — Remove panel from the stack, making it invisible
  • ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long
  • ncurses_inch — Get character and attribute at current position
  • ncurses_init_color — Set new RGB value for color
  • ncurses_init_pair — Allocate a color pair
  • ncurses_init — Initialize ncurses
  • ncurses_insch — Insert character moving rest of line including character at current position
  • ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)
  • ncurses_insertln — Insert a line, move rest of screen down
  • ncurses_insstr — Insert string at current position, moving rest of line right
  • ncurses_instr — Reads string from terminal screen
  • ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed
  • ncurses_keyok — Enable or disable a keycode
  • ncurses_keypad — Turns keypad on or off
  • ncurses_killchar — Returns current line kill character
  • ncurses_longname — Returns terminals description
  • ncurses_meta — Enables/Disable 8-bit meta key information
  • ncurses_mouse_trafo — Transforms coordinates
  • ncurses_mouseinterval — Set timeout for mouse button clicks
  • ncurses_mousemask — Sets mouse options
  • ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]
  • ncurses_move — Move output position
  • ncurses_mvaddch — Move current position and add character
  • ncurses_mvaddchnstr — Move position and add attributed string with specified length
  • ncurses_mvaddchstr — Move position and add attributed string
  • ncurses_mvaddnstr — Move position and add string with specified length
  • ncurses_mvaddstr — Move position and add string
  • ncurses_mvcur — Move cursor immediately
  • ncurses_mvdelch — Move position and delete character, shift rest of line left
  • ncurses_mvgetch — Move position and get character at new position
  • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
  • ncurses_mvinch — Move position and get attributed character at new position
  • ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long
  • ncurses_mvwaddstr — Add string at new position in window
  • ncurses_napms — Sleep
  • ncurses_new_panel — Create a new panel and associate it with window
  • ncurses_newpad — Creates a new pad (window)
  • ncurses_newwin — Create a new window
  • ncurses_nl — Translate newline and carriage return / line feed
  • ncurses_nocbreak — Switch terminal to cooked mode
  • ncurses_noecho — Switch off keyboard input echo
  • ncurses_nonl — Do not translate newline and carriage return / line feed
  • ncurses_noqiflush — Do not flush on signal characters
  • ncurses_noraw — Switch terminal out of raw mode
  • ncurses_pair_content — Gets the RGB value for color
  • ncurses_panel_above — Returns the panel above panel
  • ncurses_panel_below — Returns the panel below panel
  • ncurses_panel_window — Returns the window associated with panel
  • ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen
  • ncurses_prefresh — Copies a region from a pad into the virtual screen
  • ncurses_putp — Apply padding information to the string and output it
  • ncurses_qiflush — Flush on signal characters
  • ncurses_raw — Switch terminal into raw mode
  • ncurses_refresh — Refresh screen
  • ncurses_replace_panel — Replaces the window associated with panel
  • ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode
  • ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode
  • ncurses_resetty — Restores saved terminal state
  • ncurses_savetty — Saves terminal state
  • ncurses_scr_dump — Dump screen content to file
  • ncurses_scr_init — Initialize screen from file dump
  • ncurses_scr_restore — Restore screen from file dump
  • ncurses_scr_set — Inherit screen from file dump
  • ncurses_scrl — Scroll window content up or down without changing current position
  • ncurses_show_panel — Places an invisible panel on top of the stack, making it visible
  • ncurses_slk_attr — Returns current soft label key attribute
  • ncurses_slk_attroff — Turn off the given attributes for soft function-key labels
  • ncurses_slk_attron — Turn on the given attributes for soft function-key labels
  • ncurses_slk_attrset — Set given attributes for soft function-key labels
  • ncurses_slk_clear — Clears soft labels from screen
  • ncurses_slk_color — Sets color for soft label keys
  • ncurses_slk_init — Initializes soft label key functions
  • ncurses_slk_noutrefresh — Copies soft label keys to virtual screen
  • ncurses_slk_refresh — Copies soft label keys to screen
  • ncurses_slk_restore — Restores soft label keys
  • ncurses_slk_set — Sets function key labels
  • ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed
  • ncurses_standend — Stop using 'standout' attribute
  • ncurses_standout — Start using 'standout' attribute
  • ncurses_start_color — Start using colors
  • ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal
  • ncurses_termname — Returns terminals (short)-name
  • ncurses_timeout — Set timeout for special key sequences
  • ncurses_top_panel — Moves a visible panel to the top of the stack
  • ncurses_typeahead — Specify different filedescriptor for typeahead checking
  • ncurses_ungetch — Put a character back into the input stream
  • ncurses_ungetmouse — Pushes mouse event to queue
  • ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack
  • ncurses_use_default_colors — Assign terminal default colors to color id -1
  • ncurses_use_env — Control use of environment information about terminal size
  • ncurses_use_extended_names — Control use of extended names in terminfo descriptions
  • ncurses_vidattr — Display the string on the terminal in the video attribute mode
  • ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long
  • ncurses_waddch — Adds character at current position in a window and advance cursor
  • ncurses_waddstr — Outputs text at current postion in window
  • ncurses_wattroff — Turns off attributes for a window
  • ncurses_wattron — Turns on attributes for a window
  • ncurses_wattrset — Set the attributes for a window
  • ncurses_wborder — Draws a border around the window using attributed characters
  • ncurses_wclear — Clears window
  • ncurses_wcolor_set — Sets windows color pairings
  • ncurses_werase — Erase window contents
  • ncurses_wgetch — Reads a character from keyboard (window)
  • ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long
  • ncurses_wmouse_trafo — Transforms window/stdscr coordinates
  • ncurses_wmove — Moves windows output position
  • ncurses_wnoutrefresh — Copies window to virtual screen
  • ncurses_wrefresh — Refresh window on terminal screen
  • ncurses_wstandend — End standout mode for a window
  • ncurses_wstandout — Enter standout mode for a window
  • ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long
Mouse
ncurses_addch
Ncurses


Add character at current position and advance cursor

Ncurses 函数
ncurses_addchnstr
Ncurses 函数
PHP 手册

ncurses_addch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_addch — Add character at current position and advance cursor

说明

int ncurses_addch ( int $ch )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

ch

Ncurses 函数
ncurses_addchnstr
Ncurses 函数


Add attributed string with specified length at current position

ncurses_addch
ncurses_addchstr
Ncurses 函数
PHP 手册

ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_addchnstr — Add attributed string with specified length at current position

说明

int ncurses_addchnstr ( string $s , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

s

n

ncurses_addch
ncurses_addchstr
Ncurses 函数


Add attributed string at current position

ncurses_addchnstr
ncurses_addnstr
Ncurses 函数
PHP 手册

ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_addchstr — Add attributed string at current position

说明

int ncurses_addchstr ( string $s )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

s

ncurses_addchnstr
ncurses_addnstr
Ncurses 函数


Add string with specified length at current position

ncurses_addchstr
ncurses_addstr
Ncurses 函数
PHP 手册

ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_addnstr — Add string with specified length at current position

说明

int ncurses_addnstr ( string $s , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

s

n

ncurses_addchstr
ncurses_addstr
Ncurses 函数


Output text at current position

ncurses_addnstr
ncurses_assume_default_colors
Ncurses 函数
PHP 手册

ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_addstr — Output text at current position

说明

int ncurses_addstr ( string $text )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

text

ncurses_addnstr
ncurses_assume_default_colors
Ncurses 函数


Define default colors for color 0

ncurses_addstr
ncurses_attroff
Ncurses 函数
PHP 手册

ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_assume_default_colors — Define default colors for color 0

说明

int ncurses_assume_default_colors ( int $fg , int $bg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

fg

bg

ncurses_addstr
ncurses_attroff
Ncurses 函数


Turn off the given attributes

ncurses_assume_default_colors
ncurses_attron
Ncurses 函数
PHP 手册

ncurses_attroff

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_attroff — Turn off the given attributes

说明

int ncurses_attroff ( int $attributes )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

attributes

ncurses_assume_default_colors
ncurses_attron
Ncurses 函数


Turn on the given attributes

ncurses_attroff
ncurses_attrset
Ncurses 函数
PHP 手册

ncurses_attron

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_attron — Turn on the given attributes

说明

int ncurses_attron ( int $attributes )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

attributes

ncurses_attroff
ncurses_attrset
Ncurses 函数


Set given attributes

ncurses_attron
ncurses_baudrate
Ncurses 函数
PHP 手册

ncurses_attrset

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_attrset — Set given attributes

说明

int ncurses_attrset ( int $attributes )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

attributes

ncurses_attron
ncurses_baudrate
Ncurses 函数


Returns baudrate of terminal

ncurses_attrset
ncurses_beep
Ncurses 函数
PHP 手册

ncurses_baudrate

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_baudrate — Returns baudrate of terminal

说明

int ncurses_baudrate ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_attrset
ncurses_beep
Ncurses 函数


Let the terminal beep

ncurses_baudrate
ncurses_bkgd
Ncurses 函数
PHP 手册

ncurses_beep

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_beep — Let the terminal beep

说明

int ncurses_beep ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen.

参见

  • ncurses_flash() - Flash terminal screen (visual bell)

ncurses_baudrate
ncurses_bkgd
Ncurses 函数


Set background property for terminal screen

ncurses_beep
ncurses_bkgdset
Ncurses 函数
PHP 手册

ncurses_bkgd

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_bkgd — Set background property for terminal screen

说明

int ncurses_bkgd ( int $attrchar )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

attrchar

ncurses_beep
ncurses_bkgdset
Ncurses 函数


Control screen background

ncurses_bkgd
ncurses_border
Ncurses 函数
PHP 手册

ncurses_bkgdset

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_bkgdset — Control screen background

说明

void ncurses_bkgdset ( int $attrchar )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

attrchar

ncurses_bkgd
ncurses_border
Ncurses 函数


Draw a border around the screen using attributed characters

ncurses_bkgdset
ncurses_bottom_panel
Ncurses 函数
PHP 手册

ncurses_border

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_border — Draw a border around the screen using attributed characters

说明

int ncurses_border ( int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Draws the specified lines and corners around the main window.

Use ncurses_wborder() for borders around subwindows!

参数

Every parameter expects 0 to draw a line or 1 to skip it.

left

right

top

bottom

tl_corner

Top left corner

tr_corner

Top right corner

bl_corner

Bottom left corner

br_corner

Bottom right corner

参见

  • ncurses_wborder() - Draws a border around the window using attributed characters

ncurses_bkgdset
ncurses_bottom_panel
Ncurses 函数


Moves a visible panel to the bottom of the stack

ncurses_border
ncurses_can_change_color
Ncurses 函数
PHP 手册

ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_bottom_panel — Moves a visible panel to the bottom of the stack

说明

int ncurses_bottom_panel ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

ncurses_border
ncurses_can_change_color
Ncurses 函数


Check if we can change terminals colors

ncurses_bottom_panel
ncurses_cbreak
Ncurses 函数
PHP 手册

ncurses_can_change_color

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_can_change_color — Check if we can change terminals colors

说明

bool ncurses_can_change_color ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Tells whether the terminal has color capabilities and whether the programmer can change the colors.

返回值

Return TRUE if the terminal has color capabilities and you can change the colors, FALSE otherwise.

ncurses_bottom_panel
ncurses_cbreak
Ncurses 函数


Switch of input buffering

ncurses_can_change_color
ncurses_clear
Ncurses 函数
PHP 手册

ncurses_cbreak

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_cbreak — Switch of input buffering

说明

bool ncurses_cbreak ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

返回值

Returns TRUE or NCURSES_ERR if any error occurred.

参见

  • ncurses_nocbreak() - Switch terminal to cooked mode

ncurses_can_change_color
ncurses_clear
Ncurses 函数


Clear screen

ncurses_cbreak
ncurses_clrtobot
Ncurses 函数
PHP 手册

ncurses_clear

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_clear — Clear screen

说明

bool ncurses_clear ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Clears the screen completely without setting blanks.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ncurses_erase() - Erase terminal screen

ncurses_cbreak
ncurses_clrtobot
Ncurses 函数


Clear screen from current position to bottom

ncurses_clear
ncurses_clrtoeol
Ncurses 函数
PHP 手册

ncurses_clrtobot

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_clrtobot — Clear screen from current position to bottom

说明

bool ncurses_clrtobot ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ncurses_clear() - Clear screen
  • ncurses_clrtoeol() - Clear screen from current position to end of line

ncurses_clear
ncurses_clrtoeol
Ncurses 函数


Clear screen from current position to end of line

ncurses_clrtobot
ncurses_color_content
Ncurses 函数
PHP 手册

ncurses_clrtoeol

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_clrtoeol — Clear screen from current position to end of line

说明

bool ncurses_clrtoeol ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ncurses_clear() - Clear screen
  • ncurses_clrtobot() - Clear screen from current position to bottom

ncurses_clrtobot
ncurses_color_content
Ncurses 函数


Gets the RGB value for color

ncurses_clrtoeol
ncurses_color_set
Ncurses 函数
PHP 手册

ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_color_content — Gets the RGB value for color

说明

int ncurses_color_content ( int $color , int &$r , int &$g , int &$b )
Warning

本函数暂无文档，仅有参数列表。

参数

color

r

g

b

ncurses_clrtoeol
ncurses_color_set
Ncurses 函数


Set fore- and background color

ncurses_color_content
ncurses_curs_set
Ncurses 函数
PHP 手册

ncurses_color_set

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_color_set — Set fore- and background color

说明

int ncurses_color_set ( int $pair )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

pair

ncurses_color_content
ncurses_curs_set
Ncurses 函数


Set cursor state

ncurses_color_set
ncurses_def_prog_mode
Ncurses 函数
PHP 手册

ncurses_curs_set

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_curs_set — Set cursor state

说明

int ncurses_curs_set ( int $visibility )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

visibility

ncurses_color_set
ncurses_def_prog_mode
Ncurses 函数


Saves terminals (program) mode

ncurses_curs_set
ncurses_def_shell_mode
Ncurses 函数
PHP 手册

ncurses_def_prog_mode

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_def_prog_mode — Saves terminals (program) mode

说明

bool ncurses_def_prog_mode ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode().

返回值

Returns FALSE on success, otherwise TRUE.

参见

  • ncurses_reset_prog_mode() - Resets the prog mode saved by def_prog_mode

ncurses_curs_set
ncurses_def_shell_mode
Ncurses 函数


Saves terminals (shell) mode

ncurses_def_prog_mode
ncurses_define_key
Ncurses 函数
PHP 手册

ncurses_def_shell_mode

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_def_shell_mode — Saves terminals (shell) mode

说明

bool ncurses_def_shell_mode ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode().

返回值

Returns FALSE on success, TRUE otherwise.

参见

  • ncurses_reset_shell_mode() - Resets the shell mode saved by def_shell_mode

ncurses_def_prog_mode
ncurses_define_key
Ncurses 函数


Define a keycode

ncurses_def_shell_mode
ncurses_del_panel
Ncurses 函数
PHP 手册

ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_define_key — Define a keycode

说明

int ncurses_define_key ( string $definition , int $keycode )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

definition

keycode

ncurses_def_shell_mode
ncurses_del_panel
Ncurses 函数


Remove panel from the stack and delete it (but not the associated window)

ncurses_define_key
ncurses_delay_output
Ncurses 函数
PHP 手册

ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)

说明

bool ncurses_del_panel ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

ncurses_define_key
ncurses_delay_output
Ncurses 函数


Delay output on terminal using padding characters

ncurses_del_panel
ncurses_delch
Ncurses 函数
PHP 手册

ncurses_delay_output

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_delay_output — Delay output on terminal using padding characters

说明

int ncurses_delay_output ( int $milliseconds )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

milliseconds

ncurses_del_panel
ncurses_delch
Ncurses 函数


Delete character at current position, move rest of line left

ncurses_delay_output
ncurses_deleteln
Ncurses 函数
PHP 手册

ncurses_delch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_delch — Delete character at current position, move rest of line left

说明

bool ncurses_delch ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change.

返回值

Returns FALSE on success, TRUE otherwise.

参见

  • ncurses_deleteln() - Delete line at current position, move rest of screen up

ncurses_delay_output
ncurses_deleteln
Ncurses 函数


Delete line at current position, move rest of screen up

ncurses_delch
ncurses_delwin
Ncurses 函数
PHP 手册

ncurses_deleteln

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_deleteln — Delete line at current position, move rest of screen up

说明

bool ncurses_deleteln ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Deletes the current line under cursorposition. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change.

返回值

Returns FALSE on success, otherwise TRUE.

参见

  • ncurses_delch() - Delete character at current position, move rest of line left

ncurses_delch
ncurses_delwin
Ncurses 函数


Delete a ncurses window

ncurses_deleteln
ncurses_doupdate
Ncurses 函数
PHP 手册

ncurses_delwin

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_delwin — Delete a ncurses window

说明

bool ncurses_delwin ( resource $window )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_deleteln
ncurses_doupdate
Ncurses 函数


Write all prepared refreshes to terminal

ncurses_delwin
ncurses_echo
Ncurses 函数
PHP 手册

ncurses_doupdate

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_doupdate — Write all prepared refreshes to terminal

说明

bool ncurses_doupdate ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ncurses_delwin
ncurses_echo
Ncurses 函数


Activate keyboard input echo

ncurses_doupdate
ncurses_echochar
Ncurses 函数
PHP 手册

ncurses_echo

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_echo — Activate keyboard input echo

说明

bool ncurses_echo ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Enables echo mode. All characters typed by user are echoed by ncurses_getch().

返回值

Returns FALSE on success, TRUE if any error occurred.

参见

  • ncurses_noecho() - Switch off keyboard input echo to disable echo mode

ncurses_doupdate
ncurses_echochar
Ncurses 函数


Single character output including refresh

ncurses_echo
ncurses_end
Ncurses 函数
PHP 手册

ncurses_echochar

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_echochar — Single character output including refresh

说明

int ncurses_echochar ( int $character )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

character

ncurses_echo
ncurses_end
Ncurses 函数


Stop using ncurses, clean up the screen

ncurses_echochar
ncurses_erase
Ncurses 函数
PHP 手册

ncurses_end

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_end — Stop using ncurses, clean up the screen

说明

int ncurses_end ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_echochar
ncurses_erase
Ncurses 函数


Erase terminal screen

ncurses_end
ncurses_erasechar
Ncurses 函数
PHP 手册

ncurses_erase

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_erase — Erase terminal screen

说明

bool ncurses_erase ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Fills the terminal screen with blanks.

Created blanks have the current background rendition, set by ncurses_bkgd().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ncurses_bkgd() - Set background property for terminal screen
  • ncurses_clear() - Clear screen

ncurses_end
ncurses_erasechar
Ncurses 函数


Returns current erase character

ncurses_erase
ncurses_filter
Ncurses 函数
PHP 手册

ncurses_erasechar

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_erasechar — Returns current erase character

说明

string ncurses_erasechar ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the current erase character.

返回值

The current erase char, as a string.

参见

  • ncurses_killchar() - Returns current line kill character

ncurses_erase
ncurses_filter
Ncurses 函数


Set LINES for iniscr() and newterm() to 1

ncurses_erasechar
ncurses_flash
Ncurses 函数
PHP 手册

ncurses_filter

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_filter — Set LINES for iniscr() and newterm() to 1

说明

void ncurses_filter ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_erasechar
ncurses_flash
Ncurses 函数


Flash terminal screen (visual bell)

ncurses_filter
ncurses_flushinp
Ncurses 函数
PHP 手册

ncurses_flash

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_flash — Flash terminal screen (visual bell)

说明

bool ncurses_flash ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Flashes the screen, and if its not possible, sends an audible alert (bell).

返回值

Returns FALSE on success, otherwise TRUE.

参见

  • ncurses_beep() - Let the terminal beep

ncurses_filter
ncurses_flushinp
Ncurses 函数


Flush keyboard input buffer

ncurses_flash
ncurses_getch
Ncurses 函数
PHP 手册

ncurses_flushinp

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_flushinp — Flush keyboard input buffer

说明

bool ncurses_flushinp ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Throws away any typeahead that has been typed and has not yet been read by your program.

返回值

Returns FALSE on success, otherwise TRUE.

ncurses_flash
ncurses_getch
Ncurses 函数


Read a character from keyboard

ncurses_flushinp
ncurses_getmaxyx
Ncurses 函数
PHP 手册

ncurses_getch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_getch — Read a character from keyboard

说明

int ncurses_getch ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_flushinp
ncurses_getmaxyx
Ncurses 函数


Returns the size of a window

ncurses_getch
ncurses_getmouse
Ncurses 函数
PHP 手册

ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_getmaxyx — Returns the size of a window

说明

void ncurses_getmaxyx ( resource $window , int &$y , int &$x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Gets the horizontal and vertical size of the given window into the given variables.

Variables must be passed as reference, so they are updated when the user changes the terminal size.

参数

window

The measured window

x

This will be set to the window width

y

This will be set to the window height

返回值

无返回值。

ncurses_getch
ncurses_getmouse
Ncurses 函数


Reads mouse event

ncurses_getmaxyx
ncurses_getyx
Ncurses 函数
PHP 手册

ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_getmouse — Reads mouse event

说明

bool ncurses_getmouse ( array &$mevent )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

ncurses_getmouse() reads mouse event out of queue.

参数

mevent

Event options will be delivered in this parameter which has to be an array, passed by reference (see example below).

On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

返回值

Returns FALSE if a mouse event is actually visible in the given window, otherwise returns TRUE.

范例

Example #1 ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

参见

  • ncurses_ungetmouse() - Pushes mouse event to queue

ncurses_getmaxyx
ncurses_getyx
Ncurses 函数


Returns the current cursor position for a window

ncurses_getmouse
ncurses_halfdelay
Ncurses 函数
PHP 手册

ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_getyx — Returns the current cursor position for a window

说明

void ncurses_getyx ( resource $window , int &$y , int &$x )
Warning

本函数暂无文档，仅有参数列表。

参数

window

y

x

ncurses_getmouse
ncurses_halfdelay
Ncurses 函数


Put terminal into halfdelay mode

ncurses_getyx
ncurses_has_colors
Ncurses 函数
PHP 手册

ncurses_halfdelay

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_halfdelay — Put terminal into halfdelay mode

说明

int ncurses_halfdelay ( int $tenth )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

tenth

ncurses_getyx
ncurses_has_colors
Ncurses 函数


Check if terminal has colors

ncurses_halfdelay
ncurses_has_ic
Ncurses 函数
PHP 手册

ncurses_has_colors

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_has_colors — Check if terminal has colors

说明

bool ncurses_has_colors ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Checks whether the terminal has color capacities.

返回值

Return TRUE if the terminal has color capacities, FALSE otherwise.

参见

  • ncurses_can_change_color() - Check if we can change terminals colors

ncurses_halfdelay
ncurses_has_ic
Ncurses 函数


Check for insert- and delete-capabilities

ncurses_has_colors
ncurses_has_il
Ncurses 函数
PHP 手册

ncurses_has_ic

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_has_ic — Check for insert- and delete-capabilities

说明

bool ncurses_has_ic ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Checks whether the terminal has insert and delete capabilities.

返回值

Returns TRUE if the terminal has insert/delete-capabilities, FALSE otherwise.

参见

  • ncurses_has_il() - Check for line insert- and delete-capabilities

ncurses_has_colors
ncurses_has_il
Ncurses 函数


Check for line insert- and delete-capabilities

ncurses_has_ic
ncurses_has_key
Ncurses 函数
PHP 手册

ncurses_has_il

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_has_il — Check for line insert- and delete-capabilities

说明

bool ncurses_has_il ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Checks whether the terminal has insert- and delete-line-capabilities.

返回值

Returns TRUE if the terminal has insert/delete-line capabilities, FALSE otherwise.

参见

  • ncurses_has_ic() - Check for insert- and delete-capabilities

ncurses_has_ic
ncurses_has_key
Ncurses 函数


Check for presence of a function key on terminal keyboard

ncurses_has_il
ncurses_hide_panel
Ncurses 函数
PHP 手册

ncurses_has_key

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_has_key — Check for presence of a function key on terminal keyboard

说明

int ncurses_has_key ( int $keycode )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

keycode

ncurses_has_il
ncurses_hide_panel
Ncurses 函数


Remove panel from the stack, making it invisible

ncurses_has_key
ncurses_hline
Ncurses 函数
PHP 手册

ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_hide_panel — Remove panel from the stack, making it invisible

说明

int ncurses_hide_panel ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

ncurses_has_key
ncurses_hline
Ncurses 函数


Draw a horizontal line at current position using an attributed character and max. n characters long

ncurses_hide_panel
ncurses_inch
Ncurses 函数
PHP 手册

ncurses_hline

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long

说明

int ncurses_hline ( int $charattr , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

charattr

n

ncurses_hide_panel
ncurses_inch
Ncurses 函数


Get character and attribute at current position

ncurses_hline
ncurses_init_color
Ncurses 函数
PHP 手册

ncurses_inch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_inch — Get character and attribute at current position

说明

string ncurses_inch ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the character from the current position.

返回值

Returns the character, as a string.

ncurses_hline
ncurses_init_color
Ncurses 函数


Set new RGB value for color

ncurses_inch
ncurses_init_pair
Ncurses 函数
PHP 手册

ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_init_color — Set new RGB value for color

说明

int ncurses_init_color ( int $color , int $r , int $g , int $b )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

color

r

g

b

ncurses_inch
ncurses_init_pair
Ncurses 函数


Allocate a color pair

ncurses_init_color
ncurses_init
Ncurses 函数
PHP 手册

ncurses_init_pair

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_init_pair — Allocate a color pair

说明

int ncurses_init_pair ( int $pair , int $fg , int $bg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

pair

fg

bg

ncurses_init_color
ncurses_init
Ncurses 函数


Initialize ncurses

ncurses_init_pair
ncurses_insch
Ncurses 函数
PHP 手册

ncurses_init

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_init — Initialize ncurses

说明

void ncurses_init ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Initializes the ncurses interface and must be used before any other ncurses function call.

返回值

无返回值。

ncurses_init_pair
ncurses_insch
Ncurses 函数


Insert character moving rest of line including character at current position

ncurses_init
ncurses_insdelln
Ncurses 函数
PHP 手册

ncurses_insch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_insch — Insert character moving rest of line including character at current position

说明

int ncurses_insch ( int $character )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

character

ncurses_init
ncurses_insdelln
Ncurses 函数


Insert lines before current line scrolling down (negative numbers delete and scroll up)

ncurses_insch
ncurses_insertln
Ncurses 函数
PHP 手册

ncurses_insdelln

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)

说明

int ncurses_insdelln ( int $count )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

count

ncurses_insch
ncurses_insertln
Ncurses 函数


Insert a line, move rest of screen down

ncurses_insdelln
ncurses_insstr
Ncurses 函数
PHP 手册

ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_insertln — Insert a line, move rest of screen down

说明

int ncurses_insertln ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Inserts a new line above the current line. The bottom line will be lost.

ncurses_insdelln
ncurses_insstr
Ncurses 函数


Insert string at current position, moving rest of line right

ncurses_insertln
ncurses_instr
Ncurses 函数
PHP 手册

ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_insstr — Insert string at current position, moving rest of line right

说明

int ncurses_insstr ( string $text )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

text

ncurses_insertln
ncurses_instr
Ncurses 函数


Reads string from terminal screen

ncurses_insstr
ncurses_isendwin
Ncurses 函数
PHP 手册

ncurses_instr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_instr — Reads string from terminal screen

说明

int ncurses_instr ( string &$buffer )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Reads a string from the terminal screen and returns the number of characters read from the current character position until end of line.

参数

buffer

The characters. Attributes will be stripped.

返回值

Returns the number of characters.

ncurses_insstr
ncurses_isendwin
Ncurses 函数


Ncurses is in endwin mode, normal screen output may be performed

ncurses_instr
ncurses_keyok
Ncurses 函数
PHP 手册

ncurses_isendwin

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed

说明

bool ncurses_isendwin ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Checks if ncurses is in endwin mode.

返回值

Returns TRUE, if ncurses_end() has been called without any subsequent calls to ncurses_wrefresh(), FALSE otherwise.

参见

  • ncurses_end() - Stop using ncurses, clean up the screen
  • ncurses_wrefresh() - Refresh window on terminal screen

ncurses_instr
ncurses_keyok
Ncurses 函数


Enable or disable a keycode

ncurses_isendwin
ncurses_keypad
Ncurses 函数
PHP 手册

ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_keyok — Enable or disable a keycode

说明

int ncurses_keyok ( int $keycode , bool $enable )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

keycode

enable

ncurses_isendwin
ncurses_keypad
Ncurses 函数


Turns keypad on or off

ncurses_keyok
ncurses_killchar
Ncurses 函数
PHP 手册

ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_keypad — Turns keypad on or off

说明

int ncurses_keypad ( resource $window , bool $bf )
Warning

本函数暂无文档，仅有参数列表。

参数

window

bf

ncurses_keyok
ncurses_killchar
Ncurses 函数


Returns current line kill character

ncurses_keypad
ncurses_longname
Ncurses 函数
PHP 手册

ncurses_killchar

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_killchar — Returns current line kill character

说明

string ncurses_killchar ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the current line kill character.

返回值

Returns the kill character, as a string.

参见

  • ncurses_erasechar() - Returns current erase character

ncurses_keypad
ncurses_longname
Ncurses 函数


Returns terminals description

ncurses_killchar
ncurses_meta
Ncurses 函数
PHP 手册

ncurses_longname

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_longname — Returns terminals description

说明

string ncurses_longname ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns a verbose description of the terminal.

返回值

Returns the description, as a string truncated to 128 characters. On errors, returns NULL.

参见

  • ncurses_termname() - Returns terminals (short)-name

ncurses_killchar
ncurses_meta
Ncurses 函数


Enables/Disable 8-bit meta key information

ncurses_longname
ncurses_mouse_trafo
Ncurses 函数
PHP 手册

ncurses_meta

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_meta — Enables/Disable 8-bit meta key information

说明

int ncurses_meta ( resource $window , bool $8bit )
Warning

本函数暂无文档，仅有参数列表。

参数

window

8bit

ncurses_longname
ncurses_mouse_trafo
Ncurses 函数


Transforms coordinates

ncurses_meta
ncurses_mouseinterval
Ncurses 函数
PHP 手册

ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mouse_trafo — Transforms coordinates

说明

bool ncurses_mouse_trafo ( int &$y , int &$x , bool $toscreen )
Warning

本函数暂无文档，仅有参数列表。

参数

y

x

toscreen

ncurses_meta
ncurses_mouseinterval
Ncurses 函数


Set timeout for mouse button clicks

ncurses_mouse_trafo
ncurses_mousemask
Ncurses 函数
PHP 手册

ncurses_mouseinterval

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mouseinterval — Set timeout for mouse button clicks

说明

int ncurses_mouseinterval ( int $milliseconds )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

milliseconds

ncurses_mouse_trafo
ncurses_mousemask
Ncurses 函数


Sets mouse options

ncurses_mouseinterval
ncurses_move_panel
Ncurses 函数
PHP 手册

ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mousemask — Sets mouse options

说明

int ncurses_mousemask ( int $newmask , int &$oldmask )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets mouse events to be reported. By default no mouse events will be reported.

Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of queue, call ncurses_getmouse().

参数

newmask

Mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

oldmask

This will be set to the previous value of the mouse event mask.

返回值

Returns a mask to indicated which of the in parameter newmask specified mouse events can be reported. On complete failure, it returns 0.

范例

Example #1 ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
    printf("All specified mouse options will be supported\n");
}
?>

参见

  • ncurses_getch() - Read a character from keyboard
  • ncurses_getmouse() - Reads mouse event
  • ncurses_ungetmouse() - Pushes mouse event to queue

ncurses_mouseinterval
ncurses_move_panel
Ncurses 函数


Moves a panel so that its upper-left corner is at [startx, starty]

ncurses_mousemask
ncurses_move
Ncurses 函数
PHP 手册

ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]

说明

int ncurses_move_panel ( resource $panel , int $startx , int $starty )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

startx

starty

ncurses_mousemask
ncurses_move
Ncurses 函数


Move output position

ncurses_move_panel
ncurses_mvaddch
Ncurses 函数
PHP 手册

ncurses_move

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_move — Move output position

说明

int ncurses_move ( int $y , int $x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

ncurses_move_panel
ncurses_mvaddch
Ncurses 函数


Move current position and add character

ncurses_move
ncurses_mvaddchnstr
Ncurses 函数
PHP 手册

ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvaddch — Move current position and add character

说明

int ncurses_mvaddch ( int $y , int $x , int $c )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

c

ncurses_move
ncurses_mvaddchnstr
Ncurses 函数


Move position and add attributed string with specified length

ncurses_mvaddch
ncurses_mvaddchstr
Ncurses 函数
PHP 手册

ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvaddchnstr — Move position and add attributed string with specified length

说明

int ncurses_mvaddchnstr ( int $y , int $x , string $s , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

s

n

ncurses_mvaddch
ncurses_mvaddchstr
Ncurses 函数


Move position and add attributed string

ncurses_mvaddchnstr
ncurses_mvaddnstr
Ncurses 函数
PHP 手册

ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvaddchstr — Move position and add attributed string

说明

int ncurses_mvaddchstr ( int $y , int $x , string $s )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

s

ncurses_mvaddchnstr
ncurses_mvaddnstr
Ncurses 函数


Move position and add string with specified length

ncurses_mvaddchstr
ncurses_mvaddstr
Ncurses 函数
PHP 手册

ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvaddnstr — Move position and add string with specified length

说明

int ncurses_mvaddnstr ( int $y , int $x , string $s , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

s

n

ncurses_mvaddchstr
ncurses_mvaddstr
Ncurses 函数


Move position and add string

ncurses_mvaddnstr
ncurses_mvcur
Ncurses 函数
PHP 手册

ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvaddstr — Move position and add string

说明

int ncurses_mvaddstr ( int $y , int $x , string $s )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

s

ncurses_mvaddnstr
ncurses_mvcur
Ncurses 函数


Move cursor immediately

ncurses_mvaddstr
ncurses_mvdelch
Ncurses 函数
PHP 手册

ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvcur — Move cursor immediately

说明

int ncurses_mvcur ( int $old_y , int $old_x , int $new_y , int $new_x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

old_y

old_x

new_y

new_x

ncurses_mvaddstr
ncurses_mvdelch
Ncurses 函数


Move position and delete character, shift rest of line left

ncurses_mvcur
ncurses_mvgetch
Ncurses 函数
PHP 手册

ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvdelch — Move position and delete character, shift rest of line left

说明

int ncurses_mvdelch ( int $y , int $x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

ncurses_mvcur
ncurses_mvgetch
Ncurses 函数


Move position and get character at new position

ncurses_mvdelch
ncurses_mvhline
Ncurses 函数
PHP 手册

ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvgetch — Move position and get character at new position

说明

int ncurses_mvgetch ( int $y , int $x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

ncurses_mvdelch
ncurses_mvhline
Ncurses 函数


Set new position and draw a horizontal line using an attributed character and max. n characters long

ncurses_mvgetch
ncurses_mvinch
Ncurses 函数
PHP 手册

ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long

说明

int ncurses_mvhline ( int $y , int $x , int $attrchar , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

attrchar

n

ncurses_mvgetch
ncurses_mvinch
Ncurses 函数


Move position and get attributed character at new position

ncurses_mvhline
ncurses_mvvline
Ncurses 函数
PHP 手册

ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvinch — Move position and get attributed character at new position

说明

int ncurses_mvinch ( int $y , int $x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

ncurses_mvhline
ncurses_mvvline
Ncurses 函数


Set new position and draw a vertical line using an attributed character and max. n characters long

ncurses_mvinch
ncurses_mvwaddstr
Ncurses 函数
PHP 手册

ncurses_mvvline

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long

说明

int ncurses_mvvline ( int $y , int $x , int $attrchar , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

y

x

attrchar

n

ncurses_mvinch
ncurses_mvwaddstr
Ncurses 函数


Add string at new position in window

ncurses_mvvline
ncurses_napms
Ncurses 函数
PHP 手册

ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_mvwaddstr — Add string at new position in window

说明

int ncurses_mvwaddstr ( resource $window , int $y , int $x , string $text )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

window

y

x

text

ncurses_mvvline
ncurses_napms
Ncurses 函数


Sleep

ncurses_mvwaddstr
ncurses_new_panel
Ncurses 函数
PHP 手册

ncurses_napms

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_napms — Sleep

说明

int ncurses_napms ( int $milliseconds )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

milliseconds

ncurses_mvwaddstr
ncurses_new_panel
Ncurses 函数


Create a new panel and associate it with window

ncurses_napms
ncurses_newpad
Ncurses 函数
PHP 手册

ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_new_panel — Create a new panel and associate it with window

说明

resource ncurses_new_panel ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_napms
ncurses_newpad
Ncurses 函数


Creates a new pad (window)

ncurses_new_panel
ncurses_newwin
Ncurses 函数
PHP 手册

ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_newpad — Creates a new pad (window)

说明

resource ncurses_newpad ( int $rows , int $cols )
Warning

本函数暂无文档，仅有参数列表。

参数

rows

cols

ncurses_new_panel
ncurses_newwin
Ncurses 函数


Create a new window

ncurses_newpad
ncurses_nl
Ncurses 函数
PHP 手册

ncurses_newwin

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_newwin — Create a new window

说明

resource ncurses_newwin ( int $rows , int $cols , int $y , int $x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new window to draw elements in.

When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary.

参数

rows

Number of rows

cols

Number of columns

y

y-ccordinate of the origin

x

x-ccordinate of the origin

返回值

Returns a resource ID for the new window.

ncurses_newpad
ncurses_nl
Ncurses 函数


Translate newline and carriage return / line feed

ncurses_newwin
ncurses_nocbreak
Ncurses 函数
PHP 手册

ncurses_nl

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_nl — Translate newline and carriage return / line feed

说明

bool ncurses_nl ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_newwin
ncurses_nocbreak
Ncurses 函数


Switch terminal to cooked mode

ncurses_nl
ncurses_noecho
Ncurses 函数
PHP 手册

ncurses_nocbreak

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_nocbreak — Switch terminal to cooked mode

说明

bool ncurses_nocbreak ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns terminal to normal (cooked) mode. Initially the terminal may or may not in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly.

返回值

Returns TRUE if any error occurred, otherwise FALSE.

参见

  • ncurses_cbreak() - Switch of input buffering

ncurses_nl
ncurses_noecho
Ncurses 函数


Switch off keyboard input echo

ncurses_nocbreak
ncurses_nonl
Ncurses 函数
PHP 手册

ncurses_noecho

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_noecho — Switch off keyboard input echo

说明

bool ncurses_noecho ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Prevents echoing of user typed characters.

返回值

Returns TRUE if any error occurred, FALSE otherwise.

参见

  • ncurses_echo() - Activate keyboard input echo
  • ncurses_getch() - Read a character from keyboard

ncurses_nocbreak
ncurses_nonl
Ncurses 函数


Do not translate newline and carriage return / line feed

ncurses_noecho
ncurses_noqiflush
Ncurses 函数
PHP 手册

ncurses_nonl

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_nonl — Do not translate newline and carriage return / line feed

说明

bool ncurses_nonl ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_noecho
ncurses_noqiflush
Ncurses 函数


Do not flush on signal characters

ncurses_nonl
ncurses_noraw
Ncurses 函数
PHP 手册

ncurses_noqiflush

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_noqiflush — Do not flush on signal characters

说明

void ncurses_noqiflush ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_nonl
ncurses_noraw
Ncurses 函数


Switch terminal out of raw mode

ncurses_noqiflush
ncurses_pair_content
Ncurses 函数
PHP 手册

ncurses_noraw

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_noraw — Switch terminal out of raw mode

说明

bool ncurses_noraw ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal.

返回值

Returns TRUE if any error occurred, otherwise FALSE.

参见

  • ncurses_raw() - Switch terminal into raw mode
  • ncurses_cbreak() - Switch of input buffering
  • ncurses_nocbreak() - Switch terminal to cooked mode

ncurses_noqiflush
ncurses_pair_content
Ncurses 函数


Gets the RGB value for color

ncurses_noraw
ncurses_panel_above
Ncurses 函数
PHP 手册

ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_pair_content — Gets the RGB value for color

说明

int ncurses_pair_content ( int $pair , int &$f , int &$b )
Warning

本函数暂无文档，仅有参数列表。

参数

pair

f

b

ncurses_noraw
ncurses_panel_above
Ncurses 函数


Returns the panel above panel

ncurses_pair_content
ncurses_panel_below
Ncurses 函数
PHP 手册

ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_panel_above — Returns the panel above panel

说明

resource ncurses_panel_above ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

返回值

If panel is null, returns the bottom panel in the stack.

ncurses_pair_content
ncurses_panel_below
Ncurses 函数


Returns the panel below panel

ncurses_panel_above
ncurses_panel_window
Ncurses 函数
PHP 手册

ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_panel_below — Returns the panel below panel

说明

resource ncurses_panel_below ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

参数

If panel is null, returns the top panel in the stack.

ncurses_panel_above
ncurses_panel_window
Ncurses 函数


Returns the window associated with panel

ncurses_panel_below
ncurses_pnoutrefresh
Ncurses 函数
PHP 手册

ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_panel_window — Returns the window associated with panel

说明

resource ncurses_panel_window ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

ncurses_panel_below
ncurses_pnoutrefresh
Ncurses 函数


Copies a region from a pad into the virtual screen

ncurses_panel_window
ncurses_prefresh
Ncurses 函数
PHP 手册

ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen

说明

int ncurses_pnoutrefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Warning

本函数暂无文档，仅有参数列表。

参数

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol

ncurses_panel_window
ncurses_prefresh
Ncurses 函数


Copies a region from a pad into the virtual screen

ncurses_pnoutrefresh
ncurses_putp
Ncurses 函数
PHP 手册

ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_prefresh — Copies a region from a pad into the virtual screen

说明

int ncurses_prefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Warning

本函数暂无文档，仅有参数列表。

参数

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol

ncurses_pnoutrefresh
ncurses_putp
Ncurses 函数


Apply padding information to the string and output it

ncurses_prefresh
ncurses_qiflush
Ncurses 函数
PHP 手册

ncurses_putp

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_putp — Apply padding information to the string and output it

说明

int ncurses_putp ( string $text )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

text

ncurses_prefresh
ncurses_qiflush
Ncurses 函数


Flush on signal characters

ncurses_putp
ncurses_raw
Ncurses 函数
PHP 手册

ncurses_qiflush

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_qiflush — Flush on signal characters

说明

void ncurses_qiflush ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_putp
ncurses_raw
Ncurses 函数


Switch terminal into raw mode

ncurses_qiflush
ncurses_refresh
Ncurses 函数
PHP 手册

ncurses_raw

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_raw — Switch terminal into raw mode

说明

bool ncurses_raw ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal.

返回值

Returns TRUE if any error occurred, otherwise FALSE.

参见

  • ncurses_noraw() - Switch terminal out of raw mode
  • ncurses_cbreak() - Switch of input buffering
  • ncurses_nocbreak() - Switch terminal to cooked mode

ncurses_qiflush
ncurses_refresh
Ncurses 函数


Refresh screen

ncurses_raw
ncurses_replace_panel
Ncurses 函数
PHP 手册

ncurses_refresh

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_refresh — Refresh screen

说明

int ncurses_refresh ( int $ch )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

ch

ncurses_raw
ncurses_replace_panel
Ncurses 函数


Replaces the window associated with panel

ncurses_refresh
ncurses_reset_prog_mode
Ncurses 函数
PHP 手册

ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_replace_panel — Replaces the window associated with panel

说明

int ncurses_replace_panel ( resource $panel , resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

window

ncurses_refresh
ncurses_reset_prog_mode
Ncurses 函数


Resets the prog mode saved by def_prog_mode

ncurses_replace_panel
ncurses_reset_shell_mode
Ncurses 函数
PHP 手册

ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode

说明

int ncurses_reset_prog_mode ( void )
Warning

本函数暂无文档，仅有参数列表。

ncurses_replace_panel
ncurses_reset_shell_mode
Ncurses 函数


Resets the shell mode saved by def_shell_mode

ncurses_reset_prog_mode
ncurses_resetty
Ncurses 函数
PHP 手册

ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode

说明

int ncurses_reset_shell_mode ( void )
Warning

本函数暂无文档，仅有参数列表。

ncurses_reset_prog_mode
ncurses_resetty
Ncurses 函数


Restores saved terminal state

ncurses_reset_shell_mode
ncurses_savetty
Ncurses 函数
PHP 手册

ncurses_resetty

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_resetty — Restores saved terminal state

说明

bool ncurses_resetty ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Restores the terminal state, which was previously saved by calling ncurses_savetty().

返回值

Always returns FALSE.

参见

  • ncurses_savetty() - Saves terminal state

ncurses_reset_shell_mode
ncurses_savetty
Ncurses 函数


Saves terminal state

ncurses_resetty
ncurses_scr_dump
Ncurses 函数
PHP 手册

ncurses_savetty

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_savetty — Saves terminal state

说明

bool ncurses_savetty ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Saves the current terminal state. The saved terminal state can be restored with ncurses_resetty().

返回值

Always returns FALSE.

参见

  • ncurses_resetty() - Restores saved terminal state

ncurses_resetty
ncurses_scr_dump
Ncurses 函数


Dump screen content to file

ncurses_savetty
ncurses_scr_init
Ncurses 函数
PHP 手册

ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_scr_dump — Dump screen content to file

说明

int ncurses_scr_dump ( string $filename )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

filename

ncurses_savetty
ncurses_scr_init
Ncurses 函数


Initialize screen from file dump

ncurses_scr_dump
ncurses_scr_restore
Ncurses 函数
PHP 手册

ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_scr_init — Initialize screen from file dump

说明

int ncurses_scr_init ( string $filename )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

filename

ncurses_scr_dump
ncurses_scr_restore
Ncurses 函数


Restore screen from file dump

ncurses_scr_init
ncurses_scr_set
Ncurses 函数
PHP 手册

ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_scr_restore — Restore screen from file dump

说明

int ncurses_scr_restore ( string $filename )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

filename

ncurses_scr_init
ncurses_scr_set
Ncurses 函数


Inherit screen from file dump

ncurses_scr_restore
ncurses_scrl
Ncurses 函数
PHP 手册

ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_scr_set — Inherit screen from file dump

说明

int ncurses_scr_set ( string $filename )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

filename

ncurses_scr_restore
ncurses_scrl
Ncurses 函数


Scroll window content up or down without changing current position

ncurses_scr_set
ncurses_show_panel
Ncurses 函数
PHP 手册

ncurses_scrl

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_scrl — Scroll window content up or down without changing current position

说明

int ncurses_scrl ( int $count )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

count

ncurses_scr_set
ncurses_show_panel
Ncurses 函数


Places an invisible panel on top of the stack, making it visible

ncurses_scrl
ncurses_slk_attr
Ncurses 函数
PHP 手册

ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_show_panel — Places an invisible panel on top of the stack, making it visible

说明

int ncurses_show_panel ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

ncurses_scrl
ncurses_slk_attr
Ncurses 函数


Returns current soft label key attribute

ncurses_show_panel
ncurses_slk_attroff
Ncurses 函数
PHP 手册

ncurses_slk_attr

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_attr — Returns current soft label key attribute

说明

int ncurses_slk_attr ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the current soft label key attribute.

返回值

The attribute, as an integer.

ncurses_show_panel
ncurses_slk_attroff
Ncurses 函数


Turn off the given attributes for soft function-key labels

ncurses_slk_attr
ncurses_slk_attron
Ncurses 函数
PHP 手册

ncurses_slk_attroff

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_attroff — Turn off the given attributes for soft function-key labels

说明

int ncurses_slk_attroff ( int $intarg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

intarg

ncurses_slk_attr
ncurses_slk_attron
Ncurses 函数


Turn on the given attributes for soft function-key labels

ncurses_slk_attroff
ncurses_slk_attrset
Ncurses 函数
PHP 手册

ncurses_slk_attron

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_attron — Turn on the given attributes for soft function-key labels

说明

int ncurses_slk_attron ( int $intarg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

intarg

ncurses_slk_attroff
ncurses_slk_attrset
Ncurses 函数


Set given attributes for soft function-key labels

ncurses_slk_attron
ncurses_slk_clear
Ncurses 函数
PHP 手册

ncurses_slk_attrset

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_attrset — Set given attributes for soft function-key labels

说明

int ncurses_slk_attrset ( int $intarg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

intarg

ncurses_slk_attron
ncurses_slk_clear
Ncurses 函数


Clears soft labels from screen

ncurses_slk_attrset
ncurses_slk_color
Ncurses 函数
PHP 手册

ncurses_slk_clear

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_clear — Clears soft labels from screen

说明

bool ncurses_slk_clear ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

The function ncurses_slk_clear() clears soft label keys from screen.

返回值

Returns TRUE on errors, FALSE otherwise.

ncurses_slk_attrset
ncurses_slk_color
Ncurses 函数


Sets color for soft label keys

ncurses_slk_clear
ncurses_slk_init
Ncurses 函数
PHP 手册

ncurses_slk_color

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_color — Sets color for soft label keys

说明

int ncurses_slk_color ( int $intarg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

intarg

ncurses_slk_clear
ncurses_slk_init
Ncurses 函数


Initializes soft label key functions

ncurses_slk_color
ncurses_slk_noutrefresh
Ncurses 函数
PHP 手册

ncurses_slk_init

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_init — Initializes soft label key functions

说明

bool ncurses_slk_init ( int $format )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Initializes soft label key functions

This function must be called before ncurses_init() or ncurses_newwin() is called.

参数

format

If ncurses_init() eventually uses a line from stdscr to emulate the soft labels, then this parameter determines how the labels are arranged of the screen.

0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ncurses_slk_color
ncurses_slk_noutrefresh
Ncurses 函数


Copies soft label keys to virtual screen

ncurses_slk_init
ncurses_slk_refresh
Ncurses 函数
PHP 手册

ncurses_slk_noutrefresh

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_noutrefresh — Copies soft label keys to virtual screen

说明

bool ncurses_slk_noutrefresh ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_slk_init
ncurses_slk_refresh
Ncurses 函数


Copies soft label keys to screen

ncurses_slk_noutrefresh
ncurses_slk_restore
Ncurses 函数
PHP 手册

ncurses_slk_refresh

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_refresh — Copies soft label keys to screen

说明

int ncurses_slk_refresh ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Copies soft label keys from virtual screen to physical screen.

ncurses_slk_noutrefresh
ncurses_slk_restore
Ncurses 函数


Restores soft label keys

ncurses_slk_refresh
ncurses_slk_set
Ncurses 函数
PHP 手册

ncurses_slk_restore

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_restore — Restores soft label keys

说明

int ncurses_slk_restore ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Restores the soft label keys after ncurses_slk_clear() has been performed.

ncurses_slk_refresh
ncurses_slk_set
Ncurses 函数


Sets function key labels

ncurses_slk_restore
ncurses_slk_touch
Ncurses 函数
PHP 手册

ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_set — Sets function key labels

说明

bool ncurses_slk_set ( int $labelnr , string $label , int $format )
Warning

本函数暂无文档，仅有参数列表。

参数

labelnr

label

format

ncurses_slk_restore
ncurses_slk_touch
Ncurses 函数


Forces output when ncurses_slk_noutrefresh is performed

ncurses_slk_set
ncurses_standend
Ncurses 函数
PHP 手册

ncurses_slk_touch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed

说明

int ncurses_slk_touch ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.

ncurses_slk_set
ncurses_standend
Ncurses 函数


Stop using 'standout' attribute

ncurses_slk_touch
ncurses_standout
Ncurses 函数
PHP 手册

ncurses_standend

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_standend — Stop using 'standout' attribute

说明

int ncurses_standend ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_slk_touch
ncurses_standout
Ncurses 函数


Start using 'standout' attribute

ncurses_standend
ncurses_start_color
Ncurses 函数
PHP 手册

ncurses_standout

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_standout — Start using 'standout' attribute

说明

int ncurses_standout ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_standend
ncurses_start_color
Ncurses 函数


Start using colors

ncurses_standout
ncurses_termattrs
Ncurses 函数
PHP 手册

ncurses_start_color

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_start_color — Start using colors

说明

int ncurses_start_color ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_standout
ncurses_termattrs
Ncurses 函数


Returns a logical OR of all attribute flags supported by terminal

ncurses_start_color
ncurses_termname
Ncurses 函数
PHP 手册

ncurses_termattrs

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal

说明

bool ncurses_termattrs ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_start_color
ncurses_termname
Ncurses 函数


Returns terminals (short)-name

ncurses_termattrs
ncurses_timeout
Ncurses 函数
PHP 手册

ncurses_termname

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_termname — Returns terminals (short)-name

说明

string ncurses_termname ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns terminals shortname.

返回值

Returns the shortname of the terminal, truncated to 14 characters. On errors, returns NULL.

参见

  • ncurses_longname() - Returns terminals description

ncurses_termattrs
ncurses_timeout
Ncurses 函数


Set timeout for special key sequences

ncurses_termname
ncurses_top_panel
Ncurses 函数
PHP 手册

ncurses_timeout

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_timeout — Set timeout for special key sequences

说明

void ncurses_timeout ( int $millisec )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

millisec

ncurses_termname
ncurses_top_panel
Ncurses 函数


Moves a visible panel to the top of the stack

ncurses_timeout
ncurses_typeahead
Ncurses 函数
PHP 手册

ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_top_panel — Moves a visible panel to the top of the stack

说明

int ncurses_top_panel ( resource $panel )
Warning

本函数暂无文档，仅有参数列表。

参数

panel

ncurses_timeout
ncurses_typeahead
Ncurses 函数


Specify different filedescriptor for typeahead checking

ncurses_top_panel
ncurses_ungetch
Ncurses 函数
PHP 手册

ncurses_typeahead

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_typeahead — Specify different filedescriptor for typeahead checking

说明

int ncurses_typeahead ( int $fd )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

fd

ncurses_top_panel
ncurses_ungetch
Ncurses 函数


Put a character back into the input stream

ncurses_typeahead
ncurses_ungetmouse
Ncurses 函数
PHP 手册

ncurses_ungetch

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_ungetch — Put a character back into the input stream

说明

int ncurses_ungetch ( int $keycode )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

keycode

ncurses_typeahead
ncurses_ungetmouse
Ncurses 函数


Pushes mouse event to queue

ncurses_ungetch
ncurses_update_panels
Ncurses 函数
PHP 手册

ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_ungetmouse — Pushes mouse event to queue

说明

bool ncurses_ungetmouse ( array $mevent )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Pushes a KEY_MOUSE event onto the unput queue and associates with this event the given state sata and screen-relative character cell coordinates, specified in mevent .

参数

mevent

An associative array specifying the event options:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

返回值

Returns FALSE on success, TRUE otherwise.

参见

  • ncurses_getmouse() - Reads mouse event

ncurses_ungetch
ncurses_update_panels
Ncurses 函数


Refreshes the virtual screen to reflect the relations between panels in the stack

ncurses_ungetmouse
ncurses_use_default_colors
Ncurses 函数
PHP 手册

ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack

说明

void ncurses_update_panels ( void )
Warning

本函数暂无文档，仅有参数列表。

ncurses_ungetmouse
ncurses_use_default_colors
Ncurses 函数


Assign terminal default colors to color id -1

ncurses_update_panels
ncurses_use_env
Ncurses 函数
PHP 手册

ncurses_use_default_colors

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_use_default_colors — Assign terminal default colors to color id -1

说明

bool ncurses_use_default_colors ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

ncurses_update_panels
ncurses_use_env
Ncurses 函数


Control use of environment information about terminal size

ncurses_use_default_colors
ncurses_use_extended_names
Ncurses 函数
PHP 手册

ncurses_use_env

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_use_env — Control use of environment information about terminal size

说明

void ncurses_use_env ( bool $flag )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

flag

ncurses_use_default_colors
ncurses_use_extended_names
Ncurses 函数


Control use of extended names in terminfo descriptions

ncurses_use_env
ncurses_vidattr
Ncurses 函数
PHP 手册

ncurses_use_extended_names

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_use_extended_names — Control use of extended names in terminfo descriptions

说明

int ncurses_use_extended_names ( bool $flag )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

flag

ncurses_use_env
ncurses_vidattr
Ncurses 函数


Display the string on the terminal in the video attribute mode

ncurses_use_extended_names
ncurses_vline
Ncurses 函数
PHP 手册

ncurses_vidattr

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses >= 1.0.0)

ncurses_vidattr — Display the string on the terminal in the video attribute mode

说明

int ncurses_vidattr ( int $intarg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

intarg

ncurses_use_extended_names
ncurses_vline
Ncurses 函数


Draw a vertical line at current position using an attributed character and max. n characters long

ncurses_vidattr
ncurses_waddch
Ncurses 函数
PHP 手册

ncurses_vline

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long

说明

int ncurses_vline ( int $charattr , int $n )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

charattr

n

ncurses_vidattr
ncurses_waddch
Ncurses 函数


Adds character at current position in a window and advance cursor

ncurses_vline
ncurses_waddstr
Ncurses 函数
PHP 手册

ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_waddch — Adds character at current position in a window and advance cursor

说明

int ncurses_waddch ( resource $window , int $ch )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ch

ncurses_vline
ncurses_waddstr
Ncurses 函数


Outputs text at current postion in window

ncurses_waddch
ncurses_wattroff
Ncurses 函数
PHP 手册

ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_waddstr — Outputs text at current postion in window

说明

int ncurses_waddstr ( resource $window , string $str [, int $n ] )
Warning

本函数暂无文档，仅有参数列表。

参数

window

str

n

ncurses_waddch
ncurses_wattroff
Ncurses 函数


Turns off attributes for a window

ncurses_waddstr
ncurses_wattron
Ncurses 函数
PHP 手册

ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wattroff — Turns off attributes for a window

说明

int ncurses_wattroff ( resource $window , int $attrs )
Warning

本函数暂无文档，仅有参数列表。

参数

window

attrs

ncurses_waddstr
ncurses_wattron
Ncurses 函数


Turns on attributes for a window

ncurses_wattroff
ncurses_wattrset
Ncurses 函数
PHP 手册

ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wattron — Turns on attributes for a window

说明

int ncurses_wattron ( resource $window , int $attrs )
Warning

本函数暂无文档，仅有参数列表。

参数

window

attrs

ncurses_wattroff
ncurses_wattrset
Ncurses 函数


Set the attributes for a window

ncurses_wattron
ncurses_wborder
Ncurses 函数
PHP 手册

ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wattrset — Set the attributes for a window

说明

int ncurses_wattrset ( resource $window , int $attrs )
Warning

本函数暂无文档，仅有参数列表。

参数

window

attrs

ncurses_wattron
ncurses_wborder
Ncurses 函数


Draws a border around the window using attributed characters

ncurses_wattrset
ncurses_wclear
Ncurses 函数
PHP 手册

ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wborder — Draws a border around the window using attributed characters

说明

int ncurses_wborder ( resource $window , int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Draws the specified lines and corners around the passed window .

Use ncurses_border() for borders around the main window.

参数

Each parameter expects 0 to draw a line and 1 to skip it.

window

The window on which we operate

left

right

top

bottom

tl_corner

Top left corner

tr_corner

Top right corner

bl_corner

Bottom left corner

br_corner

Bottom right corner

参见

  • ncurses_border() - Draw a border around the screen using attributed characters

ncurses_wattrset
ncurses_wclear
Ncurses 函数


Clears window

ncurses_wborder
ncurses_wcolor_set
Ncurses 函数
PHP 手册

ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wclear — Clears window

说明

int ncurses_wclear ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_wborder
ncurses_wcolor_set
Ncurses 函数


Sets windows color pairings

ncurses_wclear
ncurses_werase
Ncurses 函数
PHP 手册

ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wcolor_set — Sets windows color pairings

说明

int ncurses_wcolor_set ( resource $window , int $color_pair )
Warning

本函数暂无文档，仅有参数列表。

参数

window

color_pair

ncurses_wclear
ncurses_werase
Ncurses 函数


Erase window contents

ncurses_wcolor_set
ncurses_wgetch
Ncurses 函数
PHP 手册

ncurses_werase

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_werase — Erase window contents

说明

int ncurses_werase ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_wcolor_set
ncurses_wgetch
Ncurses 函数


Reads a character from keyboard (window)

ncurses_werase
ncurses_whline
Ncurses 函数
PHP 手册

ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wgetch — Reads a character from keyboard (window)

说明

int ncurses_wgetch ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_werase
ncurses_whline
Ncurses 函数


Draws a horizontal line in a window at current position using an attributed character and max. n characters long

ncurses_wgetch
ncurses_wmouse_trafo
Ncurses 函数
PHP 手册

ncurses_whline

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long

说明

int ncurses_whline ( resource $window , int $charattr , int $n )
Warning

本函数暂无文档，仅有参数列表。

参数

window

charattr

n

ncurses_wgetch
ncurses_wmouse_trafo
Ncurses 函数


Transforms window/stdscr coordinates

ncurses_whline
ncurses_wmove
Ncurses 函数
PHP 手册

ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wmouse_trafo — Transforms window/stdscr coordinates

说明

bool ncurses_wmouse_trafo ( resource $window , int &$y , int &$x , bool $toscreen )
Warning

本函数暂无文档，仅有参数列表。

参数

window

x

y

toscreen

ncurses_whline
ncurses_wmove
Ncurses 函数


Moves windows output position

ncurses_wmouse_trafo
ncurses_wnoutrefresh
Ncurses 函数
PHP 手册

ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wmove — Moves windows output position

说明

int ncurses_wmove ( resource $window , int $y , int $x )
Warning

本函数暂无文档，仅有参数列表。

参数

window

y

x

ncurses_wmouse_trafo
ncurses_wnoutrefresh
Ncurses 函数


Copies window to virtual screen

ncurses_wmove
ncurses_wrefresh
Ncurses 函数
PHP 手册

ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wnoutrefresh — Copies window to virtual screen

说明

int ncurses_wnoutrefresh ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_wmove
ncurses_wrefresh
Ncurses 函数


Refresh window on terminal screen

ncurses_wnoutrefresh
ncurses_wstandend
Ncurses 函数
PHP 手册

ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wrefresh — Refresh window on terminal screen

说明

int ncurses_wrefresh ( resource $window )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_wnoutrefresh
ncurses_wstandend
Ncurses 函数


End standout mode for a window

ncurses_wrefresh
ncurses_wstandout
Ncurses 函数
PHP 手册

ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wstandend — End standout mode for a window

说明

int ncurses_wstandend ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_wrefresh
ncurses_wstandout
Ncurses 函数


Enter standout mode for a window

ncurses_wstandend
ncurses_wvline
Ncurses 函数
PHP 手册

ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wstandout — Enter standout mode for a window

说明

int ncurses_wstandout ( resource $window )
Warning

本函数暂无文档，仅有参数列表。

参数

window

ncurses_wstandend
ncurses_wvline
Ncurses 函数


Draws a vertical line in a window at current position using an attributed character and max. n characters long

ncurses_wstandout
Readline
Ncurses 函数
PHP 手册

ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5, PECL ncurses >= 1.0.0)

ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long

说明

int ncurses_wvline ( resource $window , int $charattr , int $n )
Warning

本函数暂无文档，仅有参数列表。

参数

window

charattr

n

ncurses_wstandout
Readline
Ncurses 函数


GNU Readline

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Readline 函数
    • readline_add_history — Adds a line to the history
    • readline_callback_handler_install — Initializes the readline callback interface and terminal, prints the prompt and returns immediately
    • readline_callback_handler_remove — Removes a previously installed callback handler and restores terminal settings
    • readline_callback_read_char — Reads a character and informs the readline callback interface when a line is received
    • readline_clear_history — Clears the history
    • readline_completion_function — Registers a completion function
    • readline_info — Gets/sets various internal readline variables
    • readline_list_history — Lists the history
    • readline_on_new_line — Inform readline that the cursor has moved to a new line
    • readline_read_history — Reads the history
    • readline_redisplay — Redraws the display
    • readline_write_history — Writes the history
    • readline — Reads a line
ncurses_wvline
简介
命令行特有的扩展


简介

The readline functions implement an interface to the GNU Readline library. These are functions that provide editable command lines. An example being the way Bash allows you to use the arrow keys to insert characters or scroll through command history. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts used from a command line.

Note: 本扩展模块在 Windows 平台下不可用。

Readline
安装/配置
Readline


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Readline


需求

To use the readline functions, you need to install libreadline. You can find libreadline on the home page of the GNU Readline project, at » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. It's maintained by Chet Ramey, who's also the author of Bash.

You can also use these functions with the libedit library, a non-GPL replacement for the readline library. The libedit library is BSD licensed and available for download from » http://www.thrysoee.dk/editline/.

安装/配置
安装
安装/配置


安装

To use these functions you must compile the CGI or CLI version of PHP with readline support. You need to configure PHP --with-readline[=DIR]. In order you want to use the libedit readline replacement, configure PHP --with-libedit[=DIR].

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Readline 函数
Readline


Readline 函数

Table of Contents

  • readline_add_history — Adds a line to the history
  • readline_callback_handler_install — Initializes the readline callback interface and terminal, prints the prompt and returns immediately
  • readline_callback_handler_remove — Removes a previously installed callback handler and restores terminal settings
  • readline_callback_read_char — Reads a character and informs the readline callback interface when a line is received
  • readline_clear_history — Clears the history
  • readline_completion_function — Registers a completion function
  • readline_info — Gets/sets various internal readline variables
  • readline_list_history — Lists the history
  • readline_on_new_line — Inform readline that the cursor has moved to a new line
  • readline_read_history — Reads the history
  • readline_redisplay — Redraws the display
  • readline_write_history — Writes the history
  • readline — Reads a line
预定义常量
readline_add_history
Readline


Adds a line to the history

Readline 函数
readline_callback_handler_install
Readline 函数
PHP 手册

readline_add_history

(PHP 4, PHP 5)

readline_add_history — Adds a line to the history

说明

bool readline_add_history ( string $line )

This function adds a line to the command line history.

参数

line

The line to be added in the history.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Readline 函数
readline_callback_handler_install
Readline 函数


Initializes the readline callback interface and terminal, prints the prompt and returns immediately

readline_add_history
readline_callback_handler_remove
Readline 函数
PHP 手册

readline_callback_handler_install

(PHP 5 >= 5.1.0)

readline_callback_handler_install — Initializes the readline callback interface and terminal, prints the prompt and returns immediately

说明

bool readline_callback_handler_install ( string $prompt , callback $callback )

Sets up a readline callback interface then prints prompt and immediately returns. Calling this function twice without removing the previous callback interface will automatically and conveniently overwrite the old interface.

The callback feature is useful when combined with stream_select() as it allows interleaving of IO and user input, unlike readline().

参数

prompt

The prompt message.

callback

The callback function takes one parameter; the user input returned.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Readline Callback Interface Example

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "You entered: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');

while ($prompting) {
    $w = NULL;
    $e = NULL;
    $n = stream_select($r = array(STDIN), $w, $e, null);
    if ($n && in_array(STDIN, $r)) {
        // read a character, will call the callback when a newline is entered
        readline_callback_read_char();
    }
}

echo "Prompting disabled. All done.\n";
?>

参见

  • readline_callback_handler_remove() - Removes a previously installed callback handler and restores terminal settings
  • readline_callback_read_char() - Reads a character and informs the readline callback interface when a line is received
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

readline_add_history
readline_callback_handler_remove
Readline 函数


Removes a previously installed callback handler and restores terminal settings

readline_callback_handler_install
readline_callback_read_char
Readline 函数
PHP 手册

readline_callback_handler_remove

(PHP 5 >= 5.1.0)

readline_callback_handler_remove — Removes a previously installed callback handler and restores terminal settings

说明

bool readline_callback_handler_remove ( void )

Removes a previously installed callback handler and restores terminal settings.

返回值

Returns TRUE if a previously installed callback handler was removed, or FALSE if one could not be found.

范例

See readline_callback_handler_install() for an example of how to use the readline callback interface.

参见

  • readline_callback_handler_install() - Initializes the readline callback interface and terminal, prints the prompt and returns immediately
  • readline_callback_read_char() - Reads a character and informs the readline callback interface when a line is received

readline_callback_handler_install
readline_callback_read_char
Readline 函数


Reads a character and informs the readline callback interface when a line is received

readline_callback_handler_remove
readline_clear_history
Readline 函数
PHP 手册

readline_callback_read_char

(PHP 5 >= 5.1.0)

readline_callback_read_char — Reads a character and informs the readline callback interface when a line is received

说明

void readline_callback_read_char ( void )

Reads a character of user input. When a line is received, this function informs the readline callback interface installed using readline_callback_handler_install() that a line is ready for input.

返回值

无返回值。

范例

See readline_callback_handler_install() for an example of how to use the readline callback interface.

参见

  • readline_callback_handler_install() - Initializes the readline callback interface and terminal, prints the prompt and returns immediately
  • readline_callback_handler_remove() - Removes a previously installed callback handler and restores terminal settings

readline_callback_handler_remove
readline_clear_history
Readline 函数


Clears the history

readline_callback_read_char
readline_completion_function
Readline 函数
PHP 手册

readline_clear_history

(PHP 4, PHP 5)

readline_clear_history — Clears the history

说明

bool readline_clear_history ( void )

This function clears the entire command line history.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

readline_callback_read_char
readline_completion_function
Readline 函数


Registers a completion function

readline_clear_history
readline_info
Readline 函数
PHP 手册

readline_completion_function

(PHP 4, PHP 5)

readline_completion_function — Registers a completion function

说明

bool readline_completion_function ( callback $function )

This function registers a completion function. This is the same kind of functionality you'd get if you hit your tab key while using Bash.

参数

function

You must supply the name of an existing function which accepts a partial command line and returns an array of possible matches.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

readline_clear_history
readline_info
Readline 函数


Gets/sets various internal readline variables

readline_completion_function
readline_list_history
Readline 函数
PHP 手册

readline_info

(PHP 4, PHP 5)

readline_info — Gets/sets various internal readline variables

说明

mixed readline_info ([ string $varname [, string $newvalue ]] )

Gets or sets various internal readline variables.

参数

varname

A variable name.

newvalue

If provided, this will be the new value of the setting.

返回值

If called with no parameters, this function returns an array of values for all the setting readline uses. The elements will be indexed by the following values: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, and terminal_name.

If called with one or two parameters, the old value is returned.

readline_completion_function
readline_list_history
Readline 函数


Lists the history

readline_info
readline_on_new_line
Readline 函数
PHP 手册

readline_list_history

(PHP 4, PHP 5)

readline_list_history — Lists the history

说明

array readline_list_history ( void )

Gets the entire command line history.

返回值

Returns an array of the entire command line history. The elements are indexed by integers starting at zero.

readline_info
readline_on_new_line
Readline 函数


Inform readline that the cursor has moved to a new line

readline_list_history
readline_read_history
Readline 函数
PHP 手册

readline_on_new_line

(PHP 5 >= 5.1.0)

readline_on_new_line — Inform readline that the cursor has moved to a new line

说明

void readline_on_new_line ( void )

Tells readline that the cursor has moved to a new line.

返回值

无返回值。

readline_list_history
readline_read_history
Readline 函数


Reads the history

readline_on_new_line
readline_redisplay
Readline 函数
PHP 手册

readline_read_history

(PHP 4, PHP 5)

readline_read_history — Reads the history

说明

bool readline_read_history ([ string $filename ] )

This function reads a command history from a file.

参数

filename

Path to the filename containing the command history.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

readline_on_new_line
readline_redisplay
Readline 函数


Redraws the display

readline_read_history
readline_write_history
Readline 函数
PHP 手册

readline_redisplay

(PHP 5 >= 5.1.0)

readline_redisplay — Redraws the display

说明

void readline_redisplay ( void )

Redraws readline to redraw the display.

返回值

无返回值。

readline_read_history
readline_write_history
Readline 函数


Writes the history

readline_redisplay
readline
Readline 函数
PHP 手册

readline_write_history

(PHP 4, PHP 5)

readline_write_history — Writes the history

说明

bool readline_write_history ([ string $filename ] )

This function writes the command history to a file.

参数

filename

Path to the saved file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

readline_redisplay
readline
Readline 函数


Reads a line

readline_write_history
压缩与归档扩展
Readline 函数
PHP 手册

readline

(PHP 4, PHP 5)

readline — Reads a line

说明

string readline ([ string $prompt ] )

Reads a single line from the user. You must add this line to the history yourself using readline_add_history().

参数

prompt

You may specify a string with which to prompt the user.

返回值

Returns a single string from the user. The line returned has the ending newline removed.

范例

Example #1 readline() Example

<?php
//get 3 commands from user
for ($i=0; $i < 3; $i++) {
        $line = readline("Command: ");
        readline_add_history($line);
}

//dump history
print_r(readline_list_history());

//dump variables
print_r(readline_info());
?>

readline_write_history
压缩与归档扩展
Readline 函数


压缩与归档扩展

  • Bzip2
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Bzip2 函数
  • LZF
    • 简介
    • 安装/配置
    • 预定义常量
    • LZF 函数
  • Phar
    • 简介
    • 安装/配置
    • 预定义常量
    • Using Phar Archives
    • Creating Phar Archives
    • What makes a phar a phar and not a tar or a zip?
    • Phar — The Phar class
    • PharData — The PharData class
    • PharFileInfo — The PharFileInfo class
    • PharException — The PharException class
  • Rar — Rar Archiving
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Rar 函数
  • Zip
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Zip 函数
  • Zlib — Zlib Compression
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Zlib 函数
readline
Bzip2
函数参考


Bzip2

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Bzip2 函数
    • bzclose — Close a bzip2 file
    • bzcompress — Compress a string into bzip2 encoded data
    • bzdecompress — Decompresses bzip2 encoded data
    • bzerrno — Returns a bzip2 error number
    • bzerror — Returns the bzip2 error number and error string in an array
    • bzerrstr — Returns a bzip2 error string
    • bzflush — Force a write of all buffered data
    • bzopen — Opens a bzip2 compressed file
    • bzread — Binary safe bzip2 file read
    • bzwrite — Binary safe bzip2 file write
压缩与归档扩展
简介
压缩与归档扩展


简介

The bzip2 functions are used to transparently read and write bzip2 (.bz2) compressed files.

Bzip2
安装/配置
Bzip2


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Bzip2


需求

This module uses the functions of the » bzip2 library by Julian Seward. This module requires bzip2/libbzip2 version >= 1.0.x.

安装/配置
安装
安装/配置


安装

PHP 的 bzip2 支持默认未打开。编译 PHP 时需要 --with-bz2[=DIR] 配置选项来激活 bzip2 支持。

需求
运行时配置
安装/配置


资源类型

This extension defines one resource type: a file pointer identifying the bz2-file to work on.

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Bzip2


范例

This example opens a temporary file and writes a test string to it, then prints out the contents of the file.

Example #1 Small bzip2 Example

<?php

$filename = "/tmp/testfile.bz2";
$str = "This is a test string.\n";

// open file for writing
$bz = bzopen($filename, "w");

// write string to file
bzwrite($bz, $str);

// close file
bzclose($bz);

// open file for reading
$bz = bzopen($filename, "r");

// read 10 characters
echo bzread($bz, 10);

// output until end of the file (or the next 1024 char) and close it.
echo bzread($bz);

bzclose($bz);

?>
预定义常量
Bzip2 函数
Bzip2


Bzip2 函数

Table of Contents

  • bzclose — Close a bzip2 file
  • bzcompress — Compress a string into bzip2 encoded data
  • bzdecompress — Decompresses bzip2 encoded data
  • bzerrno — Returns a bzip2 error number
  • bzerror — Returns the bzip2 error number and error string in an array
  • bzerrstr — Returns a bzip2 error string
  • bzflush — Force a write of all buffered data
  • bzopen — Opens a bzip2 compressed file
  • bzread — Binary safe bzip2 file read
  • bzwrite — Binary safe bzip2 file write
范例
bzclose
Bzip2


Close a bzip2 file

Bzip2 函数
bzcompress
Bzip2 函数
PHP 手册

bzclose

(PHP 4 >= 4.0.4, PHP 5)

bzclose — Close a bzip2 file

说明

int bzclose ( resource $bz )

Closes the given bzip2 file pointer.

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • bzopen() - Opens a bzip2 compressed file

Bzip2 函数
bzcompress
Bzip2 函数


Compress a string into bzip2 encoded data

bzclose
bzdecompress
Bzip2 函数
PHP 手册

bzcompress

(PHP 4 >= 4.0.4, PHP 5)

bzcompress — Compress a string into bzip2 encoded data

说明

mixed bzcompress ( string $source [, int $blocksize=4 [, int $workfactor=0 ]] )

bzcompress() compresses the given string and returns it as bzip2 encoded data.

参数

source

The string to compress.

blocksize

Specifies the blocksize used during compression and should be a number from 1 to 9 with 9 giving the best compression, but using more resources to do so. blocksize defaults to 4.

workfactor

Controls how the compression phase behaves when presented with worst case, highly repetitive, input data. The value can be between 0 and 250 with 0 being a special case and the default value.

Regardless of the workfactor , the generated output is the same.

返回值

The compressed string or number of error in case of error.

范例

Example #1 Compressing data

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

参见

  • bzdecompress() - Decompresses bzip2 encoded data

bzclose
bzdecompress
Bzip2 函数


Decompresses bzip2 encoded data

bzcompress
bzerrno
Bzip2 函数
PHP 手册

bzdecompress

(PHP 4 >= 4.0.4, PHP 5)

bzdecompress — Decompresses bzip2 encoded data

说明

mixed bzdecompress ( string $source [, int $small=0 ] )

bzdecompress() decompresses the given string containing bzip2 encoded data.

参数

source

The string to decompress.

small

If TRUE, an alternative decompression algorithm will be used which uses less memory (the maximum memory requirement drops to around 2300K) but works at roughly half the speed.

See the » bzip2 documentation for more information about this feature.

返回值

The decompressed string or number of error in case of error.

范例

Example #1 Decompressing a String

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

echo "Compressed String: ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "Decompressed String: ";
echo $str;
echo "\n<br />\n";
?>

参见

  • bzcompress() - Compress a string into bzip2 encoded data

bzcompress
bzerrno
Bzip2 函数


Returns a bzip2 error number

bzdecompress
bzerror
Bzip2 函数
PHP 手册

bzerrno

(PHP 4 >= 4.0.4, PHP 5)

bzerrno — Returns a bzip2 error number

说明

int bzerrno ( resource $bz )

Returns the error number of any bzip2 error returned by the given file pointer.

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

返回值

Returns the error number as an integer.

参见

  • bzerror() - Returns the bzip2 error number and error string in an array
  • bzerrstr() - Returns a bzip2 error string

bzdecompress
bzerror
Bzip2 函数


Returns the bzip2 error number and error string in an array

bzerrno
bzerrstr
Bzip2 函数
PHP 手册

bzerror

(PHP 4 >= 4.0.4, PHP 5)

bzerror — Returns the bzip2 error number and error string in an array

说明

array bzerror ( resource $bz )

Returns the error number and error string of any bzip2 error returned by the given file pointer.

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

返回值

Returns an associative array, with the error code in the errno entry, and the error message in the errstr entry.

范例

Example #1 bzerror() example

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

参见

  • bzerrno() - Returns a bzip2 error number
  • bzerrstr() - Returns a bzip2 error string

bzerrno
bzerrstr
Bzip2 函数


Returns a bzip2 error string

bzerror
bzflush
Bzip2 函数
PHP 手册

bzerrstr

(PHP 4 >= 4.0.4, PHP 5)

bzerrstr — Returns a bzip2 error string

说明

string bzerrstr ( resource $bz )

Gets the error string of any bzip2 error returned by the given file pointer.

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

返回值

Returns a string containing the error message.

参见

  • bzerrno() - Returns a bzip2 error number
  • bzerror() - Returns the bzip2 error number and error string in an array

bzerror
bzflush
Bzip2 函数


Force a write of all buffered data

bzerrstr
bzopen
Bzip2 函数
PHP 手册

bzflush

(PHP 4 >= 4.0.4, PHP 5)

bzflush — Force a write of all buffered data

说明

int bzflush ( resource $bz )

Forces a write of all buffered bzip2 data for the file pointer bz .

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • bzread() - Binary safe bzip2 file read
  • bzwrite() - Binary safe bzip2 file write

bzerrstr
bzopen
Bzip2 函数


Opens a bzip2 compressed file

bzflush
bzread
Bzip2 函数
PHP 手册

bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopen — Opens a bzip2 compressed file

说明

resource bzopen ( string $filename , string $mode )

bzopen() opens a bzip2 (.bz2) file for reading or writing.

参数

filename

The name of the file to open.

mode

Similar to the fopen() function ('r' for read, 'w' for write, etc.).

返回值

If the open fails, bzopen() returns FALSE, otherwise it returns a pointer to the newly opened file.

范例

Example #1 bzopen() example

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Couldn't open $file for reading");

bzclose($bz);

?>

参见

  • bzclose() - Close a bzip2 file

bzflush
bzread
Bzip2 函数


Binary safe bzip2 file read

bzopen
bzwrite
Bzip2 函数
PHP 手册

bzread

(PHP 4 >= 4.0.4, PHP 5)

bzread — Binary safe bzip2 file read

说明

string bzread ( resource $bz [, int $length=1024 ] )

bzread() reads from the given bzip2 file pointer.

Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first.

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

length

If not specified, bzread() will read 1024 (uncompressed) bytes at a time.

返回值

Returns the uncompressed data, or FALSE on error.

范例

Example #1 bzread() example

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Couldn't open $file");

$decompressed_file = '';
while (!feof($bz)) {
  $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "The contents of $file are: <br />\n";
echo $decompressed_file;

?>

参见

  • bzwrite() - Binary safe bzip2 file write
  • feof() - 测试文件指针是否到了文件结束的位置
  • bzopen() - Opens a bzip2 compressed file

bzopen
bzwrite
Bzip2 函数


Binary safe bzip2 file write

bzread
LZF
Bzip2 函数
PHP 手册

bzwrite

(PHP 4 >= 4.0.4, PHP 5)

bzwrite — Binary safe bzip2 file write

说明

int bzwrite ( resource $bz , string $data [, int $length ] )

bzwrite() writes a string into the given bzip2 file stream.

参数

bz

The file pointer. It must be valid and must point to a file successfully opened by bzopen().

data

The written data.

length

If supplied, writing will stop after length (uncompressed) bytes have been written or the end of data is reached, whichever comes first.

返回值

Returns the number of bytes written, or FALSE on error.

范例

Example #1 bzwrite() example

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

参见

  • bzread() - Binary safe bzip2 file read
  • bzopen() - Opens a bzip2 compressed file

bzread
LZF
Bzip2 函数


LZF

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • LZF 函数
    • lzf_compress — LZF compression
    • lzf_decompress — LZF decompression
    • lzf_optimized_for — Determines what LZF extension was optimized for
bzwrite
简介
压缩与归档扩展


简介

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation. This extension is using » liblzf library by Marc Lehmann for its operations.

LZF
安装/配置
LZF


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
LZF


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/lzf.

In order to use these functions you must compile PHP with lzf support by using the --with-lzf[=DIR] configure option. You may also pass --enable-lzf-better-compression to optimize LZF for space rather then speed.

Windows users will enable php_lzf.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
LZF 函数
LZF


LZF 函数

Table of Contents

  • lzf_compress — LZF compression
  • lzf_decompress — LZF decompression
  • lzf_optimized_for — Determines what LZF extension was optimized for
预定义常量
lzf_compress
LZF


LZF compression

LZF 函数
lzf_decompress
LZF 函数
PHP 手册

lzf_compress

(PECL lzf >= 0.1.0)

lzf_compress — LZF compression

说明

string lzf_compress ( string $data )

lzf_compress() compresses the given data string using LZF encoding.

参数

data

The string to compress.

返回值

Returns the compressed data or FALSE if an error occurred.

参见

  • lzf_decompress() - LZF decompression

LZF 函数
lzf_decompress
LZF 函数


LZF decompression

lzf_compress
lzf_optimized_for
LZF 函数
PHP 手册

lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompress — LZF decompression

说明

string lzf_decompress ( string $data )

lzf_compress() decompresses the given data string containing lzf encoded data.

参数

data

The compressed string.

返回值

Returns the decompressed data or FALSE if an error occurred.

参见

  • lzf_compress() - LZF compression

lzf_compress
lzf_optimized_for
LZF 函数


Determines what LZF extension was optimized for

lzf_decompress
Phar
LZF 函数
PHP 手册

lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_for — Determines what LZF extension was optimized for

说明

int lzf_optimized_for ( void )

Determines what was LZF extension optimized for during compilation.

返回值

Returns 1 if LZF was optimized for speed, 0 for compression.

lzf_decompress
Phar
LZF 函数


Phar

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Using Phar Archives
    • Using Phar Archives: Introduction
    • Using Phar Archives: the phar stream wrapper
    • Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives
    • Creating Phar Archives: Introduction
  • What makes a phar a phar and not a tar or a zip?
    • Ingredients of all Phar archives, independent of file format
    • Phar file stub
    • Head-to-head comparison of Phar, Tar and Zip
    • Tar-based phars
    • Zip-based phars
    • Phar File Format
    • Global Phar bitmapped flags
    • Phar manifest file entry definition
    • Phar Signature format
  • Phar — The Phar class
    • Phar::addEmptyDir — Add an empty directory to the phar archive
    • Phar::addFile — Add a file from the filesystem to the phar archive
    • Phar::addFromString — Add a file from the filesystem to the phar archive
    • Phar::apiVersion — Returns the api version
    • Phar::buildFromDirectory — Construct a phar archive from the files within a directory.
    • Phar::buildFromIterator — Construct a phar archive from an iterator.
    • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite — Returns whether phar extension supports writing and creating phars
    • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressAllFilesBZIP2 — Compresses all files in the current Phar archive using Bzip2 compression
    • Phar::compressAllFilesGZ — Compresses all files in the current Phar archive using Gzip compression
    • Phar::compressFiles — Compresses all files in the current Phar archive
    • Phar::__construct — Construct a Phar archive object
    • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
    • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
    • Phar::count — Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub — Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::decompress — Decompresses the entire Phar archive
    • Phar::decompressFiles — Decompresses all files in the current Phar archive
    • Phar::delMetadata — Deletes the global metadata of the phar
    • Phar::delete — Delete a file within a phar archive
    • Phar::extractTo — Extract the contents of a phar archive to a directory
    • Phar::getMetaData — Returns phar archive meta-data
    • Phar::getModified — Return whether phar was modified
    • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive
    • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression — Return array of supported compression algorithms
    • Phar::getSupportedSignatures — Return array of supported signature types
    • Phar::getVersion — Return version info of Phar archive
    • Phar::hasMetaData — Returns whether phar has global meta-data
    • Phar::interceptFileFuncs — instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
    • Phar::isWritable — Returns true if the phar archive can be modified
    • Phar::loadPhar — Loads any phar archive with an alias
    • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount — Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists — determines whether a file exists in the phar
    • Phar::offsetGet — get a PharFileInfo object for a specific file
    • Phar::offsetSet — set the contents of an internal file to those of an external file
    • Phar::offsetUnset — remove a file from a phar
    • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias — Set the alias for the Phar archive
    • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata — Sets phar archive meta-data
    • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.
    • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::uncompressAllFiles — Uncompresses all files in the current Phar archive
    • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
    • Phar::webPhar — mapPhar for web-based phars. front controller for web applications
  • PharData — The PharData class
    • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
    • PharData::addFile — Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString — Add a file from the filesystem to the tar/zip archive
    • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory.
    • PharData::buildFromIterator — Construct a tar or zip archive from an iterator.
    • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles — Compresses all files in the current tar/zip archive
    • PharData::__construct — Construct a non-executable tar or zip archive object
    • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress — Decompresses the entire Phar archive
    • PharData::decompressFiles — Decompresses all files in the current zip archive
    • PharData::delMetadata — Deletes the global metadata of a zip archive
    • PharData::delete — Delete a file within a tar/zip archive
    • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable — Returns true if the tar/zip archive can be modified
    • PharData::offsetSet — set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset — remove a file from a tar/zip archive
    • PharData::setAlias — dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub — dummy function (Phar::setDefaultStub is not valid for PharData)
    • Phar::setMetadata — Sets phar archive meta-data
    • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it. The
    • PharData::setStub — dummy function (Phar::setStub is not valid for PharData)
  • PharFileInfo — The PharFileInfo class
    • PharFileInfo::chmod — Sets file-specific permission bits
    • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::__construct — Construct a Phar entry object
    • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata — Deletes the metadata of the entry
    • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getMetaData — Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags — Returns the Phar file entry flags
    • PharFileInfo::hasMetadata — Returns the metadata of the entry
    • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
    • PharFileInfo::isCompressed — Returns whether the entry is compressed
    • PharFileInfo::isCompressedBZIP2 — Returns whether the entry is compressed using bzip2
    • PharFileInfo::isCompressedGZ — Returns whether the entry is compressed using gz
    • PharFileInfo::setCompressedBZIP2 — Compresses the current Phar entry within the phar using Bzip2 compression
    • PharFileInfo::setCompressedGZ — Compresses the current Phar entry within the phar using gz compression
    • PharFileInfo::setMetaData — Sets file-specific meta-data saved with a file
    • PharFileInfo::setUncompressed — Uncompresses the current Phar entry within the phar, if it is compressed
  • PharException — The PharException class
    • PharException — The PharException class provides a phar-specific exception class for try/catch blocks.
lzf_optimized_for
简介
压缩与归档扩展


简介

The phar extension provides a way to put entire PHP applications into a single file called a "phar" (PHP Archive) for easy distribution and installation. In addition to providing this service, the phar extension also provides a file-format abstraction method for creating and manipulating tar and zip files through the PharData class, much as PDO provides a unified interface for accessing different databases. Unlike PDO, which cannot convert between different databases, Phar also can convert between tar, zip and phar file formats with a single line of code. see Phar::convertToExecutable() for one example.

What is phar? Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.

Phar implements this functionality through a Stream Wrapper. Normally, to use an external file within a PHP script, you would use include()

Example #1 Using an external file

<?php
 include '/path/to/external/file.php';
 ?>

PHP can be thought of as actually translating /path/to/external/file.php into a stream wrapper as file:///path/to/external/file.php, and under the hood it does in fact use the plain file stream wrapper stream functions to access all local files.

To use a file named file.php contained with a phar archive /path/to/myphar.phar, the syntax is very similar to the file:// syntax above.

Example #2 Using a file within a phar archive

<?php
 include 'phar:///path/to/myphar.phar/file.php';
 ?>

In fact, one can treat a phar archive exactly as if it were an external disk, using any of fopen()-related functions, opendir() and mkdir()-related functions to read, change, or create new files and directories within the phar archive. This allows complete PHP applications to be distributed in a single file and run directly from that file.

The most common usage for a phar archive is to distribute a complete application in a single file. For instance, the PEAR Installer that is bundled with PHP versions is distributed as a phar archive. To use a phar archive distributed in this way, the archive can be executed on the command-line or via a web server.

Phar archives can be distributed as tar archives, zip archives, or as the custom phar file format designed specifically for the phar extension. Each file format has advantages and disadvantages. The tar and zip file formats can be read or extracted by any third-party tool that can read the format, but require the phar extension in order to run with PHP. The phar file format is customized and unique to the phar extension, and can only be created by the phar extension or the PEAR package » PHP_Archive, but has the advantage that applications created in this format will run even if the phar extension is not enabled.

In other words, even with the phar extension disabled, one can execute or include a phar-based archive. Accessing individual files within a phar archive is only possible with the phar extension unless the phar archive was created by PHP_Archive.

The phar extension is also capable of converting a phar archive from tar to zip or to phar file format in a single command:

Example #3 Converting a phar archive from phar to tar file format

<?php
 $phar = new Phar('myphar.phar');
 $pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // makes myphar.phar.tar.gz
 ?>

Phar can compress individual files or an entire archive using gzip compression or bzip2 compression, and can verify archive integrity automatically through the use of md5(), sha1(), sha256(), or sha512() signatures.

Lastly, the Phar extension is security-conscious, and disables write access to executable phar archives by default, and requires system-level disabling of the phar.readonly php.ini setting in order to create or modify phar archives. Normal tar and zip archives without an executable stub can always be created or modified using the PharData class.

If you are creating applications for distribution, you will want to read How to create Phar Archives. If you want more information on the differences between the three file formats that phar supports, you should read Phar, Tar and Zip.

If you are using phar applications, there are helpful tips in How to use Phar Archives

The word phar is a contraction of PHP and Archive and is based loosely on the jar (Java Archive) familiar to Java developers.

The implementation for Phar archives is based on the PEAR package » PHP_Archive, and the implementation details are similar, although the Phar extension is much more powerful. In addition, the Phar extension allows most PHP applications to be run unmodified while PHP_Archive-based phar archives often require extensive modification in order to work.

Phar
安装/配置
Phar


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Phar


需求

Phar requires PHP 5.2.0 or newer. Additional features require the SPL extension in order to take advantage of iteration and array access to a Phar's file contents. The phar stream does not require any additional extensions to function.

You may optionally wish to enable the zlib and bzip2 extensions to take advantage of compressed phar support. In addition, to take advantage of OpenSSL signing, the OpenSSL extension must be enabled.

Note that a bug in the zlib.deflate stream filter fixed in PHP version 5.2.6 and newer may cause truncation of gzip and bzip2-compressed phar archives.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/phar.

To install on Windows, follow the instructions above, modify your php.ini and restart your web server.

extension_dir=c:/php5/exts/
extension=php_phar.dll
;; optional extensions
extension=php_bz2.dll
需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Filesystem and Streams Configuration Options
Name | Default | Changeable | Changelog
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.extract_list | "" | PHP_INI_ALL | Available from phar 1.1.0 to 1.2.3, removed in 2.0.0.
phar.cache_list | "" | PHP_INI_SYSTEM | Available from phar 2.0.0.

以下是配置选项的简要解释。

phar.readonly boolean

This option disables creation or modification of Phar archives using the phar stream or Phar object's write support. This setting should always be enabled on production machines, as the phar extension's convenient write support could allow straightforward creation of a php-based virus when coupled with other common security vulnerabilities.

Note: This setting can only be unset in php.ini due to security reasons. If phar.readonly is disabled in php.ini, the user may enable phar.readonly in a script or disable it later. If phar.readonly is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

phar.require_hash boolean

This option will force all opened Phar archives to contain some kind of signature (currently MD5, SHA1, SHA256 and SHA512 are supported), and will refuse to process any Phar archive that does not contain a signature.

Note: This setting can only be unset in php.ini due to security reasons. If phar.require_hash is disabled in php.ini, the user may enable phar.require_hash in a script or disable it later. If phar.require_hash is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

phar.extract_list string

This INI setting has been removed as of phar 2.0.0

Allows mappings from a full path to a phar archive or its alias to the location of its extracted files. The format of the parameter is name=archive,name2=archive2. This allows extraction of phar files to disk, and allows phar to act as a kind of mapper to extracted disk files. This is often done for performance reasons, or to assist with debugging a phar.

Example #1 phar.extract_list usage example

in php.ini:
phar.extract_list = archive=/full/path/to/archive/,arch2=/full/path/to/arch2
<?php
include "phar://archive/content.php";
include "phar://arch2/foo.php";
?>

phar.cache_list string

This INI setting was added in phar 2.0.0

Allows mapping phar archives to be pre-parsed at web server startup, providing a performance improvement that brings running files out of a phar archive very close to the speed of running those files from a traditional disk-based installation.

Example #2 phar.cache_list usage example

in php.ini (windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
in php.ini (unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar

安装
资源类型
安装/配置


资源类型

The Phar extension provides the phar stream, which allows accessing files contained within a phar transparently. See also the description of the Phar file format.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Phar compression constants
Constant | Value | Description
Phar::NONE (integer) | 0x00000000 | no compression
Phar::COMPRESSED (integer) | 0x0000F000 | bitmask that can be used with file flags to determine if any compression is present
Phar::GZ (integer) | 0x00001000 | zlib (gzip) compression
Phar::BZ2 (integer) | 0x00002000 | bzip2 compression
Phar file format constants
Constant | Value | Description
Phar::SAME (integer) | 0 | retain the same file format
Phar::PHAR (integer) | 1 | phar file format
Phar::TAR (integer) | 2 | tar file format
Phar::ZIP (integer) | 3 | zip file format
Phar signature constants
Constant | Value | Description
Phar::MD5 (integer) | 0x0001 | signature with md5 hash algorithm
Phar::SHA1 (integer) | 0x0002 | signature with sha1 hash algorithm
Phar::SHA256 (integer) | 0x0003 | signature with sha256 hash algorithm (requires hash extension)
Phar::SHA512 (integer) | 0x0004 | signature with sha512 hash algorithm (requires hash extension)
Phar::OPENSSL (integer) | 0x0010 | signature with OpenSSL public/private key pair. This is a true, asymmetric key signature.
Phar webPhar mime override constants
Constant | Value | Description
Phar::PHP (integer) | 1 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP file
Phar::PHPS (integer) | 2 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP source file through highlight_file()
资源类型
Using Phar Archives
Phar


Using Phar Archives

Table of Contents

  • Using Phar Archives: Introduction
  • Using Phar Archives: the phar stream wrapper
  • Using Phar Archives: the Phar and PharData class
预定义常量
Using Phar Archives: Introduction
Phar


Using Phar Archives: Introduction

Phar archives are similar in concept to Java JAR archives, but are tailored to the needs and to the flexibility of PHP applications. A Phar archive is used to distribute a complete PHP application or library in a single file. Unlike Java's implementation of JAR archives, no external tool is required to process or run a PHP Phar archive. A Phar archive application is used exactly like any other PHP application:

php coolapplication.phar

Using a Phar archive library is identical to using any other PHP library:

<?php
include 'coollibrary.phar';
?>

The phar stream wrapper provides the core of the phar extension, and is explained in detail here. The phar stream wrapper allows accessing the files within a phar archive using PHP's standard file functions fopen(), opendir(), and others that work on regular files. The phar stream wrapper supports all read/write operations on both files and directories.

<?php
include 'phar://coollibrary.phar/internal/file.php';
header('Content-type: image/jpeg');
// phars can be accessed by full path or by alias
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>

The Phar class implements advanced functionality for accessing files and for creating phar archives. The Phar class is explained in detail here.

<?php
try {
    // open an existing phar
    $p = new Phar('coollibrary.phar', 0);
    // Phar extends SPL's DirectoryIterator class
    foreach (new RecursiveIteratorIterator($p) as $file) {
        // $file is a PharFileInfo class, and inherits from SplFileInfo
        echo $file->getFileName() . "\n";
        echo file_get_contents($file->getPathName()) . "\n"; // display contents;
    }
    if (isset($p['internal/file.php'])) {
        var_dump($p['internal/file.php']->getMetaData());
    }

    // create a new phar - phar.readonly must be 0 in php.ini
    // phar.readonly is enabled by default for security reasons.
    // On production servers, Phars need never be created,
    // only executed.
    if (Phar::canWrite()) {
        $p = new Phar('newphar.tar.phar', 0, 'newphar.tar.phar');
        // make this a tar-based phar archive, compressed with gzip compression (.tar.gz)
        $p = $p->convertToExecutable(Phar::TAR, Phar::GZ);

        // create transaction - nothing is written to newphar.phar
        // until stopBuffering() is called, although temporary storage is needed
        $p->startBuffering();
        // add all files in /path/to/project, saving in the phar with the prefix "project"
        $p->buildFromIterator(new RecursiveIteratorIterator(new DirectoryIterator('/path/to/project')), '/path/to/');

        // add a new file via the array access API
        $p['file1.txt'] = 'Information';
        $fp = fopen('hugefile.dat', 'rb');
        // copy all data from the stream
        $p['data/hugefile.dat'] = $fp;

        if (Phar::canCompress(Phar::GZ)) {
            $p['data/hugefile.dat']->compress(Phar::GZ);
        }

        $p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
        // any value can be saved as file-specific meta-data
        $p['images/wow.jpg']->setMetaData(array('mime-type' => 'image/jpeg'));
        $p['index.php'] = file_get_contents('index.php');
        $p->setMetaData(array('bootstrap' => 'index.php'));

        // save the phar archive to disk
        $p->stopBuffering();
    }
} catch (Exception $e) {
    echo 'Could not open Phar: ', $e;
}
?>

In addition, verification of phar file contents can be done using any of the supported symmetric hash algorithms (MD5, SHA1, SHA256 and SHA512 if ext/hash is enabled) and using asymmetric public/private key signing using OpenSSL (new in Phar 2.0.0). To take advantage of OpenSSL signing, you need to generate a public/private key pair, and use the private key to set the signature using Phar::setSignatureAlgorithm(). In addition, the public key as extracted using this code:

$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);

must be saved adjacent to the phar archive it verifies. If the phar archive is saved as /path/to/my.phar, the public key must be saved as /path/to/my.phar.pubkey, or phar will be unable to verify the OpenSSL signature.

As of version 2.0.0, The Phar class also provides 3 static methods, Phar::webPhar(), Phar::mungServer() and Phar::interceptFileFuncs() that are crucial to packaging up PHP applications designed for usage on regular filesystems and for web-based applications. Phar::webPhar() implements a front controller that routes HTTP calls to the correct location within the phar archive. Phar::mungServer() is used to modify the values of the $_SERVER array to trick applications that process these values. Phar::interceptFileFuncs() instructs Phar to intercept calls to fopen(), file_get_contents(), opendir(), and all of the stat-based functions (file_exists(), is_readable() and so on) and route all relative paths to locations within the phar archive.

As an example, packaging up a release of the popular phpMyAdmin application for use as a phar archive requires only this simple script and then phpMyAdmin.phar.tar.php can be accessed as a regular file from your web server after modifying the user/password:

<?php
@unlink('phpMyAdmin.phar.tar.php');
copy('phpMyAdmin-2.11.3-english.tar.gz', 'phpMyAdmin.phar.tar.php');
$a = new Phar('phpMyAdmin.phar.tar.php');
$a->startBuffering();
$a["phpMyAdmin-2.11.3-english/config.inc.php"] = '<?php
/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg[\'Servers\'][$i][\'host\'] = \'localhost\';
$cfg[\'Servers\'][$i][\'extension\'] = \'mysqli\';
$cfg[\'Servers\'][$i][\'connect_type\'] = \'tcp\';
$cfg[\'Servers\'][$i][\'compress\'] = false;
$cfg[\'Servers\'][$i][\'auth_type\'] = \'config\';
$cfg[\'Servers\'][$i][\'user\'] = \'root\';
$cfg[\'Servers\'][$i][\'password\'] = \'\';

/* End of servers configuration */
if (strpos(PHP_OS, \'WIN\') !== false) {
    $cfg[\'UploadDir\'] = getcwd();
} else {
    $cfg[\'UploadDir\'] = \'/tmp/pharphpmyadmin\';
    @mkdir(\'/tmp/pharphpmyadmin\');
    @chmod(\'/tmp/pharphpmyadmin\', 0777);
}';
$a->setStub('<?php
Phar::interceptFileFuncs();
Phar::webPhar("phpMyAdmin.phar", "phpMyAdmin-2.11.3-english/index.php");
echo "phpMyAdmin is intended to be executed from a web browser\n";
exit -1;
__HALT_COMPILER();
');
$a->stopBuffering();
?>

Using Phar Archives
Using Phar Archives: the phar stream wrapper
Using Phar Archives


Using Phar Archives: the phar stream wrapper

The Phar stream wrapper fully supports fopen() for read and write (not append), unlink(), stat(), fstat(), fseek(), rename() and directory stream operations opendir() and as of version 2.0.0, rmdir() and mkdir().

Individual file compression and per-file metadata can also be manipulated in a Phar archive using stream contexts:

<?php
$context = stream_context_create(array('phar' =>
                                    array('compress' => Phar::GZ)),
                                    array('metadata' => array('user' => 'cellog')));
file_put_contents('phar://my.phar/somefile.php', 0, $context);
?>

The phar stream wrapper does not operate on remote files, and cannot operate on remote files, and so is allowed even when the allow_url_fopen and allow_url_include INI options are disabled.

Although it is possible to create phar archives from scratch just using stream operations, it is best to use the functionality built into the Phar class. The stream wrapper is best used for read-only operations.

Using Phar Archives: Introduction
Using Phar Archives: the Phar and PharData class
Using Phar Archives


Using Phar Archives: the Phar and PharData class

The Phar class supports reading and manipulation of Phar archives, as well as iteration through inherited functionality of the » RecursiveDirectoryIterator class. With support for the ArrayAccess interface, files inside a Phar archive can be accessed as if they were part of an associative array.

The PharData class extends the Phar, and allows creating and modifying non-executable (data) tar and zip archives even if phar.readonly=1 in php.ini. As such, PharData::setAlias() and PharData::setStub() are both disabled as the concept of alias and stub are unique to executable phar archives.

It is important to note that when creating a Phar archive, the full path should be passed to the Phar object constructor. Relative paths will fail to initialize.

Assuming that $p is a Phar object initialized as follows:

<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>

An empty Phar archive will be created at /path/to/myphar.phar, or if /path/to/myphar.phar already exists, it will be opened again. The literal myphar.phar demonstrates the concept of an alias that can be used to reference /path/to/myphar.phar in URLs as in:

<?php
// these two calls to file_get_contents() are equivalent if
// /path/to/myphar.phar has an explicit alias of "myphar.phar"
// in its manifest, or if the phar was initialized with the
// previous example's Phar object setup
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

With the newly created $p Phar object, the following is possible:

  • $a = $p['file.php'] creates a PharFileInfo class that refers to the contents of phar://myphar.phar/file.php
  • $p['file.php'] = $v creates a new file (phar://myphar.phar/file.php), or overwrites an existing file within myphar.phar. $v can be either a string or an open file pointer, in which case the entire contents of the file will be used to create the new file. Note that $p->addFromString('file.php', $v) is functionally equivalent to the above. Also possible is to add the contents of a file with $p->addFile('/path/to/file.php', 'file.php'). Lastly, an empty directory can be created with $p->addEmptyDir('empty').
  • isset($p['file.php']) can be used to determine whether phar://myphar.phar/file.php exists within myphar.phar.
  • unset($p['file.php']) erases phar://myphar.phar/file.php from myphar.phar.

In addition, the Phar object is the only way to access Phar-specific metadata, through Phar::getMetaData(), and the only way to set or retrieve a Phar archive's PHP loader stub through Phar::getStub() and Phar::setStub(). Additionally, compression for the entire Phar archive at once can only be manipulated using the Phar class.

The full list of Phar object functionality is documented below.

The PharFileInfo class extends the » SplFileInfo class, and adds several methods for manipulating Phar-specific details of a file contained within a Phar, such as manipulating compression and metadata.

Using Phar Archives: the phar stream wrapper
Creating Phar Archives
Using Phar Archives


Creating Phar Archives

Table of Contents

  • Creating Phar Archives: Introduction
Using Phar Archives: the Phar and PharData class
Creating Phar Archives: Introduction
Phar


Creating Phar Archives: Introduction

To be written fully in the near future. Before reading this, be sure to read How to use Phar Archives.

A great place to start is by reading about Phar::buildFromIterator(), and the specifics of the file format choices available for archives. A healthy understanding of what a stub is and does is crucial to phar archive creation, and so Phar::setStub() and Phar::createDefaultStub() are good places to start as well. If you are distributing a web-based application, it is crucial to know about Phar::webPhar() and related method Phar::mungServer(). Any application that accesses its own files should also consider using Phar::interceptFileFuncs().

Creating Phar Archives
What makes a phar a phar and not a tar or a zip?
Creating Phar Archives


What makes a phar a phar and not a tar or a zip?

Table of Contents

  • Ingredients of all Phar archives, independent of file format
  • Phar file stub
  • Head-to-head comparison of Phar, Tar and Zip
  • Tar-based phars
  • Zip-based phars
  • Phar File Format
  • Global Phar bitmapped flags
  • Phar manifest file entry definition
  • Phar Signature format
Creating Phar Archives: Introduction
Ingredients of all Phar archives, independent of file format
Phar


Ingredients of all Phar archives, independent of file format

All Phar archives contain three to four sections:

  1. a stub

  2. a manifest describing the contents

  3. the file contents

  4. [optional] a signature for verifying Phar integrity (phar file format only)

What makes a phar a phar and not a tar or a zip?
Phar file stub
What makes a phar a phar and not a tar or a zip?


Phar file stub

A Phar's stub is a simple PHP file. The smallest possible stub follows:

<?php __HALT_COMPILER();

A stub must contain as a minimum, the __HALT_COMPILER(); token at its conclusion. Typically, a stub will contain loader functionality like so:

<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();

There are no restrictions on the contents of a Phar stub, except for the requirement that it conclude with __HALT_COMPILER();. The closing PHP tag

?>
may be included or omitted, but there can be no more than 1 space between the ; and the close tag
?>
 or the phar extension will be unable to process the Phar archive's manifest.

In a tar or zip-based phar archive, the stub is stored in the .phar/stub.php file. The default stub for phar-based Phar archives contains approximately 7k of code to extract the contents of the phar and execute them. See Phar::createDefaultStub() for more detail.

The phar alias is stored in a tar or zip-based phar archive in the .phar/alias.txt file as plain text.

Ingredients of all Phar archives, independent of file format
Head-to-head comparison of Phar, Tar and Zip
What makes a phar a phar and not a tar or a zip?


Head-to-head comparison of Phar, Tar and Zip

What are the good and the bad things about the three supported file formats in the phar extension? This table attempts to address that question.

Feature matrix: Phar vs. Tar vs. Zip
Feature | Phar | Tar | Zip
Standard File Format | No | Yes | Yes
Can be executed without the Phar Extension [1] | Yes | No | No
Per-file compression | Yes | No | Yes
Whole-archive compression | Yes | Yes | No
Whole-archive signature validation | Yes | Yes | No
Web-specific application support | Yes | Yes | Yes
Per-file Meta-data | Yes | Yes | Yes
Whole-Archive Meta-data | Yes | Yes | Yes
Archive creation/modification [2] | Yes | Yes | Yes
Full support for all stream wrapper functions | Yes | Yes | Yes
Can be created/modified even if phar.readonly=1 [3] | No | Yes | Yes

Tip

[1] PHP can only directly access the contents of a Phar archive without the Phar extension if it is using a stub that extracts the contents of the phar archive. The stub created by Phar::createDefaultStub() extracts the phar archive and runs its contents from a temporary directory if no phar extension is found.

Tip

[2] All write access requires phar.readonly to be disabled in php.ini or on the command-line directly.

Tip

[3] Only tar and zip archives without .phar in their filename and without an executable stub .phar/stub.php can be created if phar.readonly=1.

Phar file stub
Tar-based phars
What makes a phar a phar and not a tar or a zip?


Tar-based phars

Archives based on the tar file format follow the more modern USTAR file format. The design of the tar file header makes them more efficient to access than the zip file format, and almost as efficient as the phar file format. File names are limited to 255 bytes, including full path within the phar archive. There is no limit on the number of files within a tar-based phar archive. These archives can fully compressed in gzip or bzip2 format and still be executed by the Phar extension.

To compress an entire archive, use Phar::compress(). To decompress an entire archive, use Phar::decompress().

Head-to-head comparison of Phar, Tar and Zip
Zip-based phars
What makes a phar a phar and not a tar or a zip?


Zip-based phars

Archives based on the zip file format support several features built into the zip file format. Per-file and whole-archive metadata is stored in the zip file comment and zip archive comment as a serialized string. Pre-existing zip comments will be successfully read as a string. Per-file compression read/write is supported with zlib compression, and read access is supported with bzip2 compression. There is no limit on the number of files within a zip-based phar archive. Empty directories are stored in the zip archive as files with a trailing slash like my/directory/

Tar-based phars
Phar File Format
What makes a phar a phar and not a tar or a zip?


Phar File Format

The phar file format is literally laid out as stub/manifest/contents/signature, and stores the crucial information of what is included in the phar archive in its manifest.

The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order.

All unused flags are reserved for future use, and must not be used to store custom information. Use the per-file meta-data facility to store customized information about particular files.

The basic file format of a Phar archive manifest is as follows:

Global Phar manifest format
Size in bytes | Description
4 bytes | Length of manifest in bytes (1 MB limit)
4 bytes | Number of files in the Phar
2 bytes | API version of the Phar manifest (currently 1.0.0)
4 bytes | Global Phar bitmapped flags
4 bytes | Length of Phar alias
?? | Phar alias (length based on previous)
4 bytes | Length of Phar metadata (0 for none)
?? | Serialized Phar Meta-data, stored in serialize() format
at least 24 * number of entries bytes | entries for each file

Zip-based phars
Global Phar bitmapped flags
What makes a phar a phar and not a tar or a zip?


Global Phar bitmapped flags

Here are the bitmapped flags currently recognized by the Phar extension for the global Phar flat bitmap:

Bitmap values recognized
Value | Description
0x00010000 | If set, this Phar contains a verification signature
0x00001000 | If set, this Phar contains at least 1 file that is compressed with zlib compression
0x00002000 | If set, this Phar contains at least 1 file that is compressed with bzip compression

Phar File Format
Phar manifest file entry definition
What makes a phar a phar and not a tar or a zip?


Phar manifest file entry definition

Each file in the manifest contains the following information:

Phar Manifest file entry
Size in bytes | Description
4 bytes | Filename length in bytes
?? | Filename (length specified in previous)
4 bytes | Un-compressed file size in bytes
4 bytes | Unix timestamp of file
4 bytes | Compressed file size in bytes
4 bytes | CRC32 checksum of un-compressed file contents
4 bytes | Bit-mapped File-specific flags
4 bytes | Serialized File Meta-data length (0 for none)
?? | Serialized File Meta-data, stored in serialize() format

Note that as of API version 1.1.1, empty directories are stored as filenames with a trailing slash like my/directory/

The File-specific bitmap values recognized are:

Bitmap values recognized
Value | Description
0x000001FF | These bits are reserved for defining specific file permissions of a file. Permissions are used for fstat() and can be used to recreate desired permissions upon extraction.
0x00001000 | If set, this file is compressed with zlib compression
0x00002000 | If set, this file is compressed with bzip compression

Global Phar bitmapped flags
Phar Signature format
What makes a phar a phar and not a tar or a zip?


Phar Signature format

Phars containing a signature always have the signature appended to the end of the Phar archive after the loader, manifest, and file contents. The two signature formats supported at this time are MD5 and SHA1.

Signature format
Length in bytes | Description
16 or 20 bytes | The actual signature, 20 bytes for an SHA1 signature, 16 bytes for an MD5 signature, 32 bytes for an SHA256 signature, and 64 bytes for an SHA512 signature.
4 bytes | Signature flags. 0x0001 is used to define an MD5 signature, 0x0002 is used to define an SHA1 signature, 0x0004 is used to define an SHA256 signature, and 0x0008 is used to define an SHA512 signature. The SHA256 and SHA512 signature support was introduced with API version 1.1.0.
4 bytes | Magic GBMB used to define the presence of a signature.

Phar manifest file entry definition
Phar
What makes a phar a phar and not a tar or a zip?


The Phar class

简介

The Phar class provides a high-level interface to accessing and creating phar archives.

Class synopsis

Phar
Phar extends DirectoryIterator implements Countable , ArrayAccess {
/* Properties */
/* Methods */
void addEmptyDir ( string $dirname )
void addFile ( string $file [, string $localname ] )
void addFromString ( string $localname , string $contents )
string apiVersion ( void )
array buildFromDirectory ( string $base_dir [, string $regex ] )
array buildFromIterator ( Iterator $iter [, string $base_directory ] )
bool canCompress ([ int $type=0 ] )
bool canWrite ( void )
object compress ( int $compression [, string $extension ] )
bool compressAllFilesBZIP2 ( void )
bool compressAllFilesGZ ( void )
void compressFiles ( int $compression )
void __construct ( string $fname [, int $flags [, string $alias ]] )
PharData convertToData ([ int $format=9021976 [, int $compression=9021976 [, string $extension ]]] )
Phar convertToExecutable ([ int $format=9021976 [, int $compression=9021976 [, string $extension ]]] )
bool copy ( string $oldfile , string $newfile )
int count ( void )
string createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
object decompress ([ string $extension ] )
bool decompressFiles ( void )
bool delMetadata ( void )
bool delete ( string $entry )
bool extractTo ( string $pathto [, string|array $files [, bool $overwrite=false ]] )
mixed getMetaData ( void )
bool getModified ( void )
array getSignature ( void )
string getStub ( void )
array getSupportedCompression ( void )
array getSupportedSignatures ( void )
string getVersion ( void )
bool hasMetadata ( void )
void interceptFileFuncs ( void )
bool isBuffering ( void )
mixed isCompressed ( void )
bool isFileFormat ( int $format )
bool isValidPharFilename ( string $filename [, bool $executable=true ] )
bool isWritable ( void )
bool loadPhar ( string $filename [, string $alias ] )
bool mapPhar ([ string $alias [, int $dataoffset=0 ]] )
void mount ( string $pharpath , string $externalpath )
void mungServer ( array $munglist )
bool offsetExists ( string $offset )
int offsetGet ( string $offset )
void offsetSet ( string $offset , string $value )
bool offsetUnset ( string $offset )
string running ([ bool $retphar=true ] )
bool setAlias ( string $alias )
bool setDefaultStub ([ string $index [, string $webindex ]] )
void setMetadata ( mixed $metadata )
void setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
bool setStub ( string $stub )
void startBuffering ( void )
void stopBuffering ( void )
bool uncompressAllFiles ( void )
bool unlinkArchive ( string $archive )
void webPhar ([ string $alias [, string $index [, string $f404 [, array $mimetypes [, array $rewrites ]]]]] )
}

Table of Contents

  • Phar::addEmptyDir — Add an empty directory to the phar archive
  • Phar::addFile — Add a file from the filesystem to the phar archive
  • Phar::addFromString — Add a file from the filesystem to the phar archive
  • Phar::apiVersion — Returns the api version
  • Phar::buildFromDirectory — Construct a phar archive from the files within a directory.
  • Phar::buildFromIterator — Construct a phar archive from an iterator.
  • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::canWrite — Returns whether phar extension supports writing and creating phars
  • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::compressAllFilesBZIP2 — Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ — Compresses all files in the current Phar archive using Gzip compression
  • Phar::compressFiles — Compresses all files in the current Phar archive
  • Phar::__construct — Construct a Phar archive object
  • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
  • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
  • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
  • Phar::count — Returns the number of entries (files) in the Phar archive
  • Phar::createDefaultStub — Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::decompress — Decompresses the entire Phar archive
  • Phar::decompressFiles — Decompresses all files in the current Phar archive
  • Phar::delMetadata — Deletes the global metadata of the phar
  • Phar::delete — Delete a file within a phar archive
  • Phar::extractTo — Extract the contents of a phar archive to a directory
  • Phar::getMetaData — Returns phar archive meta-data
  • Phar::getModified — Return whether phar was modified
  • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive
  • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::getSupportedCompression — Return array of supported compression algorithms
  • Phar::getSupportedSignatures — Return array of supported signature types
  • Phar::getVersion — Return version info of Phar archive
  • Phar::hasMetaData — Returns whether phar has global meta-data
  • Phar::interceptFileFuncs — instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
  • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
  • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
  • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
  • Phar::isWritable — Returns true if the phar archive can be modified
  • Phar::loadPhar — Loads any phar archive with an alias
  • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
  • Phar::mount — Mount an external path or file to a virtual location within the phar archive
  • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::offsetExists — determines whether a file exists in the phar
  • Phar::offsetGet — get a PharFileInfo object for a specific file
  • Phar::offsetSet — set the contents of an internal file to those of an external file
  • Phar::offsetUnset — remove a file from a phar
  • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
  • Phar::setAlias — Set the alias for the Phar archive
  • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
  • Phar::setMetadata — Sets phar archive meta-data
  • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.
  • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::uncompressAllFiles — Uncompresses all files in the current Phar archive
  • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
  • Phar::webPhar — mapPhar for web-based phars. front controller for web applications
Phar Signature format
Phar::addEmptyDir
Phar


Add an empty directory to the phar archive

Phar
Phar::addFile
Phar
PHP 手册

Phar::addEmptyDir

(Unknown)

Phar::addEmptyDir — Add an empty directory to the phar archive

说明

void Phar::addEmptyDir ( string $dirname )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

参数

dirname

The name of the empty directory to create in the phar archive

返回值

no return value, exception is thrown on failure.

范例

Example #1 A Phar::addEmptyDir() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addEmptyDir('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // handle errors here
}
?>

参见

  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addFromString() - Add a file from the filesystem to the phar archive

Phar
Phar::addFile
Phar


Add a file from the filesystem to the phar archive

Phar::addEmptyDir
Phar::addFromString
Phar
PHP 手册

Phar::addFile

(Unknown)

Phar::addFile — Add a file from the filesystem to the phar archive

说明

void Phar::addFile ( string $file [, string $localname ] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

With this method, any file or URL can be added to the phar archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

参数

file

Full or relative path to a file on disk to be added to the phar archive.

localname

Path that the file will be stored in the archive.

返回值

no return value, exception is thrown on failure.

范例

Example #1 A Phar::addFile() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addFile('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // demonstrate URL usage
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // handle errors here
}
?>

参见

  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFromString() - Add a file from the filesystem to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive

Phar::addEmptyDir
Phar::addFromString
Phar


Add a file from the filesystem to the phar archive

Phar::addFile
Phar::apiVersion
Phar
PHP 手册

Phar::addFromString

(Unknown)

Phar::addFromString — Add a file from the filesystem to the phar archive

说明

void Phar::addFromString ( string $localname , string $contents )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

With this method, any string can be added to the phar archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

参数

localname

Path that the file will be stored in the archive.

contents

The file contents to store

返回值

no return value, exception is thrown on failure.

范例

Example #1 A Phar::addFromString() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addFromString('path/to/file.txt', 'my simple file');
    $b = $a['path/to/file.txt']->getContent();

    // to add contents from a stream handle for large files, use offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // handle errors here
}
?>

参见

  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive

Phar::addFile
Phar::apiVersion
Phar


Returns the api version

Phar::addFromString
Phar::buildFromDirectory
Phar
PHP 手册

Phar::apiVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::apiVersion — Returns the api version

说明

string Phar::apiVersion ( void )

Return the API version of the phar file format that will be used when creating phars. The Phar extension supports reading API version 1.0.0 or newer. API version 1.1.0 is required for SHA-256 and SHA-512 hash, and API version 1.1.1 is required to store empty directories.

参数

返回值

The API version string as in "1.0.0".

范例

Example #1 A Phar::apiVersion() example

<?php
echo Phar::apiVersion();
?>

上例将输出：

1.1.1

Phar::addFromString
Phar::buildFromDirectory
Phar


Construct a phar archive from the files within a directory.

Phar::apiVersion
Phar::buildFromIterator
Phar
PHP 手册

Phar::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Construct a phar archive from the files within a directory.

说明

array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Populate a phar archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use Phar::buildFromIterator().

参数

base_dir

The full or relative path to the directory that contains all files to add to the archive.

regex

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

返回值

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

错误／异常

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

范例

Example #1 A Phar::buildFromDirectory() example

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));

$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// add all files in the project, only include php files
$phar->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

参见

  • Phar::buildFromIterator() - Construct a phar archive from an iterator.

Phar::apiVersion
Phar::buildFromIterator
Phar


Construct a phar archive from an iterator.

Phar::buildFromDirectory
Phar::canCompress
Phar
PHP 手册

Phar::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromIterator — Construct a phar archive from an iterator.

说明

array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Populate a phar archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the phar to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

范例

Example #1 A Phar::buildFromIterator() with SplFileInfo

For most phar archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a phar archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.phar" phar archive:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

The file project.phar can then be used immediately. Phar::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the phar archive.

As an interesting note, Phar::buildFromIterator() can also be used to copy the contents of an existing phar archive, as the Phar object descends from DirectoryIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/path/to/anotherphar.phar')),
    'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

Example #2 A Phar::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

参数

iter

Any iterator that either associatively maps phar file to location or returns SplFileInfo objects

base_directory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the phar archive

返回值

Phar::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

错误／异常

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.

参见

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory.

Phar::buildFromDirectory
Phar::canCompress
Phar


Returns whether phar extension supports compression using either zlib or bzip2

Phar::buildFromIterator
Phar::canWrite
Phar
PHP 手册

Phar::canCompress

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2

说明

bool Phar::canCompress ([ int $type=0 ] )

This should be used to test whether compression is possible prior to loading a phar archive containing compressed files.

参数

type

Either Phar::GZ or Phar::BZ2 can be used to test whether compression is possible with a specific compression algorithm (zlib or bzip2).

返回值

TRUE if compression/decompression is available, FALSE if not.

范例

Example #1 A Phar::canCompress() example

<?php
if (Phar::canCompress()) {
    echo file_get_contents('phar://compressedphar.phar/internal/file.txt');
} else {
    echo 'no compression available';
}
?>

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file

Phar::buildFromIterator
Phar::canWrite
Phar


Returns whether phar extension supports writing and creating phars

Phar::canCompress
Phar::compress
Phar
PHP 手册

Phar::canWrite

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canWrite — Returns whether phar extension supports writing and creating phars

说明

bool Phar::canWrite ( void )

This static method determines whether write access has been disabled in the system php.ini via the phar.readonly ini variable.

参数

返回值

TRUE if write access is enabled, FALSE if it is disabled.

范例

Example #1 A Phar::canWrite() example

<?php
if (Phar::canWrite()) {
    file_put_contents('phar://myphar.phar/file.txt', 'hi there');
}
?>

参见

  • phar.readonly
  • Phar::isWritable() - Returns true if the phar archive can be modified

Phar::canCompress
Phar::compress
Phar


Compresses the entire Phar archive using Gzip or Bzip2 compression

Phar::canWrite
Phar::compressAllFilesBZIP2
Phar
PHP 手册

Phar::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression

说明

object Phar::compress ( int $compression [, string $extension ] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

For tar-based and phar-based phar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

A Phar object is returned.

参数

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .phar.gz or .phar.bz2 for compressing phar archives, and .phar.tar.gz or .phar.tar.bz2 for compressing tar archives. For decompressing, the default file extensions are .phar and .phar.tar.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

范例

Example #1 A Phar::compress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive

Phar::canWrite
Phar::compressAllFilesBZIP2
Phar


Compresses all files in the current Phar archive using Bzip2 compression

Phar::compress
Phar::compressAllFilesGZ
Phar
PHP 手册

Phar::compressAllFilesBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesBZIP2 — Compresses all files in the current Phar archive using Bzip2 compression

说明

bool Phar::compressAllFilesBZIP2 ( void )

Note: This
method has been removed from the phar extension as of version 2.0.0.  Alternative
implementations are available using Phar::compress(),
Phar::decompress(), Phar::compressFiles() and
Phar::decompressFiles().

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This method compresses all files in the Phar archive using bzip2 compression. The bzip2 extension must be enabled to take advantage of this feature. In addition, if any files are already compressed using gzip compression, the zlib extension must be enabled in order to decompress the files prior to re-compressing with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the bzip2 extension is not available, or if any files are compressed using gzip compression and the zlib extension is not enabled.

范例

Example #1 A Phar::compressAllFilesBZIP2() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesBZIP2();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

上例将输出：

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(true)
bool(false)
string(11) "myfile2.txt"
bool(true)
bool(true)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

Phar::compress
Phar::compressAllFilesGZ
Phar


Compresses all files in the current Phar archive using Gzip compression

Phar::compressAllFilesBZIP2
Phar::compressFiles
Phar
PHP 手册

Phar::compressAllFilesGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesGZ — Compresses all files in the current Phar archive using Gzip compression

说明

bool Phar::compressAllFilesGZ ( void )

Note: This
method has been removed from the phar extension as of version 2.0.0.  Alternative
implementations are available using Phar::compress(),
Phar::decompress(), Phar::compressFiles() and
Phar::decompressFiles().

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

For tar-based phar archives, this method compresses the entire archive using gzip compression. The resulting file can be processed with the gunzip command, or accessed directly and transparently with the Phar extension.

For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive using gzip compression. The zlib extension must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2 compression, the bzip2 extension must be enabled in order to decompress the files prior to re-compressing with gzip compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

范例

Example #1 A Phar::compressAllFilesGZ() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

上例将输出：

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

Phar::compressAllFilesBZIP2
Phar::compressFiles
Phar


Compresses all files in the current Phar archive

Phar::compressAllFilesGZ
Phar::__construct
Phar
PHP 手册

Phar::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compressFiles — Compresses all files in the current Phar archive

说明

void Phar::compressFiles ( int $compression )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

参数

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

范例

Example #1 A Phar::compressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

上例将输出：

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive

Phar::compressAllFilesGZ
Phar::__construct
Phar


Construct a Phar archive object

Phar::compressFiles
Phar::convertToData
Phar
PHP 手册

Phar::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::__construct — Construct a Phar archive object

说明

void Phar::__construct ( string $fname [, int $flags [, string $alias ]] )

参数

fname

Path to an existing Phar archive or to-be-created archive

flags

flags to pass to parent class RecursiveDirectoryIterator. See » SPL RecursiveDirectoryIterator docs

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

错误／异常

Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.

范例

Example #1 A Phar::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', CURRENT_AS_FILEINFO | KEY_AS_FILENAME,
                  'my.phar');
} catch (UnexpectedValueException $e) {
    die('Could not open my.phar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://my.phar/example.txt');
// and works as if we had typed
echo file_get_contents('phar:///path/to/my.phar/example.txt');
?>

Phar::compressFiles
Phar::convertToData
Phar


Convert a phar archive to a non-executable tar or zip file

Phar::__construct
Phar::convertToExecutable
Phar
PHP 手册

Phar::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToData — Convert a phar archive to a non-executable tar or zip file

说明

PharData Phar::convertToData ([ int $format=9021976 [, int $compression=9021976 [, string $extension ]]] )

This method is used to convert an executable phar archive to either a tar or zip file. To make the tar or zip non-executable, the phar stub and phar alias files are removed from the newly created archive.

If no changes are specified, this method throws a BadMethodCallException if the archive is in phar file format. For archives in tar or zip file format, this method converts the archive to a non-executable archive.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

参数

format

This should be one of Phar::TAR or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

返回值

The method returns a PharData object on success and throws an exception on failure.

错误／异常

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

范例

Example #1 A Phar::convertToData() example

Using Phar::convertToData():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // note that myphar.phar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.tar
    $tar = $tarphar->convertToData();
    // convert to non-executable zip format, creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>

参见

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file

Phar::__construct
Phar::convertToExecutable
Phar


Convert a phar archive to another executable phar archive file format

Phar::convertToData
Phar::copy
Phar
PHP 手册

Phar::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format

说明

Phar Phar::convertToExecutable ([ int $format=9021976 [, int $compression=9021976 [, string $extension ]]] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This method is used to convert a phar archive to another file format. For instance, it can be used to create a tar-based executable phar archive from a zip-based executable phar archive, or from an executable phar archive in the phar file format. In addition, it can be used to apply whole-archive compression to a tar or phar-based archive.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

参数

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

返回值

The method returns a Phar object on success and throws an exception on failure.

错误／异常

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

范例

Example #1 A Phar::convertToExecutable() example

Using Phar::convertToExecutable():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // convert it to the phar file format
    // note that myphar.phar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>

参见

  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file

Phar::convertToData
Phar::copy
Phar


Copy a file internal to the phar archive to another new file within the phar

Phar::convertToExecutable
Phar::count
Phar
PHP 手册

Phar::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::copy — Copy a file internal to the phar archive to another new file within the phar

说明

bool Phar::copy ( string $oldfile , string $newfile )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Copy a file internal to the phar archive to another new file within the phar. This is an object-oriented alternative to using copy() with the phar stream wrapper.

参数

oldfile

newfile

返回值

returns TRUE on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

错误／异常

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

范例

Example #1 A Phar::copy() example

This example shows using Phar::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All Phar methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "hi"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo file_get_contents('phar://myphar.phar/c'); // outputs "hi"
?>

Phar::convertToExecutable
Phar::count
Phar


Returns the number of entries (files) in the Phar archive

Phar::copy
Phar::createDefaultStub
Phar
PHP 手册

Phar::count

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::count — Returns the number of entries (files) in the Phar archive

说明

int Phar::count ( void )

参数

返回值

The number of files contained within this phar, or 0 (the number zero) if none.

范例

Example #1 A Phar::count() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p['file.txt'] = 'hi';
echo 'The new phar has ' . $p->count() . " entries\n";
?>

上例将输出：

The new phar has 0 entries
The new phar has 1 entries

Phar::copy
Phar::createDefaultStub
Phar


Return the PHP loader or bootstrap stub of a Phar archive

Phar::count
Phar::decompress
Phar
PHP 手册

Phar::createDefaultStub

(Unknown)

Phar::createDefaultStub — Return the PHP loader or bootstrap stub of a Phar archive

说明

string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )

This method is intended for creation of phar-file format-specific stubs, and is not intended for use with tar- or zip-based phar archives.

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>

or by simple execution:

php myphar.phar

This method provides a simple and easy method to create a stub that will run a startup file from the phar archive. In addition, different files can be specified for running the phar archive from the command line versus through a web server. The loader stub also calls Phar::interceptFileFuncs() to allow easy bundling of a PHP application that accesses the file system. If the phar extension is not present, the loader stub will extract the phar archive to a temporary directory and then operate on the files. A shutdown function erases the temporary files on exit.

返回值

Returns a string containing the contents of a customized bootstrap loader (stub) that allows the created Phar archive to work with or without the Phar extension enabled.

错误／异常

Throws UnexpectedValueException if either parameter is longer than 400 bytes.

范例

Example #1 A Phar::createDefaultStub() example

try {
    $phar = new Phar('myphar.phar');
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // handle errors
}

参见

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive

Phar::count
Phar::decompress
Phar


Decompresses the entire Phar archive

Phar::createDefaultStub
Phar::decompressFiles
Phar
PHP 手册

Phar::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompress — Decompresses the entire Phar archive

说明

object Phar::decompress ([ string $extension ] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

For tar-based and phar-based phar archives, this method decompresses the entire archive.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically changes the file extension of the archive, .phar by default for phar archives, or .phar.tar for tar-based phar archives. Alternatively, a file extension may be specified with the second parameter.

A Phar object is returned.

参数

extension

For decompressing, the default file extensions are .phar and .phar.tar. Use this parameter to specify another file extension. Be aware that all executable phar archives must contain .phar in their filename.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

范例

Example #1 A Phar::decompress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // creates /path/to/my.phar
?>

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive

Phar::createDefaultStub
Phar::decompressFiles
Phar


Decompresses all files in the current Phar archive

Phar::decompress
Phar::delMetadata
Phar
PHP 手册

Phar::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompressFiles — Decompresses all files in the current Phar archive

说明

bool Phar::decompressFiles ( void )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method decompresses all files in the Phar archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

范例

Example #1 A Phar::decompressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

上例将输出：

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive

Phar::decompress
Phar::delMetadata
Phar


Deletes the global metadata of the phar

Phar::decompressFiles
Phar::delete
Phar
PHP 手册

Phar::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::delMetadata — Deletes the global metadata of the phar

说明

bool Phar::delMetadata ( void )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Deletes the global metadata of the phar

参数

返回值

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

错误／异常

Throws PharException if errors occur while flushing changes to disk.

范例

Example #1 A Phar::delMetaData() example

<?php
try {
    $phar = new Phar('myphar.phar');
    var_dump($phar->getMetadata());
    $phar->setMetadata("hi there");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

上例将输出：

NULL
string(8) "hi there"
NULL

参见

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data

Phar::decompressFiles
Phar::delete
Phar


Delete a file within a phar archive

Phar::delMetadata
Phar::extractTo
Phar
PHP 手册

Phar::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::delete — Delete a file within a phar archive

说明

bool Phar::delete ( string $entry )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

参数

entry

Path within an archive to the file to delete.

返回值

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

错误／异常

Throws PharException if errors occur while flushing changes to disk.

范例

Example #1 A Phar::delete() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->delete('unlink/me.php');
    // this is equivalent to:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // handle errors
}
?>

参见

  • PharData::delete() - Delete a file within a tar/zip archive
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory

Phar::delMetadata
Phar::extractTo
Phar


Extract the contents of a phar archive to a directory

Phar::delete
Phar::getMetaData
Phar
PHP 手册

Phar::extractTo

(Unknown)

Phar::extractTo — Extract the contents of a phar archive to a directory

说明

bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite=false ]] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Extract all files within a phar archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

参数

pathto

Path within an archive to the file to delete.

files

The name of a file or directory to extract, or an array of files/directories to extract

overwrite

FALSE by default, set to TRUE to enable overwriting existing files

返回值

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

错误／异常

Throws PharException if errors occur while flushing changes to disk.

范例

Example #1 A Phar::extractTo() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->extractTo('/full/path'); // extract all files
    $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // extract 2 files only
    $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
    // handle errors
}
?>

参见

  • PharData::extractTo() - Extract the contents of a tar/zip archive to a directory

Phar::delete
Phar::getMetaData
Phar


Returns phar archive meta-data

Phar::extractTo
Phar::getModified
Phar
PHP 手册

Phar::getMetaData

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getMetaData — Returns phar archive meta-data

说明

mixed Phar::getMetaData ( void )

Retrieve archive meta-data. Meta-data can be any PHP variable that can be serialized.

参数

No parameters.

返回值

any PHP variable that can be serialized and is stored as meta-data for the Phar archive, or NULL if no meta-data is stored.

范例

Example #1 A Phar::getMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello";';
    $p->setMetaData(array('bootstrap' => 'file.php'));
    var_dump($p->getMetaData());
} catch (Exception $e) {
    echo 'Could not modify phar:', $e;
}
?>

上例将输出：

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

参见

  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data

Phar::extractTo
Phar::getModified
Phar


Return whether phar was modified

Phar::getMetaData
Phar::getSignature
Phar
PHP 手册

Phar::getModified

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getModified — Return whether phar was modified

说明

bool Phar::getModified ( void )

This method can be used to determine whether a phar has either had an internal file deleted, or contents of a file changed in some way.

参数

No parameters.

返回值

TRUE if the phar has been modified since opened, FALSE if not.

Phar::getMetaData
Phar::getSignature
Phar


Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive

Phar::getModified
Phar::getStub
Phar
PHP 手册

Phar::getSignature

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getSignature — Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive

说明

array Phar::getSignature ( void )

Returns the verification signature of a phar archive in a hexadecimal string.

参数

返回值

Array with the opened archive's signature in "hash" key and "md5", "sha1", "sha256", or "sha512" in "hash_type". This signature is a hash calculated on the entire phar's contents, and may be used to verify the integrity of the archive. A valid signature is absolutely required of all phar-based phars if the phar.require_hash INI variable is set to true.

Phar::getModified
Phar::getStub
Phar


Return the PHP loader or bootstrap stub of a Phar archive

Phar::getSignature
Phar::getSupportedCompression
Phar
PHP 手册

Phar::getStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive

说明

string Phar::getStub ( void )

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>

or by simple execution:

php myphar.phar

返回值

Returns a string containing the contents of the bootstrap loader (stub) of the current Phar archive.

错误／异常

Throws RuntimeException if it is not possible to read the stub from the Phar archive.

范例

Example #1 A Phar::getStub() example

$p = new Phar('/path/to/my.phar', 0, 'my.phar');
echo $p->getStub();
echo "==NEXT==\n";
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>");
echo $p->getStub();

上例将输出：

<?php __HALT_COMPILER(); ?>
==NEXT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>

参见

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Return the PHP loader or bootstrap stub of a Phar archive

Phar::getSignature
Phar::getSupportedCompression
Phar


Return array of supported compression algorithms

Phar::getStub
Phar::getSupportedSignatures
Phar
PHP 手册

Phar::getSupportedCompression

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Return array of supported compression algorithms

说明

array Phar::getSupportedCompression ( void )

参数

No parameters.

返回值

Returns an array containing any of Phar::GZ or Phar::BZ2, depending on the availability of the zlib extension or the bz2 extension.

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive

Phar::getStub
Phar::getSupportedSignatures
Phar


Return array of supported signature types

Phar::getSupportedCompression
Phar::getVersion
Phar
PHP 手册

Phar::getSupportedSignatures

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Return array of supported signature types

说明

array Phar::getSupportedSignatures ( void )

Return array of supported signature types

参数

No parameters.

返回值

Returns an array containing any of "MD5", "SHA-1", "SHA-256", "SHA-512".

参见

  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive
  • Phar::setSignatureAlgorithm() - set the signature algorithm for a phar and apply it. The

Phar::getSupportedCompression
Phar::getVersion
Phar


Return version info of Phar archive

Phar::getSupportedSignatures
Phar::hasMetaData
Phar
PHP 手册

Phar::getVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getVersion — Return version info of Phar archive

说明

string Phar::getVersion ( void )

Returns the API version of an opened Phar archive.

参数

返回值

The opened archive's API version. This is not to be confused with the API version that the loaded phar extension will use to create new phars. Each Phar archive has the API version hard-coded into its manifest. See Phar file format documentation for more information.

参见

  • Phar::apiVersion() - Returns the api version

Phar::getSupportedSignatures
Phar::hasMetaData
Phar


Returns whether phar has global meta-data

Phar::getVersion
Phar::interceptFileFuncs
Phar
PHP 手册

Phar::hasMetaData

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::hasMetaData — Returns whether phar has global meta-data

说明

bool Phar::hasMetadata ( void )

Returns whether phar has global meta-data set.

参数

No parameters.

返回值

Returns TRUE if meta-data has been set, and FALSE if not.

范例

Example #1 A Phar::hasMetaData() example

<?php
try {
    $phar = new Phar('myphar.phar');
    var_dump($phar->hasMetadata());
    $phar->setMetadata(array('thing' => 'hi'));
    var_dump($phar->hasMetadata());
    $phar->delMetadata();
    var_dump($phar->hasMetadata());
} catch (Exception $e) {
    // handle error
}
?>

上例将输出：

bool(false)
bool(true)
bool(false)

参见

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar

Phar::getVersion
Phar::interceptFileFuncs
Phar


instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Phar::hasMetaData
Phar::isBuffering
Phar
PHP 手册

Phar::interceptFileFuncs

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

说明

void Phar::interceptFileFuncs ( void )

instructs phar to intercept fopen(), readfile(), file_get_contents(), opendir(), and all of the stat-related functions. If any of these functions is called from within a phar archive with a relative path, the call is modified to access a file within the phar archive. Absolute paths are assumed to be attempts to load external files from the filesystem.

This function makes it possible to run PHP applications designed to run off of a hard disk as a phar application.

参数

No parameters.

返回值

范例

Example #1 A Phar::interceptFileFuncs() example

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>

Assuming that this phar is at /path/to/myphar.phar and it contains file.php and file2.txt, if file.php contains this code:

Example #2 A Phar::interceptFileFuncs() example

<?php
echo file_get_contents('file2.txt');
?>

Normally PHP would search the current directory for file2.txt, which would translate as the directory of file.php, or the current directory of a command-line user. Phar::interceptFileFuncs() instructs PHP to consider the current directory to be phar:///path/to/myphar.phar/ and so opens phar:///path/to/myphar.phar/file2.txt in the above example code.

Phar::hasMetaData
Phar::isBuffering
Phar


Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Phar::interceptFileFuncs
Phar::isCompressed
Phar
PHP 手册

Phar::isBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

说明

bool Phar::isBuffering ( void )

This method can be used to determine whether a Phar will save changes to disk immediately, or whether a call to Phar->stopBuffering() is needed to enable saving changes.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

范例

Example #1 A Phar::isBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p2 = new Phar('existingphar.phar');
$p['file1.txt'] = 'hi';
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>
=2=
<?php
$p->startBuffering();
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
$p->stopBuffering();
?>
=3=
<?php
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>

上例将输出：

bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

参见

  • Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk

Phar::interceptFileFuncs
Phar::isCompressed
Phar


Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Phar::isBuffering
Phar::isFileFormat
Phar
PHP 手册

Phar::isCompressed

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

说明

mixed Phar::isCompressed ( void )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on). Zip-based phar archives cannot be compressed as a file, and so this method will always return FALSE if a zip-based phar archive is queried.

参数

No parameters.

返回值

Phar::GZ, Phar::BZ2 or FALSE

范例

Example #1 A Phar::isCompressed() example

<?php
try {
    $phar1 = new Phar('myphar.zip.phar');
    var_dump($phar1->isCompressed());
    $phar2 = new Phar('myuncompressed.tar.phar');
    var_dump($phar2->isCompressed());
    $phar2->compressAllFilesGZ();
    var_dump($phar2->isCompressed() == Phar::GZ);
} catch (Exception $e) {
}
?>

上例将输出：

bool(false)
bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms

Phar::isBuffering
Phar::isFileFormat
Phar


Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Phar::isCompressed
Phar::isValidPharFilename
Phar
PHP 手册

Phar::isFileFormat

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

说明

bool Phar::isFileFormat ( int $format )

参数

format

Either Phar::PHAR, Phar::TAR, or Phar::ZIP to test for the format of the archive.

返回值

Returns TRUE if the phar archive matches the file format requested by the parameter

错误／异常

PharException is thrown if the parameter is an unknown file format specifier.

参见

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file

Phar::isCompressed
Phar::isValidPharFilename
Phar


Returns whether the given filename is a valid phar filename

Phar::isFileFormat
Phar::isWritable
Phar
PHP 手册

Phar::isValidPharFilename

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename

说明

bool Phar::isValidPharFilename ( string $filename [, bool $executable=true ] )

Returns whether the given filename is a valid phar filename that will be recognized as a phar archive by the phar extension. This can be used to test a name without having to instantiate a phar archive and catch the inevitable Exception that will be thrown if an invalid name is specified.

参数

filename

The name or full path to a phar archive not yet created

executable

This parameter determines whether the filename should be treated as a phar executable archive, or a data non-executable archive and is TRUE by default

返回值

Returns TRUE if the filename is valid, FALSE if not.

Phar::isFileFormat
Phar::isWritable
Phar


Returns true if the phar archive can be modified

Phar::isValidPharFilename
Phar::loadPhar
Phar
PHP 手册

Phar::isWritable

(Unknown)

Phar::isWritable — Returns true if the phar archive can be modified

说明

bool Phar::isWritable ( void )

This method returns TRUE if phar.readonly is 0, and the actual phar archive on disk is not read-only.

参数

No parameters.

返回值

Returns TRUE if the phar archive can be modified

参见

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • PharData::isWritable() - Returns true if the tar/zip archive can be modified

Phar::isValidPharFilename
Phar::loadPhar
Phar


Loads any phar archive with an alias

Phar::isWritable
Phar::mapPhar
Phar
PHP 手册

Phar::loadPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::loadPhar — Loads any phar archive with an alias

说明

bool Phar::loadPhar ( string $filename [, string $alias ] )

This can be used to read the contents of an external Phar archive. This is most useful for assigning an alias to a phar so that subsequent references to the phar can use the shorter alias, or for loading Phar archives that only contain data and are not intended for execution/inclusion in PHP scripts.

参数

filename

the full or relative path to the phar archive to open

alias

The alias that may be used to refer to the phar archive. Note that many phar archives specify an explicit alias inside the phar archive, and a PharException will be thrown if a new alias is specified in this case.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

PharException is thrown if an alias is passed in and the phar archive already has an explicit alias

范例

Example #1 A Phar::loadPhar() example

Phar::loadPhar can be used anywhere to load an external Phar archive, whereas Phar::mapPhar should be used in a loader stub for a Phar.

<?php
try {
    Phar::loadPhar('/path/to/phar.phar', 'my.phar');
    echo file_get_contents('phar://my.phar/file.txt');
} catch (PharException $e) {
    echo $e;
}
?>

参见

  • Phar::mapPhar() - Reads the currently executed file (a phar) and registers its manifest

Phar::isWritable
Phar::mapPhar
Phar


Reads the currently executed file (a phar) and registers its manifest

Phar::loadPhar
Phar::mount
Phar
PHP 手册

Phar::mapPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest

说明

bool Phar::mapPhar ([ string $alias [, int $dataoffset=0 ]] )

This static method can only be used inside a Phar archive's loader stub in order to initialize the phar when it is directly executed, or when it is included in another script.

参数

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

dataoffset

Unused variable, here for compatibility with PEAR's PHP_Archive.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

PharException is thrown if not called directly within PHP execution, if no __HALT_COMPILER(); token is found in the current source file, or if the file cannot be opened for reading.

范例

Example #1 A Phar::mapPhar() example

mapPhar should be used only inside a phar's loader stub. Use loadPhar to load an external phar into memory.

Here is a sample Phar loader stub that uses mapPhar.

<?php
function __autoload($class)
{
    include 'phar://me.phar/' . str_replace('_', '/', $class) . '.php';
}
try {
    Phar::mapPhar('me.phar');
    include 'phar://me.phar/startup.php';
} catch (PharException $e) {
    echo $e->getMessage();
    die('Cannot initialize Phar');
}
__HALT_COMPILER();

参见

  • Phar::loadPhar() - Loads any phar archive with an alias

Phar::loadPhar
Phar::mount
Phar


Mount an external path or file to a virtual location within the phar archive

Phar::mapPhar
Phar::mungServer
Phar
PHP 手册

Phar::mount

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::mount — Mount an external path or file to a virtual location within the phar archive

说明

void Phar::mount ( string $pharpath , string $externalpath )

Much like the unix file system concept of mounting external devices to paths within the directory tree, Phar::mount() allows referring to external files and directories as if they were inside of an archive. This allows powerful abstraction such as referring to external configuration files as if they were inside the archive.

参数

pharpath

The internal path within the phar archive to use as the mounted path location. If executed within a phar archive, this may be a relative path, otherwise this must be a full phar URL.

externalpath

A path or URL to an external file or directory to mount within the phar archive

返回值

No return. PharException is thrown on failure.

错误／异常

Throws PharException if any problems occur mounting the path.

范例

Example #1 A Phar::mount() example

The following example shows accessing an external configuration file as if it were a path within a phar archive.

First, the code inside of a phar archive:

<?php
$configuration = simplexml_load_string(file_get_contents(
    Phar::running(false) . '/config.xml'));
?>

Next the external code used to mount the configuration file:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar:///path/to/archive.phar/config.xml', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>

Another method is to put the mounting code inside the stub of the phar archive. Here is an example of setting up a default configuration file if no user configuration is specified:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
if (defined('EXTERNAL_CONFIG')) {
    Phar::mount('config.xml', EXTERNAL_CONFIG);
    if (file_exists(__DIR__ . '/extra_config.xml')) {
        Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
    }
} else {
    Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
    Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// now run the application
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

...and the code externally to load this phar archive:

<?php
define('EXTERNAL_CONFIG', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>

Phar::mapPhar
Phar::mungServer
Phar


Defines a list of up to 4 $_SERVER variables that should be modified for execution

Phar::mount
Phar::offsetExists
Phar
PHP 手册

Phar::mungServer

(Unknown)

Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution

说明

void Phar::mungServer ( array $munglist )

Phar::mungServer() should only be called within the stub of a phar archive.

Defines a list of up to 4 $_SERVER variables that should be modified for execution. Variables that can be modified to remove traces of phar execution are REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME.

On its own, this method does nothing. Only when combined with Phar::webPhar() does it take effect, and only when the requested file is a PHP file to be parsed. Note that the PATH_INFO and PATH_TRANSLATED variables are always modified.

The original values of variables that are modified are stored in the SERVER array with PHAR_ prepended, so for instance SCRIPT_NAME would be saved as PHAR_SCRIPT_NAME.

参数

munglist

an array containing as string indices any of REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME. Other values trigger an exception, and Phar::mungServer() is case-sensitive.

返回值

No return.

错误／异常

Throws UnexpectedValueException if any problems are found with the passed in data.

范例

Example #1 A Phar::mungServer() example

<?php
// example stub
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

参见

  • Phar::webPhar() - mapPhar for web-based phars. front controller for web applications
  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive

Phar::mount
Phar::offsetExists
Phar


determines whether a file exists in the phar

Phar::mungServer
Phar::offsetGet
Phar
PHP 手册

Phar::offsetExists

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetExists — determines whether a file exists in the phar

说明

bool Phar::offsetExists ( string $offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets.

offsetExists() is called whenever isset() is called.

参数

offset

The filename (relative path) to look for in a Phar.

返回值

Returns TRUE if the file exists within the phar, or FALSE if not.

范例

Example #1 A Phar::offsetExists() example

<?php
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
$p['firstfile.txt'] = 'first file';
$p['secondfile.txt'] = 'second file';
// the next set of lines call offsetExists() indirectly
var_dump(isset($p['firstfile.txt']));
var_dump(isset($p['nothere.txt']));
?>

上例将输出：

bool(true)
bool(false)

参见

  • Phar::offsetGet() - get a PharFileInfo object for a specific file
  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - remove a file from a phar

Phar::mungServer
Phar::offsetGet
Phar


get a PharFileInfo object for a specific file

Phar::offsetExists
Phar::offsetSet
Phar
PHP 手册

Phar::offsetGet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetGet — get a PharFileInfo object for a specific file

说明

int Phar::offsetGet ( string $offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetGet is used for retrieving files from a Phar archive.

参数

offset

The filename (relative path) to look for in a Phar.

返回值

A PharFileInfo object is returned that can be used to iterate over a file's contents or to retrieve information about the current file.

错误／异常

This method throws BadMethodCallException if the file does not exist in the Phar archive.

范例

Example #1 A Phar::offsetGet() example

As with all classes that implement the ArrayAccess interface, offsetGet is automatically called when using the [] angle bracket operator

<?php
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
$p['exists.txt'] = "file exists\n";
try {
    // automatically calls offsetGet()
    echo $p['exists.txt'];
    echo $p['doesnotexist.txt'];
} catch (BadMethodCallException $e) {
    echo $e;
}
?>

上例将输出：

file exists
Entry doesnotexist.txt does not exist

参见

  • Phar::offsetExists() - determines whether a file exists in the phar
  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - remove a file from a phar

Phar::offsetExists
Phar::offsetSet
Phar


set the contents of an internal file to those of an external file

Phar::offsetGet
Phar::offsetUnset
Phar
PHP 手册

Phar::offsetSet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetSet — set the contents of an internal file to those of an external file

说明

void Phar::offsetSet ( string $offset , string $value )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

参数

offset

The filename (relative path) to modify in a Phar.

value

Content of the file.

返回值

No return values.

错误／异常

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

范例

Example #1 A Phar::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

参见

  • Phar::offsetExists() - determines whether a file exists in the phar
  • Phar::offsetGet() - get a PharFileInfo object for a specific file
  • Phar::offsetUnset() - remove a file from a phar

Phar::offsetGet
Phar::offsetUnset
Phar


remove a file from a phar

Phar::offsetSet
Phar::running
Phar
PHP 手册

Phar::offsetUnset

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetUnset — remove a file from a phar

说明

bool Phar::offsetUnset ( string $offset )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

参数

offset

The filename (relative path) to modify in a Phar.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

范例

Example #1 A Phar::offsetUnset() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // deletes file.txt from my.phar by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

参见

  • Phar::offsetExists() - determines whether a file exists in the phar
  • Phar::offsetGet() - get a PharFileInfo object for a specific file
  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory
  • Phar::delete() - Delete a file within a phar archive

Phar::offsetSet
Phar::running
Phar


Returns the full path on disk or full phar URL to the currently executing Phar archive

Phar::offsetUnset
Phar::setAlias
Phar
PHP 手册

Phar::running

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive

说明

string Phar::running ([ bool $retphar=true ] )

Returns the full path to the running phar archive. This is intended for use much like the __FILE__ magic constant, and only has effect inside an executing phar archive.

Inside the stub of an archive, Phar::running() returns "". Simply use __FILE__ to access the current running phar inside a stub.

参数

retphar

TRUE by default. If FALSE, the full path on disk to the phar archive is returned. If TRUE (default value), a full phar URL is returned.

返回值

Returns the filename if valid, empty string otherwise.

范例

Example #1 A Phar::running() example

For the following example, assume the file is within phar archive /path/to/phar/my.phar and the file is located at path my/file.txt within the phar archive.

<?php
$a = Phar::running(); // $a is "phar:///path/to/my.phar"
$b = Phar::running(false); // $b is "/path/to/my.phar"
?>

Phar::offsetUnset
Phar::setAlias
Phar


Set the alias for the Phar archive

Phar::running
Phar::setDefaultStub
Phar
PHP 手册

Phar::setAlias

(PHP >= 5.3.0, PECL phar >= 1.2.1)

Phar::setAlias — Set the alias for the Phar archive

说明

bool Phar::setAlias ( string $alias )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Set the alias for the Phar archive, and write it as the permanent alias for this phar archive. An alias can be used internally to a phar archive to ensure that use of the phar stream wrapper to access internal files always works regardless of the location of the phar archive on the filesystem. Another alternative is to rely upon Phar's interception of include() or to use Phar::interceptFileFuncs() and use relative paths.

参数

alias

A shorthand string that this archive can be referred to in phar stream wrapper access.

返回值

错误／异常

Throws UnexpectedValueException when write access is disabled, and PharException if the alias is already in use or any problems were encountered flushing changes to disk.

范例

Example #1 A Phar::setAlias() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setAlias('myp.phar');
} catch (Exception $e) {
    // handle error
}
?>

参见

  • Phar::__construct() - Construct a Phar archive object
  • Phar::interceptFileFuncs() - instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Phar::running
Phar::setDefaultStub
Phar


Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Phar::setAlias
Phar::setMetadata
Phar
PHP 手册

Phar::setDefaultStub

(Unknown)

Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

说明

bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This method is a convenience method that combines the functionality of Phar::createDefaultStub() and Phar::setStub().

参数

index

Relative path within the phar archive to run if accessed on the command-line

webindex

Relative path within the phar archive to run if accessed through a web browser

错误／异常

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

范例

Example #1 A Phar::setDefaultStub() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setDefaultStub('cli.php', 'web/index.php');
    // this is the same as:
    // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // handle errors
}
?>

参见

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Return the PHP loader or bootstrap stub of a Phar archive

Phar::setAlias
Phar::setMetadata
Phar


Sets phar archive meta-data

Phar::setDefaultStub
Phar::setSignatureAlgorithm
Phar
PHP 手册

Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadata — Sets phar archive meta-data

说明

void Phar::setMetadata ( mixed $metadata )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

参数

metadata

Any PHP variable containing information to store that describes the phar archive

范例

Example #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello"';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Could not create and/or modify phar:', $e;
}
?>

上例将输出：

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

参见

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data

Phar::setDefaultStub
Phar::setSignatureAlgorithm
Phar


set the signature algorithm for a phar and apply it.

Phar::setMetadata
Phar::setStub
Phar
PHP 手册

Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.

说明

void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.

Note that all phar-based and tar-based phar archives have a signature created automatically, SHA1 by default. data tar-based archives (archives created with the PharData class) must have their signature created and set explicitly via Phar::setSignatureAlgorithm().

参数

sigtype

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL

privatekey

The contents of an OpenSSL private key, as extracted from a certificate or OpenSSL key file:

$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);

See phar introduction for instructions on naming and placement of the public key file.

错误／异常

Throws UnexpectedValueException for many errors, BadMethodCallException if called for a zip-based phar archive, and a PharException if any problems occur flushing changes to disk.

参见

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive

Phar::setMetadata
Phar::setStub
Phar


Used to set the PHP loader or bootstrap stub of a Phar archive

Phar::setSignatureAlgorithm
Phar::startBuffering
Phar
PHP 手册

Phar::setStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive

说明

bool Phar::setStub ( string $stub )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive.

The loader stub for a Phar archive is used whenever an archive is included directly as in this example:

<?php
include 'myphar.phar';
?>

The loader is not accessed when including a file through the phar stream wrapper like so:

<?php
include 'phar://myphar.phar/somefile.php';
?>

参数

stub

A string or an open stream handle to use as the executable stub for this phar archive.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

范例

Example #1 A Phar::setStub() example

<?php
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['a.php'] = '<?php var_dump("Hello");';
    $p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/a.php';
    var_dump($p->getStub());
    $p['b.php'] = '<?php var_dump("World");';
    $p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/b.php';
    var_dump($p->getStub());
} catch (Exception $e) {
    echo 'Write operations failed on brandnewphar.phar: ', $e;
}
?>

上例将输出：

string(5) "Hello"
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
string(5) "World"
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"

参见

  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Return the PHP loader or bootstrap stub of a Phar archive

Phar::setSignatureAlgorithm
Phar::startBuffering
Phar


Start buffering Phar write operations, do not modify the Phar object on disk

Phar::setStub
Phar::stopBuffering
Phar
PHP 手册

Phar::startBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk

说明

void Phar::startBuffering ( void )

Although technically unnecessary, the Phar::startBuffering() method can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. the Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

范例

Example #1 A Phar::startBuffering() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p->startBuffering();
$p['file.txt'] = 'hi';
$p['file2.txt'] = 'there';
$p['file2.txt']->setCompressedGZ();
$p['file3.txt'] = 'babyface';
$p['file3.txt']->setMetaData(42);
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>

参见

  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Phar::setStub
Phar::stopBuffering
Phar


Stop buffering write requests to the Phar archive, and save changes to disk

Phar::startBuffering
Phar::uncompressAllFiles
Phar
PHP 手册

Phar::stopBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk

说明

void Phar::stopBuffering ( void )

Phar::stopBuffering() is used in conjunction with the Phar::startBuffering() method. Phar::startBuffering() can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. The Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

错误／异常

PharException is thrown if any problems are encountered flushing changes to disk.

范例

Example #1 A Phar::stopBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file1.txt'] = 'hi';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://brandnewphar.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
var_dump($p->getStub());
?>

上例将输出：

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();"

参见

  • Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Phar::startBuffering
Phar::uncompressAllFiles
Phar


Uncompresses all files in the current Phar archive

Phar::stopBuffering
Phar::unlinkArchive
Phar
PHP 手册

Phar::uncompressAllFiles

(PECL phar < 2.0.0)

Phar::uncompressAllFiles — Uncompresses all files in the current Phar archive

说明

bool Phar::uncompressAllFiles ( void )

Note: This
method has been removed from the phar extension as of version 2.0.0.  Alternative
implementations are available using Phar::compress(),
Phar::decompress(), Phar::compressFiles() and
Phar::decompressFiles().

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This method decompresses all files in the Phar archive. If any files are already compressed using gzip compression, the zlib extension must be enabled in order to decompress the files, and any files compressed using bzip2 compression require the bzip2 extension to decompress the files. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the bzip2 extension is not enabled and any files are compressed using bzip2 compression, or if any files are compressed using gzip compression and the zlib extension is not enabled.

范例

Example #1 A Phar::uncompressAllFiles() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p->compressAllFilesGZ();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
    $p->uncompressAllFiles();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
} catch (Exception $e) {
    echo 'Write operations failed on my.phar: ', $e;
}
?>

上例将输出：

string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms

Phar::stopBuffering
Phar::unlinkArchive
Phar


Completely remove a phar archive from disk and from memory

Phar::uncompressAllFiles
Phar::webPhar
Phar
PHP 手册

Phar::unlinkArchive

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::unlinkArchive — Completely remove a phar archive from disk and from memory

说明

bool Phar::unlinkArchive ( string $archive )

参数

archive

The path on disk to the phar archive.

返回值

Returns TRUE if the archive is successfully removed from disk.

错误／异常

PharException is thrown if there are any open file pointers to the phar archive, or any existing Phar, PharData, or PharFileInfo objects referring to the phar archive.

范例

Example #1 A Phar::unlinkArchive() example

<?php
// simple usage
Phar::unlinkArchive('/path/to/my.phar');

// more common example:
$p = new Phar('my.phar');
$fp = fopen('phar://my.phar/file.txt', 'r');
// this creates 'my.phar.gz'
$gp = $p->compress(Phar::GZ);
// remove all references to the archive
unset($p);
fclose($fp);
// now remove all traces of the archive
Phar::unlinkArchive('my.phar');
?>

参见

  • Phar::delete() - Delete a file within a phar archive
  • Phar::offsetUnset() - remove a file from a phar

Phar::uncompressAllFiles
Phar::webPhar
Phar


mapPhar for web-based phars. front controller for web applications

Phar::unlinkArchive
PharData
Phar
PHP 手册

Phar::webPhar

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::webPhar — mapPhar for web-based phars. front controller for web applications

说明

void Phar::webPhar ([ string $alias [, string $index [, string $f404 [, array $mimetypes [, array $rewrites ]]]]] )

Phar::mapPhar() for web-based phars. This method parses $_SERVER['REQUEST_URI'] and routes a request from a web browser to an internal file within the phar archive. In essence, it simulates a web server, routing requests to the correct file, echoing the correct headers and parsing PHP files as needed. This powerful method is part of what makes it easy to convert an existing PHP application into a phar archive. Combined with Phar::mungServer() and Phar::interceptFileFuncs(), any web application can be used unmodified from a phar archive.

Phar::webPhar() should only be called from the stub of a phar archive (see here for more information on what a stub is).

参数

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

index

The location within the phar of the directory index, defaults to index.php.

f404

The location of the script to run when a file is not found. This script should output the proper HTTP 404 headers.

mimetypes

An array mapping additional file extensions to MIME type. By default, these extensions are mapped to these mime types:

$mimes = array(
    'phps' => 2, // pass to highlight_file()
    'c' => 'text/plain',
    'cc' => 'text/plain',
    'cpp' => 'text/plain',
    'c++' => 'text/plain',
    'dtd' => 'text/plain',
    'h' => 'text/plain',
    'log' => 'text/plain',
    'rng' => 'text/plain',
    'txt' => 'text/plain',
    'xsd' => 'text/plain',
    'php' => 1, // parse as PHP
    'inc' => 1, // parse as PHP
    'avi' => 'video/avi',
    'bmp' => 'image/bmp',
    'css' => 'text/css',
    'gif' => 'image/gif',
    'htm' => 'text/html',
    'html' => 'text/html',
    'htmls' => 'text/html',
    'ico' => 'image/x-ico',
    'jpe' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'js' => 'application/x-javascript',
    'midi' => 'audio/midi',
    'mid' => 'audio/midi',
    'mod' => 'audio/mod',
    'mov' => 'movie/quicktime',
    'mp3' => 'audio/mp3',
    'mpg' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
    'pdf' => 'application/pdf',
    'png' => 'image/png',
    'swf' => 'application/shockwave-flash',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'wav' => 'audio/wav',
    'xbm' => 'image/xbm',
    'xml' => 'text/xml',
);

rewrites

An array mapping URI to internal file, simulating mod_rewrite of apache. For example:

array(
    'myinfo' => 'myinfo.php'
);

would route calls to http://<host>/myphar.phar/myinfo to the file phar:///path/to/myphar.phar/myinfo.php, preserving GET/POST. This does not quite work like mod_rewrite in that it would not match http://<host>/myphar.phar/myinfo/another.

返回值

No return values

错误／异常

Throws PharException when unable to open the internal file to output, or if called from a non-stub. If an invalid array value is passed into mimetypes or to rewrites , then UnexpectedValueException is thrown.

范例

Example #1 A Phar::webPhar() example

With the example below, the created phar will display Hello World if one browses to /myphar.phar/index.php or to /myphar.phar, and will display the source of index.phps if one browses to /myphar.phar/index.phps.

<?php
// creating the phar archive:
try {
    $phar = new Phar('myphar.phar');
    $phar['index.php'] = '<?php echo "Hello World"; ?>';
    $phar['index.phps'] = '<?php echo "Hello World"; ?>';
    $phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>');
} catch (Exception $e) {
    // handle error here
}
?>

参见

  • Phar::mungServer() - Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::interceptFileFuncs() - instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Phar::unlinkArchive
PharData
Phar


The PharData class

简介

The PharData class provides a high-level interface to accessing and creating non-executable tar and zip archives. Because these archives do not contain a stub and cannot be executed by the phar extension, it is possible to create and manipulate regular zip and tar files using the PharData class even if phar.readonly php.ini setting is 1.

Class synopsis

PharData
PharData extends Phar {
/* Properties */
/* Methods */
bool addEmptyDir ( string $dirname )
void Phar::addFile ( string $file [, string $localname ] )
bool addFromString ( string $localname , string $contents )
array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
array buildFromIterator ( Iterator $iter [, string $base_directory ] )
object compress ( int $compression , string $extension )
bool compressFiles ( int $compression )
void __construct ( string $fname [, int $flags ] )
PharData convertToData ([ int $format [, int $compression [, string $extension ]]] )
Phar convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )
bool copy ( string $oldfile , string $newfile )
object decompress ([ string $extension ] )
bool decompressFiles ( void )
int delMetadata ( void )
int delete ( string $entry )
int extractTo ( string $pathto [, string|array $files [, bool $overwrite ]] )
bool isWritable ( void )
void offsetSet ( string $offset , string $value )
bool offsetUnset ( string $offset )
bool setAlias ( string $alias )
void setDefaultStub ([ string $index [, string $webindex ]] )
void Phar::setMetadata ( mixed $metadata )
void Phar::setSignatureAlgorithm ( int $sigtype )
void setStub ( string $stub )
/* Inherited methods */
void Phar::addEmptyDir ( string $dirname )
void Phar::addFile ( string $file [, string $localname ] )
void Phar::addFromString ( string $localname , string $contents )
string Phar::apiVersion ( void )
array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )
bool Phar::canCompress ([ int $type=0 ] )
bool Phar::canWrite ( void )
object Phar::compress ( int $compression [, string $extension ] )
bool Phar::compressAllFilesBZIP2 ( void )
bool Phar::compressAllFilesGZ ( void )
void Phar::compressFiles ( int $compression )
void Phar::__construct ( string $fname [, int $flags [, string $alias ]] )
PharData Phar::convertToData ([ int $format=9021976 [, int $compression=9021976 [, string $extension ]]] )
Phar Phar::convertToExecutable ([ int $format=9021976 [, int $compression=9021976 [, string $extension ]]] )
bool Phar::copy ( string $oldfile , string $newfile )
int Phar::count ( void )
string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
object Phar::decompress ([ string $extension ] )
bool Phar::decompressFiles ( void )
bool Phar::delMetadata ( void )
bool Phar::delete ( string $entry )
bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite=false ]] )
mixed Phar::getMetaData ( void )
bool Phar::getModified ( void )
array Phar::getSignature ( void )
string Phar::getStub ( void )
array Phar::getSupportedCompression ( void )
array Phar::getSupportedSignatures ( void )
string Phar::getVersion ( void )
bool Phar::hasMetadata ( void )
void Phar::interceptFileFuncs ( void )
bool Phar::isBuffering ( void )
mixed Phar::isCompressed ( void )
bool Phar::isFileFormat ( int $format )
bool Phar::isValidPharFilename ( string $filename [, bool $executable=true ] )
bool Phar::isWritable ( void )
bool Phar::loadPhar ( string $filename [, string $alias ] )
bool Phar::mapPhar ([ string $alias [, int $dataoffset=0 ]] )
void Phar::mount ( string $pharpath , string $externalpath )
void Phar::mungServer ( array $munglist )
bool Phar::offsetExists ( string $offset )
int Phar::offsetGet ( string $offset )
void Phar::offsetSet ( string $offset , string $value )
bool Phar::offsetUnset ( string $offset )
string Phar::running ([ bool $retphar=true ] )
bool Phar::setAlias ( string $alias )
bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )
void Phar::setMetadata ( mixed $metadata )
void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
bool Phar::setStub ( string $stub )
void Phar::startBuffering ( void )
void Phar::stopBuffering ( void )
bool Phar::uncompressAllFiles ( void )
bool Phar::unlinkArchive ( string $archive )
void Phar::webPhar ([ string $alias [, string $index [, string $f404 [, array $mimetypes [, array $rewrites ]]]]] )
}

Table of Contents

  • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
  • PharData::addFile — Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString — Add a file from the filesystem to the tar/zip archive
  • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory.
  • PharData::buildFromIterator — Construct a tar or zip archive from an iterator.
  • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::compressFiles — Compresses all files in the current tar/zip archive
  • PharData::__construct — Construct a non-executable tar or zip archive object
  • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
  • PharData::decompress — Decompresses the entire Phar archive
  • PharData::decompressFiles — Decompresses all files in the current zip archive
  • PharData::delMetadata — Deletes the global metadata of a zip archive
  • PharData::delete — Delete a file within a tar/zip archive
  • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
  • PharData::isWritable — Returns true if the tar/zip archive can be modified
  • PharData::offsetSet — set the contents of a file within the tar/zip to those of an external file or string
  • PharData::offsetUnset — remove a file from a tar/zip archive
  • PharData::setAlias — dummy function (Phar::setAlias is not valid for PharData)
  • PharData::setDefaultStub — dummy function (Phar::setDefaultStub is not valid for PharData)
  • Phar::setMetadata — Sets phar archive meta-data
  • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it. The
  • PharData::setStub — dummy function (Phar::setStub is not valid for PharData)
Phar::webPhar
PharData::addEmptyDir
Phar


Add an empty directory to the tar/zip archive

PharData
PharData::addFile
PharData
PHP 手册

PharData::addEmptyDir

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addEmptyDir — Add an empty directory to the tar/zip archive

说明

bool PharData::addEmptyDir ( string $dirname )

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

参数

dirname

The name of the empty directory to create in the phar archive

返回值

no return value, exception is thrown on failure.

范例

Example #1 A PharData::addEmptyDir() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addEmptyDir('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // handle errors here
}
?>

参见

  • Phar::addEmptyDir() - Add an empty directory to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive

PharData
PharData::addFile
PharData


Add a file from the filesystem to the tar/zip archive

PharData::addEmptyDir
PharData::addFromString
PharData
PHP 手册

PharData::addFile

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFile — Add a file from the filesystem to the tar/zip archive

说明

void Phar::addFile ( string $file [, string $localname ] )

With this method, any file or URL can be added to the tar/zip archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

参数

file

Full or relative path to a file on disk to be added to the phar archive.

localname

Path that the file will be stored in the archive.

返回值

no return value, exception is thrown on failure.

范例

Example #1 A PharData::addFile() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFile('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // demonstrate URL usage
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // handle errors here
}
?>

参见

  • PharData::offsetSet() - set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive

PharData::addEmptyDir
PharData::addFromString
PharData


Add a file from the filesystem to the tar/zip archive

PharData::addFile
PharData::buildFromDirectory
PharData
PHP 手册

PharData::addFromString

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFromString — Add a file from the filesystem to the tar/zip archive

说明

bool PharData::addFromString ( string $localname , string $contents )

With this method, any string can be added to the tar/zip archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

参数

localname

Path that the file will be stored in the archive.

contents

The file contents to store

返回值

no return value, exception is thrown on failure.

范例

Example #1 A PharData::addFromString() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFromString('path/to/file.txt', 'my simple file');
    $b = $a['path/to/file.txt']->getContent();

    // to add contents from a stream handle for large files, use offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // handle errors here
}
?>

参见

  • PharData::offsetSet() - set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFromString() - Add a file from the filesystem to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive

PharData::addFile
PharData::buildFromDirectory
PharData


Construct a tar/zip archive from the files within a directory.

PharData::addFromString
PharData::buildFromIterator
PharData
PHP 手册

PharData::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory.

说明

array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Populate a tar/zip archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use PharData::buildFromIterator().

参数

base_dir

The full or relative path to the directory that contains all files to add to the archive.

regex

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

返回值

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

错误／异常

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

范例

Example #1 A PharData::buildFromDirectory() example

<?php
$phar = new PharData('project.tar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');

$phar2 = new PharData('project2.zip');
// add all files in the project, only include php files
$phar->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>

参见

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory.
  • PharData::buildFromIterator() - Construct a tar or zip archive from an iterator.

PharData::addFromString
PharData::buildFromIterator
PharData


Construct a tar or zip archive from an iterator.

PharData::buildFromDirectory
PharData::compress
PharData
PHP 手册

PharData::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construct a tar or zip archive from an iterator.

说明

array PharData::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Populate a tar or zip archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the tar/zip to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

范例

Example #1 A PharData::buildFromIterator() with SplFileInfo

For most tar/zip archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a tar/zip archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.tar" tar archive:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
?>

The file project.tar can then be used immediately. PharData::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the tar/zip archive.

As an interesting note, PharData::buildFromIterator() can also be used to copy the contents of an existing phar, tar or zip archive, as the PharData object descends from DirectoryIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/path/to/anotherphar.phar')),
    'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
?>

Example #2 A PharData::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
?>

参数

iter

Any iterator that either associatively maps tar/zip file to location or returns SplFileInfo objects

base_directory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the tar/zip archive

返回值

PharData::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

错误／异常

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.

参见

  • Phar::buildFromIterator() - Construct a phar archive from an iterator.

PharData::buildFromDirectory
PharData::compress
PharData


Compresses the entire tar/zip archive using Gzip or Bzip2 compression

PharData::buildFromIterator
PharData::compressFiles
PharData
PHP 手册

PharData::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression

说明

object PharData::compress ( int $compression , string $extension )

For tar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For zip archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

A PharData object is returned.

参数

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .tar.gz or .tar.bz2 for compressing a tar, and .tar for decompressing.

错误／异常

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

范例

Example #1 A PharData::compress() example

<?php
$p = new PharData('/path/to/my.tar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>

参见

  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression

PharData::buildFromIterator
PharData::compressFiles
PharData


Compresses all files in the current tar/zip archive

PharData::compress
PharData::__construct
PharData
PHP 手册

PharData::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compressFiles — Compresses all files in the current tar/zip archive

说明

bool PharData::compressFiles ( int $compression )

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method compresses all files in the archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing.

参数

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

范例

Example #1 A PharData::compressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

上例将输出：

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::decompressFiles() - Decompresses all files in the current zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive

PharData::compress
PharData::__construct
PharData


Construct a non-executable tar or zip archive object

PharData::compressFiles
PharData::convertToData
PharData
PHP 手册

PharData::__construct

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::__construct — Construct a non-executable tar or zip archive object

说明

void PharData::__construct ( string $fname [, int $flags ] )

参数

fname

Path to an existing tar/zip archive or to-be-created archive

flags

flags to pass to Phar parent class RecursiveDirectoryIterator. See » SPL RecursiveDirectoryIterator docs

错误／异常

Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.

范例

Example #1 A PharData::__construct() example

<?php
try {
    $p = new PharData('/path/to/my.tar', CURRENT_AS_FILEINFO | KEY_AS_FILENAME);
} catch (UnexpectedValueException $e) {
    die('Could not open my.tar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
echo file_get_contents('phar:///path/to/my.tar/example.txt');
?>

PharData::compressFiles
PharData::convertToData
PharData


Convert a phar archive to a non-executable tar or zip file

PharData::__construct
PharData::convertToExecutable
PharData
PHP 手册

PharData::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToData — Convert a phar archive to a non-executable tar or zip file

说明

PharData PharData::convertToData ([ int $format [, int $compression [, string $extension ]]] )

This method is used to convert a non-executable tar or zip archive to another non-executable format.

If no changes are specified, this method throws a BadMethodCallException. This method should be used to convert a tar archive to zip format or vice-versa. Although it is possible to simply change the compression of a tar archive using this method, it is better to use the PharData::compress() method for logical consistency.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

参数

format

This should be one of Phar::TAR or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

返回值

The method returns a PharData object on success and throws an exception on failure.

错误／异常

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

范例

Example #1 A PharData::convertToData() example

Using PharData::convertToData():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // note that myphar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>

参见

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive

PharData::__construct
PharData::convertToExecutable
PharData


Convert a non-executable tar/zip archive to an executable phar archive

PharData::convertToData
PharData::copy
PharData
PHP 手册

PharData::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive

说明

Phar PharData::convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This method is used to convert a non-executable tar or zip archive to an executable phar archive. Any of the three executable file formats (phar, tar or zip) can be used, and whole-archive compression can also be performed.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

参数

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

返回值

The method returns a Phar object on success and throws an exception on failure.

错误／异常

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

范例

Example #1 A PharData::convertToExecutable() example

Using PharData::convertToExecutable():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // convert it to the phar file format
    // note that myphar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>

参见

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file

PharData::convertToData
PharData::copy
PharData


Copy a file internal to the phar archive to another new file within the phar

PharData::convertToExecutable
PharData::decompress
PharData
PHP 手册

PharData::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::copy — Copy a file internal to the phar archive to another new file within the phar

说明

bool PharData::copy ( string $oldfile , string $newfile )

Copy a file internal to the tar/zip archive to another new file within the same archive. This is an object-oriented alternative to using copy() with the phar stream wrapper.

参数

oldfile

newfile

返回值

returns TRUE on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

错误／异常

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

范例

Example #1 A PharData::copy() example

This example shows using PharData::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All PharData methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "hi"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // outputs "hi"
?>

PharData::convertToExecutable
PharData::decompress
PharData


Decompresses the entire Phar archive

PharData::copy
PharData::decompressFiles
PharData
PHP 手册

PharData::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompress — Decompresses the entire Phar archive

说明

object PharData::decompress ([ string $extension ] )

For tar-based archives, this method decompresses the entire archive.

For Zip-based archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression.

In addition, this method automatically renames the file extension of the archive, .tar by default. Alternatively, a file extension may be specified with the second parameter.

A PharData object is returned.

参数

extension

For decompressing, the default file extension is .phar.tar. Use this parameter to specify another file extension. Be aware that no non-executable archives cannot contain .phar in their filename.

错误／异常

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

范例

Example #1 A PharData::decompress() example

<?php
$p = new PharData('/path/to/my.tar', 0, 'my.tar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // creates /path/to/my.tar
?>

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • PharData::decompressFiles() - Decompresses all files in the current zip archive

PharData::copy
PharData::decompressFiles
PharData


Decompresses all files in the current zip archive

PharData::decompress
PharData::delMetadata
PharData
PHP 手册

PharData::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompressFiles — Decompresses all files in the current zip archive

说明

bool PharData::decompressFiles ( void )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method decompresses all files in the archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression.

错误／异常

Throws BadMethodCallException if the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

范例

Example #1 A PharData::decompressFiles() example

<?php
$p = new PharData('/path/to/my.zip');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

上例将输出：

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive

PharData::decompress
PharData::delMetadata
PharData


Deletes the global metadata of a zip archive

PharData::decompressFiles
PharData::delete
PharData
PHP 手册

PharData::delMetadata

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delMetadata — Deletes the global metadata of a zip archive

说明

int PharData::delMetadata ( void )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Deletes the global metadata of the zip archive

参数

返回值

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

错误／异常

Throws PharException if errors occur while flushing changes to disk.

范例

Example #1 A PharData::delMetaData() example

<?php
try {
    $phar = new PharData('myphar.zip');
    var_dump($phar->getMetadata());
    $phar->setMetadata("hi there");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

上例将输出：

NULL
string(8) "hi there"
NULL

参见

  • Phar::delMetadata() - Deletes the global metadata of the phar

PharData::decompressFiles
PharData::delete
PharData


Delete a file within a tar/zip archive

PharData::delMetadata
PharData::extractTo
PharData
PHP 手册

PharData::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delete — Delete a file within a tar/zip archive

说明

int PharData::delete ( string $entry )

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

参数

entry

Path within an archive to the file to delete.

返回值

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

错误／异常

Throws PharException if errors occur while flushing changes to disk.

范例

Example #1 A PharData::delete() example

<?php
try {
    $phar = new PharData('myphar.zip');
    $phar->delete('unlink/me.php');
    // this is equivalent to:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // handle errors
}
?>

参见

  • Phar::delete() - Delete a file within a phar archive

PharData::delMetadata
PharData::extractTo
PharData


Extract the contents of a tar/zip archive to a directory

PharData::delete
PharData::isWritable
PharData
PHP 手册

PharData::extractTo

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::extractTo — Extract the contents of a tar/zip archive to a directory

说明

int PharData::extractTo ( string $pathto [, string|array $files [, bool $overwrite ]] )

Extract all files within a tar/zip archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

参数

pathto

Path within an archive to the file to delete.

files

The name of a file or directory to extract, or an array of files/directories to extract

overwrite

FALSE by default, set to TRUE to enable overwriting existing files

返回值

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

错误／异常

Throws PharException if errors occur while flushing changes to disk.

范例

Example #1 A PharData::extractTo() example

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar->extractTo('/full/path'); // extract all files
    $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // extract 2 files only
    $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
    // handle errors
}
?>

参见

  • Phar::extractTo() - Extract the contents of a phar archive to a directory

PharData::delete
PharData::isWritable
PharData


Returns true if the tar/zip archive can be modified

PharData::extractTo
PharData::offsetSet
PharData
PHP 手册

PharData::isWritable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::isWritable — Returns true if the tar/zip archive can be modified

说明

bool PharData::isWritable ( void )

This method returns TRUE if the tar/zip archive on disk is not read-only. Unlike Phar::isWritable(), data-only tar/zip archives can be modified even if phar.readonly is set to 1.

参数

No parameters.

返回值

Returns TRUE if the tar/zip archive can be modified

参见

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • Phar::isWritable() - Returns true if the phar archive can be modified

PharData::extractTo
PharData::offsetSet
PharData


set the contents of a file within the tar/zip to those of an external file or string

PharData::isWritable
PharData::offsetUnset
PharData
PHP 手册

PharData::offsetSet

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetSet — set the contents of a file within the tar/zip to those of an external file or string

说明

void PharData::offsetSet ( string $offset , string $value )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a tar/zip archive.

参数

offset

The filename (relative path) to modify in a tar or zip archive.

value

Content of the file.

返回值

No return values.

错误／异常

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

范例

Example #1 A PharData::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new PharData('/path/to/my.tar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

参见

  • Phar::offsetSet() - set the contents of an internal file to those of an external file

PharData::isWritable
PharData::offsetUnset
PharData


remove a file from a tar/zip archive

PharData::offsetSet
PharData::setAlias
PharData
PHP 手册

PharData::offsetUnset

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetUnset — remove a file from a tar/zip archive

说明

bool PharData::offsetUnset ( string $offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

参数

offset

The filename (relative path) to modify in the tar/zip archive.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

范例

Example #1 A PharData::offsetUnset() example

<?php
$p = new PharData('/path/to/my.zip');
try {
    // deletes file.txt from my.zip by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

参见

  • Phar::offsetUnset() - remove a file from a phar

PharData::offsetSet
PharData::setAlias
PharData


dummy function (Phar::setAlias is not valid for PharData)

PharData::offsetUnset
PharData::setDefaultStub
PharData
PHP 手册

PharData::setAlias

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setAlias — dummy function (Phar::setAlias is not valid for PharData)

说明

bool PharData::setAlias ( string $alias )

Non-executable tar/zip archives cannot have an alias, so this method simply throws an exception.

参数

alias

A shorthand string that this archive can be referred to in phar stream wrapper access. This parameter is ignored.

返回值

错误／异常

Throws PharException on all method calls

参见

  • Phar::setAlias() - Set the alias for the Phar archive

PharData::offsetUnset
PharData::setDefaultStub
PharData


dummy function (Phar::setDefaultStub is not valid for PharData)

PharData::setAlias
Phar::setMetadata
PharData
PHP 手册

PharData::setDefaultStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setDefaultStub — dummy function (Phar::setDefaultStub is not valid for PharData)

说明

void PharData::setDefaultStub ([ string $index [, string $webindex ]] )

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

参数

index

Relative path within the phar archive to run if accessed on the command-line

webindex

Relative path within the phar archive to run if accessed through a web browser

错误／异常

Throws PharException on all method calls

参见

  • Phar::setDefaultStub() - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

PharData::setAlias
Phar::setMetadata
PharData


Sets phar archive meta-data

PharData::setDefaultStub
Phar::setSignatureAlgorithm
PharData
PHP 手册

Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadata — Sets phar archive meta-data

说明

void Phar::setMetadata ( mixed $metadata )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

参数

metadata

Any PHP variable containing information to store that describes the phar archive

范例

Example #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello"';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Could not create and/or modify phar:', $e;
}
?>

上例将输出：

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

参见

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data

PharData::setDefaultStub
Phar::setSignatureAlgorithm
PharData


set the signature algorithm for a phar and apply it. The

Phar::setMetadata
PharData::setStub
PharData
PHP 手册

Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it. The

说明

void Phar::setSignatureAlgorithm ( int $sigtype )

Note: This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::PGP (pgp not yet supported and falls back to SHA-1).

参数

sigtype

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::PGP

错误／异常

Throws UnexpectedValueException for many errors, BadMethodCallException if called for a zip- or a tar-based phar archive, and a PharException if any problems occur flushing changes to disk.

参见

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512 signature of a Phar archive

Phar::setMetadata
PharData::setStub
PharData


dummy function (Phar::setStub is not valid for PharData)

Phar::setSignatureAlgorithm
PharFileInfo
PharData
PHP 手册

PharData::setStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setStub — dummy function (Phar::setStub is not valid for PharData)

说明

void PharData::setStub ( string $stub )

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

参数

stub

A string or an open stream handle to use as the executable stub for this phar archive. This parameter is ignored.

错误／异常

Throws PharException on all method calls

参见

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive

Phar::setSignatureAlgorithm
PharFileInfo
PharData


The PharFileInfo class

简介

The PharFileInfo class provides a high-level interface to the contents and attributes of a single file within a phar archive.

Class synopsis

PharFileInfo
PharFileInfo extends SplFileInfo {
/* Properties */
/* Methods */
void chmod ( int $permissions )
bool compress ( int $compression )
void __construct ( string $entry )
bool decompress ( void )
bool delMetadata ( void )
int getCRC32 ( void )
int getCompressedSize ( void )
mixed getMetaData ( void )
int getPharFlags ( void )
bool hasMetadata ( void )
bool isCRCChecked ( void )
bool isCompressed ([ int $compression_type=9021976 ] )
bool isCompressedBZIP2 ( void )
bool isCompressedGZ ( void )
bool setCompressedBZIP2 ( void )
bool setCompressedGZ ( void )
void setMetaData ( mixed $metadata )
bool setUncompressed ( void )
}

Table of Contents

  • PharFileInfo::chmod — Sets file-specific permission bits
  • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::__construct — Construct a Phar entry object
  • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
  • PharFileInfo::delMetadata — Deletes the metadata of the entry
  • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
  • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::getMetaData — Returns file-specific meta-data saved with a file
  • PharFileInfo::getPharFlags — Returns the Phar file entry flags
  • PharFileInfo::hasMetadata — Returns the metadata of the entry
  • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
  • PharFileInfo::isCompressed — Returns whether the entry is compressed
  • PharFileInfo::isCompressedBZIP2 — Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressedGZ — Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2 — Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setCompressedGZ — Compresses the current Phar entry within the phar using gz compression
  • PharFileInfo::setMetaData — Sets file-specific meta-data saved with a file
  • PharFileInfo::setUncompressed — Uncompresses the current Phar entry within the phar, if it is compressed
PharData::setStub
PharFileInfo::chmod
Phar


Sets file-specific permission bits

PharFileInfo
PharFileInfo::compress
PharFileInfo
PHP 手册

PharFileInfo::chmod

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::chmod — Sets file-specific permission bits

说明

void PharFileInfo::chmod ( int $permissions )

PharFileInfo::chmod() allows setting of the executable file permissions bit, as well as read-only bits. Writeable bits are ignored, and set at runtime based on the phar.readonly INI variable. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

参数

permissions

permissions (see chmod())

范例

Example #1 A PharFileInfo::chmod() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar('brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.sh'] = '#!/usr/local/lib/php
    <?php echo "hi"; ?>';
    // set executable bit
    $p['file.sh']->chmod(0555);
    var_dump($p['file.sh']->isExecutable());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

上例将输出：

bool(true)

PharFileInfo
PharFileInfo::compress
PharFileInfo


Compresses the current Phar entry with either zlib or bzip2 compression

PharFileInfo::chmod
PharFileInfo::__construct
PharFileInfo
PHP 手册

PharFileInfo::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression

说明

bool PharFileInfo::compress ( int $compression )

This method compresses the file inside the Phar archive using either bzip2 compression or zlib compression. The bzip2 or zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed, the respective extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

范例

Example #1 A PharFileInfo::compress() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressed(Phar::BZ2));
    $p['myfile.txt']->compress(Phar::BZ2);
    var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

上例将输出：

bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms

PharFileInfo::chmod
PharFileInfo::__construct
PharFileInfo


Construct a Phar entry object

PharFileInfo::compress
PharFileInfo::decompress
PharFileInfo
PHP 手册

PharFileInfo::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::__construct — Construct a Phar entry object

说明

void PharFileInfo::__construct ( string $entry )

This should not be called directly. Instead, a PharFileInfo object is initialized by calling Phar::offsetGet() through array access.

参数

entry

The full url to retrieve a file. If you wish to retrieve the information for the file my/file.php from the phar boo.phar, the entry should be phar://boo.phar/my/file.php.

错误／异常

Throws BadMethodCallException if __construct() is called twice. Throws UnexpectedValueException if the phar URL requested is malformed, the requested phar cannot be opened, or the file can't be found within the phar.

范例

Example #1 A PharFileInfo::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['testfile.txt'] = "hi\nthere\ndude";
    $file = $p['testfile.txt'];
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
    // this also works
    $file = new PharFileInfo('phar:///path/to/my.phar/testfile.txt');
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
} catch (Exception $e) {
    echo 'Phar operations failed: ', $e;
}
?>

上例将输出：

line number 1: hi
line number 2: there
line number 3: dude
line number 1: hi
line number 2: there
line number 3: dude

PharFileInfo::compress
PharFileInfo::decompress
PharFileInfo


Decompresses the current Phar entry within the phar

PharFileInfo::__construct
PharFileInfo::delMetadata
PharFileInfo
PHP 手册

PharFileInfo::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::decompress — Decompresses the current Phar entry within the phar

说明

bool PharFileInfo::decompress ( void )

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

范例

Example #1 A PharFileInfo::decompress() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->compress(Phar::GZ);
    var_dump($file->isCompressed());
    $p['myfile.txt']->decompress();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify failed for my.phar: ', $e;
}
?>

上例将输出：

int(4096)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms

PharFileInfo::__construct
PharFileInfo::delMetadata
PharFileInfo


Deletes the metadata of the entry

PharFileInfo::decompress
PharFileInfo::getCRC32
PharFileInfo
PHP 手册

PharFileInfo::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Deletes the metadata of the entry

说明

bool PharFileInfo::delMetadata ( void )

Deletes the metadata of the entry, if any.

参数

No parameters.

返回值

Returns TRUE if successful, FALSE if the entry had no metadata. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

错误／异常

Throws PharException if errors occurred while flushing changes to disk, and BadMethodCallException if write access is disabled.

范例

Example #1 A PharFileInfo::delMetaData() example

<?php
try {
    $a = new Phar('myphar.phar');
    $a['hi'] = 'hi';
    var_dump($a['hi']->delMetadata());
    $a['hi']->setMetadata('there');
    var_dump($a['hi']->delMetadata());
    var_dump($a['hi']->delMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

上例将输出：

bool(false)
bool(true)
bool(false)

参见

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data

PharFileInfo::decompress
PharFileInfo::getCRC32
PharFileInfo


Returns CRC32 code or throws an exception if CRC has not been verified

PharFileInfo::delMetadata
PharFileInfo::getCompressedSize
PharFileInfo
PHP 手册

PharFileInfo::getCRC32

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified

说明

int PharFileInfo::getCRC32 ( void )

This returns the crc32() checksum of the file within the Phar archive.

返回值

The crc32() checksum of the file within the Phar archive.

错误／异常

Throws BadMethodCallException if the file has not yet had its CRC32 verified. This should be impossible with normal use, as the CRC is verified upon opening the file for reading or writing.

范例

Example #1 A PharFileInfo::getCRC32() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCRC32();
} catch (Exception $e) {
    echo 'Write operations on my.phar.phar failed: ', $e;
}
?>

上例将输出：

3633523372

PharFileInfo::delMetadata
PharFileInfo::getCompressedSize
PharFileInfo


Returns the actual size of the file (with compression) inside the Phar archive

PharFileInfo::getCRC32
PharFileInfo::getMetaData
PharFileInfo
PHP 手册

PharFileInfo::getCompressedSize

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive

说明

int PharFileInfo::getCompressedSize ( void )

This returns the size of the file within the Phar archive. Uncompressed files will return the same value for getCompressedSize as they will with filesize()

返回值

The size in bytes of the file within the Phar archive on disk.

范例

Example #1 A PharFileInfo::getCompressedSize() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCompressedSize();
} catch (Exception $e) {
    echo 'Write operations failed on my.phar: ', $e;
}
?>

上例将输出：

2

参见

  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive

PharFileInfo::getCRC32
PharFileInfo::getMetaData
PharFileInfo


Returns file-specific meta-data saved with a file

PharFileInfo::getCompressedSize
PharFileInfo::getPharFlags
PharFileInfo
PHP 手册

PharFileInfo::getMetaData

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getMetaData — Returns file-specific meta-data saved with a file

说明

mixed PharFileInfo::getMetaData ( void )

Return meta-data that was saved in the Phar archive's manifest for this file.

参数

返回值

any PHP variable that can be serialized and is stored as meta-data for the file, or NULL if no meta-data is stored.

范例

Example #1 A PharFileInfo::getMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetaData(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
    echo 'Could not create/modify brandnewphar.phar: ', $e;
}
?>

上例将输出：

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

参见

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data

PharFileInfo::getCompressedSize
PharFileInfo::getPharFlags
PharFileInfo


Returns the Phar file entry flags

PharFileInfo::getMetaData
PharFileInfo::hasMetadata
PharFileInfo
PHP 手册

PharFileInfo::getPharFlags

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Returns the Phar file entry flags

说明

int PharFileInfo::getPharFlags ( void )

This returns the flags set in the manifest for a Phar. This will always return 0 in the current implementation.

返回值

The Phar flags (always 0 in the current implementation)

范例

Example #1 A PharFileInfo::getPharFlags() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->getPharFlags());
} catch (Exception $e) {
    echo 'Could not create/modify my.phar: ', $e;
}
?>

上例将输出：

int(0)

PharFileInfo::getMetaData
PharFileInfo::hasMetadata
PharFileInfo


Returns the metadata of the entry

PharFileInfo::getPharFlags
PharFileInfo::isCRCChecked
PharFileInfo
PHP 手册

PharFileInfo::hasMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Returns the metadata of the entry

说明

bool PharFileInfo::hasMetadata ( void )

Returns the metadata of a file within a phar archive.

参数

No parameters.

返回值

Returns FALSE if no metadata is set or is NULL, TRUE if metadata is not NULL

参见

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data

PharFileInfo::getPharFlags
PharFileInfo::isCRCChecked
PharFileInfo


Returns whether file entry has had its CRC verified

PharFileInfo::hasMetadata
PharFileInfo::isCompressed
PharFileInfo
PHP 手册

PharFileInfo::isCRCChecked

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified

说明

bool PharFileInfo::isCRCChecked ( void )

This returns whether a file within a Phar archive has had its CRC verified.

返回值

TRUE if the file has had its CRC verified, FALSE if not.

范例

Example #1 A PharFileInfo::isCRCChecked() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCRCChecked());
} catch (Exception $e) {
    echo 'Create/modify operations failed on my.phar: ', $e;
}
?>

上例将输出：

bool(true)

PharFileInfo::hasMetadata
PharFileInfo::isCompressed
PharFileInfo


Returns whether the entry is compressed

PharFileInfo::isCRCChecked
PharFileInfo::isCompressedBZIP2
PharFileInfo
PHP 手册

PharFileInfo::isCompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Returns whether the entry is compressed

说明

bool PharFileInfo::isCompressed ([ int $compression_type=9021976 ] )

This returns whether a file is compressed within a Phar archive with either Gzip or Bzip2 compression.

参数

compression_type

One of Phar::GZ or Phar::BZ2, defaults to any compression.

返回值

TRUE if the file is compressed within the Phar archive, FALSE if not.

范例

Example #1 A PharFileInfo::isCompressed() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    var_dump($file->isCompressed());
    var_dump($file2->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

上例将输出：

bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive

PharFileInfo::isCRCChecked
PharFileInfo::isCompressedBZIP2
PharFileInfo


Returns whether the entry is compressed using bzip2

PharFileInfo::isCompressed
PharFileInfo::isCompressedGZ
PharFileInfo
PHP 手册

PharFileInfo::isCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedBZIP2 — Returns whether the entry is compressed using bzip2

说明

bool PharFileInfo::isCompressedBZIP2 ( void )

Note: This method has been removed from the phar extension as of version 2.0.0. Alternative implementations are available using PharFileInfo::isCompressed(), PharFileInfo::decompress(), and PharFileInfo::compress().

This returns whether a file is compressed within a Phar archive with Bzip2 compression.

返回值

TRUE if the file is compressed within the Phar archive using Bzip2, FALSE if not.

范例

Example #1 A PharFileInfo::isCompressedBZIP2() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedBZIP2());
    var_dump($file2->isCompressedBZIP2());
    var_dump($file3->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

上例将输出：

bool(false)
bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

PharFileInfo::isCompressed
PharFileInfo::isCompressedGZ
PharFileInfo


Returns whether the entry is compressed using gz

PharFileInfo::isCompressedBZIP2
PharFileInfo::setCompressedBZIP2
PharFileInfo
PHP 手册

PharFileInfo::isCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedGZ — Returns whether the entry is compressed using gz

说明

bool PharFileInfo::isCompressedGZ ( void )

Note: This method has been removed from the phar extension as of version 2.0.0. Alternative implementations are available using PharFileInfo::isCompressed(), PharFileInfo::decompress(), and PharFileInfo::compress().

This returns whether a file is compressed within a Phar archive with Gzip compression.

返回值

TRUE if the file is compressed within the Phar archive using Gzip, FALSE if not.

范例

Example #1 A PharFileInfo::isCompressedGZ() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedGZ());
    var_dump($file2->isCompressedGZ());
    var_dump($file3->isCompressedGZ());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

上例将输出：

bool(false)
bool(true)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

PharFileInfo::isCompressedBZIP2
PharFileInfo::setCompressedBZIP2
PharFileInfo


Compresses the current Phar entry within the phar using Bzip2 compression

PharFileInfo::isCompressedGZ
PharFileInfo::setCompressedGZ
PharFileInfo
PHP 手册

PharFileInfo::setCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedBZIP2 — Compresses the current Phar entry within the phar using Bzip2 compression

说明

bool PharFileInfo::setCompressedBZIP2 ( void )

Note: This method has been removed from the phar extension as of version 2.0.0. Alternative implementations are available using PharFileInfo::isCompressed(), PharFileInfo::decompress(), and PharFileInfo::compress().

This method compresses the file inside the Phar archive using bzip2 compression. The bzip2 extension must be enabled to take advantage of this feature. In addition, if the file is already compressed using gzip compression, the zlib extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2 extension is not available.

范例

Example #1 A PharFileInfo::setCompressedBZIP2() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedBZIP2());
    $p['myfile.txt']->setCompressedBZIP2();
    var_dump($file->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

上例将输出：

bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

PharFileInfo::isCompressedGZ
PharFileInfo::setCompressedGZ
PharFileInfo


Compresses the current Phar entry within the phar using gz compression

PharFileInfo::setCompressedBZIP2
PharFileInfo::setMetaData
PharFileInfo
PHP 手册

PharFileInfo::setCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedGZ — Compresses the current Phar entry within the phar using gz compression

说明

bool PharFileInfo::setCompressedGZ ( void )

Note: This method has been removed from the phar extension as of version 2.0.0. Alternative implementations are available using PharFileInfo::isCompressed(), PharFileInfo::decompress(), and PharFileInfo::compress().

This method compresses the file inside the Phar archive using gzip compression. The zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed using bzip2 compression, the bzip2 extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the zlib extension is not available.

范例

Example #1 A PharFileInfo::setCompressedGZ() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedGZ());
    $p['myfile.txt']->setCompressedGZ();
    var_dump($file->isCompressedGZ());
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

上例将输出：

bool(false)
bool(true)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

PharFileInfo::setCompressedBZIP2
PharFileInfo::setMetaData
PharFileInfo


Sets file-specific meta-data saved with a file

PharFileInfo::setCompressedGZ
PharFileInfo::setUncompressed
PharFileInfo
PHP 手册

PharFileInfo::setMetaData

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setMetaData — Sets file-specific meta-data saved with a file

说明

void PharFileInfo::setMetaData ( mixed $metadata )

PharFileInfo::setMetaData() should only be used to store customized data in a file that cannot be represented with existing information stored with a file. Meta-data can significantly slow down the performance of loading a phar archive if the data is large, or if there are many files containing meta-data. It is important to note that file permissions are natively supported inside a phar; it is possible to set them with the PharFileInfo::chmod() method. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Some possible uses for meta-data include passing a user/group that should be set when a file is extracted from the phar to disk. Other uses could include explicitly specifying a MIME type to return. However, any useful data that describes a file, but should not be contained inside of it may be stored.

参数

metadata

Any PHP variable containing information to store alongside a file

范例

Example #1 A PharFileInfo::setMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetaData(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

上例将输出：

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

参见

  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data

PharFileInfo::setCompressedGZ
PharFileInfo::setUncompressed
PharFileInfo


Uncompresses the current Phar entry within the phar, if it is compressed

PharFileInfo::setMetaData
PharException
PharFileInfo
PHP 手册

PharFileInfo::setUncompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setUncompressed — Uncompresses the current Phar entry within the phar, if it is compressed

说明

bool PharFileInfo::setUncompressed ( void )

Note: This method has been removed from the phar extension as of version 2.0.0. Alternative implementations are available using PharFileInfo::isCompressed(), PharFileInfo::decompress(), and PharFileInfo::compress().

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

错误／异常

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

范例

Example #1 A PharFileInfo::setUncompressed() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->setCompressedGZ();
    var_dump($file->isCompressed());
    $p['myfile.txt']->setUncompressed();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify failed for my.phar: ', $e;
}
?>

上例将输出：

bool(true)
bool(false)

参见

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive

PharFileInfo::setMetaData
PharException
PharFileInfo


The PharException class

简介

The PharException class provides a phar-specific exception class for try/catch blocks.

Class synopsis

PharException
PharException extends Exception {
/* Properties */
}

Table of Contents

  • PharException — The PharException class provides a phar-specific exception class for try/catch blocks.
PharFileInfo::setUncompressed
PharException
Phar


The PharException class provides a phar-specific exception class for try/catch blocks.

PharException
Rar
PharException
PHP 手册

PharException

(Unknown)

PharException — The PharException class provides a phar-specific exception class for try/catch blocks.

说明

PharException
Rar
PharException
PHP 手册


Rar Archiving

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Rar 函数
    • rar_close — Close Rar archive and free all resources
    • rar_entry_get — Get entry object from the Rar archive
    • Rar::extract — Extract entry from the archive
    • Rar::getAttr — Get attributes of the entry
    • Rar::getCrc — Get CRC of the entry
    • Rar::getFileTime — Get entry last modification time
    • Rar::getHostOs — Get entry host OS
    • Rar::getMethod — Get pack method of the entry
    • Rar::getName — Get name of the entry
    • Rar::getPackedSize — Get packed size of the entry
    • Rar::getUnpackedSize — Get unpacked size of the entry
    • Rar::getVersion — Get version of the archiver used to add the entry
    • rar_list — Get entries list from the Rar archive
    • rar_open — Open Rar archive
PharException
简介
压缩与归档扩展


简介

Rar is a powerful and effective archiver created by Eugene Roshal. This extension gives you possibility to read Rar archives but doesn't support writing Rar archives, because this is not supported by UnRar library and is directly prohibited by it's license.

More information about Rar and UnRar can be found at » http://www.rarlabs.com/.

Rar
安装/配置
Rar


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Rar


安装

Rar is currently available through PECL » http://pecl.php.net/package/rar.

Also you can use the PECL installer to install the Rar extension, using the following command: pecl -v install rar.

You can always download the tar.gz package and install Rar by hand:

Example #1 Rar installation

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Windows users will enable php_rar.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


资源类型

There is one resource used in Rar extension: a file descriptor returned by rar_open().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

RAR_HOST_MSDOS (integer)
RAR_HOST_OS2 (integer)
RAR_HOST_WIN32 (integer)
RAR_HOST_UNIX (integer)
RAR_HOST_BEOS (integer)
资源类型
范例
Rar


范例

Example #1 Rar extension overview example

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
    echo 'Filename: ' . $entry->getName() . "\n";
    echo 'Packed size: ' . $entry->getPackedSize() . "\n";
    echo 'Unpacked size: ' . $entry->getUnpackedSize() . "\n";

    $entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

This example opens a Rar file archive and extracts each entry to the specified directory.

预定义常量
Rar 函数
Rar


Rar 函数

Table of Contents

  • rar_close — Close Rar archive and free all resources
  • rar_entry_get — Get entry object from the Rar archive
  • Rar::extract — Extract entry from the archive
  • Rar::getAttr — Get attributes of the entry
  • Rar::getCrc — Get CRC of the entry
  • Rar::getFileTime — Get entry last modification time
  • Rar::getHostOs — Get entry host OS
  • Rar::getMethod — Get pack method of the entry
  • Rar::getName — Get name of the entry
  • Rar::getPackedSize — Get packed size of the entry
  • Rar::getUnpackedSize — Get unpacked size of the entry
  • Rar::getVersion — Get version of the archiver used to add the entry
  • rar_list — Get entries list from the Rar archive
  • rar_open — Open Rar archive
范例
rar_close
Rar


Close Rar archive and free all resources

Rar 函数
rar_entry_get
Rar 函数
PHP 手册

rar_close

(PECL rar >= 0.1)

rar_close — Close Rar archive and free all resources

说明

bool rar_close ( resource $rar_file )

Close Rar archive and free all allocated resources.

参数

rar_file

A Rar file resource, opened with rar_open().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Rar 函数
rar_entry_get
Rar 函数


Get entry object from the Rar archive

rar_close
Rar::extract
Rar 函数
PHP 手册

rar_entry_get

(PECL rar >= 0.1)

rar_entry_get — Get entry object from the Rar archive

说明

RarEntry rar_entry_get ( resource $rar_file , string $entry_name )

Get entry object from the Rar archive.

参数

rar_file

A Rar file resource, opened with rar_open().

entry_name

Path to the entry within the Rar archive.

返回值

rar_entry_get() returns entry object or FALSE on error.

范例

Example #1 rar_entry_get() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

print_r($entry);

?>

rar_close
Rar::extract
Rar 函数


Extract entry from the archive

rar_entry_get
Rar::getAttr
Rar 函数
PHP 手册

Rar::extract

(PECL rar >= 0.1)

Rar::extract — Extract entry from the archive

说明

Rar
bool extract ( string $dir [, string $filepath ] )

Rar::extract() extracts entry's data to the dir . It will create new file in the specified dir with the name identical to the entry's name.

参数

dir

Path to the directory where files should be extracted.

filepath

If parameter filepath is specified instead dir , Rar::extract() will extract entry's data to the specified file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Rar::extract() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

$entry->extract('/dir/to'); // create /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // create /dir/to/new_name.txt

?>

Example #2 How to extract all files in archive:

<?php

/* example by Erik Jenssen aka erix */

$filename = "foobar.rar";
$filepath = "/home/foo/bar/";

$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
    $entry = rar_entry_get($rar_file, $file);
    $entry->extract("."); // extract to the current dir
}
rar_close($rar_file);

?>

rar_entry_get
Rar::getAttr
Rar 函数


Get attributes of the entry

Rar::extract
Rar::getCrc
Rar 函数
PHP 手册

Rar::getAttr

(PECL rar >= 0.1)

Rar::getAttr — Get attributes of the entry

说明

Rar
int getAttr ( void )

Rar::getAttr() returns attributes of the archive entry.

返回值

Returns the attributes or FALSE on error.

范例

Example #1 Rar::getAttr() example

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entry = rar_entry_get($rar_file, 'dir/in/the/archive') or die("Can't find such entry");

$host_os = $entry->getHostOs();
$attr = $entry->getAttr();

switch($host_os) {
    case RAR_HOST_MSDOS:
    case RAR_HOST_OS2:
    case RAR_HOST_WIN32:
    case RAR_HOST_MACOS:
        printf("%c%c%c%c%c%c\n",
                ($attr & 0x08) ? 'V' : '.',
                ($attr & 0x10) ? 'D' : '.',
                ($attr & 0x01) ? 'R' : '.',
                ($attr & 0x02) ? 'H' : '.',
                ($attr & 0x04) ? 'S' : '.',
                ($attr & 0x20) ? 'A' : '.');
        break;
    case RAR_HOST_UNIX:
    case RAR_HOST_BEOS:
        switch ($attr & 0xF000)
        {
            case 0x4000:
                printf("d");
                break;
            case 0xA000:
                printf("l");
                break;
            default:
                printf("-");
                break;
        }
        printf("%c%c%c%c%c%c%c%c%c\n",
                ($attr & 0x0100) ? 'r' : '-',
                ($attr & 0x0080) ? 'w' : '-',
                ($attr & 0x0040) ? (($attr & 0x0800) ? 's':'x'):(($attr & 0x0800) ? 'S':'-'),
                ($attr & 0x0020) ? 'r' : '-',
                ($attr & 0x0010) ? 'w' : '-',
                ($attr & 0x0008) ? (($attr & 0x0400) ? 's':'x'):(($attr & 0x0400) ? 'S':'-'),
                ($attr & 0x0004) ? 'r' : '-',
                ($attr & 0x0002) ? 'w' : '-',
                ($attr & 0x0001) ? 'x' : '-');
        break;
}

rar_close($rar_file);

?>

参见

  • Rar::getHostOs

Rar::extract
Rar::getCrc
Rar 函数


Get CRC of the entry

Rar::getAttr
Rar::getFileTime
Rar 函数
PHP 手册

Rar::getCrc

(PECL rar >= 0.1)

Rar::getCrc — Get CRC of the entry

说明

Rar
int getCrc ( void )

Rar::getCrc() returns CRC of the archive entry.

返回值

Returns the CRC of the archive entry or FALSE on error.

Rar::getAttr
Rar::getFileTime
Rar 函数


Get entry last modification time

Rar::getCrc
Rar::getHostOs
Rar 函数
PHP 手册

Rar::getFileTime

(PECL rar >= 0.1)

Rar::getFileTime — Get entry last modification time

说明

Rar
string getFileTime ( void )

Gets entry last modification time.

返回值

Returns entry last modification time as string in format YYYY-MM-DD HH:II:SS, or FALSE on error.

Rar::getCrc
Rar::getHostOs
Rar 函数


Get entry host OS

Rar::getFileTime
Rar::getMethod
Rar 函数
PHP 手册

Rar::getHostOs

(PECL rar >= 0.1)

Rar::getHostOs — Get entry host OS

说明

Rar
int getHostOs ( void )

Rar::getHostOs() return code of the host OS of the archive entry.

返回值

Returns the code of the host OS, or FALSE on error.

范例

Example #1 Rar::getHostOs() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

switch ($entry->getHostOs()) {
    case RAR_HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RAR_HOST_OS2:
        echo "OS2\n";
        break;
    case RAR_HOST_WIN32:
        echo "Win32\n";
        break;
    case RAR_HOST_MACOS:
        echo "MacOS\n";
        break;
    case RAR_HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RAR_HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Rar::getFileTime
Rar::getMethod
Rar 函数


Get pack method of the entry

Rar::getHostOs
Rar::getName
Rar 函数
PHP 手册

Rar::getMethod

(PECL rar >= 0.1)

Rar::getMethod — Get pack method of the entry

说明

Rar
int getMethod ( void )

Rar::getMethod() returns number of the method used when adding current archive entry.

返回值

Returns the method number or FALSE on error.

范例

Example #1 Rar::getMethod() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Method number: " . $entry->getMethod();

?>

Rar::getHostOs
Rar::getName
Rar 函数


Get name of the entry

Rar::getMethod
Rar::getPackedSize
Rar 函数
PHP 手册

Rar::getName

(PECL rar >= 0.1)

Rar::getName — Get name of the entry

说明

Rar
string getName ( void )

Rar::getName() returns full name of the archive entry.

返回值

Returns the entry name as a string, or FALSE on error.

范例

Example #1 Rar::getName() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Entry name: " . $entry->getName();

?>

Rar::getMethod
Rar::getPackedSize
Rar 函数


Get packed size of the entry

Rar::getName
Rar::getUnpackedSize
Rar 函数
PHP 手册

Rar::getPackedSize

(PECL rar >= 0.1)

Rar::getPackedSize — Get packed size of the entry

说明

Rar
int getPackedSize ( void )

Get packed size of the archive entry.

返回值

Returns the packed size, or FALSE on error.

范例

Example #1 Rar::getPackedSize() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Packed size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>

Rar::getName
Rar::getUnpackedSize
Rar 函数


Get unpacked size of the entry

Rar::getPackedSize
Rar::getVersion
Rar 函数
PHP 手册

Rar::getUnpackedSize

(PECL rar >= 0.1)

Rar::getUnpackedSize — Get unpacked size of the entry

说明

Rar
int getUnpackedSize ( void )

Get unpacked size of the archive entry.

返回值

Returns the unpacked size, or FALSE on error.

返回值

Example #1 Rar::getUnpackedSize() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Unpacked size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>

Rar::getPackedSize
Rar::getVersion
Rar 函数


Get version of the archiver used to add the entry

Rar::getUnpackedSize
rar_list
Rar 函数
PHP 手册

Rar::getVersion

(PECL rar >= 0.1)

Rar::getVersion — Get version of the archiver used to add the entry

说明

Rar
int getVersion ( void )

Get version of the archiver used to add the archive entry.

返回值

Returns the version or FALSE on error.

范例

Example #1 Rar::getVersion() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Rar (WinRAR) version used: " . $entry->getVersion();

?>

Rar::getUnpackedSize
rar_list
Rar 函数


Get entries list from the Rar archive

Rar::getVersion
rar_open
Rar 函数
PHP 手册

rar_list

(PECL rar >= 0.1)

rar_list — Get entries list from the Rar archive

说明

array rar_list ( resource $rar_file )

Get entries list from the Rar archive.

参数

rar_file

A Rar file resource, opened with rar_open().

返回值

rar_list() returns array of entries or FALSE on error.

范例

Example #1 rar_list() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entries_list = rar_list($rar_file);

print_r($entries_list);

?>

Rar::getVersion
rar_open
Rar 函数


Open Rar archive

rar_list
Zip
Rar 函数
PHP 手册

rar_open

(PECL rar >= 0.1)

rar_open — Open Rar archive

说明

resource rar_open ( string $filename [, string $password ] )

Open specified Rar archive and return Rar file resource.

参数

filename

Path to the Rar archive.

password

A plain password, if needed.

返回值

rar_open() returns Rar file resource or FALSE on error.

rar_list
Zip
Rar 函数


Zip

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Zip 函数
    • zip_close — Close a ZIP file archive
    • zip_entry_close — Close a directory entry
    • zip_entry_compressedsize — Retrieve the compressed size of a directory entry
    • zip_entry_compressionmethod — Retrieve the compression method of a directory entry
    • zip_entry_filesize — Retrieve the actual file size of a directory entry
    • zip_entry_name — Retrieve the name of a directory entry
    • zip_entry_open — Open a directory entry for reading
    • zip_entry_read — Read from an open directory entry
    • zip_open — Open a ZIP file archive
    • zip_read — Read next entry in a ZIP file archive
    • ZipArchive::addEmptyDir — Add a new directory
    • ZipArchive::addFile — Adds a file to a ZIP archive from the given path
    • ZipArchive::addFromString — Add a file to a ZIP archive using its contents
    • ZipArchive::close — Close the active archive (opened or newly created)
    • ZipArchive::deleteIndex — delete an entry in the archive using its index
    • ZipArchive::deleteName — delete an entry in the archive using its name
    • ZipArchive::extractTo — Extract the archive contents
    • ZipArchive::getArchiveComment — Returns the Zip archive comment
    • ZipArchive::getCommentIndex — Returns the comment of an entry using the entry index
    • ZipArchive::getCommentName — Returns the comment of an entry using the entry name
    • ZipArchive::getFromIndex — Returns the entry contents using its index.
    • ZipArchive::getFromName — Returns the entry contents using its name.
    • ZipArchive::getNameIndex — Returns the name of an entry using its index
    • ZipArchive::getStream — Get a file handler to the entry defined by its name (read only).
    • ZipArchive::locateName — Returns the index of the entry in the archive
    • ZipArchive::open — Open a ZIP file archive
    • ZipArchive::renameIndex — Renames an entry defined by its index
    • ZipArchive::renameName — Renames an entry defined by its name
    • ZipArchive::setArchiveComment — Set the comment of a ZIP archive
    • ZipArchive::setCommentIndex — Set the comment of an entry defined by its index
    • ZipArchive::setCommentName — Set the comment of an entry defined by its name
    • ZipArchive::statIndex — Get the details of an entry defined by its index.
    • ZipArchive::statName — Get the details of an entry defined by its name.
    • ZipArchive::unchangeAll — Undo all changes done in the archive.
    • ZipArchive::unchangeArchive — Revert all global changes done in the archive.
    • ZipArchive::unchangeIndex — Revert all changes done to an entry at the given index.
    • ZipArchive::unchangeName — Revert all changes done to an entry with the given name.
rar_open
简介
压缩与归档扩展


简介

This extension enables you to transparently read or write ZIP compressed archives and the files inside them.

Zip
安装/配置
Zip


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Zip


需求

PHP 4

The bundled PHP 4 version requires » ZZIPlib, by Guido Draheim, version 0.10.6 or later

PHP 5.2.0 or later

This extension uses the functions of » zlib by Jean-loup Gailly and Mark Adler.

安装/配置
安装
安装/配置


安装

PHP 4

Note: Zip support before PHP 4.1.0 is experimental.

Warning

Because the PHP 4 zip extension is unmaintained we recommend that the PECL extension is used rather than the bundled one.

Linux systems

In order to use these functions you must compile PHP with zip support by using the --with-zip[=DIR] configure option, where [DIR] is the prefix of the » ZZIPlib library install.

Windows

Windows users need to enable php_zip.dll inside of php.ini in order to use these functions.

PHP 5.2.0 and later

Linux systems

In order to use these functions you must compile PHP with zip support by using the --enable-zip configure option.

Windows

Windows users need to enable php_zip.dll inside of php.ini in order to use these functions.

Installation via PECL

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/zip.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

在 PHP 4 中本 DLL 位于 PHP Windows 执行包中的 extensions/ 目录下。

需求
运行时配置
安装/配置


资源类型

There are two resource types used in the Zip module. The first one is the Zip directory for the Zip archive, the second Zip Entry for the archive entries.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

ZipArchive uses class constants. There is three types of constants, Flags (FL_) errors (ER_) or mode (no prefix).

ZIPARCHIVE::CREATE (integer)
Create the archive if it does not exist.
ZIPARCHIVE::OVERWRITE (integer)
Always start a new archive, this mode will overwrite the file if it already exists.
ZIPARCHIVE::EXCL (integer)
Error if archive already exists.
ZIPARCHIVE::CHECKCONS (integer)
Perform additional consistency checks on the archive, and error if they fail.
ZIPARCHIVE::FL_NOCASE (integer)
Ignore case on name lookup
ZIPARCHIVE::FL_NODIR (integer)
Ignore directory component
ZIPARCHIVE::FL_COMPRESSED (integer)
Read compressed data
ZIPARCHIVE::FL_UNCHANGED (integer)
Use original data, ignoring changes.
ZIPARCHIVE::CM_DEFAULT (integer)
better of deflate or store.
ZIPARCHIVE::CM_STORE (integer)
stored (uncompressed).
ZIPARCHIVE::CM_SHRINK (integer)
shrunk
ZIPARCHIVE::CM_REDUCE_1 (integer)
reduced with factor 1
ZIPARCHIVE::CM_REDUCE_2 (integer)
reduced with factor 2
ZIPARCHIVE::CM_REDUCE_3 (integer)
reduced with factor 3
ZIPARCHIVE::CM_REDUCE_4 (integer)
reduced with factor 4
ZIPARCHIVE::CM_IMPLODE (integer)
imploded
ZIPARCHIVE::CM_DEFLATE (integer)
deflated
ZIPARCHIVE::CM_DEFLATE64 (integer)
deflate64
ZIPARCHIVE::CM_PKWARE_IMPLODE (integer)
PKWARE imploding
ZIPARCHIVE::CM_BZIP2 (integer)
BZIP2 algorithm
ZIPARCHIVE::ER_OK (integer)
No error.
ZIPARCHIVE::ER_MULTIDISK (integer)
Multi-disk zip archives not supported.
ZIPARCHIVE::ER_RENAME (integer)
Renaming temporary file failed.
ZIPARCHIVE::ER_CLOSE (integer)
Closing zip archive failed
ZIPARCHIVE::ER_SEEK (integer)
Seek error
ZIPARCHIVE::ER_READ (integer)
Read error
ZIPARCHIVE::ER_WRITE (integer)
Write error
ZIPARCHIVE::ER_CRC (integer)
CRC error
ZIPARCHIVE::ER_ZIPCLOSED (integer)
Containing zip archive was closed
ZIPARCHIVE::ER_NOENT (integer)
No such file.
ZIPARCHIVE::ER_EXISTS (integer)
File already exists
ZIPARCHIVE::ER_OPEN (integer)
Can't open file
ZIPARCHIVE::ER_TMPOPEN (integer)
Failure to create temporary file.
ZIPARCHIVE::ER_ZLIB (integer)
Zlib error
ZIPARCHIVE::ER_MEMORY (integer)
Memory allocation failure
ZIPARCHIVE::ER_CHANGED (string)
Entry has been changed
ZIPARCHIVE::ER_COMPNOTSUPP (integer)
Compression method not supported.
ZIPARCHIVE::ER_EOF (integer)
Premature EOF
ZIPARCHIVE::ER_INVAL (integer)
Invalid argument
ZIPARCHIVE::ER_NOZIP (integer)
Not a zip archive
ZIPARCHIVE::ER_INTERNAL (integer)
Internal error
ZIPARCHIVE::ER_INCONS (integer)
Zip archive inconsistent
ZIPARCHIVE::ER_REMOVE (integer)
Can't remove file
ZIPARCHIVE::ER_DELETED (integer)
Entry has been deleted
资源类型
范例
Zip


范例

Example #1 Create a Zip archive

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
    exit("cannot open <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>

Example #2 Dump the archive details and listing

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status  . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index: $i\n";
    print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?>

Example #3 Zip stream wrapper, read an OpenOffice meta info

<?php
$reader = new XMLReader();

$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
    if ($reader->nodeType == XMLREADER::ELEMENT) {
        $elm = $reader->name;
    } else {
        if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
            break;
        }
        if (!trim($reader->value)) {
            continue;
        }
        $odt_meta[$elm] = $reader->value;
    }
}
print_r($odt_meta);
?>

This example uses the old API (PHP 4), it opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.

Example #4 Zip Usage Example

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}
?>
预定义常量
Zip 函数
Zip


Zip 函数

Table of Contents

  • zip_close — Close a ZIP file archive
  • zip_entry_close — Close a directory entry
  • zip_entry_compressedsize — Retrieve the compressed size of a directory entry
  • zip_entry_compressionmethod — Retrieve the compression method of a directory entry
  • zip_entry_filesize — Retrieve the actual file size of a directory entry
  • zip_entry_name — Retrieve the name of a directory entry
  • zip_entry_open — Open a directory entry for reading
  • zip_entry_read — Read from an open directory entry
  • zip_open — Open a ZIP file archive
  • zip_read — Read next entry in a ZIP file archive
  • ZipArchive::addEmptyDir — Add a new directory
  • ZipArchive::addFile — Adds a file to a ZIP archive from the given path
  • ZipArchive::addFromString — Add a file to a ZIP archive using its contents
  • ZipArchive::close — Close the active archive (opened or newly created)
  • ZipArchive::deleteIndex — delete an entry in the archive using its index
  • ZipArchive::deleteName — delete an entry in the archive using its name
  • ZipArchive::extractTo — Extract the archive contents
  • ZipArchive::getArchiveComment — Returns the Zip archive comment
  • ZipArchive::getCommentIndex — Returns the comment of an entry using the entry index
  • ZipArchive::getCommentName — Returns the comment of an entry using the entry name
  • ZipArchive::getFromIndex — Returns the entry contents using its index.
  • ZipArchive::getFromName — Returns the entry contents using its name.
  • ZipArchive::getNameIndex — Returns the name of an entry using its index
  • ZipArchive::getStream — Get a file handler to the entry defined by its name (read only).
  • ZipArchive::locateName — Returns the index of the entry in the archive
  • ZipArchive::open — Open a ZIP file archive
  • ZipArchive::renameIndex — Renames an entry defined by its index
  • ZipArchive::renameName — Renames an entry defined by its name
  • ZipArchive::setArchiveComment — Set the comment of a ZIP archive
  • ZipArchive::setCommentIndex — Set the comment of an entry defined by its index
  • ZipArchive::setCommentName — Set the comment of an entry defined by its name
  • ZipArchive::statIndex — Get the details of an entry defined by its index.
  • ZipArchive::statName — Get the details of an entry defined by its name.
  • ZipArchive::unchangeAll — Undo all changes done in the archive.
  • ZipArchive::unchangeArchive — Revert all global changes done in the archive.
  • ZipArchive::unchangeIndex — Revert all changes done to an entry at the given index.
  • ZipArchive::unchangeName — Revert all changes done to an entry with the given name.
范例
zip_close
Zip


Close a ZIP file archive

Zip 函数
zip_entry_close
Zip 函数
PHP 手册

zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_close — Close a ZIP file archive

说明

void zip_close ( resource $zip )

Closes the given ZIP file archive.

参数

zip

A ZIP file previously opened with zip_open().

返回值

无返回值。

参见

  • zip_open() - Open a ZIP file archive
  • zip_read() - Read next entry in a ZIP file archive

Zip 函数
zip_entry_close
Zip 函数


Close a directory entry

zip_close
zip_entry_compressedsize
Zip 函数
PHP 手册

zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_close — Close a directory entry

说明

bool zip_entry_close ( resource $zip_entry )

Closes the specified directory entry.

参数

zip_entry

A directory entry previously opened zip_entry_open().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • zip_entry_open() - Open a directory entry for reading
  • zip_entry_read() - Read from an open directory entry

zip_close
zip_entry_compressedsize
Zip 函数


Retrieve the compressed size of a directory entry

zip_entry_close
zip_entry_compressionmethod
Zip 函数
PHP 手册

zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_compressedsize — Retrieve the compressed size of a directory entry

说明

int zip_entry_compressedsize ( resource $zip_entry )

Returns the compressed size of the specified directory entry.

参数

zip_entry

A directory entry returned by zip_read().

返回值

The compressed size.

参见

  • zip_open() - Open a ZIP file archive
  • zip_read() - Read next entry in a ZIP file archive

zip_entry_close
zip_entry_compressionmethod
Zip 函数


Retrieve the compression method of a directory entry

zip_entry_compressedsize
zip_entry_filesize
Zip 函数
PHP 手册

zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Retrieve the compression method of a directory entry

说明

string zip_entry_compressionmethod ( resource $zip_entry )

Returns the compression method of the directory entry specified by zip_entry .

参数

zip_entry

A directory entry returned by zip_read().

返回值

The compression method.

参见

  • zip_open() - Open a ZIP file archive
  • zip_read() - Read next entry in a ZIP file archive

zip_entry_compressedsize
zip_entry_filesize
Zip 函数


Retrieve the actual file size of a directory entry

zip_entry_compressionmethod
zip_entry_name
Zip 函数
PHP 手册

zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_filesize — Retrieve the actual file size of a directory entry

说明

int zip_entry_filesize ( resource $zip_entry )

Returns the actual size of the specified directory entry.

参数

zip_entry

A directory entry returned by zip_read().

返回值

The size of the directory entry.

参见

  • zip_open() - Open a ZIP file archive
  • zip_read() - Read next entry in a ZIP file archive

zip_entry_compressionmethod
zip_entry_name
Zip 函数


Retrieve the name of a directory entry

zip_entry_filesize
zip_entry_open
Zip 函数
PHP 手册

zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_name — Retrieve the name of a directory entry

说明

string zip_entry_name ( resource $zip_entry )

Returns the name of the specified directory entry.

参数

zip_entry

A directory entry returned by zip_read().

返回值

The name of the directory entry.

参见

  • zip_open() - Open a ZIP file archive
  • zip_read() - Read next entry in a ZIP file archive

zip_entry_filesize
zip_entry_open
Zip 函数


Open a directory entry for reading

zip_entry_name
zip_entry_read
Zip 函数
PHP 手册

zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_open — Open a directory entry for reading

说明

bool zip_entry_open ( resource $zip , resource $zip_entry [, string $mode ] )

Opens a directory entry in a zip file for reading.

参数

zip

A valid resource handle returned by zip_open().

zip_entry

A directory entry returned by zip_read().

mode

Any of the modes specified in the documentation of fopen().

Note: Currently, mode is ignored and is always "rb". This is due to the fact that zip support in PHP is read only access.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Note: Unlike fopen() and other similar functions, the return value of zip_entry_open() only indicates the result of the operation and is not needed for reading or closing the directory entry.

参见

  • zip_entry_close() - Close a directory entry
  • zip_entry_read() - Read from an open directory entry

zip_entry_name
zip_entry_read
Zip 函数


Read from an open directory entry

zip_entry_open
zip_open
Zip 函数
PHP 手册

zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_entry_read — Read from an open directory entry

说明

string zip_entry_read ( resource $zip_entry [, int $length ] )

Reads from an open directory entry.

参数

zip_entry

A directory entry returned by zip_read().

length

The number of bytes to return. If not specified, this function will attempt to read 1024 bytes.

Note: This should be the uncompressed length you wish to read.

返回值

Returns the data read, or FALSE if the end of the file is reached.

参见

  • zip_entry_open() - Open a directory entry for reading
  • zip_entry_close() - Close a directory entry
  • zip_entry_filesize() - Retrieve the actual file size of a directory entry

zip_entry_open
zip_open
Zip 函数


Open a ZIP file archive

zip_entry_read
zip_read
Zip 函数
PHP 手册

zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_open — Open a ZIP file archive

说明

mixed zip_open ( string $filename )

Opens a new zip archive for reading.

参数

filename

The file name of the ZIP archive to open.

返回值

Returns a resource handle for later use with zip_read() and zip_close() or returns the number of error if filename does not exist or in case of other error.

参见

  • zip_read() - Read next entry in a ZIP file archive
  • zip_close() - Close a ZIP file archive

zip_entry_read
zip_read
Zip 函数


Read next entry in a ZIP file archive

zip_open
ZipArchive::addEmptyDir
Zip 函数
PHP 手册

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)

zip_read — Read next entry in a ZIP file archive

说明

mixed zip_read ( resource $zip )

Reads the next entry in a zip file archive.

参数

zip

A ZIP file previously opened with zip_open().

返回值

Returns a directory entry resource for later use with the zip_entry_... functions or FALSE if there's no more entries to read or number of error in case of other error.

参见

  • zip_open() - Open a ZIP file archive
  • zip_close() - Close a ZIP file archive
  • zip_entry_open() - Open a directory entry for reading
  • zip_entry_read() - Read from an open directory entry

zip_open
ZipArchive::addEmptyDir
Zip 函数


Add a new directory

zip_read
ZipArchive::addFile
Zip 函数
PHP 手册

ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Add a new directory

说明

bool ZipArchive::addEmptyDir ( string $dirname )

Adds an empty directory in the archive.

参数

dirname

The directory to add.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Create a new directory in an archive

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        echo 'Created a new root directory';
    } else {
        echo 'Could not create the directory';
    }
    $zip->close();
} else {
    echo 'failed';
}
?>
zip_read
ZipArchive::addFile
Zip 函数


Adds a file to a ZIP archive from the given path

ZipArchive::addEmptyDir
ZipArchive::addFromString
Zip 函数
PHP 手册

ZipArchive::addFile

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::addFile — Adds a file to a ZIP archive from the given path

说明

bool ZipArchive::addFile ( string $filename [, string $localname ] )

Adds a file to a ZIP archive from a given path

参数

filename

The path to the file to add.

localname

local name inside ZIP archive.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

This example opens a ZIP file archive test.zip and add the file /path/to/index.txt. as newname.txt.

Example #1 Open and extract

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/path/to/index.txt', 'newname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::addEmptyDir
ZipArchive::addFromString
Zip 函数


Add a file to a ZIP archive using its contents

ZipArchive::addFile
ZipArchive::close
Zip 函数
PHP 手册

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::addFromString — Add a file to a ZIP archive using its contents

说明

bool ZipArchive::addFromString ( string $localname , string $contents )

Add a file to a ZIP archive using its contents.

参数

localname

The name of the entry to create.

contents

The contents to use to create the entry. It is used in a binary safe mode.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Add an entry to a new archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Example #2 Add file to a directory inside an archive

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFromString('dir/test.txt', 'file content goes here');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::addFile
ZipArchive::close
Zip 函数


Close the active archive (opened or newly created)

ZipArchive::addFromString
ZipArchive::deleteIndex
Zip 函数
PHP 手册

ZipArchive::close

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::close — Close the active archive (opened or newly created)

说明

bool ZipArchive::close ( void )

Close opened or created archive and save changes. This method is automatically called at the end of the script.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ZipArchive::addFromString
ZipArchive::deleteIndex
Zip 函数


delete an entry in the archive using its index

ZipArchive::close
ZipArchive::deleteName
Zip 函数
PHP 手册

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — delete an entry in the archive using its index

说明

bool ZipArchive::deleteIndex ( int $index )

Delete an entry in the archive using its index.

参数

index

Index of the entry to delete.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Delete file from archive using its index

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->deleteIndex(2);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::close
ZipArchive::deleteName
Zip 函数


delete an entry in the archive using its name

ZipArchive::deleteIndex
ZipArchive::extractTo
Zip 函数
PHP 手册

ZipArchive::deleteName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::deleteName — delete an entry in the archive using its name

说明

bool ZipArchive::deleteName ( string $name )

Delete an entry in the archive using its name.

参数

name

Name of the entry to delete.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Delete file from archive using its name

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    $zip->deleteName('testfromfile.php');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::deleteIndex
ZipArchive::extractTo
Zip 函数


Extract the archive contents

ZipArchive::deleteName
ZipArchive::getArchiveComment
Zip 函数
PHP 手册

ZipArchive::extractTo

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::extractTo — Extract the archive contents

说明

bool ZipArchive::extractTo ( string $destination [, mixed $entries ] )

Extract the complete archive or the given files to the specified destination.

参数

destination

Location where to extract the files.

entries

The entries to extract. It accepts either a single entry name or an array of names.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

This example opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.

Example #1 Extract all entries

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Example #2 Extract only two entries

<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::deleteName
ZipArchive::getArchiveComment
Zip 函数


Returns the Zip archive comment

ZipArchive::extractTo
ZipArchive::getCommentIndex
Zip 函数
PHP 手册

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Returns the Zip archive comment

说明

string ZipArchive::getArchiveComment ( void )

Returns the Zip archive comment.

返回值

Returns the Zip archive comment or FALSE on failure.

范例

Example #1 Dump an archive comment

<?php
$zip = new ZipArchive;
$res = $zip->open('test_with_comment.zip')
if ($res === TRUE) {
    var_dump($zip->getArchiveComment());
    /* Or using the archive property */
    var_dump($zip->comment);
} else {
    echo 'failed, code:' . $res;
}
?>
ZipArchive::extractTo
ZipArchive::getCommentIndex
Zip 函数


Returns the comment of an entry using the entry index

ZipArchive::getArchiveComment
ZipArchive::getCommentName
Zip 函数
PHP 手册

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Returns the comment of an entry using the entry index

说明

string ZipArchive::getCommentIndex ( int $index [, int $flags ] )

Returns the comment of an entry using the entry index.

参数

index

Index of the entry

flags

If flags is set to ZIPARCHIVE::FL_UNCHANGED, the original unchanged comment is returned.

返回值

Returns the comment on success or FALSE on failure.

范例

Example #1 Dump an entry comment

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip')
if ($res === TRUE) {
    var_dump($zip->getCommentIndex(1));
} else {
    echo 'failed, code:' . $res;
}
?>
ZipArchive::getArchiveComment
ZipArchive::getCommentName
Zip 函数


Returns the comment of an entry using the entry name

ZipArchive::getCommentIndex
ZipArchive::getFromIndex
Zip 函数
PHP 手册

ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Returns the comment of an entry using the entry name

说明

string ZipArchive::getCommentName ( string $name [, int $flags ] )

Returns the comment of an entry using the entry name.

参数

name

Name of the entry

flags

If flags is set to ZIPARCHIVE::FL_UNCHANGED, the original unchanged comment is returned.

返回值

Returns the comment on success or FALSE on failure.

范例

Example #1 Dump an entry comment

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip')
if ($res === TRUE) {
    var_dump($zip->getCommentName('test/entry1.txt'));
} else {
    echo 'failed, code:' . $res;
}
?>
ZipArchive::getCommentIndex
ZipArchive::getFromIndex
Zip 函数


Returns the entry contents using its index.

ZipArchive::getCommentName
ZipArchive::getFromName
Zip 函数
PHP 手册

ZipArchive::getFromIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.3.0)

ZipArchive::getFromIndex — Returns the entry contents using its index.

说明

mixed ZipArchive::getFromIndex ( int $index [, int $flags ] )

Returns the entry contents using its index.

参数

index

Index of the entry

flags

The flags to use to open the archive. the following values may be ORed to it.

  • ZIPARCHIVE::FL_UNCHANGED

  • ZIPARCHIVE::FL_COMPRESSED

返回值

Returns the contents of the entry on success or FALSE on failure.

范例

Example #1 Get the file contents

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    echo $zip->getFromIndex(2);
    $zip->close();
} else {
    echo 'failed';
}
?>
ZipArchive::getCommentName
ZipArchive::getFromName
Zip 函数


Returns the entry contents using its name.

ZipArchive::getFromIndex
ZipArchive::getNameIndex
Zip 函数
PHP 手册

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::getFromName — Returns the entry contents using its name.

说明

mixed ZipArchive::getFromName ( string $name [, int $flags ] )

Returns the entry contents using its name.

参数

name

Name of the entry

flags

The flags to use to open the archive. the following values may be ORed to it.

  • ZIPARCHIVE::FL_UNCHANGED

  • ZIPARCHIVE::FL_COMPRESSED

返回值

Returns the contents of the entry on success or FALSE on failure.

范例

Example #1 Get the file contents

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    echo $zip->getFromName('testfromfile.php');
    $zip->close();
} else {
    echo 'failed';
}
?>

Example #2 Convert an image from a zip entry

<?php
$z = new ZipArchive();
if ($z->open(dirname(__FILE__) . '/test_im.zip')) {
    $im_string = $z->getFromName("pear_item.gif");
    $im = imagecreatefromstring($im_string);
    imagepng($im, 'b.png');
}
?>
ZipArchive::getFromIndex
ZipArchive::getNameIndex
Zip 函数


Returns the name of an entry using its index

ZipArchive::getFromName
ZipArchive::getStream
Zip 函数
PHP 手册

ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Returns the name of an entry using its index

说明

string ZipArchive::getNameIndex ( int $index )

Returns the name of an entry using its index.

参数

index

Index of the entry.

返回值

Returns the name on success or FALSE on failure.

ZipArchive::getFromName
ZipArchive::getStream
Zip 函数


Get a file handler to the entry defined by its name (read only).

ZipArchive::getNameIndex
ZipArchive::locateName
Zip 函数
PHP 手册

ZipArchive::getStream

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::getStream — Get a file handler to the entry defined by its name (read only).

说明

resource ZipArchive::getStream ( string $name )

Get a file handler to the entry defined by its name. For now it only supports read operations.

参数

name

The name of the entry to use.

返回值

Returns a file pointer (resource) on success or FALSE on failure.

范例

Example #1 Get the entry contents with fread and store it.

<?php
$content = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
    $fp = $z->getStream('test');
    if(!$fp) exit("failed\n");

    while (!feof($fp)) {
        $contents .= fread($fp, 2);
    }

    fclose($fp);
    file_put_contents('t',$contents);
    echo "done.\n";
}
?>

Example #2 Same as the previous example but with fopen and the zip stream wrapper

<?php
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
    exit("cannot open\n");
}
while (!feof($fp)) {
    $contents .= fread($fp, 2);
    echo "$contents\n";
}
fclose($fp);
echo "done.\n";
?>

Example #3 Stream wrapper and image, can be used with the xml function as well

<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>
ZipArchive::getNameIndex
ZipArchive::locateName
Zip 函数


Returns the index of the entry in the archive

ZipArchive::getStream
ZipArchive::open
Zip 函数
PHP 手册

ZipArchive::locateName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::locateName — Returns the index of the entry in the archive

说明

mixed ZipArchive::locateName ( string $name [, int $flags ] )

Locates an entry using its name.

参数

name

The name of the entry to look up

flags

The function returns the index of the file named fname in archive. The flags are specified by ORing the following values, or 0 for none of them.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

返回值

Returns the index of the entry on success or FALSE on failure.

范例

Example #1 Create an archive and then use it with locateName

<?php
$file = 'testlocate.zip';

$zip = new ZipArchive;
if ($zip->open($file, ZIPARCHIVE::CREATE) !== TRUE) {
    exit('failed');
}

$zip->addFromString('entry1.txt', 'entry #1');
$zip->addFromString('entry2.txt', 'entry #2');
$zip->addFromString('dir/entry2d.txt', 'entry #2');

if (!$zip->status == ZIPARCHIVE::ER_OK) {
    echo "failed to write zip\n";
}
$zip->close();

if ($zip->open($file) !== TRUE) {
    exit('failed');
}

echo $zip->locateName('entry1.txt') . "\n";
echo $zip->locateName('eNtry2.txt') . "\n";
echo $zip->locateName('eNtry2.txt', ZIPARCHIVE::FL_NOCASE) . "\n";
echo $zip->locateName('enTRy2d.txt', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR) . "\n";
$zip->close();

?>
ZipArchive::getStream
ZipArchive::open
Zip 函数


Open a ZIP file archive

ZipArchive::locateName
ZipArchive::renameIndex
Zip 函数
PHP 手册

ZipArchive::open

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::open — Open a ZIP file archive

说明

mixed ZipArchive::open ( string $filename [, int $flags ] )

Opens a new zip archive for reading, writing or modifying.

参数

filename

The file name of the ZIP archive to open.

flags

The mode to use to open the archive.

  • ZIPARCHIVE::OVERWRITE

  • ZIPARCHIVE::CREATE

  • ZIPARCHIVE::EXCL

  • ZIPARCHIVE::CHECKCONS

返回值

Error codes

Returns TRUE on success or the error code.

  • ZIPARCHIVE::ER_EXISTS

  • ZIPARCHIVE::ER_INCONS

  • ZIPARCHIVE::ER_INVAL

  • ZIPARCHIVE::ER_MEMORY

  • ZIPARCHIVE::ER_NOENT

  • ZIPARCHIVE::ER_NOZIP

  • ZIPARCHIVE::ER_OPEN

  • ZIPARCHIVE::ER_READ

  • ZIPARCHIVE::ER_SEEK

范例

This example opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.

Example #1 Open and extract

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>

Example #2 Create an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::locateName
ZipArchive::renameIndex
Zip 函数


Renames an entry defined by its index

ZipArchive::open
ZipArchive::renameName
Zip 函数
PHP 手册

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Renames an entry defined by its index

说明

bool ZipArchive::renameIndex ( int $index , string $newname )

Renames an entry defined by its index.

参数

index

Index of the entry to rename.

newname

New name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Rename one entry

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip')
if ($res === TRUE) {
    $zip->renameIndex(2,'newname.txt');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>
ZipArchive::open
ZipArchive::renameName
Zip 函数


Renames an entry defined by its name

ZipArchive::renameIndex
ZipArchive::setArchiveComment
Zip 函数
PHP 手册

ZipArchive::renameName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::renameName — Renames an entry defined by its name

说明

bool ZipArchive::renameName ( string $name , string $newname )

Renames an entry defined by its name.

参数

name

Name of the entry to rename.

newname

New name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Rename one entry

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameName('currentname.txt','newname.txt');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>
ZipArchive::renameIndex
ZipArchive::setArchiveComment
Zip 函数


Set the comment of a ZIP archive

ZipArchive::renameName
ZipArchive::setCommentIndex
Zip 函数
PHP 手册

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Set the comment of a ZIP archive

说明

mixed ZipArchive::setArchiveComment ( string $comment )

Set the comment of a ZIP archive.

参数

comment

The contents of the comment.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Create an archive and set a comment

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->setArchiveComment('new archive comment');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::renameName
ZipArchive::setCommentIndex
Zip 函数


Set the comment of an entry defined by its index

ZipArchive::setArchiveComment
ZipArchive::setCommentName
Zip 函数
PHP 手册

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Set the comment of an entry defined by its index

说明

mixed ZipArchive::setCommentIndex ( int $index , string $comment )

Set the comment of an entry defined by its index.

参数

index

Index of the entry.

comment

The contents of the comment.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Open an archive and set a comment for an entry

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentIndex(2, 'new entry comment');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::setArchiveComment
ZipArchive::setCommentName
Zip 函数


Set the comment of an entry defined by its name

ZipArchive::setCommentIndex
ZipArchive::statIndex
Zip 函数
PHP 手册

ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Set the comment of an entry defined by its name

说明

mixed ZipArchive::setCommentName ( string $name , string $comment )

Set the comment of an entry defined by its name.

参数

name

Name of the entry.

comment

The contents of the comment.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Open an archive and set a comment for an entry

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentName('entry1.txt', 'new entry comment');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
ZipArchive::setCommentIndex
ZipArchive::statIndex
Zip 函数


Get the details of an entry defined by its index.

ZipArchive::setCommentName
ZipArchive::statName
Zip 函数
PHP 手册

ZipArchive::statIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::statIndex — Get the details of an entry defined by its index.

说明

mixed ZipArchive::statIndex ( int $index [, int $flags ] )

The function obtains information about the entry defined by its index.

参数

index

Index of the entry

flags

ZIPARCHIVE::FL_UNCHANGED may be ORed to it to request information about the original file in the archive, ignoring any changes made.

返回值

Returns an array containing the entry details or FALSE on failure.

范例

Example #1 Dump the stat info of an entry

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip')
if ($res === TRUE) {
    print_r($zip->statIndex(3));
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>

上例的输出类似于：

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)
ZipArchive::setCommentName
ZipArchive::statName
Zip 函数


Get the details of an entry defined by its name.

ZipArchive::statIndex
ZipArchive::unchangeAll
Zip 函数
PHP 手册

ZipArchive::statName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::statName — Get the details of an entry defined by its name.

说明

mixed ZipArchive::statName ( name $name [, int $flags ] )

The function obtains information about the entry defined by its name.

参数

name

Name of the entry

flags

The flags argument specifies how the name lookup should be done. Also, ZIPARCHIVE::FL_UNCHANGED may be ORed to it to request information about the original file in the archive, ignoring any changes made.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

  • ZIPARCHIVE::FL_UNCHANGED

返回值

Returns an array containing the entry details or FALSE on failure.

范例

Example #1 Dump the stat info of an entry

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip')
if ($res === TRUE) {
    print_r($zip->statName('foobar/baz'));
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>

上例的输出类似于：

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)
ZipArchive::statIndex
ZipArchive::unchangeAll
Zip 函数


Undo all changes done in the archive.

ZipArchive::statName
ZipArchive::unchangeArchive
Zip 函数
PHP 手册

ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Undo all changes done in the archive.

说明

mixed ZipArchive::unchangeAll ( void )

Undo all changes done in the archive.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ZipArchive::statName
ZipArchive::unchangeArchive
Zip 函数


Revert all global changes done in the archive.

ZipArchive::unchangeAll
ZipArchive::unchangeIndex
Zip 函数
PHP 手册

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Revert all global changes done in the archive.

说明

mixed ZipArchive::unchangeArchive ( void )

Revert all global changes to the archive archive. For now, this only reverts archive comment changes.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ZipArchive::unchangeAll
ZipArchive::unchangeIndex
Zip 函数


Revert all changes done to an entry at the given index.

ZipArchive::unchangeArchive
ZipArchive::unchangeName
Zip 函数
PHP 手册

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Revert all changes done to an entry at the given index.

说明

mixed ZipArchive::unchangeIndex ( int $index )

Revert all changes done to an entry at the given index.

参数

index

Index of the entry.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ZipArchive::unchangeArchive
ZipArchive::unchangeName
Zip 函数


Revert all changes done to an entry with the given name.

ZipArchive::unchangeIndex
Zlib
Zip 函数
PHP 手册

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Revert all changes done to an entry with the given name.

说明

mixed ZipArchive::unchangeName ( string $name )

Revert all changes done to an entry.

参数

name

Name of the entry.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ZipArchive::unchangeIndex
Zlib
Zip 函数


Zlib Compression

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Zlib 函数
    • gzclose — Close an open gz-file pointer
    • gzcompress — Compress a string
    • gzdecode — Decodes a gzip compressed string
    • gzdeflate — Deflate a string
    • gzencode — Create a gzip compressed string
    • gzeof — Test for end-of-file on a gz-file pointer
    • gzfile — Read entire gz-file into an array
    • gzgetc — Get character from gz-file pointer
    • gzgets — Get line from file pointer
    • gzgetss — Get line from gz-file pointer and strip HTML tags
    • gzinflate — Inflate a deflated string
    • gzopen — Open gz-file
    • gzpassthru — Output all remaining data on a gz-file pointer
    • gzputs — 别名 gzwrite
    • gzread — Binary-safe gz-file read
    • gzrewind — Rewind the position of a gz-file pointer
    • gzseek — Seek on a gz-file pointer
    • gztell — Tell gz-file pointer read/write position
    • gzuncompress — Uncompress a compressed string
    • gzwrite — Binary-safe gz-file write
    • readgzfile — Output a gz-file
    • zlib_get_coding_type — Returns the coding type used for output compression
ZipArchive::unchangeName
简介
压缩与归档扩展


简介

This module enables you to transparently read and write gzip (.gz) compressed files, through versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).

Note: Version 4.0.4 introduced a fopen-wrapper for .gz-files, so that you can use a special zlib: URL to access compressed files transparently using the normal f*() file access functions if you prefix the filename or path with zlib: when calling fopen(). This feature requires a C runtime library that provides the fopencookie() function. Up to now the GNU libc seems to be the only library that provides this feature.
In PHP 4.3.0, zlib: has been changed to compress.zlib:// to prevent ambiguities with filenames containing ':' characters. The fopencookie() function is not longer required. More information is available in the section about 压缩流.

Zlib
安装/配置
Zlib


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Zlib


需求

This module uses the functions of » zlib by Jean-loup Gailly and Mark Adler. You have to use a zlib version >= 1.0.9 with this module.

安装/配置
安装
安装/配置


安装

Zlib support in PHP is not enabled by default. You will need to configure PHP --with-zlib[=DIR]

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

Note: Built-in support for zlib on Windows is available with PHP 4.3.0.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

The zlib extension offers the option to transparently compress your pages on-the-fly, if the requesting browser supports this. Therefore there are three options in the configuration file php.ini.

Zlib Configuration Options
Name | Default | Changeable | Changelog
zlib.output_compression | "0" | PHP_INI_ALL | Available since PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Available since PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Available since PHP 4.3.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

zlib.output_compression boolean/integer

Whether to transparently compress pages. If this option is set to "On" in php.ini or the Apache configuration, pages are compressed if the browser sends an "Accept-Encoding: gzip" or "deflate" header. "Content-Encoding: gzip" (respectively "deflate") and "Vary: Accept-Encoding" headers are added to the output. In runtime, it can be set only before sending any output.

This option also accepts integer values instead of boolean "On"/"Off", using this you can set the output buffer size (default is 4KB).

Note: output_handler must be empty if this is set 'On' ! Instead you must use zlib.output_handler.

zlib.output_compression_level integer

Compression level used for transparent output compression.

zlib.output_handler string

You cannot specify additional output handlers if zlib.output_compression is activated here. This setting does the same as output_handler but in a different order.

安装
资源类型
安装/配置


资源类型

This extension defines a file pointer resource returned by gzopen().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FORCE_GZIP (integer)
FORCE_DEFLATE (integer)
资源类型
范例
Zlib


范例

This example opens a temporary file and writes a test string to it, then it prints out the content of this file twice.

Example #1 Small Zlib Example

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";

// open file for writing with maximum compression
$zp = gzopen($filename, "w9");

// write string to file
gzwrite($zp, $s);

// close file
gzclose($zp);

// open file for reading
$zp = gzopen($filename, "r");

// read 3 char
echo gzread($zp, 3);

// output until end of the file and close it.
gzpassthru($zp);
gzclose($zp);

echo "\n";

// open file and print content (the 2nd time).
if (readgzfile($filename) != strlen($s)) {
        echo "Error with zlib functions!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>
预定义常量
Zlib 函数
Zlib


Zlib 函数

Table of Contents

  • gzclose — Close an open gz-file pointer
  • gzcompress — Compress a string
  • gzdecode — Decodes a gzip compressed string
  • gzdeflate — Deflate a string
  • gzencode — Create a gzip compressed string
  • gzeof — Test for end-of-file on a gz-file pointer
  • gzfile — Read entire gz-file into an array
  • gzgetc — Get character from gz-file pointer
  • gzgets — Get line from file pointer
  • gzgetss — Get line from gz-file pointer and strip HTML tags
  • gzinflate — Inflate a deflated string
  • gzopen — Open gz-file
  • gzpassthru — Output all remaining data on a gz-file pointer
  • gzputs — 别名 gzwrite
  • gzread — Binary-safe gz-file read
  • gzrewind — Rewind the position of a gz-file pointer
  • gzseek — Seek on a gz-file pointer
  • gztell — Tell gz-file pointer read/write position
  • gzuncompress — Uncompress a compressed string
  • gzwrite — Binary-safe gz-file write
  • readgzfile — Output a gz-file
  • zlib_get_coding_type — Returns the coding type used for output compression
范例
gzclose
Zlib


Close an open gz-file pointer

Zlib 函数
gzcompress
Zlib 函数
PHP 手册

gzclose

(PHP 4, PHP 5)

gzclose — Close an open gz-file pointer

说明

bool gzclose ( resource $zp )

Closes the given gz-file pointer.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 gzclose() example

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'I was added to somefile.gz');
gzclose($gz);
?>

参见

  • gzopen() - Open gz-file

Zlib 函数
gzcompress
Zlib 函数


Compress a string

gzclose
gzdecode
Zlib 函数
PHP 手册

gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompress — Compress a string

说明

string gzcompress ( string $data [, int $level=-1 ] )

This function compress the given string using the ZLIB data format.

For details on the ZLIB compression algorithm see the document "» ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Note: This is not the same as gzip compression, which includes some header data. See gzencode() for gzip compression.

参数

data

The data to compress.

level

The level of compression. Can be given as 0 for no compression up to 9 for maximum compression.

返回值

The compressed string or FALSE if an error occurred.

范例

Example #1 gzcompress() example

<?php
$compressed = gzcompress('Compress me', 9);
echo $compressed;
?>

参见

  • gzdeflate() - Deflate a string
  • gzinflate() - Inflate a deflated string
  • gzuncompress() - Uncompress a compressed string
  • gzencode() - Create a gzip compressed string

gzclose
gzdecode
Zlib 函数


Decodes a gzip compressed string

gzcompress
gzdeflate
Zlib 函数
PHP 手册

gzdecode

(PHP 6 >= 6.0.0)

gzdecode — Decodes a gzip compressed string

说明

string gzdecode ( string $data [, int $length ] )

This function returns a decoded version of the input data .

参数

data

The data to decode, encoded by gzencode().

length

The maximum length of data to decode.

返回值

The decoded string, or FALSE if an error occurred.

参见

  • gzencode() - Create a gzip compressed string

gzcompress
gzdeflate
Zlib 函数


Deflate a string

gzdecode
gzencode
Zlib 函数
PHP 手册

gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflate — Deflate a string

说明

string gzdeflate ( string $data [, int $level=-1 ] )

This function compress the given string using the DEFLATE data format.

For details on the DEFLATE compression algorithm see the document "» DEFLATE Compressed Data Format Specification version 1.3" (RFC 1951).

参数

data

The data to deflate.

level

The level of compression. Can be given as 0 for no compression up to 9 for maximum compression. If not given, the default compression level will be the default compression level of the zlib library.

返回值

The deflated string or FALSE if an error occurred.

范例

Example #1 gzdeflate() example

<?php
$compressed = gzdeflate('Compress me', 9);
echo $compressed;
?>

参见

  • gzinflate() - Inflate a deflated string
  • gzcompress() - Compress a string
  • gzuncompress() - Uncompress a compressed string
  • gzencode() - Create a gzip compressed string

gzdecode
gzencode
Zlib 函数


Create a gzip compressed string

gzdeflate
gzeof
Zlib 函数
PHP 手册

gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode — Create a gzip compressed string

说明

string gzencode ( string $data [, int $level=-1 [, int $encoding_mode=FORCE_GZIP ]] )

This function returns a compressed version of the input data compatible with the output of the gzip program.

For more information on the GZIP file format, see the document: » GZIP file format specification version 4.3 (RFC 1952).

参数

data

The data to encode.

level

The level of compression. Can be given as 0 for no compression up to 9 for maximum compression. If not given, the default compression level will be the default compression level of the zlib library.

encoding_mode

The encoding mode. Can be FORCE_GZIP (the default) or FORCE_DEFLATE.

If you use FORCE_DEFLATE, you get a standard zlib deflated string (inclusive zlib headers) after the gzip file header but without the trailing crc32 checksum.

返回值

The encoded string, or FALSE if an error occurred.

更新日志

版本 | 说明
4.2.0 | The encoding_mode parameter was added

范例

The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Example #1 Creating a gzip file

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

参见

  • gzdecode() - Decodes a gzip compressed string
  • gzdeflate() - Deflate a string
  • gzinflate() - Inflate a deflated string
  • gzuncompress() - Uncompress a compressed string
  • gzcompress() - Compress a string

gzdeflate
gzeof
Zlib 函数


Test for end-of-file on a gz-file pointer

gzencode
gzfile
Zlib 函数
PHP 手册

gzeof

(PHP 4, PHP 5)

gzeof — Test for end-of-file on a gz-file pointer

说明

int gzeof ( resource $zp )

Tests the given GZ file pointer for EOF (end-of-file).

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

返回值

Returns TRUE if the gz-file pointer is at EOF or an error occurs; otherwise returns FALSE.

范例

Example #1 gzeof() example

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>

gzencode
gzfile
Zlib 函数


Read entire gz-file into an array

gzeof
gzgetc
Zlib 函数
PHP 手册

gzfile

(PHP 4, PHP 5)

gzfile — Read entire gz-file into an array

说明

array gzfile ( string $filename [, int $use_include_path=0 ] )

This function is identical to readgzfile(), except that it returns the file in an array.

参数

filename

The file name.

use_include_path

You can set this optional parameter to 1, if you want to search for the file in the include_path too.

返回值

An array containing the file, one line per cell.

范例

Example #1 gzfile() example

<?php
$lines = gzfile('somefile.gz');
foreach ($lines as $line) {
    echo $line;
}
?>

参见

  • readgzfile() - Output a gz-file
  • gzopen() - Open gz-file

gzeof
gzgetc
Zlib 函数


Get character from gz-file pointer

gzfile
gzgets
Zlib 函数
PHP 手册

gzgetc

(PHP 4, PHP 5)

gzgetc — Get character from gz-file pointer

说明

string gzgetc ( resource $zp )

Returns a string containing a single (uncompressed) character read from the given gz-file pointer.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

返回值

The uncompressed character or FALSE on EOF (unlike gzeof()).

范例

Example #1 gzgetc() example

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>

参见

  • gzopen() - Open gz-file
  • gzgets() - Get line from file pointer

gzfile
gzgets
Zlib 函数


Get line from file pointer

gzgetc
gzgetss
Zlib 函数
PHP 手册

gzgets

(PHP 4, PHP 5)

gzgets — Get line from file pointer

说明

string gzgets ( resource $zp , int $length )

Gets a (uncompressed) string of up to length - 1 bytes read from the given file pointer. Reading ends when length - 1 bytes have been read, on a newline, or on EOF (whichever comes first).

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

length

The length of data to get.

返回值

The uncompressed string, or FALSE on error.

范例

Example #1 gzgets() example

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgets($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

参见

  • gzopen() - Open gz-file
  • gzgetc() - Get character from gz-file pointer
  • gzwrite() - Binary-safe gz-file write

gzgetc
gzgetss
Zlib 函数


Get line from gz-file pointer and strip HTML tags

gzgets
gzinflate
Zlib 函数
PHP 手册

gzgetss

(PHP 4, PHP 5)

gzgetss — Get line from gz-file pointer and strip HTML tags

说明

string gzgetss ( resource $zp , int $length [, string $allowable_tags ] )

Identical to gzgets(), except that gzgetss() attempts to strip any HTML and PHP tags from the text it reads.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

length

The length of data to get.

allowable_tags

You can use this optional parameter to specify tags which should not be stripped.

返回值

The uncompressed and striped string, or FALSE on error.

更新日志

版本 | 说明
4.0.0 | allowable_tags was added.

范例

Example #1 gzgetss() example

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgetss($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

参见

  • gzopen() - Open gz-file
  • gzgets() - Get line from file pointer
  • strip_tags() - Strip HTML and PHP tags from a string

gzgets
gzinflate
Zlib 函数


Inflate a deflated string

gzgetss
gzopen
Zlib 函数
PHP 手册

gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflate — Inflate a deflated string

说明

string gzinflate ( string $data [, int $length=0 ] )

This function inflate a deflated string.

参数

data

The data compressed by gzdeflate().

length

The maximum length of data to decode.

返回值

The original uncompressed data or FALSE on error.

The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length .

范例

Example #1 gzinflate() example

<?php
$compressed   = gzdeflate('Compress me', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

参见

  • gzdeflate() - Deflate a string
  • gzcompress() - Compress a string
  • gzuncompress() - Uncompress a compressed string
  • gzencode() - Create a gzip compressed string

gzgetss
gzopen
Zlib 函数


Open gz-file

gzinflate
gzpassthru
Zlib 函数
PHP 手册

gzopen

(PHP 4, PHP 5)

gzopen — Open gz-file

说明

resource gzopen ( string $filename , string $mode [, int $use_include_path=0 ] )

Opens a gzip (.gz) file for reading or writing.

gzopen() can be used to read a file which is not in gzip format; in this case gzread() will directly read from the file without decompression.

参数

filename

The file name.

mode

As in fopen() (rb or wb) but can also include a compression level (wb9) or a strategy: f for filtered data as in wb6f, h for Huffman only compression as in wb1h. (See the description of deflateInit2 in zlib.h for more information about the strategy parameter.)

use_include_path

You can set this optional parameter to 1, if you want to search for the file in the include_path too.

返回值

Returns a file pointer to the file opened, after that, everything you read from this file descriptor will be transparently decompressed and what you write gets compressed.

If the open fails, the function returns FALSE.

范例

Example #1 gzopen() Example

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

参见

  • gzclose() - Close an open gz-file pointer

gzinflate
gzpassthru
Zlib 函数


Output all remaining data on a gz-file pointer

gzopen
gzputs
Zlib 函数
PHP 手册

gzpassthru

(PHP 4, PHP 5)

gzpassthru — Output all remaining data on a gz-file pointer

说明

int gzpassthru ( resource $zp )

Reads to EOF on the given gz-file pointer from the current position and writes the (uncompressed) results to standard output.

Note: You may need to call gzrewind() to reset the file pointer to the beginning of the file if you have already written data to it.

Tip

If you just want to dump the contents of a file to the output buffer, without first modifying it or seeking to a particular offset, you may want to use the readgzfile() function, which saves you the gzopen() call.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

返回值

The number of uncompressed characters read from gz and passed through to the input, or FALSE on error.

范例

Example #1 gzpassthru() example

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>

gzopen
gzputs
Zlib 函数


别名 gzwrite

gzpassthru
gzread
Zlib 函数
PHP 手册

gzputs

(PHP 4, PHP 5)

gzputs — 别名 gzwrite()

说明

本函数是该函数的别名： gzwrite().

gzpassthru
gzread
Zlib 函数


Binary-safe gz-file read

gzputs
gzrewind
Zlib 函数
PHP 手册

gzread

(PHP 4, PHP 5)

gzread — Binary-safe gz-file read

说明

string gzread ( resource $zp , int $length )

gzread() reads up to length bytes from the given gz-file pointer. Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

length

The number of bytes to read.

返回值

The data that have been read.

范例

Example #1 gzread() example

<?php
// get contents of a gz-file into a string
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

参见

  • gzwrite() - Binary-safe gz-file write
  • gzopen() - Open gz-file
  • gzgets() - Get line from file pointer
  • gzgetss() - Get line from gz-file pointer and strip HTML tags
  • gzfile() - Read entire gz-file into an array
  • gzpassthru() - Output all remaining data on a gz-file pointer

gzputs
gzrewind
Zlib 函数


Rewind the position of a gz-file pointer

gzread
gzseek
Zlib 函数
PHP 手册

gzrewind

(PHP 4, PHP 5)

gzrewind — Rewind the position of a gz-file pointer

说明

bool gzrewind ( resource $zp )

Sets the file position indicator of the given gz-file pointer to the beginning of the file stream.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • gzseek() - Seek on a gz-file pointer
  • gztell() - Tell gz-file pointer read/write position

gzread
gzseek
Zlib 函数


Seek on a gz-file pointer

gzrewind
gztell
Zlib 函数
PHP 手册

gzseek

(PHP 4, PHP 5)

gzseek — Seek on a gz-file pointer

说明

int gzseek ( resource $zp , int $offset [, int $whence=SEEK_SET ] )

Sets the file position indicator for the given file pointer to the given offset byte into the file stream. Equivalent to calling (in C) gzseek(zp, offset, SEEK_SET).

If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek() then compresses a sequence of zeroes up to the new starting position.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

offset

The seeked offset.

whence

whence values are:

  • SEEK_SET - Set position equal to offset bytes.
  • SEEK_CUR - Set position to current location plus offset .

If whence is not specified, it is assumed to be SEEK_SET.

返回值

Upon success, returns 0; otherwise, returns -1. Note that seeking past EOF is not considered an error.

范例

Example #1 gzseek() example

<?php
$gz = gzopen('somefile.gz', 'r');
gzseek($gz,2);
echo gzgetc($gz);
gzclose($gz);
?>

参见

  • gztell() - Tell gz-file pointer read/write position
  • gzrewind() - Rewind the position of a gz-file pointer

gzrewind
gztell
Zlib 函数


Tell gz-file pointer read/write position

gzseek
gzuncompress
Zlib 函数
PHP 手册

gztell

(PHP 4, PHP 5)

gztell — Tell gz-file pointer read/write position

说明

int gztell ( resource $zp )

Gets the position of the given file pointer; i.e., its offset into the uncompressed file stream.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

返回值

The position of the file pointer or FALSE if an error occurs.

参见

  • gzopen() - Open gz-file
  • gzseek() - Seek on a gz-file pointer
  • gzrewind() - Rewind the position of a gz-file pointer

gzseek
gzuncompress
Zlib 函数


Uncompress a compressed string

gztell
gzwrite
Zlib 函数
PHP 手册

gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress — Uncompress a compressed string

说明

string gzuncompress ( string $data [, int $length=0 ] )

This function uncompress a compressed string.

参数

data

The data compressed by gzcompress().

length

The maximum length of data to decode.

返回值

The original uncompressed data or FALSE on error.

The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length .

范例

Example #1 gzuncompress() example

<?php
$compressed   = gzcompress('Compress me', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

参见

  • gzcompress() - Compress a string
  • gzinflate() - Inflate a deflated string
  • gzdeflate() - Deflate a string
  • gzencode() - Create a gzip compressed string

gztell
gzwrite
Zlib 函数


Binary-safe gz-file write

gzuncompress
readgzfile
Zlib 函数
PHP 手册

gzwrite

(PHP 4, PHP 5)

gzwrite — Binary-safe gz-file write

说明

int gzwrite ( resource $zp , string $string [, int $length ] )

gzwrite() writes the contents of string to the given gz-file.

参数

zp

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

string

The string to write.

length

The number of uncompressed bytes to write. If supplied, writing will stop after length (uncompressed) bytes have been written or the end of string is reached, whichever comes first.

Note: Note that if the length argument is given, then the magic_quotes_runtime configuration option will be ignored and no slashes will be stripped from string .

返回值

Returns the number of (uncompressed) bytes written to the given gz-file stream.

范例

Example #1 gzwrite() example

<?php
$string = 'Some information to compress';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

参见

  • gzread() - Binary-safe gz-file read
  • gzopen() - Open gz-file

gzuncompress
readgzfile
Zlib 函数


Output a gz-file

gzwrite
zlib_get_coding_type
Zlib 函数
PHP 手册

readgzfile

(PHP 4, PHP 5)

readgzfile — Output a gz-file

说明

int readgzfile ( string $filename [, int $use_include_path=0 ] )

Reads a file, decompresses it and writes it to standard output.

readgzfile() can be used to read a file which is not in gzip format; in this case readgzfile() will directly read from the file without decompression.

参数

filename

The file name. This file will be opened from the filesystem and its contents written to standard output.

use_include_path

You can set this optional parameter to 1, if you want to search for the file in the include_path too.

返回值

Returns the number of (uncompressed) bytes read from the file. If an error occurs, FALSE is returned and unless the function was called as @readgzfile, an error message is printed.

参见

  • gzpassthru() - Output all remaining data on a gz-file pointer
  • gzfile() - Read entire gz-file into an array
  • gzopen() - Open gz-file

gzwrite
zlib_get_coding_type
Zlib 函数


Returns the coding type used for output compression

readgzfile
信用卡处理
Zlib 函数
PHP 手册

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_type — Returns the coding type used for output compression

说明

string zlib_get_coding_type ( void )

Returns the coding type used for output compression.

返回值

Possible return values are gzip, deflate, or FALSE.

参见

  • The zlib.output_compression directive

readgzfile
信用卡处理
Zlib 函数


信用卡处理

  • MCVE — MCVE (Monetra) Payment
    • 简介
    • 安装/配置
    • 预定义常量
    • MCVE 函数
  • SPPLUS — SPPLUS Payment System
    • 简介
    • 安装/配置
    • 预定义常量
    • SPPLUS 函数
zlib_get_coding_type
MCVE
函数参考


MCVE (Monetra) Payment

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • MCVE 函数
    • m_checkstatus — Check to see if a transaction has completed
    • m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
    • m_connect — Establish the connection to MCVE
    • m_connectionerror — Get a textual representation of why a connection failed
    • m_deletetrans — Delete specified transaction from MCVE_CONN structure
    • m_destroyconn — Destroy the connection and MCVE_CONN structure
    • m_destroyengine — Free memory associated with IP/SSL connectivity
    • m_getcell — Get a specific cell from a comma delimited response by column name
    • m_getcellbynum — Get a specific cell from a comma delimited response by column number
    • m_getcommadelimited — Get the RAW comma delimited data returned from MCVE
    • m_getheader — Get the name of the column in a comma-delimited response
    • m_initconn — Create and initialize an MCVE_CONN structure
    • m_initengine — Ready the client for IP/SSL Communication
    • m_iscommadelimited — Checks to see if response is comma delimited
    • m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE
    • m_monitor — Perform communication with MCVE (send/receive data) Non-blocking
    • m_numcolumns — Number of columns returned in a comma delimited response
    • m_numrows — Number of rows returned in a comma delimited response
    • m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work
    • m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction
    • m_responseparam — Get a custom response parameter
    • m_returnstatus — Check to see if the transaction was successful
    • m_setblocking — Set blocking/non-blocking mode for connection
    • m_setdropfile — Set the connection method to Drop-File
    • m_setip — Set the connection method to IP
    • m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate
    • m_setssl_files — Set certificate key files and certificates if server requires client certificate verification
    • m_setssl — Set the connection method to SSL
    • m_settimeout — Set maximum transaction time (per trans)
    • m_sslcert_gen_hash — Generate hash for SSL client certificate verification
    • m_transactionssent — Check to see if outgoing buffer is clear
    • m_transinqueue — Number of transactions in client-queue
    • m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()
    • m_transnew — Start a new transaction
    • m_transsend — Finalize and send the transaction
    • m_uwait — Wait x microsecs
    • m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to
    • m_verifyconnection — Set whether or not to PING upon connect to verify connection
    • m_verifysslcert — Set whether or not to verify the server ssl certificate
信用卡处理
简介
信用卡处理


简介

These functions interface the MCVE (Monetra) API (libmonetra, formerly known as libmcve), allowing you to work directly with MCVE/Monetra from your PHP scripts. MCVE/Monetra is Main Street Softworks' solution to direct credit/debit/gift card processing for Linux/Unix/MacOSX/Windows ( » http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE/Monetra module for PHP, you can process credit cards directly through MCVE/Monetra via your PHP scripts. The following references will outline the process.

Note: MCVE/Monetra is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientele to the MCVE platform.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

Note: 本扩展模块在 Windows 平台下不可用。

MCVE
安装/配置
MCVE


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
MCVE


安装

To enable MCVE (Monetra) Support in PHP, first verify your LibMonetra (formerly libmcve) installation directory. If you are compiling MCVE/Monetra support directly into PHP, you will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your libmonetra installation, PHP will attempt to look in the default LibMonetra Install location (/usr/local). If Monetra (MCVE) is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE/Monetra installation. Please note that MCVE/Monetra support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h or monetra.h under the include directory and libmcve.so and/or libmcve.a and/or libmonetra.so and/or libmonetra.a under the lib directory.

If you want to install MCVE/Monetra support as a module, you can do so by using the PECL repository, and issuing the 'pecl install mcve' command if you are running a PEAR version of at least 1.4.0.

Since MCVE/Monetra has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE/Monetra extension in PHP, you may connect to testbox.monetra.com on port 8333 for IP, or port 8444 for SSL using the MCVE/Monetra PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at » http://www.mainstreetsoftworks.com/.

需求
运行时配置
安装/配置


资源类型

This extension defines a MCVE_CONN resource returned by m_initconn().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

M_PENDING (integer)
M_DONE (integer)
M_ERROR (integer)
M_FAIL (integer)
M_SUCCESS (integer)
资源类型
MCVE 函数
MCVE


MCVE 函数

参见

Additional documentation about MCVE/Monetra's PHP API can be found at » http://www.mainstreetsoftworks.com/documentation.html. Main Street's documentation is complete and should be the primary reference for functions.

Table of Contents

  • m_checkstatus — Check to see if a transaction has completed
  • m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
  • m_connect — Establish the connection to MCVE
  • m_connectionerror — Get a textual representation of why a connection failed
  • m_deletetrans — Delete specified transaction from MCVE_CONN structure
  • m_destroyconn — Destroy the connection and MCVE_CONN structure
  • m_destroyengine — Free memory associated with IP/SSL connectivity
  • m_getcell — Get a specific cell from a comma delimited response by column name
  • m_getcellbynum — Get a specific cell from a comma delimited response by column number
  • m_getcommadelimited — Get the RAW comma delimited data returned from MCVE
  • m_getheader — Get the name of the column in a comma-delimited response
  • m_initconn — Create and initialize an MCVE_CONN structure
  • m_initengine — Ready the client for IP/SSL Communication
  • m_iscommadelimited — Checks to see if response is comma delimited
  • m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE
  • m_monitor — Perform communication with MCVE (send/receive data) Non-blocking
  • m_numcolumns — Number of columns returned in a comma delimited response
  • m_numrows — Number of rows returned in a comma delimited response
  • m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work
  • m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction
  • m_responseparam — Get a custom response parameter
  • m_returnstatus — Check to see if the transaction was successful
  • m_setblocking — Set blocking/non-blocking mode for connection
  • m_setdropfile — Set the connection method to Drop-File
  • m_setip — Set the connection method to IP
  • m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate
  • m_setssl_files — Set certificate key files and certificates if server requires client certificate verification
  • m_setssl — Set the connection method to SSL
  • m_settimeout — Set maximum transaction time (per trans)
  • m_sslcert_gen_hash — Generate hash for SSL client certificate verification
  • m_transactionssent — Check to see if outgoing buffer is clear
  • m_transinqueue — Number of transactions in client-queue
  • m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()
  • m_transnew — Start a new transaction
  • m_transsend — Finalize and send the transaction
  • m_uwait — Wait x microsecs
  • m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to
  • m_verifyconnection — Set whether or not to PING upon connect to verify connection
  • m_verifysslcert — Set whether or not to verify the server ssl certificate
预定义常量
m_checkstatus
MCVE


Check to see if a transaction has completed

MCVE 函数
m_completeauthorizations
MCVE 函数
PHP 手册

m_checkstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_checkstatus — Check to see if a transaction has completed

说明

int m_checkstatus ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

MCVE 函数
m_completeauthorizations
MCVE 函数


Number of complete authorizations in queue, returning an array of their identifiers

m_checkstatus
m_connect
MCVE 函数
PHP 手册

m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers

说明

int m_completeauthorizations ( resource $conn , int &$array )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

array

Its description

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

m_checkstatus
m_connect
MCVE 函数


Establish the connection to MCVE

m_completeauthorizations
m_connectionerror
MCVE 函数
PHP 手册

m_connect

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connect — Establish the connection to MCVE

说明

int m_connect ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

m_completeauthorizations
m_connectionerror
MCVE 函数


Get a textual representation of why a connection failed

m_connect
m_deletetrans
MCVE 函数
PHP 手册

m_connectionerror

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connectionerror — Get a textual representation of why a connection failed

说明

string m_connectionerror ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

m_connect
m_deletetrans
MCVE 函数


Delete specified transaction from MCVE_CONN structure

m_connectionerror
m_destroyconn
MCVE 函数
PHP 手册

m_deletetrans

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_deletetrans — Delete specified transaction from MCVE_CONN structure

说明

bool m_deletetrans ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_connectionerror
m_destroyconn
MCVE 函数


Destroy the connection and MCVE_CONN structure

m_deletetrans
m_destroyengine
MCVE 函数
PHP 手册

m_destroyconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyconn — Destroy the connection and MCVE_CONN structure

说明

bool m_destroyconn ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

Returns TRUE.

参见

  • m_initconn() - Create and initialize an MCVE_CONN structure

m_deletetrans
m_destroyengine
MCVE 函数


Free memory associated with IP/SSL connectivity

m_destroyconn
m_getcell
MCVE 函数
PHP 手册

m_destroyengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyengine — Free memory associated with IP/SSL connectivity

说明

void m_destroyengine ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

无返回值。

m_destroyconn
m_getcell
MCVE 函数


Get a specific cell from a comma delimited response by column name

m_destroyengine
m_getcellbynum
MCVE 函数
PHP 手册

m_getcell

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcell — Get a specific cell from a comma delimited response by column name

说明

string m_getcell ( resource $conn , int $identifier , string $column , int $row )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

column

row

返回值

m_destroyengine
m_getcellbynum
MCVE 函数


Get a specific cell from a comma delimited response by column number

m_getcell
m_getcommadelimited
MCVE 函数
PHP 手册

m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcellbynum — Get a specific cell from a comma delimited response by column number

说明

string m_getcellbynum ( resource $conn , int $identifier , int $column , int $row )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

column

row

返回值

m_getcell
m_getcommadelimited
MCVE 函数


Get the RAW comma delimited data returned from MCVE

m_getcellbynum
m_getheader
MCVE 函数
PHP 手册

m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcommadelimited — Get the RAW comma delimited data returned from MCVE

说明

string m_getcommadelimited ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_getcellbynum
m_getheader
MCVE 函数


Get the name of the column in a comma-delimited response

m_getcommadelimited
m_initconn
MCVE 函数
PHP 手册

m_getheader

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getheader — Get the name of the column in a comma-delimited response

说明

string m_getheader ( resource $conn , int $identifier , int $column_num )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

column_num

返回值

m_getcommadelimited
m_initconn
MCVE 函数


Create and initialize an MCVE_CONN structure

m_getheader
m_initengine
MCVE 函数
PHP 手册

m_initconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initconn — Create and initialize an MCVE_CONN structure

说明

resource m_initconn ( void )
Warning

本函数暂无文档，仅有参数列表。

返回值

Returns an MCVE_CONN resource.

参见

  • m_destroyconn() - Destroy the connection and MCVE_CONN structure

m_getheader
m_initengine
MCVE 函数


Ready the client for IP/SSL Communication

m_initconn
m_iscommadelimited
MCVE 函数
PHP 手册

m_initengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initengine — Ready the client for IP/SSL Communication

说明

int m_initengine ( string $location )
Warning

本函数暂无文档，仅有参数列表。

参数

location

返回值

m_initconn
m_iscommadelimited
MCVE 函数


Checks to see if response is comma delimited

m_initengine
m_maxconntimeout
MCVE 函数
PHP 手册

m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_iscommadelimited — Checks to see if response is comma delimited

说明

int m_iscommadelimited ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_initengine
m_maxconntimeout
MCVE 函数


The maximum amount of time the API will attempt a connection to MCVE

m_iscommadelimited
m_monitor
MCVE 函数
PHP 手册

m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE

说明

bool m_maxconntimeout ( resource $conn , int $secs )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

secs

返回值

m_iscommadelimited
m_monitor
MCVE 函数


Perform communication with MCVE (send/receive data) Non-blocking

m_maxconntimeout
m_numcolumns
MCVE 函数
PHP 手册

m_monitor

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_monitor — Perform communication with MCVE (send/receive data) Non-blocking

说明

int m_monitor ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

m_maxconntimeout
m_numcolumns
MCVE 函数


Number of columns returned in a comma delimited response

m_monitor
m_numrows
MCVE 函数
PHP 手册

m_numcolumns

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numcolumns — Number of columns returned in a comma delimited response

说明

int m_numcolumns ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_monitor
m_numrows
MCVE 函数


Number of rows returned in a comma delimited response

m_numcolumns
m_parsecommadelimited
MCVE 函数
PHP 手册

m_numrows

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numrows — Number of rows returned in a comma delimited response

说明

int m_numrows ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_numcolumns
m_parsecommadelimited
MCVE 函数


Parse the comma delimited response so m_getcell, etc will work

m_numrows
m_responsekeys
MCVE 函数
PHP 手册

m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work

说明

int m_parsecommadelimited ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_numrows
m_responsekeys
MCVE 函数


Returns array of strings which represents the keys that can be used for response parameters on this transaction

m_parsecommadelimited
m_responseparam
MCVE 函数
PHP 手册

m_responsekeys

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction

说明

array m_responsekeys ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_parsecommadelimited
m_responseparam
MCVE 函数


Get a custom response parameter

m_responsekeys
m_returnstatus
MCVE 函数
PHP 手册

m_responseparam

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_responseparam — Get a custom response parameter

说明

string m_responseparam ( resource $conn , int $identifier , string $key )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

key

返回值

m_responsekeys
m_returnstatus
MCVE 函数


Check to see if the transaction was successful

m_responseparam
m_setblocking
MCVE 函数
PHP 手册

m_returnstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_returnstatus — Check to see if the transaction was successful

说明

int m_returnstatus ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_responseparam
m_setblocking
MCVE 函数


Set blocking/non-blocking mode for connection

m_returnstatus
m_setdropfile
MCVE 函数
PHP 手册

m_setblocking

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setblocking — Set blocking/non-blocking mode for connection

说明

int m_setblocking ( resource $conn , int $tf )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

tf

返回值

m_returnstatus
m_setdropfile
MCVE 函数


Set the connection method to Drop-File

m_setblocking
m_setip
MCVE 函数
PHP 手册

m_setdropfile

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setdropfile — Set the connection method to Drop-File

说明

int m_setdropfile ( resource $conn , string $directory )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

directory

返回值

m_setblocking
m_setip
MCVE 函数


Set the connection method to IP

m_setdropfile
m_setssl_cafile
MCVE 函数
PHP 手册

m_setip

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setip — Set the connection method to IP

说明

int m_setip ( resource $conn , string $host , int $port )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

host

port

返回值

m_setdropfile
m_setssl_cafile
MCVE 函数


Set SSL CA (Certificate Authority) file for verification of server certificate

m_setip
m_setssl_files
MCVE 函数
PHP 手册

m_setssl_cafile

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate

说明

int m_setssl_cafile ( resource $conn , string $cafile )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

cafile

返回值

m_setip
m_setssl_files
MCVE 函数


Set certificate key files and certificates if server requires client certificate verification

m_setssl_cafile
m_setssl
MCVE 函数
PHP 手册

m_setssl_files

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl_files — Set certificate key files and certificates if server requires client certificate verification

说明

int m_setssl_files ( resource $conn , string $sslkeyfile , string $sslcertfile )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

sslkeyfile

sslcertfile

返回值

m_setssl_cafile
m_setssl
MCVE 函数


Set the connection method to SSL

m_setssl_files
m_settimeout
MCVE 函数
PHP 手册

m_setssl

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl — Set the connection method to SSL

说明

int m_setssl ( resource $conn , string $host , int $port )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

host

port

返回值

m_setssl_files
m_settimeout
MCVE 函数


Set maximum transaction time (per trans)

m_setssl
m_sslcert_gen_hash
MCVE 函数
PHP 手册

m_settimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_settimeout — Set maximum transaction time (per trans)

说明

int m_settimeout ( resource $conn , int $seconds )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

seconds

返回值

m_setssl
m_sslcert_gen_hash
MCVE 函数


Generate hash for SSL client certificate verification

m_settimeout
m_transactionssent
MCVE 函数
PHP 手册

m_sslcert_gen_hash

(PECL mcve >= 5.2.0)

m_sslcert_gen_hash — Generate hash for SSL client certificate verification

说明

string m_sslcert_gen_hash ( string $filename )
Warning

本函数暂无文档，仅有参数列表。

参数

filename

返回值

m_settimeout
m_transactionssent
MCVE 函数


Check to see if outgoing buffer is clear

m_sslcert_gen_hash
m_transinqueue
MCVE 函数
PHP 手册

m_transactionssent

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transactionssent — Check to see if outgoing buffer is clear

说明

int m_transactionssent ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

m_sslcert_gen_hash
m_transinqueue
MCVE 函数


Number of transactions in client-queue

m_transactionssent
m_transkeyval
MCVE 函数
PHP 手册

m_transinqueue

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transinqueue — Number of transactions in client-queue

说明

int m_transinqueue ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

m_transactionssent
m_transkeyval
MCVE 函数


Add key/value pair to a transaction. Replaces deprecated transparam()

m_transinqueue
m_transnew
MCVE 函数
PHP 手册

m_transkeyval

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()

说明

int m_transkeyval ( resource $conn , int $identifier , string $key , string $value )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

key

value

返回值

m_transinqueue
m_transnew
MCVE 函数


Start a new transaction

m_transkeyval
m_transsend
MCVE 函数
PHP 手册

m_transnew

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transnew — Start a new transaction

说明

int m_transnew ( resource $conn )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

返回值

m_transkeyval
m_transsend
MCVE 函数


Finalize and send the transaction

m_transnew
m_uwait
MCVE 函数
PHP 手册

m_transsend

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transsend — Finalize and send the transaction

说明

int m_transsend ( resource $conn , int $identifier )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

identifier

返回值

m_transnew
m_uwait
MCVE 函数


Wait x microsecs

m_transsend
m_validateidentifier
MCVE 函数
PHP 手册

m_uwait

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_uwait — Wait x microsecs

说明

int m_uwait ( int $microsecs )
Warning

本函数暂无文档，仅有参数列表。

参数

microsecs

返回值

m_transsend
m_validateidentifier
MCVE 函数


Whether or not to validate the passed identifier on any transaction it is passed to

m_uwait
m_verifyconnection
MCVE 函数
PHP 手册

m_validateidentifier

(PHP 5 >= 5.0.5, PECL mcve >= 1.0.0)

m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to

说明

int m_validateidentifier ( resource $conn , int $tf )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

tf

返回值

m_uwait
m_verifyconnection
MCVE 函数


Set whether or not to PING upon connect to verify connection

m_validateidentifier
m_verifysslcert
MCVE 函数
PHP 手册

m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifyconnection — Set whether or not to PING upon connect to verify connection

说明

bool m_verifyconnection ( resource $conn , int $tf )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

tf

返回值

m_validateidentifier
m_verifysslcert
MCVE 函数


Set whether or not to verify the server ssl certificate

m_verifyconnection
SPPLUS
MCVE 函数
PHP 手册

m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifysslcert — Set whether or not to verify the server ssl certificate

说明

bool m_verifysslcert ( resource $conn , int $tf )
Warning

本函数暂无文档，仅有参数列表。

参数

conn

An MCVE_CONN resource returned by m_initengine().

tf

返回值

m_verifyconnection
SPPLUS
MCVE 函数


SPPLUS Payment System

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SPPLUS 函数
    • calcul_hmac — Obtain a hmac key (needs 8 arguments)
    • calculhmac — Obtain a hmac key (needs 2 arguments)
    • nthmac — Obtain a nthmac key (needs 2 arguments)
    • signeurlpaiement — Obtain the payment url (needs 2 arguments)
m_verifysslcert
简介
信用卡处理


简介

This extension gives you the possibility to use the » SPPLUS Payment System of the Caisse d'Epargne (a French Bank).

Note: 本扩展模块在 Windows 平台下不可用。

Refer to the README files in kit_php's source distribution for configuration details.

SPPLUS
安装/配置
SPPLUS


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SPPLUS


需求

Note: You need at least PHP 4.1.0 and SPPLUS v.3

Note: You will need to get the new kit_php for spplus. Feel free to contact the maintainer if you can't get it.

安装/配置
安装
安装/配置


安装

short installation note:

  • You need at least PHP 4.3.0 for the compression to work
  • To install on PHP 4.3.0 and later at the Unix command prompt type pear install pecl/spplus

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
SPPLUS 函数
SPPLUS


SPPLUS 函数

Table of Contents

  • calcul_hmac — Obtain a hmac key (needs 8 arguments)
  • calculhmac — Obtain a hmac key (needs 2 arguments)
  • nthmac — Obtain a nthmac key (needs 2 arguments)
  • signeurlpaiement — Obtain the payment url (needs 2 arguments)
预定义常量
calcul_hmac
SPPLUS


Obtain a hmac key (needs 8 arguments)

SPPLUS 函数
calculhmac
SPPLUS 函数
PHP 手册

calcul_hmac

(PECL spplus >= 1.0.0)

calcul_hmac — Obtain a hmac key (needs 8 arguments)

说明

string calcul_hmac ( string $clent , string $siretcode , string $price , string $reference , string $validity , string $taxation , string $devise , string $language )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

SPPLUS 函数
calculhmac
SPPLUS 函数


Obtain a hmac key (needs 2 arguments)

calcul_hmac
nthmac
SPPLUS 函数
PHP 手册

calculhmac

(PECL spplus >= 1.0.0)

calculhmac — Obtain a hmac key (needs 2 arguments)

说明

string calculhmac ( string $clent , string $data )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

calcul_hmac
nthmac
SPPLUS 函数


Obtain a nthmac key (needs 2 arguments)

calculhmac
signeurlpaiement
SPPLUS 函数
PHP 手册

nthmac

(PECL spplus >= 1.0.0)

nthmac — Obtain a nthmac key (needs 2 arguments)

说明

string nthmac ( string $clent , string $data )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

calculhmac
signeurlpaiement
SPPLUS 函数


Obtain the payment url (needs 2 arguments)

nthmac
加密扩展
SPPLUS 函数
PHP 手册

signeurlpaiement

(PECL spplus >= 1.0.0)

signeurlpaiement — Obtain the payment url (needs 2 arguments)

说明

string nthmac ( string $clent , string $data )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

nthmac
加密扩展
SPPLUS 函数


加密扩展

  • Crack — Cracklib
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Crack 函数
  • Hash — HASH Message Digest Framework
    • 简介
    • 安装/配置
    • 预定义常量
    • Hash 函数
  • Mcrypt
    • 简介
    • 安装/配置
    • 预定义常量
    • Mcrypt ciphers
    • 范例
    • Mcrypt 函数
  • Mhash
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Mhash 函数
  • OpenSSL
    • 简介
    • 安装/配置
    • 预定义常量
    • Key/Certificate parameters
    • Certificate Verification
    • OpenSSL 函数
signeurlpaiement
Crack
函数参考


Cracklib

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Crack 函数
    • crack_check — Performs an obscure check with the given password
    • crack_closedict — Closes an open CrackLib dictionary
    • crack_getlastmessage — Returns the message from the last obscure check
    • crack_opendict — Opens a new CrackLib dictionary
加密扩展
简介
加密扩展


简介

These functions allow you to use the CrackLib library to test the 'strength' of a password. The 'strength' of a password is tested by that checks length, use of upper and lower case and checked against the specified CrackLib dictionary. CrackLib will also give helpful diagnostic messages that will help 'strengthen' the password.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

Crack
安装/配置
Crack


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Crack


需求

More information regarding CrackLib along with the library can be found at » http://sourceforge.net/projects/cracklib.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/crack.

在 PHP 4 中本 PECL 扩展的源程序位于 PHP 源程序中的 ext/ 目录下或者在上面的 PECL 连接中。 In order to use these functions you must compile PHP with Crack support by using the --with-crack[=DIR] configuration option.

Windows users will enable php_crack.dll inside of php.ini in order to use these functions. 在 PHP 4 中本 DLL 位于 PHP Windows 执行包中的 extensions/ 目录下。 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Crack configuration options
Name | Default | Changeable | Changelog
crack.default_dictionary | NULL | PHP_INI_PERDIR | PHP_INI_SYSTEM in crack <= 0.2. Available since PHP 4.0.5. Removed in PHP 5.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


资源类型

The CrackLib extension defines a dictionary resource identifier returned by crack_opendict().

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Crack


范例

This example shows how to open a CrackLib dictionary, test a given password, retrieve any diagnostic messages, and close the dictionary.

Example #1 CrackLib example

<?php
// Open CrackLib Dictionary
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Perform password check
$check = crack_check($dictionary, 'gx9A2s0x');

// Retrieve messages
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Close dictionary
crack_closedict($dictionary);
?>

Note: If crack_check() returns TRUE, crack_getlastmessage() will return 'strong password'.

预定义常量
Crack 函数
Crack


Crack 函数

Table of Contents

  • crack_check — Performs an obscure check with the given password
  • crack_closedict — Closes an open CrackLib dictionary
  • crack_getlastmessage — Returns the message from the last obscure check
  • crack_opendict — Opens a new CrackLib dictionary
范例
crack_check
Crack


Performs an obscure check with the given password

Crack 函数
crack_closedict
Crack 函数
PHP 手册

crack_check

(PECL crack >= 0.1)

crack_check — Performs an obscure check with the given password

说明

bool crack_check ( resource $dictionary , string $password )
bool crack_check ( string $password )

Performs an obscure check with the given password on the specified dictionary.

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

dictionary

The crack lib dictionary. If not specified, the last opened dictionary is used.

password

The tested password.

返回值

Returns TRUE if password is strong, or FALSE otherwise.

Crack 函数
crack_closedict
Crack 函数


Closes an open CrackLib dictionary

crack_check
crack_getlastmessage
Crack 函数
PHP 手册

crack_closedict

(PECL crack >= 0.1)

crack_closedict — Closes an open CrackLib dictionary

说明

bool crack_closedict ([ resource $dictionary ] )

crack_closedict() closes the specified dictionary identifier.

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

dictionary

The dictionary to close. If not specified, the current directory is closed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • crack_opendict() - Opens a new CrackLib dictionary

crack_check
crack_getlastmessage
Crack 函数


Returns the message from the last obscure check

crack_closedict
crack_opendict
Crack 函数
PHP 手册

crack_getlastmessage

(PECL crack >= 0.1)

crack_getlastmessage — Returns the message from the last obscure check

说明

string crack_getlastmessage ( void )

crack_getlastmessage() returns the message from the last obscure check.

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

返回值

The message from the last obscure check or FALSE if there was no obscure checks made so far.

The returned message is one of:

  • it's WAY too short
  • it is too short
  • it does not contain enough DIFFERENT characters
  • it is all whitespace
  • it is too simplistic/systematic
  • it looks like a National Insurance number.
  • it is based on a dictionary word
  • it is based on a (reversed) dictionary word
  • strong password

参见

  • crack_check() - Performs an obscure check with the given password

crack_closedict
crack_opendict
Crack 函数


Opens a new CrackLib dictionary

crack_getlastmessage
Hash
Crack 函数
PHP 手册

crack_opendict

(PECL crack >= 0.1)

crack_opendict — Opens a new CrackLib dictionary

说明

resource crack_opendict ( string $dictionary )

crack_opendict() opens the specified CrackLib dictionary for use with crack_check().

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Note: Only one dictionary may be open at a time.

参数

dictionary

The path to the Cracklib dictionary.

返回值

Returns a dictionary resource identifier on success, or FALSE on failure.

参见

  • crack_check() - Performs an obscure check with the given password
  • crack_closedict() - Closes an open CrackLib dictionary

crack_getlastmessage
Hash
Crack 函数


HASH Message Digest Framework

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Hash 函数
    • hash_algos — Return a list of registered hashing algorithms
    • hash_copy — Copy hashing context
    • hash_file — Generate a hash value using the contents of a given file
    • hash_final — Finalize an incremental hash and return resulting digest
    • hash_hmac_file — Generate a keyed hash value using the HMAC method and the contents of a given file
    • hash_hmac — Generate a keyed hash value using the HMAC method
    • hash_init — Initialize an incremental hashing context
    • hash_update_file — Pump data into an active hashing context from a file
    • hash_update_stream — Pump data into an active hashing context from an open stream
    • hash_update — Pump data into an active hashing context
    • hash — Generate a hash value (message digest)
crack_opendict
简介
加密扩展


简介

Message Digest (hash) engine. Allows direct or incremental processing of arbitrary length messages using a variety of hashing algorithms.

Hash
安装/配置
Hash


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Hash


需求

The Hash extension requires no external libraries and is enabled by default as of PHP 5.1.2. It may be explicitly disabled by using the --disable-hash switch to configure. Earlier versions of PHP may incorporate the Hash extension by installing the » PECL module.

安装/配置
安装
安装/配置


资源类型

This extension defines a Hashing Context resource returned by hash_init().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

HASH_HMAC (integer)
Optional flag for hash_init(). Indicates that the HMAC digest-keying algorithm should be applied to the current hashing context.
资源类型
Hash 函数
Hash


Hash 函数

Table of Contents

  • hash_algos — Return a list of registered hashing algorithms
  • hash_copy — Copy hashing context
  • hash_file — Generate a hash value using the contents of a given file
  • hash_final — Finalize an incremental hash and return resulting digest
  • hash_hmac_file — Generate a keyed hash value using the HMAC method and the contents of a given file
  • hash_hmac — Generate a keyed hash value using the HMAC method
  • hash_init — Initialize an incremental hashing context
  • hash_update_file — Pump data into an active hashing context from a file
  • hash_update_stream — Pump data into an active hashing context from an open stream
  • hash_update — Pump data into an active hashing context
  • hash — Generate a hash value (message digest)
预定义常量
hash_algos
Hash


Return a list of registered hashing algorithms

Hash 函数
hash_copy
Hash 函数
PHP 手册

hash_algos

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_algos — Return a list of registered hashing algorithms

说明

array hash_algos ( void )

返回值

Returns a numerically indexed array containing the list of supported hashing algorithms.

范例

Example #1 hash_algos() example

As of PHP 5.1.2, hash_algos() will return the following list of algorithm names.

<?php
print_r(hash_algos());
?>

上例将输出：

Array
(
    [0] => md4
    [1] => md5
    [2] => sha1
    [3] => sha256
    [4] => sha384
    [5] => sha512
    [6] => ripemd128
    [7] => ripemd160
    [8] => whirlpool
    [9] => tiger128,3
    [10] => tiger160,3
    [11] => tiger192,3
    [12] => tiger128,4
    [13] => tiger160,4
    [14] => tiger192,4
    [15] => snefru
    [16] => gost
    [17] => adler32
    [18] => crc32
    [19] => crc32b
    [20] => haval128,3
    [21] => haval160,3
    [22] => haval192,3
    [23] => haval224,3
    [24] => haval256,3
    [25] => haval128,4
    [26] => haval160,4
    [27] => haval192,4
    [28] => haval224,4
    [29] => haval256,4
    [30] => haval128,5
    [31] => haval160,5
    [32] => haval192,5
    [33] => haval224,5
    [34] => haval256,5
)

Hash 函数
hash_copy
Hash 函数


Copy hashing context

hash_algos
hash_file
Hash 函数
PHP 手册

hash_copy

(PHP 5 >= 5.3.0)

hash_copy — Copy hashing context

说明

resource hash_copy ( resource $context )

参数

context

Hashing context returned by hash_init().

返回值

Returns a copy of Hashing Context resource.

范例

Example #1 hash_copy() example

<?php
$context = hash_init("md5");
hash_update($context, "data");

/* copy context to be able to continue using it */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "data");
echo hash_final($copy_context), "\n";
?>

上例将输出：

8d777f385d3dfec8815d20f7496026dc
511ae0b1c13f95e5f08f1a0dd3da3d93

hash_algos
hash_file
Hash 函数


Generate a hash value using the contents of a given file

hash_copy
hash_final
Hash 函数
PHP 手册

hash_file

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_file — Generate a hash value using the contents of a given file

说明

string hash_file ( string $algo , string $filename [, bool $raw_output=false ] )

参数

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

filename

URL describing location of file to be hashed; Supports fopen wrappers.

raw_output

When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.

返回值

Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.

范例

Example #1 Using hash_file()

<?php
/* Create a file to calculate hash of */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_file('md5', 'example.txt');
?>

上例将输出：

5c6ffbdd40d9556b73a21e63c3e0e904

参见

  • hash() - Generate a hash value (message digest)
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file
  • hash_update_file() - Pump data into an active hashing context from a file
  • md5_file() - Calculates the md5 hash of a given file
  • sha1_file() - Calculate the sha1 hash of a file

hash_copy
hash_final
Hash 函数


Finalize an incremental hash and return resulting digest

hash_file
hash_hmac_file
Hash 函数
PHP 手册

hash_final

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_final — Finalize an incremental hash and return resulting digest

说明

string hash_final ( resource $context [, bool $raw_output=false ] )

参数

context

Hashing context returned by hash_init().

raw_output

When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.

返回值

Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.

范例

Example #1 hash_final() example

<?php
$ctx = hash_init('sha1');
hash_update($ctx, 'The quick brown fox jumped over the lazy dog.');
echo hash_final($ctx);
?>

上例将输出：

c0854fb9fb03c41cce3802cb0d220529e6eef94e

参见

  • hash_init() - Initialize an incremental hashing context
  • hash_update() - Pump data into an active hashing context
  • hash_update_stream() - Pump data into an active hashing context from an open stream
  • hash_update_file() - Pump data into an active hashing context from a file

hash_file
hash_hmac_file
Hash 函数


Generate a keyed hash value using the HMAC method and the contents of a given file

hash_final
hash_hmac
Hash 函数
PHP 手册

hash_hmac_file

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_hmac_file — Generate a keyed hash value using the HMAC method and the contents of a given file

说明

string hash_hmac_file ( string $algo , string $filename , string $key [, bool $raw_output=false ] )

参数

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

filename

URL describing location of file to be hashed; Supports fopen wrappers.

key

Shared secret key used for generating the HMAC variant of the message digest.

raw_output

When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.

返回值

Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.

范例

Example #1 hash_hmac_file() example

<?php
/* Create a file to calculate hash of */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_hmac_file('md5', 'example.txt', 'secret');
?>

上例将输出：

7eb2b5c37443418fc77c136dd20e859c

参见

  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_file() - Generate a hash value using the contents of a given file

hash_final
hash_hmac
Hash 函数


Generate a keyed hash value using the HMAC method

hash_hmac_file
hash_init
Hash 函数
PHP 手册

hash_hmac

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_hmac — Generate a keyed hash value using the HMAC method

说明

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output=false ] )

参数

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

data

Message to be hashed.

key

Shared secret key used for generating the HMAC variant of the message digest.

raw_output

When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.

返回值

Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.

范例

Example #1 hash_hmac() example

<?php
echo hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret');
?>

上例将输出：

b8e7ae12510bdfb1812e463a7f086122cf37e4f7

参见

  • hash() - Generate a hash value (message digest)
  • hash_init() - Initialize an incremental hashing context
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file

hash_hmac_file
hash_init
Hash 函数


Initialize an incremental hashing context

hash_hmac
hash_update_file
Hash 函数
PHP 手册

hash_init

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_init — Initialize an incremental hashing context

说明

resource hash_init ( string $algo [, int $options=0 [, string $key=NULL ]] )

参数

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

options

Optional settings for hash generation, currently supports only one option: HASH_HMAC. When specified, the key must be specified.

key

When HASH_HMAC is specified for options , a shared secret key to be used with the HMAC hashing method must be supplied in this parameter.

返回值

Returns a Hashing Context resource for use with hash_update(), hash_update_stream(), hash_update_file(), and hash_final().

范例

Example #1 Incremental hashing example

<?php
$ctx = hash_init('md5');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
echo hash_final($ctx);
?>

上例将输出：

5c6ffbdd40d9556b73a21e63c3e0e904

参见

  • hash() - Generate a hash value (message digest)
  • hash_file() - Generate a hash value using the contents of a given file
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file

hash_hmac
hash_update_file
Hash 函数


Pump data into an active hashing context from a file

hash_init
hash_update_stream
Hash 函数
PHP 手册

hash_update_file

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_update_file — Pump data into an active hashing context from a file

说明

bool hash_update_file ( resource $context , string $filename [, resource $context=NULL ] )

参数

context

Hashing context returned by hash_init().

filename

URL describing location of file to be hashed; Supports fopen wrappers.

context

Stream context as returned by stream_context_create().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hash_init() - Initialize an incremental hashing context
  • hash_update() - Pump data into an active hashing context
  • hash_update_stream() - Pump data into an active hashing context from an open stream
  • hash_final() - Finalize an incremental hash and return resulting digest
  • hash() - Generate a hash value (message digest)
  • hash_file() - Generate a hash value using the contents of a given file

hash_init
hash_update_stream
Hash 函数


Pump data into an active hashing context from an open stream

hash_update_file
hash_update
Hash 函数
PHP 手册

hash_update_stream

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_update_stream — Pump data into an active hashing context from an open stream

说明

int hash_update_stream ( resource $context , resource $handle [, int $length=-1 ] )

参数

context

Hashing context returned by hash_init().

handle

Open file handle as returned by any stream creation function.

length

Maximum number of characters to copy from handle into the hashing context.

返回值

Actual number of bytes added to the hashing context from handle .

范例

Example #1 hash_update_stream() example

<?php
$fp = tmpfile();
fwrite($fp, 'The quick brown fox jumped over the lazy dog.');
rewind($fp);

$ctx = hash_init('md5');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

上例将输出：

5c6ffbdd40d9556b73a21e63c3e0e904

参见

  • hash_init() - Initialize an incremental hashing context
  • hash_update() - Pump data into an active hashing context
  • hash_final() - Finalize an incremental hash and return resulting digest
  • hash() - Generate a hash value (message digest)
  • hash_file() - Generate a hash value using the contents of a given file

hash_update_file
hash_update
Hash 函数


Pump data into an active hashing context

hash_update_stream
hash
Hash 函数
PHP 手册

hash_update

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_update — Pump data into an active hashing context

说明

bool hash_update ( resource $context , string $data )

参数

context

Hashing context returned by hash_init().

data

Message to be included in the hash digest.

返回值

Returns TRUE.

参见

  • hash_init() - Initialize an incremental hashing context
  • hash_update_file() - Pump data into an active hashing context from a file
  • hash_update_stream() - Pump data into an active hashing context from an open stream
  • hash_final() - Finalize an incremental hash and return resulting digest

hash_update_stream
hash
Hash 函数


Generate a hash value (message digest)

hash_update
Mcrypt
Hash 函数
PHP 手册

hash

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash — Generate a hash value (message digest)

说明

string hash ( string $algo , string $data [, bool $raw_output=false ] )

参数

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

data

Message to be hashed.

raw_output

When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.

返回值

Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.

范例

Example #1 A hash() example

<?php
echo hash('ripemd160', 'The quick brown fox jumped over the lazy dog.');
?>

上例将输出：

ec457d0a974c48d5685a7efa03d137dc8bbde7e3

参见

  • hash_file() - Generate a hash value using the contents of a given file
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_init() - Initialize an incremental hashing context
  • md5() - Calculate the md5 hash of a string
  • sha1() - Calculate the sha1 hash of a string

hash_update
Mcrypt
Hash 函数


Mcrypt

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Mcrypt ciphers
  • 范例
  • Mcrypt 函数
    • mcrypt_cbc — Encrypt/decrypt data in CBC mode
    • mcrypt_cfb — Encrypt/decrypt data in CFB mode
    • mcrypt_create_iv — Create an initialization vector (IV) from a random source
    • mcrypt_decrypt — Decrypts crypttext with given parameters
    • mcrypt_ecb — Deprecated: Encrypt/decrypt data in ECB mode
    • mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
    • mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm
    • mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
    • mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
    • mcrypt_enc_get_modes_name — Returns the name of the opened mode
    • mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks
    • mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm
    • mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks
    • mcrypt_enc_self_test — Runs a self test on the opened module
    • mcrypt_encrypt — Encrypts plaintext with given parameters
    • mcrypt_generic_deinit — This function deinitializes an encryption module
    • mcrypt_generic_end — This function terminates encryption
    • mcrypt_generic_init — This function initializes all buffers needed for encryption
    • mcrypt_generic — This function encrypts data
    • mcrypt_get_block_size — Get the block size of the specified cipher
    • mcrypt_get_cipher_name — Get the name of the specified cipher
    • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
    • mcrypt_get_key_size — Get the key size of the specified cipher
    • mcrypt_list_algorithms — Get an array of all supported ciphers
    • mcrypt_list_modes — Get an array of all supported modes
    • mcrypt_module_close — Close the mcrypt module
    • mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm
    • mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode
    • mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not
    • mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm
    • mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not
    • mcrypt_module_open — Opens the module of the algorithm and the mode to be used
    • mcrypt_module_self_test — This function runs a self test on the specified module
    • mcrypt_ofb — Encrypt/decrypt data in OFB mode
    • mdecrypt_generic — Decrypt data
hash
简介
加密扩展


简介

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free".

Mcrypt
安装/配置
Mcrypt


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Mcrypt


需求

These functions work using » mcrypt. To use it, download libmcrypt-x.x.tar.gz from » http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at » http://files.edin.dk/php/win32/mcrypt/.

As of PHP 5.0.0 you will need libmcrypt Version 2.5.6 or greater.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.

安装/配置
安装
安装/配置


安装

You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Mcrypt configuration options
Name | Default | Changeable | Changelog
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Available since PHP 4.0.2.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


资源类型

mcrypt_module_open() returns an encryption descriptor.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Mcrypt can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x or higher the functions can also operate in the block cipher mode nOFB and in STREAM mode. Below you find a list with all supported encryption modes together with the constants that are defines for the encryption mode. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) is suitable for random data, such as encrypting other keys. Since data there is short and random, the disadvantages of ECB have a favorable negative effect.
  • MCRYPT_MODE_CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.
  • MCRYPT_MODE_CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.
  • MCRYPT_MODE_OFB (output feedback, in 8bit) is comparable to CFB, but can be used in applications where error propagation cannot be tolerated. It's insecure (because it operates in 8bit mode) so it is not recommended to use it.
  • MCRYPT_MODE_NOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.
  • MCRYPT_MODE_STREAM is an extra mode to include some stream algorithms like WAKE or RC4.

Some other mode and random device constants:

MCRYPT_ENCRYPT (integer)
MCRYPT_DECRYPT (integer)
MCRYPT_DEV_RANDOM (integer)
MCRYPT_DEV_URANDOM (integer)
MCRYPT_RAND (integer)

资源类型
Mcrypt ciphers
Mcrypt


Mcrypt ciphers

Here is a list of ciphers which are currently supported by the mcrypt extension. For a complete list of supported ciphers, see the defines at the end of mcrypt.h. The general rule with the mcrypt-2.2.x API is that you can access the cipher from PHP with MCRYPT_ciphername. With the libmcrypt-2.4.x and libmcrypt-2.5.x API these constants also work, but it is possible to specify the name of the cipher as a string with a call to mcrypt_module_open().

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)
  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)
  • MCRYPT_ENIGMA (libmcrypt > 2.4.x only, alias for MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (non-free)
  • MCRYPT_LOKI97 (libmcrypt > 2.4.x only)
  • MCRYPT_MARS (libmcrypt > 2.4.x only, non-free)
  • MCRYPT_PANAMA (libmcrypt > 2.4.x only)
  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x only)
  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x only)
  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x only)
  • MCRYPT_RC2
  • MCRYPT_RC4 (libmcrypt 2.2.x only)
  • MCRYPT_RC6 (libmcrypt > 2.4.x only)
  • MCRYPT_RC6_128 (libmcrypt 2.2.x only)
  • MCRYPT_RC6_192 (libmcrypt 2.2.x only)
  • MCRYPT_RC6_256 (libmcrypt 2.2.x only)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x only)
  • MCRYPT_SERPENT(libmcrypt > 2.4.x only)
  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x only)
  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x only)
  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x only)
  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x only)
  • MCRYPT_TEAN (libmcrypt 2.2.x only)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x only)
  • MCRYPT_TWOFISH (for older mcrypt 2.x versions, or mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (TWOFISHxxx are available in newer 2.x versions, but not in the 2.4.x versions)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (libmcrypt > 2.4.x only)
  • MCRYPT_XTEA (libmcrypt > 2.4.x only)

You must (in CFB and OFB mode) or can (in CBC mode) supply an initialization vector (IV) to the respective cipher function. The IV must be unique and must be the same when decrypting/encrypting. With data which is stored encrypted, you can take the output of a function of the index under which the data is stored (e.g. the MD5 key of the filename). Alternatively, you can transmit the IV together with the encrypted data (see chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic).

预定义常量
范例
Mcrypt


范例

Mcrypt can be used to encrypt and decrypt using the above mentioned ciphers. If you linked against libmcrypt-2.2.x, the four important mcrypt commands (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) can operate in both modes which are named MCRYPT_ENCRYPT and MCRYPT_DECRYPT, respectively.

Example #1 Encrypt an input value with TripleDES under 2.2.x in ECB mode

<?php
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";

$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
?>

This example will give you the encrypted data as a string in $encrypted_data.

If you linked against libmcrypt 2.4.x or 2.5.x, these functions are still available, but it is recommended that you use the advanced functions.

Example #2 Encrypt an input value with TripleDES under 2.4.x and higher in ECB mode

<?php
    $key = "this is a secret key";
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('tripledes', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>

This example will give you the encrypted data as a string in $encrypted_data. For a full example see mcrypt_module_open().

Mcrypt ciphers
Mcrypt 函数
Mcrypt


Mcrypt 函数

Table of Contents

  • mcrypt_cbc — Encrypt/decrypt data in CBC mode
  • mcrypt_cfb — Encrypt/decrypt data in CFB mode
  • mcrypt_create_iv — Create an initialization vector (IV) from a random source
  • mcrypt_decrypt — Decrypts crypttext with given parameters
  • mcrypt_ecb — Deprecated: Encrypt/decrypt data in ECB mode
  • mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
  • mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm
  • mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
  • mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
  • mcrypt_enc_get_modes_name — Returns the name of the opened mode
  • mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
  • mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks
  • mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm
  • mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks
  • mcrypt_enc_self_test — Runs a self test on the opened module
  • mcrypt_encrypt — Encrypts plaintext with given parameters
  • mcrypt_generic_deinit — This function deinitializes an encryption module
  • mcrypt_generic_end — This function terminates encryption
  • mcrypt_generic_init — This function initializes all buffers needed for encryption
  • mcrypt_generic — This function encrypts data
  • mcrypt_get_block_size — Get the block size of the specified cipher
  • mcrypt_get_cipher_name — Get the name of the specified cipher
  • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
  • mcrypt_get_key_size — Get the key size of the specified cipher
  • mcrypt_list_algorithms — Get an array of all supported ciphers
  • mcrypt_list_modes — Get an array of all supported modes
  • mcrypt_module_close — Close the mcrypt module
  • mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm
  • mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode
  • mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
  • mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not
  • mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm
  • mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not
  • mcrypt_module_open — Opens the module of the algorithm and the mode to be used
  • mcrypt_module_self_test — This function runs a self test on the specified module
  • mcrypt_ofb — Encrypt/decrypt data in OFB mode
  • mdecrypt_generic — Decrypt data
范例
mcrypt_cbc
Mcrypt


Encrypt/decrypt data in CBC mode

Mcrypt 函数
mcrypt_cfb
Mcrypt 函数
PHP 手册

mcrypt_cbc

(PHP 4, PHP 5)

mcrypt_cbc — Encrypt/decrypt data in CBC mode

说明

string mcrypt_cbc ( int $cipher , string $key , string $data , int $mode [, string $iv ] )
string mcrypt_cbc ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Mcrypt 函数
mcrypt_cfb
Mcrypt 函数


Encrypt/decrypt data in CFB mode

mcrypt_cbc
mcrypt_create_iv
Mcrypt 函数
PHP 手册

mcrypt_cfb

(PHP 4, PHP 5)

mcrypt_cfb — Encrypt/decrypt data in CFB mode

说明

string mcrypt_cfb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_cfb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

mcrypt_cbc
mcrypt_create_iv
Mcrypt 函数


Create an initialization vector (IV) from a random source

mcrypt_cfb
mcrypt_decrypt
Mcrypt 函数
PHP 手册

mcrypt_create_iv

(PHP 4, PHP 5)

mcrypt_create_iv — Create an initialization vector (IV) from a random source

说明

string mcrypt_create_iv ( int $size [, int $source=MCRYPT_DEV_RANDOM ] )

mcrypt_create_iv() is used to create an IV.

Parameter size determines the size of the IV, parameter source (defaults to random value) specifies the source of the IV.

The source can be MCRYPT_RAND (system random number generator), MCRYPT_DEV_RANDOM (read data from /dev/random) and MCRYPT_DEV_URANDOM (read data from /dev/urandom). MCRYPT_RAND is the only one supported on Windows because Windows (of course) doesn't have /dev/random or /dev/urandom.

Note: When using MCRYPT_RAND, remember to call srand() before mcrypt_create_iv() to initialize the random number generator; it is not seeded automatically like rand() is.

Example #1 mcrypt_create_iv() example

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without losing security.

More information can be found at » http://www.ciphersbyritter.com/GLOSSARY.HTM#IV, » http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm and in chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic.

mcrypt_cfb
mcrypt_decrypt
Mcrypt 函数


Decrypts crypttext with given parameters

mcrypt_create_iv
mcrypt_ecb
Mcrypt 函数
PHP 手册

mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decrypt — Decrypts crypttext with given parameters

说明

string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

Decrypts the data and returns the unencrypted data.

参数

cipher

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

key

key is the key with which the data is encrypted. If it's smaller that the required keysize, it is padded with '\0'.

data

data is the data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

mode

mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

iv

The iv parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

返回值

Returns the decrypted data as a string.

mcrypt_create_iv
mcrypt_ecb
Mcrypt 函数


Deprecated: Encrypt/decrypt data in ECB mode

mcrypt_decrypt
mcrypt_enc_get_algorithms_name
Mcrypt 函数
PHP 手册

mcrypt_ecb

(PHP 4, PHP 5)

mcrypt_ecb — Deprecated: Encrypt/decrypt data in ECB mode

说明

string mcrypt_ecb ( int $cipher , string $key , string $data , int $mode )
string mcrypt_ecb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function is deprecated and should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

mcrypt_decrypt
mcrypt_enc_get_algorithms_name
Mcrypt 函数


Returns the name of the opened algorithm

mcrypt_ecb
mcrypt_enc_get_block_size
Mcrypt 函数
PHP 手册

mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm

说明

string mcrypt_enc_get_algorithms_name ( resource $td )

This function returns the name of the algorithm.

范例

Example #1 mcrypt_enc_get_algorithms_name() example

<?php
$td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";

$td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

上例将输出：

CAST-256
CAST-256

mcrypt_ecb
mcrypt_enc_get_block_size
Mcrypt 函数


Returns the blocksize of the opened algorithm

mcrypt_enc_get_algorithms_name
mcrypt_enc_get_iv_size
Mcrypt 函数
PHP 手册

mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm

说明

int mcrypt_enc_get_block_size ( resource $td )

Gets the blocksize of the opened algorithm.

参数

td

The encryption descriptor.

返回值

Returns the block size of the specified algorithm in bytes.

mcrypt_enc_get_algorithms_name
mcrypt_enc_get_iv_size
Mcrypt 函数


Returns the size of the IV of the opened algorithm

mcrypt_enc_get_block_size
mcrypt_enc_get_key_size
Mcrypt 函数
PHP 手册

mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm

说明

int mcrypt_enc_get_iv_size ( resource $td )

This function returns the size of the IV of the algorithm specified by the encryption descriptor in bytes. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

参数

td

The encryption descriptor.

返回值

Returns the size of the IV, or 0 if the IV is ignored in the algorithm.

mcrypt_enc_get_block_size
mcrypt_enc_get_key_size
Mcrypt 函数


Returns the maximum supported keysize of the opened mode

mcrypt_enc_get_iv_size
mcrypt_enc_get_modes_name
Mcrypt 函数
PHP 手册

mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode

说明

int mcrypt_enc_get_key_size ( resource $td )

Gets the maximum supported key size of the algorithm in bytes.

参数

td

The encryption descriptor.

返回值

Returns the maximum supported key size of the algorithm in bytes.

mcrypt_enc_get_iv_size
mcrypt_enc_get_modes_name
Mcrypt 函数


Returns the name of the opened mode

mcrypt_enc_get_key_size
mcrypt_enc_get_supported_key_sizes
Mcrypt 函数
PHP 手册

mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_name — Returns the name of the opened mode

说明

string mcrypt_enc_get_modes_name ( resource $td )

This function returns the name of the mode.

参数

td

The encryption descriptor.

返回值

Returns the name as a string.

范例

Example #1 mcrypt_enc_get_modes_name() example

<?php
$td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_modes_name($td). "\n";

$td = mcrypt_module_open ('cast-256', '', 'ecb', '');
echo mcrypt_enc_get_modes_name($td). "\n";
?>

上例将输出：

CFB
ECB

mcrypt_enc_get_key_size
mcrypt_enc_get_supported_key_sizes
Mcrypt 函数


Returns an array with the supported keysizes of the opened algorithm

mcrypt_enc_get_modes_name
mcrypt_enc_is_block_algorithm_mode
Mcrypt 函数
PHP 手册

mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

说明

array mcrypt_enc_get_supported_key_sizes ( resource $td )

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

范例

Example #1 mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

This will print:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}

mcrypt_enc_get_modes_name
mcrypt_enc_is_block_algorithm_mode
Mcrypt 函数


Checks whether the encryption of the opened mode works on blocks

mcrypt_enc_get_supported_key_sizes
mcrypt_enc_is_block_algorithm
Mcrypt 函数
PHP 手册

mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks

说明

bool mcrypt_enc_is_block_algorithm_mode ( resource $td )

Tells whether the algorithm of the opened mode works on blocks (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb)..

参数

td

The encryption descriptor.

返回值

Returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE.

mcrypt_enc_get_supported_key_sizes
mcrypt_enc_is_block_algorithm
Mcrypt 函数


Checks whether the algorithm of the opened mode is a block algorithm

mcrypt_enc_is_block_algorithm_mode
mcrypt_enc_is_block_mode
Mcrypt 函数
PHP 手册

mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm

说明

bool mcrypt_enc_is_block_algorithm ( resource $td )

Tells whether the algorithm of the opened mode is a block algorithm.

参数

td

The encryption descriptor.

返回值

Returns TRUE if the algorithm is a block algorithm or FALSE if it is a stream one.

mcrypt_enc_is_block_algorithm_mode
mcrypt_enc_is_block_mode
Mcrypt 函数


Checks whether the opened mode outputs blocks

mcrypt_enc_is_block_algorithm
mcrypt_enc_self_test
Mcrypt 函数
PHP 手册

mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks

说明

bool mcrypt_enc_is_block_mode ( resource $td )

Tells whether the opened mode outputs blocks (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

参数

td

The encryption descriptor.

返回值

Returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs bytes.

mcrypt_enc_is_block_algorithm
mcrypt_enc_self_test
Mcrypt 函数


Runs a self test on the opened module

mcrypt_enc_is_block_mode
mcrypt_encrypt
Mcrypt 函数
PHP 手册

mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_test — Runs a self test on the opened module

说明

int mcrypt_enc_self_test ( resource $td )

This function runs the self test on the algorithm specified by the descriptor td .

参数

td

The encryption descriptor.

返回值

If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.

mcrypt_enc_is_block_mode
mcrypt_encrypt
Mcrypt 函数


Encrypts plaintext with given parameters

mcrypt_enc_self_test
mcrypt_generic_deinit
Mcrypt 函数
PHP 手册

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt — Encrypts plaintext with given parameters

说明

string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

mcrypt_encrypt() encrypts the data and returns the encrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data will be encrypted. If it's smaller that the required keysize, it is padded with '\0'. It is better not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.

Data is the data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'. The returned crypttext can be larger that the size of the data that is given by data .

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

范例

Example #1 mcrypt_encrypt() Example

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext) . "\n";
?>

上例将输出：

42
64

See also mcrypt_module_open() for a more advanced API and an example.

mcrypt_enc_self_test
mcrypt_generic_deinit
Mcrypt 函数


This function deinitializes an encryption module

mcrypt_encrypt
mcrypt_generic_end
Mcrypt 函数
PHP 手册

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5)

mcrypt_generic_deinit — This function deinitializes an encryption module

说明

bool mcrypt_generic_deinit ( resource $td )

This function terminates encryption specified by the encryption descriptor (td ). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.) Returns FALSE on error, or TRUE on success.

See for an example mcrypt_module_open() and the entry on mcrypt_generic_init().

mcrypt_encrypt
mcrypt_generic_end
Mcrypt 函数


This function terminates encryption

mcrypt_generic_deinit
mcrypt_generic_init
Mcrypt 函数
PHP 手册

mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5 <= 5.1.6)

mcrypt_generic_end — This function terminates encryption

说明

bool mcrypt_generic_end ( resource $td )

Warning

This function is deprecated, use mcrypt_generic_deinit() instead. It can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td ). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.

mcrypt_generic_deinit
mcrypt_generic_init
Mcrypt 函数


This function initializes all buffers needed for encryption

mcrypt_generic_end
mcrypt_generic
Mcrypt 函数
PHP 手册

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_init — This function initializes all buffers needed for encryption

说明

int mcrypt_generic_init ( resource $td , string $key , string $iv )

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

参数

td

The encryption descriptor.

key

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal.

iv

The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

返回值

The function returns a negative value on error, -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly. FALSE is returned if incorrect parameters were passed.

参见

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used

mcrypt_generic_end
mcrypt_generic
Mcrypt 函数


This function encrypts data

mcrypt_generic_init
mcrypt_get_block_size
Mcrypt 函数
PHP 手册

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic — This function encrypts data

说明

string mcrypt_generic ( resource $td , string $data )

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer then the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember that varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

mcrypt_generic_init
mcrypt_get_block_size
Mcrypt 函数


Get the block size of the specified cipher

mcrypt_generic
mcrypt_get_cipher_name
Mcrypt 函数
PHP 手册

mcrypt_get_block_size

(PHP 4, PHP 5)

mcrypt_get_block_size — Get the block size of the specified cipher

说明

int mcrypt_get_block_size ( int $cipher )
int mcrypt_get_block_size ( string $cipher , string $module )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

Example #1 mcrypt_get_block_size() example

<?php
    echo mcrypt_get_block_size('tripledes', 'ecb');
?>

Prints:
8

See also: mcrypt_get_key_size(),
mcrypt_enc_get_block_size() and
mcrypt_encrypt().

mcrypt_generic
mcrypt_get_cipher_name
Mcrypt 函数


Get the name of the specified cipher

mcrypt_get_block_size
mcrypt_get_iv_size
Mcrypt 函数
PHP 手册

mcrypt_get_cipher_name

(PHP 4, PHP 5)

mcrypt_get_cipher_name — Get the name of the specified cipher

说明

string mcrypt_get_cipher_name ( int $cipher )
string mcrypt_get_cipher_name ( string $cipher )

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or FALSE, if the cipher does not exist.

范例

Example #1 mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

上例将输出：

3DES

mcrypt_get_block_size
mcrypt_get_iv_size
Mcrypt 函数


Returns the size of the IV belonging to a specific cipher/mode combination

mcrypt_get_cipher_name
mcrypt_get_key_size
Mcrypt 函数
PHP 手册

mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination

说明

int mcrypt_get_iv_size ( string $cipher , string $mode )

mcrypt_get_iv_size() returns the size of the Initialisation Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

mode is one of the MCRYPT_MODE_modename constants or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

范例

Example #1 mcrypt_get_iv_size() example

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

See also
mcrypt_get_block_size(),
mcrypt_enc_get_iv_size() and
mcrypt_create_iv().

mcrypt_get_cipher_name
mcrypt_get_key_size
Mcrypt 函数


Get the key size of the specified cipher

mcrypt_get_iv_size
mcrypt_list_algorithms
Mcrypt 函数
PHP 手册

mcrypt_get_key_size

(PHP 4, PHP 5)

mcrypt_get_key_size — Get the key size of the specified cipher

说明

int mcrypt_get_key_size ( int $cipher )
int mcrypt_get_key_size ( string $cipher , string $module )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x. It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Example #1 mcrypt_get_block_size() example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

Prints:
24

See also: mcrypt_get_block_size(),
mcrypt_enc_get_key_size() and
mcrypt_encrypt().

mcrypt_get_iv_size
mcrypt_list_algorithms
Mcrypt 函数


Get an array of all supported ciphers

mcrypt_get_key_size
mcrypt_list_modes
Mcrypt 函数
PHP 手册

mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithms — Get an array of all supported ciphers

说明

array mcrypt_list_algorithms ([ string $lib_dir=ini_get("mcrypt.algorithms_dir") ] )

mcrypt_list_algorithms() is used to get an array of all supported algorithms in the lib_dir parameter.

mcrypt_list_algorithms() takes an optional lib_dir parameter which specifies the directory where all algorithms are located. If not specifies, the value of the mcrypt.algorithms_dir php.ini directive is used.

范例

Example #1 mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

mcrypt_get_key_size
mcrypt_list_modes
Mcrypt 函数


Get an array of all supported modes

mcrypt_list_algorithms
mcrypt_module_close
Mcrypt 函数
PHP 手册

mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modes — Get an array of all supported modes

说明

array mcrypt_list_modes ([ string $lib_dir=ini_get("mcrypt.algorithms_dir") ] )

mcrypt_list_modes() is used to get an array of all supported modes in the lib_dir .

mcrypt_list_modes() takes as optional parameter a directory which specifies the directory where all modes are located. If not specifies, the value of the mcrypt.modes_dir php.ini directive is used.

范例

Example #1 mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the default mode directory. If it is not set with the ini directive mcrypt.modes_dir, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).

mcrypt_list_algorithms
mcrypt_module_close
Mcrypt 函数


Close the mcrypt module

mcrypt_list_modes
mcrypt_module_get_algo_block_size
Mcrypt 函数
PHP 手册

mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_close — Close the mcrypt module

说明

bool mcrypt_module_close ( resource $td )

Closes the specified encryption handle.

参数

td

The encryption descriptor.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used

mcrypt_list_modes
mcrypt_module_get_algo_block_size
Mcrypt 函数


Returns the blocksize of the specified algorithm

mcrypt_module_close
mcrypt_module_get_algo_key_size
Mcrypt 函数
PHP 手册

mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm

说明

int mcrypt_module_get_algo_block_size ( string $algorithm [, string $lib_dir ] )

Gets the blocksize of the specified algorithm.

参数

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

返回值

Returns the block size of the algorithm specified in bytes.

mcrypt_module_close
mcrypt_module_get_algo_key_size
Mcrypt 函数


Returns the maximum supported keysize of the opened mode

mcrypt_module_get_algo_block_size
mcrypt_module_get_supported_key_sizes
Mcrypt 函数
PHP 手册

mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode

说明

int mcrypt_module_get_algo_key_size ( string $algorithm [, string $lib_dir ] )

Gets the maximum supported keysize of the opened mode.

参数

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

返回值

This function returns the maximum supported key size of the algorithm specified in bytes.

mcrypt_module_get_algo_block_size
mcrypt_module_get_supported_key_sizes
Mcrypt 函数


Returns an array with the supported keysizes of the opened algorithm

mcrypt_module_get_algo_key_size
mcrypt_module_is_block_algorithm_mode
Mcrypt 函数
PHP 手册

mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

说明

array mcrypt_module_get_supported_key_sizes ( string $algorithm [, string $lib_dir ] )

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm. The optional lib_dir parameter can contain the location where the mode module is on the system.

See also mcrypt_enc_get_supported_key_sizes() which is used on open encryption modules.

mcrypt_module_get_algo_key_size
mcrypt_module_is_block_algorithm_mode
Mcrypt 函数


Returns if the specified module is a block algorithm or not

mcrypt_module_get_supported_key_sizes
mcrypt_module_is_block_algorithm
Mcrypt 函数
PHP 手册

mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not

说明

bool mcrypt_module_is_block_algorithm_mode ( string $mode [, string $lib_dir ] )

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

mcrypt_module_get_supported_key_sizes
mcrypt_module_is_block_algorithm
Mcrypt 函数


This function checks whether the specified algorithm is a block algorithm

mcrypt_module_is_block_algorithm_mode
mcrypt_module_is_block_mode
Mcrypt 函数
PHP 手册

mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm

说明

bool mcrypt_module_is_block_algorithm ( string $algorithm [, string $lib_dir ] )

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE is it is a stream algorithm. The optional lib_dir parameter can contain the location where the algorithm module is on the system.

mcrypt_module_is_block_algorithm_mode
mcrypt_module_is_block_mode
Mcrypt 函数


Returns if the specified mode outputs blocks or not

mcrypt_module_is_block_algorithm
mcrypt_module_open
Mcrypt 函数
PHP 手册

mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not

说明

bool mcrypt_module_is_block_mode ( string $mode [, string $lib_dir ] )

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

mcrypt_module_is_block_algorithm
mcrypt_module_open
Mcrypt 函数


Opens the module of the algorithm and the mode to be used

mcrypt_module_is_block_mode
mcrypt_module_self_test
Mcrypt 函数
PHP 手册

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open — Opens the module of the algorithm and the mode to be used

说明

resource mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory )

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close(). Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string (""), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usually /usr/local/lib/libmcrypt).

范例

Example #1 mcrypt_module_open() examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

范例

Example #2 Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length, use MCRYPT_RAND
     * on Windows instead */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Create key */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Show string */
    echo trim($decrypted) . "\n";
?>

See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

mcrypt_module_is_block_mode
mcrypt_module_self_test
Mcrypt 函数


This function runs a self test on the specified module

mcrypt_module_open
mcrypt_ofb
Mcrypt 函数
PHP 手册

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_test — This function runs a self test on the specified module

说明

bool mcrypt_module_self_test ( string $algorithm [, string $lib_dir ] )

This function runs the self test on the algorithm specified. The optional lib_dir parameter can contain the location of where the algorithm module is on the system.

The function returns TRUE if the self test succeeds, or FALSE when if fails.

范例

Example #1 mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

上例将输出：

bool(true)
bool(false)

mcrypt_module_open
mcrypt_ofb
Mcrypt 函数


Encrypt/decrypt data in OFB mode

mcrypt_module_self_test
mdecrypt_generic
Mcrypt 函数
PHP 手册

mcrypt_ofb

(PHP 4, PHP 5)

mcrypt_ofb — Encrypt/decrypt data in OFB mode

说明

string mcrypt_ofb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_ofb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

mcrypt_module_self_test
mdecrypt_generic
Mcrypt 函数


Decrypt data

mcrypt_ofb
Mhash
Mcrypt 函数
PHP 手册

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic — Decrypt data

说明

string mdecrypt_generic ( resource $td , string $data )

This function decrypts data. Note that the length of the returned string can in fact be longer then the unencrypted string, due to the padding of the data.

范例

Example #1 mdecrypt_generic() example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The above example shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mcrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

mcrypt_ofb
Mhash
Mcrypt 函数


Mhash

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Mhash 函数
    • mhash_count — Get the highest available hash id
    • mhash_get_block_size — Get the block size of the specified hash
    • mhash_get_hash_name — Get the name of the specified hash
    • mhash_keygen_s2k — Generates a key
    • mhash — Compute hash
mdecrypt_generic
简介
加密扩展


简介

These functions are intended to work with » mhash. Mhash can be used to create checksums, message digests, message authentication codes, and more.

This is an interface to the mhash library. mhash supports a wide variety of hash algorithms such as MD5, SHA1, GOST, and many others. For a complete list of supported hashes, refer to the documentation of mhash. The general rule is that you can access the hash algorithm from PHP with MHASH_HASHNAME. For example, to access TIGER you use the PHP constant MHASH_TIGER.

Note: This extension is obsoleted by Hash.

Mhash
安装/配置
Mhash


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Mhash


需求

To use it, download the mhash distribution from » its web site and follow the included installation instructions.

安装/配置
安装
安装/配置


安装

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash install directory.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Here is a list of hashes which are currently supported by mhash. If a hash is not listed here, but is listed by mhash as supported, you can safely assume that this documentation is outdated.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_HAVAL256
  • MHASH_MD4
  • MHASH_MD5
  • MHASH_RIPEMD160
  • MHASH_SHA1
  • MHASH_SHA256
  • MHASH_TIGER
  • MHASH_TIGER128
  • MHASH_TIGER160

资源类型
范例
Mhash


范例

Example #1 Compute the MD5 digest and hmac and print it out as hex

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac is " . bin2hex($hash) . "<br />\n";
?>

This will produce:

The hash is d03cb659cbf9192dcd066272249f8412
The hmac is 750c783e6ab0b503eaa86e310a5db738

预定义常量
Mhash 函数
Mhash


Mhash 函数

Table of Contents

  • mhash_count — Get the highest available hash id
  • mhash_get_block_size — Get the block size of the specified hash
  • mhash_get_hash_name — Get the name of the specified hash
  • mhash_keygen_s2k — Generates a key
  • mhash — Compute hash
范例
mhash_count
Mhash


Get the highest available hash id

Mhash 函数
mhash_get_block_size
Mhash 函数
PHP 手册

mhash_count

(PHP 4, PHP 5)

mhash_count — Get the highest available hash id

说明

int mhash_count ( void )

Gets the highest available hash id.

返回值

Returns the highest available hash id. Hashes are numbered from 0 to this hash id.

范例

Example #1 Traversing all hashes

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf("The blocksize of %s is %d\n",
        mhash_get_hash_name($i),
        mhash_get_block_size($i));
}
?>

Mhash 函数
mhash_get_block_size
Mhash 函数


Get the block size of the specified hash

mhash_count
mhash_get_hash_name
Mhash 函数
PHP 手册

mhash_get_block_size

(PHP 4, PHP 5)

mhash_get_block_size — Get the block size of the specified hash

说明

int mhash_get_block_size ( int $hash )

Gets the size of a block of the specified hash .

参数

hash

The hash id. One of the MHASH_XXX constants.

返回值

Returns the size in bytes or FALSE, if the hash does not exist.

范例

Example #1 mhash_get_block_size() Example

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>

mhash_count
mhash_get_hash_name
Mhash 函数


Get the name of the specified hash

mhash_get_block_size
mhash_keygen_s2k
Mhash 函数
PHP 手册

mhash_get_hash_name

(PHP 4, PHP 5)

mhash_get_hash_name — Get the name of the specified hash

说明

string mhash_get_hash_name ( int $hash )

Gets the name of the specified hash .

参数

hash

The hash id. One of the MHASH_XXX constants.

返回值

Returns the name of the hash or FALSE, if the hash does not exist.

范例

Example #1 mhash_get_hash_name() example

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>

mhash_get_block_size
mhash_keygen_s2k
Mhash 函数


Generates a key

mhash_get_hash_name
mhash
Mhash 函数
PHP 手册

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k — Generates a key

说明

string mhash_keygen_s2k ( int $hash , string $password , string $salt , int $bytes )

Generates a key according to the hash given a user provided password .

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

参数

hash

The hash id used to create the key. One of the MHASH_XXX constants.

password

User supplied password.

salt

Must be different and random enough for every key you generate in order to create different keys. That salt must be known when you check the keys, thus it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

bytes

The key length, in bytes.

返回值

Returns the generated key as a string, or FALSE on error.

mhash_get_hash_name
mhash
Mhash 函数


Compute hash

mhash_keygen_s2k
OpenSSL
Mhash 函数
PHP 手册

mhash

(PHP 4, PHP 5)

mhash — Compute hash

说明

string mhash ( int $hash , string $data [, string $key ] )

mhash() applies a hash function specified by hash to the data .

参数

hash

The hash id. One of the MHASH_XXX constants.

data

The user input, as a string.

key

If specified, the function will return the resulting HMAC instead. HMAC is keyed hashing for message authentication, or simply a message digest that depends on the specified key. Not all algorithms supported in mhash can be used in HMAC mode.

返回值

Returns the resulting hash (also called digest) or HMAC as a string, or FALSE on errors.

mhash_keygen_s2k
OpenSSL
Mhash 函数


OpenSSL

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
    • Purpose checking flags
    • Padding flags
    • Key types
    • PKCS7 Flags/Constants
    • Signature Algorithms
    • Ciphers
    • Version constants
  • Key/Certificate parameters
  • Certificate Verification
  • OpenSSL 函数
    • openssl_csr_export_to_file — Exports a CSR to a file
    • openssl_csr_export — Exports a CSR as a string
    • openssl_csr_get_public_key — Returns the public key of a CERT
    • openssl_csr_get_subject — Returns the subject of a CERT
    • openssl_csr_new — Generates a CSR
    • openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate
    • openssl_error_string — Return openSSL error message
    • openssl_free_key — Free key resource
    • openssl_get_privatekey — 别名 openssl_pkey_get_private
    • openssl_get_publickey — 别名 openssl_pkey_get_public
    • openssl_open — Open sealed data
    • openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File
    • openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable.
    • openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array
    • openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message
    • openssl_pkcs7_encrypt — Encrypt an S/MIME message
    • openssl_pkcs7_sign — Sign an S/MIME message
    • openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
    • openssl_pkey_export_to_file — Gets an exportable representation of a key into a file
    • openssl_pkey_export — Gets an exportable representation of a key into a string
    • openssl_pkey_free — Frees a private key
    • openssl_pkey_get_details — Returns an array with the key details
    • openssl_pkey_get_private — Get a private key
    • openssl_pkey_get_public — Extract public key from certificate and prepare it for use
    • openssl_pkey_new — Generates a new private key
    • openssl_private_decrypt — Decrypts data with private key
    • openssl_private_encrypt — Encrypts data with private key
    • openssl_public_decrypt — Decrypts data with public key
    • openssl_public_encrypt — Encrypts data with public key
    • openssl_seal — Seal (encrypt) data
    • openssl_sign — Generate signature
    • openssl_verify — Verify signature
    • openssl_x509_check_private_key — Checks if a private key corresponds to a certificate
    • openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose
    • openssl_x509_export_to_file — Exports a certificate to file
    • openssl_x509_export — Exports a certificate as a string
    • openssl_x509_free — Free certificate resource
    • openssl_x509_parse — Parse an X509 certificate and return the information as an array
    • openssl_x509_read — Parse an X.509 certificate and return a resource identifier for it
mhash
简介
加密扩展


简介

This module uses the functions of » OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. OpenSSL offers many features that this module currently doesn't support. Some of these may be added in the future.

OpenSSL
安装/配置
OpenSSL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
OpenSSL


需求

In order to use the OpenSSL functions you need to install the » OpenSSL package. PHP between versions 4.0.5 and 4.3.1 will work with OpenSSL >= 0.9.5. Other versions (PHP <=4.0.4 and >= 4.3.2) require OpenSSL >= 0.9.6.

Warning

You are strongly encouraged to use the most recent OpenSSL version, otherwise your web server could be vulnerable to attack.

安装/配置
安装
安装/配置


安装

To use PHP's OpenSSL support you must also compile PHP --with-openssl[=DIR].

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: libeay32.dll
Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid openssl.cnf file on your system. As of PHP 4.3.0, we include a sample configuration file in our win32 binary distributions. PHP 4.3.x and 4.4.x has the file in the openssl directory. PHP 5.x and 6.x has the file in the extras/openssl directory. If you are either using PHP 4.2.x or missing the file, you can obtain it from » the OpenSSL binaries page or by downloading a recent PHP release. Be aware that Windows Explorer hides the .cnf extension by default and says the file Type is SpeedDial.
PHP will search for the openssl.cnf using the following logic:

  • the OPENSSL_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.
  • the SSLEAY_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.
  • The file openssl.cnf will be assumed to be found in the default certificate area, as configured at the time that the openssl DLL was compiled. This is usually means that the default filename is c:\usr\local\ssl\openssl.cnf.

In your installation, you need to decide whether to install the configuration file at c:\usr\local\ssl\openssl.cnf or whether to install it someplace else and use environmental variables (possibly on a per-virtual-host basis) to locate the configuration file. Note that it is possible to override the default path from the script using the configargs of the functions that require a configuration file.

需求
运行时配置
安装/配置


预定义常量

Table of Contents

  • Purpose checking flags
  • Padding flags
  • Key types
  • PKCS7 Flags/Constants
  • Signature Algorithms
  • Ciphers
  • Version constants

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

资源类型
Purpose checking flags
OpenSSL


Purpose checking flags

X509_PURPOSE_SSL_CLIENT (integer)
X509_PURPOSE_SSL_SERVER (integer)
X509_PURPOSE_NS_SSL_SERVER (integer)
X509_PURPOSE_SMIME_SIGN (integer)
X509_PURPOSE_SMIME_ENCRYPT (integer)
X509_PURPOSE_CRL_SIGN (integer)
X509_PURPOSE_ANY (integer)
预定义常量
Padding flags
预定义常量


Padding flags

OPENSSL_PKCS1_PADDING (integer)
OPENSSL_SSLV23_PADDING (integer)
OPENSSL_NO_PADDING (integer)
OPENSSL_PKCS1_OAEP_PADDING (integer)
Purpose checking flags
Key types
预定义常量


Key types

OPENSSL_KEYTYPE_RSA (integer)
OPENSSL_KEYTYPE_DSA (integer)
OPENSSL_KEYTYPE_DH (integer)
Padding flags
PKCS7 Flags/Constants
预定义常量


PKCS7 Flags/Constants

The S/MIME functions make use of flags which are specified using a bitfield which can include one or more of the following values:

PKCS7 CONSTANTS
Constant | Description
PKCS7_TEXT | Adds text/plain content type headers to encrypted/signed message. If decrypting or verifying, it strips those headers from the output - if the decrypted or verified message is not of MIME type text/plain then an error will occur.
PKCS7_BINARY | Normally the input message is converted to "canonical" format which is effectively using CR and LF as end of line: as required by the S/MIME specification. When this options is present, no translation occurs. This is useful when handling binary data which may not be in MIME format.
PKCS7_NOINTERN | When verifying a message, certificates (if any) included in the message are normally searched for the signing certificate. With this option only the certificates specified in the extracerts parameter of openssl_pkcs7_verify() are used. The supplied certificates can still be used as untrusted CAs however.
PKCS7_NOVERIFY | Do not verify the signers certificate of a signed message.
PKCS7_NOCHAIN | Do not chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs.
PKCS7_NOCERTS | When signing a message the signer's certificate is normally included - with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the extracerts to openssl_pkcs7_verify() for example).
PKCS7_NOATTR | Normally when a message is signed, a set of attributes are included which include the signing time and the supported symmetric algorithms. With this option they are not included.
PKCS7_DETACHED | When signing a message, use cleartext signing with the MIME type multipart/signed. This is the default if you do not specify any flags to openssl_pkcs7_sign(). If you turn this option off, the message will be signed using opaque signing, which is more resistant to translation by mail relays but cannot be read by mail agents that do not support S/MIME.
PKCS7_NOSIGS | Don't try and verify the signatures on a message

Note: These constants were added in 4.0.6.

Key types
Signature Algorithms
预定义常量


Signature Algorithms

OPENSSL_ALGO_SHA1 (integer)
Used as default algorithm by openssl_sign() and openssl_verify().
OPENSSL_ALGO_MD5 (integer)
OPENSSL_ALGO_MD4 (integer)
OPENSSL_ALGO_MD2 (integer)

Note: These constants were added in 5.0.0.

PKCS7 Flags/Constants
Ciphers
预定义常量


Ciphers

OPENSSL_CIPHER_RC2_40 (integer)
OPENSSL_CIPHER_RC2_128 (integer)
OPENSSL_CIPHER_RC2_64 (integer)
OPENSSL_CIPHER_DES (integer)
OPENSSL_CIPHER_3DES (integer)

Note: These constants were added in 4.3.0.

Signature Algorithms
Version constants
预定义常量


Version constants

OPENSSL_VERSION_TEXT (string)
OPENSSL_VERSION_NUMBER (integer)

Note: These constants were added in 5.2.0.

Ciphers
Key/Certificate parameters
预定义常量


Key/Certificate parameters

Quite a few of the openssl functions require a key or a certificate parameter. PHP 4.0.5 and earlier have to use a key or certificate resource returned by one of the openssl_get_xxx functions. Later versions may use one of the following methods:

  • Certificates

    1. An X.509 resource returned from openssl_x509_read()
    2. A string having the format file://path/to/cert.pem; the named file must contain a PEM encoded certificate
    3. A string containing the content of a certificate, PEM encoded

  • Public/Private Keys

    1. A key resource returned from openssl_get_publickey() or openssl_get_privatekey()
    2. For public keys only: an X.509 resource
    3. A string having the format file://path/to/file.pem - the named file must contain a PEM encoded certificate/private key (it may contain both)
    4. A string containing the content of a certificate/key, PEM encoded
    5. For private keys, you may also use the syntax array($key, $passphrase) where $key represents a key specified using the file:// or textual content notation above, and $passphrase represents a string containing the passphrase for that private key

Version constants
Certificate Verification
OpenSSL


Certificate Verification

When calling a function that will verify a signature/certificate, the cainfo parameter is an array containing file and directory names that specify the locations of trusted CA files. If a directory is specified, then it must be a correctly formed hashed directory as the openssl command would use.

Key/Certificate parameters
OpenSSL 函数
OpenSSL


OpenSSL 函数

Table of Contents

  • openssl_csr_export_to_file — Exports a CSR to a file
  • openssl_csr_export — Exports a CSR as a string
  • openssl_csr_get_public_key — Returns the public key of a CERT
  • openssl_csr_get_subject — Returns the subject of a CERT
  • openssl_csr_new — Generates a CSR
  • openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate
  • openssl_error_string — Return openSSL error message
  • openssl_free_key — Free key resource
  • openssl_get_privatekey — 别名 openssl_pkey_get_private
  • openssl_get_publickey — 别名 openssl_pkey_get_public
  • openssl_open — Open sealed data
  • openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File
  • openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable.
  • openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array
  • openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message
  • openssl_pkcs7_encrypt — Encrypt an S/MIME message
  • openssl_pkcs7_sign — Sign an S/MIME message
  • openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
  • openssl_pkey_export_to_file — Gets an exportable representation of a key into a file
  • openssl_pkey_export — Gets an exportable representation of a key into a string
  • openssl_pkey_free — Frees a private key
  • openssl_pkey_get_details — Returns an array with the key details
  • openssl_pkey_get_private — Get a private key
  • openssl_pkey_get_public — Extract public key from certificate and prepare it for use
  • openssl_pkey_new — Generates a new private key
  • openssl_private_decrypt — Decrypts data with private key
  • openssl_private_encrypt — Encrypts data with private key
  • openssl_public_decrypt — Decrypts data with public key
  • openssl_public_encrypt — Encrypts data with public key
  • openssl_seal — Seal (encrypt) data
  • openssl_sign — Generate signature
  • openssl_verify — Verify signature
  • openssl_x509_check_private_key — Checks if a private key corresponds to a certificate
  • openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose
  • openssl_x509_export_to_file — Exports a certificate to file
  • openssl_x509_export — Exports a certificate as a string
  • openssl_x509_free — Free certificate resource
  • openssl_x509_parse — Parse an X509 certificate and return the information as an array
  • openssl_x509_read — Parse an X.509 certificate and return a resource identifier for it
Certificate Verification
openssl_csr_export_to_file
OpenSSL


Exports a CSR to a file

OpenSSL 函数
openssl_csr_export
OpenSSL 函数
PHP 手册

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_file — Exports a CSR to a file

说明

bool openssl_csr_export_to_file ( resource $csr , string $outfilename [, bool $notext=true ] )

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it as ascii-armoured text into the file named by outfilename .

参数

csr

outfilename

Path to the output file.

notext

The optional parameter notext affects the verbosity of the output; if it is FALSE, then additional human-readable information is included in the output. The default value of notext is TRUE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openssl_csr_export() - Exports a CSR as a string
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate

OpenSSL 函数
openssl_csr_export
OpenSSL 函数


Exports a CSR as a string

openssl_csr_export_to_file
openssl_csr_get_public_key
OpenSSL 函数
PHP 手册

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export — Exports a CSR as a string

说明

bool openssl_csr_export ( resource $csr , string &$out [, bool $notext=true ] )

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it as ascii-armoured text into out , which is passed by reference.

参数

csr

out

notext

The optional parameter notext affects the verbosity of the output; if it is FALSE, then additional human-readable information is included in the output. The default value of notext is TRUE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openssl_csr_export_to_file() - Exports a CSR to a file
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate

openssl_csr_export_to_file
openssl_csr_get_public_key
OpenSSL 函数


Returns the public key of a CERT

openssl_csr_export
openssl_csr_get_subject
OpenSSL 函数
PHP 手册

openssl_csr_get_public_key

(PHP 5 >= 5.2.0)

openssl_csr_get_public_key — Returns the public key of a CERT

说明

resource openssl_csr_get_public_key ( mixed $csr [, bool $use_shortnames=true ] )
Warning

本函数暂无文档，仅有参数列表。

openssl_csr_export
openssl_csr_get_subject
OpenSSL 函数


Returns the subject of a CERT

openssl_csr_get_public_key
openssl_csr_new
OpenSSL 函数
PHP 手册

openssl_csr_get_subject

(PHP 5 >= 5.2.0)

openssl_csr_get_subject — Returns the subject of a CERT

说明

array openssl_csr_get_subject ( mixed $csr [, bool $use_shortnames=true ] )
Warning

本函数暂无文档，仅有参数列表。

openssl_csr_get_public_key
openssl_csr_new
OpenSSL 函数


Generates a CSR

openssl_csr_get_subject
openssl_csr_sign
OpenSSL 函数
PHP 手册

openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_new — Generates a CSR

说明

mixed openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] )

openssl_csr_new() generates a new CSR (Certificate Signing Request) based on the information provided by dn , which represents the Distinguished Name to be used in the certificate.

Note: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

参数

dn

The Distinguished Name to be used in the certificate.

privkey

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

configargs

By default, the information in your system openssl.conf is used to initialize the request; you can specify a configuration file section by setting the config_section_section key of configargs . You can also specify an alternative openssl configuration file by setting the value of the config key to the path of the file you want to use. The following keys, if present in configargs behave as their equivalents in the openssl.conf, as listed in the table below.

Configuration overrides
configargs key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Selects which digest method to use
x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509 certificate
req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR
private_key_bits | integer | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | integer | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH or OPENSSL_KEYTYPE_RSA. The default value is OPENSSL_KEYTYPE_RSA which is currently the only supported key type.
encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted?

extraattribs

extraattribs is used to specify additional configuration options for the CSR. Both dn and extraattribs are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

返回值

Returns the CSR.

范例

Example #1 Creating a self-signed-certificate

<?php
// Fill in data for the distinguished name to be used in the cert
// You must change the values of these keys to match your name and
// company, or more precisely, the name and company of the person/site
// that you are generating the certificate for.
// For SSL certificates, the commonName is usually the domain name of
// that will be using the certificate, but for S/MIME certificates,
// the commonName will be the name of the individual who will use the
// certificate.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey);

// You will usually want to create a self-signed certificate at this
// point until your CA fulfills your request.
// This creates a self-signed cert that is valid for 365 days
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Now you will want to preserve your private key, CSR and self-signed
// cert so that they can be installed into your web server, mail server
// or mail client (depending on the intended use of the certificate).
// This example shows how to get those things into variables, but you
// can also store them directly into files.
// Typically, you will send the CSR on to your CA who will then issue
// you with the "real" certificate.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

openssl_csr_get_subject
openssl_csr_sign
OpenSSL 函数


Sign a CSR with another certificate (or itself) and generate a certificate

openssl_csr_new
openssl_error_string
OpenSSL 函数
PHP 手册

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate

说明

resource openssl_csr_sign ( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial=0 ]] )

openssl_csr_sign() generates an x509 certificate resource from the given CSR.

Note: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

参数

csr

A CSR previously generated by openssl_csr_new(). It can also be the path to a PEM encoded CSR when specified as file://path/to/csr or an exported string generated by openssl_csr_export().

cacert

The generated certificate will be signed by cacert . If cacert is NULL, the generated certificate will be a self-signed certificate.

priv_key

priv_key is the private key that corresponds to cacert .

days

days specifies the length of time for which the generated certificate will be valid, in days.

configargs

You can finetune the CSR signing by configargs . See openssl_csr_new() for more information about configargs .

serial

An optional the serial number of issued certificate. If not specified it will default to 0.

返回值

Returns an x509 certificate resource on success, FALSE on failure.

更新日志

版本 | 说明
4.3.3 | The serial parameter was added.

范例

Example #1 openssl_csr_sign() example - signing a CSR (how to implement your own CA)

<?php
// Let's assume that this script is set to receive a CSR that has
// been pasted into a textarea from another page
$csrdata = $_POST["CSR"];

// We will sign the request using our own "certificate authority"
// certificate.  You can use any certificate to sign another, but
// the process is worthless unless the signing certificate is trusted
// by the software/users that will deal with the newly signed certificate

// We need our CA cert and its private key
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Now display the generated certificate so that the user can
// copy and paste it into their local configuration (such as a file
// to hold the certificate for their SSL server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

openssl_csr_new
openssl_error_string
OpenSSL 函数


Return openSSL error message

openssl_csr_sign
openssl_free_key
OpenSSL 函数
PHP 手册

openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_string — Return openSSL error message

说明

string openssl_error_string ( void )

openssl_error_string() returns the last error from the openSSL library. Error messages are stacked, so this function should be called multiple times to collect all of the information.

返回值

Returns an error message string, or FALSE if there are no more error messages to return.

范例

Example #1 openssl_error_string() example

<?php
// lets assume you just called an openssl function that failed
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>

openssl_csr_sign
openssl_free_key
OpenSSL 函数


Free key resource

openssl_error_string
openssl_get_privatekey
OpenSSL 函数
PHP 手册

openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_key — Free key resource

说明

void openssl_free_key ( resource $key_identifier )

openssl_free_key() frees the key associated with the specified key_identifier from memory.

参数

key_identifier

返回值

无返回值。

openssl_error_string
openssl_get_privatekey
OpenSSL 函数


别名 openssl_pkey_get_private

openssl_free_key
openssl_get_publickey
OpenSSL 函数
PHP 手册

openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekey — 别名 openssl_pkey_get_private()

说明

本函数是该函数的别名： openssl_pkey_get_private().

openssl_free_key
openssl_get_publickey
OpenSSL 函数


别名 openssl_pkey_get_public

openssl_get_privatekey
openssl_open
OpenSSL 函数
PHP 手册

openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickey — 别名 openssl_pkey_get_public()

说明

本函数是该函数的别名： openssl_pkey_get_public().

openssl_get_privatekey
openssl_open
OpenSSL 函数


Open sealed data

openssl_get_publickey
openssl_pkcs12_export_to_file
OpenSSL 函数
PHP 手册

openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_open — Open sealed data

说明

bool openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id )

openssl_open() opens (decrypts) sealed_data using the private key associated with the key identifier priv_key_id and the envelope key env_key , and fills open_data with the decrypted data. The envelope key is generated when the data are sealed and can only be used by one specific private key. See openssl_seal() for more information.

参数

sealed_data

open_data

If the call is successful the opened data is returned in this parameter.

env_key

priv_key_id

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 openssl_open() example

<?php
// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "here is the opened data: ", $open;
} else {
    echo "failed to open data";
}

// free the private key from memory
openssl_free_key($pkeyid);
?>

参见

  • openssl_seal() - Seal (encrypt) data

openssl_get_publickey
openssl_pkcs12_export_to_file
OpenSSL 函数


Exports a PKCS#12 Compatible Certificate Store File

openssl_open
openssl_pkcs12_export
OpenSSL 函数
PHP 手册

openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2)

openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File

说明

bool openssl_pkcs12_export_to_file ( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export_to_file() stores x509 into a file named by filename in a PKCS#12 file format.

参数

x509

filename

Path to the output file.

priv_key

Private key component of PKCS#12 file.

pass

Encryption password for unlocking the PKCS#12 file.

args

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_open
openssl_pkcs12_export
OpenSSL 函数


Exports a PKCS#12 Compatible Certificate Store File to variable.

openssl_pkcs12_export_to_file
openssl_pkcs12_read
OpenSSL 函数
PHP 手册

openssl_pkcs12_export

(PHP 5 >= 5.2.2)

openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable.

说明

bool openssl_pkcs12_export ( mixed $x509 , string &$out , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export() stores x509 into a string named by out in a PKCS#12 file format.

参数

x509

out

On success, this will hold the PKCS#12.

priv_key

Private key component of PKCS#12 file.

pass

Encryption password for unlocking the PKCS#12 file.

args

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_pkcs12_export_to_file
openssl_pkcs12_read
OpenSSL 函数


Parse a PKCS#12 Certificate Store into an array

openssl_pkcs12_export
openssl_pkcs7_decrypt
OpenSSL 函数
PHP 手册

openssl_pkcs12_read

(PHP 5 >= 5.2.2)

openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array

说明

bool openssl_pkcs12_read ( string $pkcs12 , array &$certs , string $pass )

openssl_pkcs12_read() parses the PKCS#12 certificate store supplied by pkcs12 into a array named certs .

参数

pkcs12

certs

On success, this will hold the Certificate Store Data.

pass

Encryption password for unlocking the PKCS#12 file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_pkcs12_export
openssl_pkcs7_decrypt
OpenSSL 函数


Decrypts an S/MIME encrypted message

openssl_pkcs12_read
openssl_pkcs7_encrypt
OpenSSL 函数
PHP 手册

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message

说明

bool openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ] )

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and its associated private key specified by recipcert and recipkey .

参数

infilename

outfilename

The decrypted message is written to the file specified by outfilename .

recipcert

recipkey

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 openssl_pkcs7_decrypt() example

<?php
// $cert and $key are assumed to contain your personal certificate and private
// key pair, and that you are the recipient of an S/MIME message
$infilename = "encrypted.msg";  // this file holds your encrypted message
$outfilename = "decrypted.msg"; // make sure you can write to this file

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "decrypted!";
} else {
    echo "failed to decrypt!";
}
?>

openssl_pkcs12_read
openssl_pkcs7_encrypt
OpenSSL 函数


Encrypt an S/MIME message

openssl_pkcs7_decrypt
openssl_pkcs7_sign
OpenSSL 函数
PHP 手册

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt — Encrypt an S/MIME message

说明

bool openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags=0 [, int $cipherid=OPENSSL_CIPHER_RC2_40 ]] )

openssl_pkcs7_encrypt() takes the contents of the file named infile and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by recipcerts .

参数

infile

outfile

recipcerts

Either a lone X.509 certificate, or an array of X.509 certificates.

headers

headers is an array of headers that will be prepended to the data after it has been encrypted.

headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

flags

flags can be used to specify options that affect the encoding process - see PKCS7 constants.

cipherid

Cipher can be selected with cipherid .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.0.0 | The cipherid parameter was added.

范例

Example #1 openssl_pkcs7_encrypt() example

<?php
// the message you want to encrypt and send to your secret agent
// in the field, known as nighthawk.  You have his certificate
// in the file nighthawk.pem
$data = <<<EOD
Nighthawk,

Top secret, for your eyes only!

The enemy is closing in! Meet me at the cafe at 8.30am
to collect your forged passport!

HQ
EOD;

// load key
$key = file_get_contents("nighthawk.pem");

// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// encrypt it
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Eyes only"))) {
    // message encrypted - send it!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

openssl_pkcs7_decrypt
openssl_pkcs7_sign
OpenSSL 函数


Sign an S/MIME message

openssl_pkcs7_encrypt
openssl_pkcs7_verify
OpenSSL 函数
PHP 手册

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign — Sign an S/MIME message

说明

bool openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags=PKCS7_DETACHED [, string $extracerts ]] )

openssl_pkcs7_sign() takes the contents of the file named infilename and signs them using the certificate and its matching private key specified by signcert and privkey parameters.

参数

infilename

outfilename

signcert

privkey

headers

headers is an array of headers that will be prepended to the data after it has been signed (see openssl_pkcs7_encrypt() for more information about the format of this parameter.

flags

flags can be used to alter the output - see PKCS7 constants - if not specified, it defaults to PKCS7_DETACHED.

extracerts

extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 openssl_pkcs7_sign() example

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From: HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

openssl_pkcs7_encrypt
openssl_pkcs7_verify
OpenSSL 函数


Verifies the signature of an S/MIME signed message

openssl_pkcs7_sign
openssl_pkey_export_to_file
OpenSSL 函数
PHP 手册

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message

说明

mixed openssl_pkcs7_verify ( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content ]]]] )

openssl_pkcs7_verify() reads the S/MIME message contained in the given file and examines the digital signature.

参数

filename

Path to the message.

flags

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

outfilename

If the outfilename is specified, it should be a string holding the name of a file into which the certificates of the persons that signed the messages will be stored in PEM format.

cainfo

If the cainfo is specified, it should hold information about the trusted CA certificates to use in the verification process - see certificate verification for more information about this parameter.

extracerts

If the extracerts is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

content

You can specify a filename with content that will be filled with the verified data, but with the signature information stripped.

返回值

Returns TRUE if the signature is verified, FALSE if it is not correct (the message has been tampered with, or the signing certificate is invalid), or -1 on error.

更新日志

版本 | 说明
5.1.0 | The content parameter was added.

openssl_pkcs7_sign
openssl_pkey_export_to_file
OpenSSL 函数


Gets an exportable representation of a key into a file

openssl_pkcs7_verify
openssl_pkey_export
OpenSSL 函数
PHP 手册

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_file — Gets an exportable representation of a key into a file

说明

bool openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] )

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by outfilename .

Note: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

参数

key

outfilename

Path to the output file.

passphrase

The key can be optionally protected by a passphrase .

configargs

configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_pkcs7_verify
openssl_pkey_export
OpenSSL 函数


Gets an exportable representation of a key into a string

openssl_pkey_export_to_file
openssl_pkey_free
OpenSSL 函数
PHP 手册

openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export — Gets an exportable representation of a key into a string

说明

bool openssl_pkey_export ( mixed $key , string &$out [, string $passphrase [, array $configargs ]] )

openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference).

Note: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

参数

key

out

passphrase

The key is optionally protected by passphrase .

configargs

configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_pkey_export_to_file
openssl_pkey_free
OpenSSL 函数


Frees a private key

openssl_pkey_export
openssl_pkey_get_details
OpenSSL 函数
PHP 手册

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_free — Frees a private key

说明

void openssl_pkey_free ( resource $key )

This function frees a private key created by openssl_pkey_new().

参数

key

Resource holding the key.

返回值

无返回值。

openssl_pkey_export
openssl_pkey_get_details
OpenSSL 函数


Returns an array with the key details

openssl_pkey_free
openssl_pkey_get_private
OpenSSL 函数
PHP 手册

openssl_pkey_get_details

(PHP 5 >= 5.2.0)

openssl_pkey_get_details — Returns an array with the key details

说明

array openssl_pkey_get_details ( resource $key )

This function returns the key details (bits, key, type).

参数

key

Resource holding the key.

返回值

Returns an array with the key details in success or FALSE in failure. Returned array has indexes bits (number of bits), key (string representation of the public key) and type (type of the key which is one of OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC or -1 meaning unknown).

openssl_pkey_free
openssl_pkey_get_private
OpenSSL 函数


Get a private key

openssl_pkey_get_details
openssl_pkey_get_public
OpenSSL 函数
PHP 手册

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_private — Get a private key

说明

resource openssl_pkey_get_private ( mixed $key [, string $passphrase="" ] )

openssl_get_privatekey() parses key and prepares it for use by other functions.

参数

key

key can be one of the following:

  1. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).
  2. A PEM formatted private key.

passphrase

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

返回值

Returns a positive key resource identifier on success, or FALSE on error.

openssl_pkey_get_details
openssl_pkey_get_public
OpenSSL 函数


Extract public key from certificate and prepare it for use

openssl_pkey_get_private
openssl_pkey_new
OpenSSL 函数
PHP 手册

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_public — Extract public key from certificate and prepare it for use

说明

resource openssl_pkey_get_public ( mixed $certificate )

openssl_get_publickey() extracts the public key from certificate and prepares it for use by other functions.

参数

certificate

certificate can be one of the following:

  1. an X.509 certificate resource
  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).
  3. A PEM formatted private key.

返回值

Returns a positive key resource identifier on success, or FALSE on error.

openssl_pkey_get_private
openssl_pkey_new
OpenSSL 函数


Generates a new private key

openssl_pkey_get_public
openssl_private_decrypt
OpenSSL 函数
PHP 手册

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_new — Generates a new private key

说明

resource openssl_pkey_new ([ array $configargs ] )

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public().

Note: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

参数

configargs

You can finetune the key generation (such as specifying the number of bits) using configargs . See openssl_csr_new() for more information about configargs .

返回值

Returns a resource identifier for the pkey on success, or FALSE on error.

openssl_pkey_get_public
openssl_private_decrypt
OpenSSL 函数


Decrypts data with private key

openssl_pkey_new
openssl_private_encrypt
OpenSSL 函数
PHP 手册

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt — Decrypts data with private key

说明

bool openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding=OPENSSL_PKCS1_PADDING ] )

openssl_private_decrypt() decrypts data that was previous encrypted via openssl_public_encrypt() and stores the result into decrypted .

You can use this function e.g. to decrypt data which were supposed only to you.

参数

data

decrypted

key

key must be the private key corresponding that was used to encrypt the data.

padding

padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openssl_public_encrypt() - Encrypts data with public key
  • openssl_public_decrypt() - Decrypts data with public key

openssl_pkey_new
openssl_private_encrypt
OpenSSL 函数


Encrypts data with private key

openssl_private_decrypt
openssl_public_decrypt
OpenSSL 函数
PHP 手册

openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encrypt — Encrypts data with private key

说明

bool openssl_private_encrypt ( string $data , string &$crypted , mixed $key [, int $padding=OPENSSL_PKCS1_PADDING ] )

openssl_private_encrypt() encrypts data with private key and stores the result into crypted . Encrypted data can be decrypted via openssl_public_decrypt().

This function can be used e.g. to sign data (or its hash) to prove that it is not written by someone else.

参数

data

crypted

key

padding

padding defaults to OPENSSL_PKCS1_PADDING, but can also be OPENSSL_NO_PADDING.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openssl_public_encrypt() - Encrypts data with public key
  • openssl_public_decrypt() - Decrypts data with public key

openssl_private_decrypt
openssl_public_decrypt
OpenSSL 函数


Decrypts data with public key

openssl_private_encrypt
openssl_public_encrypt
OpenSSL 函数
PHP 手册

openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decrypt — Decrypts data with public key

说明

bool openssl_public_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding=OPENSSL_PKCS1_PADDING ] )

openssl_public_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted .

You can use this function e.g. to check if the message was written by the owner of the private key.

参数

data

decrypted

key

key must be the public key corresponding that was used to encrypt the data.

padding

padding defaults to OPENSSL_PKCS1_PADDING, but can also be OPENSSL_NO_PADDING.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openssl_private_encrypt() - Encrypts data with private key
  • openssl_private_decrypt() - Decrypts data with private key

openssl_private_encrypt
openssl_public_encrypt
OpenSSL 函数


Encrypts data with public key

openssl_public_decrypt
openssl_seal
OpenSSL 函数
PHP 手册

openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encrypt — Encrypts data with public key

说明

bool openssl_public_encrypt ( string $data , string &$crypted , mixed $key [, int $padding=OPENSSL_PKCS1_PADDING ] )

openssl_public_encrypt() encrypts data with public key and stores the result into crypted . Encrypted data can be decrypted via openssl_private_decrypt().

This function can be used e.g. to encrypt message which can be then read only by owner of the private key. It can be also used to store secure data in database.

参数

data

crypted

This will hold the result of the encryption.

key

The public key.

padding

padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • openssl_private_encrypt() - Encrypts data with private key
  • openssl_private_decrypt() - Decrypts data with private key

openssl_public_decrypt
openssl_seal
OpenSSL 函数


Seal (encrypt) data

openssl_public_encrypt
openssl_sign
OpenSSL 函数
PHP 手册

openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_seal — Seal (encrypt) data

说明

int openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids )

openssl_seal() seals (encrypts) data by using RC4 with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in pub_key_ids and each encrypted key is returned in env_keys . This means that one can send sealed data to multiple recipients (provided one has obtained their public keys). Each recipient must receive both the sealed data and the envelope key that was encrypted with the recipient's public key.

参数

data

sealed_data

env_keys

pub_key_ids

返回值

Returns the length of the sealed data on success, or FALSE on error. If successful the sealed data is returned in sealed_data , and the envelope keys in env_keys .

范例

Example #1 openssl_seal() example

<?php
// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Repeat for second recipient
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

参见

  • openssl_open() - Open sealed data

openssl_public_encrypt
openssl_sign
OpenSSL 函数


Generate signature

openssl_seal
openssl_verify
OpenSSL 函数
PHP 手册

openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_sign — Generate signature

说明

bool openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, int $signature_alg=OPENSSL_ALGO_SHA1 ] )

openssl_sign() computes a signature for the specified data by using SHA1 for hashing followed by encryption using the private key associated with priv_key_id . Note that the data itself is not encrypted.

参数

data

signature

If the call was successful the signature is returned in signature .

priv_key_id

signature_alg

Defaults to OPENSSL_ALGO_SHA1. For more information see the list of Signature Algorithms.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.0.0 | The signature_alg parameter was added.

范例

Example #1 openssl_sign() example

<?php
// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);
?>

参见

  • openssl_verify() - Verify signature

openssl_seal
openssl_verify
OpenSSL 函数


Verify signature

openssl_sign
openssl_x509_check_private_key
OpenSSL 函数
PHP 手册

openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify — Verify signature

说明

int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, int $signature_alg ] )

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id . This must be the public key corresponding to the private key used for signing.

参数

data

signature

pub_key_id

signature_alg

Defaults to OPENSSL_ALGO_SHA1. For more information see the list of Signature Algorithms.

返回值

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

更新日志

版本 | 说明
5.0.0 | The signature_alg parameter was added.

范例

Example #1 openssl_verify() example

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "good";
} elseif ($ok == 0) {
    echo "bad";
} else {
    echo "ugly, error checking signature";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>

参见

  • openssl_sign() - Generate signature

openssl_sign
openssl_x509_check_private_key
OpenSSL 函数


Checks if a private key corresponds to a certificate

openssl_verify
openssl_x509_checkpurpose
OpenSSL 函数
PHP 手册

openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_key — Checks if a private key corresponds to a certificate

说明

bool openssl_x509_check_private_key ( mixed $cert , mixed $key )

Checks whether the given key is the private key that corresponds to cert .

参数

cert

The certificate.

key

The private key.

返回值

Returns TRUE if key is the private key that corresponds to cert , or FALSE otherwise.

openssl_verify
openssl_x509_checkpurpose
OpenSSL 函数


Verifies if a certificate can be used for a particular purpose

openssl_x509_check_private_key
openssl_x509_export_to_file
OpenSSL 函数
PHP 手册

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose

说明

int openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo [, string $untrustedfile ]] )

openssl_x509_checkpurpose() examines a certificate to see if it can be used for the specified purpose .

参数

x509cert

The examined certificate.

purpose

openssl_x509_checkpurpose() purposes
Constant | Description
X509_PURPOSE_SSL_CLIENT | Can the certificate be used for the client side of an SSL connection?
X509_PURPOSE_SSL_SERVER | Can the certificate be used for the server side of an SSL connection?
X509_PURPOSE_NS_SSL_SERVER | Can the cert be used for Netscape SSL server?
X509_PURPOSE_SMIME_SIGN | Can the cert be used to sign S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Can the cert be used to encrypt S/MIME email?
X509_PURPOSE_CRL_SIGN | Can the cert be used to sign a certificate revocation list (CRL)?
X509_PURPOSE_ANY | Can the cert be used for Any/All purposes?

These options are not bitfields - you may specify one only!

cainfo

cainfo should be an array of trusted CA files/dirs as described in Certificate Verification. It defaults to an empty array.

untrustedfile

If specified, this should be the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust is placed in the certificates that come from that file.

返回值

Returns TRUE if the certificate can be used for the intended purpose, FALSE if it cannot, or -1 on error.

openssl_x509_check_private_key
openssl_x509_export_to_file
OpenSSL 函数


Exports a certificate to file

openssl_x509_checkpurpose
openssl_x509_export
OpenSSL 函数
PHP 手册

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_file — Exports a certificate to file

说明

bool openssl_x509_export_to_file ( mixed $x509 , string $outfilename [, bool $notext ] )

openssl_x509_export_to_file() stores x509 into a file named by outfilename in a PEM encoded format.

参数

x509

outfilename

Path to the output file.

notext

The optional parameter notext affects the verbosity of the output; if it is FALSE, then additional human-readable information is included in the output. The default value of notext is TRUE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_x509_checkpurpose
openssl_x509_export
OpenSSL 函数


Exports a certificate as a string

openssl_x509_export_to_file
openssl_x509_free
OpenSSL 函数
PHP 手册

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export — Exports a certificate as a string

说明

bool openssl_x509_export ( mixed $x509 , string &$output [, bool $notext ] )

openssl_x509_export() stores x509 into a string named by output in a PEM encoded format.

参数

x509

output

On success, this will hold the PEM.

notext

The optional parameter notext affects the verbosity of the output; if it is FALSE, then additional human-readable information is included in the output. The default value of notext is TRUE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

openssl_x509_export_to_file
openssl_x509_free
OpenSSL 函数


Free certificate resource

openssl_x509_export
openssl_x509_parse
OpenSSL 函数
PHP 手册

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_free — Free certificate resource

说明

void openssl_x509_free ( resource $x509cert )

openssl_x509_free() frees the certificate associated with the specified x509cert resource from memory.

参数

x509cert

返回值

无返回值。

openssl_x509_export
openssl_x509_parse
OpenSSL 函数


Parse an X509 certificate and return the information as an array

openssl_x509_free
openssl_x509_read
OpenSSL 函数
PHP 手册

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parse — Parse an X509 certificate and return the information as an array

说明

array openssl_x509_parse ( mixed $x509cert [, bool $shortnames=true ] )

openssl_x509_parse() returns information about the supplied x509cert , including fields such as subject name, issuer name, purposes, valid from and valid to dates etc.

参数

x509cert

shortnames

shortnames controls how the data is indexed in the array - if shortnames is TRUE (the default) then fields will be indexed with the short name form, otherwise, the long name form will be used - e.g.: CN is the shortname form of commonName.

返回值

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.

openssl_x509_free
openssl_x509_read
OpenSSL 函数


Parse an X.509 certificate and return a resource identifier for it

openssl_x509_parse
数据库扩展
OpenSSL 函数
PHP 手册

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_read — Parse an X.509 certificate and return a resource identifier for it

说明

resource openssl_x509_read ( mixed $x509certdata )

openssl_x509_read() parses the certificate supplied by x509certdata and returns a resource identifier for it.

参数

x509certdata

返回值

Returns a resource identifier on success, or FALSE on failure.

openssl_x509_parse
数据库扩展
OpenSSL 函数


数据库扩展

  • 数据库抽象层
    • DBA — Database (dbm-style) Abstraction Layer
    • dbx
    • ODBC — ODBC (Unified)
    • PDO — PHP Data Objects
  • 与具体数据库系统相关的扩展
    • dBase
    • DB++
    • FrontBase
    • filePro
    • Firebird/InterBase
    • Informix
    • IBM DB2 — IBM DB2, Cloudscape and Apache Derby
    • Ingres
    • MaxDB
    • mSQL
    • Mssql — Microsoft SQL Server
    • MySQL
    • Mysqli — MySQL Improved Extension
    • OCI8 — Oracle OCI8
    • Ovrimos SQL
    • Paradox — Paradox File Access
    • PostgreSQL
    • SQLite
    • SQLite3
    • Sybase
openssl_x509_read
数据库抽象层
函数参考


数据库抽象层

  • DBA — Database (dbm-style) Abstraction Layer
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • DBA 函数
  • dbx
    • 简介
    • 安装/配置
    • 预定义常量
    • dbx 函数
  • ODBC — ODBC (Unified)
    • 简介
    • 安装/配置
    • 预定义常量
    • ODBC 函数
  • PDO — PHP Data Objects
    • 简介
    • 安装/配置
    • 预定义常量
    • Connections and Connection management
    • Transactions and auto-commit
    • Prepared statements and stored procedures
    • Errors and error handling
    • Large Objects (LOBs)
    • PDO — The PDO class
    • PDOStatement — The PDOStatement class
    • PDOException — The PDOException class
    • PDO Drivers
数据库扩展
DBA
数据库扩展


Database (dbm-style) Abstraction Layer

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic usage
  • DBA 函数
    • dba_close — Close a DBA database
    • dba_delete — Delete DBA entry specified by key
    • dba_exists — Check whether key exists
    • dba_fetch — Fetch data specified by key
    • dba_firstkey — Fetch first key
    • dba_handlers — List all the handlers available
    • dba_insert — Insert entry
    • dba_key_split — Splits a key in string representation into array representation
    • dba_list — List all open database files
    • dba_nextkey — Fetch next key
    • dba_open — Open database
    • dba_optimize — Optimize database
    • dba_popen — Open database persistently
    • dba_replace — Replace or insert entry
    • dba_sync — Synchronize database
数据库抽象层
简介
数据库抽象层


简介

These functions build the foundation for accessing Berkeley DB style databases.

This is a general abstraction layer for several file-based databases. As such, functionality is limited to a common subset of features supported by modern databases such as » Sleepycat Software's DB2. (This is not to be confused with IBM's DB2 software, which is supported through the ODBC functions.)

DBA
安装/配置
DBA


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
DBA


需求

The behaviour of various aspects depends on the implementation of the underlying database. Functions such as dba_optimize() and dba_sync() will do what they promise for one database and will do nothing for others. You have to download and install supported dba-Handlers.

List of DBA handlers
Handler | Notes
dbm | Dbm is the oldest (original) type of Berkeley DB style databases. You should avoid it, if possible. We do not support the compatibility functions built into DB2 and gdbm, because they are only compatible on the source code level, but cannot handle the original dbm format.
ndbm | Ndbm is a newer type and more flexible than dbm. It still has most of the arbitrary limits of dbm (therefore it is deprecated).
gdbm | Gdbm is the » GNU database manager.
db2 | DB2 is » Sleepycat Software's DB2. It is described as "a programmatic toolkit that provides high-performance built-in database support for both standalone and client/server applications.
db3 | DB3 is » Sleepycat Software's DB3.
db4 | DB4 is » Sleepycat Software's DB4. This is available since PHP 4.3.2.
cdb | Cdb is "a fast, reliable, lightweight package for creating and reading constant databases." It is from the author of qmail and can be found at » http://cr.yp.to/cdb.html. Since it is constant, we support only reading operations. And since PHP 4.3.0 we support writing (not updating) through the internal cdb library.
cdb_make | Since PHP 4.3.0 we support creation (not updating) of cdb files when the bundled cdb library is used.
flatfile | This is available since PHP 4.3.0 for compatibility with the deprecated dbm extension only and should be avoided. However you may use this where files were created in this format. That happens when configure could not find any external library.
inifile | This is available since PHP 4.3.3 to be able to modify php.ini files from within PHP scripts. When working with ini files you can pass arrays of the form array(0=>group,1=>value_name) or strings of the form "[group]value_name" where group is optional. As the functions dba_firstkey() and dba_nextkey() return string representations of the key there is a new function dba_key_split() available since PHP 5 which allows to convert the string keys into array keys without loosing FALSE.
qdbm | This is available since PHP 5.0.0. The qdbm library can be loaded from » http://qdbm.sourceforge.net.

When invoking the dba_open() or dba_popen() functions, one of the handler names must be supplied as an argument. The actually available list of handlers is displayed by invoking phpinfo() or dba_handlers().

安装/配置
安装
安装/配置


安装

By using the --enable-dba=shared configuration option you can build a dynamic loadable module to enable PHP for basic support of dbm-style databases. You also have to add support for at least one of the following handlers by specifying the --with-XXXX configure switch to your PHP configure line.

Warning

After configuring and compiling PHP you must execute the following test from commandline: php run-tests.php ext/dba. This shows whether your combination of handlers works. Most problematic are dbm and ndbm which conflict with many installations. The reason for this is that on several systems these libraries are part of more than one other library. The configuration test only prevents you from configuring malfunctioning single handlers but not combinations.

Supported DBA handlers
Handler | Configure Switch
dbm

To enable support for dbm add --with-dbm[=DIR].

Note: dbm normally is a wrapper which often results in failures. This means you should only use dbm if you are sure it works and if you really need this format.

ndbm

To enable support for ndbm add --with-ndbm[=DIR].

Note: ndbm normally is a wrapper which often results in failures. This means you should only use ndbm if you are sure it works and if you really need this format.

gdbm | To enable support for gdbm add --with-gdbm[=DIR].
db2

To enable support for db2 add --with-db2[=DIR].

Note: db2 conflicts with db3 and db4.

db3

To enable support for db3 add --with-db3[=DIR].

Note: db3 conflicts with db2 and db4.

db4

To enable support for db4 add --with-db4[=DIR].

Note: db4 conflicts with db2 and db3.

Note: This was added in PHP 4.3.2. In earlier versions of PHP you need to use --with-db3=DIR with DIR being the path to db4 library. It is not possible to use db versions starting from 4.1 with PHP prior to version 4.3.0. Also, the db libraries with versions 4.1 through 4.1.24 cannot be used in any PHP version.

cdb

To enable support for cdb add --with-cdb[=DIR].

Note: Since PHP 4.3.0 you can omit DIR to use the bundled cdb library that adds the cdb_make handler which allows creation of cdb files and allows to access cdb files on the network using PHP's streams.

flatfile

To enable support for flatfile add --with-flatfile.

Note: This was added in PHP 4.3.0 to add compatibility with deprecated dbm extension. Use this handler only when you cannot install one of the libraries required by the other handlers and when you cannot use bundled cdb handler.

inifile

To enable support for inifile add --with-inifile.

Note: This was added in PHP 5.0.0 and allows to read and set microsoft style .ini files (like the php.ini file).

qdbm

To enable support for qdbm add --with-qdbm[=DIR].

Note: qdbm conflicts with dbm and gdbm.

Note: This was added in PHP 5.0.0. The qdbm library can be loaded from » http://qdbm.sourceforge.net.

Note: Up to PHP 4.3.0 you are able to add both db2 and db3 handler but only one of them can be used internally. That means that you cannot have both file formats. Starting with PHP 5.0.0 there is a configuration check avoid such misconfigurations.

需求
运行时配置
安装/配置


资源类型

The functions dba_open() and dba_popen() return a handle to the specified database file to access which is used by all other dba-function calls.

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
DBA


范例

Table of Contents

  • Basic usage
预定义常量
Basic usage
DBA


Basic usage

Example #1 DBA example

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open failed\n";
    exit;
}

dba_replace("key", "This is an example!", $id);

if (dba_exists("key", $id)) {
    echo dba_fetch("key", $id);
    dba_delete("key", $id);
}

dba_close($id);
?>

DBA is binary safe and does not have any arbitrary limits. However, it inherits all limits set by the underlying database implementation.

All file-based databases must provide a way of setting the file mode of a new created database, if that is possible at all. The file mode is commonly passed as the fourth argument to dba_open() or dba_popen().

You can access all entries of a database in a linear way by using the dba_firstkey() and dba_nextkey() functions. You may not change the database while traversing it.

Example #2 Traversing a database

<?php

// ...open database...

$key = dba_firstkey($id);

while ($key != false) {
    if (true) {          // remember the key to perform some action later
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
    dba_delete($val, $id);
}

?>

范例
DBA 函数
范例


DBA 函数

Table of Contents

  • dba_close — Close a DBA database
  • dba_delete — Delete DBA entry specified by key
  • dba_exists — Check whether key exists
  • dba_fetch — Fetch data specified by key
  • dba_firstkey — Fetch first key
  • dba_handlers — List all the handlers available
  • dba_insert — Insert entry
  • dba_key_split — Splits a key in string representation into array representation
  • dba_list — List all open database files
  • dba_nextkey — Fetch next key
  • dba_open — Open database
  • dba_optimize — Optimize database
  • dba_popen — Open database persistently
  • dba_replace — Replace or insert entry
  • dba_sync — Synchronize database
Basic usage
dba_close
DBA


Close a DBA database

DBA 函数
dba_delete
DBA 函数
PHP 手册

dba_close

(PHP 4, PHP 5)

dba_close — Close a DBA database

说明

void dba_close ( resource $handle )

dba_close() closes the established database and frees all resources of the specified database handle.

参数

handle

The database handler, returned by dba_open() or dba_popen().

返回值

无返回值。

参见

  • dba_open() - Open database
  • dba_popen() - Open database persistently

DBA 函数
dba_delete
DBA 函数


Delete DBA entry specified by key

dba_close
dba_exists
DBA 函数
PHP 手册

dba_delete

(PHP 4, PHP 5)

dba_delete — Delete DBA entry specified by key

说明

bool dba_delete ( string $key , resource $handle )

dba_delete() deletes the specified entry from the database.

参数

key

The key of the entry which is deleted.

handle

The database handler, returned by dba_open() or dba_popen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • dba_exists() - Check whether key exists
  • dba_fetch() - Fetch data specified by key
  • dba_insert() - Insert entry
  • dba_replace() - Replace or insert entry

dba_close
dba_exists
DBA 函数


Check whether key exists

dba_delete
dba_fetch
DBA 函数
PHP 手册

dba_exists

(PHP 4, PHP 5)

dba_exists — Check whether key exists

说明

bool dba_exists ( string $key , resource $handle )

dba_exists() checks whether the specified key exists in the database.

参数

key

The key the check is performed for.

handle

The database handler, returned by dba_open() or dba_popen().

返回值

Returns TRUE if the key exists, FALSE otherwise.

参见

  • dba_delete() - Delete DBA entry specified by key
  • dba_fetch() - Fetch data specified by key
  • dba_insert() - Insert entry
  • dba_replace() - Replace or insert entry

dba_delete
dba_fetch
DBA 函数


Fetch data specified by key

dba_exists
dba_firstkey
DBA 函数
PHP 手册

dba_fetch

(PHP 4, PHP 5)

dba_fetch — Fetch data specified by key

说明

string dba_fetch ( string $key , resource $handle )
string dba_fetch ( string $key , int $skip , resource $handle )

dba_fetch() fetches the data specified by key from the database specified with handle .

参数

key

The key the data is specified by.

Note: When working with inifiles this function accepts arrays as keys where index 0 is the group and index 1 is the value name. See: dba_key_split().

skip

The number of key-value pairs to ignore when using cdb databases. This value is ignored for all other databases which do not support multiple keys with the same name.

handle

The database handler, returned by dba_open() or dba_popen().

返回值

Returns the associated string if the key/data pair is found, FALSE otherwise.

更新日志

版本 | 说明
4.3 | The skip parameter is available to support cdb's capability of multiple keys having the same name.

参见

  • dba_exists() - Check whether key exists
  • dba_delete() - Delete DBA entry specified by key
  • dba_insert() - Insert entry
  • dba_replace() - Replace or insert entry
  • dba_key_split() - Splits a key in string representation into array representation

dba_exists
dba_firstkey
DBA 函数


Fetch first key

dba_fetch
dba_handlers
DBA 函数
PHP 手册

dba_firstkey

(PHP 4, PHP 5)

dba_firstkey — Fetch first key

说明

string dba_firstkey ( resource $handle )

dba_firstkey() returns the first key of the database and resets the internal key pointer. This permits a linear search through the whole database.

参数

handle

The database handler, returned by dba_open() or dba_popen().

返回值

Returns the key on success, or FALSE on failure.

参见

  • dba_nextkey() - Fetch next key
  • dba_key_split() - Splits a key in string representation into array representation
  • Example 2 in the DBA examples

dba_fetch
dba_handlers
DBA 函数


List all the handlers available

dba_firstkey
dba_insert
DBA 函数
PHP 手册

dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlers — List all the handlers available

说明

array dba_handlers ([ bool $full_info=false ] )

dba_handlers() list all the handlers supported by this extension.

参数

full_info

Turns on/off full information display in the result. The default is FALSE.

返回值

Returns an array of database handlers. If full_info is set to TRUE, the array will be associative with the handlers names as keys, and their version information as value. Otherwise, the result will be an indexed array of handlers names.

Note: When the internal cdb library is used you will see cdb and cdb_make.

范例

Example #1 dba_handlers() Example

<?php

echo "Available DBA handlers:\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // clean the versions
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

上例的输出类似于：

Available DBA handlers:
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4

dba_firstkey
dba_insert
DBA 函数


Insert entry

dba_handlers
dba_key_split
DBA 函数
PHP 手册

dba_insert

(PHP 4, PHP 5)

dba_insert — Insert entry

说明

bool dba_insert ( string $key , string $value , resource $handle )

dba_insert() inserts the entry described with key and value into the database.

参数

key

The key of the entry to be inserted. If this key already exist in the database, this function will fail. Use dba_replace() if you need to replace an existent key.

value

The value to be inserted.

handle

The database handler, returned by dba_open() or dba_popen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • dba_exists() - Check whether key exists
  • dba_delete() - Delete DBA entry specified by key
  • dba_fetch() - Fetch data specified by key
  • dba_replace() - Replace or insert entry

dba_handlers
dba_key_split
DBA 函数


Splits a key in string representation into array representation

dba_insert
dba_list
DBA 函数
PHP 手册

dba_key_split

(PHP 5)

dba_key_split — Splits a key in string representation into array representation

说明

mixed dba_key_split ( mixed $key )

dba_key_split() splits a key (string representation) into an array representation.

参数

key

The key in string representation.

返回值

Returns an array of the form array(0 => group, 1 => value_name). This function will return FALSE if key is NULL or FALSE.

参见

  • dba_firstkey() - Fetch first key
  • dba_nextkey() - Fetch next key
  • dba_fetch() - Fetch data specified by key

dba_insert
dba_list
DBA 函数


List all open database files

dba_key_split
dba_nextkey
DBA 函数
PHP 手册

dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_list — List all open database files

说明

array dba_list ( void )

dba_list() list all open database files.

返回值

An associative array, in the form resourceid => filename.

dba_key_split
dba_nextkey
DBA 函数


Fetch next key

dba_list
dba_open
DBA 函数
PHP 手册

dba_nextkey

(PHP 4, PHP 5)

dba_nextkey — Fetch next key

说明

string dba_nextkey ( resource $handle )

dba_nextkey() returns the next key of the database and advances the internal key pointer.

参数

handle

The database handler, returned by dba_open() or dba_popen().

返回值

Returns the key on success, or FALSE on failure.

参见

  • dba_firstkey() - Fetch first key
  • dba_key_split() - Splits a key in string representation into array representation
  • Example 2 in the DBA examples

dba_list
dba_open
DBA 函数


Open database

dba_nextkey
dba_optimize
DBA 函数
PHP 手册

dba_open

(PHP 4, PHP 5)

dba_open — Open database

说明

resource dba_open ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_open() establishes a database instance for path with mode using handler .

参数

path

Commonly a regular path in your filesystem.

mode

It is r for read access, w for read/write access to an already existing database, c for read/write access and database creation if it doesn't currently exist, and n for create, truncate and read/write access.

Additionally you can set the database lock method with the next char. Use l to lock the database with a .lck file or d to lock the databasefile itself. It is important that all of your applications do this consistently.

If you want to test the access and do not want to wait for the lock you can add t as third character. When you are absolutely sure that you do not require database locking you can do so by using - instead of l or d. When none of d, l or - is used, dba will lock on the database file as it would with d.

Note: There can only be one writer for one database file. When you use dba on a web server and more than one request requires write operations they can only be done one after another. Also read during write is not allowed. The dba extension uses locks to prevent this. See the following table:

DBA locking
already open | mode = "rl" | mode = "rlt" | mode = "wl" | mode = "wlt" | mode = "rd" | mode = "rdt" | mode = "wd" | mode = "wdt"
not open | ok | ok | ok | ok | ok | ok | ok | ok
mode = "rl" | ok | ok | wait | false | illegal | illegal | illegal | illegal
mode = "wl" | wait | false | wait | false | illegal | illegal | illegal | illegal
mode = "rd" | illegal | illegal | illegal | illegal | ok | ok | wait | false
mode = "wd" | illegal | illegal | illegal | illegal | wait | false | wait | false

  • ok: the second call will be successfull.
  • wait: the second call waits until dba_close() is called for the first.
  • false: the second call returns false.
  • illegal: you must not mix "l" and "d" modifiers for mode parameter.

handler

The name of the handler which shall be used for accessing path . It is passed all optional parameters given to dba_open() and can act on behalf of them.

返回值

Returns a positive handle on success, or FALSE on failure.

更新日志

版本 | 说明
4.3.0 | It's possible to open database files over network connection. However in cases a socket connection will be used (as with http or ftp) the connection will be locked instead of the resource itself. This is important to know since in such cases locking is simply ignored on the resource and other solutions have to be found.
4.3.0 | Locking and the mode modifiers "l", "d", "-" and "t" were added. In previous PHP versions, you must use semaphores to guard against simultaneous database access for any database handler with the exception of GDBM. See System V semaphore support.
before 4.3.5 | open mode 'c' is broken for several internal handlers and truncates the database instead of appending data to an existent database. Also dbm and ndbm fail on mode 'c' in typical configurations (this cannot be fixed).

参见

  • dba_popen() - Open database persistently
  • dba_close() - Close a DBA database

dba_nextkey
dba_optimize
DBA 函数


Optimize database

dba_open
dba_popen
DBA 函数
PHP 手册

dba_optimize

(PHP 4, PHP 5)

dba_optimize — Optimize database

说明

bool dba_optimize ( resource $handle )

dba_optimize() optimizes the underlying database.

参数

handle

The database handler, returned by dba_open() or dba_popen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • dba_sync() - Synchronize database

dba_open
dba_popen
DBA 函数


Open database persistently

dba_optimize
dba_replace
DBA 函数
PHP 手册

dba_popen

(PHP 4, PHP 5)

dba_popen — Open database persistently

说明

resource dba_popen ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_popen() establishes a persistent database instance for path with mode using handler .

参数

path

Commonly a regular path in your filesystem.

mode

It is r for read access, w for read/write access to an already existing database, c for read/write access and database creation if it doesn't currently exist, and n for create, truncate and read/write access.

handler

The name of the handler which shall be used for accessing path . It is passed all optional parameters given to dba_popen() and can act on behalf of them.

返回值

Returns a positive handle on success, or FALSE on failure.

参见

  • dba_open() - Open database
  • dba_close() - Close a DBA database

dba_optimize
dba_replace
DBA 函数


Replace or insert entry

dba_popen
dba_sync
DBA 函数
PHP 手册

dba_replace

(PHP 4, PHP 5)

dba_replace — Replace or insert entry

说明

bool dba_replace ( string $key , string $value , resource $handle )

dba_replace() replaces or inserts the entry described with key and value into the database specified by handle .

参数

key

The key of the entry to be replaced.

value

The value to be replaced.

handle

The database handler, returned by dba_open() or dba_popen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • dba_exists() - Check whether key exists
  • dba_delete() - Delete DBA entry specified by key
  • dba_fetch() - Fetch data specified by key
  • dba_insert() - Insert entry

dba_popen
dba_sync
DBA 函数


Synchronize database

dba_replace
dbx
DBA 函数
PHP 手册

dba_sync

(PHP 4, PHP 5)

dba_sync — Synchronize database

说明

bool dba_sync ( resource $handle )

dba_sync() synchronizes the database. This will probably trigger a physical write to the disk, if supported.

参数

handle

The database handler, returned by dba_open() or dba_popen().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • dba_optimize() - Optimize database

dba_replace
dbx
DBA 函数


dbx

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • dbx 函数
    • dbx_close — Close an open connection/database
    • dbx_compare — Compare two rows for sorting purposes
    • dbx_connect — Open a connection/database
    • dbx_error — Report the error message of the latest function call in the module
    • dbx_escape_string — Escape a string so it can safely be used in an sql-statement
    • dbx_fetch_row — Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
    • dbx_query — Send a query and fetch all results (if any)
    • dbx_sort — Sort a result from a dbx_query by a custom sort function
dba_sync
简介
数据库抽象层


简介

The dbx module is a database abstraction layer (db 'X', where 'X' is a supported database). The dbx functions allow you to access all supported databases using a single calling convention. The dbx-functions themselves do not interface directly to the databases, but interface to the modules that are used to support these databases.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

dbx
安装/配置
dbx


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
dbx


需求

To be able to use a database with the dbx-module, the module must be either linked or loaded into PHP, and the database module must be supported by the dbx-module. Currently, the following databases are supported, but others will follow:

  • FrontBase (available from PHP 4.1.0).
  • Microsoft SQL Server
  • MySQL
  • ODBC
  • PostgreSQL
  • Sybase-CT (available from PHP 4.2.0).
  • Oracle (oci8) (available from PHP 4.3.0).
  • SQLite (PHP 5).

Documentation for adding additional database support to dbx can be found at » http://www.guidance.nl/php/dbx/doc/.

安装/配置
安装
安装/配置


安装

In order to have these functions available, you must compile PHP with dbx support by using the --enable-dbx option and all options for the databases that will be used, e.g. for MySQL you must also specify --with-mysql=[DIR]. To get other supported databases to work with the dbx-module refer to their specific documentation.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

DBX Configuration Options
Name | Default | Changeable | Changelog
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Available since PHP 4.3.0. Removed in PHP 5.1.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

dbx.colnames_case string

Columns names can be returned "unchanged" or converted to "uppercase" or "lowercase". This directive can be overridden with a flag to dbx_query().

安装
资源类型
安装/配置


资源类型

There are two resource types used in the dbx module. The first one is the link-object for a database connection, the second a result-object which holds the result of a query.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

DBX_MYSQL (integer)
DBX_ODBC (integer)
DBX_PGSQL (integer)
DBX_MSSQL (integer)
DBX_FBSQL (integer)
DBX_OCI8 (integer) (available from PHP 4.3.0)
DBX_SYBASECT (integer)
DBX_SQLITE (integer) (PHP 5)
DBX_PERSISTENT (integer)
DBX_RESULT_INFO (integer)
DBX_RESULT_INDEX (integer)
DBX_RESULT_ASSOC (integer)
DBX_RESULT_UNBUFFERED (integer) (PHP 5)
DBX_COLNAMES_UNCHANGED (integer) (available from PHP 4.3.0)
DBX_COLNAMES_UPPERCASE (integer) (available from PHP 4.3.0)
DBX_COLNAMES_LOWERCASE (integer) (available from PHP 4.3.0)
DBX_CMP_NATIVE (integer)
DBX_CMP_TEXT (integer)
DBX_CMP_NUMBER (integer)
DBX_CMP_ASC (integer)
DBX_CMP_DESC (integer)
资源类型
dbx 函数
dbx


dbx 函数

Table of Contents

  • dbx_close — Close an open connection/database
  • dbx_compare — Compare two rows for sorting purposes
  • dbx_connect — Open a connection/database
  • dbx_error — Report the error message of the latest function call in the module
  • dbx_escape_string — Escape a string so it can safely be used in an sql-statement
  • dbx_fetch_row — Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
  • dbx_query — Send a query and fetch all results (if any)
  • dbx_sort — Sort a result from a dbx_query by a custom sort function
预定义常量
dbx_close
dbx


Close an open connection/database

dbx 函数
dbx_compare
dbx 函数
PHP 手册

dbx_close

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_close — Close an open connection/database

说明

int dbx_close ( object $link_identifier )

参数

link_identifier

The DBX link object to close.

返回值

Returns 1 on success and 0 on errors.

范例

Example #1 dbx_close() example

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

注释

Note: Always refer to the module-specific documentation as well.

参见

  • dbx_connect() - Open a connection/database

dbx 函数
dbx_compare
dbx 函数


Compare two rows for sorting purposes

dbx_close
dbx_connect
dbx 函数
PHP 手册

dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_compare — Compare two rows for sorting purposes

说明

int dbx_compare ( array $row_a , array $row_b , string $column_key [, int $flags ] )

dbx_compare() is a helper function for dbx_sort() to ease the make and use of the custom sorting function.

参数

row_a

First row

row_b

Second row

column_key

The compared column

flags

The flags can be set to specify comparison direction:

  • DBX_CMP_ASC - ascending order
  • DBX_CMP_DESC - descending order

and the preferred comparison type:

  • DBX_CMP_NATIVE - no type conversion
  • DBX_CMP_TEXT - compare items as strings
  • DBX_CMP_NUMBER - compare items numerically

One of the direction and one of the type constant can be combined with bitwise OR operator (|). The default value for the flags parameter is DBX_CMP_ASC | DBX_CMP_NATIVE.

返回值

Returns 0 if the row_a[$column_key] is equal to row_b[$column_key], and 1 or -1 if the former is greater or is smaller than the latter one, respectively, or vice versa if the flag is set to DBX_CMP_DESC.

范例

Example #1 dbx_compare() example

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // data in $result is now ordered by id

dbx_sort($result, "user_re_order");
    // date in $result is now ordered by parentid (descending), then by id

dbx_close($link);
?>

参见

  • dbx_sort() - Sort a result from a dbx_query by a custom sort function

dbx_close
dbx_connect
dbx 函数


Open a connection/database

dbx_compare
dbx_error
dbx 函数
PHP 手册

dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_connect — Open a connection/database

说明

object dbx_connect ( mixed $module , string $host , string $database , string $username , string $password [, int $persistent ] )

Opens a connection to a database.

参数

module

The module parameter can be either a string or a constant, though the latter form is preferred. The possible values are given below, but keep in mind that they only work if the module is actually loaded.

  • DBX_MYSQL or "mysql"
  • DBX_ODBC or "odbc"
  • DBX_PGSQL or "pgsql"
  • DBX_MSSQL or "mssql"
  • DBX_FBSQL or "fbsql" (available from PHP 4.1.0)
  • DBX_SYBASECT or "sybase_ct" (available from PHP 4.2.0)
  • DBX_OCI8 or "oci8" (available from PHP 4.3.0)
  • DBX_SQLITE or "sqlite" (PHP 5)

host

The SQL server host

database

The database name

username

The username

password

The password

persistent

The persistent parameter can be set to DBX_PERSISTENT, if so, a persistent connection will be created.

The host , database , username and password parameters are expected, but not always used depending on the connect functions for the abstracted module.

返回值

Returns an object on success, FALSE on error. If a connection has been made but the database could not be selected, the connection is closed and FALSE is returned.

The returned object has three properties:

database
It is the name of the currently selected database.
handle

It is a valid handle for the connected database, and as such it can be used in module-specific functions (if required).

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) would be better here
?>

module
It is used internally by dbx only, and is actually the module number mentioned above.

范例

Example #1 dbx_connect() example

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

注释

Note: Always refer to the module-specific documentation as well.

参见

  • dbx_close() - Close an open connection/database

dbx_compare
dbx_error
dbx 函数


Report the error message of the latest function call in the module

dbx_connect
dbx_escape_string
dbx 函数
PHP 手册

dbx_error

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_error — Report the error message of the latest function call in the module

说明

string dbx_error ( object $link_identifier )

dbx_error() returns the last error message.

参数

link_identifier

The DBX link object returned by dbx_connect()

返回值

Returns a string containing the error message from the last function call of the abstracted module (e.g. mysql module). If there are multiple connections in the same module, just the last error is given. If there are connections on different modules, the latest error is returned for the module specified by the link_identifier parameter.

范例

Example #1 dbx_error() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

注释

Note: Always refer to the module-specific documentation as well.
The error message for Microsoft SQL Server is actually the result of the mssql_get_last_message() function.
The error message for Oracle (oci8) is not implemented yet.

dbx_connect
dbx_escape_string
dbx 函数


Escape a string so it can safely be used in an sql-statement

dbx_error
dbx_fetch_row
dbx 函数
PHP 手册

dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_escape_string — Escape a string so it can safely be used in an sql-statement

说明

string dbx_escape_string ( object $link_identifier , string $text )

Escape the given string so that it can safely be used in an sql-statement.

参数

link_identifier

The DBX link object returned by dbx_connect()

text

The string to escape.

返回值

Returns the text, escaped where necessary (such as quotes, backslashes etc). On error, NULL is returned.

范例

Example #1 dbx_escape_string() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

参见

  • dbx_query() - Send a query and fetch all results (if any)

dbx_error
dbx_fetch_row
dbx 函数


Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

dbx_escape_string
dbx_query
dbx 函数
PHP 手册

dbx_fetch_row

(PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_fetch_row — Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

说明

mixed dbx_fetch_row ( object $result_identifier )

dbx_fetch_row() fetches rows from a result identifier that had the DBX_RESULT_UNBUFFERED flag set.

When the DBX_RESULT_UNBUFFERED is not set in the query, dbx_fetch_row() will fail as all rows have already been fetched into the results data property.

As a side effect, the rows property of the query-result object is incremented for each successful call to dbx_fetch_row().

参数

result_identifier

A result set returned by dbx_query().

返回值

Returns an object on success that contains the same information as any row would have in the dbx_query() result data property, including columns accessible by index or fieldname when the flags for dbx_query() were set that way.

Upon failure, returns 0 (e.g. when no more rows are available).

范例

Example #1 How to handle the returned value

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

参见

  • dbx_query() - Send a query and fetch all results (if any)

dbx_escape_string
dbx_query
dbx 函数


Send a query and fetch all results (if any)

dbx_fetch_row
dbx_sort
dbx 函数
PHP 手册

dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_query — Send a query and fetch all results (if any)

说明

mixed dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] )

Sends a query and fetch all results.

参数

link_identifier

The DBX link object returned by dbx_connect()

sql_statement

SQL statement.

flags

The flags parameter is used to control the amount of information that is returned. It may be any combination of the following constants with the bitwise OR operator (|). The DBX_COLNAMES_* flags override the dbx.colnames_case setting from php.ini.

DBX_RESULT_INDEX
It is always set, that is, the returned object has a data property which is a 2 dimensional array indexed numerically. For example, in the expression data[2][3] 2 stands for the row (or record) number and 3 stands for the column (or field) number. The first row and column are indexed at 0. If DBX_RESULT_ASSOC is also specified, the returning object contains the information related to DBX_RESULT_INFO too, even if it was not specified.
DBX_RESULT_INFO
It provides info about columns, such as field names and field types.
DBX_RESULT_ASSOC
It effects that the field values can be accessed with the respective column names used as keys to the returned object's data property. Associated results are actually references to the numerically indexed data, so modifying data[0][0] causes that data[0]['field_name_for_first_column'] is modified as well.
DBX_RESULT_UNBUFFERED (PHP 5)
This flag will not create the data property, and the rows property will initially be 0. Use this flag for large datasets, and use dbx_fetch_row() to retrieve the results row by row. The dbx_fetch_row() function will return rows that are conformant to the flags set with this query. Incidentally, it will also update the rows each time it is called.
DBX_COLNAMES_UNCHANGED (available from PHP 4.3.0)
The case of the returned column names will not be changed.
DBX_COLNAMES_UPPERCASE (available from PHP 4.3.0)
The case of the returned column names will be changed to uppercase.
DBX_COLNAMES_LOWERCASE (available from PHP 4.3.0)
The case of the returned column names will be changed to lowercase.

Note that DBX_RESULT_INDEX is always used, regardless of the actual value of flags parameter. This means that only the following combinations are effective:

  • DBX_RESULT_INDEX
  • DBX_RESULT_INDEX | DBX_RESULT_INFO
  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - this is the default, if flags is not specified.

返回值

dbx_query() returns an object or 1 on success, and 0 on failure. The result object is returned only if the query given in sql_statement produces a result set (i.e. a SELECT query, even if the result set is empty).

The returned object has four or five properties depending on flags :

handle

It is a valid handle for the connected database, and as such it can be used in module specific functions (if required).

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols and rows

These contain the number of columns (or fields) and rows (or records) respectively.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // number of records
echo $result->cols; // number of fields
?>

info (optional)
It is returned only if either DBX_RESULT_INFO or DBX_RESULT_ASSOC is specified in the flags parameter. It is a 2 dimensional array, that has two named rows (name and type) to retrieve column information.

Example #1 lists each field's name and type

<?php
$result = dbx_query($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data
This property contains the actual resulting data, possibly associated with column names as well depending on flags . If DBX_RESULT_ASSOC is set, it is possible to use $result->data[2]["field_name"].

Example #2 outputs the content of data property into HTML table

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ($result->data as $row) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Example #3 How to handle UNBUFFERED queries

<?php

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

范例

Example #4 How to handle the returned value

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... do some stuff here, see detailed examples below ...
    // first, print out field names and types
    // then, draw a table filled with the returned field values
} else {
    exit("Query failed");
}

dbx_close($link);
?>

注释

Note: Always refer to the module-specific documentation as well.
Column names for queries on an Oracle database are returned in lowercase.

参见

  • dbx_escape_string() - Escape a string so it can safely be used in an sql-statement
  • dbx_fetch_row() - Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
  • dbx_connect() - Open a connection/database

dbx_fetch_row
dbx_sort
dbx 函数


Sort a result from a dbx_query by a custom sort function

dbx_query
ODBC
dbx 函数
PHP 手册

dbx_sort

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_sort — Sort a result from a dbx_query by a custom sort function

说明

bool dbx_sort ( object $result , string $user_compare_function )

Sort a result from a dbx_query() call with a custom sort function.

参数

result

A result set returned by dbx_query().

user_compare_function

The user-defined comparison function. It must accept two arguments and return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 dbx_sort() example

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // data in $result is now ordered by id

dbx_sort($result, "user_re_order");
    // data in $result is now ordered by parentid (descending), then by id

dbx_close($link);
?>

注释

Note: It is always better to use ORDER BY SQL clause instead of dbx_sort() if possible.

参见

  • dbx_compare() - Compare two rows for sorting purposes

dbx_query
ODBC
dbx 函数


ODBC (Unified)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • ODBC 函数
    • odbc_autocommit — Toggle autocommit behaviour
    • odbc_binmode — Handling of binary column data
    • odbc_close_all — Close all ODBC connections
    • odbc_close — Close an ODBC connection
    • odbc_columnprivileges — Lists columns and associated privileges for the given table
    • odbc_columns — Lists the column names in specified tables
    • odbc_commit — Commit an ODBC transaction
    • odbc_connect — Connect to a datasource
    • odbc_cursor — Get cursorname
    • odbc_data_source — Returns information about a current connection
    • odbc_do — 别名 odbc_exec
    • odbc_error — Get the last error code
    • odbc_errormsg — Get the last error message
    • odbc_exec — Prepare and execute a SQL statement
    • odbc_execute — Execute a prepared statement
    • odbc_fetch_array — Fetch a result row as an associative array
    • odbc_fetch_into — Fetch one result row into array
    • odbc_fetch_object — Fetch a result row as an object
    • odbc_fetch_row — Fetch a row
    • odbc_field_len — Get the length (precision) of a field
    • odbc_field_name — Get the columnname
    • odbc_field_num — Return column number
    • odbc_field_precision — 别名 odbc_field_len
    • odbc_field_scale — Get the scale of a field
    • odbc_field_type — Datatype of a field
    • odbc_foreignkeys — Retrieves a list of foreign keys
    • odbc_free_result — Free resources associated with a result
    • odbc_gettypeinfo — Retrieves information about data types supported by the data source
    • odbc_longreadlen — Handling of LONG columns
    • odbc_next_result — Checks if multiple results are available
    • odbc_num_fields — Number of columns in a result
    • odbc_num_rows — Number of rows in a result
    • odbc_pconnect — Open a persistent database connection
    • odbc_prepare — Prepares a statement for execution
    • odbc_primarykeys — Gets the primary keys for a table
    • odbc_procedurecolumns — Retrieve information about parameters to procedures
    • odbc_procedures — Get the list of procedures stored in a specific data source
    • odbc_result_all — Print result as HTML table
    • odbc_result — Get result data
    • odbc_rollback — Rollback a transaction
    • odbc_setoption — Adjust ODBC settings
    • odbc_specialcolumns — Retrieves special columns
    • odbc_statistics — Retrieve statistics about a table
    • odbc_tableprivileges — Lists tables and the privileges associated with each table
    • odbc_tables — Get the list of table names stored in a specific data source
dbx_sort
简介
数据库抽象层


简介

In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions.

The following databases are supported by the Unified ODBC functions: » Adabas D, » IBM DB2, » iODBC, » Solid, and » Sybase SQL Anywhere.

Note: With the exception of iODBC, there is no ODBC involved when connecting to the above databases. The functions that you use to speak natively to them just happen to share the same names and syntax as the ODBC functions. However, building PHP with iODBC support enables you to use any ODBC-compliant drivers with your PHP applications. More information on iODBC, is available at » www.iodbc.org with the alternative unixODBC available at » www.unixodbc.org.

ODBC
安装/配置
ODBC


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
ODBC


需求

To access any of the supported databases you need to have the required libraries installed.

安装/配置
安装
安装/配置


安装

--with-adabas[=DIR]

Include Adabas D support. DIR is the Adabas base install directory, defaults to /usr/local.

--with-sapdb[=DIR]

Include SAP DB support. DIR is SAP DB base install directory, defaults to /usr/local.

--with-solid[=DIR]

Include Solid support. DIR is the Solid base install directory, defaults to /usr/local/solid.

--with-ibm-db2[=DIR]

Include IBM DB2 support. DIR is the DB2 base install directory, defaults to /home/db2inst1/sqllib.

--with-empress[=DIR]

Include Empress support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. From PHP 4, this option only supports Empress Version 8.60 and above.

--with-empress-bcs[=DIR]

Include Empress Local Access support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. From PHP 4, this option only supports Empress Version 8.60 and above.

--with-birdstep[=DIR]

Include Birdstep support. DIR is the Birdstep base install directory, defaults to /usr/local/birdstep.

--with-custom-odbc[=DIR]

Include a user defined ODBC support. The DIR is ODBC install base directory, which defaults to /usr/local. Make sure to define CUSTOM_ODBC_LIBS and have some odbc.h in your include dirs. E.g., you should define following for Sybase SQL Anywhere 5.5.00 on QNX, prior to run configure script:

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Include iODBC support. DIR is the iODBC base install directory, defaults to /usr/local.

--with-esoob[=DIR]

Include Easysoft OOB support. DIR is the OOB base install directory, defaults to /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Include unixODBC support. DIR is the unixODBC base install directory, defaults to /usr/local.

--with-openlink[=DIR]

Include OpenLink ODBC support. DIR is the OpenLink base install directory, defaults to /usr/local. This is the same as iODBC.

--with-dbmaker[=DIR]

Include DBMaker support. DIR is the DBMaker base install directory, defaults to where the latest version of DBMaker is installed (such as /home/dbmaker/3.6).

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Unified ODBC Configuration Options
Name | Default | Changeable | Changelog
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Available as of PHP5.3.0

Note: Entries marked with * are not implemented yet.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

odbc.default_db string

ODBC data source to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_user string

User name to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_pw string

Password to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.allow_persistent boolean

Whether to allow persistent ODBC connections.

odbc.check_persistent boolean

Check that a connection is still valid before reuse.

odbc.max_persistent integer

The maximum number of persistent ODBC connections per process.

odbc.max_links integer

The maximum number of ODBC connections per process, including persistent connections.

odbc.defaultlrl integer

Handling of LONG fields. Specifies the number of bytes returned to variables.

当使用 integer 类型时，其值以字节为度量单位。还可以用简化符号，说明见此 FAQ。
odbc.defaultbinmode integer

Handling of binary data.

odbc.default_cursortype integer

Controles the ODBC cursormodel. Possible values are SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC and SQL_CURSOR_STATIC (default).

安装
资源类型
安装/配置


资源类型

This extension defines two resource types: an ODBC connection identifier and an ODBC result identifier.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

ODBC_TYPE (integer)
ODBC_BINMODE_PASSTHRU (integer)
ODBC_BINMODE_RETURN (integer)
ODBC_BINMODE_CONVERT (integer)
SQL_ODBC_CURSORS (integer)
SQL_CUR_USE_DRIVER (integer)
SQL_CUR_USE_IF_NEEDED (integer)
SQL_CUR_USE_ODBC (integer)
SQL_CONCURRENCY (integer)
SQL_CONCUR_READ_ONLY (integer)
SQL_CONCUR_LOCK (integer)
SQL_CONCUR_ROWVER (integer)
SQL_CONCUR_VALUES (integer)
SQL_CURSOR_TYPE (integer)
SQL_CURSOR_FORWARD_ONLY (integer)
SQL_CURSOR_KEYSET_DRIVEN (integer)
SQL_CURSOR_DYNAMIC (integer)
SQL_CURSOR_STATIC (integer)
SQL_KEYSET_SIZE (integer)
SQL_CHAR (integer)
SQL_VARCHAR (integer)
SQL_LONGVARCHAR (integer)
SQL_DECIMAL (integer)
SQL_NUMERIC (integer)
SQL_BIT (integer)
SQL_TINYINT (integer)
SQL_SMALLINT (integer)
SQL_INTEGER (integer)
SQL_BIGINT (integer)
SQL_REAL (integer)
SQL_FLOAT (integer)
SQL_DOUBLE (integer)
SQL_BINARY (integer)
SQL_VARBINARY (integer)
SQL_LONGVARBINARY (integer)
SQL_DATE (integer)
SQL_TIME (integer)
SQL_TIMESTAMP (integer)
SQL_TYPE_DATE (integer)
SQL_TYPE_TIME (integer)
SQL_TYPE_TIMESTAMP (integer)
SQL_BEST_ROWID (integer)
SQL_ROWVER (integer)
SQL_SCOPE_CURROW (integer)
SQL_SCOPE_TRANSACTION (integer)
SQL_SCOPE_SESSION (integer)
SQL_NO_NULLS (integer)
SQL_NULLABLE (integer)
SQL_INDEX_UNIQUE (integer)
SQL_INDEX_ALL (integer)
SQL_ENSURE (integer)
SQL_QUICK (integer)
资源类型
ODBC 函数
ODBC


ODBC 函数

Table of Contents

  • odbc_autocommit — Toggle autocommit behaviour
  • odbc_binmode — Handling of binary column data
  • odbc_close_all — Close all ODBC connections
  • odbc_close — Close an ODBC connection
  • odbc_columnprivileges — Lists columns and associated privileges for the given table
  • odbc_columns — Lists the column names in specified tables
  • odbc_commit — Commit an ODBC transaction
  • odbc_connect — Connect to a datasource
  • odbc_cursor — Get cursorname
  • odbc_data_source — Returns information about a current connection
  • odbc_do — 别名 odbc_exec
  • odbc_error — Get the last error code
  • odbc_errormsg — Get the last error message
  • odbc_exec — Prepare and execute a SQL statement
  • odbc_execute — Execute a prepared statement
  • odbc_fetch_array — Fetch a result row as an associative array
  • odbc_fetch_into — Fetch one result row into array
  • odbc_fetch_object — Fetch a result row as an object
  • odbc_fetch_row — Fetch a row
  • odbc_field_len — Get the length (precision) of a field
  • odbc_field_name — Get the columnname
  • odbc_field_num — Return column number
  • odbc_field_precision — 别名 odbc_field_len
  • odbc_field_scale — Get the scale of a field
  • odbc_field_type — Datatype of a field
  • odbc_foreignkeys — Retrieves a list of foreign keys
  • odbc_free_result — Free resources associated with a result
  • odbc_gettypeinfo — Retrieves information about data types supported by the data source
  • odbc_longreadlen — Handling of LONG columns
  • odbc_next_result — Checks if multiple results are available
  • odbc_num_fields — Number of columns in a result
  • odbc_num_rows — Number of rows in a result
  • odbc_pconnect — Open a persistent database connection
  • odbc_prepare — Prepares a statement for execution
  • odbc_primarykeys — Gets the primary keys for a table
  • odbc_procedurecolumns — Retrieve information about parameters to procedures
  • odbc_procedures — Get the list of procedures stored in a specific data source
  • odbc_result_all — Print result as HTML table
  • odbc_result — Get result data
  • odbc_rollback — Rollback a transaction
  • odbc_setoption — Adjust ODBC settings
  • odbc_specialcolumns — Retrieves special columns
  • odbc_statistics — Retrieve statistics about a table
  • odbc_tableprivileges — Lists tables and the privileges associated with each table
  • odbc_tables — Get the list of table names stored in a specific data source
预定义常量
odbc_autocommit
ODBC


Toggle autocommit behaviour

ODBC 函数
odbc_binmode
ODBC 函数
PHP 手册

odbc_autocommit

(PHP 4, PHP 5)

odbc_autocommit — Toggle autocommit behaviour

说明

mixed odbc_autocommit ( resource $connection_id [, bool $OnOff=false ] )

Toggles autocommit behaviour.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

OnOff

If OnOff is TRUE, auto-commit is enabled, if it is FALSE auto-commit is disabled.

返回值

Without the OnOff parameter, this function returns auto-commit status for connection_id . Non-zero is returned if auto-commit is on, 0 if it is off, or FALSE if an error occurs.

If OnOff is set, this function returns TRUE on success and FALSE on failure.

参见

  • odbc_commit() - Commit an ODBC transaction
  • odbc_rollback() - Rollback a transaction

ODBC 函数
odbc_binmode
ODBC 函数


Handling of binary column data

odbc_autocommit
odbc_close_all
ODBC 函数
PHP 手册

odbc_binmode

(PHP 4, PHP 5)

odbc_binmode — Handling of binary column data

说明

bool odbc_binmode ( resource $result_id , int $mode )

Enables handling of binary column data. ODBC SQL types affected are BINARY, VARBINARY, and LONGVARBINARY.

When binary SQL data is converted to character C data, each byte (8 bits) of source data is represented as two ASCII characters. These characters are the ASCII character representation of the number in its hexadecimal form. For example, a binary 00000001 is converted to "01" and a binary 11111111 is converted to "FF".

LONGVARBINARY handling
binmode | longreadlen | result
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | >0 | passthru
ODBC_BINMODE_RETURN | >0 | return as is
ODBC_BINMODE_CONVERT | >0 | return as char

If odbc_fetch_into() is used, passthru means that an empty string is returned for these columns.

参数

result_id

The result identifier.

If result_id is 0, the settings apply as default for new results.

Note: Default for longreadlen is 4096 and mode defaults to ODBC_BINMODE_RETURN. Handling of binary long columns is also affected by odbc_longreadlen().

mode

Possible values for mode are:

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data
  • ODBC_BINMODE_RETURN: Return as is
  • ODBC_BINMODE_CONVERT: Convert to char and return

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

odbc_autocommit
odbc_close_all
ODBC 函数


Close all ODBC connections

odbc_binmode
odbc_close
ODBC 函数
PHP 手册

odbc_close_all

(PHP 4, PHP 5)

odbc_close_all — Close all ODBC connections

说明

void odbc_close_all ( void )

odbc_close_all() will close down all connections to database server(s).

参数

This function has no parameters.

返回值

无返回值。

注释

Note: This function will fail if there are open transactions on a connection. This connection will remain open in this case.

odbc_binmode
odbc_close
ODBC 函数


Close an ODBC connection

odbc_close_all
odbc_columnprivileges
ODBC 函数
PHP 手册

odbc_close

(PHP 4, PHP 5)

odbc_close — Close an ODBC connection

说明

void odbc_close ( resource $connection_id )

Closes down the connection to the database server.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

返回值

无返回值。

注释

Note: This function will fail if there are open transactions on this connection. The connection will remain open in this case.

odbc_close_all
odbc_columnprivileges
ODBC 函数


Lists columns and associated privileges for the given table

odbc_close
odbc_columns
ODBC 函数
PHP 手册

odbc_columnprivileges

(PHP 4, PHP 5)

odbc_columnprivileges — Lists columns and associated privileges for the given table

说明

resource odbc_columnprivileges ( resource $connection_id , string $qualifier , string $owner , string $table_name , string $column_name )

Lists columns and associated privileges for the given table.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

owner

The owner.

table_name

The table name.

column_name

The column_name argument accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

The owner , table_name , and column_name accept search patterns ('%' to match zero or more characters and '_' to match a single character).

返回值

Returns an ODBC result identifier or FALSE on failure. This result identifier can be used to fetch a list of columns and associated privileges.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

odbc_close
odbc_columns
ODBC 函数


Lists the column names in specified tables

odbc_columnprivileges
odbc_commit
ODBC 函数
PHP 手册

odbc_columns

(PHP 4, PHP 5)

odbc_columns — Lists the column names in specified tables

说明

resource odbc_columns ( resource $connection_id [, string $qualifier [, string $schema [, string $table_name [, string $column_name ]]]] )

Lists all columns in the requested range.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

schema

The owner.

table_name

The table name.

column_name

The column name.

The schema , table_name , and column_name accept search patterns ('%' to match zero or more characters and '_' to match a single character).

返回值

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and TABLE_NAME.

参见

  • odbc_columnprivileges() - Lists columns and associated privileges for the given table to retrieve associated privileges

odbc_columnprivileges
odbc_commit
ODBC 函数


Commit an ODBC transaction

odbc_columns
odbc_connect
ODBC 函数
PHP 手册

odbc_commit

(PHP 4, PHP 5)

odbc_commit — Commit an ODBC transaction

说明

bool odbc_commit ( resource $connection_id )

Commits all pending transactions on the connection.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

odbc_columns
odbc_connect
ODBC 函数


Connect to a datasource

odbc_commit
odbc_cursor
ODBC 函数
PHP 手册

odbc_connect

(PHP 4, PHP 5)

odbc_connect — Connect to a datasource

说明

resource odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] )

The connection id returned by this functions is needed by other ODBC functions. You can have multiple connections open at once as long as they either use different db or different credentials.

With some ODBC drivers, executing a complex stored procedure may fail with an error similar to: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the optional row_number parameter in odbc_fetch_row(). SQL_CUR_USE_ODBC might help in that case, too.

参数

dsn

The database source name for the connection.

user

The username.

password

The password.

cursor_type

This sets the type of cursor to be used for this connection. This parameter is not normally needed, but can be useful for working around problems with some ODBC drivers.

The following constants are defined for cursortype:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER
  • SQL_CUR_DEFAULT

返回值

Returns an ODBC connection id or 0 (FALSE) on error.

参见

  • For persistent connections: odbc_pconnect() - Open a persistent database connection

odbc_commit
odbc_cursor
ODBC 函数


Get cursorname

odbc_connect
odbc_data_source
ODBC 函数
PHP 手册

odbc_cursor

(PHP 4, PHP 5)

odbc_cursor — Get cursorname

说明

string odbc_cursor ( resource $result_id )

Gets the cursorname for the given result_id.

参数

result_id

The result identifier.

返回值

Returns the cursor name, as a string.

odbc_connect
odbc_data_source
ODBC 函数


Returns information about a current connection

odbc_cursor
odbc_do
ODBC 函数
PHP 手册

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_source — Returns information about a current connection

说明

array odbc_data_source ( resource $connection_id , int $fetch_type )

This function will return the list of available DNS (after calling it several times).

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

fetch_type

The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

返回值

Returns FALSE on error, and an array upon success.

odbc_cursor
odbc_do
ODBC 函数


别名 odbc_exec

odbc_data_source
odbc_error
ODBC 函数
PHP 手册

odbc_do

(PHP 4, PHP 5)

odbc_do — 别名 odbc_exec()

说明

本函数是该函数的别名： odbc_exec().

odbc_data_source
odbc_error
ODBC 函数


Get the last error code

odbc_do
odbc_errormsg
ODBC 函数
PHP 手册

odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_error — Get the last error code

说明

string odbc_error ([ resource $connection_id ] )

Returns a six-digit ODBC state, or an empty string if there has been no errors.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

返回值

If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned FALSE).

参见

  • odbc_errormsg() - Get the last error message
  • odbc_exec() - Prepare and execute a SQL statement

odbc_do
odbc_errormsg
ODBC 函数


Get the last error message

odbc_error
odbc_exec
ODBC 函数
PHP 手册

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsg — Get the last error message

说明

string odbc_errormsg ([ resource $connection_id ] )

Returns a string containing the last ODBC error message, or an empty string if there has been no errors.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

返回值

If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned FALSE).

参见

  • odbc_error() - Get the last error code
  • odbc_exec() - Prepare and execute a SQL statement

odbc_error
odbc_exec
ODBC 函数


Prepare and execute a SQL statement

odbc_errormsg
odbc_execute
ODBC 函数
PHP 手册

odbc_exec

(PHP 4, PHP 5)

odbc_exec — Prepare and execute a SQL statement

说明

resource odbc_exec ( resource $connection_id , string $query_string [, int $flags ] )

Sends an SQL statement to the database server.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

query_string

The SQL statement.

flags

This parameter is currently not used.

返回值

Returns an ODBC result identifier if the SQL command was executed successfully, or FALSE on error.

参见

  • odbc_prepare() - Prepares a statement for execution
  • odbc_execute() - Execute a prepared statement

odbc_errormsg
odbc_execute
ODBC 函数


Execute a prepared statement

odbc_exec
odbc_fetch_array
ODBC 函数
PHP 手册

odbc_execute

(PHP 4, PHP 5)

odbc_execute — Execute a prepared statement

说明

bool odbc_execute ( resource $result_id [, array $parameters_array ] )

Executes a statement prepared with odbc_prepare().

参数

result_id

The result id resource, from odbc_prepare().

parameters_array

Parameters in parameter_array will be substituted for placeholders in the prepared statement in order. Elements of this array will be converted to strings by calling this function.

Any parameters in parameter_array which start and end with single quotes will be taken as the name of a file to read and send to the database server as the data for the appropriate placeholder.

If you wish to store a string which actually begins and ends with single quotes, you must add a space or other non-single-quote character to the beginning or end of the parameter, which will prevent the parameter from being taken as a file name. If this is not an option, then you must use another mechanism to store the string, such as executing the query directly with odbc_exec()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 odbc_execute() and odbc_prepare() example

In the following code, $success will only be TRUE if all three parameters to myproc are IN parameters:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

If you need to call a stored procedure using INOUT or OUT parameters, the recommended workaround is to use a native extension for your database (for example, mssql for MS SQL Server, or oci8 for Oracle).

更新日志

版本 | 说明
4.2.0 | File reading is now subject to 安全模式 and open-basedir restrictions in parameters_array .
4.1.1 | Remote files are no longer supported in parameters_array .

参见

  • odbc_prepare() - Prepares a statement for execution

odbc_exec
odbc_fetch_array
ODBC 函数


Fetch a result row as an associative array

odbc_execute
odbc_fetch_into
ODBC 函数
PHP 手册

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_array — Fetch a result row as an associative array

说明

array odbc_fetch_array ( resource $result [, int $rownumber ] )

Fetch an associative array from an ODBC query. See the changelog below for when this function is available.

参数

result

The result resource from odbc_exec().

rownumber

Optionally choose which row number to retrieve.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

更新日志

版本 | 说明
4.3.3 | This function exists when compiled with IBM DB2 or UnixODBC support.
4.3.2 | This function exists when compiled for Windows.
4.0.2 | This function exists when compiled with DBMaker support.

参见

  • odbc_fetch_row() - Fetch a row
  • odbc_fetch_object() - Fetch a result row as an object
  • odbc_num_rows() - Number of rows in a result

odbc_execute
odbc_fetch_into
ODBC 函数


Fetch one result row into array

odbc_fetch_array
odbc_fetch_object
ODBC 函数
PHP 手册

odbc_fetch_into

(PHP 4, PHP 5)

odbc_fetch_into — Fetch one result row into array

说明

int odbc_fetch_into ( resource $result_id , array $result_array [, int $rownumber ] )

Fetch one result row into array.

参数

result_id

The result resource.

result_array

The result array that can be of any type since it will be converted to type array. The array will contain the column values starting at array index 0.

rownumber

The row number.

返回值

Returns the number of columns in the result; FALSE on error.

更新日志

版本 | 说明
4.2.0 | The result_array and rownumber parameters have been swapped. This allows the rownumber to be a constant again.
4.0.6 | The rownumber can no longer be passed in as a constant, but rather as a variable. This again changed in 4.2.0.
4.0.5 | The result_array parameter no longer needs to be passed in by reference.

范例

Example #1 odbc_fetch_into() examples

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>

odbc_fetch_array
odbc_fetch_object
ODBC 函数


Fetch a result row as an object

odbc_fetch_into
odbc_fetch_row
ODBC 函数
PHP 手册

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_object — Fetch a result row as an object

说明

object odbc_fetch_object ( resource $result [, int $rownumber ] )

Fetch an object from an ODBC query. See the changelog below for when this function is available.

参数

result

The result resource from odbc_exec().

rownumber

Optionally choose which row number to retrieve.

返回值

Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

更新日志

版本 | 说明
4.3.3 | This function exists when compiled with IBM DB2 or UnixODBC support.
4.3.2 | This function exists when compiled for Windows.
4.0.2 | This function exists when compiled with DBMaker support.

参见

  • odbc_fetch_row() - Fetch a row
  • odbc_fetch_array() - Fetch a result row as an associative array
  • odbc_num_rows() - Number of rows in a result

odbc_fetch_into
odbc_fetch_row
ODBC 函数


Fetch a row

odbc_fetch_object
odbc_field_len
ODBC 函数
PHP 手册

odbc_fetch_row

(PHP 4, PHP 5)

odbc_fetch_row — Fetch a row

说明

bool odbc_fetch_row ( resource $result_id [, int $row_number ] )

Fetches a row of the data that was returned by odbc_do() or odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

参数

result_id

The result identifier.

row_number

If row_number is not specified, odbc_fetch_row() will try to fetch the next row in the result set. Calls to odbc_fetch_row() with and without row_number can be mixed.

To step through the result more than once, you can call odbc_fetch_row() with row_number 1, and then continue doing odbc_fetch_row() without row_number to review the result. If a driver doesn't support fetching rows by number, the row_number parameter is ignored.

返回值

Returns TRUE if there was a row, FALSE otherwise.

odbc_fetch_object
odbc_field_len
ODBC 函数


Get the length (precision) of a field

odbc_fetch_row
odbc_field_name
ODBC 函数
PHP 手册

odbc_field_len

(PHP 4, PHP 5)

odbc_field_len — Get the length (precision) of a field

说明

int odbc_field_len ( resource $result_id , int $field_number )

Gets the length of the field referenced by number in the given result identifier.

参数

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

返回值

Returns the field name as a string, or FALSE on error.

参见

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number

odbc_fetch_row
odbc_field_name
ODBC 函数


Get the columnname

odbc_field_len
odbc_field_num
ODBC 函数
PHP 手册

odbc_field_name

(PHP 4, PHP 5)

odbc_field_name — Get the columnname

说明

string odbc_field_name ( resource $result_id , int $field_number )

Gets the name of the field occupying the given column number in the given result identifier.

参数

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

返回值

Returns the field name as a string, or FALSE on error.

odbc_field_len
odbc_field_num
ODBC 函数


Return column number

odbc_field_name
odbc_field_precision
ODBC 函数
PHP 手册

odbc_field_num

(PHP 4, PHP 5)

odbc_field_num — Return column number

说明

int odbc_field_num ( resource $result_id , string $field_name )

Gets the number of the column slot that corresponds to the named field in the given result identifier.

参数

result_id

The result identifier.

field_name

The field name.

返回值

Returns the field number as a integer, or FALSE on error. Field numbering starts at 1.

odbc_field_name
odbc_field_precision
ODBC 函数


别名 odbc_field_len

odbc_field_num
odbc_field_scale
ODBC 函数
PHP 手册

odbc_field_precision

(PHP 4, PHP 5)

odbc_field_precision — 别名 odbc_field_len()

说明

本函数是该函数的别名： odbc_field_len().

参见

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number.

odbc_field_num
odbc_field_scale
ODBC 函数


Get the scale of a field

odbc_field_precision
odbc_field_type
ODBC 函数
PHP 手册

odbc_field_scale

(PHP 4, PHP 5)

odbc_field_scale — Get the scale of a field

说明

int odbc_field_scale ( resource $result_id , int $field_number )

Gets the scale of the field referenced by number in the given result identifier.

参数

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

返回值

Returns the field scale as a integer, or FALSE on error.

odbc_field_precision
odbc_field_type
ODBC 函数


Datatype of a field

odbc_field_scale
odbc_foreignkeys
ODBC 函数
PHP 手册

odbc_field_type

(PHP 4, PHP 5)

odbc_field_type — Datatype of a field

说明

string odbc_field_type ( resource $result_id , int $field_number )

Gets the SQL type of the field referenced by number in the given result identifier.

参数

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

返回值

Returns the field type as a string, or FALSE on error.

odbc_field_scale
odbc_foreignkeys
ODBC 函数


Retrieves a list of foreign keys

odbc_field_type
odbc_free_result
ODBC 函数
PHP 手册

odbc_foreignkeys

(PHP 4, PHP 5)

odbc_foreignkeys — Retrieves a list of foreign keys

说明

resource odbc_foreignkeys ( resource $connection_id , string $pk_qualifier , string $pk_owner , string $pk_table , string $fk_qualifier , string $fk_owner , string $fk_table )

Retrieves a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

pk_qualifier

The primary key qualifier.

pk_owner

The primary key owner.

pk_table

The primary key table.

fk_qualifier

The foreign key qualifier.

fk_owner

The foreign key owner.

fk_table

The foreign key table.

返回值

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PKTABLE_QUALIFIER
  • PKTABLE_OWNER
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_QUALIFIER
  • FKTABLE_OWNER
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table . This should be one key at most.

odbc_field_type
odbc_free_result
ODBC 函数


Free resources associated with a result

odbc_foreignkeys
odbc_gettypeinfo
ODBC 函数
PHP 手册

odbc_free_result

(PHP 4, PHP 5)

odbc_free_result — Free resources associated with a result

说明

bool odbc_free_result ( resource $result_id )

Free resources associated with a result.

odbc_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script is finished.

参数

result_id

The result identifier.

返回值

Always returns TRUE.

注释

Note: If auto-commit is disabled (see odbc_autocommit()) and you call odbc_free_result() before committing, all pending transactions are rolled back.

odbc_foreignkeys
odbc_gettypeinfo
ODBC 函数


Retrieves information about data types supported by the data source

odbc_free_result
odbc_longreadlen
ODBC 函数
PHP 手册

odbc_gettypeinfo

(PHP 4, PHP 5)

odbc_gettypeinfo — Retrieves information about data types supported by the data source

说明

resource odbc_gettypeinfo ( resource $connection_id [, int $data_type ] )

Retrieves information about data types supported by the data source.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

data_type

The data type, which can be used to restrict the information to a single data type.

返回值

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TYPE_NAME
  • DATA_TYPE
  • PRECISION
  • LITERAL_PREFIX
  • LITERAL_SUFFIX
  • CREATE_PARAMS
  • NULLABLE
  • CASE_SENSITIVE
  • SEARCHABLE
  • UNSIGNED_ATTRIBUTE
  • MONEY
  • AUTO_INCREMENT
  • LOCAL_TYPE_NAME
  • MINIMUM_SCALE
  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.

odbc_free_result
odbc_longreadlen
ODBC 函数


Handling of LONG columns

odbc_gettypeinfo
odbc_next_result
ODBC 函数
PHP 手册

odbc_longreadlen

(PHP 4, PHP 5)

odbc_longreadlen — Handling of LONG columns

说明

bool odbc_longreadlen ( resource $result_id , int $length )

Enables handling of LONG and LONGVARBINARY columns.

参数

result_id

The result identifier.

length

The number of bytes returned to PHP is controlled by the parameter length. If it is set to 0, Long column data is passed through to the client.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: Handling of LONGVARBINARY columns is also affected by odbc_binmode().

odbc_gettypeinfo
odbc_next_result
ODBC 函数


Checks if multiple results are available

odbc_longreadlen
odbc_num_fields
ODBC 函数
PHP 手册

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_result — Checks if multiple results are available

说明

bool odbc_next_result ( resource $result_id )

Checks if there are more result sets available as well as allowing access to the next result set via odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

参数

result_id

The result identifier.

返回值

Returns TRUE if there are more result sets, FALSE otherwise.

范例

Example #1 odbc_next_result()

<?php
$r_Connection = odbc_connect($dsn, $username, $password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results = odbc_exec($r_Connection, $s_SQL);

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump first result set";
var_dump($a_Row1, $a_Row2);

echo "Get second results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump second result set ";
var_dump($a_Row1, $a_Row2);

echo "Get third results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump third result set ";
var_dump($a_Row1, $a_Row2);

echo "Try for a fourth result set ";
var_dump(odbc_next_result($r_Results));
?>

上例将输出：

Dump first result set array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Get second results set bool(true)
Dump second result set array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Get third results set bool(true)
Dump third result set array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Try for a fourth result set bool(false)

odbc_longreadlen
odbc_num_fields
ODBC 函数


Number of columns in a result

odbc_next_result
odbc_num_rows
ODBC 函数
PHP 手册

odbc_num_fields

(PHP 4, PHP 5)

odbc_num_fields — Number of columns in a result

说明

int odbc_num_fields ( resource $result_id )

Gets the number of fields (columns) in an ODBC result.

参数

result_id

The result identifier returned by odbc_exec().

返回值

Returns the number of fields, or -1 on error.

odbc_next_result
odbc_num_rows
ODBC 函数


Number of rows in a result

odbc_num_fields
odbc_pconnect
ODBC 函数
PHP 手册

odbc_num_rows

(PHP 4, PHP 5)

odbc_num_rows — Number of rows in a result

说明

int odbc_num_rows ( resource $result_id )

Gets the number of rows in a result. For INSERT, UPDATE and DELETE statements odbc_num_rows() returns the number of rows affected. For a SELECT clause this can be the number of rows available.

参数

result_id

The result identifier returned by odbc_exec().

返回值

Returns the number of rows in an ODBC result. This function will return -1 on error.

注释

Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.

odbc_num_fields
odbc_pconnect
ODBC 函数


Open a persistent database connection

odbc_num_rows
odbc_prepare
ODBC 函数
PHP 手册

odbc_pconnect

(PHP 4, PHP 5)

odbc_pconnect — Open a persistent database connection

说明

resource odbc_pconnect ( string $dsn , string $user , string $password [, int $cursor_type ] )

Opens a persistent database connection.

This function is much like odbc_connect(), except that the connection is not really closed when the script has finished. Future requests for a connection with the same dsn , user , password combination (via odbc_connect() and odbc_pconnect()) can reuse the persistent connection.

参数

See odbc_connect() for details.

返回值

Returns an ODBC connection id or 0 (FALSE) on error.

注释

Note: Persistent connections have no effect if PHP is used as a CGI program.

参见

  • odbc_connect() - Connect to a datasource
  • Persistent Database Connections

odbc_num_rows
odbc_prepare
ODBC 函数


Prepares a statement for execution

odbc_pconnect
odbc_primarykeys
ODBC 函数
PHP 手册

odbc_prepare

(PHP 4, PHP 5)

odbc_prepare — Prepares a statement for execution

说明

resource odbc_prepare ( resource $connection_id , string $query_string )

Prepares a statement for execution. The result identifier can be used later to execute the statement with odbc_execute().

Some databases (such as IBM DB2, MS SQL Server, and Oracle) support stored procedures that accept parameters of type IN, INOUT, and OUT as defined by the ODBC specification. However, the Unified ODBC driver currently only supports parameters of type IN to stored procedures.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

query_string

The query string statement being prepared.

返回值

Returns an ODBC result identifier if the SQL command was prepared successfully. Returns FALSE on error.

范例

Example #1 odbc_execute() and odbc_prepare() example

In the following code, $success will only be TRUE if all three parameters to myproc are IN parameters:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

If you need to call a stored procedure using INOUT or OUT parameters, the recommended workaround is to use a native extension for your database (for example, mssql for MS SQL Server, or oci8 for Oracle).

参见

  • odbc_execute() - Execute a prepared statement

odbc_pconnect
odbc_primarykeys
ODBC 函数


Gets the primary keys for a table

odbc_prepare
odbc_procedurecolumns
ODBC 函数
PHP 手册

odbc_primarykeys

(PHP 4, PHP 5)

odbc_primarykeys — Gets the primary keys for a table

说明

resource odbc_primarykeys ( resource $connection_id , string $qualifier , string $owner , string $table )

Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

owner

table

返回值

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME

odbc_prepare
odbc_procedurecolumns
ODBC 函数


Retrieve information about parameters to procedures

odbc_primarykeys
odbc_procedures
ODBC 函数
PHP 手册

odbc_procedurecolumns

(PHP 4, PHP 5)

odbc_procedurecolumns — Retrieve information about parameters to procedures

说明

resource odbc_procedurecolumns ( resource $connection_id )
resource odbc_procedurecolumns ( resource $connection_id , string $qualifier , string $owner , string $proc , string $column )

Retrieve information about parameters to procedures.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

owner

The owner. This parameter accepts the following search patterns: "%" to match zero or more characters, and "_" to match a single character.

proc

The proc. This parameter accepts the following search patterns: "%" to match zero or more characters, and "_" to match a single character.

column

The column. This parameter accepts the following search patterns: "%" to match zero or more characters, and "_" to match a single character.

返回值

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

The result set is ordered by PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME and COLUMN_TYPE.

odbc_primarykeys
odbc_procedures
ODBC 函数


Get the list of procedures stored in a specific data source

odbc_procedurecolumns
odbc_result_all
ODBC 函数
PHP 手册

odbc_procedures

(PHP 4, PHP 5)

odbc_procedures — Get the list of procedures stored in a specific data source

说明

resource odbc_procedures ( resource $connection_id )
resource odbc_procedures ( resource $connection_id , string $qualifier , string $owner , string $name )

Lists all procedures in the requested range.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

owner

The owner. This parameter accepts the following search patterns: "%" to match zero or more characters, and "_" to match a single character.

name

The name. This parameter accepts the following search patterns: "%" to match zero or more characters, and "_" to match a single character.

返回值

Returns an ODBC result identifier containing the information or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE

odbc_procedurecolumns
odbc_result_all
ODBC 函数


Print result as HTML table

odbc_procedures
odbc_result
ODBC 函数
PHP 手册

odbc_result_all

(PHP 4, PHP 5)

odbc_result_all — Print result as HTML table

说明

int odbc_result_all ( resource $result_id [, string $format ] )

Prints all rows from a result identifier produced by odbc_exec(). The result is printed in HTML table format.

参数

result_id

The result identifier.

format

Additional overall table formatting.

返回值

Returns the number of rows in the result or FALSE on error.

odbc_procedures
odbc_result
ODBC 函数


Get result data

odbc_result_all
odbc_rollback
ODBC 函数
PHP 手册

odbc_result

(PHP 4, PHP 5)

odbc_result — Get result data

说明

mixed odbc_result ( resource $result_id , mixed $field )

Get result data

参数

result_id

The ODBC resource.

field

The field name being retrieved. It can either be an integer containing the column number of the field you want; or it can be a string containing the name of the field.

返回值

Returns the string contents of the field, FALSE on error, NULL for NULL data, or TRUE for binary data.

范例

The first call to odbc_result() returns the value of the third field in the current record of the query result. The second function call to odbc_result() returns the value of the field whose field name is "val" in the current record of the query result. An error occurs if a column number parameter for a field is less than one or exceeds the number of columns (or fields) in the current record. Similarly, an error occurs if a field with a name that is not one of the fieldnames of the table(s) that is(are) being queried.

Example #1 odbc_result() examples

<?php
$item_3   = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

注释

Field indices start from 1. Regarding the way binary or long column data is returned refer to odbc_binmode() and odbc_longreadlen().

odbc_result_all
odbc_rollback
ODBC 函数


Rollback a transaction

odbc_result
odbc_setoption
ODBC 函数
PHP 手册

odbc_rollback

(PHP 4, PHP 5)

odbc_rollback — Rollback a transaction

说明

bool odbc_rollback ( resource $connection_id )

Rolls back all pending statements on the connection.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

odbc_result
odbc_setoption
ODBC 函数


Adjust ODBC settings

odbc_rollback
odbc_specialcolumns
ODBC 函数
PHP 手册

odbc_setoption

(PHP 4, PHP 5)

odbc_setoption — Adjust ODBC settings

说明

bool odbc_setoption ( resource $id , int $function , int $option , int $param )

This function allows fiddling with the ODBC options for a particular connection or query result. It was written to help find work around to problems in quirky ODBC drivers. You should probably only use this function if you are an ODBC programmer and understand the effects the various options will have. You will certainly need a good ODBC reference to explain all the different options and values that can be used. Different driver versions support different options.

Because the effects may vary depending on the ODBC driver, use of this function in scripts to be made publicly available is strongly discouraged. Also, some ODBC options are not available to this function because they must be set before the connection is established or the query is prepared. However, if on a particular job it can make PHP work so your boss doesn't tell you to use a commercial product, that's all that really matters.

参数

id

Is a connection id or result id on which to change the settings. For SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is a result id.

function

Is the ODBC function to use. The value should be 1 for SQLSetConnectOption() and 2 for SQLSetStmtOption().

option

The option to set.

param

The value for the given option .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 odbc_setoption() examples

<?php
// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
//    Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
//    This example has the same effect as
//    odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
//    This example sets the query to timeout after 30 seconds.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>

odbc_rollback
odbc_specialcolumns
ODBC 函数


Retrieves special columns

odbc_setoption
odbc_statistics
ODBC 函数
PHP 手册

odbc_specialcolumns

(PHP 4, PHP 5)

odbc_specialcolumns — Retrieves special columns

说明

resource odbc_specialcolumns ( resource $connection_id , int $type , string $qualifier , string $owner , string $table , int $scope , int $nullable )

Retrieves either the optimal set of columns that uniquely identifies a row in the table, or columns that are automatically updated when any value in the row is updated by a transaction.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

type
When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table. When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the column or columns in the specified table, if any, that are automatically updated by the data source when any value in the row is updated by any transaction.
qualifier

The qualifier.

owner

The owner.

table

The table.

scope

The scope, which orders the result set.

nullable

The nullable option.

返回值

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • PSEUDO_COLUMN

odbc_setoption
odbc_statistics
ODBC 函数


Retrieve statistics about a table

odbc_specialcolumns
odbc_tableprivileges
ODBC 函数
PHP 手册

odbc_statistics

(PHP 4, PHP 5)

odbc_statistics — Retrieve statistics about a table

说明

resource odbc_statistics ( resource $connection_id , string $qualifier , string $owner , string $table_name , int $unique , int $accuracy )

Get statistics about a table and its indexes.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

owner

The owner.

table_name

The table name.

unique

The unique attribute.

accuracy

The accuracy.

返回值

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • SEQ_IN_INDEX
  • COLUMN_NAME
  • COLLATION
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and SEQ_IN_INDEX.

odbc_specialcolumns
odbc_tableprivileges
ODBC 函数


Lists tables and the privileges associated with each table

odbc_statistics
odbc_tables
ODBC 函数
PHP 手册

odbc_tableprivileges

(PHP 4, PHP 5)

odbc_tableprivileges — Lists tables and the privileges associated with each table

说明

resource odbc_tableprivileges ( resource $connection_id , string $qualifier , string $owner , string $name )

Lists tables in the requested range and the privileges associated with each table.

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

owner

The owner. Accepts the following search patterns: ('%' to match zero or more characters and '_' to match a single character)

name

The name. Accepts the following search patterns: ('%' to match zero or more characters and '_' to match a single character)

返回值

An ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

odbc_statistics
odbc_tables
ODBC 函数


Get the list of table names stored in a specific data source

odbc_tableprivileges
PDO
ODBC 函数
PHP 手册

odbc_tables

(PHP 4, PHP 5)

odbc_tables — Get the list of table names stored in a specific data source

说明

resource odbc_tables ( resource $connection_id [, string $qualifier [, string $owner [, string $name [, string $types ]]]] )

Lists all tables in the requested range.

To support enumeration of qualifiers, owners, and table types, the following special semantics for the qualifier , owner , name , and table_type are available:

  • If qualifier is a single percent character (%) and owner and name are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)
  • If owner is a single percent character (%) and qualifier and name are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)
  • If table_type is a single percent character (%) and qualifier , owner and name are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

参数

connection_id

The ODBC connection identifier, see odbc_connect() for details.

qualifier

The qualifier.

owner

The owner. Accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

name

The name. Accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

types

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

返回值

Returns an ODBC result identifier containing the information or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS

The result set is ordered by TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

参见

  • odbc_tableprivileges() - Lists tables and the privileges associated with each table

odbc_tableprivileges
PDO
ODBC 函数


PHP Data Objects

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Connections and Connection management
  • Transactions and auto-commit
  • Prepared statements and stored procedures
  • Errors and error handling
  • Large Objects (LOBs)
  • PDO — The PDO class
    • PDO::beginTransaction — Initiates a transaction
    • PDO::commit — Commits a transaction
    • PDO::__construct — Creates a PDO instance representing a connection to a database
    • PDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handle
    • PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle
    • PDO::exec — Execute an SQL statement and return the number of affected rows
    • PDO::getAttribute — Retrieve a database connection attribute
    • PDO::getAvailableDrivers — Return an array of available PDO drivers
    • PDO::lastInsertId — Returns the ID of the last inserted row or sequence value
    • PDO::prepare — Prepares a statement for execution and returns a statement object
    • PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object
    • PDO::quote — Quotes a string for use in a query.
    • PDO::rollBack — Rolls back a transaction
    • PDO::setAttribute — Set an attribute
  • PDOStatement — The PDOStatement class
    • PDOStatement->bindColumn — Bind a column to a PHP variable
    • PDOStatement->bindParam — Binds a parameter to the specified variable name
    • PDOStatement->bindValue — Binds a value to a parameter
    • PDOStatement->closeCursor — Closes the cursor, enabling the statement to be executed again.
    • PDOStatement->columnCount — Returns the number of columns in the result set
    • PDOStatement->errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle
    • PDOStatement->errorInfo — Fetch extended error information associated with the last operation on the statement handle
    • PDOStatement->execute — Executes a prepared statement
    • PDOStatement->fetch — Fetches the next row from a result set
    • PDOStatement->fetchAll — Returns an array containing all of the result set rows
    • PDOStatement->fetchColumn — Returns a single column from the next row of a result set
    • PDOStatement->fetchObject — Fetches the next row and returns it as an object.
    • PDOStatement->getAttribute — Retrieve a statement attribute
    • PDOStatement->getColumnMeta — Returns metadata for a column in a result set
    • PDOStatement->nextRowset — Advances to the next rowset in a multi-rowset statement handle
    • PDOStatement->rowCount — Returns the number of rows affected by the last SQL statement
    • PDOStatement->setAttribute — Set a statement attribute
    • PDOStatement->setFetchMode — Set the default fetch mode for this statement
  • PDOException — The PDOException class
  • PDO Drivers
    • MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
    • Firebird/Interbase (PDO) — Firebird/Interbase Functions (PDO_FIREBIRD)
    • IBM (PDO) — IBM Functions (PDO_IBM)
    • Informix (PDO) — Informix Functions (PDO_INFORMIX)
    • MySQL (PDO) — MySQL Functions (PDO_MYSQL)
    • Oracle (PDO) — Oracle Functions (PDO_OCI)
    • ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC)
    • PostgreSQL (PDO) — PostgreSQL Functions (PDO_PGSQL)
    • SQLite (PDO) — SQLite Functions (PDO_SQLITE)
odbc_tables
简介
数据库抽象层


简介

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server.

PDO provides a data-access abstraction layer, which means that, regardless of which database you're using, you use the same functions to issue queries and fetch data. PDO does not provide a database abstraction; it doesn't rewrite SQL or emulate missing features. You should use a full-blown abstraction layer if you need that facility.

PDO ships with PHP 5.1, and is available as a PECL extension for PHP 5.0; PDO requires the new OO features in the core of PHP 5, and so will not run with earlier versions of PHP.

PDO
安装/配置
PDO


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PDO


安装

PHP 5.1 and up on Unix systems

  1. If you're running a PHP 5.1 release, PDO and PDO_SQLITE is included in the distribution; it will be automatically enabled when you run configure. It is recommended that you build PDO as a shared extension, as this will allow you to take advantage of updates that are made available via PECL. The recommended configure line for building PHP with PDO support should enable zlib support (for the pecl installer) as well. You may also need to enable the PDO driver for your database of choice; consult the documentation for database-specific PDO drivers to find out more about that, but note that if you build PDO as a shared extension, you must build the PDO drivers as shared extensions. SQLite extension depends on PDO so if PDO is built as a shared extension, SQLite needs to be built the same way.

    ./configure --with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared

  2. After installing PDO as a shared module, you must edit your php.ini file so that the PDO extension will be loaded automatically when PHP runs. You will also need to enable any database specific drivers there too; make sure that they are listed after the pdo.so line, as PDO must be initialized before the database-specific extensions can be loaded. If you built PDO and the database-specific extensions statically, you can skip this step.

    extension=pdo.so

  3. Having PDO as a shared module will allow you to run pecl upgrade pdo as new versions of PDO are published, without forcing you to rebuild the whole of PHP. Note that if you do this, you also need to upgrade your database specific PDO drivers at the same time.

PHP 5.0.0 and up on Unix systems

  1. PDO is available as a PECL extension from » http://pecl.php.net/package/pdo. Installation can be performed via the pecl tool; this is enabled by default when you configure PHP. You should ensure that PHP was configured --with-zlib in order for pecl to be able to handle the compressed package files.

  2. Run the following command to download, build, and install the latest stable version of PDO:

    pecl install pdo

  3. The pecl command automatically installs the PDO module into your PHP extensions directory. To enable the PDO extension on Linux or Unix operating systems, you must add the following line to php.ini:

    extension=pdo.so

    For more information about building PECL packages, consult the PECL installation section of the manual.

Windows users running PHP 5.1.0 and up

  1. PDO and all the major drivers ship with PHP as shared extensions, and simply need to be activated by editing the php.ini file:

    extension=php_pdo.dll

  2. Next, choose the other database-specific DLL files and either use dl() to load them at runtime, or enable them in php.ini below php_pdo.dll. For example:

    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

    These DLLs should exist in the system's extension_dir. Note that PDO_INFORMIX is only available as a PECL extension.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

PDO Configuration Options
Name | Default | Changeable | Changelog
pdo.dsn.* |  | php.ini only |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

pdo.dsn.* string

Defines DSN alias. See PDO::__construct() for thorough explanation.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Warning

PDO uses class constants since PHP 5.1. Prior releases use global constants in the form PDO_PARAM_BOOL.

PDO::PARAM_BOOL (integer)
Represents a boolean data type.
PDO::PARAM_NULL (integer)
Represents the SQL NULL data type.
PDO::PARAM_INT (integer)
Represents the SQL INTEGER data type.
PDO::PARAM_STR (integer)
Represents the SQL CHAR, VARCHAR, or other string data type.
PDO::PARAM_LOB (integer)
Represents the SQL large object data type.
PDO::PARAM_STMT (integer)
Represents a recordset type. Not currently supported by any drivers.
PDO::PARAM_INPUT_OUTPUT (integer)
Specifies that the parameter is an INOUT parameter for a stored procedure. You must bitwise-OR this value with an explicit PDO::PARAM_* data type.
PDO::FETCH_LAZY (integer)
Specifies that the fetch method shall return each row as an object with variable names that correspond to the column names returned in the result set. PDO::FETCH_LAZY creates the object variable names as they are accessed.
PDO::FETCH_ASSOC (integer)
Specifies that the fetch method shall return each row as an array indexed by column name as returned in the corresponding result set. If the result set contains multiple columns with the same name, PDO::FETCH_ASSOC returns only a single value per column name.
PDO::FETCH_NAMED (integer)
Specifies that the fetch method shall return each row as an array indexed by column name as returned in the corresponding result set. If the result set contains multiple columns with the same name, PDO::FETCH_NAMED returns an array of values per column name.
PDO::FETCH_NUM (integer)
Specifies that the fetch method shall return each row as an array indexed by column number as returned in the corresponding result set, starting at column 0.
PDO::FETCH_BOTH (integer)
Specifies that the fetch method shall return each row as an array indexed by both column name and number as returned in the corresponding result set, starting at column 0.
PDO::FETCH_OBJ (integer)
Specifies that the fetch method shall return each row as an object with property names that correspond to the column names returned in the result set.
PDO::FETCH_BOUND (integer)
Specifies that the fetch method shall return TRUE and assign the values of the columns in the result set to the PHP variables to which they were bound with the PDOStatement::bindParam() or PDOStatement::bindColumn() methods.
PDO::FETCH_COLUMN (integer)
Specifies that the fetch method shall return only a single requested column from the next row in the result set.
PDO::FETCH_CLASS (integer)
Specifies that the fetch method shall return a new instance of the requested class, mapping the columns to named properties in the class.
PDO::FETCH_INTO (integer)
Specifies that the fetch method shall update an existing instance of the requested class, mapping the columns to named properties in the class.
PDO::FETCH_FUNC (integer)
PDO::FETCH_GROUP (integer)
PDO::FETCH_UNIQUE (integer)
PDO::FETCH_KEY_PAIR (integer)
Fetch into an array where the 1st column is a key and all subsequent columns are values
PDO::FETCH_CLASSTYPE (integer)
Determine the class name from the value of first column.
PDO::FETCH_SERIALIZE (integer)
As PDO::FETCH_INTO but object is provided as a serialized string. Available since PHP 5.1.0.
PDO::FETCH_PROPS_LATE (integer)
Available since PHP 5.2.0
PDO::ATTR_AUTOCOMMIT (integer)
If this value is FALSE, PDO attempts to disable autocommit so that the connection begins a transaction.
PDO::ATTR_PREFETCH (integer)
Setting the prefetch size allows you to balance speed against memory usage for your application. Not all database/driver combinations support setting of the prefetch size. A larger prefetch size results in increased performance at the cost of higher memory usage.
PDO::ATTR_TIMEOUT (integer)
Sets the timeout value in seconds for communications with the database.
PDO::ATTR_ERRMODE (integer)
See the Errors and error handling section for more information about this attribute.
PDO::ATTR_SERVER_VERSION (integer)
This is a read only attribute; it will return information about the version of the database server to which PDO is connected.
PDO::ATTR_CLIENT_VERSION (integer)
This is a read only attribute; it will return information about the version of the client libraries that the PDO driver is using.
PDO::ATTR_SERVER_INFO (integer)
This is a read only attribute; it will return some meta information about the database server to which PDO is connected.
PDO::ATTR_CONNECTION_STATUS (integer)
PDO::ATTR_CASE (integer)
Force column names to a specific case specified by the PDO::CASE_* constants.
PDO::ATTR_CURSOR_NAME (integer)
Get or set the name to use for a cursor. Most useful when using scrollable cursors and positioned updates.
PDO::ATTR_CURSOR (integer)
Selects the cursor type. PDO currently supports either PDO::CURSOR_FWDONLY and PDO::CURSOR_SCROLL. Stick with PDO::CURSOR_FWDONLY unless you know that you need a scrollable cursor.
PDO::ATTR_DRIVER_NAME (string)
Returns the name of the driver.

Example #1 using PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo "Running on mysql; doing something mysql specific here\n";
}
?>

PDO::ATTR_ORACLE_NULLS (integer)
Convert empty strings to SQL NULL values on data fetches.
PDO::ATTR_PERSISTENT (integer)
Request a persistent connection, rather than creating a new connection. See Connections and Connection management for more information on this attribute.
PDO::ATTR_STATEMENT_CLASS (integer)
PDO::ATTR_FETCH_CATALOG_NAMES (integer)
Prepend the containing catalog name to each column name returned in the result set. The catalog name and column name are separated by a decimal (.) character. Support of this attribute is at the driver level; it may not be supported by your driver.
PDO::ATTR_FETCH_TABLE_NAMES (integer)
Prepend the containing table name to each column name returned in the result set. The table name and column name are separated by a decimal (.) character. Support of this attribute is at the driver level; it may not be supported by your driver.
PDO::ATTR_STRINGIFY_FETCHES (integer)
PDO::ATTR_MAX_COLUMN_LEN (integer)
PDO::ATTR_DEFAULT_FETCH_MODE (integer)
Available since PHP 5.2.0
PDO::ATTR_EMULATE_PREPARES (integer)
Available since PHP 5.1.3.
PDO::ERRMODE_SILENT (integer)
Do not raise an error or exception if an error occurs. The developer is expected to explicitly check for errors. This is the default mode. See Errors and error handling for more information about this attribute.
PDO::ERRMODE_WARNING (integer)
Issue a PHP E_WARNING message if an error occurs. See Errors and error handling for more information about this attribute.
PDO::ERRMODE_EXCEPTION (integer)
Throw a PDOException if an error occurs. See Errors and error handling for more information about this attribute.
PDO::CASE_NATURAL (integer)
Leave column names as returned by the database driver.
PDO::CASE_LOWER (integer)
Force column names to lower case.
PDO::CASE_UPPER (integer)
Force column names to upper case.
PDO::NULL_NATURAL (integer)
PDO::NULL_EMPTY_STRING (integer)
PDO::NULL_TO_STRING (integer)
PDO::FETCH_ORI_NEXT (integer)
Fetch the next row in the result set. Valid only for scrollable cursors.
PDO::FETCH_ORI_PRIOR (integer)
Fetch the previous row in the result set. Valid only for scrollable cursors.
PDO::FETCH_ORI_FIRST (integer)
Fetch the first row in the result set. Valid only for scrollable cursors.
PDO::FETCH_ORI_LAST (integer)
Fetch the last row in the result set. Valid only for scrollable cursors.
PDO::FETCH_ORI_ABS (integer)
Fetch the requested row by row number from the result set. Valid only for scrollable cursors.
PDO::FETCH_ORI_REL (integer)
Fetch the requested row by relative position from the current position of the cursor in the result set. Valid only for scrollable cursors.
PDO::CURSOR_FWDONLY (integer)
Create a PDOStatement object with a forward-only cursor. This is the default cursor choice, as it is the fastest and most common data access pattern in PHP.
PDO::CURSOR_SCROLL (integer)
Create a PDOStatement object with a scrollable cursor. Pass the PDO::FETCH_ORI_* constants to control the rows fetched from the result set.
PDO::ERR_NONE (string)
Corresponds to SQLSTATE '00000', meaning that the SQL statement was successfully issued with no errors or warnings. This constant is for your convenience when checking PDO::errorCode() or PDOStatement::errorCode() to determine if an error occurred. You will usually know if this is the case by examining the return code from the method that raised the error condition anyway.
PDO::PARAM_EVT_ALLOC (integer)
Allocation event
PDO::PARAM_EVT_FREE (integer)
Deallocation event
PDO::PARAM_EVT_EXEC_PRE (integer)
Event triggered prior to execution of a prepared statement.
PDO::PARAM_EVT_EXEC_POST (integer)
Event triggered subsequent to execution of a prepared statement.
PDO::PARAM_EVT_FETCH_PRE (integer)
Event triggered prior to fetching a result from a resultset.
PDO::PARAM_EVT_FETCH_POST (integer)
Event triggered subsequent to fetching a result from a resultset.
PDO::PARAM_EVT_NORMALIZE (integer)
Event triggered during bound parameter registration allowing the driver to normalize the parameter name.
资源类型
Connections and Connection management
PDO


Connections and Connection management

Connections are established by creating instances of the PDO base class. It doesn't matter which driver you want to use; you always use the PDO class name. The constructor accepts parameters for specifying the database source (known as the DSN) and optionally for the username and password (if any).

Example #1 Connecting to MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

If there are any connection errors, a PDOException object will be thrown. You may catch the exception if you want to handle the error condition, or you may opt to leave it for an application global exception handler that you set up via set_exception_handler().

Example #2 Handling connection errors

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

Warning

If your application does not catch the exception thrown from the PDO constructor, the default action taken by the zend engine is to terminate the script and display a back trace. This back trace will likely reveal the full database connection details, including the username and password. It is your responsibility to catch this exception, either explicitly (via a catch statement) or implicitly via set_exception_handler().

Upon successful connection to the database, an instance of the PDO class is returned to your script. The connection remains active for the lifetime of that PDO object. To close the connection, you need to destroy the object by ensuring that all remaining references to it are deleted--you do this by assigning NULL to the variable that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.

Example #3 Closing a connection

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here

// and now we're done; close it
$dbh = null;
?>

Many web applications will benefit from making persistent connections to database servers. Persistent connections are not closed at the end of the script, but are cached and re-used when another script requests a connection using the same credentials. The persistent connection cache allows you to avoid the overhead of establishing a new connection every time a script needs to talk to a database, resulting in a faster web application.

Example #4 Persistent connections

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>

Note: If you wish to use persistent connections, you must set PDO::ATTR_PERSISTENT in the array of driver options passed to the PDO constructor. If setting this attribute with PDO::setAttribute() after instantiation of the object, the driver will not use persistent connections.

Note: If you're using the PDO ODBC driver and your ODBC libraries support ODBC Connection Pooling (unixODBC and Windows are two that do; there may be more), then it's recommended that you don't use persistent PDO connections, and instead leave the connection caching to the ODBC Connection Pooling layer. The ODBC Connection Pool is shared with other modules in the process; if PDO is told to cache the connection, then that connection would never be returned to the ODBC connection pool, resulting in additional connections being created to service those other modules.

预定义常量
Transactions and auto-commit
PDO


Transactions and auto-commit

Now that you're connected via PDO, you must understand how PDO manages transactions before you start issuing queries. If you've never encountered transactions before, they offer 4 major features: Atomicity, Consistency, Isolation and Durability (ACID). In layman's terms, any work carried out in a transaction, even if it is carried out in stages, is guaranteed to be applied to the database safely, and without interference from other connections, when it is committed. Transactional work can also be automatically undone at your request (provided you haven't already committed it), which makes error handling in your scripts easier.

Transactions are typically implemented by "saving-up" your batch of changes to be applied all at once; this has the nice side effect of drastically improving the efficiency of those updates. In other words, transactions can make your scripts faster and potentially more robust (you still need to use them correctly to reap that benefit).

Unfortunately, not every database supports transactions, so PDO needs to run in what is known as "auto-commit" mode when you first open the connection. Auto-commit mode means that every query that you run has its own implicit transaction, if the database supports it, or no transaction if the database doesn't support transactions. If you need a transaction, you must use the PDO::beginTransaction() method to initiate one. If the underlying driver does not support transactions, a PDOException will be thrown (regardless of your error handling settings: this is always a serious error condition). Once you are in a transaction, you may use PDO::commit() or PDO::rollBack() to finish it, depending on the success of the code you run during the transaction.

When the script ends or when a connection is about to be closed, if you have an outstanding transaction, PDO will automatically roll it back. This is a safety measure to help avoid inconsistency in the cases where the script terminates unexpectedly--if you didn't explicitly commit the transaction, then it is assumed that something went awry, so the rollback is performed for the safety of your data.

Warning

The automatic rollback only happens if you initiate the transaction via PDO::beginTransaction(). If you manually issue a query that begins a transaction PDO has no way of knowing about it and thus cannot roll it back if something bad happens.

Example #1 Executing a batch in a transaction

In the following sample, let's assume that we are creating a set of entries for a new employee, who has been assigned an ID number of 23. In addition to entering the basic data for that person, we also need to record their salary. It's pretty simple to make two separate updates, but by enclosing them within the PDO::beginTransaction() and PDO::commit() calls, we are guaranteeing that no one else will be able to see those changes until they are complete. If something goes wrong, the catch block rolls back all changes made since the transaction was started, and then prints out an error message.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
      array(PDO::ATTR_PERSISTENT => true));
  echo "Connected\n";
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate)
      values (23, 50000, NOW())");
  $dbh->commit();

} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

You're not limited to making updates in a transaction; you can also issue complex queries to extract data, and possibly use that information to build up more updates and queries; while the transaction is active, you are guaranteed that no one else can make changes while you are in the middle of your work. For further reading on transactions, refer to the documentation provided by your database server.

Connections and Connection management
Prepared statements and stored procedures
PDO


Prepared statements and stored procedures

Many of the more mature databases support the concept of prepared statements. What are they? You can think of them as a kind of compiled template for the SQL that you want to run, that can be customized using variable parameters. Prepared statements offer two major benefits:

  • The query only needs to be parsed (or prepared) once, but can be executed multiple times with the same or different parameters. When the query is prepared, the database will analyze, compile and optimize it's plan for executing the query. For complex queries this process can take up enough time that it will noticeably slow down your application if you need to repeat the same query many times with different parameters. By using a prepared statement you avoid repeating the analyze/compile/optimize cycle. In short, prepared statements use fewer resources and thus run faster.
  • The parameters to prepared statements don't need to be quoted; the driver handles it for you. If your application exclusively uses prepared statements, you can be sure that no SQL injection will occur. (However, if you're still building up other parts of the query based on untrusted input, you're still at risk).

Prepared statements are so useful that they are the only feature that PDO will emulate for drivers that don't support them. This ensures that you will be able to use the same data access paradigm regardless of the capabilities of the database.

Example #1 Repeated inserts using prepared statements

This example performs an INSERT query by substituting a name and a value for the named placeholders.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

Example #2 Repeated inserts using prepared statements

This example performs an INSERT query by substituting a name and a value for the positional ? placeholders.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

Example #3 Fetching data using prepared statements

This example fetches data based on a key value supplied by a form. The user input is automatically quoted, so there is no risk of a SQL injection attack.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

If the database driver supports it, you may also bind parameters for output as well as input. Output parameters are typically used to retrieve values from stored procedures. Output parameters are slightly more complex to use than input parameters, in that you must know how large a given parameter might be when you bind it. If the value turns out to be larger than the size you suggested, an error is raised.

Example #4 Calling a stored procedure with an output parameter

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// call the stored procedure
$stmt->execute();

print "procedure returned $return_value\n";
?>

You may also specify parameters that hold values both input and output; the syntax is similar to output parameters. In this next example, the string 'hello' is passed into the stored procedure, and when it returns, hello is replaced with the return value of the procedure.

Example #5 Calling a stored procedure with an input/output parameter

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// call the stored procedure
$stmt->execute();

print "procedure returned $value\n";
?>

Example #6 Invalid use of placeholder

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// placeholder must be used in the place of the whole value
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>

Transactions and auto-commit
Errors and error handling
PDO


Errors and error handling

PDO offers you a choice of 3 different error handling strategies, to fit your style of application development.

  • PDO::ERRMODE_SILENT

    This is the default mode. PDO will simply set the error code for you to inspect using the PDO::errorCode() and PDO::errorInfo() methods on both the statement and database objects; if the error resulted from a call on a statement object, you would invoke the PDOStatement::errorCode() or PDOStatement::errorInfo() method on that object. If the error resulted from a call on the database object, you would invoke those methods on the database object instead.

  • PDO::ERRMODE_WARNING

    In addition to setting the error code, PDO will emit a traditional E_WARNING message. This setting is useful during debugging/testing, if you just want to see what problems occurred without interrupting the flow of the application.

  • PDO::ERRMODE_EXCEPTION

    In addition to setting the error code, PDO will throw a PDOException and set its properties to reflect the error code and error information. This setting is also useful during debugging, as it will effectively "blow up" the script at the point of the error, very quickly pointing a finger at potential problem areas in your code (remember: transactions are automatically rolled back if the exception causes the script to terminate).

    Exception mode is also useful because you can structure your error handling more clearly than with traditional PHP-style warnings, and with less code/nesting than by running in silent mode and explicitly checking the return value of each database call.

    See Exceptions for more information about Exceptions in PHP.

PDO standardizes on using SQL-92 SQLSTATE error code strings; individual PDO drivers are responsible for mapping their native codes to the appropriate SQLSTATE codes. The PDO::errorCode() method returns a single SQLSTATE code. If you need more specific information about an error, PDO also offers an PDO::errorInfo() method which returns an array containing the SQLSTATE code, the driver specific error code and driver specific error string.

Prepared statements and stored procedures
Large Objects (LOBs)
PDO


Large Objects (LOBs)

At some point in your application, you might find that you need to store "large" data in your database. Large typically means "around 4kb or more", although some databases can happily handle up to 32kb before data becomes "large". Large objects can be either textual or binary in nature. PDO allows you to work with this large data type by using the PDO::PARAM_LOB type code in your PDOStatement::bindParam() or PDOStatement::bindColumn() calls. PDO::PARAM_LOB tells PDO to map the data as a stream, so that you can manipulate it using the PHP Streams API.

Example #1 Displaying an image from a database

This example binds the LOB into the variable named $lob and then sends it to the browser using fpassthru(). Since the LOB is represented as a stream, functions such as fgets(), fread() and stream_get_contents() can be used on it.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Example #2 Inserting an image into a database

This example opens up a file and passes the file handle to PDO to insert it as a LOB. PDO will do its best to get the contents of the file up to the database in the most efficient manner possible.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // some function to allocate a new ID

// assume that we are running as part of a file upload form
// You can find more information in the PHP documentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Example #3 Inserting an image into a database: Oracle

Oracle requires a slightly different syntax for inserting a lob from a file. It's also essential that you perform the insert under a transaction, otherwise your newly inserted LOB will be committed with a zero-length as part of the implicit commit that happens when the query is executed:

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // some function to allocate a new ID

// assume that we are running as part of a file upload form
// You can find more information in the PHP documentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>

Errors and error handling
PDO
PDO


The PDO class

简介

Represents a connection between PHP and a database server.

Class synopsis

PDO
PDO {
__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )
bool beginTransaction ( void )
bool commit ( void )
mixed errorCode ( void )
array errorInfo ( void )
int exec ( string $statement )
mixed getAttribute ( int $attribute )
array getAvailableDrivers ( void )
string lastInsertId ([ string $name=NULL ] )
PDOStatement prepare ( string $statement [, array $driver_options=array() ] )
PDOStatement query ( string $statement )
string quote ( string $string [, int $parameter_type=PDO::PARAM_STR ] )
bool rollBack ( void )
bool setAttribute ( int $attribute , mixed $value )
}

Table of Contents

  • PDO::beginTransaction — Initiates a transaction
  • PDO::commit — Commits a transaction
  • PDO::__construct — Creates a PDO instance representing a connection to a database
  • PDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handle
  • PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle
  • PDO::exec — Execute an SQL statement and return the number of affected rows
  • PDO::getAttribute — Retrieve a database connection attribute
  • PDO::getAvailableDrivers — Return an array of available PDO drivers
  • PDO::lastInsertId — Returns the ID of the last inserted row or sequence value
  • PDO::prepare — Prepares a statement for execution and returns a statement object
  • PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object
  • PDO::quote — Quotes a string for use in a query.
  • PDO::rollBack — Rolls back a transaction
  • PDO::setAttribute — Set an attribute
Large Objects (LOBs)
PDO::beginTransaction
PDO


Initiates a transaction

PDO
PDO::commit
PDO
PHP 手册

PDO::beginTransaction

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::beginTransaction — Initiates a transaction

说明

bool PDO::beginTransaction ( void )

Turns off autocommit mode. While autocommit mode is turned off, changes made to the database via the PDO object instance are not committed until you end the transaction by calling PDO::commit(). Calling PDO::rollBack() will roll back all changes to the database and return the connection to autocommit mode.

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Roll back a transaction

The following example begins a transaction and issues two statements that modify the database before rolling back the changes. On MySQL, however, the DROP TABLE statement automatically commits the transaction so that none of the changes in the transaction are rolled back.

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>

参见

  • PDO::commit() - Commits a transaction
  • PDO::rollBack() - Rolls back a transaction

PDO
PDO::commit
PDO


Commits a transaction

PDO::beginTransaction
PDO::__construct
PDO
PHP 手册

PDO::commit

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::commit — Commits a transaction

说明

bool PDO::commit ( void )

Commits a transaction, returning the database connection to autocommit mode until the next call to PDO::beginTransaction() starts a new transaction.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Commit a transaction

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema */
$sth = $dbh->exec("DROP TABLE fruit");

/* Commit the changes */
$dbh->commit();

/* Database connection is now back in autocommit mode */
?>

参见

  • PDO::beginTransaction() - Initiates a transaction
  • PDO::rollBack() - Rolls back a transaction

PDO::beginTransaction
PDO::__construct
PDO


Creates a PDO instance representing a connection to a database

PDO::commit
PDO::errorCode
PDO
PHP 手册

PDO::__construct

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::__construct — Creates a PDO instance representing a connection to a database

说明

PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )

Creates a PDO instance to represent a connection to the requested database.

参数

dsn

The Data Source Name, or DSN, contains the information required to connect to the database.

In general, a DSN consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. Further information is available from the PDO driver-specific documentation.

The dsn parameter supports three different methods of specifying the arguments required to create a database connection:

Driver invocation

dsn contains the full DSN.

URI invocation

dsn consists of uri: followed by a URI that defines the location of a file containing the DSN string. The URI can specify a local file or a remote URL.

uri:file:///path/to/dsnfile

Aliasing

dsn consists of a name name that maps to pdo.dsn.name in php.ini defining the DSN string.

Note: The alias must be defined in php.ini, and not .htaccess or httpd.conf

username

The user name for the DSN string. This parameter is optional for some PDO drivers.

password

The password for the DSN string. This parameter is optional for some PDO drivers.

driver_options

A key=>value array of driver-specific connection options.

返回值

Returns a PDO object on success.

错误／异常

PDO::__construct() throws a PDOException if the attempt to connect to the requested database fails.

范例

Example #1 Create a PDO instance via driver invocation

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Example #2 Create a PDO instance via URI invocation

The following example assumes that the file /usr/local/dbconnect exists with file permissions that enable PHP to read the file. The file contains the PDO DSN to connect to a DB2 database through the PDO_ODBC driver:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

The PHP script can then create a database connection by simply passing the uri: parameter and pointing to the file URI:

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Example #3 Create a PDO instance using an alias

The following example assumes that php.ini contains the following entry to enable a connection to a MySQL database using only the alias mydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Connect to an ODBC database using an alias */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

PDO::commit
PDO::errorCode
PDO


Fetch the SQLSTATE associated with the last operation on the database handle

PDO::__construct
PDO::errorInfo
PDO
PHP 手册

PDO::errorCode

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handle

说明

mixed PDO::errorCode ( void )

返回值

Returns a SQLSTATE, a five-character alphanumeric identifier defined in the ANSI SQL-92 standard. Briefly, an SQLSTATE consists of a two-character class value followed by a three-character subclass value. A class value of 01 indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than '01', except for the class 'IM', indicate an error. The class 'IM' is specific to warnings and errors that derive from the implementation of PDO (or perhaps ODBC, if you're using the ODBC driver) itself. The subclass value '000' in any class indicates that there is no subclass for that SQLSTATE.

PDO::errorCode() only retrieves error codes for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorCode() will not reflect that error. You must call PDOStatement::errorCode() to return the error code for an operation performed on a particular statement handle.

Returns NULL if no operation has been run on the database handle.

范例

Example #1 Retrieving a SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo "\nPDO::errorCode(): ";
print $dbh->errorCode();
?>

上例将输出：

PDO::errorCode(): 42S02

参见

  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle

PDO::__construct
PDO::errorInfo
PDO


Fetch extended error information associated with the last operation on the database handle

PDO::errorCode
PDO::exec
PDO
PHP 手册

PDO::errorInfo

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle

说明

array PDO::errorInfo ( void )

返回值

PDO::errorInfo() returns an array of error information about the last operation performed by this database handle. The array consists of the following fields:

Element | Information
0 | SQLSTATE error code (a five-character alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver-specific error code.
2 | Driver-specific error message.

Note: If the SQLSTATE error code is not set or there is no driver-specific error, the elements following element 0 will be set to NULL.

PDO::errorInfo() only retrieves error information for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorInfo() will not reflect the error from the statement handle. You must call PDOStatement::errorInfo() to return the error information for an operation performed on a particular statement handle.

范例

Example #1 Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- bogus SQL syntax */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
    echo "\nPDO::errorInfo():\n";
    print_r($dbh->errorInfo());
}
?>

上例将输出：

PDO::errorInfo():
Array
(
    [0] => HY000
    [1] => 1
    [2] => near "bogus": syntax error
)

参见

  • PDO::errorCode() - Fetch the SQLSTATE associated with the last operation on the database handle
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle

PDO::errorCode
PDO::exec
PDO


Execute an SQL statement and return the number of affected rows

PDO::errorInfo
PDO::getAttribute
PDO
PHP 手册

PDO::exec

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::exec — Execute an SQL statement and return the number of affected rows

说明

int PDO::exec ( string $statement )

PDO::exec() executes an SQL statement in a single function call, returning the number of rows affected by the statement.

PDO::exec() does not return results from a SELECT statement. For a SELECT statement that you only need to issue once during your program, consider issuing PDO::query(). For a statement that you need to issue multiple times, prepare a PDOStatement object with PDO::prepare() and issue the statement with PDOStatement::execute().

参数

statement

The SQL statement to prepare and execute.

返回值

PDO::exec() returns the number of rows that were modified or deleted by the SQL statement you issued. If no rows were affected, PDO::exec() returns 0.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

The following example incorrectly relies on the return value of PDO::exec(), wherein a statement that affected 0 rows results in a call to die():

<?php
$db->exec() or die($db->errorInfo());
?>

范例

Example #1 Issuing a DELETE statement

Count the number of rows deleted by a DELETE statement with no WHERE clause.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Delete all rows from the FRUIT table */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");

/* Return number of rows that were deleted */
print("Deleted $count rows.\n");
?>

上例将输出：

Deleted 1 rows.

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::execute() - Executes a prepared statement

PDO::errorInfo
PDO::getAttribute
PDO


Retrieve a database connection attribute

PDO::exec
PDO::getAvailableDrivers
PDO
PHP 手册

PDO::getAttribute

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDO::getAttribute — Retrieve a database connection attribute

说明

mixed PDO::getAttribute ( int $attribute )

This function returns the value of a database connection attribute. To retrieve PDOStatement attributes, refer to PDOStatement::getAttribute().

Note that some database/driver combinations may not support all of the database connection attributes.

参数

attribute

One of the PDO::ATTR_* constants. The constants that apply to database connections are as follows:

  • PDO::ATTR_AUTOCOMMIT
  • PDO::ATTR_CASE
  • PDO::ATTR_CLIENT_VERSION
  • PDO::ATTR_CONNECTION_STATUS
  • PDO::ATTR_DRIVER_NAME
  • PDO::ATTR_ERRMODE
  • PDO::ATTR_ORACLE_NULLS
  • PDO::ATTR_PERSISTENT
  • PDO::ATTR_PREFETCH
  • PDO::ATTR_SERVER_INFO
  • PDO::ATTR_SERVER_VERSION
  • PDO::ATTR_TIMEOUT

返回值

A successful call returns the value of the requested PDO attribute. An unsuccessful call returns null.

范例

Example #1 Retrieving database connection attributes

<?php
$conn = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
    "AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
    "ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
    "TIMEOUT"
);

foreach ($attributes as $val) {
    echo "PDO::ATTR_$val: ";
    echo $conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

参见

  • PDO::setAttribute() - Set an attribute
  • PDOStatement::getAttribute() - Retrieve a statement attribute
  • PDOStatement::setAttribute() - Set a statement attribute

PDO::exec
PDO::getAvailableDrivers
PDO


Return an array of available PDO drivers

PDO::getAttribute
PDO::lastInsertId
PDO
PHP 手册

PDO::getAvailableDrivers

(No version information available, might be only in CVS)

PDO::getAvailableDrivers — Return an array of available PDO drivers

说明

array PDO::getAvailableDrivers ( void )
array pdo_drivers ( void )

This function returns all currently available PDO drivers which can be used in DSN parameter of PDO::__construct(). This is a static method.

返回值

PDO::getAvailableDrivers() returns an array of PDO driver names. If no drivers are available, it returns an empty array.

范例

Example #1 A PDO::getAvailableDrivers() example

<?php
print_r(PDO::getAvailableDrivers());
?>

上例的输出类似于：

Array
(
    [0] => mysql
    [1] => sqlite
)

PDO::getAttribute
PDO::lastInsertId
PDO


Returns the ID of the last inserted row or sequence value

PDO::getAvailableDrivers
PDO::prepare
PDO
PHP 手册

PDO::lastInsertId

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::lastInsertId — Returns the ID of the last inserted row or sequence value

说明

string PDO::lastInsertId ([ string $name=NULL ] )

Returns the ID of the last inserted row, or the last value from a sequence object, depending on the underlying driver. For example, PDO_PGSQL() requires you to specify the name of a sequence object for the name parameter.

Note: This method may not return a meaningful or consistent result across different PDO drivers, because the underlying database may not even support the notion of auto-increment fields or sequences.

参数

name

Name of the sequence object from which the ID should be returned.

返回值

If a sequence name was not specified for the name parameter, PDO::lastInsertId() returns a string representing the row ID of the last row that was inserted into the database.

If a sequence name was specified for the name parameter, PDO::lastInsertId() returns a string representing the last value retrieved from the specified sequence object.

If the PDO driver does not support this capability, PDO::lastInsertId() triggers an IM001 SQLSTATE.

PDO::getAvailableDrivers
PDO::prepare
PDO


Prepares a statement for execution and returns a statement object

PDO::lastInsertId
PDO::query
PDO
PHP 手册

PDO::prepare

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::prepare — Prepares a statement for execution and returns a statement object

说明

PDOStatement PDO::prepare ( string $statement [, array $driver_options=array() ] )

Prepares an SQL statement to be executed by the PDOStatement::execute() method. The SQL statement can contain zero or more named (:name) or question mark (?) parameter markers for which real values will be substituted when the statement is executed. You cannot use both named and question mark parameter markers within the same SQL statement; pick one or the other parameter style.

You must include a unique parameter marker for each value you wish to pass in to the statement when you call PDOStatement::execute(). You cannot use a named parameter marker of the same name twice in a prepared statement. You cannot bind multiple values to a single named parameter in, for example, the IN() clause of an SQL statement.

Calling PDO::prepare() and PDOStatement::execute() for statements that will be issued multiple times with different parameter values optimizes the performance of your application by allowing the driver to negotiate client and/or server side caching of the query plan and meta information, and helps to prevent SQL injection attacks by eliminating the need to manually quote the parameters.

PDO will emulate prepared statements/bound parameters for drivers that do not natively support them, and can also rewrite named or question mark style parameter markers to something more appropriate, if the driver supports one style but not the other.

参数

statement

This must be a valid SQL statement for the target database server.

driver_options

This array holds one or more key=>value pairs to set attribute values for the PDOStatement object that this method returns. You would most commonly use this to set the PDO::ATTR_CURSOR value to PDO::CURSOR_SCROLL to request a scrollable cursor. Some drivers have driver specific options that may be set at prepare-time.

返回值

If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object. If the database server cannot successfully prepare the statement, PDO::prepare() emits PDOException.

Note: Emulated prepared statements does not communicate with the database server so PDO::prepare() does not check the statement.

范例

Example #1 Prepare an SQL statement with named parameters

<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array('calories' => 175, 'colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Example #2 Prepare an SQL statement with question mark parameters

<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>

参见

  • PDO::exec() - Execute an SQL statement and return the number of affected rows
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::execute() - Executes a prepared statement

PDO::lastInsertId
PDO::query
PDO


Executes an SQL statement, returning a result set as a PDOStatement object

PDO::prepare
PDO::quote
PDO
PHP 手册

PDO::query

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)

PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object

说明

PDOStatement PDO::query ( string $statement )
PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

PDO::query() executes an SQL statement in a single function call, returning the result set (if any) returned by the statement as a PDOStatement object.

For a query that you need to issue multiple times, you will realize better performance if you prepare a PDOStatement object using PDO::prepare() and issue the statement with multiple calls to PDOStatement::execute().

If you do not fetch all of the data in a result set before issuing your next call to PDO::query(), your call may fail. Call PDOStatement::closeCursor() to release the database resources associated with the PDOStatement object before issuing your next call to PDO::query().

Note: Although this function is only documented as having a single parameter, you may pass additional arguments to this function. They will be treated as though you called PDOStatement::setFetchMode() on the resultant statement object.

参数

statement

The SQL statement to prepare and execute.

返回值

PDO::query() returns a PDOStatement object.

范例

Example #1 Demonstrate PDO::query

A nice feature of PDO::query() is that it enables you to iterate over the rowset returned by a successfully executed SELECT statement.

<?php
function getFruit($conn) {
    $sql = 'SELECT name, colour, calories FROM fruit ORDER BY name';
    foreach ($conn->query($sql) as $row) {
        print $row['NAME'] . "\t";
        print $row['COLOUR'] . "\t";
        print $row['CALORIES'] . "\n";
    }
}
?>

上例将输出：

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

参见

  • PDO::exec() - Execute an SQL statement and return the number of affected rows
  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Executes a prepared statement

PDO::prepare
PDO::quote
PDO


Quotes a string for use in a query.

PDO::query
PDO::rollBack
PDO
PHP 手册

PDO::quote

(PHP 5 >= 5.1.0, PECL pdo >= 0.2.1)

PDO::quote — Quotes a string for use in a query.

说明

string PDO::quote ( string $string [, int $parameter_type=PDO::PARAM_STR ] )

PDO::quote() places quotes around the input string (if required) and escapes special characters within the input string, using a quoting style appropriate to the underlying driver.

If you are using this function to build SQL statements, you are strongly recommended to use PDO::prepare() to prepare SQL statements with bound parameters instead of using PDO::quote() to interpolate user input into a SQL statement. Prepared statements with bound parameters are not only more portable, more convenient, immune to SQL injection, but are often much faster to execute than interpolated queries, as both the server and client side can cache a compiled form of the query.

Not all PDO drivers implement this method (notably PDO_ODBC). Consider using prepared statements instead.

参数

string

The string to be quoted.

parameter_type

Provides a data type hint for drivers that have alternate quoting styles. The default value is PDO::PARAM_STR.

返回值

Returns a quoted string that is theoretically safe to pass into an SQL statement. Returns FALSE if the driver does not support quoting in this way.

范例

Example #1 Quoting a normal string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Simple string */
$string = 'Nice';
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>

上例将输出：

Unquoted string: Nice
Quoted string: 'Nice'

Example #2 Quoting a dangerous string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Dangerous string */
$string = 'Naughty \' string';
print "Unquoted string: $string\n";
print "Quoted string:" . $conn->quote($string) . "\n";
?>

上例将输出：

Unquoted string: Naughty ' string
Quoted string: 'Naughty '' string'

Example #3 Quoting a complex string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Complex string */
$string = "Co'mpl''ex \"st'\"ring";
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>

上例将输出：

Unquoted string: Co'mpl''ex "st'"ring
Quoted string: 'Co''mpl''''ex "st''"ring'

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Executes a prepared statement

PDO::query
PDO::rollBack
PDO


Rolls back a transaction

PDO::quote
PDO::setAttribute
PDO
PHP 手册

PDO::rollBack

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::rollBack — Rolls back a transaction

说明

bool PDO::rollBack ( void )

Rolls back the current transaction, as initiated by PDO::beginTransaction(). It is an error to call this method if no transaction is active.

If the database was set to autocommit mode, this function will restore autocommit mode after it has rolled back the transaction.

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Roll back a transaction

The following example begins a transaction and issues two statements that modify the database before rolling back the changes. On MySQL, however, the DROP TABLE statement automatically commits the transaction so that none of the changes in the transaction are rolled back.

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>

参见

  • PDO::beginTransaction() - Initiates a transaction
  • PDO::commit() - Commits a transaction

PDO::quote
PDO::setAttribute
PDO


Set an attribute

PDO::rollBack
PDOStatement
PDO
PHP 手册

PDO::setAttribute

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::setAttribute — Set an attribute

说明

bool PDO::setAttribute ( int $attribute , mixed $value )

Sets an attribute on the database handle. Some of the available generic attributes are listed below; some drivers may make use of additional driver specific attributes.

  • PDO::ATTR_CASE: Force column names to a specific case.

    • PDO::CASE_LOWER: Force column names to lower case.

    • PDO::CASE_NATURAL: Leave column names as returned by the database driver.

    • PDO::CASE_UPPER: Force column names to upper case.

  • PDO::ATTR_ERRMODE: Error reporting.

    • PDO::ERRMODE_SILENT: Just set error codes.

    • PDO::ERRMODE_WARNING: Raise E_WARNING.

    • PDO::ERRMODE_EXCEPTION: Throw exceptions.

  • PDO::ATTR_ORACLE_NULLS (available with all drivers, not just Oracle): Conversion of NULL and empty strings.

    • PDO::NULL_NATURAL: No conversion.

    • PDO::NULL_EMPTY_STRING: Empty string is converted to NULL.

    • PDO::NULL_TO_STRING: NULL is converted to an empty string.

  • PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.

  • PDO::ATTR_STATEMENT_CLASS: Set user-supplied statement class derived from PDOStatement. Cannot be used with persistent PDO instances. Requires array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_AUTOCOMMIT (available in OCI, Firebird and MySQL): Whether to autocommit every single statement.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (available in MySQL): Use buffered queries.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

PDO::rollBack
PDOStatement
PDO


The PDOStatement class

简介

Represents a prepared statement and, after the statement is executed, an associated result set.

Class synopsis

PDOStatement
PDOStatement implements Traversable {
bool bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )
bool bindParam ( mixed $parameter , mixed &$variable [, int $data_type [, int $length [, mixed $driver_options ]]] )
bool bindValue ( mixed $parameter , mixed $value [, int $data_type ] )
bool closeCursor ( void )
int columnCount ( void )
string errorCode ( void )
array errorInfo ( void )
bool execute ([ array $input_parameters=array() ] )
mixed fetch ([ int $fetch_style=PDO::FETCH_BOTH [, int $cursor_orientation=PDO::FETCH_ORI_NEXT [, int $cursor_offset=0 ]]] )
array fetchAll ([ int $fetch_style=PDO::FETCH_BOTH [, int $column_index [, array $ctor_args=array() ]]] )
string fetchColumn ([ int $column_number=0 ] )
mixed fetchObject ([ string $class_name [, array $ctor_args ]] )
mixed getAttribute ( int $attribute )
array getColumnMeta ( int $column )
bool nextRowset ( void )
int rowCount ( void )
bool setAttribute ( int $attribute , mixed $value )
bool setFetchMode ( int $mode )
}

Table of Contents

  • PDOStatement->bindColumn — Bind a column to a PHP variable
  • PDOStatement->bindParam — Binds a parameter to the specified variable name
  • PDOStatement->bindValue — Binds a value to a parameter
  • PDOStatement->closeCursor — Closes the cursor, enabling the statement to be executed again.
  • PDOStatement->columnCount — Returns the number of columns in the result set
  • PDOStatement->errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement->errorInfo — Fetch extended error information associated with the last operation on the statement handle
  • PDOStatement->execute — Executes a prepared statement
  • PDOStatement->fetch — Fetches the next row from a result set
  • PDOStatement->fetchAll — Returns an array containing all of the result set rows
  • PDOStatement->fetchColumn — Returns a single column from the next row of a result set
  • PDOStatement->fetchObject — Fetches the next row and returns it as an object.
  • PDOStatement->getAttribute — Retrieve a statement attribute
  • PDOStatement->getColumnMeta — Returns metadata for a column in a result set
  • PDOStatement->nextRowset — Advances to the next rowset in a multi-rowset statement handle
  • PDOStatement->rowCount — Returns the number of rows affected by the last SQL statement
  • PDOStatement->setAttribute — Set a statement attribute
  • PDOStatement->setFetchMode — Set the default fetch mode for this statement
PDO::setAttribute
PDOStatement->bindColumn
PDO


Bind a column to a PHP variable

PDOStatement
PDOStatement->bindParam
PDOStatement
PHP 手册

PDOStatement->bindColumn

(No version information available, might be only in CVS)

PDOStatement->bindColumn — Bind a column to a PHP variable

说明

bool PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )

PDOStatement::bindColumn() arranges to have a particular variable bound to a given column in the result-set from a query. Each call to PDOStatement::fetch() or PDOStatement::fetchAll() will update all the variables that are bound to columns.

Note: Since information about the columns is not always available to PDO until the statement is executed, portable applications should call this function after PDOStatement::execute().

参数

column

Number of the column (1-indexed) or name of the column in the result set. If using the column name, be aware that the name should match the case of the column, as returned by the driver.

param

Name of the PHP variable to which the column will be bound.

type

Data type of the parameter, specified by the PDO::PARAM_* constants.

maxlen

A hint for pre-allocation.

driverdata

Optional parameter(s) for the driver.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Binding result set output to PHP variables

Binding columns in the result set to PHP variables is an effective way to make the data contained in each row immediately available to your application. The following example demonstrates how PDO allows you to bind and retrieve columns with a variety of options and with intelligent defaults.

<?php
function readData($dbh) {
  $sql = 'SELECT name, colour, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Bind by column number */
    $stmt->bindColumn(1, $name);
    $stmt->bindColumn(2, $colour);

    /* Bind by column name */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $name . "\t" . $colour . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

上例将输出：

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

参见

  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set

PDOStatement
PDOStatement->bindParam
PDOStatement


Binds a parameter to the specified variable name

PDOStatement->bindColumn
PDOStatement->bindValue
PDOStatement
PHP 手册

PDOStatement->bindParam

(No version information available, might be only in CVS)

PDOStatement->bindParam — Binds a parameter to the specified variable name

说明

bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type [, int $length [, mixed $driver_options ]]] )

Binds a PHP variable to a corresponding named or question mark placeholder in the SQL statement that was use to prepare the statement. Unlike PDOStatement::bindValue(), the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Most parameters are input parameters, that is, parameters that are used in a read-only fashion to build up the query. Some drivers support the invocation of stored procedures that return data as output parameters, and some also as input/output parameters that both send in data and are updated to receive it.

参数

parameter

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

variable

Name of the PHP variable to bind to the SQL statement parameter.

data_type

Explicit data type for the parameter using the PDO::PARAM_* constants. Defaults to PDO::PARAM_STR. To return an INOUT parameter from a stored procedure, use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits for the data_type parameter.

length

Length of the data type. To indicate that a parameter is an OUT parameter from a stored procedure, you must explicitly set the length.

driver_options

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Example #2 Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Example #3 Call a stored procedure with an INOUT parameter

<?php
/* Call a stored procedure with an INOUT parameter */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("After pureeing fruit, the colour is: $colour");
?>

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::bindValue() - Binds a value to a parameter

PDOStatement->bindColumn
PDOStatement->bindValue
PDOStatement


Binds a value to a parameter

PDOStatement->bindParam
PDOStatement->closeCursor
PDOStatement
PHP 手册

PDOStatement->bindValue

(No version information available, might be only in CVS)

PDOStatement->bindValue — Binds a value to a parameter

说明

bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type ] )

Binds a value to a corresponding named or question mark placeholder in the SQL statement that was use to prepare the statement.

参数

parameter

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

value

The value to bind to the parameter.

data_type

Explicit data type for the parameter using the PDO::PARAM_* constants. Defaults to PDO::PARAM_STR.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>

Example #2 Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::bindParam() - Binds a parameter to the specified variable name

PDOStatement->bindParam
PDOStatement->closeCursor
PDOStatement


Closes the cursor, enabling the statement to be executed again.

PDOStatement->bindValue
PDOStatement->columnCount
PDOStatement
PHP 手册

PDOStatement->closeCursor

(No version information available, might be only in CVS)

PDOStatement->closeCursor — Closes the cursor, enabling the statement to be executed again.

说明

bool PDOStatement::closeCursor ( void )

PDOStatement::closeCursor() frees up the connection to the server so that other SQL statements may be issued, but leaves the statement in a state that enables it to be executed again.

This method is useful for database drivers that do not support executing a PDOStatement object when a previously executed PDOStatement object still has unfetched rows. If your database driver suffers from this limitation, the problem may manifest itself in an out-of-sequence error.

PDOStatement::closeCursor() is implemented either as an optional driver specific method (allowing for maximum efficiency), or as the generic PDO fallback if no driver specific function is installed. The PDO generic fallback is semantically the same as writing the following code in your PHP script:

<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A PDOStatement::closeCursor() example

In the following example, the $stmt PDOStatement object returns multiple rows but the application fetches only the first row, leaving the PDOStatement object in a state of having unfetched rows. To ensure that the application will work with all database drivers, the author inserts a call to PDOStatement::closeCursor() on $stmt before executing the $otherStmt PDOStatement object.

<?php
/* Create a PDOStatement object */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Create a second PDOStatement object */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Execute the first statement */
$stmt->execute();

/* Fetch only the first row from the results */
$stmt->fetch();

/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();

/* Now we can execute the second statement */
$otherStmt->execute();
?>

参见

  • PDOStatement::execute() - Executes a prepared statement

PDOStatement->bindValue
PDOStatement->columnCount
PDOStatement


Returns the number of columns in the result set

PDOStatement->closeCursor
PDOStatement->errorCode
PDOStatement
PHP 手册

PDOStatement->columnCount

(No version information available, might be only in CVS)

PDOStatement->columnCount — Returns the number of columns in the result set

说明

int PDOStatement::columnCount ( void )

Use PDOStatement::columnCount() to return the number of columns in the result set represented by the PDOStatement object.

If the PDOStatement object was returned from PDO::query(), the column count is immediately available.

If the PDOStatement object was returned from PDO::prepare(), an accurate column count will not be available until you invoke PDOStatement::execute().

返回值

Returns the number of columns in the result set represented by the PDOStatement object. If there is no result set, PDOStatement::columnCount() returns 0.

范例

Example #1 Counting columns

This example demonstrates how PDOStatement::columnCount() operates with and without a result set.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

/* Count the number of columns in the (non-existent) result set */
$colcount = $sth->columnCount();
print("Before execute(), result set has $colcount columns (should be 0)\n");

$sth->execute();

/* Count the number of columns in the result set */
$colcount = $sth->columnCount();
print("After execute(), result set has $colcount columns (should be 2)\n");

?>

上例将输出：

Before execute(), result set has 0 columns (should be 0)
After execute(), result set has 2 columns (should be 2)

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::rowCount() - Returns the number of rows affected by the last SQL statement

PDOStatement->closeCursor
PDOStatement->errorCode
PDOStatement


Fetch the SQLSTATE associated with the last operation on the statement handle

PDOStatement->columnCount
PDOStatement->errorInfo
PDOStatement
PHP 手册

PDOStatement->errorCode

(No version information available, might be only in CVS)

PDOStatement->errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle

说明

string PDOStatement::errorCode ( void )

返回值

Identical to PDO::errorCode(), except that PDOStatement::errorCode() only retrieves error codes for operations performed with PDOStatement objects.

范例

Example #1 Retrieving a SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

上例将输出：

PDOStatement::errorCode(): 42S02

参见

  • PDO::errorCode() - Fetch the SQLSTATE associated with the last operation on the database handle
  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle

PDOStatement->columnCount
PDOStatement->errorInfo
PDOStatement


Fetch extended error information associated with the last operation on the statement handle

PDOStatement->errorCode
PDOStatement->execute
PDOStatement
PHP 手册

PDOStatement->errorInfo

(No version information available, might be only in CVS)

PDOStatement->errorInfo — Fetch extended error information associated with the last operation on the statement handle

说明

array PDOStatement::errorInfo ( void )

返回值

PDOStatement::errorInfo() returns an array of error information about the last operation performed by this statement handle. The array consists of the following fields:

Element | Information
0 | SQLSTATE error code (a five-character alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver-specific error code.
2 | Driver-specific error message.

范例

Example #1 Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- the BONES table does not exist */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>

上例将输出：

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

参见

  • PDO::errorCode() - Fetch the SQLSTATE associated with the last operation on the database handle
  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle

PDOStatement->errorCode
PDOStatement->execute
PDOStatement


Executes a prepared statement

PDOStatement->errorInfo
PDOStatement->fetch
PDOStatement
PHP 手册

PDOStatement->execute

(No version information available, might be only in CVS)

PDOStatement->execute — Executes a prepared statement

说明

bool PDOStatement::execute ([ array $input_parameters=array() ] )

Execute the prepared statement. If the prepared statement included parameter markers, you must either:

  • call PDOStatement::bindParam() to bind PHP variables to the parameter markers: bound variables pass their value as input and receive the output value, if any, of their associated parameter markers

  • or pass an array of input-only parameter values

参数

input_parameters

An array of values with as many elements as there are bound parameters in the SQL statement being executed.

You cannot bind multiple values to a single parameter; for example, you cannot bind two values to a single named parameter in an IN() clause.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Execute a prepared statement with bound variables

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Example #2 Execute a prepared statement with an array of insert values (named parameters)

<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

Example #3 Execute a prepared statement with an array of insert values (placeholders)

<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>

Example #4 Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::bindParam() - Binds a parameter to the specified variable name
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set

PDOStatement->errorInfo
PDOStatement->fetch
PDOStatement


Fetches the next row from a result set

PDOStatement->execute
PDOStatement->fetchAll
PDOStatement
PHP 手册

PDOStatement->fetch

(No version information available, might be only in CVS)

PDOStatement->fetch — Fetches the next row from a result set

说明

 mixed PDOStatement::fetch
  ([ int $fetch_style=PDO::FETCH_BOTH
 [, int $cursor_orientation=PDO::FETCH_ORI_NEXT
 [, int $cursor_offset=0
]]] )

Fetches a row from a result set associated with a PDOStatement object. The fetch_style parameter determines how PDO returns the row.

参数

fetch_style

Controls how the next row will be returned to the caller. This value must be one of the PDO::FETCH_* constants, defaulting to PDO::FETCH_BOTH.

  • PDO::FETCH_ASSOC: returns an array indexed by column name as returned in your result set

  • PDO::FETCH_BOTH (default): returns an array indexed by both column name and 0-indexed column number as returned in your result set

  • PDO::FETCH_BOUND: returns TRUE and assigns the values of the columns in your result set to the PHP variables to which they were bound with the PDOStatement::bindColumn() method

  • PDO::FETCH_CLASS: returns a new instance of the requested class, mapping the columns of the result set to named properties in the class. If fetch_style includes PDO::FETCH_CLASSTYPE (e.g. PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE) then the name of the class is determined from a value of the first column.

  • PDO::FETCH_INTO: updates an existing instance of the requested class, mapping the columns of the result set to named properties in the class

  • PDO::FETCH_LAZY: combines PDO::FETCH_BOTH and PDO::FETCH_OBJ, creating the object variable names as they are accessed

  • PDO::FETCH_NUM: returns an array indexed by column number as returned in your result set, starting at column 0

  • PDO::FETCH_OBJ: returns an anonymous object with property names that correspond to the column names returned in your result set

cursor_orientation

For a PDOStatement object representing a scrollable cursor, this value determines which row will be returned to the caller. This value must be one of the PDO::FETCH_ORI_* constants, defaulting to PDO::FETCH_ORI_NEXT. To request a scrollable cursor for your PDOStatement object, you must set the PDO::ATTR_CURSOR attribute to PDO::CURSOR_SCROLL when you prepare the SQL statement with PDO::prepare().

offset

For a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO::FETCH_ORI_ABS, this value specifies the absolute number of the row in the result set that shall be fetched.

For a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO::FETCH_ORI_REL, this value specifies the row to fetch relative to the cursor position before PDOStatement::fetch() was called.

返回值

The return value of this function on success depends on the fetch type. In all cases, FALSE is returned on failure.

范例

Example #1 Fetching rows using different fetch styles

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Exercise PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
?>

上例将输出：

PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
    [NAME] => apple
    [COLOUR] => red
)

PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
    [NAME] => banana
    [0] => banana
    [COLOUR] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties
PDORow Object
(
    [NAME] => orange
    [COLOUR] => orange
)

PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
kiwi

Example #2 Fetching rows with a scrollable cursor

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
function readDataBackwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    do {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}

print "Reading forwards:\n";
readDataForwards($conn);

print "Reading backwards:\n";
readDataBackwards($conn);
?>

上例将输出：

Reading forwards:
21    10    5
16    0     5
19    20    10

Reading backwards:
19    20    10
16    0     5
21    10    5

参见

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDOStatement::fetchObject() - Fetches the next row and returns it as an object.
  • PDOStatement::setFetchMode() - Set the default fetch mode for this statement

PDOStatement->execute
PDOStatement->fetchAll
PDOStatement


Returns an array containing all of the result set rows

PDOStatement->fetch
PDOStatement->fetchColumn
PDOStatement
PHP 手册

PDOStatement->fetchAll

(No version information available, might be only in CVS)

PDOStatement->fetchAll — Returns an array containing all of the result set rows

说明

array PDOStatement::fetchAll ([ int $fetch_style=PDO::FETCH_BOTH [, int $column_index [, array $ctor_args=array() ]]] )

参数

fetch_style

Controls the contents of the returned array as documented in PDOStatement::fetch(). Defaults to PDO::FETCH_BOTH.

To return an array consisting of all values of a single column from the result set, specify PDO::FETCH_COLUMN. You can specify which column you want with the column-index parameter.

To fetch only the unique values of a single column from the result set, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_UNIQUE.

To return an associative array grouped by the values of a specified column, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_GROUP.

column_index

Returns the indicated 0-indexed column when the value of fetch_style is PDO::FETCH_COLUMN. Defaults to 0.

ctor_args

Arguments of custom class constructor.

返回值

PDOStatement::fetchAll() returns an array containing all of the remaining rows in the result set. The array represents each row as either an array of column values or an object with properties corresponding to each column name.

Using this method to fetch large result sets will result in a heavy demand on system and possibly network resources. Rather than retrieving all of the data and manipulating it in PHP, consider using the database server to manipulate the result sets. For example, use the WHERE and SORT BY clauses in SQL to restrict results before retrieving and processing them with PHP.

范例

Example #1 Fetch all remaining rows in a result set

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>

上例将输出：

Fetch all of the remaining rows in the result set:
Array
(
    [0] => Array
        (
            [NAME] => pear
            [0] => pear
            [COLOUR] => green
            [1] => green
        )

    [1] => Array
        (
            [NAME] => watermelon
            [0] => watermelon
            [COLOUR] => pink
            [1] => pink
        )

)

Example #2 Fetching all values of a single column from a result set

The following example demonstrates how to return all of the values of a single column from a result set, even though the SQL statement itself may return multiple columns per row.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the values of the first column */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

上例将输出：

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Example #3 Grouping all values by a single column

The following example demonstrates how to return an associative array grouped by the values of the specified column in the result set. The array contains three keys: values apple and pear are returned as arrays that contain two different colours, while watermelon is returned as an array that contains only one colour.

<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple', 'green'));
$insert->execute(array('pear', 'yellow'));

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Group values by the first column */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

上例将输出：

array(3) {
  ["apple"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(3) "red"
  }
  ["pear"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(6) "yellow"
  }
  ["watermelon"]=>
  array(1) {
    [0]=>
    string(5) "green"
  }
}

参见

  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::setFetchMode() - Set the default fetch mode for this statement

PDOStatement->fetch
PDOStatement->fetchColumn
PDOStatement


Returns a single column from the next row of a result set

PDOStatement->fetchAll
PDOStatement->fetchObject
PDOStatement
PHP 手册

PDOStatement->fetchColumn

(No version information available, might be only in CVS)

PDOStatement->fetchColumn — Returns a single column from the next row of a result set

说明

string PDOStatement::fetchColumn ([ int $column_number=0 ] )

Returns a single column from the next row of a result set or FALSE if there are no more rows.

参数

column_number

0-indexed number of the column you wish to retrieve from the row. If no value is supplied, PDOStatement::fetchColumn() fetches the first column.

返回值

PDOStatement::fetchColumn() returns a single column in the next row of a result set.

Warning

There is no way to return another column from the same row if you use PDOStatement::fetchColumn() to retrieve data.

范例

Example #1 Return first column of the next row

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch the first column from the next row in the result set */
print("Fetch the first column from the next row in the result set:\n");
$result = $sth->fetchColumn();
print("name = $result\n");

print("Fetch the second column from the next row in the result set:\n");
$result = $sth->fetchColumn(1);
print("colour = $result\n");
?>

上例将输出：

Fetch the first column from the next row in the result set:
name = lemon
Fetch the second column from the next row in the result set:
colour = red

参见

  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::setFetchMode() - Set the default fetch mode for this statement

PDOStatement->fetchAll
PDOStatement->fetchObject
PDOStatement


Fetches the next row and returns it as an object.

PDOStatement->fetchColumn
PDOStatement->getAttribute
PDOStatement
PHP 手册

PDOStatement->fetchObject

(No version information available, might be only in CVS)

PDOStatement->fetchObject — Fetches the next row and returns it as an object.

说明

mixed PDOStatement::fetchObject ([ string $class_name [, array $ctor_args ]] )

Fetches the next row and returns it as an object. This function is an
alternative to PDOStatement::fetch() with
PDO::FETCH_CLASS or
PDO::FETCH_OBJ style.

参数

class_name

Name of the created class, defaults to stdClass.

ctor_args

Elements of this array are passed to the constructor.

返回值

Returns an instance of the required class with property names that correspond to the column names or FALSE in case of an error.

参见

  • PDOStatement::fetch() - Fetches the next row from a result set

PDOStatement->fetchColumn
PDOStatement->getAttribute
PDOStatement


Retrieve a statement attribute

PDOStatement->fetchObject
PDOStatement->getColumnMeta
PDOStatement
PHP 手册

PDOStatement->getAttribute

(No version information available, might be only in CVS)

PDOStatement->getAttribute — Retrieve a statement attribute

说明

mixed PDOStatement::getAttribute ( int $attribute )

Gets an attribute of the statement. Currently, no generic attributes exist but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Get the name of cursor for UPDATE ... WHERE CURRENT OF.

返回值

Returns the attribute value.

参见

  • PDO::getAttribute() - Retrieve a database connection attribute
  • PDO::setAttribute() - Set an attribute
  • PDOStatement::setAttribute() - Set a statement attribute

PDOStatement->fetchObject
PDOStatement->getColumnMeta
PDOStatement


Returns metadata for a column in a result set

PDOStatement->getAttribute
PDOStatement->nextRowset
PDOStatement
PHP 手册

PDOStatement->getColumnMeta

(No version information available, might be only in CVS)

PDOStatement->getColumnMeta — Returns metadata for a column in a result set

说明

array PDOStatement::getColumnMeta ( int $column )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Retrieves the metadata for a 0-indexed column in a result set as an associative array.

Warning

Not all PDO drivers support PDOStatement::getColumnMeta().

参数

column

The 0-indexed column in the result set.

返回值

Returns an associative array containing the following values representing the metadata for a single column:

Column metadata
Name | Value
native_type | The PHP native type used to represent the column value.
driver:decl_type | The SQL type used to represent the column value in the database. If the column in the result set is the result of a function, this value is not returned by PDOStatement::getColumnMeta().
flags | Any flags set for this column.
name | The name of this column as returned by the database.
table | The name of this column's table as returned by the database.
len | The length of this column. Normally -1 for types other than floating point decimals.
precision | The numeric precision of this column. Normally 0 for types other than floating point decimals.
pdo_type | The type of this column as represented by the PDO::PARAM_* constants.

Returns FALSE if the requested column does not exist in the result set, or if no result set exists.

更新日志

版本 | 说明
5.2.3 | table field

范例

Example #1 Retrieving column metadata

The following example shows the results of retrieving the metadata for a single column generated by a function (COUNT) in a PDO_SQLITE driver.

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

上例将输出：

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

参见

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::rowCount() - Returns the number of rows affected by the last SQL statement

PDOStatement->getAttribute
PDOStatement->nextRowset
PDOStatement


Advances to the next rowset in a multi-rowset statement handle

PDOStatement->getColumnMeta
PDOStatement->rowCount
PDOStatement
PHP 手册

PDOStatement->nextRowset

(No version information available, might be only in CVS)

PDOStatement->nextRowset — Advances to the next rowset in a multi-rowset statement handle

说明

bool PDOStatement::nextRowset ( void )

Some database servers support stored procedures that return more than one rowset (also known as a result set). PDOStatement::nextRowset() enables you to access the second and subsequent rowsets associated with a PDOStatement object. Each rowset can have a different set of columns from the preceding rowset.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Fetching multiple rowsets returned from a stored procedure

The following example shows how to call a stored procedure, MULTIPLE_ROWSETS, that returns three rowsets. We use a do / while loop to loop over the PDOStatement::nextRowset() method, which returns false and terminates the loop when no more rowsets can be returned.

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetch(PDO::FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

上例将输出：

Result set 1:
apple    red
banana   yellow

Result set 2:
orange   orange    150
banana   yellow    175

Result set 3:
lime     green
apple    red
banana   yellow

参见

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::getColumnMeta() - Returns metadata for a column in a result set
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object

PDOStatement->getColumnMeta
PDOStatement->rowCount
PDOStatement


Returns the number of rows affected by the last SQL statement

PDOStatement->nextRowset
PDOStatement->setAttribute
PDOStatement
PHP 手册

PDOStatement->rowCount

(No version information available, might be only in CVS)

PDOStatement->rowCount — Returns the number of rows affected by the last SQL statement

说明

int PDOStatement::rowCount ( void )

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

返回值

Returns the number of rows.

范例

Example #1 Return the number of deleted rows

PDOStatement::rowCount() returns the number of rows affected by a DELETE, INSERT, or UPDATE statement.

<?php
/* Delete all rows from the FRUIT table */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Return number of rows that were deleted */
print("Return number of rows that were deleted:\n");
$count = $del->rowCount();
print("Deleted $count rows.\n");
?>

上例将输出：

Deleted 9 rows.

Example #2 Counting rows returned by a SELECT statement

For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

    /* Check the number of rows that match the SELECT statement */
  if ($res->fetchColumn() > 0) {

        /* Issue the real SELECT statement and work with the results */
         $sql = "SELECT name FROM fruit WHERE calories > 100";
       foreach ($conn->query($sql) as $row) {
           print "Name: " .  $row['NAME'] . "\n";
         }
    }
    /* No rows matched -- do something else */
  else {
      print "No rows matched the query.";
    }
}

$res = null;
$conn = null;
?>

上例将输出：

apple
banana
orange
pear

参见

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object

PDOStatement->nextRowset
PDOStatement->setAttribute
PDOStatement


Set a statement attribute

PDOStatement->rowCount
PDOStatement->setFetchMode
PDOStatement
PHP 手册

PDOStatement->setAttribute

(No version information available, might be only in CVS)

PDOStatement->setAttribute — Set a statement attribute

说明

bool PDOStatement::setAttribute ( int $attribute , mixed $value )

Sets an attribute on the statement. Currently, no generic attributes are set but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Set the name of cursor for UPDATE ... WHERE CURRENT OF.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • PDO::getAttribute() - Retrieve a database connection attribute
  • PDO::setAttribute() - Set an attribute
  • PDOStatement::getAttribute() - Retrieve a statement attribute

PDOStatement->rowCount
PDOStatement->setFetchMode
PDOStatement


Set the default fetch mode for this statement

PDOStatement->setAttribute
PDOException
PDOStatement
PHP 手册

PDOStatement->setFetchMode

(No version information available, might be only in CVS)

PDOStatement->setFetchMode — Set the default fetch mode for this statement

说明

bool PDOStatement::setFetchMode ( int $mode )
bool PDOStatement::setFetchMode ( int $PDO::FETCH_COLUMN , int $colno )
bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
bool PDOStatement::setFetchMode ( int $PDO::FETCH_INTO , object $object )

参数

mode

The fetch mode must be one of the PDO::FETCH_* constants.

colno

Column number.

classname

Class name.

ctorargs

Constructor arguments.

object

Object.

返回值

Returns 1 on success or FALSE on failure.

范例

Example #1 Setting the fetch mode

The following example demonstrates how PDOStatement::setFetchMode() changes the default fetch mode for a PDOStatement object.

<?php
$sql = 'SELECT name, colour, calories FROM fruit';
try {
  $stmt = $dbh->query($sql);
  $result = $stmt->setFetchMode(PDO::FETCH_NUM);
  while ($row = $stmt->fetch()) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
  }
}
catch (PDOException $e) {
  print $e->getMessage();
}
?>

上例将输出：

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90

PDOStatement->setAttribute
PDOException
PDOStatement


The PDOException class

简介

Represents an error raised by PDO. You should not throw a PDOException from your own code. See Exceptions for more information about Exceptions in PHP.

Class synopsis

PDOException
PDOException extends RuntimeException {
/* Properties */
public string $errorInfo ;
protected string $message ;
protected string $code ;
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

属性

errorInfo

Corresponds to PDO::errorInfo() or PDOStatement::errorInfo()

message

Textual error message. Exception::getMessage() to access it.

code

SQLSTATE error code. Use Exception::getCode() to access it.

PDOStatement->setFetchMode
PDO Drivers
PDO


PDO Drivers

Table of Contents

  • Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
  • Firebird/Interbase Functions (PDO_FIREBIRD)
  • IBM Functions (PDO_IBM)
  • Informix Functions (PDO_INFORMIX)
  • MySQL Functions (PDO_MYSQL)
  • Oracle Functions (PDO_OCI)
  • ODBC and DB2 Functions (PDO_ODBC)
  • PostgreSQL Functions (PDO_PGSQL)
  • SQLite Functions (PDO_SQLITE)

The following drivers currently implement the PDO interface:

Driver name | Supported databases
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird/Interbase 6
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 and SQLite 2

PDOException
MS SQL Server (PDO)
PDO


Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS libary.

On Windows, you should use the PDO_ODBC driver to connect to Microsoft SQL Server and Sybase databases, as the native Windows DB-LIB is ancient, thread un-safe and no longer supported by Microsoft.

Table of Contents

  • PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases
PDO Drivers
PDO_DBLIB DSN
PDO Drivers


Connecting to Microsoft SQL Server and Sybase databases

MS SQL Server (PDO)
Firebird/Interbase (PDO)
MS SQL Server (PDO)
PHP 手册

PDO_DBLIB DSN

(No version information available, might be only in CVS)

PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases

说明

The PDO_DBLIB Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sybase: if PDO_DBLIB was linked against the FreeTDS libraries, mssql: if PDO_DBLIB was linked against the Microsoft SQL Server libraries, or dblib: if linked against any other variety of DB-lib.

host

The hostname on which the database server resides.

dbname

The name of the database.

范例

Example #1 PDO_DBLIB DSN examples

The following examples show a PDO_DBLIB DSN for connecting to Microsoft SQL Server and Sybase databases:

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb

MS SQL Server (PDO)
Firebird/Interbase (PDO)
MS SQL Server (PDO)


Firebird/Interbase Functions (PDO_FIREBIRD)

简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

PDO_FIREBIRD is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird and Interbase databases.

预定义常量

以下常量由本驱动程序所定义，并且仅在该扩展库被编译入 PHP 或在运行时动态加载时可用。此外，这些驱动程序特定的常量应仅在使用此驱动程序时被使用。在 Postgres 驱动下使用 MySQL 特定的属性可能会导致不可预期的行为。在代码可以运行于多个驱动程序下时，可以用 PDO::getAttribute() 来取得 PDO_ATTR_DRIVER_NAME 属性以检查驱动程序。

PDO::FB_ATTR_DATE_FORMAT (integer)

Available since PHP 5.3.0.

PDO::FB_ATTR_TIME_FORMAT (integer)

Available since PHP 5.3.0.

PDO::FB_ATTR_TIMESTAMP_FORMAT (integer)

Available since PHP 5.3.0.

Table of Contents

  • PDO_FIREBIRD DSN — Connecting to Firebird and Interbase databases
PDO_DBLIB DSN
PDO_FIREBIRD DSN
PDO Drivers


Connecting to Firebird and Interbase databases

Firebird/Interbase (PDO)
IBM (PDO)
Firebird/Interbase (PDO)
PHP 手册

PDO_FIREBIRD DSN

(No version information available, might be only in CVS)

PDO_FIREBIRD DSN — Connecting to Firebird and Interbase databases

说明

The PDO_FIREBIRD Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is firebird: .

DataSource

The hostname on which the database server resides.

Port

The port number for the server on which the database is running.

Database

The name of the database.

User

The name of the user that will connect to the database.

Password

The password for the user.

范例

Example #1 PDO_FIREBIRD DSN examples

The following example shows a PDO_FIREBIRD DSN for connecting to Firebird and Interbase databases:

firebird:User=john;Password=mypass;Database=DATABASE.GDE;DataSource=localhost;Port=3050

Firebird/Interbase (PDO)
IBM (PDO)
Firebird/Interbase (PDO)


IBM Functions (PDO_IBM)

简介

PDO_IBM is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to IBM databases.

安装

To build the PDO_IBM extension, the DB2 Client v9.1 or later must be installed on the same system as PHP. The DB2 Client can be downloaded from the IBM » Application Development Site.

Note: Note
The DB2 Client v9.1 or later supports direct access to DB2 for Linux, UNIX, and Windows v8 and v9.1 servers.
The DB2 Client v9.1 also supports access to DB2 UDB for i5 and DB2 UDB for z/OS servers using the separately purchased » DB2 Connect product.

PDO_IBM is a » PECL extension, so follow the instructions in PECL 扩展库安装 to install the PDO_IBM extension. Issue the configure command to point to the location of your DB2 Client header files and libraries as follows:

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
The configure command defaults to the value of the DB2DIR environment variable.

Table of Contents

  • PDO_IBM DSN — Connecting to IBM databases
PDO_FIREBIRD DSN
PDO_IBM DSN
PDO Drivers


Connecting to IBM databases

IBM (PDO)
Informix (PDO)
IBM (PDO)
PHP 手册

PDO_IBM DSN

(No version information available, might be only in CVS)

PDO_IBM DSN — Connecting to IBM databases

说明

The PDO_IBM Data Source Name (DSN) is based on the IBM CLI DSN. The major components of the PDO_IBM DSN are:

DSN prefix

The DSN prefix is ibm: .

DSN

The DSN can be any of the following:

  • a) Data source setup using db2cli.ini or odbc.ini

  • b) Catalogued database name i.e. database alias in the DB2 client catalog

  • c) Complete connection string in the following format: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database ;HOSTNAME=hostname ;PORT=port ;PROTOCOL=TCPIP;UID=username ;PWD=password ; where the parameters represent the following values:

    database

    The name of the database.

    hostname

    The hostname or IP address of the database server.

    port

    The TCP/IP port on which the database is listening for requests.

    username

    The username with which you are connecting to the database.

    password

    The password with which you are connecting to the database.

范例

Example #1 PDO_IBM DSN example using db2cli.ini

The following example shows a PDO_IBM DSN for connecting to an DB2 database cataloged as DB2_9 in db2cli.ini:

$db = new PDO("ibm:DSN=DB2_9", "", "");

[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789

Example #2 PDO_IBM DSN example using a connection string

The following example shows a PDO_IBM DSN for connecting to an DB2 database named testdb using the DB2 CLI connection string syntax.

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");

IBM (PDO)
Informix (PDO)
IBM (PDO)


Informix Functions (PDO_INFORMIX)

简介

PDO_INFORMIX is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Informix databases.

安装

To build the PDO_INFORMIX extension, the Informix Client SDK 2.81 UC1 or higher must be installed on the same system as PHP. The Informix Client SDK is available from the » IBM Informix Support Site.

PDO_INFORMIX is a » PECL extension, so follow the instructions in PECL 扩展库安装 to install the PDO_INFORMIX extension. Issue the configure command to point to the location of your Informix Client SDK header files and libraries as follows:

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
The configure command defaults to the value of the INFORMIXDIR environment variable.

Scrollable cursors

PDO_INFORMIX supports scrollable cursors; however, they are not enabled by default. To enable scrollable cursor support, you must either set ENABLESCROLLABLECURSORS=1 in the corresponding ODBC connection settings in odbc.ini or pass the EnableScrollableCursors=1 clause in the DSN connection string.

Table of Contents

  • PDO_INFORMIX DSN — Connecting to Informix databases
PDO_IBM DSN
PDO_INFORMIX DSN
PDO Drivers


Connecting to Informix databases

Informix (PDO)
MySQL (PDO)
Informix (PDO)
PHP 手册

PDO_INFORMIX DSN

(No version information available, might be only in CVS)

PDO_INFORMIX DSN — Connecting to Informix databases

说明

The PDO_INFORMIX Data Source Name (DSN) is based on the Informix ODBC DSN string. Details on configuring an Informix ODBC DSN are available from the » Informix Dynamic Server Information Center. The major components of the PDO_INFORMIX DSN are:

DSN prefix

The DSN prefix is informix: .

DSN

The DSN can be either a data source setup using odbc.ini or a complete » connection string.

范例

Example #1 PDO_INFORMIX DSN example using odbc.ini

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database cataloged as Infdrv33 in odbc.ini:

$db = new PDO("informix:DSN=Infdrv33", "", "");

[ODBC Data Sources]
Infdrv33=INFORMIX 3.3 32-BIT

[Infdrv33]
Driver=/opt/informix/csdk_2.81.UC1G2/lib/cli/iclis09b.so
Description=INFORMIX 3.3 32-BIT
Database=common_db
LogonID=testuser
pwd=testpass
Servername=ids_server
DB_LOCALE=en_US.819
OPTIMIZEAUTOCOMMIT=1
ENABLESCROLLABLECURSORS=1

Example #2 PDO_INFORMIX DSN example using a connection string

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database named common_db using the Informix connection string syntax.

$db = new PDO("informix:host=host.domain.com; service=9800;
    database=common_db; server=ids_server; protocol=onsoctcp;
    EnableScrollableCursors=1", "testuser", "tespass");

Informix (PDO)
MySQL (PDO)
Informix (PDO)


MySQL Functions (PDO_MYSQL)

简介

PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL 3.x, 4.x and 5.x databases.

PDO_MYSQL will take advantage of native prepared statement support present in MySQL 4.1 and higher. If you're using an older version of the mysql client libraries, PDO will emulate them for you.

Warning

Beware: Some MySQL table types (storage engines) do not support transactions. When writing transactional database code using a table type that does not support transactions, MySQL will pretend that a transaction was initiated successfully. In addition, any DDL queries issued will implicitly commit any pending transactions.

预定义常量

以下常量由本驱动程序所定义，并且仅在该扩展库被编译入 PHP 或在运行时动态加载时可用。此外，这些驱动程序特定的常量应仅在使用此驱动程序时被使用。在 Postgres 驱动下使用 MySQL 特定的属性可能会导致不可预期的行为。在代码可以运行于多个驱动程序下时，可以用 PDO::getAttribute() 来取得 PDO_ATTR_DRIVER_NAME 属性以检查驱动程序。

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (integer)
If this attribute is set to TRUE on a PDOStatement, the MySQL driver will use the buffered versions of the MySQL API. If you're writing portable code, you should use PDOStatement::fetchAll() instead.

Example #1 Forcing queries to be buffered in mysql

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    $stmt = $db->prepare('select * from foo',
        array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die("my application only works with mysql; I should use \$stmt->fetchAll() instead");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (integer)

Enable LOAD LOCAL INFILE.

PDO::MYSQL_ATTR_INIT_COMMAND (integer)

Command to execute when connecting to the MySQL server. Will automatically be re-executed when reconnecting.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (integer)

Read options from the named option file instead of from my.cnf.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (integer)

Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (integer)

Maximum buffer size. Defaults to 1 MiB.

PDO::MYSQL_ATTR_DIRECT_QUERY (integer)

Perform direct queries, don't use prepared statements.

Table of Contents

  • PDO_MYSQL DSN — Connecting to MySQL databases
PDO_INFORMIX DSN
PDO_MYSQL DSN
PDO Drivers


Connecting to MySQL databases

MySQL (PDO)
Oracle (PDO)
MySQL (PDO)
PHP 手册

PDO_MYSQL DSN

(No version information available, might be only in CVS)

PDO_MYSQL DSN — Connecting to MySQL databases

说明

The PDO_MYSQL Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is mysql: .

host

The hostname on which the database server resides.

port

The port number where the database server is listening.

dbname

The name of the database.

unix_socket

The MySQL Unix socket (shouldn't be used with host or port).

范例

Example #1 PDO_MYSQL DSN examples

The following example shows a PDO_MYSQL DSN for connecting to MySQL databases:

mysql:host=localhost;dbname=testdb

More complete examples:

mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

MySQL (PDO)
Oracle (PDO)
MySQL (PDO)


Oracle Functions (PDO_OCI)

简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

PDO_OCI is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Oracle databases through the OCI library.

Table of Contents

  • PDO_OCI DSN — Connecting to Oracle databases
PDO_MYSQL DSN
PDO_OCI DSN
PDO Drivers


Connecting to Oracle databases

Oracle (PDO)
ODBC and DB2 (PDO)
Oracle (PDO)
PHP 手册

PDO_OCI DSN

(No version information available, might be only in CVS)

PDO_OCI DSN — Connecting to Oracle databases

说明

The PDO_OCI Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is oci: .

dbname (Oracle Instant Client)

The URI for the Oracle Instant Client connection takes the form of dbname=//hostname:port-number/database. If you are connecting to a database defined in tnsnames.ora, use only the name of the database: dbname=database.

charset

The client-side character set for the current environment handle.

范例

Example #1 PDO_OCI DSN examples

The following examples show a PDO_OCI DSN for connecting to Oracle databases:

// Connect to a database defined in tnsnames.ora
oci:dbname=mydb

// Connect using the Oracle Instant Client
oci:dbname=//localhost:1521/mydb

Oracle (PDO)
ODBC and DB2 (PDO)
Oracle (PDO)


ODBC and DB2 Functions (PDO_ODBC)

简介

PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to databases through ODBC drivers or through the IBM DB2 Call Level Interface (DB2 CLI) library. PDO_ODBC currently supports three different "flavours" of database drivers:

ibm-db2

Supports access to IBM DB2 Universal Database, Cloudscape, and Apache Derby servers through the free DB2 client.

unixODBC

Supports access to database servers through the unixODBC driver manager and the database's own ODBC drivers.

generic

Offers a compile option for ODBC driver managers that are not explicitly supported by PDO_ODBC.

On Windows, PDO_ODBC is built into the PHP core by default. It is linked against the Windows ODBC Driver Manager so that PHP can connect to any database cataloged as a System DSN, and is the recommended driver for connecting to Microsoft SQL Server databases.

安装

PDO_ODBC on UNIX systems

  1. As of PHP 5.1, PDO_ODBC is included in the PHP source. You can compile the PDO_ODBC extension as either a static or shared module using the following configure commands.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    To build PDO_ODBC with the ibm-db2 flavour, you have to have previously installed the DB2 application development headers on the same machine on which you are compiling PDO_ODBC. The DB2 application development headers are an installable option in the DB2 servers, and are also available as part of the DB2 Application Development Client freely available for download from the IBM DB2 Universal Database » support site.

    If you do not supply a location for the DB2 libraries and headers to the configure command, PDO_ODBC defaults to /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    If you do not supply a location for the unixODBC libraries and headers to the configure command, PDO_ODBC defaults to /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

运行时配置

这些函数的行为受 php.ini 的影响。

PDO_ODBC Configuration Options
Name | Default | Changeable | Changelog
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Available since PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Available since PHP 5.1.1. Removed in PHP 6.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

pdo_odbc.connection_pooling string

Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" (equals to ""). The parameter describes how strict the connection manager should be when matching connection parameters to existing pooled connections. strict is the recommend default, and will result in the use of cached connections only when all the connection parameters match exactly. relaxed will result in the use of cached connections when similar connection parameters are used. This can result in increased use of the cache, at the risk of bleeding connection information between (for example) virtual hosts.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

Warning

relaxed matching should not be used on a shared server, for security reasons.

Tip

Leave this setting at the default strict setting unless you have good reason to change it.

pdo_odbc.db2_instance_name string

If you compile PDO_ODBC using the db2 flavour, this setting sets the value of the DB2INSTANCE environment variable on Linux and UNIX operating systems to the specified name of the DB2 instance. This enables PDO_ODBC to resolve the location of the DB2 libraries and make cataloged connections to DB2 databases.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

This setting has no effect on Windows.

Table of Contents

  • PDO_ODBC DSN — Connecting to ODBC or DB2 databases
PDO_OCI DSN
PDO_ODBC DSN
PDO Drivers


Connecting to ODBC or DB2 databases

ODBC and DB2 (PDO)
PostgreSQL (PDO)
ODBC and DB2 (PDO)
PHP 手册

PDO_ODBC DSN

(No version information available, might be only in CVS)

PDO_ODBC DSN — Connecting to ODBC or DB2 databases

说明

The PDO_ODBC Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is odbc: . If you are connecting to a database cataloged in the ODBC driver manager or the DB2 catalog, you can append the cataloged name of the database to the DSN.

DSN

The name of the database as cataloged in the ODBC driver manager or the DB2 catalog. Alternately, you can provide a complete ODBC connection string to connect to a database as described at » http://www.connectionstrings.com/.

UID

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

PWD

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

范例

Example #1 PDO_ODBC DSN example (ODBC driver manager)

The following example shows a PDO_ODBC DSN for connecting to an ODBC database cataloged as testdb in the ODBC driver manager:

odbc:testdb

Example #2 PDO_ODBC DSN example (IBM DB2 uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to an IBM DB2 database named SAMPLE using the full ODBC DSN syntax:

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Example #3 PDO_ODBC DSN example (Microsoft Access uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to a Microsoft Access database stored at C:\db.mdb using the full ODBC DSN syntax:

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin

ODBC and DB2 (PDO)
PostgreSQL (PDO)
ODBC and DB2 (PDO)


PostgreSQL Functions (PDO_PGSQL)

简介

PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases.

资源类型

This extension defines a stream resource returned by PDO::pgsqlLOBOpen().

Table of Contents

  • PDO_PGSQL DSN — Connecting to PostgreSQL databases
  • PDO::pgsqlLOBCreate — Creates a new large object
  • PDO::pgsqlLOBOpen — Opens an existing large object stream
  • PDO::pgsqlLOBUnlink — Deletes the large object
PDO_ODBC DSN
PDO_PGSQL DSN
PDO Drivers


Connecting to PostgreSQL databases

PostgreSQL (PDO)
PDO::pgsqlLOBCreate
PostgreSQL (PDO)
PHP 手册

PDO_PGSQL DSN

(No version information available, might be only in CVS)

PDO_PGSQL DSN — Connecting to PostgreSQL databases

说明

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces:

DSN prefix

The DSN prefix is pgsql: .

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

user

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

password

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Note: The bytea fields are returned as streams.

范例

Example #1 PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:

pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass

PostgreSQL (PDO)
PDO::pgsqlLOBCreate
PostgreSQL (PDO)


Creates a new large object

PDO_PGSQL DSN
PDO::pgsqlLOBOpen
PostgreSQL (PDO)
PHP 手册

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Creates a new large object

说明

string PDO::pgsqlLOBCreate ( void )

PDO::pgsqlLOBCreate() creates a large object and returns the OID of that object. You may then open a stream on the object using PDO::pgsqlLOBOpen() to read or write data to it. The OID can be stored in columns of type OID and be used to reference the large object, without causing the row to grow arbitrarily large. The large object will continue to live in the database until it is removed by calling PDO::pgsqlLOBUnlink().

Large objects can be up to 2GB in size, but are cumbersome to use; you need to ensure that PDO::pgsqlLOBUnlink() is called prior to deleting the last row that references its OID from your database. In addition, large objects have no access controls. As an alternative, try the bytea column type; recent versions of PostgreSQL allow bytea columns of up to 1GB in size and transparently manage the storage for optimal row size.

Note: This function must be called within a transaction.

参数

PDO::pgsqlLOBCreate() takes no parameters.

返回值

Returns the OID of the newly created large object on success, or FALSE on failure.

范例

Example #1 A PDO::pgsqlLOBCreate() example

This example creates a new large object and copies the contents of a file into it. The OID is then stored into a table.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>

参见

  • PDO::pgsqlLOBOpen() - Opens an existing large object stream
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_create() - 新建一个大型对象

PDO_PGSQL DSN
PDO::pgsqlLOBOpen
PostgreSQL (PDO)


Opens an existing large object stream

PDO::pgsqlLOBCreate
PDO::pgsqlLOBUnlink
PostgreSQL (PDO)
PHP 手册

PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Opens an existing large object stream

说明

resource PDO::pgsqlLOBOpen ( string $oid [, string $mode="rb" ] )

PDO::pgsqlLOBOpen() opens a stream to access the data referenced by oid . If mode is r, the stream is opened for reading, if mode is w, then the stream will be opened for writing. You can use all the usual filesystem functions, such as fread(), fwrite() and fgets() to manipulate the contents of the stream.

Note: This function, and all manipulations of the large object, must be called and carried out within a transaction.

参数

oid

A large object identifier.

mode

If mode is r, open the stream for reading. If mode is w, open the stream for writing.

返回值

Returns a stream resource on success, or FALSE on failure.

范例

Example #1 A PDO::pgsqlLOBOpen() example

Following on from the PDO::pgsqlLOBCreate() example, this code snippet retrieves the large object from the database and outputs it to the browser.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
fpassthru($lob);
?>

参见

  • PDO::pgsqlLOBCreate() - Creates a new large object
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_open() - 打开一个大型对象

PDO::pgsqlLOBCreate
PDO::pgsqlLOBUnlink
PostgreSQL (PDO)


Deletes the large object

PDO::pgsqlLOBOpen
SQLite (PDO)
PostgreSQL (PDO)
PHP 手册

PDO::pgsqlLOBUnlink

(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Deletes the large object

说明

bool PDO::pgsqlLOBUnlink ( string $oid )

Deletes a large object from the database identified by OID.

Note: This function must be called within a transaction.

参数

oid

A large object identifier

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A PDO::pgsqlLOBUnlink() example

This example unlinks a large object from the database prior to deleting the row that references it from the blobs table we've been using in our PDO::pgsqlLOBCreate() and PDO::pgsqlLOBOpen() examples.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$db->pgsqlLOBUnlink($oid);
$stmt = $db->prepare("DELETE FROM BLOBS where ident = ?");
$stmt->execute(array($some_id));
$db->commit();
?>

参见

  • PDO::pgsqlLOBOpen() - Opens an existing large object stream
  • PDO::pgsqlLOBCreate() - Creates a new large object

PDO::pgsqlLOBOpen
SQLite (PDO)
PostgreSQL (PDO)


SQLite Functions (PDO_SQLITE)

简介

PDO_SQLITE is a driver that implements the PHP Data Objects (PDO) interface to enable access to SQLite 3 databases.

In PHP 5.1, the SQLite extension also provides a driver for SQLite 2 databases; while it is not technically a part of the PDO_SQLITE driver, it behaves similarly, so it is documented alongside it. The SQLite 2 driver for PDO is provided primarily to make it easier to import legacy SQLite 2 database files into an application that uses the faster, more efficient SQLite 3 driver. As a result, the SQLite 2 driver is not as feature-rich as the SQLite 3 driver.

Note: PDO_SQLITE allows using strings apart from streams together with PDO::PARAM_LOB.

Table of Contents

  • PDO_SQLITE DSN — Connecting to SQLite databases
  • PDO::sqliteCreateAggregate — Registers an aggregating User Defined Function for use in SQL statements
  • PDO::sqliteCreateFunction — Registers a User Defined Function for use in SQL statements
PDO::pgsqlLOBUnlink
PDO_SQLITE DSN
PDO Drivers


Connecting to SQLite databases

SQLite (PDO)
PDO::sqliteCreateAggregate
SQLite (PDO)
PHP 手册

PDO_SQLITE DSN

(No version information available, might be only in CVS)

PDO_SQLITE DSN — Connecting to SQLite databases

说明

The PDO_SQLITE Data Source Name (DSN) is composed of the following elements:

DSN prefix (SQLite 3)

The DSN prefix is sqlite: .

  • To access a database on disk, append the absolute path to the DSN prefix.

  • To create a database in memory, append :memory: to the DSN prefix.

DSN prefix (SQLite 2)

The SQLite extension in PHP 5.1 provides a PDO driver that supports accessing and creating SQLite 2 databases. This enables you to access databases you may have created with the SQLite extension in previous versions of PHP.

Note: The sqlite2 driver is only available in PHP 5.1.x if you have enabled both PDO and ext/sqlite. It is not currently available via PECL.

The DSN prefix for connecting to SQLite 2 databases is sqlite2: .

  • To access a database on disk, append the absolute path to the DSN prefix.

  • To create a database in memory, append :memory: to the DSN prefix.

范例

Example #1 PDO_SQLITE DSN examples

The following examples show PDO_SQLITE DSN for connecting to SQLite databases:

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:

SQLite (PDO)
PDO::sqliteCreateAggregate
SQLite (PDO)


Registers an aggregating User Defined Function for use in SQL statements

PDO_SQLITE DSN
PDO::sqliteCreateFunction
SQLite (PDO)
PHP 手册

PDO::sqliteCreateAggregate

(No version information available, might be only in CVS)

PDO::sqliteCreateAggregate — Registers an aggregating User Defined Function for use in SQL statements

说明

PDO
bool sqliteCreateAggregate ( string $function_name , callback $step_func , callback $finalize_func [, int $num_args ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

This method is similar to PDO::sqliteCreateFunction except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this method and PDO::sqliteCreateFunction is that two functions are required to manage the aggregate.

参数

function_name

The name of the function used in SQL statements.

step_func

Callback function called for each row of the result set. Your PHP function should accumulate the result and store it in the aggregation context.

This function need to be defined as:

step ( mixed $context , int $rownumber , mixed $value1 [, mixed $value2 [, mixed $.. ]] )

context will be NULL for the first row; on subsequent rows it will have the value that was previously returned from the step function; you should use this to maintain the aggregate state.

rownumber will hold the current row number.

finalize_func

Callback function to aggregate the "stepped" data from each row. Once all the rows have been processed, this function will be called and it should then take the data from the aggregation context and return the result. Callback functions should return a type understood by SQLite (i.e. scalar type).

This function need to be defined as:

fini ( mixed $context , int $rownumber )

context will hold the return value from the very last call to the step function.

rownumber will hold the number of rows over which the aggregate was performed.

The return value of this function will be used as the return value for the aggregate.

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->execute(array($str));
}
$insert = null;

function max_len_step(&$context, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize(&$context, $rownumber)
{
    return $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context . In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Tip

It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Tip

You can use PDO::sqliteCreateFunction and PDO::sqliteCreateAggregate to override SQLite native SQL functions.

Note: This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

参见

  • PDO::sqliteCreateFunction
  • sqlite_create_function() - Registers a "regular" User Defined Function for use in SQL statements
  • sqlite_create_aggregate() - Register an aggregating UDF for use in SQL statements

PDO_SQLITE DSN
PDO::sqliteCreateFunction
SQLite (PDO)


Registers a User Defined Function for use in SQL statements

PDO::sqliteCreateAggregate
与具体数据库系统相关的扩展
SQLite (PDO)
PHP 手册

PDO::sqliteCreateFunction

(No version information available, might be only in CVS)

PDO::sqliteCreateFunction — Registers a User Defined Function for use in SQL statements

说明

PDO
bool sqliteCreateFunction ( string $function_name , callback $callback [, int $num_args ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

This method allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements.

The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers.

参数

function_name

The name of the function used in SQL statements.

callback

Callback function to handle the defined SQL function.

Note: Callback functions should return a type understood by SQLite (i.e. scalar type).

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 PDO::sqliteCreateFunction() example

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>

In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result.

The beauty of this technique is that you do not need to process the result using a foreach() loop after you have queried for the data.

Tip

You can use PDO::sqliteCreateFunction and PDO::sqliteCreateAggregate to override SQLite native SQL functions.

Note: This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

参见

  • PDO::sqliteCreateAggregate
  • sqlite_create_function() - Registers a "regular" User Defined Function for use in SQL statements
  • sqlite_create_aggregate() - Register an aggregating UDF for use in SQL statements

PDO::sqliteCreateAggregate
与具体数据库系统相关的扩展
SQLite (PDO)


与具体数据库系统相关的扩展

  • dBase
    • 简介
    • 安装/配置
    • 预定义常量
    • dBase 函数
  • DB++
    • 简介
    • 安装/配置
    • 预定义常量
    • DB++ 函数
  • FrontBase
    • 简介
    • 安装/配置
    • 预定义常量
    • FrontBase 函数
  • filePro
    • 简介
    • 安装/配置
    • 预定义常量
    • filePro 函数
  • Firebird/InterBase
    • 简介
    • 安装/配置
    • 预定义常量
    • Firebird/InterBase 函数
  • Informix
    • 简介
    • 安装/配置
    • 预定义常量
    • Informix 函数
  • IBM DB2 — IBM DB2, Cloudscape and Apache Derby
    • 简介
    • 安装/配置
    • 预定义常量
    • IBM DB2 函数
  • Ingres
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Ingres 函数
  • MaxDB
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • MaxDB 函数
  • mSQL
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • mSQL 函数
  • Mssql — Microsoft SQL Server
    • 简介
    • 安装/配置
    • 预定义常量
    • Mssql 函数
  • MySQL
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • MySQL 函数
  • Mysqli — MySQL Improved Extension
    • 简介
    • Overview
    • The MySQL Native Driver
    • 安装/配置
    • 预定义常量
    • The MySQLi Extension Function Summary
    • MySQLi — The MySQLi class
    • MySQLi_STMT — The MySQLi_STMT class
    • MySQLi_Result — The MySQLi_Result class
    • MySQLi_Driver — The MySQLi_Driver class
    • Aliases and deprecated Mysqli 函数
  • OCI8 — Oracle OCI8
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Connecting Handling
    • Supported Datatypes
    • OCI8 函数
  • Ovrimos SQL
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Ovrimos SQL 函数
  • Paradox — Paradox File Access
    • 简介
    • 安装/配置
    • 预定义常量
    • Paradox 函数
  • PostgreSQL
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • PostgreSQL 函数
  • SQLite
    • 简介
    • 安装/配置
    • 预定义常量
    • SQLite 函数
  • SQLite3
    • 简介
    • 安装/配置
    • 预定义常量
    • SQLite3 — The SQLite3 class
    • SQLite3Stmt — The SQLite3Stmt class
    • SQLite3Result — The SQLite3Result class
  • Sybase
    • 简介
    • 安装/配置
    • 预定义常量
    • Sybase 函数
PDO::sqliteCreateFunction
dBase
数据库扩展


dBase

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • dBase 函数
    • dbase_add_record — Adds a record to a database
    • dbase_close — Closes a database
    • dbase_create — Creates a database
    • dbase_delete_record — Deletes a record from a database
    • dbase_get_header_info — Gets the header info of a database
    • dbase_get_record_with_names — Gets a record from a database as an associative array
    • dbase_get_record — Gets a record from a database as an indexed array
    • dbase_numfields — Gets the number of fields of a database
    • dbase_numrecords — Gets the number of records in a database
    • dbase_open — Opens a database
    • dbase_pack — Packs a database
    • dbase_replace_record — Replaces a record in a database
与具体数据库系统相关的扩展
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access records stored in dBase-format (dbf) databases.

dBase files are simple sequential files of fixed length records. Records are appended to the end of the file and delete records are kept until you call dbase_pack().

The types of dBase fields available are:

Available types of fields
Field | dBase Type | Format | Additional information
M | Memo | n/a | This type is not supported by PHP, such field will be ignored
D | Date | YYYYMMDD | The field length is limited to 8
N | Number | A number | You must declare a length and a precision (the number of digits after the decimal point)
C | String | A string | You must declare a length. When retrieving data, the string will be right-padded with spaces to fit the declared length.
L | Boolean | T or Y for TRUE, F or N for FALSE | Stored and returned as an integer (1 or 0)
F | Float | A float number | Support for this type of field was added in PHP 5.2.0

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.3.0.

Warning

There is no support for indexes or memo fields. There is no support for locking, too. Two concurrent web server processes modifying the same dBase file will very likely ruin your database.

We recommend that you do not use dBase files as your production database. Choose any real SQL server instead; » MySQL or » Postgres are common choices with PHP. dBase support is here to allow you to import and export data to and from your web database, because the file format is commonly understood by Windows spreadsheets and organizers.

dBase
安装/配置
dBase


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
dBase


安装

In order to enable the bundled dbase library and to use these functions, you must compile PHP with the --enable-dbase option.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
dBase 函数
dBase


dBase 函数

范例

Many examples in this reference require a dBase database. We will use /tmp/test.dbf that will be created in the example of dbase_create().

Table of Contents

  • dbase_add_record — Adds a record to a database
  • dbase_close — Closes a database
  • dbase_create — Creates a database
  • dbase_delete_record — Deletes a record from a database
  • dbase_get_header_info — Gets the header info of a database
  • dbase_get_record_with_names — Gets a record from a database as an associative array
  • dbase_get_record — Gets a record from a database as an indexed array
  • dbase_numfields — Gets the number of fields of a database
  • dbase_numrecords — Gets the number of records in a database
  • dbase_open — Opens a database
  • dbase_pack — Packs a database
  • dbase_replace_record — Replaces a record in a database
预定义常量
dbase_add_record
dBase


Adds a record to a database

dBase 函数
dbase_close
dBase 函数
PHP 手册

dbase_add_record

(PHP 4, PHP 5)

dbase_add_record — Adds a record to a database

说明

bool dbase_add_record ( int $dbase_identifier , array $record )

Adds the given data to the database.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record

An indexed array of data. The number of items must be equal to the number of fields in the database, otherwise dbase_add_record() will fail.

Note: If you're using dbase_get_record() return value for this parameter, remember to reset the key named deleted.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Inserting a record in a dBase database

<?php

// open in read-write mode
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  dbase_add_record($db, array(
      date('Ymd'),
      'Maxim Topolov',
      '23',
      'max@example.com',
      'T'));
  dbase_close($db);
}

?>

参见

  • dbase_delete_record() - Deletes a record from a database
  • dbase_replace_record() - Replaces a record in a database

dBase 函数
dbase_close
dBase 函数


Closes a database

dbase_add_record
dbase_create
dBase 函数
PHP 手册

dbase_close

(PHP 4, PHP 5)

dbase_close — Closes a database

说明

bool dbase_close ( int $dbase_identifier )

Closes the given database link identifier.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Closing a dBase database file

<?php

// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // read some data ..

  dbase_close($db);
}

?>

参见

  • dbase_open() - Opens a database
  • dbase_create() - Creates a database

dbase_add_record
dbase_create
dBase 函数


Creates a database

dbase_close
dbase_delete_record
dBase 函数
PHP 手册

dbase_create

(PHP 4, PHP 5)

dbase_create — Creates a database

说明

int dbase_create ( string $filename , array $fields )

dbase_create() creates a dBase database with the given definition.

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

Note: 本函数受 open_basedir 的影响。

参数

filename

The name of the database. It can be a relative or absolute path to the file where dBase will store your data.

fields

An array of arrays, each array describing the format of one field of the database. Each field consists of a name, a character indicating the field type, and optionally, a length, and a precision.

Note: The fieldnames are limited in length and must not exceed 10 chars.

返回值

Returns a database link identifier if the database is successfully created, or FALSE if an error occurred.

范例

Example #1 Creating a dBase database file

<?php

// database "definition"
$def = array(
  array("date",     "D"),
  array("name",     "C",  50),
  array("age",      "N",   3, 0),
  array("email",    "C", 128),
  array("ismember", "L")
);

// creation
if (!dbase_create('/tmp/test.dbf', $def)) {
  echo "Error, can't create the database\n";
}

?>

参见

  • dbase_open() - Opens a database
  • dbase_close() - Closes a database

dbase_close
dbase_delete_record
dBase 函数


Deletes a record from a database

dbase_create
dbase_get_header_info
dBase 函数
PHP 手册

dbase_delete_record

(PHP 4, PHP 5)

dbase_delete_record — Deletes a record from a database

说明

bool dbase_delete_record ( int $dbase_identifier , int $record_number )

Marks the given record to be deleted from the database.

Note: To actually remove the record from the database, you must also call dbase_pack().

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record_number

An integer which spans from 1 to the number of records in the database (as returned by dbase_numrecords()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • dbase_add_record() - Adds a record to a database
  • dbase_replace_record() - Replaces a record in a database

dbase_create
dbase_get_header_info
dBase 函数


Gets the header info of a database

dbase_delete_record
dbase_get_record_with_names
dBase 函数
PHP 手册

dbase_get_header_info

(PHP 5)

dbase_get_header_info — Gets the header info of a database

说明

array dbase_get_header_info ( int $dbase_identifier )

Returns information on the column structure of the given database link identifier.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

返回值

An indexed array with an entry for each column in the database. The array index starts at 0.

Each array element contains an associative array of column information, as described here:

name
The name of the column
type
The human-readable name for the dbase type of the column (i.e. date, boolean, etc.)
length
The number of bytes this column can hold
precision
The number of digits of decimal precision for the column
format
A suggested printf() format specifier for the column
offset
The byte offset of the column from the start of the row

If the database header information cannot be read, FALSE is returned.

范例

Example #1 Showing header information for a dBase database file

<?php
// Path to dbase file
$db_path = "/tmp/test.dbf";

// Open dbase file
$dbh = dbase_open($db_path, 0)
  or die("Error! Could not open dbase database file '$db_path'.");

// Get column information
$column_info = dbase_get_header_info($dbh);

// Display information
print_r($column_info);
?>

dbase_delete_record
dbase_get_record_with_names
dBase 函数


Gets a record from a database as an associative array

dbase_get_header_info
dbase_get_record
dBase 函数
PHP 手册

dbase_get_record_with_names

(PHP 4, PHP 5)

dbase_get_record_with_names — Gets a record from a database as an associative array

说明

array dbase_get_record_with_names ( int $dbase_identifier , int $record_number )

Gets a record from a dBase database as an associative array.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record_number

The index of the record.

返回值

An associative array with the record. This will also include a key named deleted which is set to 1 if the record has been marked for deletion (see dbase_delete_record()).

Each field is converted to the appropriate PHP type, except:

  • Dates are left as strings.
  • Integers that would have caused an overflow (> 32 bits) are returned as strings.

On error, dbase_get_record_with_names() will return FALSE.

范例

Example #1 Listing all the registered members in the database

<?php
// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      $row = dbase_get_record_with_names($db, $i);
      if ($row['ismember'] == 1) {
          echo "Member #$i: " . trim($row['name']) . "\n";
      }
  }
}
?>

参见

  • dbase_get_record() - Gets a record from a database as an indexed array

dbase_get_header_info
dbase_get_record
dBase 函数


Gets a record from a database as an indexed array

dbase_get_record_with_names
dbase_numfields
dBase 函数
PHP 手册

dbase_get_record

(PHP 4, PHP 5)

dbase_get_record — Gets a record from a database as an indexed array

说明

array dbase_get_record ( int $dbase_identifier , int $record_number )

Gets a record from a database as an indexed array.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record_number

The index of the record.

返回值

An indexed array with the record. This array will also include an associative key named deleted which is set to 1 if the record has been marked for deletion (see dbase_delete_record()).

Each field is converted to the appropriate PHP type, except:

  • Dates are left as strings.
  • Integers that would have caused an overflow (> 32 bits) are returned as strings.

On error, dbase_get_record() will return FALSE.

参见

  • dbase_get_record_with_names() - Gets a record from a database as an associative array

dbase_get_record_with_names
dbase_numfields
dBase 函数


Gets the number of fields of a database

dbase_get_record
dbase_numrecords
dBase 函数
PHP 手册

dbase_numfields

(PHP 4, PHP 5)

dbase_numfields — Gets the number of fields of a database

说明

int dbase_numfields ( int $dbase_identifier )

Gets the number of fields (columns) in the specified database.

Note: Field numbers are between 0 and dbase_numfields($db)-1, while record numbers are between 1 and dbase_numrecords($db).

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

返回值

The number of fields in the database, or FALSE if an error occurs.

范例

Example #1 dbase_numfields() Example

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i = 0; $i < $nf; $i++) {
  echo $rec[$i], "\n";
}

?>

参见

  • dbase_numrecords() - Gets the number of records in a database

dbase_get_record
dbase_numrecords
dBase 函数


Gets the number of records in a database

dbase_numfields
dbase_open
dBase 函数
PHP 手册

dbase_numrecords

(PHP 4, PHP 5)

dbase_numrecords — Gets the number of records in a database

说明

int dbase_numrecords ( int $dbase_identifier )

Gets the number of records (rows) in the specified database.

Note: Record numbers are between 1 and dbase_numrecords($db), while field numbers are between 0 and dbase_numfields($db)-1.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

返回值

The number of records in the database, or FALSE if an error occurs.

范例

Example #1 Looping over all the records of the database

<?php

// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      // do something here, for each record
  }
}

?>

参见

  • dbase_numfields() - Gets the number of fields of a database

dbase_numfields
dbase_open
dBase 函数


Opens a database

dbase_numrecords
dbase_pack
dBase 函数
PHP 手册

dbase_open

(PHP 4, PHP 5)

dbase_open — Opens a database

说明

int dbase_open ( string $filename , int $mode )

dbase_open() opens a dBase database with the given access mode.

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

Note: 本函数受 open_basedir 的影响。

参数

filename

The name of the database. It can be a relative or absolute path to the file where dBase will store your data.

mode

An integer which correspond to those for the open() system call (Typically 0 means read-only, 1 means write-only, and 2 means read and write).

Note: You can't open a dBase file in write-only mode as the function will fail to read the headers information and thus you can't use 1 as mode .

范例

Example #1 Opening a dBase database file

<?php

// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // read some data ..

  dbase_close($db);
}

?>

返回值

Returns a database link identifier if the database is successfully opened, or FALSE if an error occurred.

参见

  • dbase_create() - Creates a database
  • dbase_close() - Closes a database

dbase_numrecords
dbase_pack
dBase 函数


Packs a database

dbase_open
dbase_replace_record
dBase 函数
PHP 手册

dbase_pack

(PHP 4, PHP 5)

dbase_pack — Packs a database

说明

bool dbase_pack ( int $dbase_identifier )

Packs the specified database by permanently deleting all records marked for deletion using dbase_delete_record().

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Emptying a dBase database

<?php

// open in read-write mode
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      dbase_delete_record($db, $i);
  }
  // expunge the database
  dbase_pack($db);
}

?>

参见

  • dbase_delete_record() - Deletes a record from a database

dbase_open
dbase_replace_record
dBase 函数


Replaces a record in a database

dbase_pack
DB++
dBase 函数
PHP 手册

dbase_replace_record

(PHP 4, PHP 5)

dbase_replace_record — Replaces a record in a database

说明

bool dbase_replace_record ( int $dbase_identifier , array $record , int $record_number )

Replaces the given record in the database with the given data.

参数

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record

An indexed array of data. The number of items must be equal to the number of fields in the database, otherwise dbase_replace_record() will fail.

Note: If you're using dbase_get_record() return value for this parameter, remember to reset the key named deleted.

record_number

An integer which spans from 1 to the number of records in the database (as returned by dbase_numrecords()).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Updating a record in the database

<?php

// open in read-write mode
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // gets the old row
  $row = dbase_get_record_with_names($db, 1);

  // remove the 'deleted' entry
  unset($row['deleted']);

  // Update the date field with the current timestamp
  $row['date'] = date('Ymd');

  // Replace the record
  dbase_replace_record($db, $row, 1);
  dbase_close($db);
}

?>

参见

  • dbase_add_record() - Adds a record to a database
  • dbase_delete_record() - Deletes a record from a database

dbase_pack
DB++
dBase 函数


DB++

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
    • db++ error codes
  • DB++ 函数
    • dbplus_add — Add a tuple to a relation
    • dbplus_aql — Perform AQL query
    • dbplus_chdir — Get/Set database virtual current directory
    • dbplus_close — Close a relation
    • dbplus_curr — Get current tuple from relation
    • dbplus_errcode — Get error string for given errorcode or last error
    • dbplus_errno — Get error code for last operation
    • dbplus_find — Set a constraint on a relation
    • dbplus_first — Get first tuple from relation
    • dbplus_flush — Flush all changes made on a relation
    • dbplus_freealllocks — Free all locks held by this client
    • dbplus_freelock — Release write lock on tuple
    • dbplus_freerlocks — Free all tuple locks on given relation
    • dbplus_getlock — Get a write lock on a tuple
    • dbplus_getunique — Get an id number unique to a relation
    • dbplus_info — Get information about a relation
    • dbplus_last — Get last tuple from relation
    • dbplus_lockrel — Request write lock on relation
    • dbplus_next — Get next tuple from relation
    • dbplus_open — Open relation file
    • dbplus_prev — Get previous tuple from relation
    • dbplus_rchperm — Change relation permissions
    • dbplus_rcreate — Creates a new DB++ relation
    • dbplus_rcrtexact — Creates an exact but empty copy of a relation including indices
    • dbplus_rcrtlike — Creates an empty copy of a relation with default indices
    • dbplus_resolve — Resolve host information for relation
    • dbplus_restorepos — Restore position
    • dbplus_rkeys — Specify new primary key for a relation
    • dbplus_ropen — Open relation file local
    • dbplus_rquery — Perform local (raw) AQL query
    • dbplus_rrename — Rename a relation
    • dbplus_rsecindex — Create a new secondary index for a relation
    • dbplus_runlink — Remove relation from filesystem
    • dbplus_rzap — Remove all tuples from relation
    • dbplus_savepos — Save position
    • dbplus_setindex — Set index
    • dbplus_setindexbynumber — Set index by number
    • dbplus_sql — Perform SQL query
    • dbplus_tcl — Execute TCL code on server side
    • dbplus_tremove — Remove tuple and return new current tuple
    • dbplus_undo — Undo
    • dbplus_undoprepare — Prepare undo
    • dbplus_unlockrel — Give up write lock on relation
    • dbplus_unselect — Remove a constraint from relation
    • dbplus_update — Update specified tuple in relation
    • dbplus_xlockrel — Request exclusive lock on relation
    • dbplus_xunlockrel — Free exclusive lock on relation
dbase_replace_record
简介
与具体数据库系统相关的扩展


简介

db++, made by the German company » Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra than SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

DB++
安装/配置
DB++


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
DB++


需求

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

» Concept asa provides » db++ Demo versions and » documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).

安装/配置
安装
安装/配置


安装

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

需求
运行时配置
安装/配置


资源类型

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.

运行时配置
预定义常量
安装/配置


预定义常量

Table of Contents

  • db++ error codes

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

资源类型
db++ error codes
DB++


db++ error codes

DB++ Error Codes
PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (integer) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |

预定义常量
DB++ 函数
预定义常量


DB++ 函数

Table of Contents

  • dbplus_add — Add a tuple to a relation
  • dbplus_aql — Perform AQL query
  • dbplus_chdir — Get/Set database virtual current directory
  • dbplus_close — Close a relation
  • dbplus_curr — Get current tuple from relation
  • dbplus_errcode — Get error string for given errorcode or last error
  • dbplus_errno — Get error code for last operation
  • dbplus_find — Set a constraint on a relation
  • dbplus_first — Get first tuple from relation
  • dbplus_flush — Flush all changes made on a relation
  • dbplus_freealllocks — Free all locks held by this client
  • dbplus_freelock — Release write lock on tuple
  • dbplus_freerlocks — Free all tuple locks on given relation
  • dbplus_getlock — Get a write lock on a tuple
  • dbplus_getunique — Get an id number unique to a relation
  • dbplus_info — Get information about a relation
  • dbplus_last — Get last tuple from relation
  • dbplus_lockrel — Request write lock on relation
  • dbplus_next — Get next tuple from relation
  • dbplus_open — Open relation file
  • dbplus_prev — Get previous tuple from relation
  • dbplus_rchperm — Change relation permissions
  • dbplus_rcreate — Creates a new DB++ relation
  • dbplus_rcrtexact — Creates an exact but empty copy of a relation including indices
  • dbplus_rcrtlike — Creates an empty copy of a relation with default indices
  • dbplus_resolve — Resolve host information for relation
  • dbplus_restorepos — Restore position
  • dbplus_rkeys — Specify new primary key for a relation
  • dbplus_ropen — Open relation file local
  • dbplus_rquery — Perform local (raw) AQL query
  • dbplus_rrename — Rename a relation
  • dbplus_rsecindex — Create a new secondary index for a relation
  • dbplus_runlink — Remove relation from filesystem
  • dbplus_rzap — Remove all tuples from relation
  • dbplus_savepos — Save position
  • dbplus_setindex — Set index
  • dbplus_setindexbynumber — Set index by number
  • dbplus_sql — Perform SQL query
  • dbplus_tcl — Execute TCL code on server side
  • dbplus_tremove — Remove tuple and return new current tuple
  • dbplus_undo — Undo
  • dbplus_undoprepare — Prepare undo
  • dbplus_unlockrel — Give up write lock on relation
  • dbplus_unselect — Remove a constraint from relation
  • dbplus_update — Update specified tuple in relation
  • dbplus_xlockrel — Request exclusive lock on relation
  • dbplus_xunlockrel — Free exclusive lock on relation
db++ error codes
dbplus_add
DB++


Add a tuple to a relation

DB++ 函数
dbplus_aql
DB++ 函数
PHP 手册

dbplus_add

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_add — Add a tuple to a relation

说明

int dbplus_add ( resource $relation , array $tuple )

Adds a tuple to a relation .

参数

relation

tuple

An array of attribute/value pairs to be inserted into the given relation .

After successful execution this array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

返回值

The function will return DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_errcode() - Get error string for given errorcode or last error

DB++ 函数
dbplus_aql
DB++ 函数


Perform AQL query

dbplus_add
dbplus_chdir
DB++ 函数
PHP 手册

dbplus_aql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_aql — Perform AQL query

说明

resource dbplus_aql ( string $query [, string $server [, string $dbpath ]] )

Executes an AQL query on the given server and dbpath .

参数

query

The AQL query to be executed. Further information on the AQL A... Query Language is provided in the original db++ manual.

server

dbpath

返回值

Returns a relation handle on success. The result data may be fetched from this relation by calling dbplus_next() and dbplus_curr(). Other relation access functions will not work on a result relation.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_add
dbplus_chdir
DB++ 函数


Get/Set database virtual current directory

dbplus_aql
dbplus_close
DB++ 函数
PHP 手册

dbplus_chdir

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_chdir — Get/Set database virtual current directory

说明

string dbplus_chdir ([ string $newdir ] )

Changes the virtual current directory where relation files will be looked for by dbplus_open().

参数

newdir

The new directory for relation files. You can omit this parameter to query the current working directory.

返回值

Returns the absolute path of the current directory.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_aql
dbplus_close
DB++ 函数


Close a relation

dbplus_chdir
dbplus_curr
DB++ 函数
PHP 手册

dbplus_close

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_close — Close a relation

说明

mixed dbplus_close ( resource $relation )

Closes a relation previously opened by dbplus_open().

参数

relation

A relation opened by dbplus_open().

返回值

Returns TRUE on success or DBPLUS_ERR_UNKNOWN on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_chdir
dbplus_curr
DB++ 函数


Get current tuple from relation

dbplus_close
dbplus_errcode
DB++ 函数
PHP 手册

dbplus_curr

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_curr — Get current tuple from relation

说明

int dbplus_curr ( resource $relation , array &$tuple )

Reads the data for the current tuple for the given relation .

参数

relation

A relation opened by dbplus_open().

tuple

The data will be passed back in this parameter, as an associative array.

返回值

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_first() - Get first tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_next() - Get next tuple from relation
  • dbplus_last() - Get last tuple from relation
  • dbplus_errcode() - Get error string for given errorcode or last error

dbplus_close
dbplus_errcode
DB++ 函数


Get error string for given errorcode or last error

dbplus_curr
dbplus_errno
DB++ 函数
PHP 手册

dbplus_errcode

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errcode — Get error string for given errorcode or last error

说明

string dbplus_errcode ([ int $errno ] )

Returns a clear error string for the given error code.

参数

errno

The error code. If not provided, the result code of the last db++ operation is assumed.

返回值

Returns the error message.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_curr
dbplus_errno
DB++ 函数


Get error code for last operation

dbplus_errcode
dbplus_find
DB++ 函数
PHP 手册

dbplus_errno

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errno — Get error code for last operation

说明

int dbplus_errno ( void )

Returns the error code returned by the last db++ operation.

返回值

Returns the error code, as an integer.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_errcode() - Get error string for given errorcode or last error

dbplus_errcode
dbplus_find
DB++ 函数


Set a constraint on a relation

dbplus_errno
dbplus_first
DB++ 函数
PHP 手册

dbplus_find

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_find — Set a constraint on a relation

说明

int dbplus_find ( resource $relation , array $constraints , mixed $tuple )

Places a constraint on the given relation .

Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

参数

relation

A relation opened by dbplus_open().

constraints

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

tuple

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_unselect() - Remove a constraint from relation

dbplus_errno
dbplus_first
DB++ 函数


Get first tuple from relation

dbplus_find
dbplus_flush
DB++ 函数
PHP 手册

dbplus_first

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_first — Get first tuple from relation

说明

int dbplus_first ( resource $relation , array &$tuple )

Reads the data for the first tuple for the given relation , makes it the current tuple and pass it back as an associative array in tuple .

参数

relation

A relation opened by dbplus_open().

tuple

返回值

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_curr() - Get current tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_next() - Get next tuple from relation
  • dbplus_last() - Get last tuple from relation
  • dbplus_errcode() - Get error string for given errorcode or last error

dbplus_find
dbplus_flush
DB++ 函数


Flush all changes made on a relation

dbplus_first
dbplus_freealllocks
DB++ 函数
PHP 手册

dbplus_flush

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_flush — Flush all changes made on a relation

说明

int dbplus_flush ( resource $relation )

Writes all changes applied to relation since the last flush to disk.

参数

relation

A relation opened by dbplus_open().

返回值

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_errcode() - Get error string for given errorcode or last error

dbplus_first
dbplus_freealllocks
DB++ 函数


Free all locks held by this client

dbplus_flush
dbplus_freelock
DB++ 函数
PHP 手册

dbplus_freealllocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freealllocks — Free all locks held by this client

说明

int dbplus_freealllocks ( void )

Frees all tuple locks held by this client.

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_getlock() - Get a write lock on a tuple
  • dbplus_freelock() - Release write lock on tuple
  • dbplus_freerlocks() - Free all tuple locks on given relation

dbplus_flush
dbplus_freelock
DB++ 函数


Release write lock on tuple

dbplus_freealllocks
dbplus_freerlocks
DB++ 函数
PHP 手册

dbplus_freelock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freelock — Release write lock on tuple

说明

int dbplus_freelock ( resource $relation , string $tuple )

Releases a write lock on the given tuple previously obtained by dbplus_getlock().

参数

relation

A relation opened by dbplus_open().

tuple

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_getlock() - Get a write lock on a tuple
  • dbplus_freerlocks() - Free all tuple locks on given relation
  • dbplus_freealllocks() - Free all locks held by this client

dbplus_freealllocks
dbplus_freerlocks
DB++ 函数


Free all tuple locks on given relation

dbplus_freelock
dbplus_getlock
DB++ 函数
PHP 手册

dbplus_freerlocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freerlocks — Free all tuple locks on given relation

说明

int dbplus_freerlocks ( resource $relation )

Frees all tuple locks held on the given relation .

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_getlock() - Get a write lock on a tuple
  • dbplus_freelock() - Release write lock on tuple
  • dbplus_freealllocks() - Free all locks held by this client

dbplus_freelock
dbplus_getlock
DB++ 函数


Get a write lock on a tuple

dbplus_freerlocks
dbplus_getunique
DB++ 函数
PHP 手册

dbplus_getlock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getlock — Get a write lock on a tuple

说明

int dbplus_getlock ( resource $relation , string $tuple )

Requests a write lock on the specified tuple .

参数

relation

A relation opened by dbplus_open().

tuple

返回值

Returns zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_freelock() - Release write lock on tuple
  • dbplus_freerlocks() - Free all tuple locks on given relation
  • dbplus_freealllocks() - Free all locks held by this client

dbplus_freerlocks
dbplus_getunique
DB++ 函数


Get an id number unique to a relation

dbplus_getlock
dbplus_info
DB++ 函数
PHP 手册

dbplus_getunique

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getunique — Get an id number unique to a relation

说明

int dbplus_getunique ( resource $relation , int $uniqueid )

Obtains a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid .

参数

relation

A relation opened by dbplus_open().

uniqueid

返回值

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_getlock
dbplus_info
DB++ 函数


Get information about a relation

dbplus_getunique
dbplus_last
DB++ 函数
PHP 手册

dbplus_info

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_info — Get information about a relation

说明

int dbplus_info ( resource $relation , string $key , array &$result )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

key

result

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_getunique
dbplus_last
DB++ 函数


Get last tuple from relation

dbplus_info
dbplus_lockrel
DB++ 函数
PHP 手册

dbplus_last

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_last — Get last tuple from relation

说明

int dbplus_last ( resource $relation , array &$tuple )

Reads the data for the last tuple for the given relation , makes it the current tuple and pass it back as an associative array in tuple .

参数

relation

A relation opened by dbplus_open().

tuple

返回值

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_first() - Get first tuple from relation
  • dbplus_curr() - Get current tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_next() - Get next tuple from relation

dbplus_info
dbplus_lockrel
DB++ 函数


Request write lock on relation

dbplus_last
dbplus_next
DB++ 函数
PHP 手册

dbplus_lockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_lockrel — Request write lock on relation

说明

int dbplus_lockrel ( resource $relation )

Requests a write lock on the given relation .

Other clients may still query the relation, but can't alter it while it is locked.

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_last
dbplus_next
DB++ 函数


Get next tuple from relation

dbplus_lockrel
dbplus_open
DB++ 函数
PHP 手册

dbplus_next

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_next — Get next tuple from relation

说明

int dbplus_next ( resource $relation , array &$tuple )

Reads the data for the next tuple for the given relation , makes it the current tuple and will pass it back as an associative array in tuple .

参数

relation

A relation opened by dbplus_open().

tuple

返回值

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_first() - Get first tuple from relation
  • dbplus_curr() - Get current tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_last() - Get last tuple from relation

dbplus_lockrel
dbplus_open
DB++ 函数


Open relation file

dbplus_next
dbplus_prev
DB++ 函数
PHP 手册

dbplus_open

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_open — Open relation file

说明

resource dbplus_open ( string $name )

Opens the given relation file.

参数

name

Can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

返回值

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_next
dbplus_prev
DB++ 函数


Get previous tuple from relation

dbplus_open
dbplus_rchperm
DB++ 函数
PHP 手册

dbplus_prev

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_prev — Get previous tuple from relation

说明

int dbplus_prev ( resource $relation , array &$tuple )

Reads the data for the previous tuple for the given relation , makes it the current tuple and will pass it back as an associative array in tuple .

参数

relation

A relation opened by dbplus_open().

tuple

返回值

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_first() - Get first tuple from relation
  • dbplus_curr() - Get current tuple from relation
  • dbplus_next() - Get next tuple from relation
  • dbplus_last() - Get last tuple from relation

dbplus_open
dbplus_rchperm
DB++ 函数


Change relation permissions

dbplus_prev
dbplus_rcreate
DB++ 函数
PHP 手册

dbplus_rchperm

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rchperm — Change relation permissions

说明

int dbplus_rchperm ( resource $relation , int $mask , string $user , string $group )

Changes access permissions as specified by mask , user and group . The values for these are operating system specific.

参数

relation

A relation opened by dbplus_open().

mask

user

group

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_prev
dbplus_rcreate
DB++ 函数


Creates a new DB++ relation

dbplus_rchperm
dbplus_rcrtexact
DB++ 函数
PHP 手册

dbplus_rcreate

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcreate — Creates a new DB++ relation

说明

resource dbplus_rcreate ( string $name , mixed $domlist [, bool $overwrite ] )

Creates a new relation. Any existing relation sharing the same name will be overwritten if the relation is currently not in use and overwrite is set to TRUE.

参数

name

domlist

A combination of domains. May be passed as a single domain name string or as an array of domain names.

This parameter should contain the domain specification for the new relation within an array of domain description strings. A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Note: This function will also accept a string with space delimited domain description strings, but it is recommended to use an array

overwrite

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rchperm
dbplus_rcrtexact
DB++ 函数


Creates an exact but empty copy of a relation including indices

dbplus_rcreate
dbplus_rcrtlike
DB++ 函数
PHP 手册

dbplus_rcrtexact

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtexact — Creates an exact but empty copy of a relation including indices

说明

mixed dbplus_rcrtexact ( string $name , resource $relation [, bool $overwrite ] )

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name .

参数

name

relation

The copied relation, opened by dbplus_open().

overwrite

An existing relation by the same name will only be overwritten if this parameter is set to TRUE and no other process is currently using the relation.

返回值

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rcreate
dbplus_rcrtlike
DB++ 函数


Creates an empty copy of a relation with default indices

dbplus_rcrtexact
dbplus_resolve
DB++ 函数
PHP 手册

dbplus_rcrtlike

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtlike — Creates an empty copy of a relation with default indices

说明

mixed dbplus_rcrtlike ( string $name , resource $relation [, int $overwrite ] )

dbplus_rcrtexact() will create an empty copy of the given relation under a new name , but with default indices.

参数

name

relation

The copied relation, opened by dbplus_open().

overwrite

An existing relation by the same name will only be overwritten if this parameter is set to TRUE and no other process is currently using the relation.

返回值

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rcrtexact
dbplus_resolve
DB++ 函数


Resolve host information for relation

dbplus_rcrtlike
dbplus_restorepos
DB++ 函数
PHP 手册

dbplus_resolve

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_resolve — Resolve host information for relation

说明

array dbplus_resolve ( string $relation_name )

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host.

参数

relation_name

The relation name.

返回值

Returns an array containing these values under the keys sid, host and host_path or FALSE on error.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_tcl() - Execute TCL code on server side

dbplus_rcrtlike
dbplus_restorepos
DB++ 函数


Restore position

dbplus_resolve
dbplus_rkeys
DB++ 函数
PHP 手册

dbplus_restorepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_restorepos — Restore position

说明

int dbplus_restorepos ( resource $relation , array $tuple )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

tuple

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_resolve
dbplus_rkeys
DB++ 函数


Specify new primary key for a relation

dbplus_restorepos
dbplus_ropen
DB++ 函数
PHP 手册

dbplus_rkeys

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rkeys — Specify new primary key for a relation

说明

mixed dbplus_rkeys ( resource $relation , mixed $domlist )

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist .

参数

relation

A relation opened by dbplus_open().

domlist

A combination of domains. May be passed as a single domain name string or as an array of domain names.

返回值

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_restorepos
dbplus_ropen
DB++ 函数


Open relation file local

dbplus_rkeys
dbplus_rquery
DB++ 函数
PHP 手册

dbplus_ropen

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_ropen — Open relation file local

说明

resource dbplus_ropen ( string $name )

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_curr() and dbplus_next() may be applied to the returned relation.

参数

name

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rkeys
dbplus_rquery
DB++ 函数


Perform local (raw) AQL query

dbplus_ropen
dbplus_rrename
DB++ 函数
PHP 手册

dbplus_rquery

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rquery — Perform local (raw) AQL query

说明

resource dbplus_rquery ( string $query [, string $dbpath ] )

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

参数

query

dbpath

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_ropen
dbplus_rrename
DB++ 函数


Rename a relation

dbplus_rquery
dbplus_rsecindex
DB++ 函数
PHP 手册

dbplus_rrename

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rrename — Rename a relation

说明

int dbplus_rrename ( resource $relation , string $name )

dbplus_rrename() will change the name of relation to name .

参数

relation

A relation opened by dbplus_open().

name

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rquery
dbplus_rsecindex
DB++ 函数


Create a new secondary index for a relation

dbplus_rrename
dbplus_runlink
DB++ 函数
PHP 手册

dbplus_rsecindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rsecindex — Create a new secondary index for a relation

说明

mixed dbplus_rsecindex ( resource $relation , mixed $domlist , int $type )

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

参数

relation

A relation opened by dbplus_open().

domlist

A combination of domains. May be passed as a single domain name string or as an array of domain names.

type

返回值

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rrename
dbplus_runlink
DB++ 函数


Remove relation from filesystem

dbplus_rsecindex
dbplus_rzap
DB++ 函数
PHP 手册

dbplus_runlink

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_runlink — Remove relation from filesystem

说明

int dbplus_runlink ( resource $relation )

dbplus_runlink() will close and remove the relation .

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rsecindex
dbplus_rzap
DB++ 函数


Remove all tuples from relation

dbplus_runlink
dbplus_savepos
DB++ 函数
PHP 手册

dbplus_rzap

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rzap — Remove all tuples from relation

说明

int dbplus_rzap ( resource $relation )

dbplus_rzap() will remove all tuples from relation .

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_runlink
dbplus_savepos
DB++ 函数


Save position

dbplus_rzap
dbplus_setindex
DB++ 函数
PHP 手册

dbplus_savepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_savepos — Save position

说明

int dbplus_savepos ( resource $relation )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_rzap
dbplus_setindex
DB++ 函数


Set index

dbplus_savepos
dbplus_setindexbynumber
DB++ 函数
PHP 手册

dbplus_setindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindex — Set index

说明

int dbplus_setindex ( resource $relation , string $idx_name )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

idx_name

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_savepos
dbplus_setindexbynumber
DB++ 函数


Set index by number

dbplus_setindex
dbplus_sql
DB++ 函数
PHP 手册

dbplus_setindexbynumber

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindexbynumber — Set index by number

说明

int dbplus_setindexbynumber ( resource $relation , int $idx_number )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

idx_number

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_setindex
dbplus_sql
DB++ 函数


Perform SQL query

dbplus_setindexbynumber
dbplus_tcl
DB++ 函数
PHP 手册

dbplus_sql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_sql — Perform SQL query

说明

resource dbplus_sql ( string $query [, string $server [, string $dbpath ]] )
Warning

本函数暂无文档，仅有参数列表。

参数

query

server

dbpath

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_setindexbynumber
dbplus_tcl
DB++ 函数


Execute TCL code on server side

dbplus_sql
dbplus_tremove
DB++ 函数
PHP 手册

dbplus_tcl

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tcl — Execute TCL code on server side

说明

string dbplus_tcl ( int $sid , string $script )

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

参数

sid

script

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_resolve() - Resolve host information for relation

dbplus_sql
dbplus_tremove
DB++ 函数


Remove tuple and return new current tuple

dbplus_tcl
dbplus_undo
DB++ 函数
PHP 手册

dbplus_tremove

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tremove — Remove tuple and return new current tuple

说明

int dbplus_tremove ( resource $relation , array $tuple [, array &$current ] )

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current , if given, will contain the data of the new current tuple after calling dbplus_tremove().

参数

relation

A relation opened by dbplus_open().

tuple

current

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_tcl
dbplus_undo
DB++ 函数


Undo

dbplus_tremove
dbplus_undoprepare
DB++ 函数
PHP 手册

dbplus_undo

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undo — Undo

说明

int dbplus_undo ( resource $relation )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_tremove
dbplus_undoprepare
DB++ 函数


Prepare undo

dbplus_undo
dbplus_unlockrel
DB++ 函数
PHP 手册

dbplus_undoprepare

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undoprepare — Prepare undo

说明

int dbplus_undoprepare ( resource $relation )
Warning

本函数暂无文档，仅有参数列表。

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_undo
dbplus_unlockrel
DB++ 函数


Give up write lock on relation

dbplus_undoprepare
dbplus_unselect
DB++ 函数
PHP 手册

dbplus_unlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unlockrel — Give up write lock on relation

说明

int dbplus_unlockrel ( resource $relation )

Release a write lock previously obtained by dbplus_lockrel().

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_undoprepare
dbplus_unselect
DB++ 函数


Remove a constraint from relation

dbplus_unlockrel
dbplus_update
DB++ 函数
PHP 手册

dbplus_unselect

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unselect — Remove a constraint from relation

说明

int dbplus_unselect ( resource $relation )

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation .

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_unlockrel
dbplus_update
DB++ 函数


Update specified tuple in relation

dbplus_unselect
dbplus_xlockrel
DB++ 函数
PHP 手册

dbplus_update

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_update — Update specified tuple in relation

说明

int dbplus_update ( resource $relation , array $old , array $new )

dbplus_update() replaces the old tuple with the data from the new one, only if the old completely matches a tuple within relation .

参数

relation

A relation opened by dbplus_open().

old

The old tuple.

new

The new tuple.

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_unselect
dbplus_xlockrel
DB++ 函数


Request exclusive lock on relation

dbplus_update
dbplus_xunlockrel
DB++ 函数
PHP 手册

dbplus_xlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xlockrel — Request exclusive lock on relation

说明

int dbplus_xlockrel ( resource $relation )

Request an exclusive lock on relation preventing even read access from other clients.

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • dbplus_xunlockrel() - Free exclusive lock on relation

dbplus_update
dbplus_xunlockrel
DB++ 函数


Free exclusive lock on relation

dbplus_xlockrel
FrontBase
DB++ 函数
PHP 手册

dbplus_xunlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xunlockrel — Free exclusive lock on relation

说明

int dbplus_xunlockrel ( resource $relation )

Releases an exclusive lock previously obtained by dbplus_xlockrel().

参数

relation

A relation opened by dbplus_open().

返回值

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

dbplus_xlockrel
FrontBase
DB++ 函数


FrontBase

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • FrontBase 函数
    • fbsql_affected_rows — Get number of affected rows in previous FrontBase operation
    • fbsql_autocommit — Enable or disable autocommit
    • fbsql_blob_size — Get the size of a BLOB
    • fbsql_change_user — Change logged in user of the active connection
    • fbsql_clob_size — Get the size of a CLOB
    • fbsql_close — Close FrontBase connection
    • fbsql_commit — Commits a transaction to the database
    • fbsql_connect — Open a connection to a FrontBase Server
    • fbsql_create_blob — Create a BLOB
    • fbsql_create_clob — Create a CLOB
    • fbsql_create_db — Create a FrontBase database
    • fbsql_data_seek — Move internal result pointer
    • fbsql_database_password — Sets or retrieves the password for a FrontBase database
    • fbsql_database — Get or set the database name used with a connection
    • fbsql_db_query — Send a FrontBase query
    • fbsql_db_status — Get the status for a given database
    • fbsql_drop_db — Drop (delete) a FrontBase database
    • fbsql_errno — Returns the error number from previous operation
    • fbsql_error — Returns the error message from previous operation
    • fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • fbsql_fetch_assoc — Fetch a result row as an associative array
    • fbsql_fetch_field — Get column information from a result and return as an object
    • fbsql_fetch_lengths — Get the length of each output in a result
    • fbsql_fetch_object — Fetch a result row as an object
    • fbsql_fetch_row — Get a result row as an enumerated array
    • fbsql_field_flags — Get the flags associated with the specified field in a result
    • fbsql_field_len — Returns the length of the specified field
    • fbsql_field_name — Get the name of the specified field in a result
    • fbsql_field_seek — Set result pointer to a specified field offset
    • fbsql_field_table — Get name of the table the specified field is in
    • fbsql_field_type — Get the type of the specified field in a result
    • fbsql_free_result — Free result memory
    • fbsql_get_autostart_info — 说明
    • fbsql_hostname — Get or set the host name used with a connection
    • fbsql_insert_id — Get the id generated from the previous INSERT operation
    • fbsql_list_dbs — List databases available on a FrontBase server
    • fbsql_list_fields — List FrontBase result fields
    • fbsql_list_tables — List tables in a FrontBase database
    • fbsql_next_result — Move the internal result pointer to the next result
    • fbsql_num_fields — Get number of fields in result
    • fbsql_num_rows — Get number of rows in result
    • fbsql_password — Get or set the user password used with a connection
    • fbsql_pconnect — Open a persistent connection to a FrontBase Server
    • fbsql_query — Send a FrontBase query
    • fbsql_read_blob — Read a BLOB from the database
    • fbsql_read_clob — Read a CLOB from the database
    • fbsql_result — Get result data
    • fbsql_rollback — Rollback a transaction to the database
    • fbsql_rows_fetched — Get the number of rows affected by the last statement
    • fbsql_select_db — Select a FrontBase database
    • fbsql_set_characterset — Change input/output character set
    • fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set
    • fbsql_set_password — Change the password for a given user
    • fbsql_set_transaction — Set the transaction locking and isolation
    • fbsql_start_db — Start a database on local or remote server
    • fbsql_stop_db — Stop a database on local or remote server
    • fbsql_table_name — Get table name of field
    • fbsql_tablename — 别名 of fbsql_table_name
    • fbsql_username — Get or set the username for the connection
    • fbsql_warnings — Enable or disable FrontBase warnings
dbplus_xunlockrel
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access FrontBase database servers. More information about FrontBase can be found at » http://www.frontbase.com/.

Documentation for FrontBase can be found at » http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Frontbase support has been added to PHP 4.0.6.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.3.0.

FrontBase
安装/配置
FrontBase


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
FrontBase


需求

You must install the FrontBase database server or at least the fbsql client libraries to use this functions. You can get FrontBase from » http://www.frontbase.com/.

安装/配置
安装
安装/配置


安装

In order to have these functions available, you must compile PHP with fbsql support by using the --with-fbsql[=DIR] option. If you use this option without specifying the path to fbsql, PHP will search for the fbsql client libraries in the default installation location for the platform. Users who installed FrontBase in a non standard directory should always specify the path to fbsql: --with-fbsql=/path/to/fbsql. This will force PHP to use the client libraries installed by FrontBase, avoiding any conflicts.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

FrontBase configuration options
Name | Default | Changeable | Changelog
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Available since PHP 4.2.0.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Available since PHP 4.2.0. Removed in PHP 5.1.0.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_database | "" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Available since PHP 4.0.6.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FBSQL_ASSOC (integer)
FBSQL_NUM (integer)
FBSQL_BOTH (integer)
FBSQL_LOCK_DEFERRED (integer)
FBSQL_LOCK_OPTIMISTIC (integer)
FBSQL_LOCK_PESSIMISTIC (integer)
FBSQL_ISO_READ_UNCOMMITTED (integer)
FBSQL_ISO_READ_COMMITTED (integer)
FBSQL_ISO_REPEATABLE_READ (integer)
FBSQL_ISO_SERIALIZABLE (integer)
FBSQL_ISO_VERSIONED (integer)
FBSQL_UNKNOWN (integer)
FBSQL_STOPPED (integer)
FBSQL_STARTING (integer)
FBSQL_RUNNING (integer)
FBSQL_STOPPING (integer)
FBSQL_NOEXEC (integer)
FBSQL_LOB_DIRECT (integer)
FBSQL_LOB_HANDLE (integer)
资源类型
FrontBase 函数
FrontBase


FrontBase 函数

Table of Contents

  • fbsql_affected_rows — Get number of affected rows in previous FrontBase operation
  • fbsql_autocommit — Enable or disable autocommit
  • fbsql_blob_size — Get the size of a BLOB
  • fbsql_change_user — Change logged in user of the active connection
  • fbsql_clob_size — Get the size of a CLOB
  • fbsql_close — Close FrontBase connection
  • fbsql_commit — Commits a transaction to the database
  • fbsql_connect — Open a connection to a FrontBase Server
  • fbsql_create_blob — Create a BLOB
  • fbsql_create_clob — Create a CLOB
  • fbsql_create_db — Create a FrontBase database
  • fbsql_data_seek — Move internal result pointer
  • fbsql_database_password — Sets or retrieves the password for a FrontBase database
  • fbsql_database — Get or set the database name used with a connection
  • fbsql_db_query — Send a FrontBase query
  • fbsql_db_status — Get the status for a given database
  • fbsql_drop_db — Drop (delete) a FrontBase database
  • fbsql_errno — Returns the error number from previous operation
  • fbsql_error — Returns the error message from previous operation
  • fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc — Fetch a result row as an associative array
  • fbsql_fetch_field — Get column information from a result and return as an object
  • fbsql_fetch_lengths — Get the length of each output in a result
  • fbsql_fetch_object — Fetch a result row as an object
  • fbsql_fetch_row — Get a result row as an enumerated array
  • fbsql_field_flags — Get the flags associated with the specified field in a result
  • fbsql_field_len — Returns the length of the specified field
  • fbsql_field_name — Get the name of the specified field in a result
  • fbsql_field_seek — Set result pointer to a specified field offset
  • fbsql_field_table — Get name of the table the specified field is in
  • fbsql_field_type — Get the type of the specified field in a result
  • fbsql_free_result — Free result memory
  • fbsql_get_autostart_info — 说明
  • fbsql_hostname — Get or set the host name used with a connection
  • fbsql_insert_id — Get the id generated from the previous INSERT operation
  • fbsql_list_dbs — List databases available on a FrontBase server
  • fbsql_list_fields — List FrontBase result fields
  • fbsql_list_tables — List tables in a FrontBase database
  • fbsql_next_result — Move the internal result pointer to the next result
  • fbsql_num_fields — Get number of fields in result
  • fbsql_num_rows — Get number of rows in result
  • fbsql_password — Get or set the user password used with a connection
  • fbsql_pconnect — Open a persistent connection to a FrontBase Server
  • fbsql_query — Send a FrontBase query
  • fbsql_read_blob — Read a BLOB from the database
  • fbsql_read_clob — Read a CLOB from the database
  • fbsql_result — Get result data
  • fbsql_rollback — Rollback a transaction to the database
  • fbsql_rows_fetched — Get the number of rows affected by the last statement
  • fbsql_select_db — Select a FrontBase database
  • fbsql_set_characterset — Change input/output character set
  • fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set
  • fbsql_set_password — Change the password for a given user
  • fbsql_set_transaction — Set the transaction locking and isolation
  • fbsql_start_db — Start a database on local or remote server
  • fbsql_stop_db — Stop a database on local or remote server
  • fbsql_table_name — Get table name of field
  • fbsql_tablename — 别名 of fbsql_table_name
  • fbsql_username — Get or set the username for the connection
  • fbsql_warnings — Enable or disable FrontBase warnings
预定义常量
fbsql_affected_rows
FrontBase


Get number of affected rows in previous FrontBase operation

FrontBase 函数
fbsql_autocommit
FrontBase 函数
PHP 手册

fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rows — Get number of affected rows in previous FrontBase operation

说明

int fbsql_affected_rows ([ resource $link_identifier ] )

fbsql_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query associated with link_identifier .

Note: If you are using transactions, you need to call fbsql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the commit.

If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero.

Note: When using UPDATE, FrontBase will not update columns where the new value is the same as the old value. This creates the possibility that fbsql_affected_rows() may not actually equal the number of rows matched, only the number of rows that were literally affected by the query.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

If the last query failed, this function will return -1.

参见

  • fbsql_num_rows() - Get number of rows in result

FrontBase 函数
fbsql_autocommit
FrontBase 函数


Enable or disable autocommit

fbsql_affected_rows
fbsql_blob_size
FrontBase 函数
PHP 手册

fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommit — Enable or disable autocommit

说明

bool fbsql_autocommit ( resource $link_identifier [, bool $OnOff ] )

Returns the current autocommit status.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

OnOff

If this optional parameter is given the auto commit status will be changed.

With OnOff set to TRUE each statement will be committed automatically, if no errors was found.

With OnOff set to FALSE the user must commit or rollback the transaction using either fbsql_commit() or fbsql_rollback().

返回值

Returns the current autocommit status, as a boolean.

参见

  • fbsql_commit() - Commits a transaction to the database
  • fbsql_rollback() - Rollback a transaction to the database

fbsql_affected_rows
fbsql_blob_size
FrontBase 函数


Get the size of a BLOB

fbsql_autocommit
fbsql_change_user
FrontBase 函数
PHP 手册

fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_blob_size — Get the size of a BLOB

说明

int fbsql_blob_size ( string $blob_handle [, resource $link_identifier ] )

Returns the size of the given BLOB.

参数

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns the BLOB size as an integer, or FALSE on error.

参见

  • fbsql_clob_size() - Get the size of a CLOB

fbsql_autocommit
fbsql_change_user
FrontBase 函数


Change logged in user of the active connection

fbsql_blob_size
fbsql_clob_size
FrontBase 函数
PHP 手册

fbsql_change_user

(PHP 4 >= 4.0.6, PHP 5)

fbsql_change_user — Change logged in user of the active connection

说明

bool fbsql_change_user ( string $user , string $password [, string $database [, resource $link_identifier ]] )

fbsql_change_user() changes the logged in user of the specified connection. If the new user and password authorization fails, the current connected user stays active.

参数

user

The new user name.

password

The new user password.

database

If specified, this will be the default or current database after the user has been changed.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

fbsql_blob_size
fbsql_clob_size
FrontBase 函数


Get the size of a CLOB

fbsql_change_user
fbsql_close
FrontBase 函数
PHP 手册

fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_clob_size — Get the size of a CLOB

说明

int fbsql_clob_size ( string $clob_handle [, resource $link_identifier ] )

Returns the size of the given CLOB.

参数

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns the CLOB size as an integer, or FALSE on error.

参见

  • fbsql_blob_size() - Get the size of a BLOB

fbsql_change_user
fbsql_close
FrontBase 函数


Close FrontBase connection

fbsql_clob_size
fbsql_commit
FrontBase 函数
PHP 手册

fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_close — Close FrontBase connection

说明

bool fbsql_close ([ resource $link_identifier ] )

Closes the connection to the FrontBase server that's associated with the specified link identifier.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 fbsql_close() example

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
echo "Connected successfully";
fbsql_close($link);
?>

参见

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server

fbsql_clob_size
fbsql_commit
FrontBase 函数


Commits a transaction to the database

fbsql_close
fbsql_connect
FrontBase 函数
PHP 手册

fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commit — Commits a transaction to the database

说明

bool fbsql_commit ([ resource $link_identifier ] )

Ends the current transaction by writing all inserts, updates and deletes to the disk and unlocking all row and table locks held by the transaction. This command is only needed if autocommit is set to false.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_autocommit() - Enable or disable autocommit
  • fbsql_rollback() - Rollback a transaction to the database

fbsql_close
fbsql_connect
FrontBase 函数


Open a connection to a FrontBase Server

fbsql_commit
fbsql_create_blob
FrontBase 函数
PHP 手册

fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connect — Open a connection to a FrontBase Server

说明

resource fbsql_connect ([ string $hostname [, string $username [, string $password ]]] )

fbsql_connect() establishes a connection to a FrontBase server.

If a second call is made to fbsql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling fbsql_close().

参数

hostname

The server host name. Defaults to 'NULL'.

username

The user name for the connection. Defaults to _SYSTEM.

password

The password for the connection. Defaults to the empty string.

返回值

Returns a positive FrontBase link identifier on success, or FALSE on errors.

范例

Example #1 fbsql_connect() example

<?php

$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
echo "Connected successfully";
fbsql_close($link);

?>

参见

  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_close() - Close FrontBase connection

fbsql_commit
fbsql_create_blob
FrontBase 函数


Create a BLOB

fbsql_connect
fbsql_create_clob
FrontBase 函数
PHP 手册

fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blob — Create a BLOB

说明

string fbsql_create_blob ( string $blob_data [, resource $link_identifier ] )

Creates a BLOB from the given data.

参数

blob_data

The BLOB data.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a resource handle to the newly created BLOB, which can be used with insert and update commands to store the BLOB in the database.

范例

Example #1 fbsql_create_blob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$filename = "blobfile.bin";
$fp = fopen($filename, "rb");
$blobdata = fread($fp, filesize($filename));
fclose($fp);

$blobHandle = fbsql_create_blob($blobdata, $link);

$sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
$rs = fbsql_query($sql, $link);
?>

参见

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set

fbsql_connect
fbsql_create_clob
FrontBase 函数


Create a CLOB

fbsql_create_blob
fbsql_create_db
FrontBase 函数
PHP 手册

fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clob — Create a CLOB

说明

string fbsql_create_clob ( string $clob_data [, resource $link_identifier ] )

Creates a CLOB from the given data.

参数

clob_data

The CLOB data.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a resource handle to the newly created CLOB, which can be used with insert and update commands to store the CLOB in the database.

范例

Example #1 fbsql_create_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$filename = "clob_file.txt";
$fp = fopen($filename, "rb");
$clobdata = fread($fp, filesize($filename));
fclose($fp);

$clobHandle = fbsql_create_clob($clobdata, $link);

$sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
$rs = fbsql_query($sql, $link);
?>

参见

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set

fbsql_create_blob
fbsql_create_db
FrontBase 函数


Create a FrontBase database

fbsql_create_clob
fbsql_data_seek
FrontBase 函数
PHP 手册

fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_db — Create a FrontBase database

说明

bool fbsql_create_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Attempts to create a new database on the specified server.

参数

database_name

The database name, as a string.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

database_options

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 fbsql_create_db() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
if (fbsql_create_db("my_db")) {
    echo "Database created successfully\n";
} else {
    printf("Error creating database: %s\n", fbsql_error());
}
?>

参见

  • fbsql_drop_db() - Drop (delete) a FrontBase database

fbsql_create_clob
fbsql_data_seek
FrontBase 函数


Move internal result pointer

fbsql_create_db
fbsql_database_password
FrontBase 函数
PHP 手册

fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seek — Move internal result pointer

说明

bool fbsql_data_seek ( resource $result , int $row_number )

Moves the internal row pointer of the FrontBase result associated with the specified result identifier to point to the specified row number.

The next call to fbsql_fetch_row() would return that row.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

row_number

The row number. Starts at 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 fbsql_data_seek() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");

fbsql_select_db("samp_db")
    or die("Could not select database");

$query = "SELECT last_name, first_name FROM friends;";
$result = fbsql_query($query)
    or die("Query failed");

// fetch rows in reverse order

for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
    if (!fbsql_data_seek($result, $i)) {
        printf("Cannot seek to row %d\n", $i);
        continue;
    }

    if (!($row = fbsql_fetch_object($result)))
        continue;

    echo $row->last_name . $row->first_name . "<br />\n";
}

fbsql_free_result($result);
?>

fbsql_create_db
fbsql_database_password
FrontBase 函数


Sets or retrieves the password for a FrontBase database

fbsql_data_seek
fbsql_database
FrontBase 函数
PHP 手册

fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_password — Sets or retrieves the password for a FrontBase database

说明

string fbsql_database_password ( resource $link_identifier [, string $database_password ] )

Sets and retrieves the database password used by the connection. If a database is protected by a database password, the user must call this function before calling fbsql_select_db().

If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

database_password

The database password, as a string. If given, the function sets the database password for the specified link identifier.

返回值

Returns the database password associated with the link identifier.

范例

Example #1 fbsql_create_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
fbsql_database_password($link, "secret db password");
fbsql_select_db($database, $link);
?>

参见

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_select_db() - Select a FrontBase database

fbsql_data_seek
fbsql_database
FrontBase 函数


Get or set the database name used with a connection

fbsql_database_password
fbsql_db_query
FrontBase 函数
PHP 手册

fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database — Get or set the database name used with a connection

说明

string fbsql_database ( resource $link_identifier [, string $database ] )

Get or set the database name used with the connection.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

database

The database name. If given, the default database of the connexion will be changed to database .

返回值

Returns the name of the database used with this connection.

fbsql_database_password
fbsql_db_query
FrontBase 函数


Send a FrontBase query

fbsql_database
fbsql_db_status
FrontBase 函数
PHP 手册

fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_query — Send a FrontBase query

说明

resource fbsql_db_query ( string $database , string $query [, resource $link_identifier ] )

Selects a database and executes a query on it.

参数

database

The database to be selected.

query

The SQL query to be executed.

Note: The query string shall always end with a semicolon.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a positive FrontBase result identifier to the query result, or FALSE on error.

参见

  • fbsql_query() - Send a FrontBase query
  • fbsql_connect() - Open a connection to a FrontBase Server

fbsql_database
fbsql_db_status
FrontBase 函数


Get the status for a given database

fbsql_db_query
fbsql_drop_db
FrontBase 函数
PHP 手册

fbsql_db_status

(PHP 4 >= 4.0.7, PHP 5)

fbsql_db_status — Get the status for a given database

说明

int fbsql_db_status ( string $database_name [, resource $link_identifier ] )

Gets the current status of the specified database.

参数

database_name

The database name.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns an integer value with the current status. This can be one of the following constants:

  • FALSE - The exec handler for the host was invalid. This error will occur when the link_identifier connects directly to a database by using a port number. FBExec can be available on the server but no connection has been made for it.
  • FBSQL_UNKNOWN - The Status is unknown.
  • FBSQL_STOPPED - The database is not running. Use fbsql_start_db() to start the database.
  • FBSQL_STARTING - The database is starting.
  • FBSQL_RUNNING - The database is running and can be used to perform SQL operations.
  • FBSQL_STOPPING - The database is stopping.
  • FBSQL_NOEXEC - FBExec is not running on the server and it is not possible to get the status of the database.

参见

  • fbsql_start_db() - Start a database on local or remote server
  • fbsql_stop_db() - Stop a database on local or remote server

fbsql_db_query
fbsql_drop_db
FrontBase 函数


Drop (delete) a FrontBase database

fbsql_db_status
fbsql_errno
FrontBase 函数
PHP 手册

fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_db — Drop (delete) a FrontBase database

说明

bool fbsql_drop_db ( string $database_name [, resource $link_identifier ] )

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

参数

database_name

The database name, as a string.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_create_db() - Create a FrontBase database

fbsql_db_status
fbsql_errno
FrontBase 函数


Returns the error number from previous operation

fbsql_drop_db
fbsql_error
FrontBase 函数
PHP 手册

fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errno — Returns the error number from previous operation

说明

int fbsql_errno ([ resource $link_identifier ] )

Returns the numerical value of the error message from previous FrontBase operation.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

范例

Example #1 fbsql_errno() Example

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

参见

  • fbsql_error() - Returns the error message from previous operation
  • fbsql_warnings() - Enable or disable FrontBase warnings

fbsql_drop_db
fbsql_error
FrontBase 函数


Returns the error message from previous operation

fbsql_errno
fbsql_fetch_array
FrontBase 函数
PHP 手册

fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_error — Returns the error message from previous operation

说明

string fbsql_error ([ resource $link_identifier ] )

Returns the error message from previous FrontBase operation.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_error() to retrieve the error text. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

范例

Example #1 fbsql_error() Example

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

参见

  • fbsql_errno() - Returns the error number from previous operation
  • fbsql_warnings() - Enable or disable FrontBase warnings

fbsql_errno
fbsql_fetch_array
FrontBase 函数


Fetch a result row as an associative array, a numeric array, or both

fbsql_error
fbsql_fetch_assoc
FrontBase 函数
PHP 手册

fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

说明

array fbsql_fetch_array ( resource $result [, int $result_type ] )

fbsql_fetch_array() is a combination of
fbsql_fetch_row() and
fbsql_fetch_assoc().

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

result_type

A constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, or FBSQL_BOTH.

When using FBSQL_BOTH, in addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

范例

Example #1 fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

参见

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object

fbsql_error
fbsql_fetch_assoc
FrontBase 函数


Fetch a result row as an associative array

fbsql_fetch_array
fbsql_fetch_field
FrontBase 函数
PHP 手册

fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assoc — Fetch a result row as an associative array

说明

array fbsql_fetch_assoc ( resource $result )

Calling fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC as second parameter. It only returns an associative array.

This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

范例

Example #1 fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

参见

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_object() - Fetch a result row as an object

fbsql_fetch_array
fbsql_fetch_field
FrontBase 函数


Get column information from a result and return as an object

fbsql_fetch_assoc
fbsql_fetch_lengths
FrontBase 函数
PHP 手册

fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_field — Get column information from a result and return as an object

说明

object fbsql_fetch_field ( resource $result [, int $field_offset ] )

Used in order to obtain information about fields in a certain query result.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0. If not specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

返回值

Returns an object containing field information, or FALSE on errors.

The properties of the object are:

  • name - column name
  • table - name of the table the column belongs to
  • max_length - maximum length of the column
  • not_null - 1 if the column cannot be NULL
  • type - the type of the column

范例

Example #1 fbsql_fetch_field() example

<?php
fbsql_connect($host, $user, $password)
    or die("Could not connect");
$result = fbsql_db_query("database", "select * from table")
    or die("Query failed");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

参见

  • fbsql_field_seek() - Set result pointer to a specified field offset

fbsql_fetch_assoc
fbsql_fetch_lengths
FrontBase 函数


Get the length of each output in a result

fbsql_fetch_field
fbsql_fetch_object
FrontBase 函数
PHP 手册

fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengths — Get the length of each output in a result

说明

array fbsql_fetch_lengths ( resource $result )

Stores the lengths of each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns an array, starting at offset 0, that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

参见

  • fbsql_fetch_row() - Get a result row as an enumerated array

fbsql_fetch_field
fbsql_fetch_object
FrontBase 函数


Fetch a result row as an object

fbsql_fetch_lengths
fbsql_fetch_row
FrontBase 函数
PHP 手册

fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_object — Fetch a result row as an object

说明

object fbsql_fetch_object ( resource $result )

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

范例

Example #1 fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

参见

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array

fbsql_fetch_lengths
fbsql_fetch_row
FrontBase 函数


Get a result row as an enumerated array

fbsql_fetch_object
fbsql_field_flags
FrontBase 函数
PHP 手册

fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_row — Get a result row as an enumerated array

说明

array fbsql_fetch_row ( resource $result )

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns an array that corresponds to the fetched row where each result column is stored in an offset, starting at offset 0, or FALSE if there are no more rows.

参见

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object
  • fbsql_data_seek() - Move internal result pointer
  • fbsql_fetch_lengths() - Get the length of each output in a result
  • fbsql_result() - Get result data

fbsql_fetch_object
fbsql_field_flags
FrontBase 函数


Get the flags associated with the specified field in a result

fbsql_fetch_row
fbsql_field_len
FrontBase 函数
PHP 手册

fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flags — Get the flags associated with the specified field in a result

说明

string fbsql_field_flags ( resource $result [, int $field_offset ] )

Gets the flags associated with the specified field in a result.

参数

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

返回值

Returns the field flags of the specified field as a single word per flag separated by a single space, so that you can split the returned value using explode().

fbsql_fetch_row
fbsql_field_len
FrontBase 函数


Returns the length of the specified field

fbsql_field_flags
fbsql_field_name
FrontBase 函数
PHP 手册

fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_len — Returns the length of the specified field

说明

int fbsql_field_len ( resource $result [, int $field_offset ] )

Returns the length of the specified field.

参数

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

返回值

Returns the length of the specified field.

fbsql_field_flags
fbsql_field_name
FrontBase 函数


Get the name of the specified field in a result

fbsql_field_len
fbsql_field_seek
FrontBase 函数
PHP 手册

fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_name — Get the name of the specified field in a result

说明

string fbsql_field_name ( resource $result [, int $field_index ] )

Returns the name of the specified field index.

参数

result

A result pointer returned by fbsql_list_fields().

field_index

The numerical offset of the field. The field index starts at 0.

返回值

Returns the name as a string, or FALSE if the field doesn't exist.

范例

Example #1 fbsql_field_name() example

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

上例将输出：

user_id
password

参见

  • fbsql_field_type() - Get the type of the specified field in a result

fbsql_field_len
fbsql_field_seek
FrontBase 函数


Set result pointer to a specified field offset

fbsql_field_name
fbsql_field_table
FrontBase 函数
PHP 手册

fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seek — Set result pointer to a specified field offset

说明

bool fbsql_field_seek ( resource $result [, int $field_offset ] )

Seeks to the specified field offset. If the next call to fbsql_fetch_field() doesn't include a field offset, the field offset specified in fbsql_field_seek() will be returned.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_fetch_field() - Get column information from a result and return as an object

fbsql_field_name
fbsql_field_table
FrontBase 函数


Get name of the table the specified field is in

fbsql_field_seek
fbsql_field_type
FrontBase 函数
PHP 手册

fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_table — Get name of the table the specified field is in

说明

string fbsql_field_table ( resource $result [, int $field_offset ] )

Returns the name of the table that the specified field is in.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

返回值

Returns the name of the table, as a string.

fbsql_field_seek
fbsql_field_type
FrontBase 函数


Get the type of the specified field in a result

fbsql_field_table
fbsql_free_result
FrontBase 函数
PHP 手册

fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_type — Get the type of the specified field in a result

说明

string fbsql_field_type ( resource $result [, int $field_offset ] )

fbsql_field_type() is similar to the fbsql_field_name() function, but the field type is returned instead.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

返回值

Returns the field type, as a string.

This can be one of int, real, string, blob, and others as detailed in the » FrontBase documentation.

范例

Example #1 fbsql_field_type() example

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Your '" . $table . "' table has " . $fields . " fields and " . $rows . " records <br />";
echo "The table has the following fields <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

参见

  • fbsql_field_name() - Get the name of the specified field in a result

fbsql_field_table
fbsql_free_result
FrontBase 函数


Free result memory

fbsql_field_type
fbsql_get_autostart_info
FrontBase 函数
PHP 手册

fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_result — Free result memory

说明

bool fbsql_free_result ( resource $result )

Frees all memory associated with the given result identifier.

fbsql_free_result() only needs to be called if you are concerned about how much memory is being used for queries that return large result sets. All associated result memory is automatically freed at the end of the script's execution.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

fbsql_field_type
fbsql_get_autostart_info
FrontBase 函数


fbsql_free_result
fbsql_hostname
FrontBase 函数
PHP 手册

fbsql_get_autostart_info

(PHP 4 >= 4.0.7, PHP 5)

fbsql_get_autostart_info —

说明

array fbsql_get_autostart_info ([ resource $link_identifier ] )
Warning

本函数暂无文档，仅有参数列表。

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

fbsql_free_result
fbsql_hostname
FrontBase 函数


Get or set the host name used with a connection

fbsql_get_autostart_info
fbsql_insert_id
FrontBase 函数
PHP 手册

fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostname — Get or set the host name used with a connection

说明

string fbsql_hostname ( resource $link_identifier [, string $host_name ] )

Gets or sets the host name used with a connection.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

host_name

If provided, this will be the new connection host name.

返回值

Returns the current host name used for the connection.

参见

  • fbsql_username() - Get or set the username for the connection
  • fbsql_password() - Get or set the user password used with a connection

fbsql_get_autostart_info
fbsql_insert_id
FrontBase 函数


Get the id generated from the previous INSERT operation

fbsql_hostname
fbsql_list_dbs
FrontBase 函数
PHP 手册

fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_id — Get the id generated from the previous INSERT operation

说明

int fbsql_insert_id ([ resource $link_identifier ] )

Gets the id generated from the previous INSERT operation which created a DEFAULT UNIQUE value.

Note: The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns the ID generated from the previous INSERT query, or 0 if the previous query does not generate an DEFAULT UNIQUE value.

If you need to save the value for later, be sure to call this function immediately after the query that generates the value.

参见

  • fbsql_affected_rows() - Get number of affected rows in previous FrontBase operation

fbsql_hostname
fbsql_list_dbs
FrontBase 函数


List databases available on a FrontBase server

fbsql_insert_id
fbsql_list_fields
FrontBase 函数
PHP 手册

fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbs — List databases available on a FrontBase server

说明

resource fbsql_list_dbs ([ resource $link_identifier ] )

Return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() to traverse this result pointer.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a result pointer or FALSE on error.

范例

Example #1 fbsql_list_dbs() example

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

上例的输出类似于：

database1
database2
database3
...

Note: The above code would just as easily work with fbsql_fetch_row() or other similar functions.

参见

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_tables() - List tables in a FrontBase database

fbsql_insert_id
fbsql_list_fields
FrontBase 函数


List FrontBase result fields

fbsql_list_dbs
fbsql_list_tables
FrontBase 函数
PHP 手册

fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fields — List FrontBase result fields

说明

resource fbsql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

Retrieves information about the given table.

参数

database_name

The database name.

table_name

The table name.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a result pointer which can be used with the fbsql_field_xxx functions, or FALSE on error.

错误／异常

A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

范例

Example #1 fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

上例的输出类似于：

field1
field2
field3
...

参见

  • fbsql_field_len() - Returns the length of the specified field
  • fbsql_field_name() - Get the name of the specified field in a result
  • fbsql_field_type() - Get the type of the specified field in a result
  • fbsql_field_flags() - Get the flags associated with the specified field in a result

fbsql_list_dbs
fbsql_list_tables
FrontBase 函数


List tables in a FrontBase database

fbsql_list_fields
fbsql_next_result
FrontBase 函数
PHP 手册

fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tables — List tables in a FrontBase database

说明

resource fbsql_list_tables ( string $database [, resource $link_identifier ] )

Returns a result pointer describing the database .

参数

database

The database name.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a result pointer which can be used with the fbsql_tablename() function to read the actual table names, or FALSE on error.

参见

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_dbs() - List databases available on a FrontBase server

fbsql_list_fields
fbsql_next_result
FrontBase 函数


Move the internal result pointer to the next result

fbsql_list_tables
fbsql_num_fields
FrontBase 函数
PHP 手册

fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_result — Move the internal result pointer to the next result

说明

bool fbsql_next_result ( resource $result )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the words from the new result set.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns TRUE if an additional result set was available or FALSE otherwise.

范例

Example #1 fbsql_next_result() example

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret");
fbsql_select_db("MyDB", $link);
$SQL = "Select * from table1; select * from table2;";
$rs = fbsql_query($SQL, $link);
do {
    while ($row = fbsql_fetch_row($rs)) {
    }
} while (fbsql_next_result($rs));
fbsql_free_result($rs);
fbsql_close($link);
?>

fbsql_list_tables
fbsql_num_fields
FrontBase 函数


Get number of fields in result

fbsql_next_result
fbsql_num_rows
FrontBase 函数
PHP 手册

fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fields — Get number of fields in result

说明

int fbsql_num_fields ( resource $result )

Returns the number of fields in the given result set.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns the number of fields, as an integer.

参见

  • fbsql_db_query() - Send a FrontBase query
  • fbsql_query() - Send a FrontBase query
  • fbsql_fetch_field() - Get column information from a result and return as an object
  • fbsql_num_rows() - Get number of rows in result

fbsql_next_result
fbsql_num_rows
FrontBase 函数


Get number of rows in result

fbsql_num_fields
fbsql_password
FrontBase 函数
PHP 手册

fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rows — Get number of rows in result

说明

int fbsql_num_rows ( resource $result )

Gets the number of rows in the given result set.

This function is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns the number of rows returned by the last SELECT statement.

范例

Example #1 fbsql_num_rows() example

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

参见

  • fbsql_affected_rows() - Get number of affected rows in previous FrontBase operation
  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_select_db() - Select a FrontBase database
  • fbsql_query() - Send a FrontBase query

fbsql_num_fields
fbsql_password
FrontBase 函数


Get or set the user password used with a connection

fbsql_num_rows
fbsql_pconnect
FrontBase 函数
PHP 手册

fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_password — Get or set the user password used with a connection

说明

string fbsql_password ( resource $link_identifier [, string $password ] )

Get or set the user password used with a connection.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

password

If provided, this will be the new connection password.

返回值

Returns the current password used for the connection.

参见

  • fbsql_username() - Get or set the username for the connection
  • fbsql_hostname() - Get or set the host name used with a connection

fbsql_num_rows
fbsql_pconnect
FrontBase 函数


Open a persistent connection to a FrontBase Server

fbsql_password
fbsql_query
FrontBase 函数
PHP 手册

fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnect — Open a persistent connection to a FrontBase Server

说明

resource fbsql_pconnect ([ string $hostname [, string $username [, string $password ]]] )

Establishes a persistent connection to a FrontBase server.

To set the server port number, use fbsql_select_db().

fbsql_pconnect() acts very much like fbsql_connect() with two major differences:

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use.

This type of links is therefore called 'persistent'.

参数

hostname

The server host name. Defaults to localhost.

username

The user name for the connection. Defaults to _SYSTEM.

password

The password for the connection. Defaults to the empty string.

返回值

Returns a positive FrontBase persistent link identifier on success, or FALSE on error.

参见

  • fbsql_connect() - Open a connection to a FrontBase Server

fbsql_password
fbsql_query
FrontBase 函数


Send a FrontBase query

fbsql_pconnect
fbsql_read_blob
FrontBase 函数
PHP 手册

fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query — Send a FrontBase query

说明

resource fbsql_query ( string $query [, resource $link_identifier [, int $batch_size ]] )

Sends a query to the currently active database on the server.

If the query succeeds, you can call fbsql_num_rows() to find out how many rows were returned for a SELECT statement or fbsql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

参数

query

The SQL query to be executed.

Note: The query string shall always end with a semicolon.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

batch_size

返回值

fbsql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result().

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

范例

The following query is syntactically invalid, so fbsql_query() fails and returns FALSE:

Example #1 fbsql_query() example

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

The following query is semantically invalid if my_col is not a column in the table my_tbl, so fbsql_query() fails and returns FALSE:

Example #2 fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl;")
    or die ("Invalid query");
?>

参见

  • fbsql_affected_rows() - Get number of affected rows in previous FrontBase operation
  • fbsql_db_query() - Send a FrontBase query
  • fbsql_free_result() - Free result memory
  • fbsql_result() - Get result data
  • fbsql_select_db() - Select a FrontBase database
  • fbsql_connect() - Open a connection to a FrontBase Server

fbsql_pconnect
fbsql_read_blob
FrontBase 函数


Read a BLOB from the database

fbsql_query
fbsql_read_clob
FrontBase 函数
PHP 手册

fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blob — Read a BLOB from the database

说明

string fbsql_read_blob ( string $blob_handle [, resource $link_identifier ] )

Reads BLOB data from the database.

If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

参数

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a string containing the specified BLOB data.

范例

Example #1 fbsql_read_blob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain the blob data for the first row
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain a handle to the BLOB data in the first row
$blob_data = fbsql_read_blob($row_data[0]);
fbsql_free_result($rs);

?>

参见

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set

fbsql_query
fbsql_read_clob
FrontBase 函数


Read a CLOB from the database

fbsql_read_blob
fbsql_result
FrontBase 函数
PHP 手册

fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clob — Read a CLOB from the database

说明

string fbsql_read_clob ( string $clob_handle [, resource $link_identifier ] )

Reads CLOB data from the database.

If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

参数

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

Returns a string containing the specified CLOB data.

范例

Example #1 fbsql_read_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain the clob data for the first row
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain a handle to the CLOB data in the first row
$clob_data = fbsql_read_clob($row_data[0]);
fbsql_free_result($rs);

?>

参见

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set

fbsql_read_blob
fbsql_result
FrontBase 函数


Get result data

fbsql_read_clob
fbsql_rollback
FrontBase 函数
PHP 手册

fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_result — Get result data

说明

mixed fbsql_result ( resource $result [, int $row [, mixed $field ]] )

Returns the contents of one cell from a FrontBase result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than fbsql_result().

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

row

field

Can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname).

If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

Note: Specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

返回值

参见

Recommended high-performance alternatives:

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object

fbsql_read_clob
fbsql_rollback
FrontBase 函数


Rollback a transaction to the database

fbsql_result
fbsql_rows_fetched
FrontBase 函数
PHP 手册

fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollback — Rollback a transaction to the database

说明

bool fbsql_rollback ([ resource $link_identifier ] )

Ends the current transaction by rolling back all statements issued since last commit.

This command is only needed if autocommit is set to false.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_autocommit() - Enable or disable autocommit
  • fbsql_commit() - Commits a transaction to the database

fbsql_result
fbsql_rows_fetched
FrontBase 函数


Get the number of rows affected by the last statement

fbsql_rollback
fbsql_select_db
FrontBase 函数
PHP 手册

fbsql_rows_fetched

(PHP 5 >= 5.1.0)

fbsql_rows_fetched — Get the number of rows affected by the last statement

说明

int fbsql_rows_fetched ( resource $result )

Gets the number of rows affected by the last statement.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

返回值

Returns the number of rows, as an integer.

fbsql_rollback
fbsql_select_db
FrontBase 函数


Select a FrontBase database

fbsql_rows_fetched
fbsql_set_characterset
FrontBase 函数
PHP 手册

fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_db — Select a FrontBase database

说明

bool fbsql_select_db ([ string $database_name [, resource $link_identifier ]] )

Sets the current active database on the given link identifier.

The client contacts FBExec to obtain the port number to use for the connection to the database. If the database name is a number the system will use that as a port number and it will not ask FBExec for the port number. The FrontBase server can be stared as FRontBase -FBExec=No -port=<port number> <database name>.

Every subsequent call to fbsql_query() will be made on the active database.

参数

database_name

The name of the database to be selected.

If the database is protected with a database password, the you must call fbsql_database_password() before selecting the database.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_database_password() - Sets or retrieves the password for a FrontBase database
  • fbsql_query() - Send a FrontBase query

fbsql_rows_fetched
fbsql_set_characterset
FrontBase 函数


Change input/output character set

fbsql_select_db
fbsql_set_lob_mode
FrontBase 函数
PHP 手册

fbsql_set_characterset

(PHP 5 >= 5.1.0)

fbsql_set_characterset — Change input/output character set

说明

void fbsql_set_characterset ( resource $link_identifier , int $characterset [, int $in_out_both ] )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

fbsql_select_db
fbsql_set_lob_mode
FrontBase 函数


Set the LOB retrieve mode for a FrontBase result set

fbsql_set_characterset
fbsql_set_password
FrontBase 函数
PHP 手册

fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set

说明

bool fbsql_set_lob_mode ( resource $result , int $lob_mode )

Sets the mode for retrieving LOB data from the database.

When BLOB and CLOB data is retrieved in FrontBase it can be retrieved direct or indirect. Direct retrieved LOB data will always be fetched no matter the setting of the lob mode. If the LOB data is less than 512 bytes it will always be retrieved directly.

参数

result

A result identifier returned by fbsql_query() or fbsql_db_query().

lob_mode

Can be one of:

  • FBSQL_LOB_DIRECT - LOB data is retrieved directly. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, all CLOB and BLOB columns will be returned as ordinary columns. This is the default value on a new FrontBase result.
  • FBSQL_LOB_HANDLE - LOB data is retrieved as handles to the data. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, LOB data will be returned as a handle to the data if the data is stored indirect or the data if it is stored direct. If a handle is returned it will be a 27 byte string formatted as @'000000000000000000000000'.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_create_blob() - Create a BLOB
  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database

fbsql_set_characterset
fbsql_set_password
FrontBase 函数


Change the password for a given user

fbsql_set_lob_mode
fbsql_set_transaction
FrontBase 函数
PHP 手册

fbsql_set_password

(PHP 5)

fbsql_set_password — Change the password for a given user

说明

bool fbsql_set_password ( resource $link_identifier , string $user , string $password , string $old_password )

Changes the password for the given user .

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

user

The user name.

password

The new password to be set.

old_password

The old password to be replaced.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

fbsql_set_lob_mode
fbsql_set_transaction
FrontBase 函数


Set the transaction locking and isolation

fbsql_set_password
fbsql_start_db
FrontBase 函数
PHP 手册

fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transaction — Set the transaction locking and isolation

说明

void fbsql_set_transaction ( resource $link_identifier , int $locking , int $isolation )

Sets the transaction locking and isolation .

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

locking

The type of locking to be set. It can be one of the following constants: FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, or FBSQL_LOCK_PESSIMISTIC.

isolation

The type of isolation to be set. It can be one of the following constants: FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, or FBSQL_ISO_VERSIONED.

返回值

无返回值。

fbsql_set_password
fbsql_start_db
FrontBase 函数


Start a database on local or remote server

fbsql_set_transaction
fbsql_stop_db
FrontBase 函数
PHP 手册

fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_db — Start a database on local or remote server

说明

bool fbsql_start_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Start a database on local or remote server.

参数

database_name

The database name.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

database_options

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_db_status() - Get the status for a given database
  • fbsql_stop_db() - Stop a database on local or remote server

fbsql_set_transaction
fbsql_stop_db
FrontBase 函数


Stop a database on local or remote server

fbsql_start_db
fbsql_table_name
FrontBase 函数
PHP 手册

fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_db — Stop a database on local or remote server

说明

bool fbsql_stop_db ( string $database_name [, resource $link_identifier ] )

Stops a database on local or remote server.

参数

database_name

The database name.

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fbsql_db_status() - Get the status for a given database
  • fbsql_start_db() - Start a database on local or remote server

fbsql_start_db
fbsql_table_name
FrontBase 函数


Get table name of field

fbsql_stop_db
fbsql_tablename
FrontBase 函数
PHP 手册

fbsql_table_name

(PHP 4 >= 4.2.0, PHP 5)

fbsql_table_name — Get table name of field

说明

string fbsql_table_name ( resource $result , int $index )

fbsql_table_name() gets the name of the current table in the given result set.

The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

参数

result

A result pointer returned by fbsql_list_tables().

index

Integer index for the current table.

返回值

Returns the name of the table, as a string.

范例

Example #1 fbsql_table_name() example

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_table_name($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>

fbsql_stop_db
fbsql_tablename
FrontBase 函数


别名 of fbsql_table_name

fbsql_table_name
fbsql_username
FrontBase 函数
PHP 手册

fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablename — 别名 of fbsql_table_name()

说明

本函数是该函数的别名： fbsql_table_name().

fbsql_table_name
fbsql_username
FrontBase 函数


Get or set the username for the connection

fbsql_tablename
fbsql_warnings
FrontBase 函数
PHP 手册

fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_username — Get or set the username for the connection

说明

string fbsql_username ( resource $link_identifier [, string $username ] )

Get or set the username used for the connection.

参数

link_identifier

A FrontBase link identifier returned by fbsql_connect() or fbsql_pconnect().

If optional and not specified, the function will try to find an open link to the FrontBase server and if no such link is found it will try to create one as if fbsql_connect() was called with no arguments.

username

If provided, this is the new username to set.

返回值

Returns the current username used with the connection, as a string.

参见

  • fbsql_password() - Get or set the user password used with a connection
  • fbsql_hostname() - Get or set the host name used with a connection

fbsql_tablename
fbsql_warnings
FrontBase 函数


Enable or disable FrontBase warnings

fbsql_username
filePro
FrontBase 函数
PHP 手册

fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warnings — Enable or disable FrontBase warnings

说明

bool fbsql_warnings ([ bool $OnOff ] )

Enables or disables FrontBase warnings.

参数

OnOff

Whether to enable warnings or no.

返回值

Returns TRUE if warnings is turned on, FALSE otherwise.

参见

  • fbsql_errno() - Returns the error number from previous operation
  • fbsql_error() - Returns the error message from previous operation

fbsql_username
filePro
FrontBase 函数


filePro

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • filePro 函数
    • filepro_fieldcount — Find out how many fields are in a filePro database
    • filepro_fieldname — Gets the name of a field
    • filepro_fieldtype — Gets the type of a field
    • filepro_fieldwidth — Gets the width of a field
    • filepro_retrieve — Retrieves data from a filePro database
    • filepro_rowcount — Find out how many rows are in a filePro database
    • filepro — Read and verify the map file
fbsql_warnings
简介
与具体数据库系统相关的扩展


简介

These functions allow read-only access to data stored in filePro databases.

filePro is a registered trademark of fP Technologies, Inc. You can find more information about filePro at » http://www.fptech.com/.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.2.0.

filePro
安装/配置
filePro


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
filePro


安装

filePro support in PHP is not enabled by default. To enable the bundled read-only filePro support you need to use the--enable-filepro configuration option when compiling PHP.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
filePro 函数
filePro


filePro 函数

Table of Contents

  • filepro_fieldcount — Find out how many fields are in a filePro database
  • filepro_fieldname — Gets the name of a field
  • filepro_fieldtype — Gets the type of a field
  • filepro_fieldwidth — Gets the width of a field
  • filepro_retrieve — Retrieves data from a filePro database
  • filepro_rowcount — Find out how many rows are in a filePro database
  • filepro — Read and verify the map file
预定义常量
filepro_fieldcount
filePro


Find out how many fields are in a filePro database

filePro 函数
filepro_fieldname
filePro 函数
PHP 手册

filepro_fieldcount

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldcount — Find out how many fields are in a filePro database

说明

int filepro_fieldcount ( void )

Returns the number of fields (columns) in the opened filePro database.

返回值

Returns the number of fields in the opened filePro database, or FALSE on errors.

参见

  • filepro() - Read and verify the map file

filePro 函数
filepro_fieldname
filePro 函数


Gets the name of a field

filepro_fieldcount
filepro_fieldtype
filePro 函数
PHP 手册

filepro_fieldname

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldname — Gets the name of a field

说明

string filepro_fieldname ( int $field_number )

Returns the name of the field corresponding to field_number .

参数

field_number

The field number.

返回值

Returns the name of the field as a string, or FALSE on errors.

filepro_fieldcount
filepro_fieldtype
filePro 函数


Gets the type of a field

filepro_fieldname
filepro_fieldwidth
filePro 函数
PHP 手册

filepro_fieldtype

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldtype — Gets the type of a field

说明

string filepro_fieldtype ( int $field_number )

Returns the edit type of the field corresponding to field_number .

参数

field_number

The field number.

返回值

Returns the edit type of the field as a string, or FALSE on errors.

filepro_fieldname
filepro_fieldwidth
filePro 函数


Gets the width of a field

filepro_fieldtype
filepro_retrieve
filePro 函数
PHP 手册

filepro_fieldwidth

(PHP 4, PHP 5 <= 5.1.6)

filepro_fieldwidth — Gets the width of a field

说明

int filepro_fieldwidth ( int $field_number )

Returns the width of the field corresponding to field_number .

参数

field_number

The field number.

返回值

Returns the width of the field as a integer, or FALSE on errors.

filepro_fieldtype
filepro_retrieve
filePro 函数


Retrieves data from a filePro database

filepro_fieldwidth
filepro_rowcount
filePro 函数
PHP 手册

filepro_retrieve

(PHP 4, PHP 5 <= 5.1.6)

filepro_retrieve — Retrieves data from a filePro database

说明

string filepro_retrieve ( int $row_number , int $field_number )

Returns the data from the specified location in the database.

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

参数

row_number

The row number. Must be between zero and the total number of rows minus one (0..filepro_rowcount() - 1)

field_number

The field number. Accepts values between zero and the total number of fields minus one (0..filepro_fieldcount() - 1)

返回值

Returns the specified data, or FALSE on errors.

filepro_fieldwidth
filepro_rowcount
filePro 函数


Find out how many rows are in a filePro database

filepro_retrieve
filepro
filePro 函数
PHP 手册

filepro_rowcount

(PHP 4, PHP 5 <= 5.1.6)

filepro_rowcount — Find out how many rows are in a filePro database

说明

int filepro_rowcount ( void )

Returns the number of rows in the opened filePro database.

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

返回值

Returns the number of rows in the opened filePro database, or FALSE on errors.

参见

  • filepro() - Read and verify the map file

filepro_retrieve
filepro
filePro 函数


Read and verify the map file

filepro_rowcount
Firebird/InterBase
filePro 函数
PHP 手册

filepro

(PHP 4, PHP 5 <= 5.1.6)

filepro — Read and verify the map file

说明

bool filepro ( string $directory )

This reads and verifies the map file, storing the field count and info.

No locking is done, so you should avoid modifying your filePro database while it may be opened in PHP.

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

参数

directory

The map directory.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

filepro_rowcount
Firebird/InterBase
filePro 函数


Firebird/InterBase

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Firebird/InterBase 函数
    • ibase_add_user — Add a user to a security database (only for IB6 or later)
    • ibase_affected_rows — Return the number of rows that were affected by the previous query
    • ibase_backup — Initiates a backup task in the service manager and returns immediately
    • ibase_blob_add — Add data into a newly created blob
    • ibase_blob_cancel — Cancel creating blob
    • ibase_blob_close — Close blob
    • ibase_blob_create — Create a new blob for adding data
    • ibase_blob_echo — Output blob contents to browser
    • ibase_blob_get — Get len bytes data from open blob
    • ibase_blob_import — Create blob, copy file in it, and close it
    • ibase_blob_info — Return blob length and other useful info
    • ibase_blob_open — Open blob for retrieving data parts
    • ibase_close — Close a connection to an InterBase database
    • ibase_commit_ret — Commit a transaction without closing it
    • ibase_commit — Commit a transaction
    • ibase_connect — Open a connection to an InterBase database
    • ibase_db_info — Request statistics about a database
    • ibase_delete_user — Delete a user from a security database (only for IB6 or later)
    • ibase_drop_db — Drops a database
    • ibase_errcode — Return an error code
    • ibase_errmsg — Return error messages
    • ibase_execute — Execute a previously prepared query
    • ibase_fetch_assoc — Fetch a result row from a query as an associative array
    • ibase_fetch_object — Get an object from a InterBase database
    • ibase_fetch_row — Fetch a row from an InterBase database
    • ibase_field_info — Get information about a field
    • ibase_free_event_handler — Cancels a registered event handler
    • ibase_free_query — Free memory allocated by a prepared query
    • ibase_free_result — Free a result set
    • ibase_gen_id — Increments the named generator and returns its new value
    • ibase_maintain_db — Execute a maintenance command on the database server
    • ibase_modify_user — Modify a user to a security database (only for IB6 or later)
    • ibase_name_result — Assigns a name to a result set
    • ibase_num_fields — Get the number of fields in a result set
    • ibase_num_params — Return the number of parameters in a prepared query
    • ibase_param_info — Return information about a parameter in a prepared query
    • ibase_pconnect — Open a persistent connection to an InterBase database
    • ibase_prepare — Prepare a query for later binding of parameter placeholders and execution
    • ibase_query — Execute a query on an InterBase database
    • ibase_restore — Initiates a restore task in the service manager and returns immediately
    • ibase_rollback_ret — Roll back a transaction without closing it
    • ibase_rollback — Roll back a transaction
    • ibase_server_info — Request information about a database server
    • ibase_service_attach — Connect to the service manager
    • ibase_service_detach — Disconnect from the service manager
    • ibase_set_event_handler — Register a callback function to be called when events are posted
    • ibase_timefmt — Sets the format of timestamp, date and time type columns returned from queries
    • ibase_trans — Begin a transaction
    • ibase_wait_event — Wait for an event to be posted by the database
filepro
简介
与具体数据库系统相关的扩展


简介

Firebird/InterBase is a relational database offering many ANSI SQL-92 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird/InterBase offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981.

InterBase is the name of the closed-source variant of this RDBMS that was developed by Borland/Inprise. More information about InterBase is available at » http://www.borland.com/interbase/.

Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) under the InterBase Public License v.1.0 on 25 July, 2000. More information about Firebird is available at » http://www.firebirdsql.org/.

Note: This extension supports InterBase versions 5 and up and all versions of Firebird. Support for InterBase version 5.x will be dropped in PHP 5.
This database uses a single quote (') character for escaping, a behavior similar to the Sybase database, add to your php.ini the following directive:

magic_quotes_sybase = On

Firebird/InterBase
安装/配置
Firebird/InterBase


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Firebird/InterBase


安装

To enable InterBase support configure PHP --with-interbase[=DIR], where DIR is the InterBase base install directory, which defaults to /usr/interbase.

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: gds32.dll
In case you installed the InterBase database server on the same machine PHP is running on, you will have this DLL already. Therefore you don't need to worry because gds32.dll will already be in the PATH.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

InterBase configuration options
Name | Default | Changeable | Changelog
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM | Available since PHP 5.0.0.
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Available since PHP 5.0.0.
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

ibase.allow_persistent boolean

Whether to allow persistent connections to Firebird/InterBase.

ibase.max_persistent integer

The maximum number of persistent Firebird/InterBase connections per process. New connections created with ibase_pconnect() will be non-persistent if this number would be exceeded.

ibase.max_links integer

The maximum number of Firebird/InterBase connections per process, including persistent connections.

ibase.default_db string

The default database to connect to when ibase_[p]connect() is called without specifying a database name. If this value is set and SQL safe mode is enabled, no other connections than to this database will be allowed.

ibase.default_user string

The user name to use when connecting to a database if no user name is specified.

ibase.default_password string

The password to use when connecting to a database if no password is specified.

ibase.default_charset string

The character set to use when connecting to a database if no character set is specified.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

These directives are used to set the date and time formats that are used when returning dates and times from a result set, or when binding arguments to date and time parameters.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following constants can be passed to ibase_trans() to specify transaction behaviour.

Firebird/InterBase transaction flags
Constant | Description
IBASE_DEFAULT | The default transaction settings are to be used. This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases.
IBASE_READ | Starts a read-only transaction.
IBASE_WRITE | Starts a read-write transaction.
IBASE_CONSISTENCY | Starts a transaction with the isolation level set to 'consistency', which means the transaction cannot read from tables that are being modified by other concurrent transactions.
IBASE_CONCURRENCY | Starts a transaction with the isolation level set to 'concurrency' (or 'snapshot'), which means the transaction has access to all tables, but cannot see changes that were committed by other transactions after the transaction was started.
IBASE_COMMITTED | Starts a transaction with the isolation level set to 'read committed'. This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION. This isolation level allows access to changes that were committed after the transaction was started. If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read. If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction.
IBASE_WAIT | Indicated that a transaction should wait and retry when a conflict occurs.
IBASE_NOWAIT | Indicated that a transaction should fail immediately when a conflict occurs.

The following constants can be passed to ibase_fetch_row(), ibase_fetch_assoc() or ibase_fetch_object() to specify fetch behaviour.

Firebird/InterBase fetch flags
Constant | Description
IBASE_FETCH_BLOBS | Also available as IBASE_TEXTfor backward compatibility. Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers.
IBASE_FETCH_ARRAYS | Causes arrays to be fetched inline. Otherwise, array identifiers are returned. Array identifiers can only be used as arguments to INSERT operations, as no functions to handle array identifiers are currently available.
IBASE_UNIXTIME | Causes date and time fields not to be returned as strings, but as UNIX timestamps (the number of seconds since the epoch, which is 1-Jan-1970 0:00 UTC). Might be problematic if used with dates before 1970 on some systems.

The following constants are used to pass requests and options to the service
API functions (ibase_server_info(), ibase_db_info(),
ibase_backup(), ibase_restore()
and ibase_maintain_db()). Please refer to
the Firebird/InterBase manuals for the meaning of these options.

IBASE_BKP_IGNORE_CHECKSUMS
IBASE_BKP_IGNORE_LIMBO
IBASE_BKP_METADATA_ONLY
IBASE_BKP_NO_GARBAGE_COLLECT
IBASE_BKP_OLD_DESCRIPTIONS
IBASE_BKP_NON_TRANSPORTABLE
IBASE_BKP_CONVERT
Options to ibase_backup()
IBASE_RES_DEACTIVATE_IDX
IBASE_RES_NO_SHADOW
IBASE_RES_NO_VALIDITY
IBASE_RES_ONE_AT_A_TIME
IBASE_RES_REPLACE
IBASE_RES_CREATE
IBASE_RES_USE_ALL_SPACE
Options to ibase_restore()
IBASE_PRP_PAGE_BUFFERS
IBASE_PRP_SWEEP_INTERVAL
IBASE_PRP_SHUTDOWN_DB
IBASE_PRP_DENY_NEW_TRANSACTIONS
IBASE_PRP_DENY_NEW_ATTACHMENTS
IBASE_PRP_RESERVE_SPACE
IBASE_PRP_RES_USE_FULL
IBASE_PRP_RES
IBASE_PRP_WRITE_MODE
IBASE_PRP_WM_ASYNC
IBASE_PRP_WM_SYNC
IBASE_PRP_ACCESS_MODE
IBASE_PRP_AM_READONLY
IBASE_PRP_AM_READWRITE
IBASE_PRP_SET_SQL_DIALECT
IBASE_PRP_ACTIVATE
IBASE_PRP_DB_ONLINE
IBASE_RPR_CHECK_DB
IBASE_RPR_IGNORE_CHECKSUM
IBASE_RPR_KILL_SHADOWS
IBASE_RPR_MEND_DB
IBASE_RPR_VALIDATE_DB
IBASE_RPR_FULL
IBASE_RPR_SWEEP_DB
Options to ibase_maintain_db()
IBASE_STS_DATA_PAGES
IBASE_STS_DB_LOG
IBASE_STS_HDR_PAGES
IBASE_STS_IDX_PAGES
IBASE_STS_SYS_RELATIONS
Options to ibase_db_info()
IBASE_SVC_SERVER_VERSION
IBASE_SVC_IMPLEMENTATION
IBASE_SVC_GET_ENV
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Options to ibase_server_info()

资源类型
Firebird/InterBase 函数
Firebird/InterBase


Firebird/InterBase 函数

Table of Contents

  • ibase_add_user — Add a user to a security database (only for IB6 or later)
  • ibase_affected_rows — Return the number of rows that were affected by the previous query
  • ibase_backup — Initiates a backup task in the service manager and returns immediately
  • ibase_blob_add — Add data into a newly created blob
  • ibase_blob_cancel — Cancel creating blob
  • ibase_blob_close — Close blob
  • ibase_blob_create — Create a new blob for adding data
  • ibase_blob_echo — Output blob contents to browser
  • ibase_blob_get — Get len bytes data from open blob
  • ibase_blob_import — Create blob, copy file in it, and close it
  • ibase_blob_info — Return blob length and other useful info
  • ibase_blob_open — Open blob for retrieving data parts
  • ibase_close — Close a connection to an InterBase database
  • ibase_commit_ret — Commit a transaction without closing it
  • ibase_commit — Commit a transaction
  • ibase_connect — Open a connection to an InterBase database
  • ibase_db_info — Request statistics about a database
  • ibase_delete_user — Delete a user from a security database (only for IB6 or later)
  • ibase_drop_db — Drops a database
  • ibase_errcode — Return an error code
  • ibase_errmsg — Return error messages
  • ibase_execute — Execute a previously prepared query
  • ibase_fetch_assoc — Fetch a result row from a query as an associative array
  • ibase_fetch_object — Get an object from a InterBase database
  • ibase_fetch_row — Fetch a row from an InterBase database
  • ibase_field_info — Get information about a field
  • ibase_free_event_handler — Cancels a registered event handler
  • ibase_free_query — Free memory allocated by a prepared query
  • ibase_free_result — Free a result set
  • ibase_gen_id — Increments the named generator and returns its new value
  • ibase_maintain_db — Execute a maintenance command on the database server
  • ibase_modify_user — Modify a user to a security database (only for IB6 or later)
  • ibase_name_result — Assigns a name to a result set
  • ibase_num_fields — Get the number of fields in a result set
  • ibase_num_params — Return the number of parameters in a prepared query
  • ibase_param_info — Return information about a parameter in a prepared query
  • ibase_pconnect — Open a persistent connection to an InterBase database
  • ibase_prepare — Prepare a query for later binding of parameter placeholders and execution
  • ibase_query — Execute a query on an InterBase database
  • ibase_restore — Initiates a restore task in the service manager and returns immediately
  • ibase_rollback_ret — Roll back a transaction without closing it
  • ibase_rollback — Roll back a transaction
  • ibase_server_info — Request information about a database server
  • ibase_service_attach — Connect to the service manager
  • ibase_service_detach — Disconnect from the service manager
  • ibase_set_event_handler — Register a callback function to be called when events are posted
  • ibase_timefmt — Sets the format of timestamp, date and time type columns returned from queries
  • ibase_trans — Begin a transaction
  • ibase_wait_event — Wait for an event to be posted by the database
预定义常量
ibase_add_user
Firebird/InterBase


Add a user to a security database (only for IB6 or later)

Firebird/InterBase 函数
ibase_affected_rows
Firebird/InterBase 函数
PHP 手册

ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_user — Add a user to a security database (only for IB6 or later)

说明

bool ibase_add_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )

PHP 4 uses server , dba_user_name and dba_user_password instead of service_handle parameter.

Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_modify_user() - Modify a user to a security database (only for IB6 or later)
  • ibase_delete_user() - Delete a user from a security database (only for IB6 or later)

Firebird/InterBase 函数
ibase_affected_rows
Firebird/InterBase 函数


Return the number of rows that were affected by the previous query

ibase_add_user
ibase_backup
Firebird/InterBase 函数
PHP 手册

ibase_affected_rows

(PHP 5)

ibase_affected_rows — Return the number of rows that were affected by the previous query

说明

int ibase_affected_rows ([ resource $link_identifier ] )

This function returns the number of rows that were affected by the previous query (INSERT, UPDATE or DELETE) that was executed from within the specified transaction context.

参数

link_identifier

A transaction context. If link_identifier is a connection resource, its default transaction is used.

返回值

Returns the number of rows as an integer.

参见

  • ibase_query() - Execute a query on an InterBase database
  • ibase_execute() - Execute a previously prepared query

ibase_add_user
ibase_backup
Firebird/InterBase 函数


Initiates a backup task in the service manager and returns immediately

ibase_affected_rows
ibase_blob_add
Firebird/InterBase 函数
PHP 手册

ibase_backup

(PHP 5)

ibase_backup — Initiates a backup task in the service manager and returns immediately

说明

mixed ibase_backup ( resource $service_handle , string $source_db , string $dest_file [, int $options=0 [, bool $verbose=false ]] )
Warning

本函数暂无文档，仅有参数列表。

ibase_affected_rows
ibase_blob_add
Firebird/InterBase 函数


Add data into a newly created blob

ibase_backup
ibase_blob_cancel
Firebird/InterBase 函数
PHP 手册

ibase_blob_add

(PHP 4, PHP 5)

ibase_blob_add — Add data into a newly created blob

说明

void ibase_blob_add ( resource $blob_handle , string $data )

ibase_blob_add() adds data into a blob created with ibase_blob_create().

参数

blob_handle

A blob handle opened with ibase_blob_create().

data

The data to be added.

返回值

无返回值。

参见

  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data
  • ibase_blob_import() - Create blob, copy file in it, and close it

ibase_backup
ibase_blob_cancel
Firebird/InterBase 函数


Cancel creating blob

ibase_blob_add
ibase_blob_close
Firebird/InterBase 函数
PHP 手册

ibase_blob_cancel

(PHP 4, PHP 5)

ibase_blob_cancel — Cancel creating blob

说明

bool ibase_blob_cancel ( resource $blob_handle )

This function will discard a BLOB if it has not yet been closed by ibase_blob_close().

参数

blob_handle

A BLOB handle opened with ibase_blob_create().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data
  • ibase_blob_import() - Create blob, copy file in it, and close it

ibase_blob_add
ibase_blob_close
Firebird/InterBase 函数


Close blob

ibase_blob_cancel
ibase_blob_create
Firebird/InterBase 函数
PHP 手册

ibase_blob_close

(PHP 4, PHP 5)

ibase_blob_close — Close blob

说明

mixed ibase_blob_close ( resource $blob_handle )

This function closes a BLOB that has either been opened for reading by ibase_blob_open() or has been opened for writing by ibase_blob_create().

参数

blob_handle

A BLOB handle opened with ibase_blob_create() or ibase_blob_open().

返回值

If the BLOB was being read, this function returns TRUE on success, if the BLOB was being written to, this function returns a string containing the BLOB id that has been assigned to it by the database. On failure, this function returns FALSE.

参见

  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_open() - Open blob for retrieving data parts

ibase_blob_cancel
ibase_blob_create
Firebird/InterBase 函数


Create a new blob for adding data

ibase_blob_close
ibase_blob_echo
Firebird/InterBase 函数
PHP 手册

ibase_blob_create

(PHP 4, PHP 5)

ibase_blob_create — Create a new blob for adding data

说明

resource ibase_blob_create ([ resource $link_identifier=NULL ] )

ibase_blob_create() creates a new BLOB for filling with data.

参数

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

返回值

Returns a BLOB handle for later use with ibase_blob_add() or FALSE on failure.

参见

  • ibase_blob_add() - Add data into a newly created blob
  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_import() - Create blob, copy file in it, and close it

ibase_blob_close
ibase_blob_echo
Firebird/InterBase 函数


Output blob contents to browser

ibase_blob_create
ibase_blob_get
Firebird/InterBase 函数
PHP 手册

ibase_blob_echo

(PHP 4, PHP 5)

ibase_blob_echo — Output blob contents to browser

说明

bool ibase_blob_echo ( string $blob_id )
bool ibase_blob_echo ( resource $link_identifier , string $blob_id )

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases).

参数

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_blob_open() - Open blob for retrieving data parts
  • ibase_blob_close() - Close blob
  • ibase_blob_get() - Get len bytes data from open blob

ibase_blob_create
ibase_blob_get
Firebird/InterBase 函数


Get len bytes data from open blob

ibase_blob_echo
ibase_blob_import
Firebird/InterBase 函数
PHP 手册

ibase_blob_get

(PHP 4, PHP 5)

ibase_blob_get — Get len bytes data from open blob

说明

string ibase_blob_get ( resource $blob_handle , int $len )

This function returns at most len bytes from a BLOB that has been opened for reading by ibase_blob_open().

Note: It is not possible to read from a BLOB that has been opened for writing by ibase_blob_create().

参数

blob_handle

A BLOB handle opened with ibase_blob_open().

len

Size of returned data.

返回值

Returns at most len bytes from the BLOB, or FALSE on failure.

范例

Example #1 ibase_blob_get() example

<?php
$result    = ibase_query("SELECT blob_value FROM table");
$data      = ibase_fetch_object($result);
$blob_data = ibase_blob_info($data->BLOB_VALUE);
$blob_hndl = ibase_blob_open($data->BLOB_VALUE);
echo         ibase_blob_get($blob_hndl, $blob_data[0]);
?>

Whilst this example doesn't do much more than a 'ibase_blob_echo($data->BLOB_VALUE)' would do, it does show you how to get information into a $variable to manipulate as you please.

参见

  • ibase_blob_open() - Open blob for retrieving data parts
  • ibase_blob_close() - Close blob
  • ibase_blob_echo() - Output blob contents to browser

ibase_blob_echo
ibase_blob_import
Firebird/InterBase 函数


Create blob, copy file in it, and close it

ibase_blob_get
ibase_blob_info
Firebird/InterBase 函数
PHP 手册

ibase_blob_import

(PHP 4, PHP 5)

ibase_blob_import — Create blob, copy file in it, and close it

说明

string ibase_blob_import ( resource $link_identifier , resource $file_handle )
string ibase_blob_import ( resource $file_handle )

This function creates a BLOB, reads an entire file into it, closes it and returns the assigned BLOB id.

参数

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

file_handle

The file handle is a handle returned by fopen().

返回值

Returns the BLOB id on success, or FALSE on error.

范例

Example #1 ibase_blob_import() example

<?php
$dbh = ibase_connect($host, $username, $password);
$filename = '/tmp/bar';

$fd = fopen($filename, 'r');
if ($fd) {

    $blob = ibase_blob_import($dbh, $fd);
    fclose($fd);

    if (!is_string($blob)) {
        // import failed
    } else {
        $query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        $prepared = ibase_prepare($dbh, $query);
        if (!ibase_execute($prepared, $blob)) {
            // record insertion failed
        }
    }
} else {
    // unable to open the data file
}
?>

参见

  • ibase_blob_add() - Add data into a newly created blob
  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data

ibase_blob_get
ibase_blob_info
Firebird/InterBase 函数


Return blob length and other useful info

ibase_blob_import
ibase_blob_open
Firebird/InterBase 函数
PHP 手册

ibase_blob_info

(PHP 4, PHP 5)

ibase_blob_info — Return blob length and other useful info

说明

array ibase_blob_info ( resource $link_identifier , string $blob_id )
array ibase_blob_info ( string $blob_id )

Returns the BLOB length and other useful information.

参数

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

A BLOB id.

返回值

Returns an array containing information about a BLOB. The information returned consists of the length of the BLOB, the number of segments it contains, the size of the largest segment, and whether it is a stream BLOB or a segmented BLOB.

ibase_blob_import
ibase_blob_open
Firebird/InterBase 函数


Open blob for retrieving data parts

ibase_blob_info
ibase_close
Firebird/InterBase 函数
PHP 手册

ibase_blob_open

(PHP 4, PHP 5)

ibase_blob_open — Open blob for retrieving data parts

说明

resource ibase_blob_open ( resource $link_identifier , string $blob_id )
resource ibase_blob_open ( string $blob_id )

Opens an existing BLOB for reading.

参数

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

A BLOB id.

返回值

Returns a BLOB handle for later use with ibase_blob_get() or FALSE on failure.

参见

  • ibase_blob_close() - Close blob
  • ibase_blob_echo() - Output blob contents to browser
  • ibase_blob_get() - Get len bytes data from open blob

ibase_blob_info
ibase_close
Firebird/InterBase 函数


Close a connection to an InterBase database

ibase_blob_open
ibase_commit_ret
Firebird/InterBase 函数
PHP 手册

ibase_close

(PHP 4, PHP 5)

ibase_close — Close a connection to an InterBase database

说明

bool ibase_close ([ resource $connection_id=NULL ] )

Closes the link to an InterBase database that's associated with a connection id returned from ibase_connect(). Default transaction on link is committed, other transactions are rolled back.

参数

connection_id

An InterBase link identifier returned from ibase_connect(). If omitted, the last opened link is assumed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_connect() - Open a connection to an InterBase database
  • ibase_pconnect() - Open a persistent connection to an InterBase database

ibase_blob_open
ibase_commit_ret
Firebird/InterBase 函数


Commit a transaction without closing it

ibase_close
ibase_commit
Firebird/InterBase 函数
PHP 手册

ibase_commit_ret

(PHP 5)

ibase_commit_ret — Commit a transaction without closing it

说明

bool ibase_commit_ret ([ resource $link_or_trans_identifier=NULL ] )

Commits a transaction without closing it.

参数

link_or_trans_identifier

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_close
ibase_commit
Firebird/InterBase 函数


Commit a transaction

ibase_commit_ret
ibase_connect
Firebird/InterBase 函数
PHP 手册

ibase_commit

(PHP 4, PHP 5)

ibase_commit — Commit a transaction

说明

bool ibase_commit ([ resource $link_or_trans_identifier=NULL ] )

Commits a transaction.

参数

link_or_trans_identifier

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_commit_ret
ibase_connect
Firebird/InterBase 函数


Open a connection to an InterBase database

ibase_commit
ibase_db_info
Firebird/InterBase 函数
PHP 手册

ibase_connect

(PHP 4, PHP 5)

ibase_connect — Open a connection to an InterBase database

说明

resource ibase_connect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Establishes a connection to an InterBase server.

In case a second call is made to ibase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ibase_close().

参数

database

The database argument has to be a valid path to database file on the server it resides on. If the server is not local, it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection protocol used.

username

The user name. Can be set with the ibase.default_user php.ini directive.

password

The password for username . Can be set with the ibase.default_password php.ini directive.

charset

charset is the default character set for a database.

buffers

buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.

dialect

dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries. Functional only with InterBase 6 and up.

role

Functional only with InterBase 5 and up.

sync

返回值

Returns an InterBase link identifier on success, or FALSE on error.

错误／异常

If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

更新日志

版本 | 说明
4.0.0 | The buffers , dialect and role parameters were added

范例

Example #1 ibase_connect() example

<?php
$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

参见

  • ibase_pconnect() - Open a persistent connection to an InterBase database
  • ibase_close() - Close a connection to an InterBase database

ibase_commit
ibase_db_info
Firebird/InterBase 函数


Request statistics about a database

ibase_connect
ibase_delete_user
Firebird/InterBase 函数
PHP 手册

ibase_db_info

(PHP 5)

ibase_db_info — Request statistics about a database

说明

string ibase_db_info ( resource $service_handle , string $db , int $action [, int $argument=0 ] )
Warning

本函数暂无文档，仅有参数列表。

ibase_connect
ibase_delete_user
Firebird/InterBase 函数


Delete a user from a security database (only for IB6 or later)

ibase_db_info
ibase_drop_db
Firebird/InterBase 函数
PHP 手册

ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_user — Delete a user from a security database (only for IB6 or later)

说明

bool ibase_delete_user ( resource $service_handle , string $user_name )

PHP 4 uses server , dba_user_name and dba_user_password instead of service_handle parameter.

Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_add_user() - Add a user to a security database (only for IB6 or later)
  • ibase_modify_user() - Modify a user to a security database (only for IB6 or later)

ibase_db_info
ibase_drop_db
Firebird/InterBase 函数


Drops a database

ibase_delete_user
ibase_errcode
Firebird/InterBase 函数
PHP 手册

ibase_drop_db

(PHP 5)

ibase_drop_db — Drops a database

说明

bool ibase_drop_db ([ resource $connection=NULL ] )

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server.

参数

connection

An InterBase link identifier. If omitted, the last opened link is assumed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_connect() - Open a connection to an InterBase database
  • ibase_pconnect() - Open a persistent connection to an InterBase database

ibase_delete_user
ibase_errcode
Firebird/InterBase 函数


Return an error code

ibase_drop_db
ibase_errmsg
Firebird/InterBase 函数
PHP 手册

ibase_errcode

(PHP 5)

ibase_errcode — Return an error code

说明

int ibase_errcode ( void )

Returns the error code that resulted from the most recent InterBase function call.

返回值

Returns the error code as an integer, or FALSE if no error occurred.

参见

  • ibase_errmsg() - Return error messages

ibase_drop_db
ibase_errmsg
Firebird/InterBase 函数


Return error messages

ibase_errcode
ibase_execute
Firebird/InterBase 函数
PHP 手册

ibase_errmsg

(PHP 4, PHP 5)

ibase_errmsg — Return error messages

说明

string ibase_errmsg ( void )

Returns the error message that resulted from the most recent InterBase function call.

返回值

Returns the error message as a string, or FALSE if no error occurred.

参见

  • ibase_errcode() - Return an error code

ibase_errcode
ibase_execute
Firebird/InterBase 函数


Execute a previously prepared query

ibase_errmsg
ibase_fetch_assoc
Firebird/InterBase 函数
PHP 手册

ibase_execute

(PHP 4, PHP 5)

ibase_execute — Execute a previously prepared query

说明

resource ibase_execute ( resource $query [, mixed $bind_arg [, mixed $... ]] )

Execute a query prepared by ibase_prepare().

This is a lot more effective than using ibase_query() if you are repeating a same kind of query several times with only some parameters changing.

参数

query

An InterBase query prepared by ibase_prepare().

bind_arg

...

返回值

If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

Note: In PHP 5.0.0 and up, this function returns the number of rows affected by the query (if > 0 and applicable to the statement type). A query that succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent record) will return TRUE.

范例

Example #1 ibase_execute() example

<?php

$dbh = ibase_connect($host, $username, $password);

$updates = array(
    1 => 'Eric',
    5 => 'Filip',
    7 => 'Larry'
);

$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach ($updates as $baz => $bar) {
    ibase_execute($query, $bar, $baz);
}

?>

参见

  • ibase_query() - Execute a query on an InterBase database

ibase_errmsg
ibase_fetch_assoc
Firebird/InterBase 函数


Fetch a result row from a query as an associative array

ibase_execute
ibase_fetch_object
Firebird/InterBase 函数
PHP 手册

ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assoc — Fetch a result row from a query as an associative array

说明

array ibase_fetch_assoc ( resource $result [, int $fetch_flag=0 ] )

Fetch a result row from a query as an associative array.

ibase_fetch_assoc() fetches one row of data from the result . If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using ibase_fetch_row() or use alias names in your query.

参数

result

The result handle.

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

返回值

Returns an associative array that corresponds to the fetched row. Subsequent calls will return the next row in the result set, or FALSE if there are no more rows.

参见

  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_object() - Get an object from a InterBase database

ibase_execute
ibase_fetch_object
Firebird/InterBase 函数


Get an object from a InterBase database

ibase_fetch_assoc
ibase_fetch_row
Firebird/InterBase 函数
PHP 手册

ibase_fetch_object

(PHP 4, PHP 5)

ibase_fetch_object — Get an object from a InterBase database

说明

object ibase_fetch_object ( resource $result_id [, int $fetch_flag=0 ] )

Fetches a row as a pseudo-object from a given result identifier.

Subsequent calls to ibase_fetch_object() return the next row in the result set.

参数

result_id

An InterBase result identifier obtained either by ibase_query() or ibase_execute().

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

返回值

Returns an object with the next row information, or FALSE if there are no more rows.

范例

Example #1 ibase_fetch_object() example

<?php
$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email . "\n";
}
ibase_close($dbh);
?>

参见

  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_assoc() - Fetch a result row from a query as an associative array

ibase_fetch_assoc
ibase_fetch_row
Firebird/InterBase 函数


Fetch a row from an InterBase database

ibase_fetch_object
ibase_field_info
Firebird/InterBase 函数
PHP 手册

ibase_fetch_row

(PHP 4, PHP 5)

ibase_fetch_row — Fetch a row from an InterBase database

说明

array ibase_fetch_row ( resource $result_identifier [, int $fetch_flag=0 ] )

ibase_fetch_row() fetches one row of data from the given result set.

Subsequent calls to ibase_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

参数

result_identifier

An InterBase result identifier.

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 0.

参见

  • ibase_fetch_assoc() - Fetch a result row from a query as an associative array
  • ibase_fetch_object() - Get an object from a InterBase database

ibase_fetch_object
ibase_field_info
Firebird/InterBase 函数


Get information about a field

ibase_fetch_row
ibase_free_event_handler
Firebird/InterBase 函数
PHP 手册

ibase_field_info

(PHP 4, PHP 5)

ibase_field_info — Get information about a field

说明

array ibase_field_info ( resource $result , int $field_number )

Returns an array with information about a field after a select query has been run.

参数

result

An InterBase result identifier.

field_number

Field offset.

返回值

Returns an array with the following keys: name, alias, relation, length and type.

范例

Example #1 ibase_field_info() example

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "name: ". $col_info['name']. "\n";
    echo "alias: ". $col_info['alias']. "\n";
    echo "relation: ". $col_info['relation']. "\n";
    echo "length: ". $col_info['length']. "\n";
    echo "type: ". $col_info['type']. "\n";
}
?>

参见

  • ibase_num_fields() - Get the number of fields in a result set

ibase_fetch_row
ibase_free_event_handler
Firebird/InterBase 函数


Cancels a registered event handler

ibase_field_info
ibase_free_query
Firebird/InterBase 函数
PHP 手册

ibase_free_event_handler

(PHP 5)

ibase_free_event_handler — Cancels a registered event handler

说明

bool ibase_free_event_handler ( resource $event )

This function causes the registered event handler specified by event to be cancelled. The callback function will no longer be called for the events it was registered to handle.

参数

event

An event resource, created by ibase_set_event_handler().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_set_event_handler() - Register a callback function to be called when events are posted

ibase_field_info
ibase_free_query
Firebird/InterBase 函数


Free memory allocated by a prepared query

ibase_free_event_handler
ibase_free_result
Firebird/InterBase 函数
PHP 手册

ibase_free_query

(PHP 4, PHP 5)

ibase_free_query — Free memory allocated by a prepared query

说明

bool ibase_free_query ( resource $query )

Frees a prepared query.

参数

query

A query prepared with ibase_prepare().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_free_event_handler
ibase_free_result
Firebird/InterBase 函数


Free a result set

ibase_free_query
ibase_gen_id
Firebird/InterBase 函数
PHP 手册

ibase_free_result

(PHP 4, PHP 5)

ibase_free_result — Free a result set

说明

bool ibase_free_result ( resource $result_identifier )

Frees a result set.

参数

result_identifier

A result set created by ibase_query() or ibase_execute().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_free_query
ibase_gen_id
Firebird/InterBase 函数


Increments the named generator and returns its new value

ibase_free_result
ibase_maintain_db
Firebird/InterBase 函数
PHP 手册

ibase_gen_id

(PHP 5)

ibase_gen_id — Increments the named generator and returns its new value

说明

mixed ibase_gen_id ( string $generator [, int $increment=1 [, resource $link_identifier=NULL ]] )
Warning

本函数暂无文档，仅有参数列表。

返回值

Returns new generator value as integer, or as string if the value is too big.

ibase_free_result
ibase_maintain_db
Firebird/InterBase 函数


Execute a maintenance command on the database server

ibase_gen_id
ibase_modify_user
Firebird/InterBase 函数
PHP 手册

ibase_maintain_db

(PHP 5)

ibase_maintain_db — Execute a maintenance command on the database server

说明

bool ibase_maintain_db ( resource $service_handle , string $db , int $action [, int $argument=0 ] )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_gen_id
ibase_modify_user
Firebird/InterBase 函数


Modify a user to a security database (only for IB6 or later)

ibase_maintain_db
ibase_name_result
Firebird/InterBase 函数
PHP 手册

ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_user — Modify a user to a security database (only for IB6 or later)

说明

bool ibase_modify_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )
Warning

本函数暂无文档，仅有参数列表。

PHP 4 uses server , dba_user_name and dba_user_password instead of service_handle parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ibase_add_user() - Add a user to a security database (only for IB6 or later)
  • ibase_delete_user() - Delete a user from a security database (only for IB6 or later)

ibase_maintain_db
ibase_name_result
Firebird/InterBase 函数


Assigns a name to a result set

ibase_modify_user
ibase_num_fields
Firebird/InterBase 函数
PHP 手册

ibase_name_result

(PHP 5)

ibase_name_result — Assigns a name to a result set

说明

bool ibase_name_result ( resource $result , string $name )

This function assigns a name to a result set. This name can be used later in UPDATE|DELETE ... WHERE CURRENT OF name statements.

参数

result

An InterBase result set.

name

The name to be assigned.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ibase_name_result() example

<?php
$result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
ibase_name_result($result, "my_cursor");

$updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

for ($i = 0; ibase_fetch_row($result); ++$i) {
    ibase_execute($updateqry, $i);
}
?>

参见

  • ibase_prepare() - Prepare a query for later binding of parameter placeholders and execution
  • ibase_execute() - Execute a previously prepared query

ibase_modify_user
ibase_num_fields
Firebird/InterBase 函数


Get the number of fields in a result set

ibase_name_result
ibase_num_params
Firebird/InterBase 函数
PHP 手册

ibase_num_fields

(PHP 4, PHP 5)

ibase_num_fields — Get the number of fields in a result set

说明

int ibase_num_fields ( resource $result_id )

Get the number of fields in a result set.

参数

result_id

An InterBase result identifier.

返回值

Returns the number of fields as an integer.

范例

Example #1 ibase_num_fields() example

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "name: " . $col_info['name'] . "\n";
    echo "alias: " . $col_info['alias'] . "\n";
    echo "relation: " . $col_info['relation'] . "\n";
    echo "length: " . $col_info['length'] . "\n";
    echo "type: " . $col_info['type'] . "\n";
}
?>

参见

  • ibase_field_info() - Get information about a field

ibase_name_result
ibase_num_params
Firebird/InterBase 函数


Return the number of parameters in a prepared query

ibase_num_fields
ibase_param_info
Firebird/InterBase 函数
PHP 手册

ibase_num_params

(PHP 5)

ibase_num_params — Return the number of parameters in a prepared query

说明

int ibase_num_params ( resource $query )

This function returns the number of parameters in the prepared query specified by query . This is the number of binding arguments that must be present when calling ibase_execute().

参数

query

The prepared query handle.

返回值

Returns the number of parameters as an integer.

参见

  • ibase_prepare() - Prepare a query for later binding of parameter placeholders and execution
  • ibase_param_info() - Return information about a parameter in a prepared query

ibase_num_fields
ibase_param_info
Firebird/InterBase 函数


Return information about a parameter in a prepared query

ibase_num_params
ibase_pconnect
Firebird/InterBase 函数
PHP 手册

ibase_param_info

(PHP 5)

ibase_param_info — Return information about a parameter in a prepared query

说明

array ibase_param_info ( resource $query , int $param_number )

Returns an array with information about a parameter after a query has been prepared.

参数

query

An InterBase prepared query handle.

param_number

Parameter offset.

返回值

Returns an array with the following keys: name, alias, relation, length and type.

参见

  • ibase_field_info() - Get information about a field
  • ibase_num_params() - Return the number of parameters in a prepared query

ibase_num_params
ibase_pconnect
Firebird/InterBase 函数


Open a persistent connection to an InterBase database

ibase_param_info
ibase_prepare
Firebird/InterBase 函数
PHP 手册

ibase_pconnect

(PHP 4, PHP 5)

ibase_pconnect — Open a persistent connection to an InterBase database

说明

resource ibase_pconnect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Opens a persistent connection to an InterBase database.

ibase_pconnect() acts very much like ibase_connect() with two major differences.

First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the InterBase server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ibase_close() will not close links established by ibase_pconnect()). This type of link is therefore called 'persistent'.

参数

database

The database argument has to be a valid path to database file on the server it resides on. If the server is not local, it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection protocol used.

username

The user name. Can be set with the ibase.default_user php.ini directive.

password

The password for username . Can be set with the ibase.default_password php.ini directive.

charset

charset is the default character set for a database.

buffers

buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.

dialect

dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries. Functional only with InterBase 6 and up.

role

Functional only with InterBase 5 and up.

sync

返回值

Returns an InterBase link identifier on success, or FALSE on error.

更新日志

版本 | 说明
4.0.0 | The buffers , dialect and role parameters were added

参见

  • ibase_close() - Close a connection to an InterBase database
  • ibase_connect() - Open a connection to an InterBase database

ibase_param_info
ibase_prepare
Firebird/InterBase 函数


Prepare a query for later binding of parameter placeholders and execution

ibase_pconnect
ibase_query
Firebird/InterBase 函数
PHP 手册

ibase_prepare

(PHP 4, PHP 5)

ibase_prepare — Prepare a query for later binding of parameter placeholders and execution

说明

resource ibase_prepare ( string $query )
resource ibase_prepare ( resource $link_identifier , string $query )
resource ibase_prepare ( resource $link_identifier , string $trans , string $query )

Prepare a query for later binding of parameter placeholders and execution (via ibase_execute()).

参数

query

An InterBase query.

返回值

Returns a prepared query handle, or FALSE on error.

ibase_pconnect
ibase_query
Firebird/InterBase 函数


Execute a query on an InterBase database

ibase_prepare
ibase_restore
Firebird/InterBase 函数
PHP 手册

ibase_query

(PHP 4, PHP 5)

ibase_query — Execute a query on an InterBase database

说明

resource ibase_query ([ resource $link_identifier ], string $query [, int $bind_args ] )

Performs a query on an InterBase database.

参数

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

query

An InterBase query.

bind_args

返回值

If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

Note: In PHP 5.0.0 and up, this function will return the number of rows affected by the query for INSERT, UPDATE and DELETE statements. In order to retain backward compatibility, it will return TRUE for these statements if the query succeeded without affecting any rows.

错误／异常

If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

范例

Example #1 ibase_query() example

<?php

$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';

$sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

参见

  • ibase_errmsg() - Return error messages
  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_object() - Get an object from a InterBase database
  • ibase_free_result() - Free a result set

ibase_prepare
ibase_restore
Firebird/InterBase 函数


Initiates a restore task in the service manager and returns immediately

ibase_query
ibase_rollback_ret
Firebird/InterBase 函数
PHP 手册

ibase_restore

(PHP 5)

ibase_restore — Initiates a restore task in the service manager and returns immediately

说明

mixed ibase_restore ( resource $service_handle , string $source_file , string $dest_db [, int $options=0 [, bool $verbose=false ]] )
Warning

本函数暂无文档，仅有参数列表。

ibase_query
ibase_rollback_ret
Firebird/InterBase 函数


Roll back a transaction without closing it

ibase_restore
ibase_rollback
Firebird/InterBase 函数
PHP 手册

ibase_rollback_ret

(PHP 5)

ibase_rollback_ret — Roll back a transaction without closing it

说明

bool ibase_rollback_ret ([ resource $link_or_trans_identifier=NULL ] )

Rolls back a transaction without closing it.

参数

link_or_trans_identifier

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. The transaction context will be retained, so statements executed from within this transaction will not be invalidated.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_restore
ibase_rollback
Firebird/InterBase 函数


Roll back a transaction

ibase_rollback_ret
ibase_server_info
Firebird/InterBase 函数
PHP 手册

ibase_rollback

(PHP 4, PHP 5)

ibase_rollback — Roll back a transaction

说明

bool ibase_rollback ([ resource $link_or_trans_identifier=NULL ] )

Rolls back a transaction.

参数

link_or_trans_identifier

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_rollback_ret
ibase_server_info
Firebird/InterBase 函数


Request information about a database server

ibase_rollback
ibase_service_attach
Firebird/InterBase 函数
PHP 手册

ibase_server_info

(PHP 5)

ibase_server_info — Request information about a database server

说明

string ibase_server_info ( resource $service_handle , int $action )
Warning

本函数暂无文档，仅有参数列表。

ibase_rollback
ibase_service_attach
Firebird/InterBase 函数


Connect to the service manager

ibase_server_info
ibase_service_detach
Firebird/InterBase 函数
PHP 手册

ibase_service_attach

(PHP 5)

ibase_service_attach — Connect to the service manager

说明

resource ibase_service_attach ( string $host , string $dba_username , string $dba_password )
Warning

本函数暂无文档，仅有参数列表。

ibase_server_info
ibase_service_detach
Firebird/InterBase 函数


Disconnect from the service manager

ibase_service_attach
ibase_set_event_handler
Firebird/InterBase 函数
PHP 手册

ibase_service_detach

(PHP 5)

ibase_service_detach — Disconnect from the service manager

说明

bool ibase_service_detach ( resource $service_handle )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ibase_service_attach
ibase_set_event_handler
Firebird/InterBase 函数


Register a callback function to be called when events are posted

ibase_service_detach
ibase_timefmt
Firebird/InterBase 函数
PHP 手册

ibase_set_event_handler

(PHP 5)

ibase_set_event_handler — Register a callback function to be called when events are posted

说明

resource ibase_set_event_handler ( callback $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )
resource ibase_set_event_handler ( resource $connection , callback $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )

This function registers a PHP user function as event handler for the specified events.

参数

event_handler

The callback is called with the event name and the link resource as arguments whenever one of the specified events is posted by the database.

The callback must return FALSE if the event handler should be canceled. Any other return value is ignored. This function accepts up to 15 event arguments.

event_name1

An event name.

event_name2

At most 15 events allowed.

返回值

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

范例

Example #1 ibase_set_event_handler() example

<?php

function event_handler($event_name, $link)
{
    if ($event_name == "NEW ORDER") {
        // process new order
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name == "DB_SHUTDOWN") {
        // free event handler
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

参见

  • ibase_free_event_handler() - Cancels a registered event handler
  • ibase_wait_event() - Wait for an event to be posted by the database

ibase_service_detach
ibase_timefmt
Firebird/InterBase 函数


Sets the format of timestamp, date and time type columns returned from queries

ibase_set_event_handler
ibase_trans
Firebird/InterBase 函数
PHP 手册

ibase_timefmt

(PHP 4)

ibase_timefmt — Sets the format of timestamp, date and time type columns returned from queries

说明

bool ibase_timefmt ( string $format [, int $columntype ] )

Sets the format of timestamp, date or time type columns returned from queries.

You can set defaults for these formats with the PHP configuration directives ibase.timestampformat, ibase.dateformat and ibase.timeformat.

Note: This function has been removed from PHP 5, use ini_set() instead.

参数

format

Internally, the columns are formatted by c-function strftime(), so refer to its documentation regarding to the format of the string.

columntype

columntype is one of the constants IBASE_TIMESTAMP, IBASE_DATE and IBASE_TIME. If omitted, defaults to IBASE_TIMESTAMP for backwards compatibility.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ibase_timefmt() example

<?php
/* InterBase 6 TIME-type columns will be returned in
 * the form '05 hours 37 minutes'. */
ibase_timefmt("%H hours %M minutes", IBASE_TIME);
?>

ibase_set_event_handler
ibase_trans
Firebird/InterBase 函数


Begin a transaction

ibase_timefmt
ibase_wait_event
Firebird/InterBase 函数
PHP 手册

ibase_trans

(PHP 4, PHP 5)

ibase_trans — Begin a transaction

说明

resource ibase_trans ([ int $trans_args [, resource $link_identifier ]] )

Begins a transaction.

Note: The behaviour of this function has been changed in PHP 5.0.0. The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

Note: In PHP 5.0.0. and up, this function will accept multiple trans_args and link_identifier arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!
If you use transactions over multiple databases, you will have to specify both the link_id and transaction_id in calls to ibase_query() and ibase_prepare().

参数

trans_args

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

返回值

Returns a transaction handle, or FALSE on error.

ibase_timefmt
ibase_wait_event
Firebird/InterBase 函数


Wait for an event to be posted by the database

ibase_trans
Informix
Firebird/InterBase 函数
PHP 手册

ibase_wait_event

(PHP 5)

ibase_wait_event — Wait for an event to be posted by the database

说明

string ibase_wait_event ( string $event_name1 [, string $event_name2 [, string $... ]] )
string ibase_wait_event ( resource $connection , string $event_name1 [, string $event_name2 [, string $... ]] )

This function suspends execution of the script until one of the specified events is posted by the database. The name of the event that was posted is returned. This function accepts up to 15 event arguments.

参数

event_name1

The event name.

event_name2

...

返回值

Returns the name of the event that was posted.

参见

  • ibase_set_event_handler() - Register a callback function to be called when events are posted
  • ibase_free_event_handler() - Cancels a registered event handler

ibase_trans
Informix
Firebird/InterBase 函数


Informix

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Informix 函数
    • ifx_affected_rows — Get number of rows affected by a query
    • ifx_blobinfile_mode — Set the default blob mode for all select queries
    • ifx_byteasvarchar — Set the default byte mode
    • ifx_close — Close Informix connection
    • ifx_connect — Open Informix server connection
    • ifx_copy_blob — Duplicates the given blob object
    • ifx_create_blob — Creates an blob object
    • ifx_create_char — Creates an char object
    • ifx_do — Execute a previously prepared SQL-statement
    • ifx_error — Returns error code of last Informix call
    • ifx_errormsg — Returns error message of last Informix call
    • ifx_fetch_row — Get row as an associative array
    • ifx_fieldproperties — List of SQL fieldproperties
    • ifx_fieldtypes — List of Informix SQL fields
    • ifx_free_blob — Deletes the blob object
    • ifx_free_char — Deletes the char object
    • ifx_free_result — Releases resources for the query
    • ifx_get_blob — Return the content of a blob object
    • ifx_get_char — Return the content of the char object
    • ifx_getsqlca — Get the contents of sqlca.sqlerrd[0..5] after a query
    • ifx_htmltbl_result — Formats all rows of a query into a HTML table
    • ifx_nullformat — Sets the default return value on a fetch row
    • ifx_num_fields — Returns the number of columns in the query
    • ifx_num_rows — Count the rows already fetched from a query
    • ifx_pconnect — Open persistent Informix connection
    • ifx_prepare — Prepare an SQL-statement for execution
    • ifx_query — Send Informix query
    • ifx_textasvarchar — Set the default text mode
    • ifx_update_blob — Updates the content of the blob object
    • ifx_update_char — Updates the content of the char object
    • ifxus_close_slob — Deletes the slob object
    • ifxus_create_slob — Creates an slob object and opens it
    • ifxus_free_slob — Deletes the slob object
    • ifxus_open_slob — Opens an slob object
    • ifxus_read_slob — Reads nbytes of the slob object
    • ifxus_seek_slob — Sets the current file or seek position
    • ifxus_tell_slob — Returns the current file or seek position
    • ifxus_write_slob — Writes a string into the slob object
ibase_wait_event
简介
与具体数据库系统相关的扩展


简介

The Informix driver for Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x and IDS 2000 is implemented in "ifx.ec" and "php_informix.h" in the informix extension directory. IDS 7.x support is fairly complete, with full support for BYTE and TEXT columns. IUS 9.x support is partly finished: the new data types are there, but SLOB and CLOB support is still under construction.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.2.1.

Informix
安装/配置
Informix


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Informix


需求

Note: Configuration notes
You need a version of ESQL/C to compile the PHP Informix driver. ESQL/C versions from 7.2x on should be OK. ESQL/C is now part of the Informix Client SDK.
Make sure that the "INFORMIXDIR" variable has been set, and that $INFORMIXDIR/bin is in your PATH before you run the "configure" script.

安装/配置
安装
安装/配置


安装

To be able to use the functions defined in this module you must compile your PHP interpreter using the configure line --with-informix[=DIR], where DIR is the Informix base install directory, defaults to nothing.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Note: Make sure that the Informix environment variables INFORMIXDIR and INFORMIXSERVER are available to the PHP ifx driver, and that the INFORMIX bin directory is in the PATH. Check this by running a script that contains a call to phpinfo() before you start testing. The phpinfo() output should list these environment variables. This is true for both CGI php and Apache mod_php. You may have to set these environment variables in your Apache startup script.
The Informix shared libraries should also be available to the loader (check LD_LIBRARY_PATH or ld.so.conf/ldconfig).

Note: Some notes on the use of BLOBs (TEXT and BYTE columns)
BLOBs are normally addressed by BLOB identifiers. Select queries return a "blob id" for every BYTE and TEXT column. You can get at the contents with "string_var = ifx_get_blob($blob_id);" if you choose to get the BLOBs in memory (with: "ifx_blobinfile(0);"). If you prefer to receive the content of BLOB columns in a file, use "ifx_blobinfile(1);", and "ifx_get_blob($blob_id);" will get you the filename. Use normal file I/O to get at the blob contents.
For insert/update queries you must create these "blob id's" yourself with "ifx_create_blob();". You then plug the blob id's into an array, and replace the blob columns with a question mark (?) in the query string. For updates/inserts, you are responsible for setting the blob contents with ifx_update_blob().
The behaviour of BLOB columns can be altered by configuration variables that also can be set at runtime:
configuration variable: ifx.textasvarchar
configuration variable: ifx.byteasvarchar
runtime functions:
ifx_textasvarchar(0): use blob id's for select queries with TEXT columns
ifx_byteasvarchar(0): use blob id's for select queries with BYTE columns
ifx_textasvarchar(1): return TEXT columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.
ifx_byteasvarchar(1): return BYTE columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.
configuration variable: ifx.blobinfile
runtime function:
ifx_blobinfile_mode(0): return BYTE columns in memory, the blob id lets you get at the contents.
ifx_blobinfile_mode(1): return BYTE columns in a file, the blob id lets you get at the file name.
If you set ifx_text/byteasvarchar to 1, you can use TEXT and BYTE columns in select queries just like normal (but rather long) VARCHAR fields. Since all strings are "counted" in PHP, this remains "binary safe". It is up to you to handle this correctly. The returned data can contain anything, you are responsible for the contents.
If you set ifx_blobinfile to 1, use the file name returned by ifx_get_blob(..) to get at the blob contents. Note that in this case YOU ARE RESPONSIBLE FOR DELETING THE TEMPORARY FILES CREATED BY INFORMIX when fetching the row. Every new row fetched will create new temporary files for every BYTE column.
The location of the temporary files can be influenced by the environment variable "blobdir", default is "." (the current directory). Something like: putenv(blobdir=tmpblob"); will ease the cleaning up of temp files accidentally left behind (their names all start with "blb").

Note: Automatically trimming "char" (SQLCHAR and SQLNCHAR) data
This can be set with the configuration variable
ifx.charasvarchar: if set to 1 trailing spaces will be automatically trimmed, to save you some "chopping".

Note: NULL values
The configuration variable ifx.nullformat (and the runtime function ifx_nullformat()) when set to TRUE will return NULL columns as the string "NULL", when set to FALSE they return the empty string. This allows you to discriminate between NULL columns and empty columns.

Informix configuration options
Name | Default | Changeable | Changelog
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Removed in PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Removed in PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Removed in PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Removed in PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Removed in PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Removed in PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Removed in PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Removed in PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Removed in PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Removed in PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Removed in PHP 5.2.1.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

ifx.allow_persistent boolean

Whether to allow persistent Informix connections.

ifx.max_persistent integer

The maximum number of persistent Informix connections per process.

ifx.max_links integer

The maximum number of Informix connections per process, including persistent connections.

ifx.default_host string

The default host to connect to when no host is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in 安全模式.

ifx.default_user string

The default user id to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in 安全模式.

ifx.default_password string

The default password to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in 安全模式.

ifx.blobinfile boolean

Set to TRUE if you want to return blob columns in a file, FALSE if you want them in memory. You can override the setting at runtime with ifx_blobinfile_mode().

ifx.textasvarchar boolean

Set to TRUE if you want to return TEXT columns as normal strings in select statements, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.byteasvarchar boolean

Set to TRUE if you want to return BYTE columns as normal strings in select queries, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.charasvarchar boolean

Set to TRUE if you want to trim trailing spaces from CHAR columns when fetching them.

ifx.nullformat boolean

Set to TRUE if you want to return NULL columns as the literal string "NULL", FALSE if you want them returned as the empty string "". You can override this setting at runtime with ifx_nullformat().

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

IFX_SCROLL (integer)
IFX_HOLD (integer)
IFX_LO_RDONLY (integer)
IFX_LO_WRONLY (integer)
IFX_LO_APPEND (integer)
IFX_LO_RDWR (integer)
IFX_LO_BUFFER (integer)
IFX_LO_NOBUFFER (integer)
资源类型
Informix 函数
Informix


Informix 函数

Table of Contents

  • ifx_affected_rows — Get number of rows affected by a query
  • ifx_blobinfile_mode — Set the default blob mode for all select queries
  • ifx_byteasvarchar — Set the default byte mode
  • ifx_close — Close Informix connection
  • ifx_connect — Open Informix server connection
  • ifx_copy_blob — Duplicates the given blob object
  • ifx_create_blob — Creates an blob object
  • ifx_create_char — Creates an char object
  • ifx_do — Execute a previously prepared SQL-statement
  • ifx_error — Returns error code of last Informix call
  • ifx_errormsg — Returns error message of last Informix call
  • ifx_fetch_row — Get row as an associative array
  • ifx_fieldproperties — List of SQL fieldproperties
  • ifx_fieldtypes — List of Informix SQL fields
  • ifx_free_blob — Deletes the blob object
  • ifx_free_char — Deletes the char object
  • ifx_free_result — Releases resources for the query
  • ifx_get_blob — Return the content of a blob object
  • ifx_get_char — Return the content of the char object
  • ifx_getsqlca — Get the contents of sqlca.sqlerrd[0..5] after a query
  • ifx_htmltbl_result — Formats all rows of a query into a HTML table
  • ifx_nullformat — Sets the default return value on a fetch row
  • ifx_num_fields — Returns the number of columns in the query
  • ifx_num_rows — Count the rows already fetched from a query
  • ifx_pconnect — Open persistent Informix connection
  • ifx_prepare — Prepare an SQL-statement for execution
  • ifx_query — Send Informix query
  • ifx_textasvarchar — Set the default text mode
  • ifx_update_blob — Updates the content of the blob object
  • ifx_update_char — Updates the content of the char object
  • ifxus_close_slob — Deletes the slob object
  • ifxus_create_slob — Creates an slob object and opens it
  • ifxus_free_slob — Deletes the slob object
  • ifxus_open_slob — Opens an slob object
  • ifxus_read_slob — Reads nbytes of the slob object
  • ifxus_seek_slob — Sets the current file or seek position
  • ifxus_tell_slob — Returns the current file or seek position
  • ifxus_write_slob — Writes a string into the slob object
预定义常量
ifx_affected_rows
Informix


Get number of rows affected by a query

Informix 函数
ifx_blobinfile_mode
Informix 函数
PHP 手册

ifx_affected_rows

(PHP 4, PHP <=5.2.0)

ifx_affected_rows — Get number of rows affected by a query

说明

int ifx_affected_rows ( resource $result_id )

Returns the number of rows affected by a query associated with result_id .

For inserts, updates and deletes the number is the real number (sqlerrd[2]) of affected rows. For selects it is an estimate (sqlerrd[0]). Don't rely on it. The database server can never return the actual number of rows that will be returned by a SELECT because it has not even begun fetching them at this stage (just after the "PREPARE" when the optimizer has determined the query plan).

Useful after ifx_prepare() to limit queries to reasonable result sets.

参数

result_id

A valid result id returned by ifx_query() or ifx_prepare().

返回值

Returns the number of rows as an integer.

范例

Example #1 Informix affected rows

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
?>

参见

  • ifx_num_rows() - Count the rows already fetched from a query

Informix 函数
ifx_blobinfile_mode
Informix 函数


Set the default blob mode for all select queries

ifx_affected_rows
ifx_byteasvarchar
Informix 函数
PHP 手册

ifx_blobinfile_mode

(PHP 4, PHP <=5.2.0)

ifx_blobinfile_mode — Set the default blob mode for all select queries

说明

bool ifx_blobinfile_mode ( int $mode )

Set the default blob mode for all select queries.

参数

mode

Mode "0" means save Byte-Blobs in memory, and mode "1" means save Byte-Blobs in a file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ifx_affected_rows
ifx_byteasvarchar
Informix 函数


Set the default byte mode

ifx_blobinfile_mode
ifx_close
Informix 函数
PHP 手册

ifx_byteasvarchar

(PHP 4, PHP <=5.2.0)

ifx_byteasvarchar — Set the default byte mode

说明

bool ifx_byteasvarchar ( int $mode )

Sets the default byte mode for all select-queries.

参数

mode

Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_textasvarchar() - Set the default text mode

ifx_blobinfile_mode
ifx_close
Informix 函数


Close Informix connection

ifx_byteasvarchar
ifx_connect
Informix 函数
PHP 手册

ifx_close

(PHP 4, PHP <=5.2.0)

ifx_close — Close Informix connection

说明

bool ifx_close ([ resource $link_identifier ] )

ifx_close() closes the link to an Informix database that's associated with the specified link identifier.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

ifx_close() will not close persistent links generated by ifx_pconnect().

参数

link_identifier

The link identifier. If not specified, the last opened link is assumed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Closing a Informix connection

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... some queries and stuff ... */
ifx_close($conn_id);
?>

参见

  • ifx_connect() - Open Informix server connection
  • ifx_pconnect() - Open persistent Informix connection

ifx_byteasvarchar
ifx_connect
Informix 函数


Open Informix server connection

ifx_close
ifx_copy_blob
Informix 函数
PHP 手册

ifx_connect

(PHP 4, PHP <=5.2.0)

ifx_connect — Open Informix server connection

说明

resource ifx_connect ([ string $database [, string $userid [, string $password ]]] )

ifx_connect() establishes a connection to an Informix server.

In case a second call is made to ifx_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ifx_close().

参数

All of the arguments are optional, and if they're missing, defaults are taken from values supplied in php.ini (ifx.default_host for the host (Informix libraries will use INFORMIXSERVER environment value if not defined), ifx.default_user for user, ifx.default_password for the password (none if not defined).

database

The database name, as a string.

userid

The username, as a string.

password

The password, as a string.

返回值

Returns a connection identifier on success, or FALSE on error.

范例

Example #1 Connect to a Informix database

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

参见

  • ifx_pconnect() - Open persistent Informix connection
  • ifx_close() - Close Informix connection

ifx_close
ifx_copy_blob
Informix 函数


Duplicates the given blob object

ifx_connect
ifx_create_blob
Informix 函数
PHP 手册

ifx_copy_blob

(PHP 4, PHP <=5.2.0)

ifx_copy_blob — Duplicates the given blob object

说明

int ifx_copy_blob ( int $bid )

Duplicates the given blob object.

参数

bid

A BLOB identifier.

返回值

Returns the new blob object-id, or FALSE on errors.

参见

  • ifx_create_blob() - Creates an blob object
  • ifx_free_blob() - Deletes the blob object

ifx_connect
ifx_create_blob
Informix 函数


Creates an blob object

ifx_copy_blob
ifx_create_char
Informix 函数
PHP 手册

ifx_create_blob

(PHP 4, PHP <=5.2.0)

ifx_create_blob — Creates an blob object

说明

int ifx_create_blob ( int $type , int $mode , string $param )

Creates a blob object.

参数

type

1 = TEXT, 0 = BYTE

mode

0 = blob-object holds the content in memory, 1 = blob-object holds the content in file.

param

if mode = 0: pointer to the content, if mode = 1: pointer to the filestring.

返回值

Returns the new BLOB object-id, or FALSE on errors.

参见

  • ifx_copy_blob() - Duplicates the given blob object
  • ifx_free_blob() - Deletes the blob object

ifx_copy_blob
ifx_create_char
Informix 函数


Creates an char object

ifx_create_blob
ifx_do
Informix 函数
PHP 手册

ifx_create_char

(PHP 4, PHP <=5.2.0)

ifx_create_char — Creates an char object

说明

int ifx_create_char ( string $param )

Creates an char object.

参数

param

The char content.

返回值

Returns the new char object id, or FALSE on errors.

参见

  • ifx_free_char() - Deletes the char object

ifx_create_blob
ifx_do
Informix 函数


Execute a previously prepared SQL-statement

ifx_create_char
ifx_error
Informix 函数
PHP 手册

ifx_do

(PHP 4, PHP <=5.2.0)

ifx_do — Execute a previously prepared SQL-statement

说明

bool ifx_do ( resource $result_id )

Executes a previously prepared query or opens a cursor for it.

Does NOT free result_id on error.

Also sets the real number of ifx_affected_rows() for non-select statements for retrieval by ifx_affected_rows().

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

Example #1 ifx_do() Example

<?php
$conn = fx_connect( "db", "user", "password" );
$result = ifx_prepare("SELECT customer_num, company FROM customer", $conn);
ifx_do($result);
?>

参见

  • ifx_prepare() - Prepare an SQL-statement for execution

ifx_create_char
ifx_error
Informix 函数


Returns error code of last Informix call

ifx_do
ifx_errormsg
Informix 函数
PHP 手册

ifx_error

(PHP 4, PHP <=5.2.0)

ifx_error — Returns error code of last Informix call

说明

string ifx_error ([ resource $link_identifier ] )

Returns in a string one character describing the general results of a statement and both SQLSTATE and SQLCODE associated with the most recent SQL statement executed.

参数

link_identifier

The link identifier.

返回值

The Informix error codes (SQLSTATE & SQLCODE) formatted as x [SQLSTATE = aa bbb SQLCODE=cccc].

where x = space : no error

E : error

N : no more data

W : warning

? : undefined

If the "x" character is anything other than space, SQLSTATE and SQLCODE describe the error in more detail.

See the Informix manual for the description of SQLSTATE and SQLCODE

参见

  • ifx_errormsg() - Returns error message of last Informix call

ifx_do
ifx_errormsg
Informix 函数


Returns error message of last Informix call

ifx_error
ifx_fetch_row
Informix 函数
PHP 手册

ifx_errormsg

(PHP 4, PHP <=5.2.0)

ifx_errormsg — Returns error message of last Informix call

说明

string ifx_errormsg ([ int $errorcode ] )

Returns the Informix error message associated with the most recent Informix error.

参数

errorcode

If specified, the function will return the message corresponding to the specified code.

返回值

Return the error message, as a string.

范例

Example #1 ifx_errormsg() example

printf("%s\n&lt;br>", ifx_errormsg(-201));

参见

  • ifx_error() - Returns error code of last Informix call

ifx_error
ifx_fetch_row
Informix 函数


Get row as an associative array

ifx_errormsg
ifx_fieldproperties
Informix 函数
PHP 手册

ifx_fetch_row

(PHP 4, PHP <=5.2.0)

ifx_fetch_row — Get row as an associative array

说明

array ifx_fetch_row ( resource $result_id [, mixed $position ] )

Fetches one row of data from the result associated with the specified result identifier.

Subsequent calls to ifx_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

position

An optional parameter for a "fetch" operation on "scroll" cursors: NEXT, PREVIOUS, CURRENT, FIRST, LAST or a number. If you specify a number, an "absolute" row fetch is executed. This parameter is optional, and only valid for SCROLL cursors.

返回值

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Blob columns are returned as integer blob id values for use in ifx_get_blob() unless you have used ifx_textasvarchar(1) or ifx_byteasvarchar(1), in which case blobs are returned as string values.

范例

Example #1 Informix fetch rows

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do ($rid)) {
   /* ... error ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>

ifx_errormsg
ifx_fieldproperties
Informix 函数


List of SQL fieldproperties

ifx_fetch_row
ifx_fieldtypes
Informix 函数
PHP 手册

ifx_fieldproperties

(PHP 4, PHP <=5.2.0)

ifx_fieldproperties — List of SQL fieldproperties

说明

array ifx_fieldproperties ( resource $result_id )

Returns the Informix SQL fieldproperties of every field in the query as an associative array. Properties are encoded as: "SQLTYPE;length;precision;scale;ISNULLABLE" where SQLTYPE = the Informix type like "SQLVCHAR" etc. and ISNULLABLE = "Y" or "N".

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

Returns an associative array with fieldnames as key and the SQL fieldproperties as data for a query with result_id . Returns FALSE on errors.

范例

Example #1 Informix SQL fieldproperties

<?php
$properties = ifx_fieldproperties($resultid);
if (!isset($properties)) {
    /* ... error ... */
}
foreach ($properties as $fname => $val) {
    echo "$fname:\t property = $val\n";
}
?>

参见

  • ifx_fieldtypes() - List of Informix SQL fields

ifx_fetch_row
ifx_fieldtypes
Informix 函数


List of Informix SQL fields

ifx_fieldproperties
ifx_free_blob
Informix 函数
PHP 手册

ifx_fieldtypes

(PHP 4, PHP <=5.2.0)

ifx_fieldtypes — List of Informix SQL fields

说明

array ifx_fieldtypes ( resource $result_id )

Returns an associative array with fieldnames as key and the SQL fieldtypes as data for the query associated with result_id .

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

Returns an associative array with fieldnames as key and the SQL fieldtypes as data for query with result_id . Returns FALSE on error.

范例

Example #1 Fieldnames and SQL fieldtypes

<?php
$types = ifx_fieldtypes($resultid);
if (is_array($types)) {
    foreach ($types as $fname => $val) {
        echo "$fname:\t type = $val\n";
    }
}
?>

参见

  • ifx_fieldproperties() - List of SQL fieldproperties

ifx_fieldproperties
ifx_free_blob
Informix 函数


Deletes the blob object

ifx_fieldtypes
ifx_free_char
Informix 函数
PHP 手册

ifx_free_blob

(PHP 4, PHP <=5.2.0)

ifx_free_blob — Deletes the blob object

说明

bool ifx_free_blob ( int $bid )

Deletes the blobobject for the given blob object-id.

参数

bid

The BLOB object id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_create_blob() - Creates an blob object

ifx_fieldtypes
ifx_free_char
Informix 函数


Deletes the char object

ifx_free_blob
ifx_free_result
Informix 函数
PHP 手册

ifx_free_char

(PHP 4, PHP <=5.2.0)

ifx_free_char — Deletes the char object

说明

bool ifx_free_char ( int $bid )

Deletes the charobject for the given char object-id.

参数

bid

The char object id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_create_char() - Creates an char object

ifx_free_blob
ifx_free_result
Informix 函数


Releases resources for the query

ifx_free_char
ifx_get_blob
Informix 函数
PHP 手册

ifx_free_result

(PHP 4, PHP <=5.2.0)

ifx_free_result — Releases resources for the query

说明

bool ifx_free_result ( resource $result_id )

Releases resources for the query associated with result_id .

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_do() - Execute a previously prepared SQL-statement

ifx_free_char
ifx_get_blob
Informix 函数


Return the content of a blob object

ifx_free_result
ifx_get_char
Informix 函数
PHP 手册

ifx_get_blob

(PHP 4, PHP <=5.2.0)

ifx_get_blob — Return the content of a blob object

说明

string ifx_get_blob ( int $bid )

Returns the content of the blob object.

参数

bid

The BLOB object id.

返回值

The contents of the BLOB as a string, or FALSE on errors.

参见

  • ifx_get_char() - Return the content of the char object

ifx_free_result
ifx_get_char
Informix 函数


Return the content of the char object

ifx_get_blob
ifx_getsqlca
Informix 函数
PHP 手册

ifx_get_char

(PHP 4, PHP <=5.2.0)

ifx_get_char — Return the content of the char object

说明

string ifx_get_char ( int $bid )

Returns the content of the char object.

参数

bid

The char object-id.

返回值

Returns the contents as a string, or FALSE on errors.

参见

  • ifx_get_blob() - Return the content of a blob object

ifx_get_blob
ifx_getsqlca
Informix 函数


Get the contents of sqlca.sqlerrd[0..5] after a query

ifx_get_char
ifx_htmltbl_result
Informix 函数
PHP 手册

ifx_getsqlca

(PHP 4, PHP <=5.2.0)

ifx_getsqlca — Get the contents of sqlca.sqlerrd[0..5] after a query

说明

array ifx_getsqlca ( resource $result_id )

Returns a pseudo-row with sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] after the query associated with result_id .

For inserts, updates and deletes the values returned are those as set by the server after executing the query. This gives access to the number of affected rows and the serial insert value. For SELECTs the values are those saved after the PREPARE statement. This gives access to the *estimated* number of affected rows. The use of this function saves the overhead of executing a SELECT dbinfo('sqlca.sqlerrdx') query, as it retrieves the values that were saved by the ifx driver at the appropriate moment.

参数

result_id

result_id is a valid result id returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

Returns an associative array with the following entries: sqlerrd0, sqlerrd1, sqlerrd2, sqlerrd3, sqlerrd4 and sqlerrd5.

范例

Example #1 Retrieve Informix sqlca.sqlerrd[x] values

<?php
/* assume the first column of 'sometable' is a serial */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... error ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "The serial value of the inserted row is : $serial_value<br />\n";
?>

ifx_get_char
ifx_htmltbl_result
Informix 函数


Formats all rows of a query into a HTML table

ifx_getsqlca
ifx_nullformat
Informix 函数
PHP 手册

ifx_htmltbl_result

(PHP 4, PHP <=5.2.0)

ifx_htmltbl_result — Formats all rows of a query into a HTML table

说明

int ifx_htmltbl_result ( resource $result_id [, string $html_table_options ] )

Formats and prints all rows of the result_id query into a HTML table.

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

html_table_options

This optional argument is a string of <table> tag options.

返回值

Returns the number of fetched rows, or FALSE on errors.

范例

Example #1 Informix results as HTML table

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do($rid)) {
    /* ... error ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>

ifx_getsqlca
ifx_nullformat
Informix 函数


Sets the default return value on a fetch row

ifx_htmltbl_result
ifx_num_fields
Informix 函数
PHP 手册

ifx_nullformat

(PHP 4, PHP <=5.2.0)

ifx_nullformat — Sets the default return value on a fetch row

说明

bool ifx_nullformat ( int $mode )

Sets the default return value of a NULL-value on a fetch row.

参数

mode

Mode "0" returns "", and mode "1" returns "NULL".

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ifx_htmltbl_result
ifx_num_fields
Informix 函数


Returns the number of columns in the query

ifx_nullformat
ifx_num_rows
Informix 函数
PHP 手册

ifx_num_fields

(PHP 4, PHP <=5.2.0)

ifx_num_fields — Returns the number of columns in the query

说明

int ifx_num_fields ( resource $result_id )

After preparing or executing a query, this call gives you the number of columns in the query.

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

Returns the number of columns in query for result_id , or FALSE on errors.

范例

Example #1 ifx_num_fields() Example

<?php
$conn_id = ifx_connect("db", "user", "password");
$res_id = ifx_query("select * from systables", $conn_id);
echo ifx_num_fields($res_id);
?>

参见

  • ifx_num_rows() - Count the rows already fetched from a query

ifx_nullformat
ifx_num_rows
Informix 函数


Count the rows already fetched from a query

ifx_num_fields
ifx_pconnect
Informix 函数
PHP 手册

ifx_num_rows

(PHP 4, PHP <=5.2.0)

ifx_num_rows — Count the rows already fetched from a query

说明

int ifx_num_rows ( resource $result_id )

Gives the number of rows fetched so far for a query with result_id after a ifx_query() or ifx_do() query.

参数

result_id

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

返回值

Returns the number of fetched rows or FALSE on errors.

参见

  • ifx_num_fields() - Returns the number of columns in the query

ifx_num_fields
ifx_pconnect
Informix 函数


Open persistent Informix connection

ifx_num_rows
ifx_prepare
Informix 函数
PHP 手册

ifx_pconnect

(PHP 4, PHP <=5.2.0)

ifx_pconnect — Open persistent Informix connection

说明

resource ifx_pconnect ([ string $database [, string $userid [, string $password ]]] )

ifx_pconnect() acts very much like ifx_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ifx_close() will not close links established by ifx_pconnect()).

This type of links is therefore called 'persistent'.

参数

All of the arguments are optional, and if they're missing, defaults are taken from values supplied in php.ini (ifx.default_host for the host (Informix libraries will use INFORMIXSERVER environment value if not defined), ifx.default_user for user, ifx.default_password for the password (none if not defined).

database

The database name, as a string.

userid

The username, as a string.

password

The password, as a string.

返回值

Returns: valid Informix persistent link identifier on success, or FALSE on errors.

参见

  • ifx_connect() - Open Informix server connection

ifx_num_rows
ifx_prepare
Informix 函数


Prepare an SQL-statement for execution

ifx_pconnect
ifx_query
Informix 函数
PHP 手册

ifx_prepare

(PHP 4, PHP <=5.2.0)

ifx_prepare — Prepare an SQL-statement for execution

说明

resource ifx_prepare ( string $query , resource $link_identifier [, int $cursor_def ], mixed $blobidarray )

Prepares a query for later use with ifx_do().

For "select-type" queries a cursor is declared and opened. Non-select queries are "execute immediate".

For either query type the number of (estimated or real) affected rows is saved for retrieval by ifx_affected_rows().

If the contents of the TEXT (or BYTE) column allow it, you can also use ifx_textasvarchar(1) and ifx_byteasvarchar(1). This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

参数

query

The query string.

link_identifier

The link identifier.

cursor_def

This optional parameter allows you to make this a scroll and/or hold cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together.

blobidarray

If you have BLOB (BYTE or TEXT) columns in the query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

返回值

Returns a valid result identifier for use by ifx_do(), or FALSE on errors.

参见

  • ifx_do() - Execute a previously prepared SQL-statement

ifx_pconnect
ifx_query
Informix 函数


Send Informix query

ifx_prepare
ifx_textasvarchar
Informix 函数
PHP 手册

ifx_query

(PHP 4, PHP <=5.2.0)

ifx_query — Send Informix query

说明

resource ifx_query ( string $query , resource $link_identifier [, int $cursor_type [, mixed $blobidarray ]] )

Sends a query to the currently active database on the server that's associated with the specified link identifier.

For "select-type" queries a cursor is declared and opened. Non-select queries are "execute immediate".

For either query type the number of (estimated or real) affected rows is saved for retrieval by ifx_affected_rows().

If the contents of the TEXT (or BYTE) column allow it, you can also use ifx_textasvarchar(1) and ifx_byteasvarchar(1). This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

参数

query

The query string.

link_identifier

The link identifier.

cursor_def

This optional parameter allows you to make this a scroll and/or hold cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together. I you omit this parameter the cursor is a normal sequential cursor.

blobidarray

If you have BLOB (BYTE or TEXT) columns in the query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

返回值

Returns valid Informix result identifier on success, or FALSE on errors.

范例

Example #1 Show all rows of the "orders" table as a HTML table

<?php
ifx_textasvarchar(1);      // use "text mode" for blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error(), ifx_errormsg());
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Example #2 Insert some values into the "catalog" table

<?php

// create blob id's for a byte and text column
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");

// store blob id's in a blobid array
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// launch query
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

参见

  • ifx_connect() - Open Informix server connection

ifx_prepare
ifx_textasvarchar
Informix 函数


Set the default text mode

ifx_query
ifx_update_blob
Informix 函数
PHP 手册

ifx_textasvarchar

(PHP 4, PHP <=5.2.0)

ifx_textasvarchar — Set the default text mode

说明

bool ifx_textasvarchar ( int $mode )

Sets the default text mode for all select-queries.

参数

mode

Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_byteasvarchar() - Set the default byte mode

ifx_query
ifx_update_blob
Informix 函数


Updates the content of the blob object

ifx_textasvarchar
ifx_update_char
Informix 函数
PHP 手册

ifx_update_blob

(PHP 4, PHP <=5.2.0)

ifx_update_blob — Updates the content of the blob object

说明

bool ifx_update_blob ( int $bid , string $content )

Updates the content of the blob object for the given blob object bid .

参数

bid

A BLOB object identifier.

content

The new data, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_update_char() - Updates the content of the char object

ifx_textasvarchar
ifx_update_char
Informix 函数


Updates the content of the char object

ifx_update_blob
ifxus_close_slob
Informix 函数
PHP 手册

ifx_update_char

(PHP 4, PHP <=5.2.0)

ifx_update_char — Updates the content of the char object

说明

bool ifx_update_char ( int $bid , string $content )

Updates the content of the char object for the given char object bid .

参数

bid

A char object identifier.

content

The new data, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifx_update_blob() - Updates the content of the blob object

ifx_update_blob
ifxus_close_slob
Informix 函数


Deletes the slob object

ifx_update_char
ifxus_create_slob
Informix 函数
PHP 手册

ifxus_close_slob

(PHP 4, PHP <=5.2.0)

ifxus_close_slob — Deletes the slob object

说明

bool ifxus_close_slob ( int $bid )

Deletes the slob object on the given slob object-id bid .

参数

bid

An existing slob id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifxus_open_slob() - Opens an slob object

ifx_update_char
ifxus_create_slob
Informix 函数


Creates an slob object and opens it

ifxus_close_slob
ifxus_free_slob
Informix 函数
PHP 手册

ifxus_create_slob

(PHP 4, PHP <=5.2.0)

ifxus_create_slob — Creates an slob object and opens it

说明

int ifxus_create_slob ( int $mode )

Creates an slob object and opens it.

参数

mode

A combination of IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

返回值

Return the new slob object-id, or FALSE on errors.

参见

  • ifxus_close_slob() - Deletes the slob object
  • ifxus_free_slob() - Deletes the slob object

ifxus_close_slob
ifxus_free_slob
Informix 函数


Deletes the slob object

ifxus_create_slob
ifxus_open_slob
Informix 函数
PHP 手册

ifxus_free_slob

(PHP 4, PHP <=5.2.0)

ifxus_free_slob — Deletes the slob object

说明

bool ifxus_free_slob ( int $bid )

Deletes the slob object.

参数

bid

An existing slob id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ifxus_close_slob() - Deletes the slob object

ifxus_create_slob
ifxus_open_slob
Informix 函数


Opens an slob object

ifxus_free_slob
ifxus_read_slob
Informix 函数
PHP 手册

ifxus_open_slob

(PHP 4, PHP <=5.2.0)

ifxus_open_slob — Opens an slob object

说明

int ifxus_open_slob ( int $bid , int $mode )

Opens an slob object. bid should be an existing slob id.

参数

bid

An existing slob id.

mode

A combination of IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

返回值

Returns the new slob object-id, or FALSE on errors.

参见

  • ifxus_close_slob() - Deletes the slob object
  • ifxus_free_slob() - Deletes the slob object

ifxus_free_slob
ifxus_read_slob
Informix 函数


Reads nbytes of the slob object

ifxus_open_slob
ifxus_seek_slob
Informix 函数
PHP 手册

ifxus_read_slob

(PHP 4, PHP <=5.2.0)

ifxus_read_slob — Reads nbytes of the slob object

说明

string ifxus_read_slob ( int $bid , int $nbytes )

Reads nbytes of the slob object.

参数

bid

An existing slob id.

nbytes

The number of bytes to read.

返回值

Returns the slob contents as a string, or FALSE on errors.

参见

  • ifxus_write_slob() - Writes a string into the slob object

ifxus_open_slob
ifxus_seek_slob
Informix 函数


Sets the current file or seek position

ifxus_read_slob
ifxus_tell_slob
Informix 函数
PHP 手册

ifxus_seek_slob

(PHP 4, PHP <=5.2.0)

ifxus_seek_slob — Sets the current file or seek position

说明

int ifxus_seek_slob ( int $bid , int $mode , int $offset )

Sets the current file or seek position of an open slob object.

参数

bid

An existing slob id.

mode

0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END.

offset

A byte offset.

返回值

Returns the seek position as an integer, or FALSE on errors.

参见

  • ifxus_tell_slob() - Returns the current file or seek position

ifxus_read_slob
ifxus_tell_slob
Informix 函数


Returns the current file or seek position

ifxus_seek_slob
ifxus_write_slob
Informix 函数
PHP 手册

ifxus_tell_slob

(PHP 4, PHP <=5.2.0)

ifxus_tell_slob — Returns the current file or seek position

说明

int ifxus_tell_slob ( int $bid )

Returns the current file or seek position of an open slob object

参数

bid

An existing slob id.

返回值

Returns the seek position as an integer, or FALSE on errors.

参见

  • ifxus_seek_slob() - Sets the current file or seek position

ifxus_seek_slob
ifxus_write_slob
Informix 函数


Writes a string into the slob object

ifxus_tell_slob
IBM DB2
Informix 函数
PHP 手册

ifxus_write_slob

(PHP 4, PHP <=5.2.0)

ifxus_write_slob — Writes a string into the slob object

说明

int ifxus_write_slob ( int $bid , string $content )

Writes a string into the slob object.

参数

bid

An existing slob id.

content

The content to write, as a string.

返回值

Returns the bytes written as an integer, or FALSE on errors.

参见

  • ifxus_read_slob() - Reads nbytes of the slob object

ifxus_tell_slob
IBM DB2
Informix 函数


IBM DB2, Cloudscape and Apache Derby

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • IBM DB2 函数
    • db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param — Binds a PHP variable to an SQL statement parameter
    • db2_client_info — Returns an object with properties that describe the DB2 database client
    • db2_close — Closes a database connection
    • db2_column_privileges — Returns a result set listing the columns and associated privileges for a table
    • db2_columns — Returns a result set listing the columns and associated metadata for a table
    • db2_commit — Commits a transaction
    • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
    • db2_connect — Returns a connection to a database
    • db2_cursor_type — Returns the cursor type used by a statement resource
    • db2_escape_string — Used to escape certain characters
    • db2_exec — Executes an SQL statement directly
    • db2_execute — Executes a prepared SQL statement
    • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object — Returns an object with properties representing columns in the fetched row
    • db2_fetch_row — Sets the result set pointer to the next row or requested row
    • db2_field_display_size — Returns the maximum number of bytes required to display a column
    • db2_field_name — Returns the name of the column in the result set
    • db2_field_num — Returns the position of the named column in a result set
    • db2_field_precision — Returns the precision of the indicated column in a result set
    • db2_field_scale — Returns the scale of the indicated column in a result set
    • db2_field_type — Returns the data type of the indicated column in a result set
    • db2_field_width — Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys — Returns a result set listing the foreign keys for a table
    • db2_free_result — Frees resources associated with a result set
    • db2_free_stmt — Frees resources associated with the indicated statement resource
    • db2_get_option — Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read — Gets a user defined size of LOB files with each invocation
    • db2_next_result — Requests the next result set from a stored procedure
    • db2_num_fields — Returns the number of fields contained in a result set
    • db2_num_rows — Returns the number of rows affected by an SQL statement
    • db2_pclose — Closes a persistent database connection
    • db2_pconnect — Returns a persistent connection to a database
    • db2_prepare — Prepares an SQL statement to be executed
    • db2_primary_keys — Returns a result set listing primary keys for a table
    • db2_procedure_columns — Returns a result set listing stored procedure parameters
    • db2_procedures — Returns a result set listing the stored procedures registered in a database
    • db2_result — Returns a single column from a row in the result set
    • db2_rollback — Rolls back a transaction
    • db2_server_info — Returns an object with properties that describe the DB2 database server
    • db2_set_option — Set options for connection or statement resources
    • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
    • db2_statistics — Returns a result set listing the index and statistics for a table
    • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
    • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
    • db2_tables — Returns a result set listing the tables and associated metadata in a database
ifxus_write_slob
简介
与具体数据库系统相关的扩展


简介

These functions enable you to access IBM DB2 Universal Database, IBM Cloudscape, and Apache Derby databases using the DB2 Call Level Interface (DB2 CLI).

IBM DB2
安装/配置
IBM DB2


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
IBM DB2


需求

To connect to IBM DB2 Universal Database for Linux, UNIX, and Windows, or IBM Cloudscape, or Apache Derby, you must install an IBM DB2 Universal Database client on the same computer on which you are running PHP. The extension has been developed and tested with DB2 Version 8.2.

To connect to IBM DB2 Universal Database for z/OS or iSeries, you also require IBM DB2 Connect or the equivalent DRDA gateway software.

Requirements on Linux or Unix

The user invoking the PHP executable or SAPI must specify the DB2 instance before accessing these functions. You can set the name of the DB2 instance in php.ini using the ibm_db2.instance_name configuration option, or you can source the DB2 instance profile before invoking the PHP executable.

If you created a DB2 instance named db2inst1 in /home/db2inst1/, for example, you can add the following line to php.ini:

ibm_db2.instance_name=db2inst1
If you do not set this option in php.ini, you must issue the following command to modify your environment variables to enable access to DB2:
bash$ source /home/db2inst1/sqllib/db2profile
To enable your PHP-enabled Web server to access these functions, you must either set the ibm_db2.instance_name configuration option in php.ini, or source the DB2 instance environment in your Web server start script (typically /etc/init.d/httpd or /etc/init.d/apache).

安装/配置
安装
安装/配置


安装

To build the ibm_db2 extension, the DB2 application development header files and libraries must be installed on your system. DB2 does not install these by default, so you may have to return to your DB2 installer and add this option. The header files are included with the DB2 Application Development Client freely available for download from the IBM DB2 Universal Database » support site.

If you add the DB2 application development header files and libraries to a Linux or Unix operating system on which DB2 was already installed, you must issue the command db2iupdt -e to update the symbolic links to the header files and libraries in your DB2 instances.

ibm_db2 is a » PECL extension, so follow the instructions in PECL 扩展库安装 to install the ibm_db2 extension for PHP. Issue the configure command to point to the location of your DB2 header files and libraries as follows:

bash$ ./configure --with-IBM_DB2=/path/to/DB2
The configure command defaults to /opt/IBM/db2/V8.1.

Note: Note for IIS users
If you are using the ibm_db2 driver with Microsoft Internet Information Server (IIS) you may have to do the following:

  • Install DB2 with extended operating system security.
  • Add the PHP binary path to the PATH system environment variable (default C:\php\).
  • Create another system environment variable equal to the path where the PHP.INI file is located (eg: PHPRC = C:\php\).
  • Add the IUSR_COMPUTERNAME to the DB2USERS group.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

ibm_db2 配置选项
名字 | 默认 | 可修改范围 | Changelog
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Available since ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.8.0.

以下是配置选项的简要解释。

ibm_db2.binmode integer

This option controls the mode used for converting to and from binary data in the PHP application.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect integer

This option overrides i5 db2_connect() full open and close in the PHP application. When ibm_db2.i5_all_pconnect = 1, all db2 connections become persistent (db2_pconnect()). On i5/OS, db2_pconnect() performs dramatically better with lower machine stress over db2_connect(). This is a convenience override of db2_connect() to evoke db2_pconnect() without PHP source code changes.

  • 0 db2_connect() default full open and close

  • 1 db2_connect() override to db2_pconnect() for persistent connection only

ibm_db2.i5_allow_commit integer

This option controls the commit mode used for i5 schema collections in the PHP application.

  • 0 no commit (see i5_commit for override)

  • 1 allow commit (see i5_commit for override)

ibm_db2.i5_dbcs_alloc integer

This option controls the internal ibm_db2 allocation scheme for large DBCS column buffers.

  • 0 no expanded allocations (see i5_dbcs_alloc for override)

  • 1 use expanded allocations (see i5_dbcs_alloc for override)

ibm_db2.instance_name string

On Linux and UNIX operating systems, this option defines the name of the instance to use for cataloged database connections. If this option is set, its value overrides the DB2INSTANCE environment variable setting.

This option is ignored on Windows operating systems.

ibm_db2.i5_ignore_userid integer

This option overrides i5 db2_(p)connect userid and password in the PHP application. When ibm_db2.i5_ignore_userid = 1, all db2 (p)connections become null userid and null password. Therefore Apache jobs connect with the current profile (NOBODY). Use of this override is only for simple DB2 based websites that never require profile switching and therefore can avoid all overhead of server mode additional QSQSRVR jobs. This is a convenience override of db2_(p)connect to set the userid and password values to null without PHP source code changes. This override can be used in combination with ibm_db2.i5_all_pconnect = 1.

  • 0 db2_(p)connect with specified userid and password

  • 1 db2_(p)connect override connect with null userid and null password

安装
资源类型
安装/配置


资源类型

The ibm_db2 extension returns connection resources, statement resources, and result set resources.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

DB2_BINARY (integer)
Specifies that binary data shall be returned as is. This is the default mode.
DB2_CONVERT (integer)
Specifies that binary data shall be converted to a hexadecimal encoding and returned as an ASCII string.
DB2_PASSTHRU (integer)
Specifies that binary data shall be converted to a NULL value.
DB2_SCROLLABLE (integer)
Specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.
DB2_FORWARD_ONLY (integer)
Specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.
DB2_PARAM_IN (integer)
Specifies the PHP variable should be bound as an IN parameter for a stored procedure.
DB2_PARAM_OUT (integer)
Specifies the PHP variable should be bound as an OUT parameter for a stored procedure.
DB2_PARAM_INOUT (integer)
Specifies the PHP variable should be bound as an INOUT parameter for a stored procedure.
DB2_PARAM_FILE (integer)
Specifies that the column should be bound directly to a file for input.
DB2_AUTOCOMMIT_ON (integer)
Specifies that autocommit should be turned on.
DB2_AUTOCOMMIT_OFF (integer)
Specifies that autocommit should be turned off.
DB2_DOUBLE (integer)
Specifies that the variable should be bound as a DOUBLE, FLOAT, or REAL data type.
DB2_LONG (integer)
Specifies that the variable should be bound as a SMALLINT, INTEGER, or BIGINT data type.
DB2_CHAR (integer)
Specifies that the variable should be bound as a CHAR or VARCHAR data type.
DB2_CASE_NATURAL (integer)
Specifies that column names will be returned in their natural case.
DB2_CASE_LOWER (integer)
Specifies that column names will be returned in lower case.
DB2_CASE_UPPER (integer)
Specifies that column names will be returned in upper case.
DB2_DEFERRED_PREPARE_ON (integer)
Specifies that deferred prepare should be turned on for the specified statement resource.
DB2_DEFERRED_PREPARE_OFF (integer)
Specifies that deferred prepare should be turned off for the specified statement resource.
资源类型
IBM DB2 函数
IBM DB2


IBM DB2 函数

Table of Contents

  • db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection
  • db2_bind_param — Binds a PHP variable to an SQL statement parameter
  • db2_client_info — Returns an object with properties that describe the DB2 database client
  • db2_close — Closes a database connection
  • db2_column_privileges — Returns a result set listing the columns and associated privileges for a table
  • db2_columns — Returns a result set listing the columns and associated metadata for a table
  • db2_commit — Commits a transaction
  • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
  • db2_connect — Returns a connection to a database
  • db2_cursor_type — Returns the cursor type used by a statement resource
  • db2_escape_string — Used to escape certain characters
  • db2_exec — Executes an SQL statement directly
  • db2_execute — Executes a prepared SQL statement
  • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object — Returns an object with properties representing columns in the fetched row
  • db2_fetch_row — Sets the result set pointer to the next row or requested row
  • db2_field_display_size — Returns the maximum number of bytes required to display a column
  • db2_field_name — Returns the name of the column in the result set
  • db2_field_num — Returns the position of the named column in a result set
  • db2_field_precision — Returns the precision of the indicated column in a result set
  • db2_field_scale — Returns the scale of the indicated column in a result set
  • db2_field_type — Returns the data type of the indicated column in a result set
  • db2_field_width — Returns the width of the current value of the indicated column in a result set
  • db2_foreign_keys — Returns a result set listing the foreign keys for a table
  • db2_free_result — Frees resources associated with a result set
  • db2_free_stmt — Frees resources associated with the indicated statement resource
  • db2_get_option — Retrieves an option value for a statement resource or a connection resource
  • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
  • db2_lob_read — Gets a user defined size of LOB files with each invocation
  • db2_next_result — Requests the next result set from a stored procedure
  • db2_num_fields — Returns the number of fields contained in a result set
  • db2_num_rows — Returns the number of rows affected by an SQL statement
  • db2_pclose — Closes a persistent database connection
  • db2_pconnect — Returns a persistent connection to a database
  • db2_prepare — Prepares an SQL statement to be executed
  • db2_primary_keys — Returns a result set listing primary keys for a table
  • db2_procedure_columns — Returns a result set listing stored procedure parameters
  • db2_procedures — Returns a result set listing the stored procedures registered in a database
  • db2_result — Returns a single column from a row in the result set
  • db2_rollback — Rolls back a transaction
  • db2_server_info — Returns an object with properties that describe the DB2 database server
  • db2_set_option — Set options for connection or statement resources
  • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
  • db2_statistics — Returns a result set listing the index and statistics for a table
  • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
  • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
  • db2_tables — Returns a result set listing the tables and associated metadata in a database
预定义常量
db2_autocommit
IBM DB2


Returns or sets the AUTOCOMMIT state for a database connection

IBM DB2 函数
db2_bind_param
IBM DB2 函数
PHP 手册

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection

说明

mixed db2_autocommit ( resource $connection [, bool $value ] )

Sets or gets the AUTOCOMMIT behavior of the specified connection resource.

参数

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

value

One of the following constants:

DB2_AUTOCOMMIT_OFF

Turns AUTOCOMMIT off.

DB2_AUTOCOMMIT_ON

Turns AUTOCOMMIT on.

返回值

When db2_autocommit() receives only the connection parameter, it returns the current state of AUTOCOMMIT for the requested connection as an integer value. A value of 0 indicates that AUTOCOMMIT is off, while a value of 1 indicates that AUTOCOMMIT is on.

When db2_autocommit() receives both the connection parameter and autocommit parameter, it attempts to set the AUTOCOMMIT state of the requested connection to the corresponding state. 如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Retrieving the AUTOCOMMIT value for a connection

In the following example, a connection which has been created with AUTOCOMMIT turned off is tested with the db2_autocommit() function.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT is off.";
} else {
    print "$ac -- AUTOCOMMIT is on.";
}
?>

上例将输出：

0 -- AUTOCOMMIT is off.

Example #2 Setting the AUTOCOMMIT value for a connection

In the following example, a connection which was initially created with AUTOCOMMIT turned off has its behavior changed to turn AUTOCOMMIT on.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Turn AUTOCOMMIT on
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
    print "Turning AUTOCOMMIT on succeeded.\n";
}

// Check AUTOCOMMIT state
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT is off.";
} else {
    print "$ac -- AUTOCOMMIT is on.";
}
?>

上例将输出：

Turning AUTOCOMMIT on succeeded.
1 -- AUTOCOMMIT is on.

参见

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database

IBM DB2 函数
db2_bind_param
IBM DB2 函数


Binds a PHP variable to an SQL statement parameter

db2_autocommit
db2_client_info
IBM DB2 函数
PHP 手册

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Binds a PHP variable to an SQL statement parameter

说明

bool db2_bind_param ( resource $stmt , int $parameter-number , string $variable-name [, int $parameter-type [, int $data-type=0 [, int $precision=-1 [, int $scale=0 ]]]] )

Binds a PHP variable to an SQL statement parameter in a statement resource returned by db2_prepare(). This function gives you more control over the parameter type, data type, precision, and scale for the parameter than simply passing the variable as part of the optional input array to db2_execute().

参数

stmt

A prepared statement returned from db2_prepare().

parameter-number

Specifies the 1-indexed position of the parameter in the prepared statement.

variable-name

A string specifying the name of the PHP variable to bind to the parameter specified by parameter-number .

parameter-type

A constant specifying whether the PHP variable should be bound to the SQL parameter as an input parameter (DB2_PARAM_IN), an output parameter (DB2_PARAM_OUT), or as a parameter that accepts input and returns output (DB2_PARAM_INOUT). To avoid memory overhead, you can also specify DB2_PARAM_FILE to bind the PHP variable to the name of a file that contains large object (BLOB, CLOB, or DBCLOB) data.

data-type

A constant specifying the SQL data type that the PHP variable should be bound as: one of DB2_BINARY, DB2_CHAR, DB2_DOUBLE, or DB2_LONG .

precision

Specifies the precision with which the variable should be bound to the database. This parameter can also be used for retrieving XML output values from stored procedures. A non-negative value specifies the maximum size of the XML data that will be retrieved from the database. If this parameter is not used, a default of 1MB will be assumed for retrieving the XML output value from the stored procedure.

scale

Specifies the scale with which the variable should be bound to the database.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Binding PHP variables to a prepared statement

The SQL statement in the following example uses two input parameters in the WHERE clause. We call db2_bind_param() to bind two PHP variables to the corresponding SQL parameters. Notice that the PHP variables do not have to be declared or assigned before the call to db2_bind_param(); in the example, $lower_limit is assigned a value before the call to db2_bind_param(), but $upper_limit is assigned a value after the call to db2_bind_param(). The variables must be bound and, for parameters that accept input, must have any value assigned, before calling db2_execute().

<?php

$sql = 'SELECT name, breed, weight FROM animals
    WHERE weight > ? AND weight < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

// We can declare the variable before calling db2_bind_param()
$lower_limit = 1;

db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);

// We can also declare the variable after calling db2_bind_param()
$upper_limit = 15.0;

if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
        print "{$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

上例将输出：

Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3

Example #2 Calling stored procedures with IN and OUT parameters

The stored procedure match_animal in the following example accepts three different parameters:

  1. an input (IN) parameter that accepts the name of the first animal as input

  2. an input-output (INOUT) parameter that accepts the name of the second animal as input and returns the string TRUE if an animal in the database matches that name

  3. an output (OUT) parameter that returns the sum of the weight of the two identified animals

In addition, the stored procedure returns a result set consisting of the animals listed in alphabetic order starting at the animal corresponding to the input value of the first parameter and ending at the animal corresponding to the input value of the second parameter.

<?php

$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

$name = "Peaches";
$second_name = "Rickety Ride";
$weight = 0;

db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);

print "Values of bound parameters _before_ CALL:\n";
print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

if (db2_execute($stmt)) {
    print "Values of bound parameters _after_ CALL:\n";
    print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

    print "Results:\n";
    while ($row = db2_fetch_array($stmt)) {
        print "  {$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

上例将输出：

Values of bound parameters _before_ CALL:
  1: Peaches 2: Rickety Ride 3: 0

Values of bound parameters _after_ CALL:
  1: Peaches 2: TRUE 3: 22

Results:
  Peaches, dog, 12.3
  Pook, cat, 3.2
  Rickety Ride, goat, 9.7

Example #3 Inserting a binary large object (BLOB) directly from a file

The data for large objects are typically stored in files, such as XML documents or audio files. Rather than reading an entire file into a PHP variable, and then binding that PHP variable into an SQL statement, you can avoid some memory overhead by binding the file directly to the input parameter of your SQL statement. The following example demonstrates how to bind a file directly into a BLOB column.

<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)");

$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>

参见

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed

db2_autocommit
db2_client_info
IBM DB2 函数


Returns an object with properties that describe the DB2 database client

db2_bind_param
db2_close
IBM DB2 函数
PHP 手册

db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_info — Returns an object with properties that describe the DB2 database client

说明

object db2_client_info ( resource $connection )

This function returns an object with read-only properties that return information about the DB2 database client. The following table lists the DB2 client properties:

DB2 client properties
Property name | Return type | Description
APPL_CODEPAGE | int | The application code page.
CONN_CODEPAGE | int | The code page for the current connection.
DATA_SOURCE_NAME | string | The data source name (DSN) used to create the current connection to the database.
DRIVER_NAME | string | The name of the library that implements the DB2 Call Level Interface (CLI) specification.
DRIVER_ODBC_VER | string | The version of ODBC that the DB2 client supports. This returns a string "MM.mm" where MM is the major version and mm is the minor version. The DB2 client always returns "03.51".
DRIVER_VER | string | The version of the client, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
ODBC_SQL_CONFORMANCE string

The level of ODBC SQL grammar supported by the client:

MINIMUM

Supports the minimum ODBC SQL grammar.

CORE

Supports the core ODBC SQL grammar.

EXTENDED

Supports extended ODBC SQL grammar.

ODBC_VER | string | The version of ODBC that the ODBC driver manager supports. This returns a string "MM.mm.rrrr" where MM is the major version, mm is the minor version, and rrrr is the release. The DB2 client always returns "03.01.0000".

参数

connection

Specifies an active DB2 client connection.

返回值

Returns an object on a successful call. Returns FALSE on failure.

范例

Example #1 A db2_client_info() example

To retrieve information about the client, you must pass a valid database connection resource to db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
    echo "DRIVER_NAME: ";           var_dump( $client->DRIVER_NAME );
    echo "DRIVER_VER: ";            var_dump( $client->DRIVER_VER );
    echo "DATA_SOURCE_NAME: ";      var_dump( $client->DATA_SOURCE_NAME );
    echo "DRIVER_ODBC_VER: ";       var_dump( $client->DRIVER_ODBC_VER );
    echo "ODBC_VER: ";              var_dump( $client->ODBC_VER );
    echo "ODBC_SQL_CONFORMANCE: ";  var_dump( $client->ODBC_SQL_CONFORMANCE );
    echo "APPL_CODEPAGE: ";         var_dump( $client->APPL_CODEPAGE );
    echo "CONN_CODEPAGE: ";         var_dump( $client->CONN_CODEPAGE );
}
else {
    echo "Error retrieving client information.
     Perhaps your database connection was invalid.";
}
db2_close($conn);

?>

上例将输出：

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

参见

  • db2_server_info() - Returns an object with properties that describe the DB2 database server

db2_bind_param
db2_close
IBM DB2 函数


Closes a database connection

db2_client_info
db2_column_privileges
IBM DB2 函数
PHP 手册

db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close — Closes a database connection

说明

bool db2_close ( resource $connection )

This function closes a DB2 client connection created with db2_connect() and returns the corresponding resources to the database server.

If you attempt to close a persistent DB2 client connection created with db2_pconnect(), the close request is ignored and the persistent DB2 client connection remains available for the next caller.

参数

connection

Specifies an active DB2 client connection.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Closing a connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2, Cloudscape, or Apache Derby database.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

上例将输出：

Connection was successfully closed.

参见

  • db2_connect() - Returns a connection to a database
  • db2_pclose() - Closes a persistent database connection
  • db2_pconnect() - Returns a persistent connection to a database

db2_client_info
db2_column_privileges
IBM DB2 函数


Returns a result set listing the columns and associated privileges for a table

db2_close
db2_columns
IBM DB2 函数
PHP 手册

db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges — Returns a result set listing the columns and associated privileges for a table

说明

resource db2_column_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Returns a result set listing the columns and associated privileges for a table.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. To match all schemas, pass NULL or an empty string.

table-name

The name of the table or view. To match all tables in the database, pass NULL or an empty string.

column-name

The name of the column. To match all columns in the table, pass NULL or an empty string.

返回值

Returns a statement resource with a result set containing rows describing the column privileges for columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege for the column.
IS_GRANTABLE | Whether the GRANTEE is permitted to grant this privilege to other users.

参见

  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_close
db2_columns
IBM DB2 函数


Returns a result set listing the columns and associated metadata for a table

db2_column_privileges
db2_commit
IBM DB2 函数
PHP 手册

db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns — Returns a result set listing the columns and associated metadata for a table

说明

resource db2_columns ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Returns a result set listing the columns and associated metadata for a table.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. To match all schemas, pass '%'.

table-name

The name of the table or view. To match all tables in the database, pass NULL or an empty string.

column-name

The name of the column. To match all columns in the table, pass NULL or an empty string.

返回值

Returns a statement resource with a result set containing rows describing the columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
DATA_TYPE | The SQL data type for the column represented as an integer value.
TYPE_NAME | A string representing the data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the column is nullable or not.
REMARKS | Description of the column.
COLUMN_DEF | Default value for the column.
SQL_DATA_TYPE | An integer value representing the size of the column.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or NULL for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type column, which matches COLUMN_SIZE for single-byte character set data, or NULL for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the column in the table.
IS_NULLABLE | A string value where 'YES' means that the column is nullable and 'NO' means that the column is not nullable.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_column_privileges
db2_commit
IBM DB2 函数


Commits a transaction

db2_columns
db2_conn_error
IBM DB2 函数
PHP 手册

db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit — Commits a transaction

说明

bool db2_commit ( resource $connection )

Commits an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_commit() is not necessary unless AUTOCOMMIT has been turned off for the connection resource.

Note: If the specified connection resource is a persistent connection, all transactions in progress for all applications using that persistent connection will be committed. For this reason, persistent connections are not recommended for use in applications that require transactions.

参数

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • db2_autocommit() - Returns or sets the AUTOCOMMIT state for a database connection
  • db2_rollback() - Rolls back a transaction

db2_columns
db2_conn_error
IBM DB2 函数


Returns a string containing the SQLSTATE returned by the last connection attempt

db2_commit
db2_conn_errormsg
IBM DB2 函数
PHP 手册

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt

说明

string db2_conn_error ([ resource $connection ] )

db2_conn_error() returns an SQLSTATE value representing the reason the last attempt to connect to a database failed. As db2_connect() returns FALSE in the event of a failed connection attempt, you do not pass any parameters to db2_conn_error() to retrieve the SQLSTATE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the SQLSTATE value for a specific connection.

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value ' . You can also call db2_conn_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

参数

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

返回值

Returns the SQLSTATE value resulting from a failed connection attempt. Returns an empty string if there is no error associated with the last connection attempt.

范例

Example #1 Retrieving an SQLSTATE value for a failed connection attempt

The following example demonstrates how to return an SQLSTATE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print "SQLSTATE value: " . db2_conn_error();
}
?>

上例将输出：

SQLSTATE value: 08001

参见

  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message

db2_commit
db2_conn_errormsg
IBM DB2 函数


Returns the last connection error message and SQLCODE value

db2_conn_error
db2_connect
IBM DB2 函数
PHP 手册

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Returns the last connection error message and SQLCODE value

说明

string db2_conn_errormsg ([ resource $connection ] )

db2_conn_errormsg() returns an error message and SQLCODE value representing the reason the last database connection attempt failed. As db2_connect() returns FALSE in the event of a failed connection attempt, do not pass any parameters to db2_conn_errormsg() to retrieve the associated error message and SQLCODE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the associated error message and SQLCODE value for a specific connection.

参数

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

返回值

Returns a string containing the error message and SQLCODE value resulting from a failed connection attempt. If there is no error associated with the last connection attempt, db2_conn_errormsg() returns an empty string.

范例

Example #1 Retrieving the error message returned by a failed connection attempt

The following example demonstrates how to return an error message and SQLCODE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print db2_conn_errormsg();
}
?>

上例将输出：

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "BADNAME" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

参见

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message

db2_conn_error
db2_connect
IBM DB2 函数


Returns a connection to a database

db2_conn_errormsg
db2_cursor_type
IBM DB2 函数
PHP 手册

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Returns a connection to a database

说明

resource db2_connect ( string $database , string $username , string $password [, array $options ] )

Creates a new connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

参数

database

For a cataloged connection to a database, database represents the database alias in the DB2 client catalog.

For an uncataloged connection to a database, database represents a complete connection string in the following format:

DATABASE=database
;HOSTNAME=hostname
;PORT=port
;PROTOCOL=TCPIP;UID=username
;PWD=password
;
where the parameters represent the following values:

database

The name of the database.

hostname

The hostname or IP address of the database server.

port

The TCP/IP port on which the database is listening for requests.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

username

The username with which you are connecting to the database.

For uncataloged connections, you must pass a NULL value or empty string.

password

The password with which you are connecting to the database.

For uncataloged connections, you must pass a NULL value or empty string.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_connect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_connect() for the connection handle.

Note: The php.ini setting ibm_db2.i5_allow_commit ==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Note: php.ini setting ibm_db2.i5_dbcs_alloc ==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Note: i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

返回值

Returns a connection handle resource if the connection attempt is successful. If the connection attempt fails, db2_connect() returns FALSE.

范例

Example #1 Creating a cataloged connection

Cataloged connections require you to have previously cataloged the target database through the DB2 Command Line Processor (CLP) or DB2 Configuration Assistant.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$conn = db2_connect($database, $user, $password);

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

上例将输出：

Connection succeeded.

Example #2 Creating an uncataloged connection

An uncataloged connection enables you to dynamically connect to a database.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

上例将输出：

Connection succeeded.

Example #3 Creating a connection with autocommit off by default

Passing an array of options to db2_connect() enables you to modify the default behavior of the connection handle.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn = db2_connect($database, $user, $password, $options);

if ($conn) {
    echo "Connection succeeded.\n";
    if (db2_autocommit($conn)) {
         echo "Autocommit is on.\n";
    }
    else {
         echo "Autocommit is off.\n";
    }
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

上例将输出：

Connection succeeded.
Autocommit is off.

Example #4 i5/OS best performance

To achieve best performance for your i5/OS ibm_db2 1.5.1 PHP application use the default host, userid, and password for your db2_connect().

<?php
  $library = "ADC";
  $i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
  $result = db2_exec($i5,
       "select * from systables where table_schema = '$library'");
  while ($row = db2_fetch_both($result)) {
     echo $row['TABLE_NAME']."</br>";
  }
  db2_close($i5);
?>

上例将输出：

ANIMALS
NAMES
PICTURES

Example #5 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

上例将输出：

Explicit trusted connection succeeded.
User has been switched.

参见

  • db2_close() - Closes a database connection
  • db2_pconnect() - Returns a persistent connection to a database

db2_conn_errormsg
db2_cursor_type
IBM DB2 函数


Returns the cursor type used by a statement resource

db2_connect
db2_escape_string
IBM DB2 函数
PHP 手册

db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type — Returns the cursor type used by a statement resource

说明

int db2_cursor_type ( resource $stmt )

Returns the cursor type used by a statement resource. Use this to determine if you are working with a forward-only cursor or scrollable cursor.

参数

stmt

A valid statement resource.

返回值

Returns either DB2_FORWARD_ONLY if the statement resource uses a forward-only cursor or DB2_SCROLLABLE if the statement resource uses a scrollable cursor.

参见

  • db2_prepare() - Prepares an SQL statement to be executed

db2_connect
db2_escape_string
IBM DB2 函数


Used to escape certain characters

db2_cursor_type
db2_exec
IBM DB2 函数
PHP 手册

db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string — Used to escape certain characters

说明

string db2_escape_string ( string $string_literal )

Prepends backslashes to special characters in the string argument.

参数

string_literal

The string that contains special characters that need to be modified. Characters that are prepended with a backslash are \x00, \n, \r, \, ', " and \x1a.

返回值

Returns string_literal with the special characters noted above prepended with backslashes.

范例

Example #1 A db2_escape_string() example

Result of using the db2_escape_string() function

<?php

$conn = db2_connect($database, $user, $password);

if ($conn) {
    $str[0] = "All characters: \x00 , \n , \r , \ , ' , \" , \x1a .";
    $str[1] = "Backslash (\). Single quote ('). Double quote (\")";
    $str[2] = "The NULL character \0 must be quoted as well";
    $str[3] = "Intersting characters: \x1a , \x00 .";
    $str[4] = "Nothing to quote";
    $str[5] = 200676;
    $str[6] = "";

    foreach( $str as $string ) {
        echo "db2_escape_string: " . db2_escape_string($string). "\n";
    }
}
?>

上例将输出：

db2_escape_string: All characters: \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Backslash (\\). Single quote (\'). Double quote (\")
db2_escape_string: The NULL character \0 must be quoted as well
db2_escape_string: Intersting characters: \Z , \0 .
db2_escape_string: Nothing to quote
db2_escape_string: 200676
db2_escape_string:

参见

  • db2_prepare() - Prepares an SQL statement to be executed

db2_cursor_type
db2_exec
IBM DB2 函数


Executes an SQL statement directly

db2_escape_string
db2_execute
IBM DB2 函数
PHP 手册

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Executes an SQL statement directly

说明

resource db2_exec ( resource $connection , string $statement [, array $options ] )

Executes an SQL statement directly.

If you plan to interpolate PHP variables into the SQL statement, understand that this is one of the more common security exposures. Consider calling db2_prepare() to prepare an SQL statement with parameter markers for input values. Then you can call db2_execute() to pass in the input values and avoid SQL injection attacks.

If you plan to repeatedly issue the same SQL statement with different parameters, consider calling db2_prepare() and db2_execute() to enable the database server to reuse its access plan and increase the efficiency of your database access.

参数

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement. The statement cannot contain any parameter markers.

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

cursor

Passing the DB2_FORWARD_ONLY value requests a forward-only cursor for this SQL statement. This is the default type of cursor, and it is supported by all database servers. It is also much faster than a scrollable cursor.

Passing the DB2_SCROLLABLE value requests a scrollable cursor for this SQL statement. This type of cursor enables you to fetch rows non-sequentially from the database server. However, it is only supported by DB2 servers, and is much slower than forward-only cursors.

返回值

Returns a statement resource if the SQL statement was issued successfully, or FALSE if the database failed to execute the SQL statement.

范例

Example #1 Creating a table with db2_exec()

The following example uses db2_exec() to issue a set of DDL statements in the process of creating a table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animals (id INTEGER, breed VARCHAR(32),
    name CHAR(16), weight DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
    print "Successfully created the table.\n";
}

// Populate the test table
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
    array(3, 'gold fish', 'Bubbles', 0.1),
    array(4, 'budgerigar', 'Gizmo', 0.2),
    array(5, 'goat', 'Rickety Ride', 9.7),
    array(6, 'llama', 'Sweater', 150)
);

foreach ($animals as $animal) {
    $rc = db2_exec($conn, "INSERT INTO animals (id, breed, name, weight)
      VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if ($rc) {
        print "Insert... ";
    }
}
?>

上例将输出：

Successfully created the table.
Insert... Insert... Insert... Insert... Insert... Insert... Insert...

Example #2 Executing a SELECT statement with a scrollable cursor

The following example demonstrates how to request a scrollable cursor for an SQL statement issued by db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT name FROM animals
    WHERE weight < 10.0
    ORDER BY name";
if ($conn) {
    require_once('prepare.inc');
    $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
    while ($row = db2_fetch_array($stmt)) {
        print "$row[0]\n";
    }
}
?>

上例将输出：

Bubbles
Gizmo
Pook
Rickety Ride

Example #3 Returning XML data as a SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in a SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    ';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

上例将输出：

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Example #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns a SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}

db2_close($conn);

?>

上例将输出：

1001     Kathy Smith     905-555-7258     5002     Shipped

Example #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
        } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
}
db2_close($conn);

?>

上例将输出：

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

参见

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed

db2_escape_string
db2_execute
IBM DB2 函数


Executes a prepared SQL statement

db2_exec
db2_fetch_array
IBM DB2 函数
PHP 手册

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Executes a prepared SQL statement

说明

bool db2_execute ( resource $stmt [, array $parameters ] )

db2_execute() executes an SQL statement that was prepared by db2_prepare().

If the SQL statement returns a result set, for example, a SELECT statement or a CALL to a stored procedure that returns one or more result sets, you can retrieve a row as an array from the stmt resource using db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array(). Alternatively, you can use db2_fetch_row() to move the result set pointer to the next row and fetch a column at a time from that row with db2_result().

Refer to db2_prepare() for a brief discussion of the advantages of using db2_prepare() and db2_execute() rather than db2_exec().

参数

stmt

A prepared statement returned from db2_prepare().

parameters

An array of input parameters matching any parameter markers contained in the prepared statement.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$pet = array(0, 'cat', 'Pook', 3.2);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    $result = db2_execute($stmt, $pet);
    if ($result) {
        print "Successfully added new pet.";
    }
}
?>

上例将输出：

Successfully added new pet.

Example #2 Calling a stored procedure with an OUT parameter

The following example prepares a CALL statement that accepts one parameter marker representing an OUT parameter, binds the PHP variable $my_pets to the parameter using db2_bind_param(), then issues db2_execute() to execute the CALL statement. After the CALL to the stored procedure has been made, the value of $num_pets changes to reflect the value returned by the stored procedure for that OUT parameter.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "I have $num_pets pets!";
?>

上例将输出：

I have 7 pets!

Example #3 Returning XML data as a SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in a SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    ';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

上例将输出：

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Example #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns a SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

上例将输出：

1001     Kathy Smith     905-555-7258     5002     Shipped

Example #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
            } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
    }
}

db2_close($conn);

?>

上例将输出：

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

参见

  • db2_exec() - Executes an SQL statement directly
  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set

db2_exec
db2_fetch_array
IBM DB2 函数


Returns an array, indexed by column position, representing a row in a result set

db2_execute
db2_fetch_assoc
IBM DB2 函数
PHP 手册

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set

说明

array db2_fetch_array ( resource $stmt [, int $row_number=-1 ] )

Returns an array, indexed by column position, representing a row in a result set. The columns are 0-indexed.

参数

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

返回值

Returns a 0-indexed array with column values indexed by the column position representing the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

范例

Example #1 Iterating through a forward-only cursor

If you call db2_fetch_array() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_array($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
}
?>

上例将输出：

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Example #2 Retrieving specific rows with db2_fetch_array() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_array() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
    $i = $i + 2;
}
?>

上例将输出：

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

参见

  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set

db2_execute
db2_fetch_assoc
IBM DB2 函数


Returns an array, indexed by column name, representing a row in a result set

db2_fetch_array
db2_fetch_both
IBM DB2 函数
PHP 手册

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set

说明

array db2_fetch_assoc ( resource $stmt [, int $row_number=-1 ] )

Returns an array, indexed by column name, representing a row in a result set.

参数

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

返回值

Returns an associative array with column values indexed by the column name representing the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

范例

Example #1 Iterating through a forward-only cursor

If you call db2_fetch_assoc() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_assoc($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
}
?>

上例将输出：

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Example #2 Retrieving specific rows with db2_fetch_assoc() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_assoc() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
    $i = $i + 2;
}
?>

上例将输出：

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

参见

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set

db2_fetch_array
db2_fetch_both
IBM DB2 函数


Returns an array, indexed by both column name and position, representing a row in a result set

db2_fetch_assoc
db2_fetch_object
IBM DB2 函数
PHP 手册

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set

说明

array db2_fetch_both ( resource $stmt [, int $row_number=-1 ] )

Returns an array, indexed by both column name and position, representing a
row in a result set. Note that the row returned by
db2_fetch_both() requires more memory than the
single-indexed arrays returned by db2_fetch_assoc() or
db2_fetch_array().

参数

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

返回值

Returns an associative array with column values indexed by both the column name and 0-indexed column number. The array represents the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

范例

Example #1 Iterating through a forward-only cursor

If you call db2_fetch_both() without a specific row number, it automatically retrieves the next row in the result set. The following example accesses columns in the returned array by both column name and by numeric index.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>

上例将输出：

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Example #2 Retrieving specific rows with db2_fetch_both() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_both() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row['NAME'], $row[2], $row['WEIGHT']);
    $i = $i + 2;
}
?>

上例将输出：

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

参见

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set

db2_fetch_assoc
db2_fetch_object
IBM DB2 函数


Returns an object with properties representing columns in the fetched row

db2_fetch_both
db2_fetch_row
IBM DB2 函数
PHP 手册

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Returns an object with properties representing columns in the fetched row

说明

object db2_fetch_object ( resource $stmt [, int $row_number=-1 ] )

Returns an object in which each property represents a column returned in the row fetched from a result set.

参数

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

返回值

Returns an object representing a single row in the result set. The properties of the object map to the names of the columns in the result set.

The IBM DB2, Cloudscape, and Apache Derby database servers typically fold column names to upper-case, so the object properties will reflect that case.

If your SELECT statement calls a scalar function to modify the value of a column, the database servers return the column number as the name of the column in the result set. If you prefer a more descriptive column name and object property, you can use the AS clause to assign a name to the column in the result set.

Returns FALSE if no row was retrieved.

范例

Example #1 A db2_fetch_object() example

The following example issues a SELECT statement with a scalar function, RTRIM, that removes whitespace from the end of the column. Rather than creating an object with the properties "BREED" and "2", we use the AS clause in the SELECT statement to assign the name "name" to the modified column. The database server folds the column names to upper-case, resulting in an object with the properties "BREED" and "NAME".

<?php
$conn = db2_connect($database, $user, $password);

$sql = "SELECT breed, RTRIM(name) AS name
    FROM animals
    WHERE id = ?";

if ($conn) {
    $stmt = db2_prepare($conn, $sql);
    db2_execute($stmt, array(0));

    while ($pet = db2_fetch_object($stmt)) {
        echo "Come here, {$pet->NAME}, my little {$pet->BREED}!";
    }
    db2_close($conn);
}
?>

上例将输出：

Come here, Pook, my little cat!

参见

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set

db2_fetch_both
db2_fetch_row
IBM DB2 函数


Sets the result set pointer to the next row or requested row

db2_fetch_object
db2_field_display_size
IBM DB2 函数
PHP 手册

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Sets the result set pointer to the next row or requested row

说明

bool db2_fetch_row ( resource $stmt [, int $row_number ] )

Use db2_fetch_row() to iterate through a result set, or to point to a specific row in a result set if you requested a scrollable cursor.

To retrieve individual fields from the result set, call the db2_result() function.

Rather than calling db2_fetch_row() and db2_result(), most applications will call one of db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array() to advance the result set pointer and return a complete row as an array.

参数

stmt

A valid stmt resource.

row_number

With scrollable cursors, you can request a specific row number in the result set. Row numbering is 1-indexed.

返回值

Returns TRUE if the requested row exists in the result set. Returns FALSE if the requested row does not exist in the result set.

范例

Example #1 Iterating through a result set

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 1);
    print "$name $breed";
}
?>

上例将输出：

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Example #2 i5/OS recommended alternatives to db2_fetch_row/db2_result

On i5/OS it is recommended that you use db2_fetch_both(), db2_fetch_array(), or db2_fetch_object() over db2_fetch_row()/db2_result(). In general db2_fetch_row()/db2_result() have more issues with various column types in EBCIDIC to ASCII translation, including possible truncation in DBCS applications. You may also find the performance of db2_fetch_both(), db2_fetch_array(), and db2_fetch_object() to be superior to db2_fetch_row()/db2_result().

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

上例将输出：

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

参见

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_result() - Returns a single column from a row in the result set

db2_fetch_object
db2_field_display_size
IBM DB2 函数


Returns the maximum number of bytes required to display a column

db2_fetch_row
db2_field_name
IBM DB2 函数
PHP 手册

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Returns the maximum number of bytes required to display a column

说明

int db2_field_display_size ( resource $stmt , mixed $column )

Returns the maximum number of bytes required to display a column in a result set.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns an integer value with the maximum number of bytes required to display the specified column. If the column does not exist in the result set, db2_field_display_size() returns FALSE.

参见

  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_fetch_row
db2_field_name
IBM DB2 函数


Returns the name of the column in the result set

db2_field_display_size
db2_field_num
IBM DB2 函数
PHP 手册

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Returns the name of the column in the result set

说明

string db2_field_name ( resource $stmt , mixed $column )

Returns the name of the specified column in the result set.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns a string containing the name of the specified column. If the specified column does not exist in the result set, db2_field_name() returns FALSE.

参见

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_field_display_size
db2_field_num
IBM DB2 函数


Returns the position of the named column in a result set

db2_field_name
db2_field_precision
IBM DB2 函数
PHP 手册

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Returns the position of the named column in a result set

说明

int db2_field_num ( resource $stmt , mixed $column )

Returns the position of the named column in a result set.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns an integer containing the 0-indexed position of the named column in the result set. If the specified column does not exist in the result set, db2_field_num() returns FALSE.

参见

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_field_name
db2_field_precision
IBM DB2 函数


Returns the precision of the indicated column in a result set

db2_field_num
db2_field_scale
IBM DB2 函数
PHP 手册

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Returns the precision of the indicated column in a result set

说明

int db2_field_precision ( resource $stmt , mixed $column )

Returns the precision of the indicated column in a result set.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns an integer containing the precision of the specified column. If the specified column does not exist in the result set, db2_field_precision() returns FALSE.

参见

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_field_num
db2_field_scale
IBM DB2 函数


Returns the scale of the indicated column in a result set

db2_field_precision
db2_field_type
IBM DB2 函数
PHP 手册

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Returns the scale of the indicated column in a result set

说明

int db2_field_scale ( resource $stmt , mixed $column )

Returns the scale of the indicated column in a result set.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns an integer containing the scale of the specified column. If the specified column does not exist in the result set, db2_field_scale() returns FALSE.

参见

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_field_precision
db2_field_type
IBM DB2 函数


Returns the data type of the indicated column in a result set

db2_field_scale
db2_field_width
IBM DB2 函数
PHP 手册

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Returns the data type of the indicated column in a result set

说明

string db2_field_type ( resource $stmt , mixed $column )

Returns the data type of the indicated column in a result set.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns a string containing the defined data type of the specified column. If the specified column does not exist in the result set, db2_field_type() returns FALSE.

参见

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_field_scale
db2_field_width
IBM DB2 函数


Returns the width of the current value of the indicated column in a result set

db2_field_type
db2_foreign_keys
IBM DB2 函数
PHP 手册

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Returns the width of the current value of the indicated column in a result set

说明

int db2_field_width ( resource $stmt , mixed $column )

Returns the width of the current value of the indicated column in a result set. This is the maximum width of the column for a fixed-length data type, or the actual width of the column for a variable-length data type.

参数

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

返回值

Returns an integer containing the width of the specified character or binary data type column in a result set. If the specified column does not exist in the result set, db2_field_width() returns FALSE.

参见

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set

db2_field_type
db2_foreign_keys
IBM DB2 函数


Returns a result set listing the foreign keys for a table

db2_field_width
db2_free_result
IBM DB2 函数
PHP 手册

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Returns a result set listing the foreign keys for a table

说明

resource db2_foreign_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Returns a result set listing the foreign keys for a table.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. If schema is NULL, db2_foreign_keys() matches the schema for the current connection.

table-name

The name of the table.

返回值

Returns a statement resource with a result set containing rows describing the foreign keys for the specified table. The result set is composed of the following columns:

Column name | Description
PKTABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
PKTABLE_SCHEM | Name of the schema for the table containing the primary key.
PKTABLE_NAME | Name of the table containing the primary key.
PKCOLUMN_NAME | Name of the column containing the primary key.
FKTABLE_CAT | Name of the catalog for the table containing the foreign key. The value is NULL if this table does not have catalogs.
FKTABLE_SCHEM | Name of the schema for the table containing the foreign key.
FKTABLE_NAME | Name of the table containing the foreign key.
FKCOLUMN_NAME | Name of the column containing the foreign key.
KEY_SEQ | 1-indexed position of the column in the key.
UPDATE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is UPDATE.
DELETE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is DELETE.
FK_NAME | The name of the foreign key.
PK_NAME | The name of the primary key.
DEFERRABILITY | An integer value representing whether the foreign key deferrability is SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE, or SQL_NOT_DEFERRABLE.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_field_width
db2_free_result
IBM DB2 函数


Frees resources associated with a result set

db2_foreign_keys
db2_free_stmt
IBM DB2 函数
PHP 手册

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Frees resources associated with a result set

说明

bool db2_free_result ( resource $stmt )

Frees the system and database resources that are associated with a result set. These resources are freed implicitly when a script finishes, but you can call db2_free_result() to explicitly free the result set resources before the end of the script.

参数

stmt

A valid statement resource.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • db2_free_stmt() - Frees resources associated with the indicated statement resource

db2_foreign_keys
db2_free_stmt
IBM DB2 函数


Frees resources associated with the indicated statement resource

db2_free_result
db2_get_option
IBM DB2 函数
PHP 手册

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Frees resources associated with the indicated statement resource

说明

bool db2_free_stmt ( resource $stmt )

Frees the system and database resources that are associated with a statement resource. These resources are freed implicitly when a script finishes, but you can call db2_free_stmt() to explicitly free the statement resources before the end of the script.

参数

stmt

A valid statement resource.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • db2_free_result() - Frees resources associated with a result set

db2_free_result
db2_get_option
IBM DB2 函数


Retrieves an option value for a statement resource or a connection resource

db2_free_stmt
db2_last_insert_id
IBM DB2 函数
PHP 手册

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Retrieves an option value for a statement resource or a connection resource

说明

string db2_get_option ( resource $resource , string $option )

Retrieves the value of a specified option value for a statement resource or a connection resource.

参数

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

option

A valid statement or connection options. The following new options are available as of ibm_db2 version 1.6.0. They provide useful tracking information that can be set during execution with db2_get_option().

Note: Note
Prior versions of ibm_db2 do not support these new options.
When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.
To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Note: Note
DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Note: Note
DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Note: Note
DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Note: Note
DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

返回值

Returns the current setting of the connection attribute provided on success or FALSE on failure.

范例

Example #1 Setting and retrieving parameters through a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$user     = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($database, $user, $password);

echo "Client attributes passed through connection string:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes through connection string */
/* Access the options specified */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";

$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";

$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";

echo "Client attributes passed post-connection:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes after a connection is made */
/* Access the options specified */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";

$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";

$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>

上例将输出：

Client attributes passed through connection string:
db2inst1
account
myapp
workstation
Client attributes passed post-connection:
db2inst1
account
myapp
workstation

参见

  • db2_connect() - Returns a connection to a database
  • db2_cursor_type() - Returns the cursor type used by a statement resource
  • db2_exec() - Executes an SQL statement directly
  • db2_set_option() - Set options for connection or statement resources
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_prepare() - Prepares an SQL statement to be executed

db2_free_stmt
db2_last_insert_id
IBM DB2 函数


Returns the auto generated ID of the last insert query that successfully executed on this connection

db2_get_option
db2_lob_read
IBM DB2 函数
PHP 手册

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection

说明

int db2_last_insert_id ( resource $resource )

Returns the auto generated ID of the last insert query that successfully executed on this connection.

The result of this function is not affected by any of the following:

  • A single row INSERT statement with a VALUES clause for a table without an identity column.

  • A multiple row INSERT statement with a VALUES clause.

  • An INSERT statement with a fullselect.

  • A ROLLBACK TO SAVEPOINT statement.

参数

resource

A valid connection resource as returned from db2_connect() or db2_pconnect(). The value of this parameter cannot be a statement resource or result set resource.

返回值

Returns the auto generated ID of last insert query that successfully executed on this connection.

范例

Example #1 A db2_last_insert_id() example

The following example shows how to return the auto generated ID of last insert query that successfully executed on this connection.

<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
    $createTable = "CREATE TABLE lastInsertID
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    $stmt = @db2_exec($conn, $createTable);

    /* Checking for single row inserted. */
    $stmt = db2_exec($conn, $insertTable);
    $ret =  db2_last_insert_id($conn);
    if($ret) {
        echo "Last Insert ID is : " . $ret . "\n";
    } else {
        echo "No Last insert ID.\n";
    }

    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

上例将输出：

Last Insert ID is : 1

db2_get_option
db2_lob_read
IBM DB2 函数


Gets a user defined size of LOB files with each invocation

db2_last_insert_id
db2_next_result
IBM DB2 函数
PHP 手册

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Gets a user defined size of LOB files with each invocation

说明

string db2_lob_read ( resource $stmt , int $colnum , int $length )

Use db2_lob_read() to iterate through a specified column of a result set and retrieve a user defined size of LOB data.

参数

stmt

A valid stmt resource containing LOB data.

colnum

A valid column number in the result set of the stmt resource.

length

The size of the LOB data to be retrieved from the stmt resource.

返回值

Returns the amount of data the user specifies. Returns FALSE if the data cannot be retrieved.

范例

Example #1 Iterating through different types of data

<?php

/* Database Connection Parameters */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($db,$username,$password);

if ($conn) {
    $drop = 'DROP TABLE clob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_clob FROM clob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }

    $drop = 'DROP TABLE blob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_blob FROM blob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }
} else {
    echo 'no connection: ' . db2_conn_errormsg();
}

?>

上例将输出：

Loop 0: THIS I
Loop 1: S A CL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  CLOB
Loop 6: TEST.
Loop 0: THIS I
Loop 1: S A BL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  BLOB
Loop 6: TEST.

参见

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_exec() - Executes an SQL statement directly
  • db2_execute() - Executes a prepared SQL statement
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set

db2_last_insert_id
db2_next_result
IBM DB2 函数


Requests the next result set from a stored procedure

db2_lob_read
db2_num_fields
IBM DB2 函数
PHP 手册

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Requests the next result set from a stored procedure

说明

resource db2_next_result ( resource $stmt )

A stored procedure can return zero or more result sets. While you handle the first result set in exactly the same way you would handle the results returned by a simple SELECT statement, to fetch the second and subsequent result sets from a stored procedure you must call the db2_next_result() function and return the result to a uniquely named PHP variable.

参数

stmt

A prepared statement returned from db2_exec() or db2_execute().

返回值

Returns a new statement resource containing the next result set if the stored procedure returned another result set. Returns FALSE if the stored procedure did not return another result set.

范例

Example #1 Calling a stored procedure that returns multiple result sets

In the following example, we call a stored procedure that returns three result sets. The first result set is fetched directly from the same statement resource on which we invoked the CALL statement, while the second and third result sets are fetched from statement resources returned from our calls to the db2_next_result() function.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
  $stmt = db2_exec($conn, 'CALL multiResults()');

  print "Fetching first result set\n";
  while ($row = db2_fetch_array($stmt)) {
    var_dump($row);
  }

  print "\nFetching second result set\n";
  $res = db2_next_result($stmt);
  if ($res) {
    while ($row = db2_fetch_array($res)) {
      var_dump($row);
    }
  }

  print "\nFetching third result set\n";
  $res2 = db2_next_result($stmt);
  if ($res2) {
    while ($row = db2_fetch_array($res2)) {
      var_dump($row);
    }
  }

  db2_close($conn);
}
?>

上例将输出：

Fetching first result set
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Fetching second result set
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "llama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "horse"
  [3]=>
  string(6) "350.00"
}

Fetching third result set
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}

db2_lob_read
db2_num_fields
IBM DB2 函数


Returns the number of fields contained in a result set

db2_next_result
db2_num_rows
IBM DB2 函数
PHP 手册

db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields — Returns the number of fields contained in a result set

说明

int db2_num_fields ( resource $stmt )

Returns the number of fields contained in a result set. This is most useful for handling the result sets returned by dynamically generated queries, or for result sets returned by stored procedures, where your application cannot otherwise know how to retrieve and use the results.

参数

stmt

A valid statement resource containing a result set.

返回值

Returns an integer value representing the number of fields in the result set associated with the specified statement resource. Returns FALSE if the statement resource is not a valid input value.

范例

Example #1 Retrieving the number of fields in a result set

The following example demonstrates how to retrieve the number of fields returned in a result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "There are {$columns} columns in the result set.";
?>

上例将输出：

There are 4 columns in the result set.

参见

  • db2_execute() - Executes a prepared SQL statement
  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set

db2_next_result
db2_num_rows
IBM DB2 函数


Returns the number of rows affected by an SQL statement

db2_num_fields
db2_pclose
IBM DB2 函数
PHP 手册

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Returns the number of rows affected by an SQL statement

说明

int db2_num_rows ( resource $stmt )

Returns the number of rows deleted, inserted, or updated by an SQL statement.

To determine the number of rows that will be returned by a SELECT statement, issue SELECT COUNT(*) with the same predicates as your intended SELECT statement and retrieve the value.

If your application logic checks the number of rows returned by a SELECT statement and branches if the number of rows is 0, consider modifying your application to attempt to return the first row with one of db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array(), or db2_fetch_row(), and branch if the fetch function returns FALSE.

Note: If you issue a SELECT statement using a scrollable cursor, db2_num_rows() returns the number of rows returned by the SELECT statement. However, the overhead associated with scrollable cursors significantly degrades the performance of your application, so if this is the only reason you are considering using scrollable cursors, you should use a forward-only cursor and either call SELECT COUNT(*) or rely on the boolean return value of the fetch functions to achieve the equivalent functionality with much better performance.

参数

stmt

A valid stmt resource containing a result set.

返回值

Returns the number of rows affected by the last SQL statement issued by the specified statement handle.

db2_num_fields
db2_pclose
IBM DB2 函数


Closes a persistent database connection

db2_num_rows
db2_pconnect
IBM DB2 函数
PHP 手册

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Closes a persistent database connection

说明

bool db2_pclose ( resource $resource )

This function closes a DB2 client connection created with db2_pconnect() and returns the corresponding resources to the database server.

Note: This function is only available on i5/OS in response to i5/OS system administration requests.

If you have a persistent DB2 client connection created with db2_pconnect(), you may use this function to close the connection. To avoid substantial connection performance penalties, this function should only be used in rare cases when the persistent connection has become unresponsive or the persistent connection will not be needed for a long period of time.

参数

connection

Specifies an active DB2 client connection.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Closing a persistent connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2 i5/OS database.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

上例将输出：

Connection was successfully closed.

参见

  • db2_close() - Closes a database connection
  • db2_pconnect() - Returns a persistent connection to a database

db2_num_rows
db2_pconnect
IBM DB2 函数


Returns a persistent connection to a database

db2_pclose
db2_prepare
IBM DB2 函数
PHP 手册

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Returns a persistent connection to a database

说明

resource db2_pconnect ( string $database , string $username , string $password [, array $options ] )

Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database. For more information on persistent connections, refer to 数据库永久连接.

Calling db2_close() on a persistent connection always returns TRUE, but the underlying DB2 client connection remains open and waiting to serve the next matching db2_pconnect() request.

参数

database

The database alias in the DB2 client catalog.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

Tip

Conflicting connection attributes used in conjunction with persistent connections can produce indeterminate results on i5/OS. Site policies should be establish for all applications using each persistent connection user profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_pconnect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_pconnect() for the connection handle.

Note: The php.ini setting ibm_db2.i5_allow_commit ==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Note: The php.ini setting ibm_db2.i5_dbcs_alloc ==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Note: i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

返回值

Returns a connection handle resource if the connection attempt is successful. db2_pconnect() tries to reuse an existing connection resource that exactly matches the database , username , and password parameters. If the connection attempt fails, db2_pconnect() returns FALSE.

范例

Example #1 A db2_pconnect() example

In the following example, the first call to db2_pconnect() returns a new persistent connection resource. The second call to db2_pconnect() returns a persistent connection resource that simply reuses the first persistent connection resource.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
    echo "Persistent connection succeeded.";
}
else {
    echo "Persistent connection failed.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
    echo "Second persistent connection succeeded.";
}
else {
    echo "Second persistent connection failed.";
}
?>

上例将输出：

Persistent connection succeeded.
Second persistent connection succeeded.

Example #2 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

上例将输出：

Explicit trusted connection succeeded.
User has been switched.

参见

  • db2_connect() - Returns a connection to a database

db2_pclose
db2_prepare
IBM DB2 函数


Prepares an SQL statement to be executed

db2_pconnect
db2_primary_keys
IBM DB2 函数
PHP 手册

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Prepares an SQL statement to be executed

说明

resource db2_prepare ( resource $connection , string $statement [, array $options ] )

db2_prepare() creates a prepared SQL statement which can include 0 or more parameter markers (? characters) representing parameters for input, output, or input/output. You can pass parameters to the prepared statement using db2_bind_param(), or for input values only, as an array passed to db2_execute().

There are three main advantages to using prepared statements in your application:

  • Performance: when you prepare a statement, the database server creates an optimized access plan for retrieving data with that statement. Subsequently issuing the prepared statement with db2_execute() enables the statements to reuse that access plan and avoids the overhead of dynamically creating a new access plan for every statement you issue.

  • Security: when you prepare a statement, you can include parameter markers for input values. When you execute a prepared statement with input values for placeholders, the database server checks each input value to ensure that the type matches the column definition or parameter definition.

  • Advanced functionality: Parameter markers not only enable you to pass input values to prepared SQL statements, they also enable you to retrieve OUT and INOUT parameters from stored procedures using db2_bind_param().

参数

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement, optionally containing one or more parameter markers..

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

cursor

Passing the DB2_FORWARD_ONLY value requests a forward-only cursor for this SQL statement. This is the default type of cursor, and it is supported by all database servers. It is also much faster than a scrollable cursor.

Passing the DB2_SCROLLABLE value requests a scrollable cursor for this SQL statement. This type of cursor enables you to fetch rows non-sequentially from the database server. However, it is only supported by DB2 servers, and is much slower than forward-only cursors.

返回值

Returns a statement resource if the SQL statement was successfully parsed and prepared by the database server. Returns FALSE if the database server returned an error. You can determine which error was returned by calling db2_stmt_error() or db2_stmt_errormsg().

范例

Example #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    foreach ($animals as $animal) {
        $result = db2_execute($stmt, $animal);
    }
}
?>

参见

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_execute() - Executes a prepared SQL statement
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message

db2_pconnect
db2_primary_keys
IBM DB2 函数


Returns a result set listing primary keys for a table

db2_prepare
db2_procedure_columns
IBM DB2 函数
PHP 手册

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Returns a result set listing primary keys for a table

说明

resource db2_primary_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Returns a result set listing the primary keys for a table.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. If schema is NULL, db2_primary_keys() matches the schema for the current connection.

table-name

The name of the table.

返回值

Returns a statement resource with a result set containing rows describing the primary keys for the specified table. The result set is composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema for the table containing the primary key.
TABLE_NAME | Name of the table containing the primary key.
COLUMN_NAME | Name of the column containing the primary key.
KEY_SEQ | 1-indexed position of the column in the key.
PK_NAME | The name of the primary key.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_prepare
db2_procedure_columns
IBM DB2 函数


Returns a result set listing stored procedure parameters

db2_primary_keys
db2_procedures
IBM DB2 函数
PHP 手册

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Returns a result set listing stored procedure parameters

说明

resource db2_procedure_columns ( resource $connection , string $qualifier , string $schema , string $procedure , string $parameter )

Returns a result set listing the parameters for one or more stored procedures.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

parameter

The name of the parameter. This parameter accepts a search pattern containing _ and % as wildcards. If this parameter is NULL, all parameters for the specified stored procedures are returned.

返回值

Returns a statement resource with a result set containing rows describing the parameters for the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is NULL if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
COLUMN_NAME | Name of the parameter.
COLUMN_TYPE

An integer value representing the type of the parameter:

Return value | Parameter type
1 (SQL_PARAM_INPUT) | Input (IN) parameter.
2 (SQL_PARAM_INPUT_OUTPUT) | Input/output (INOUT) parameter.
3 (SQL_PARAM_OUTPUT) | Output (OUT) parameter.
DATA_TYPE | The SQL data type for the parameter represented as an integer value.
TYPE_NAME | A string representing the data type for the parameter.
COLUMN_SIZE | An integer value representing the size of the parameter.
BUFFER_LENGTH | Maximum number of bytes necessary to store data for this parameter.
DECIMAL_DIGITS | The scale of the parameter, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the parameter is nullable or not.
REMARKS | Description of the parameter.
COLUMN_DEF | Default value for the parameter.
SQL_DATA_TYPE | An integer value representing the size of the parameter.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or NULL for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type parameter, which matches COLUMN_SIZE for single-byte character set data, or NULL for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the parameter in the CALL statement.
IS_NULLABLE | A string value where 'YES' means that the parameter accepts or returns NULL values and 'NO' means that the parameter does not accept or return NULL values.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_primary_keys
db2_procedures
IBM DB2 函数


Returns a result set listing the stored procedures registered in a database

db2_procedure_columns
db2_result
IBM DB2 函数
PHP 手册

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Returns a result set listing the stored procedures registered in a database

说明

resource db2_procedures ( resource $connection , string $qualifier , string $schema , string $procedure )

Returns a result set listing the stored procedures registered in a database.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

返回值

Returns a statement resource with a result set containing rows describing the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is NULL if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
NUM_INPUT_PARAMS | Number of input (IN) parameters for the stored procedure.
NUM_OUTPUT_PARAMS | Number of output (OUT) parameters for the stored procedure.
NUM_RESULT_SETS | Number of result sets returned by the stored procedure.
REMARKS | Any comments about the stored procedure.
PROCEDURE_TYPE | Always returns 1, indicating that the stored procedure does not return a return value.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_procedure_columns
db2_result
IBM DB2 函数


Returns a single column from a row in the result set

db2_procedures
db2_rollback
IBM DB2 函数
PHP 手册

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Returns a single column from a row in the result set

说明

mixed db2_result ( resource $stmt , mixed $column )

Use db2_result() to return the value of a specified column in the current row of a result set. You must call db2_fetch_row() before calling db2_result() to set the location of the result set pointer.

参数

stmt

A valid stmt resource.

column

Either an integer mapping to the 0-indexed field in the result set, or a string matching the name of the column.

返回值

Returns the value of the requested field if the field exists in the result set. Returns NULL if the field does not exist, and issues a warning.

范例

Example #1 A db2_result() example

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 'BREED');
    print "$name $breed";
}
?>

上例将输出：

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

参见

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row

db2_procedures
db2_rollback
IBM DB2 函数


Rolls back a transaction

db2_result
db2_server_info
IBM DB2 函数
PHP 手册

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — Rolls back a transaction

说明

bool db2_rollback ( resource $connection )

Rolls back an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_rollback() normally has no effect unless AUTOCOMMIT has been turned off for the connection resource.

Note: If the specified connection resource is a persistent connection, all transactions in progress for all applications using that persistent connection will be rolled back. For this reason, persistent connections are not recommended for use in applications that require transactions.

参数

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Rolling back a DELETE statement

In the following example, we count the number of rows in a table, turn off AUTOCOMMIT mode on a database connection, delete all of the rows in the table and return the count of 0 to prove that the rows have been removed. We then issue db2_rollback() and return the updated count of rows in the table to show that the number is the same as before we issued the DELETE statement. The return to the original state of the table demonstrates that the roll back of the transaction succeeded.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Turn AUTOCOMMIT off
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Delete all rows from ANIMALS
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Roll back the DELETE statement
    db2_rollback( $conn );

    $stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";
    db2_close($conn);
}
?>

上例将输出：

7
0
7

参见

  • db2_autocommit() - Returns or sets the AUTOCOMMIT state for a database connection
  • db2_commit() - Commits a transaction

db2_result
db2_server_info
IBM DB2 函数


Returns an object with properties that describe the DB2 database server

db2_rollback
db2_set_option
IBM DB2 函数
PHP 手册

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Returns an object with properties that describe the DB2 database server

说明

object db2_server_info ( resource $connection )

This function returns an object with read-only properties that return information about the IBM DB2, Cloudscape, or Apache Derby database server. The following table lists the database server properties:

Database server properties
Property name | Return type | Description
DBMS_NAME | string | The name of the database server to which you are connected. For DB2 servers this is a combination of DB2 followed by the operating system on which the database server is running.
DBMS_VER | string | The version of the database server, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
DB_CODEPAGE | int | The code page of the database to which you are connected.
DB_NAME | string | The name of the database to which you are connected.
DFT_ISOLATION string

The default transaction isolation level supported by the server:

UR

Uncommitted read: changes are immediately visible by all concurrent transactions.

CS

Cursor stability: a row read by one transaction can be altered and committed by a second concurrent transaction.

RS

Read stability: a transaction can add or remove rows matching a search condition or a pending transaction.

RR

Repeatable read: data affected by pending transaction is not available to other transactions.

NC

No commit: any changes are visible at the end of a successful operation. Explicit commits and rollbacks are not allowed.

IDENTIFIER_QUOTE_CHAR | string | The character used to delimit an identifier.
INST_NAME | string | The instance on the database server that contains the database.
ISOLATION_OPTION | array | An array of the isolation options supported by the database server. The isolation options are described in the DFT_ISOLATION property.
KEYWORDS | array | An array of the keywords reserved by the database server.
LIKE_ESCAPE_CLAUSE | bool | TRUE if the database server supports the use of % and _ wildcard characters. FALSE if the database server does not support these wildcard characters.
MAX_COL_NAME_LEN | int | Maximum length of a column name supported by the database server, expressed in bytes.
MAX_IDENTIFIER_LEN | int | Maximum length of an SQL identifier supported by the database server, expressed in characters.
MAX_INDEX_SIZE | int | Maximum size of columns combined in an index supported by the database server, expressed in bytes.
MAX_PROC_NAME_LEN | int | Maximum length of a procedure name supported by the database server, expressed in bytes.
MAX_ROW_SIZE | int | Maximum length of a row in a base table supported by the database server, expressed in bytes.
MAX_SCHEMA_NAME_LEN | int | Maximum length of a schema name supported by the database server, expressed in bytes.
MAX_STATEMENT_LEN | int | Maximum length of an SQL statement supported by the database server, expressed in bytes.
MAX_TABLE_NAME_LEN | int | Maximum length of a table name supported by the database server, expressed in bytes.
NON_NULLABLE_COLUMNS | bool | TRUE if the database server supports columns that can be defined as NOT NULL, FALSE if the database server does not support columns defined as NOT NULL.
PROCEDURES | bool | TRUE if the database server supports the use of the CALL statement to call stored procedures, FALSE if the database server does not support the CALL statement.
SPECIAL_CHARS | string | A string containing all of the characters other than a-Z, 0-9, and underscore that can be used in an identifier name.
SQL_CONFORMANCE string

The level of conformance to the ANSI/ISO SQL-92 specification offered by the database server:

ENTRY

Entry-level SQL-92 compliance.

FIPS127

FIPS-127-2 transitional compliance.

FULL

Full level SQL-92 compliance.

INTERMEDIATE

Intermediate level SQL-92 compliance.

参数

connection

Specifies an active DB2 client connection.

返回值

Returns an object on a successful call. Returns FALSE on failure.

范例

Example #1 A db2_server_info() example

To retrieve information about the server, you must pass a valid database connection resource to db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>

上例将输出：

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

参见

  • db2_client_info() - Returns an object with properties that describe the DB2 database client

db2_rollback
db2_set_option
IBM DB2 函数


Set options for connection or statement resources

db2_server_info
db2_special_columns
IBM DB2 函数
PHP 手册

db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_option — Set options for connection or statement resources

说明

bool db2_set_option ( resource $resource , array $options , int $type )

Sets options for a statement resource or a connection resource. You cannot set options for result set resources.

参数

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

options

An associative array containing valid statement or connection options. This parameter can be used to change autocommit values, cursor types (scrollable or forward), and to specify the case of the column names (lower, upper, or natural) that will appear in a result set.

autocommit

Passing DB2_AUTOCOMMIT_ON turns autocommit on for the specified connection resource.

Passing DB2_AUTOCOMMIT_OFF turns autocommit off for the specified connection resource.

cursor

Passing DB2_FORWARD_ONLY specifies a forward-only cursor for a statement resource. This is the default cursor type, and is supported by all database servers.

Passing DB2_SCROLLABLE specifies a scrollable cursor for a statement resource. Scrollable cursors enable result set rows to be accessed in non-sequential order, but are only supported by IBM DB2 Universal Database databases.

binmode

Passing DB2_BINARY specifies that binary data will be returned as is. This is the default mode. This is the equivalent of setting ibm_db2.binmode=1 in php.ini.

Passing DB2_CONVERT specifies that binary data will be converted to hexadecimal encoding, and will be returned as such. This is the equivalent of setting ibm_db2.binmode=2 in php.ini.

Passing DB2_PASSTHRU specifies that binary data will be converted to NULL. This is the equivalent of setting ibm_db2.binmode=3 in php.ini.

db2_attr_case

Passing DB2_CASE_LOWER specifies that column names of the result set are returned in lower case.

Passing DB2_CASE_UPPER specifies that column names of the result set are returned in upper case.

Passing DB2_CASE_NATURAL specifies that column names of the result set are returned in natural case.

deferred_prepare

Passing DB2_DEFERRED_PREPARE_ON turns deferred prepare on for the specified statement resource.

Passing DB2_DEFERRED_PREPARE_OFF turns deferred prepare off for the specified statement resource.

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later. These options apply only when running PHP and ibm_db2 natively on i5 systems.

i5_fetch_only

DB2_I5_FETCH_ON - Cursors are read-only and cannot be used for positioned updates or deletes. This is the default unless SQL_ATTR_FOR_FETCH_ONLY environment has been set to SQL_FALSE.

DB2_I5_FETCH_OFF - Cursors can be used for positioned updates and deletes.

The following new options are available in ibm_db2 version 1.7.0 and later.

trusted_user

To switch the user to a trusted user, pass the User ID (String) of the trusted user as the value of this key. This option can be set on a connection resource only. To use this option, trusted context must be enabled on the connection resource.

trusted_password

The password (String) that corresponds to the user specified by the trusted_user key.

The following new options are available in ibm_db2 version 1.6.0 and later. These options provide useful tracking information that can be accessed during execution with db2_get_option().

Note: When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.
To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Note: DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Note: DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Note: DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Note: DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

type

An integer value that specifies the type of resource that was passed into the function. The type of resource and this value must correspond.

Passing 1 as the value specifies that a connection resource has been passed into the function.

Passing any integer not equal to 1 as the value specifies that a statement resource has been passed into the function.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
autocommit | DB2_AUTOCOMMIT_ON | X | - | -
autocommit | DB2_AUTOCOMMIT_OFF | X | - | -
cursor | DB2_SCROLLABLE | - | X | -
cursor | DB2_FORWARD_ONLY | - | X | -
binmode | DB2_BINARY | X | X | -
binmode | DB2_CONVERT | X | X | -
binmode | DB2_PASSTHRU | X | X | -
db2_attr_case | DB2_CASE_LOWER | X | X | -
db2_attr_case | DB2_CASE_UPPER | X | X | -
db2_attr_case | DB2_CASE_NATURAL | X | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_ON | - | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_OFF | - | X | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -
trusted_user | <USER NAME> (String) | X | - | -
trusted_password | <PASSWORD> (String) | X | - | -
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Setting one parameter with a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

上例将输出：

Options Set Successfully

Example #2 Setting multiple parameters with a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

上例将输出：

Options Set Successfully

Example #3 Setting multiple parameters with an invalid key

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
             'MY_INVALID_KEY' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

上例将输出：

Could Not Set Options

Example #4 Setting multiple parameters with an invalid value

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => 'INVALID_VALUE',
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

上例将输出：

Could Not Set Options

Example #5 Setting multiple parameters with a connection resource and the wrong type

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and the wrong type value */
$result = db2_set_option($conn, $options, 2);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

上例将输出：

Could Not Set Options

Example #6 Setting multiple parameters with the wrong resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');

/* Call the function using the wrong resource, and the correct options array, and type values */
$result = db2_set_option($stmt, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

上例将输出：

Could Not Set Options

Example #7 Putting it all together

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
                        'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Call the function using the correct resource, options array, and type values */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));

/* Get Row 2 before Row 1 since Scrollable Cursor */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));

?>

上例将输出：

Array
(
    [empno] => 000140
    [firstnme] => HEATHER
    [midinit] => A
    [lastname] => NICHOLLS
    [workdept] => C01
    [phoneno] => 1793
    [hiredate] => 1976-12-15
    [job] => ANALYST
    [edlevel] => 18
    [sex] => F
    [birthdate] => 1946-01-19
    [salary] => 28420.00
    [bonus] => 600.00
    [comm] => 2274.00
)

Array
(
    [empno] => 000130
    [firstnme] => DELORES
    [midinit] => M
    [lastname] => QUINTANA
    [workdept] => C01
    [phoneno] => 4578
    [hiredate] => 1971-07-28
    [job] => ANALYST
    [edlevel] => 16
    [sex] => F
    [birthdate] => 1925-09-15
    [salary] => 23800.00
    [bonus] => 500.00
    [comm] => 1904.00
)

Example #8 i5/OS cursors are read-only

<?php
  $conn = db2_connect("", "", "", array("i5_lib"=>"nobody"));
  $stmt = db2_prepare($conn, 'select * from names where first = ?');
  $name = "first2";
  db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
  $options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
  db2_set_option($stmt,$options,0);
  if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
      echo "{$row[0]} {$row[1]}";
    }
  }
?>

上例将输出：

first2 last2

参见

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_exec() - Executes an SQL statement directly
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_cursor_type() - Returns the cursor type used by a statement resource

db2_server_info
db2_special_columns
IBM DB2 函数


Returns a result set listing the unique row identifier columns for a table

db2_set_option
db2_statistics
IBM DB2 函数
PHP 手册

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Returns a result set listing the unique row identifier columns for a table

说明

resource db2_special_columns ( resource $connection , string $qualifier , string $schema , string $table_name , int $scope )

Returns a result set listing the unique row identifier columns for a table.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables.

table_name

The name of the table.

scope

Integer value representing the minimum duration for which the unique row identifier is valid. This can be one of the following values:

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.

返回值

Returns a statement resource with a result set containing rows with unique row identifier information for a table. The rows are composed of the following columns:

Column name | Description
SCOPE

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.
COLUMN_NAME | Name of the unique column.
DATA_TYPE | SQL data type for the column.
TYPE_NAME | Character string representation of the SQL data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
PSEUDO_COLUMN | Always returns 1.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_set_option
db2_statistics
IBM DB2 函数


Returns a result set listing the index and statistics for a table

db2_special_columns
db2_stmt_error
IBM DB2 函数
PHP 手册

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Returns a result set listing the index and statistics for a table

说明

resource db2_statistics ( resource $connection , string $qualifier , string $schema , string $table-name , bool $unique )

Returns a result set listing the index and statistics for a table.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema that contains the targeted table. If this parameter is NULL, the statistics and indexes are returned for the schema of the current user.

table_name

The name of the table.

unique

An integer value representing the type of index information to return.

0

Return only the information for unique indexes on the table.

1

Return the information for all indexes on the table.

返回值

Returns a statement resource with a result set containing rows describing the statistics and indexes for the base tables matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
NON_UNIQUE

An integer value representing whether the index prohibits unique values, or whether the row represents statistics on the table itself:

Return value | Parameter type
0 (SQL_FALSE) | The index allows duplicate values.
1 (SQL_TRUE) | The index values must be unique.
NULL | This row is statistics information for the table itself.
INDEX_QUALIFIER | A string value representing the qualifier that would have to be prepended to INDEX_NAME to fully qualify the index.
INDEX_NAME | A string representing the name of the index.
TYPE

An integer value representing the type of information contained in this row of the result set:

Return value | Parameter type
0 (SQL_TABLE_STAT) | The row contains statistics about the table itself.
1 (SQL_INDEX_CLUSTERED) | The row contains information about a clustered index.
2 (SQL_INDEX_HASH) | The row contains information about a hashed index.
3 (SQL_INDEX_OTHER) | The row contains information about a type of index that is neither clustered nor hashed.
ORDINAL_POSITION | The 1-indexed position of the column in the index. NULL if the row contains statistics information about the table itself.
COLUMN_NAME | The name of the column in the index. NULL if the row contains statistics information about the table itself.
ASC_OR_DESC | A if the column is sorted in ascending order, D if the column is sorted in descending order, NULL if the row contains statistics information about the table itself.
CARDINALITY

If the row contains information about an index, this column contains an integer value representing the number of unique values in the index.

If the row contains information about the table itself, this column contains an integer value representing the number of rows in the table.

PAGES

If the row contains information about an index, this column contains an integer value representing the number of pages used to store the index.

If the row contains information about the table itself, this column contains an integer value representing the number of pages used to store the table.

FILTER_CONDITION | Always returns NULL.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_special_columns
db2_stmt_error
IBM DB2 函数


Returns a string containing the SQLSTATE returned by an SQL statement

db2_statistics
db2_stmt_errormsg
IBM DB2 函数
PHP 手册

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement

说明

string db2_stmt_error ([ resource $stmt ] )

Returns a string containing the SQLSTATE value returned by an SQL statement.

If you do not pass a statement resource as an argument to db2_stmt_error(), the driver returns the SQLSTATE value associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value ' . You can also call db2_stmt_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

参数

stmt

A valid statement resource.

返回值

Returns a string containing an SQLSTATE value.

参见

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message

db2_statistics
db2_stmt_errormsg
IBM DB2 函数


Returns a string containing the last SQL statement error message

db2_stmt_error
db2_table_privileges
IBM DB2 函数
PHP 手册

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Returns a string containing the last SQL statement error message

说明

string db2_stmt_errormsg ([ resource $stmt ] )

Returns a string containing the last SQL statement error message.

If you do not pass a statement resource as an argument to db2_stmt_errormsg(), the driver returns the error message associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

参数

stmt

A valid statement resource.

返回值

Returns a string containing the error message and SQLCODE value for the last error that occurred issuing an SQL statement.

参见

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement

db2_stmt_error
db2_table_privileges
IBM DB2 函数


Returns a result set listing the tables and associated privileges in a database

db2_stmt_errormsg
db2_tables
IBM DB2 函数
PHP 手册

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Returns a result set listing the tables and associated privileges in a database

说明

resource db2_table_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table_name ]]] )

Returns a result set listing the tables and associated privileges in a database.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table_name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

返回值

Returns a statement resource with a result set containing rows describing the privileges for the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege that has been granted. This can be one of ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT, or UPDATE.
IS_GRANTABLE | A string value of "YES" or "NO" indicating whether the grantee can grant the privilege to other users.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database

db2_stmt_errormsg
db2_tables
IBM DB2 函数


Returns a result set listing the tables and associated metadata in a database

db2_table_privileges
Ingres
IBM DB2 函数
PHP 手册

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Returns a result set listing the tables and associated metadata in a database

说明

resource db2_tables ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $table-type ]]]] )

Returns a result set listing the tables and associated metadata in a database.

参数

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table-name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

table-type

A list of comma-delimited table type identifiers. To match all table types, pass NULL or an empty string. Valid table type identifiers include: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW, and VIEW.

返回值

Returns a statement resource with a result set containing rows describing the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
TABLE_TYPE | Table type identifier for the table.
REMARKS | Description of the table.

参见

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database

db2_table_privileges
Ingres
IBM DB2 函数


Ingres

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Simple Ingres Example
  • Ingres 函数
    • ingres_autocommit_state — Test if the connection is using autocommit
    • ingres_autocommit — Switch autocommit on or off
    • ingres_close — Close an Ingres database connection
    • ingres_commit — Commit a transaction
    • ingres_connect — Open a connection to an Ingres database
    • ingres_cursor — Gets a cursor name for a given link resource
    • ingres_errno — Gets the last ingres error number generated
    • ingres_error — Gets a meaningful error message for the last error generated
    • ingres_errsqlstate — Gets the last SQLSTATE error code generated
    • ingres_fetch_array — Fetch a row of result into an array
    • ingres_fetch_object — Fetch a row of result into an object
    • ingres_fetch_row — Fetch a row of result into an enumerated array
    • ingres_field_length — Get the length of a field
    • ingres_field_name — Get the name of a field in a query result
    • ingres_field_nullable — Test if a field is nullable
    • ingres_field_precision — Get the precision of a field
    • ingres_field_scale — Get the scale of a field
    • ingres_field_type — Get the type of a field in a query result
    • ingres_num_fields — Get the number of fields returned by the last query
    • ingres_num_rows — Get the number of rows affected or returned by a query
    • ingres_pconnect — Open a persistent connection to an Ingres database
    • ingres_query — Send a SQL query to Ingres
    • ingres_rollback — Roll back a transaction
db2_tables
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access the Ingres RDBMS.

Note: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be committed or rolled back before opening another transaction (which is automatically done when sending the first query).

Ingres
安装/配置
Ingres


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Ingres


需求

To compile PHP with Ingres support, you need the Ingres OpenAPI library and header files.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/ingres.

In order to have these functions available, you must compile PHP with Ingres support by using the --with-ingres[=DIR] option, where DIR is the Ingres base directory, which defaults to /II/ingres. If the II_SYSTEM environment variable isn't correctly set you may have to use --with-ingres=DIR to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environment variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Ingres configuration options
Name | Default | Changeable | Changelog
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Available since PHP 4.0.2. Removed in PHP 5.1.0.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.2. Removed in PHP 5.1.0.
ingres.max_links | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.2. Removed in PHP 5.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Available since PHP 4.0.2. Removed in PHP 5.1.0.
ingres.default_user | NULL | PHP_INI_ALL | Available since PHP 4.0.2. Removed in PHP 5.1.0.
ingres.default_password | NULL | PHP_INI_ALL | Available since PHP 4.0.2. Removed in PHP 5.1.0.
ingres.report_db_warnings | "1" | PHP_INI_ALL | Available since ingres 1.1.
ingres.cursor_mode | "0" | PHP_INI_ALL | Available since ingres 1.1.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Available since ingres 1.2.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Available since ingres 1.2.1.
ingres.timeout | "-1" | PHP_INI_ALL | Available since ingres 1.4.0.
ingres.array_index_start | "1" | PHP_INI_ALL | Available since ingres 1.4.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


资源类型

ingres_connect() and ingres_pconnect() return an Ingres link identifier.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

INGRES_ASSOC (integer)
Columns are returned into the array having the fieldname as the array index.
INGRES_NUM (integer)
Columns are returned into the array having a numerical index to the fields. This index starts with 1, the first field in the result.
INGRES_BOTH (integer)
Columns are returned into the array having both a numerical index and the fieldname as the array index.
INGRES_EXT_VERSION (string)
Specifies the version of the Ingres Extension. Available since version 1.2.0 of the PECL extension.
INGRES_API_VERSION (integer)
Specifies the version of Ingres OpenAPI the extension was built against. Available since version 1.2.0 of the PECL extension.
INGRES_CURSOR_READONLY (integer)
Specifies that Ingres cursors should be opened in 'readonly' mode. Available since version 1.2.0 of the PECL extension.
INGRES_CURSOR_UPDATE (integer)
Specifies that Ingres cursors should be opened 'for update'. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_MULTINATIONAL (integer)
Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_MULTINATIONAL4 (integer)
Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL4. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_FINNISH (integer)
Equivalent to the II_DATE_FORMAT setting of FINNISH. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_ISO (integer)
Equivalent to the II_DATE_FORMAT setting of ISO. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_ISO4 (integer)
Equivalent to the II_DATE_FORMAT setting of ISO4. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_GERMAN (integer)
Equivalent to the II_DATE_FORMAT setting of GERMAN. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_MDY (integer)
Equivalent to the II_DATE_FORMAT setting of MDY. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_DMY (integer)
Equivalent to the II_DATE_FORMAT setting of DMY. Available since version 1.2.0 of the PECL extension.
INGRES_DATE_YMD (integer)
Equivalent to the II_DATE_FORMAT setting of YMD. Available since version 1.2.0 of the PECL extension.
INGRES_MONEY_LEADING (integer)
Specifies the currency character that should be placed at the start of a money value. Equivalent to setting II_MONEY_FORMAT to 'L:'. Available since version 1.2.0 of the PECL extension.
INGRES_MONEY_TRAILING (integer)
Specifies the currency character that should be placed at the end of a money value. Equivalent to setting II_MONEY_FORMAT to 'T:'. Available since version 1.2.0 of the PECL extension.
INGRES_STRUCTURE_BTREE (integer)
Specifies the default table or index structure to BTREE when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_CBTREE (integer)
Specifies the default table or index structure to COMPRESSED BTREE when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_HASH (integer)
Specifies the default table or index structure to HASH when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_CHASH (integer)
Specifies the default table or index structure to COMPRESSED HASH when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_HEAP (integer)
Specifies the default table structure to HEAP when used in combination with the table_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_CHEAP (integer)
Specifies the default table structure to COMPRESSED HEAP when used in combination with the table_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_ISAM (integer)
Specifies the default table or index structure to ISAM when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
INGRES_STRUCTURE_CISAM (integer)
Specifies the default table or index structure to COMPRESSED ISAM when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
资源类型
范例
Ingres


范例

Table of Contents

  • Simple Ingres Example
预定义常量
Simple Ingres Example
Ingres


Simple Ingres Example

范例
Ingres 函数
范例
PHP 手册

This simple example shows how to connect, execute a query, print resulting rows and disconnect from an Ingres database.

Example #1 Simple Ingres Example

<?php
// Connecting, selecting database
$link = ingres_connect('database', 'user', 'password')
    or die('Could not connect: ' . ingres_error($link));
echo 'Connected successfully';

// Select from a table that exists in all Ingres databases
$query = 'SELECT * FROM iirelation';
$returncode = ingres_query($link,$query) or die('Query failed: ' .
ingres_error($link));

// Print results in HTML
// relid - table name
// relowner - table owner
echo "<table>\n";
while ($iirelation = ingres_fetch_object($link)) {
    echo "\t<tr>\n";
    echo "\t\t<td>" . $iirelation->relid . "</td>\n";
    echo "\t\t<td>" . $iirelation->relowner . "</td>\n";
    echo "\t</tr>\n";
}
echo "</table>\n";

// Commit transaction
ingres_commit($link);
// Closing connection
ingres_close($link);
?>

范例
Ingres 函数
范例


Ingres 函数

Table of Contents

  • ingres_autocommit_state — Test if the connection is using autocommit
  • ingres_autocommit — Switch autocommit on or off
  • ingres_close — Close an Ingres database connection
  • ingres_commit — Commit a transaction
  • ingres_connect — Open a connection to an Ingres database
  • ingres_cursor — Gets a cursor name for a given link resource
  • ingres_errno — Gets the last ingres error number generated
  • ingres_error — Gets a meaningful error message for the last error generated
  • ingres_errsqlstate — Gets the last SQLSTATE error code generated
  • ingres_fetch_array — Fetch a row of result into an array
  • ingres_fetch_object — Fetch a row of result into an object
  • ingres_fetch_row — Fetch a row of result into an enumerated array
  • ingres_field_length — Get the length of a field
  • ingres_field_name — Get the name of a field in a query result
  • ingres_field_nullable — Test if a field is nullable
  • ingres_field_precision — Get the precision of a field
  • ingres_field_scale — Get the scale of a field
  • ingres_field_type — Get the type of a field in a query result
  • ingres_num_fields — Get the number of fields returned by the last query
  • ingres_num_rows — Get the number of rows affected or returned by a query
  • ingres_pconnect — Open a persistent connection to an Ingres database
  • ingres_query — Send a SQL query to Ingres
  • ingres_rollback — Roll back a transaction
Simple Ingres Example
ingres_autocommit_state
Ingres


Test if the connection is using autocommit

Ingres 函数
ingres_autocommit
Ingres 函数
PHP 手册

ingres_autocommit_state

(PECL ingres >= 2.0.0)

ingres_autocommit_state — Test if the connection is using autocommit

说明

bool ingres_autocommit_state ( resource $link )

ingres_autocommit_state() is called to determine whether the current link has autocommit enabled or not.

参数

link

The connection link identifier.

返回值

Returns TRUE if autocommit is enabled or FALSE when autocommit is disabled.

参见

  • ingres_autocommit() - Switch autocommit on or off
  • ingres_query() - Send a SQL query to Ingres

Ingres 函数
ingres_autocommit
Ingres 函数


Switch autocommit on or off

ingres_autocommit_state
ingres_close
Ingres 函数
PHP 手册

ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_autocommit — Switch autocommit on or off

说明

bool ingres_autocommit ( resource $link )

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_commit()) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off).

When the autocommit mode is on, every query is automatically committed by the server, as if ingres_commit() was called after every call to ingres_query(). To see if autocommit is enabled use ingres_autocommit_state().

参数

link

The connection link identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ingres_autocommit_state() - Test if the connection is using autocommit
  • ingres_query() - Send a SQL query to Ingres
  • ingres_rollback() - Roll back a transaction
  • ingres_commit() - Commit a transaction

ingres_autocommit_state
ingres_close
Ingres 函数


Close an Ingres database connection

ingres_autocommit
ingres_commit
Ingres 函数
PHP 手册

ingres_close

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_close — Close an Ingres database connection

说明

bool ingres_close ([ resource $link ] )

ingres_close() closes the connection to the Ingres server that's associated with the specified link.

ingres_close() isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_pconnect() - Open a persistent connection to an Ingres database

ingres_autocommit
ingres_commit
Ingres 函数


Commit a transaction

ingres_close
ingres_connect
Ingres 函数
PHP 手册

ingres_commit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_commit — Commit a transaction

说明

bool ingres_commit ([ resource $link ] )

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new one can be open by sending a query with ingres_query().

You can also have the server commit automatically after every query by calling ingres_autocommit() before opening the transaction.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off

ingres_close
ingres_connect
Ingres 函数


Open a connection to an Ingres database

ingres_commit
ingres_cursor
Ingres 函数
PHP 手册

ingres_connect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_connect — Open a connection to an Ingres database

说明

resource ingres_connect ([ string $database [, string $username [, string $password [, array $options ]]]] )

ingres_connect() opens a connection with the given Ingres database .

The connection is closed when the script ends or when ingres_close() is called on this link.

All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time.

参数

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database , ingres.default_user and ingres.default_password .

database

The database name. Must follows the syntax [node_id::]dbname[/svr_class].

username

The Ingres user name.

password

The password associated with username .

options

ingres_connect() options

Option name | Description
date_century_boundary | The threshold by which a 2 digit year is determined to be in the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY.
group | Speficfies the group ID of the user, equivalent to the '-G' flag
role | The role ID of the application. If a role password is required, the parameter value should be specified as "role/password"
effective_user | The ingres user account being impersonated, equivalent to the '-u' flag
dbms_password | The internal database password for the user connecting to Ingres
table_structure

The default structure for new tables. Valid values for table_structure are:

  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_HEAP
  • INGRES_STRUCTURE_ISAM
  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_CHEAP
index_structure

The default structure for new secondary indexes. Valid values for index_structure are:

  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_ISAM
login_local | Determines how the connection user ID and password are used when a VNODE is included in the target database string. If set to TRUE, the user ID and password are used to locally access the VNODE and the VNODE login information is used to establish the DBMS connection. If set to FALSE, the process user ID is used to access the VNODE and the connection user ID and password are used in place of the VNODE login information to establish the DBMS connection. This parameter is ignored if no VNODE is included in the target database string. The default is FALSE.
timezone | Controls the timezone of the session. If not set it will default the the value defined by II_TIMEZONE_NAME. If II_TIMEZONE_NAME is not defined the NA-PACIFIC (GMT-8 with Daylight Savings) is used.
date_format

Sets the allowable input and output format for Ingres dates. Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is not set the default date format is US, e.g. mm/dd/yy. Valid values for date_format are:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US
decimal_separator | The character identifier for decimal data
money_lort

Leading or trailing currency sign. Valid values for money_lort are:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING
money_sign | The currency symbol to be used with the MONEY datatype
money_precision | The precision of the MONEY datatype
float4_precision | Precision of the FLOAT4 datatype
float8_precision | Precision of the FLOAT8 data
blob_segment_length | The amount of data in bytes to fetch at a time when retrieving BLOB/CLOB data, defaults to 4096 bytes when not explicitly set.

返回值

Returns a Ingres link resource on success, or FALSE on failure.

范例

Example #1 ingres_connect() example

<?php
$link = ingres_connect("mydb", "user", "pass")
    or die("Could not connect");
echo "Connected successfully";
ingres_close($link);
?>

Example #2 ingres_connect() example using default link

<?php
ingres_connect("mydb", "user", "pass")
    or die("Could not connect");
echo "Connected successfully";
ingres_close();
?>

参见

  • ingres_pconnect() - Open a persistent connection to an Ingres database
  • ingres_close() - Close an Ingres database connection

ingres_commit
ingres_cursor
Ingres 函数


Gets a cursor name for a given link resource

ingres_connect
ingres_errno
Ingres 函数
PHP 手册

ingres_cursor

(PECL ingres >= 1.1.0)

ingres_cursor — Gets a cursor name for a given link resource

说明

string ingres_cursor ([ resource $link ] )

Returns an string containing the active cursor name. If no cursor is active then NULL is returned.

If a link resource is passed to ingres_cursor() it returns the cursor name recorded for the link. If no link is passed then ingres_cursor() returns the cursor name asssociated with the default link.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns an string containing the active cursor name. If no cursor is active then NULL is returned.

范例

Example #1 ingres_cursor() example

<?php
$link = ingres_connect($database, $user, $password);

ingres_prepare("select * from table", $link);

$cursor_name = ingres_cursor($link);

echo $cursor_name;

?>

参见

  • ingres_prepare()
  • ingres_execute()

ingres_connect
ingres_errno
Ingres 函数


Gets the last ingres error number generated

ingres_cursor
ingres_error
Ingres 函数
PHP 手册

ingres_errno

(PECL ingres >= 1.1.0)

ingres_errno — Gets the last ingres error number generated

说明

int ingres_errno ([ resource $link ] )

Returns an integer containing the last error number. If no error was reported 0 is returned.

If a link resource is passed to ingres_errno() it returns the last error recorded for the link. If no link is passed then ingres_errno() returns the last error reported using the default link.

The function, ingres_errno(), should always be called after executing a database query. Calling another function before ingres_errno() is called, will reset or change any error code from the last Ingres function call.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns an integer containing the last error number. If no error was reported 0 is returned.

范例

Example #1 ingres_errno() example

<?php
$link = ingres_connect($database, $user, $password);

ingres_query("select * from table", $link);

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "An error occured - " . $error_code;
}
?>

参见

  • ingres_error() - Gets a meaningful error message for the last error generated
  • ingres_errsqlstate() - Gets the last SQLSTATE error code generated

ingres_cursor
ingres_error
Ingres 函数


Gets a meaningful error message for the last error generated

ingres_errno
ingres_errsqlstate
Ingres 函数
PHP 手册

ingres_error

(PECL ingres >= 1.1.0)

ingres_error — Gets a meaningful error message for the last error generated

说明

string ingres_error ([ resource $link ] )

Returns a string containing the last error, or NULL if no error has occurred.

If a link resource is passed to ingres_error() it returns the last error recorded for the link. If no link is passed then ingres_error() returns the last error reported using the default link.

The function, ingres_error(), should always be called after executing any database query. Calling another function before ingres_error() is called will reset or change any error message from the last Ingres function call.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns a string containing the last error, or NULL if no error has occurred.

范例

Example #1 ingres_error() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");

$error_text = ingres_error();

if (!is_null($error_text)) {
   echo "An error occured - " . $error_text;
}
?>

参见

  • ingres_errno() - Gets the last ingres error number generated
  • ingres_errsqlstate() - Gets the last SQLSTATE error code generated

ingres_errno
ingres_errsqlstate
Ingres 函数


Gets the last SQLSTATE error code generated

ingres_error
ingres_fetch_array
Ingres 函数
PHP 手册

ingres_errsqlstate

(PECL ingres >= 1.1.0)

ingres_errsqlstate — Gets the last SQLSTATE error code generated

说明

string ingres_errsqlstate ([ resource $link ] )

Returns a string containing the last SQLSTATE, or NULL if no error has occurred.

If a link resource is passed to ingres_errsqlstate() it returns the last error recorded for the link. If no link is passed then ingres_errsqlstate() returns the last error reported using the default link.

The function, ingres_errsqlstate(), should always be called after executing any database query. Calling another function before ingres_errsqlstate() is called will reset or change any error message from the last Ingres function call.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns a string containing the last SQLSTATE, or NULL if no error has occurred.

范例

Example #1 ingres_errsqlstate() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");

$error_sqlstate = ingres_errsqlstate();

if (!is_null($error_sqlstate)) {
   echo "An error occured - " . $error_sqlstate;
}
?>

参见

  • ingres_errno() - Gets the last ingres error number generated
  • ingres_error() - Gets a meaningful error message for the last error generated

ingres_error
ingres_fetch_array
Ingres 函数


Fetch a row of result into an array

ingres_errsqlstate
ingres_fetch_object
Ingres 函数
PHP 手册

ingres_fetch_array

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_array — Fetch a row of result into an array

说明

array ingres_fetch_array ([ int $result_type [, resource $link ]] )

This function is an extended version of ingres_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column.

<?php

ingres_query("select t1.f1 as foo t2.f1 as bar from t1, t2");
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

?>

Speed-wise, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

参数

result_type

result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default).

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 ingres_fetch_array() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_errsqlstate
ingres_fetch_object
Ingres 函数


Fetch a row of result into an object

ingres_fetch_array
ingres_fetch_row
Ingres 函数
PHP 手册

ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_object — Fetch a row of result into an object

说明

object ingres_fetch_object ([ int $result_type [, resource $link ]] )

This function is similar to ingres_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

参数

result_type

The optional argument result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH.

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 ingres_fetch_object() example

<?php
ingres_connect($database, $user, $password);
ingres_query("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_fetch_array
ingres_fetch_row
Ingres 函数


Fetch a row of result into an enumerated array

ingres_fetch_object
ingres_field_length
Ingres 函数
PHP 手册

ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_row — Fetch a row of result into an enumerated array

说明

array ingres_fetch_row ([ resource $link ] )

ingres_fetch_row() returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent call to ingres_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 ingres_fetch_row() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

参见

  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object

ingres_fetch_object
ingres_field_length
Ingres 函数


Get the length of a field

ingres_fetch_row
ingres_field_name
Ingres 函数
PHP 手册

ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_length — Get the length of a field

说明

int ingres_field_length ( resource $result , int $index )

ingres_field_length() returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

参数

result

The query result identifier.

index

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

返回值

Returns the length of a field.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_fetch_row
ingres_field_name
Ingres 函数


Get the name of a field in a query result

ingres_field_length
ingres_field_nullable
Ingres 函数
PHP 手册

ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_name — Get the name of a field in a query result

说明

string ingres_field_name ( resource $result , int $index )

ingres_field_name() returns the name of a field in a query result.

参数

result

The query result identifier.

index

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

返回值

Returns the name of a field in a query result, or FALSE on failure.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_field_length
ingres_field_nullable
Ingres 函数


Test if a field is nullable

ingres_field_name
ingres_field_precision
Ingres 函数
PHP 手册

ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_nullable — Test if a field is nullable

说明

bool ingres_field_nullable ( resource $result , int $index )

Test if a field is nullable.

参数

result

The query result identifier.

index

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

返回值

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it can't.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_field_name
ingres_field_precision
Ingres 函数


Get the precision of a field

ingres_field_nullable
ingres_field_scale
Ingres 函数
PHP 手册

ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_precision — Get the precision of a field

说明

int ingres_field_precision ( resource $result , int $index )

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

参数

result

The query result identifier.

index

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

返回值

Returns the field precision as an integer.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_field_nullable
ingres_field_scale
Ingres 函数


Get the scale of a field

ingres_field_precision
ingres_field_type
Ingres 函数
PHP 手册

ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_scale — Get the scale of a field

说明

int ingres_field_scale ( resource $result , int $index )

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

参数

result

The query result identifier.

index

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

返回值

Returns the scale of the field, as an integer.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_field_precision
ingres_field_type
Ingres 函数


Get the type of a field in a query result

ingres_field_scale
ingres_num_fields
Ingres 函数
PHP 手册

ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_type — Get the type of a field in a query result

说明

string ingres_field_type ( resource $result , int $index )

Get the type of a field in a query result.

参数

result

The query result identifier.

index

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

返回值

ingres_field_type() returns the type of a field in a query result, or FALSE on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_field_scale
ingres_num_fields
Ingres 函数


Get the number of fields returned by the last query

ingres_field_type
ingres_num_rows
Ingres 函数
PHP 手册

ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_fields — Get the number of fields returned by the last query

说明

int ingres_num_fields ( resource $result )

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query()

参数

result

The query result identifier.

返回值

Returns the number of fields.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_field_type
ingres_num_rows
Ingres 函数


Get the number of rows affected or returned by a query

ingres_num_fields
ingres_pconnect
Ingres 函数
PHP 手册

ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_rows — Get the number of rows affected or returned by a query

说明

int ingres_num_rows ( resource $result )

This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row() the server will delete the result's data and the script won't be able to get them.

You should instead retrieve the result's data using one of these fetch functions in a loop until it returns FALSE, indicating that no more results are available.

参数

result

The result identifier for a query.

返回值

For delete, insert or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array

ingres_num_fields
ingres_pconnect
Ingres 函数


Open a persistent connection to an Ingres database

ingres_num_rows
ingres_query
Ingres 函数
PHP 手册

ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_pconnect — Open a persistent connection to an Ingres database

说明

resource ingres_pconnect ([ string $database [, string $username [, string $password ]]] )

Open a persistent connection to an Ingres database.

There are only 2 differences between this function and ingres_connect() : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called 'persistent'.

参数

database

The database name. Must follows the syntax [node_id::]dbname[/svr_class].

username

The Ingres user name.

password

The password associated with username .

返回值

Returns a Ingres link resource on success, or FALSE on failure.

参见

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_close() - Close an Ingres database connection

ingres_num_rows
ingres_query
Ingres 函数


Send a SQL query to Ingres

ingres_pconnect
ingres_rollback
Ingres 函数
PHP 手册

ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_query — Send a SQL query to Ingres

说明

bool ingres_query ( string $query [, resource $link ] )

ingres_query() sends the given query to the Ingres server.

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can either call ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed.

参数

query

A valid SQL query (see the Ingres SQL reference guide).

Some types of SQL queries can't be sent with this function:

  • close (see ingres_close())
  • commit (see ingres_commit())
  • connect (see ingres_connect())
  • disconnect (see ingres_close())
  • get dbevent
  • prepare to commit
  • rollback (see ingres_rollback())
  • savepoint
  • set autocommit (see ingres_autocommit())
  • all cursor related queries are unsupported

link

The connection link identifier. If not specified, the last opened link is used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ingres_query() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

参见

  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array
  • ingres_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off

ingres_pconnect
ingres_rollback
Ingres 函数


Roll back a transaction

ingres_query
MaxDB
Ingres 函数
PHP 手册

ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_rollback — Roll back a transaction

说明

bool ingres_rollback ([ resource $link ] )

ingres_rollback() rolls back the currently open transaction, actually canceling all changes made to the database during the transaction.

This closes the transaction. A new one can be open by sending a query with ingres_query().

参数

link

The connection link identifier. If not specified, the last opened link is used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ingres_query() - Send a SQL query to Ingres
  • ingres_commit() - Commit a transaction
  • ingres_autocommit() - Switch autocommit on or off

ingres_query
MaxDB
Ingres 函数


MaxDB

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • MaxDB extension overview example
  • MaxDB 函数
    • maxdb_affected_rows — Gets the number of affected rows in a previous MaxDB operation
    • maxdb_autocommit — Turns on or off auto-commiting database modifications
    • maxdb_bind_param — 别名 maxdb_stmt_bind_param
    • maxdb_bind_result — 别名 maxdb_stmt_bind_result
    • maxdb_change_user — Changes the user of the specified database connection
    • maxdb_character_set_name — Returns the default character set for the database connection
    • maxdb_client_encoding — 别名 maxdb_character_set_name
    • maxdb_close_long_data — 别名 maxdb_stmt_close_long_data
    • maxdb_close — Closes a previously opened database connection
    • maxdb_commit — Commits the current transaction
    • maxdb_connect_errno — Returns the error code from last connect call
    • maxdb_connect_error — Returns a string description of the last connect error
    • maxdb_connect — Open a new connection to the MaxDB server
    • maxdb_data_seek — Adjusts the result pointer to an arbitary row in the result
    • maxdb_debug — Performs debugging operations
    • maxdb_disable_reads_from_master — Disable reads from master
    • maxdb_disable_rpl_parse — Disable RPL parse
    • maxdb_dump_debug_info — Dump debugging information into the log
    • maxdb_embedded_connect — Open a connection to an embedded MaxDB server
    • maxdb_enable_reads_from_master — Enable reads from master
    • maxdb_enable_rpl_parse — Enable RPL parse
    • maxdb_errno — Returns the error code for the most recent function call
    • maxdb_error — Returns a string description of the last error
    • maxdb_escape_string — 别名 maxdb_real_escape_string
    • maxdb_execute — 别名 maxdb_stmt_execute
    • maxdb_fetch_array — Fetch a result row as an associative, a numeric array, or both
    • maxdb_fetch_assoc — Fetch a result row as an associative array
    • maxdb_fetch_field_direct — Fetch meta-data for a single field
    • maxdb_fetch_field — Returns the next field in the result set
    • maxdb_fetch_fields — Returns an array of resources representing the fields in a result set
    • maxdb_fetch_lengths — Returns the lengths of the columns of the current row in the result set
    • maxdb_fetch_object — Returns the current row of a result set as an object
    • maxdb_fetch_row — Get a result row as an enumerated array
    • maxdb_fetch — 别名 maxdb_stmt_fetch
    • maxdb_field_count — Returns the number of columns for the most recent query
    • maxdb_field_seek — Set result pointer to a specified field offset
    • maxdb_field_tell — Get current field offset of a result pointer
    • maxdb_free_result — Frees the memory associated with a result
    • maxdb_get_client_info — Returns the MaxDB client version as a string
    • maxdb_get_client_version — Get MaxDB client info
    • maxdb_get_host_info — Returns a string representing the type of connection used
    • maxdb_get_metadata — 别名 maxdb_stmt_result_metadata
    • maxdb_get_proto_info — Returns the version of the MaxDB protocol used
    • maxdb_get_server_info — Returns the version of the MaxDB server
    • maxdb_get_server_version — Returns the version of the MaxDB server as an integer
    • maxdb_info — Retrieves information about the most recently executed query
    • maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect
    • maxdb_insert_id — Returns the auto generated id used in the last query
    • maxdb_kill — Disconnects from a MaxDB server
    • maxdb_master_query — Enforce execution of a query on the master in a master/slave setup
    • maxdb_more_results — Check if there any more query results from a multi query
    • maxdb_multi_query — Performs a query on the database
    • maxdb_next_result — Prepare next result from multi_query
    • maxdb_num_fields — Get the number of fields in a result
    • maxdb_num_rows — Gets the number of rows in a result
    • maxdb_options — Set options
    • maxdb_param_count — 别名 maxdb_stmt_param_count
    • maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • maxdb_prepare — Prepare a SQL statement for execution
    • maxdb_query — Performs a query on the database
    • maxdb_real_connect — Opens a connection to a MaxDB server
    • maxdb_real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
    • maxdb_real_query — Execute an SQL query
    • maxdb_report — Enables or disables internal report functions
    • maxdb_rollback — Rolls back current transaction
    • maxdb_rpl_parse_enabled — Check if RPL parse is enabled
    • maxdb_rpl_probe — RPL probe
    • maxdb_rpl_query_type — Returns RPL query type
    • maxdb_select_db — Selects the default database for database queries
    • maxdb_send_long_data — 别名 maxdb_stmt_send_long_data
    • maxdb_send_query — Send the query and return
    • maxdb_server_end — Shut down the embedded server
    • maxdb_server_init — Initialize embedded server
    • maxdb_set_opt — 别名 maxdb_options
    • maxdb_sqlstate — Returns the SQLSTATE error from previous MaxDB operation
    • maxdb_ssl_set — Used for establishing secure connections using SSL
    • maxdb_stat — Gets the current system status
    • maxdb_stmt_affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
    • maxdb_stmt_bind_param — Binds variables to a prepared statement as parameters
    • maxdb_stmt_bind_result — Binds variables to a prepared statement for result storage
    • maxdb_stmt_close_long_data — Ends a sequence of maxdb_stmt_send_long_data
    • maxdb_stmt_close — Closes a prepared statement
    • maxdb_stmt_data_seek — Seeks to an arbitray row in statement result set
    • maxdb_stmt_errno — Returns the error code for the most recent statement call
    • maxdb_stmt_error — Returns a string description for last statement error
    • maxdb_stmt_execute — Executes a prepared Query
    • maxdb_stmt_fetch — Fetch results from a prepared statement into the bound variables
    • maxdb_stmt_free_result — Frees stored result memory for the given statement handle
    • maxdb_stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare
    • maxdb_stmt_num_rows — Return the number of rows in statements result set
    • maxdb_stmt_param_count — Returns the number of parameter for the given statement
    • maxdb_stmt_prepare — Prepare a SQL statement for execution
    • maxdb_stmt_reset — Resets a prepared statement
    • maxdb_stmt_result_metadata — Returns result set metadata from a prepared statement
    • maxdb_stmt_send_long_data — Send data in blocks
    • maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation
    • maxdb_stmt_store_result — Transfers a result set from a prepared statement
    • maxdb_store_result — Transfers a result set from the last query
    • maxdb_thread_id — Returns the thread ID for the current connection
    • maxdb_thread_safe — Returns whether thread safety is given or not
    • maxdb_use_result — Initiate a result set retrieval
    • maxdb_warning_count — Returns the number of warnings from the last query for the given link
ingres_rollback
简介
与具体数据库系统相关的扩展


简介

The MaxDB PHP extension allows you to access the functionality provided by MaxDB 7.5.0 and above. More information about the MaxDB Database server can be found at » http://www.sdn.sap.com/irj/sdn/maxdb.

The MaxDB PHP extension is compatible to the MySQL mysqli extension. There are only minor differences in the behaviour of some functions due to the differences of the underlying database servers, MaxDB and MySQL.

The main differences to mysqli are in the following functions:

  • maxdb_character_set_name() - Returns only ascii or unicode.
  • maxdb_get_client_info() - Returns a different version string.
  • maxdb_get_client_version() - Returns a different version string.
  • maxdb_get_host_info() - Returns localhost or hostname.
  • maxdb_get_server_info() - Returns a different version string.
  • maxdb_get_server_version() - Returns a different version string.
  • maxdb_kill() - Only disconnects the session.
  • maxdb_multi_query() - Can not handle multiple SQL statements.
  • maxdb_next_result() - Function returns always false.
  • maxdb_options() - Supports a different set of options.
  • maxdb_report() - Supports a different report mode.
  • maxdb_stat() - Returns a different system status string.
  • maxdb_stmt_store_result() - Is not necessary for MaxDB.
  • maxdb_store_result() - Is not necessary for MaxDB.

Documentation for MaxDB can be found at » http://maxdb.sap.com/documentation/.

MaxDB
安装/配置
MaxDB


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
MaxDB


需求

In order to have these functions available, you must compile PHP with MaxDB support. Additionally, you must have the MaxDB SQLDBC runtime library available to access the MaxDB server.

Documentation for MaxDB SQLDBC can be found at » http://maxdb.sap.com/documentation/.

Download the MaxDB SQLDBC package from » http://www.sdn.sap.com/irj/sdn/maxdb-downloads.

安装/配置
安装
安装/配置


安装

By using the --with-maxdb[=DIR] configuration option you enable PHP to access MaxDB databases. [DIR] points to the directory that contains the installed MaxDB SQLDBC package.

Windows users will need to enable php_maxdb.dll inside of php.ini.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

MaxDB Configuration Options
Name | Default | Changeable | Changelog
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

maxdb.default_host string

The default server host to use when connecting to the database server if no other host is specified.

maxdb.default_db string

The default server database to use when connecting if no other database is specified.

maxdb.default_user string

The default user name to use when connecting to the database server if no other name is specified.

maxdb.default_pw string

The default password to use when connecting to the database server if no other password is specified.

maxdb.long_readlen integer

The default maximum length of bytes that is transferred to the client if long data is retrieved from the MaxDB database server.

安装
资源类型
安装/配置


资源类型

This extension defines resources.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following constants to use with maxdb_options() are defined. For further description of these constants see » http://maxdb.sap.com/documentation/.

MaxDB PHP client constants
Constant | Description
MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment.
MAXDB_APPLICATION | The application to be connected to the database.
MAXDB_APPVERSION | The version of the application.
MAXDB_SQLMODE | The SQL mode.
MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not.
MAXDB_TIMEOUT | The maximum allowed time of inactivity after which the connection to the database is closed by the system.
MAXDB_ISOLATIONLEVEL | Specifies whether and how shared locks and exclusive locks are implicitly requested or released.
MAXDB_PACKETCOUNT | The number of different request packets used for the connection.
MAXDB_STATEMENTCACHESIZE | The number of prepared statements to be cached for the connection for re-use.
MAXDB_CURSORPREFIX | The prefix to use for result tables that are automatically named.

The function maxdb_fetch_array() uses a constant for the different types of result arrays. The following constants are defined:

MaxDB fetch constants
Constant | Description
MAXDB_ASSOC | Columns are returned into the array having the fieldname as the array index.
MAXDB_ASSOC_UPPER | Columns are returned into the array having the upper case fieldname as the array index.
MAXDB_ASSOC_LOWER | Columns are returned into the array having the lower case fieldname as the array index.
MAXDB_BOTH | Columns are returned into the array having both a numerical index and the fieldname as the array index.
MAXDB_NUM | Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.

资源类型
范例
MaxDB


范例

Table of Contents

  • MaxDB extension overview example
预定义常量
MaxDB extension overview example
MaxDB


MaxDB extension overview example

范例
MaxDB 函数
范例
PHP 手册

All examples in the MaxDB PHP documentation use the HOTELDB demo database from MaxDB. More about this database can be found at » http://maxdb.sap.com/doc/7_7/44/d8c25164bb38d0e10000000a1553f7/content.htm.

To use the examples in the MaxDB PHP documentation, you have to load the tutorial data into your database. Then you have to set maxdb.default_db in php.ini to the database that contains the tutorial data.

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a MaxDB database.

Example #1 MaxDB extension overview example

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$query = "SELECT * FROM hotel.city";
$result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());

/* Printing results in HTML */
echo "<table>\n";
while ($line = maxdb_fetch_array($result, MAXDB_ASSOC)) {
    echo "  <tr>\n";
    foreach ($line as $col_value) {
        echo "    <td>$col_value</td>\n";
    }
    echo "  </tr>\n";
}
echo "</table>\n";

/* Free resultset */
maxdb_free_result($result);

/* Closing connection */
maxdb_close($link);
?>

The following example shows how to bind variables to a SELECT INTO statement.

Example #2 Example for use of SELECT INTO statements

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

$name = "Mbundu";

maxdb_stmt_bind_param($stmt, 'ds', $percentage, $name);
maxdb_stmt_execute($stmt);

printf ("%f\n", $percentage);

maxdb_stmt_close ($stmt);
?>

The following example shows how to use MaxDB database procedures.

Example #3 Example fore using database procedures

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

范例
MaxDB 函数
范例


MaxDB extension overview example
maxdb_affected_rows
MaxDB
PHP 手册

MaxDB 函数

预定义类

maxdb

Represents a connection between PHP and a MaxDB database.

构造函数

  • maxdb - construct a new maxdb object

方法

  • autocommit - turns on or off auto-commiting database modifications

  • change_user - changes the user of the specified database connection

  • character_set_name - returns the default character set for the database connection

  • close - closes a previously opened connection

  • commit - commits the current transaction

  • connect - opens a new connection to MaxDB database server

  • debug - performs debugging operations

  • dump_debug_info - dumps debug information

  • get_client_info - returns client version

  • get_host_info - returns type of connection used

  • get_server_info - returns version of the MaxDB server

  • get_server_version - returns version of the MaxDB server

  • init - initializes maxdb object

  • info - retrieves information about the most recently executed query

  • kill - asks the server to kill a MaxDB thread

  • multi_query - performs multiple queries

  • more_results - check if more results exist from currently executed multi-query

  • next_result - reads next result from currently executed multi-query

  • options - set options

  • ping - pings a server connection or reconnects if there is no connection

  • prepare - prepares a SQL query

  • query - performs a query

  • real_connect - attempts to open a connection to MaxDB database server

  • escape_string - escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

  • rollback - rolls back the current transaction

  • select_db - selects the default database

  • ssl_set - sets ssl parameters

  • stat - gets the current system status

  • stmt_init- initializes a statement for use with maxdb_stmt_prepare

  • store_result - transfers a resultset from last query

  • use_result - transfers an unbuffered resultset from last query

  • thread-safe - returns whether thread safety is given or not

属性

  • affected_rows - gets the number of affected rows in a previous MaxDB operation

  • client_info - returns the MaxDB client version as a string

  • client_version - returns the MaxDB client version as an integer

  • errno - returns the error code for the most recent function call

  • error - returns the error string for the most recent function call

  • field_count - returns the number of columns for the most recent query

  • host_info - returns a string representing the type of connection used

  • info - retrieves information about the most recently executed query

  • insert_id - returns the auto generated id used in the last query

  • protocol_version - returns the version of the MaxDB protocol used

  • sqlstate - returns a string containing the SQLSTATE error code for the last error

  • thread_id - returns the thread ID for the current connection

  • warning_count - returns the number of warnings generated during execution of the previous SQL statement

maxdb_stmt

Represents a prepared statement.

方法

  • bind_param - binds variables to a prepared statement

  • bind_result - binds variables to a prepared statement for result storage

  • close - closes a prepared statement

  • data-seek - seeks to an arbitrary row in a statement result set

  • execute - executes a prepared statement

  • fetch - fetches result from a prepared statement into bound variables

  • free_result - frees stored result memory for the given statement handle

  • result_metadata - retrieves a resultset from a prepared statement for metadata information

  • prepare - prepares a SQL query

  • send_long_data - sends data in chunks

  • close_long_data - end sending long data

  • reset - resets a prepared statement

  • store_result - buffers complete resultset from a prepared statement

属性

  • affected_rows - returns affected rows from last statement execution

  • errno - returns errorcode for last statement function

  • errno - returns errormessage for last statement function

  • param_count - returns number of parameter for a given prepare statement

  • sqlstate - returns a string containing the SQLSTATE error code for the last statement function

maxdb_result

Represents the result set obtained from a query against the database.

方法

  • close - closes resultset

  • data_seek - moves internal result pointer

  • fetch_field - gets column information from a resultset

  • fetch_fields - gets information for all columns from a resulset

  • fetch_field_direct - gets column information for specified column

  • fetch_array - fetches a result row as an associative array, a numeric array, or both.

  • fetch_assoc - fetches a result row as an associative array

  • fetch_object - fetches a result row as an object

  • fetch_row - gets a result row as an enumerated array

  • close - frees result memory

  • field_seek - set result pointer to a specified field offset

属性

  • current_field - returns offset of current fieldpointer

  • field_count - returns number of fields in resultset

  • lengths - returns an array of columnlengths

  • num_rows - returns number of rows in resultset

Table of Contents

  • maxdb_affected_rows — Gets the number of affected rows in a previous MaxDB operation
  • maxdb_autocommit — Turns on or off auto-commiting database modifications
  • maxdb_bind_param — 别名 maxdb_stmt_bind_param
  • maxdb_bind_result — 别名 maxdb_stmt_bind_result
  • maxdb_change_user — Changes the user of the specified database connection
  • maxdb_character_set_name — Returns the default character set for the database connection
  • maxdb_client_encoding — 别名 maxdb_character_set_name
  • maxdb_close_long_data — 别名 maxdb_stmt_close_long_data
  • maxdb_close — Closes a previously opened database connection
  • maxdb_commit — Commits the current transaction
  • maxdb_connect_errno — Returns the error code from last connect call
  • maxdb_connect_error — Returns a string description of the last connect error
  • maxdb_connect — Open a new connection to the MaxDB server
  • maxdb_data_seek — Adjusts the result pointer to an arbitary row in the result
  • maxdb_debug — Performs debugging operations
  • maxdb_disable_reads_from_master — Disable reads from master
  • maxdb_disable_rpl_parse — Disable RPL parse
  • maxdb_dump_debug_info — Dump debugging information into the log
  • maxdb_embedded_connect — Open a connection to an embedded MaxDB server
  • maxdb_enable_reads_from_master — Enable reads from master
  • maxdb_enable_rpl_parse — Enable RPL parse
  • maxdb_errno — Returns the error code for the most recent function call
  • maxdb_error — Returns a string description of the last error
  • maxdb_escape_string — 别名 maxdb_real_escape_string
  • maxdb_execute — 别名 maxdb_stmt_execute
  • maxdb_fetch_array — Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_assoc — Fetch a result row as an associative array
  • maxdb_fetch_field_direct — Fetch meta-data for a single field
  • maxdb_fetch_field — Returns the next field in the result set
  • maxdb_fetch_fields — Returns an array of resources representing the fields in a result set
  • maxdb_fetch_lengths — Returns the lengths of the columns of the current row in the result set
  • maxdb_fetch_object — Returns the current row of a result set as an object
  • maxdb_fetch_row — Get a result row as an enumerated array
  • maxdb_fetch — 别名 maxdb_stmt_fetch
  • maxdb_field_count — Returns the number of columns for the most recent query
  • maxdb_field_seek — Set result pointer to a specified field offset
  • maxdb_field_tell — Get current field offset of a result pointer
  • maxdb_free_result — Frees the memory associated with a result
  • maxdb_get_client_info — Returns the MaxDB client version as a string
  • maxdb_get_client_version — Get MaxDB client info
  • maxdb_get_host_info — Returns a string representing the type of connection used
  • maxdb_get_metadata — 别名 maxdb_stmt_result_metadata
  • maxdb_get_proto_info — Returns the version of the MaxDB protocol used
  • maxdb_get_server_info — Returns the version of the MaxDB server
  • maxdb_get_server_version — Returns the version of the MaxDB server as an integer
  • maxdb_info — Retrieves information about the most recently executed query
  • maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_insert_id — Returns the auto generated id used in the last query
  • maxdb_kill — Disconnects from a MaxDB server
  • maxdb_master_query — Enforce execution of a query on the master in a master/slave setup
  • maxdb_more_results — Check if there any more query results from a multi query
  • maxdb_multi_query — Performs a query on the database
  • maxdb_next_result — Prepare next result from multi_query
  • maxdb_num_fields — Get the number of fields in a result
  • maxdb_num_rows — Gets the number of rows in a result
  • maxdb_options — Set options
  • maxdb_param_count — 别名 maxdb_stmt_param_count
  • maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • maxdb_prepare — Prepare a SQL statement for execution
  • maxdb_query — Performs a query on the database
  • maxdb_real_connect — Opens a connection to a MaxDB server
  • maxdb_real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
  • maxdb_real_query — Execute an SQL query
  • maxdb_report — Enables or disables internal report functions
  • maxdb_rollback — Rolls back current transaction
  • maxdb_rpl_parse_enabled — Check if RPL parse is enabled
  • maxdb_rpl_probe — RPL probe
  • maxdb_rpl_query_type — Returns RPL query type
  • maxdb_select_db — Selects the default database for database queries
  • maxdb_send_long_data — 别名 maxdb_stmt_send_long_data
  • maxdb_send_query — Send the query and return
  • maxdb_server_end — Shut down the embedded server
  • maxdb_server_init — Initialize embedded server
  • maxdb_set_opt — 别名 maxdb_options
  • maxdb_sqlstate — Returns the SQLSTATE error from previous MaxDB operation
  • maxdb_ssl_set — Used for establishing secure connections using SSL
  • maxdb_stat — Gets the current system status
  • maxdb_stmt_affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • maxdb_stmt_bind_param — Binds variables to a prepared statement as parameters
  • maxdb_stmt_bind_result — Binds variables to a prepared statement for result storage
  • maxdb_stmt_close_long_data — Ends a sequence of maxdb_stmt_send_long_data
  • maxdb_stmt_close — Closes a prepared statement
  • maxdb_stmt_data_seek — Seeks to an arbitray row in statement result set
  • maxdb_stmt_errno — Returns the error code for the most recent statement call
  • maxdb_stmt_error — Returns a string description for last statement error
  • maxdb_stmt_execute — Executes a prepared Query
  • maxdb_stmt_fetch — Fetch results from a prepared statement into the bound variables
  • maxdb_stmt_free_result — Frees stored result memory for the given statement handle
  • maxdb_stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_num_rows — Return the number of rows in statements result set
  • maxdb_stmt_param_count — Returns the number of parameter for the given statement
  • maxdb_stmt_prepare — Prepare a SQL statement for execution
  • maxdb_stmt_reset — Resets a prepared statement
  • maxdb_stmt_result_metadata — Returns result set metadata from a prepared statement
  • maxdb_stmt_send_long_data — Send data in blocks
  • maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation
  • maxdb_stmt_store_result — Transfers a result set from a prepared statement
  • maxdb_store_result — Transfers a result set from the last query
  • maxdb_thread_id — Returns the thread ID for the current connection
  • maxdb_thread_safe — Returns whether thread safety is given or not
  • maxdb_use_result — Initiate a result set retrieval
  • maxdb_warning_count — Returns the number of warnings from the last query for the given link
MaxDB extension overview example
maxdb_affected_rows
MaxDB
PHP 手册


Gets the number of affected rows in a previous MaxDB operation

MaxDB 函数
maxdb_autocommit
MaxDB 函数
PHP 手册

maxdb_affected_rows

maxdb->affected_rows

(PECL maxdb >= 1.0)

maxdb_affected_rows -- maxdb->affected_rows — Gets the number of affected rows in a previous MaxDB operation

说明

Procedural style:

int maxdb_affected_rows ( resource $link )

Object oriented style (property):

maxdb
int $affected_rows;

maxdb_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If this number cannot be determined, this function will return -1.

Note: For SELECT statements maxdb_affected_rows() works like maxdb_num_rows().

The maxdb_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the maxdb_num_rows() function instead.

返回值

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the number of rows affected can not be determined.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insert rows */
$maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", $maxdb->affected_rows);

$maxdb->query("ALTER TABLE mycustomer ADD Status int default 0");

/* update rows */
$maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", $maxdb->affected_rows);

/* delete rows */
$maxdb->query("DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", $maxdb->affected_rows);

/* select all rows */
$result = $maxdb->query("SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", $maxdb->affected_rows);

$result->close();

/* Delete table Language */
$maxdb->query("DROP TABLE mycustomer");

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insert rows */
maxdb_query($link, "CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", maxdb_affected_rows($link));

maxdb_query($link, "ALTER TABLE mycustomer ADD Status int default 0");

/* update rows */
maxdb_query($link, "UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", maxdb_affected_rows($link));

/* delete rows */
maxdb_query($link, "DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", maxdb_affected_rows($link));

/* select all rows */
$result = maxdb_query($link, "SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", maxdb_affected_rows($link));

maxdb_free_result($result);

/* Delete table Language */
maxdb_query($link, "DROP TABLE mycustomer");

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Affected rows (INSERT): 15
Affected rows (UPDATE): 15
Affected rows (DELETE): 0
Affected rows (SELECT): 15

参见

  • maxdb_num_rows() - Gets the number of rows in a result
  • maxdb_info() - Retrieves information about the most recently executed query

MaxDB 函数
maxdb_autocommit
MaxDB 函数


Turns on or off auto-commiting database modifications

maxdb_affected_rows
maxdb_bind_param
MaxDB 函数
PHP 手册

maxdb_autocommit

maxdb->auto_commit

(PECL maxdb >= 1.0)

maxdb_autocommit -- maxdb->auto_commit — Turns on or off auto-commiting database modifications

说明

Procedural style:

bool maxdb_autocommit ( resource $link , bool $mode )

Object oriented style (method)

maxdb
bool auto_commit ( bool $mode )

maxdb_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link resource.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* turn autocommit on */
$maxdb->autocommit(TRUE);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
   exit();
}

/* turn autocommit on */
maxdb_autocommit($link, TRUE);

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

参见

  • maxdb_commit() - Commits the current transaction
  • maxdb_rollback() - Rolls back current transaction

maxdb_affected_rows
maxdb_bind_param
MaxDB 函数


别名 maxdb_stmt_bind_param

maxdb_autocommit
maxdb_bind_result
MaxDB 函数
PHP 手册

maxdb_bind_param

(PECL maxdb 1.0)

maxdb_bind_param — 别名 maxdb_stmt_bind_param()

说明

本函数是该函数的别名： maxdb_stmt_bind_param()

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_autocommit
maxdb_bind_result
MaxDB 函数


别名 maxdb_stmt_bind_result

maxdb_bind_param
maxdb_change_user
MaxDB 函数
PHP 手册

maxdb_bind_result

(PECL maxdb 1.0)

maxdb_bind_result — 别名 maxdb_stmt_bind_result()

说明

本函数是该函数的别名： maxdb_stmt_bind_result().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_bind_param
maxdb_change_user
MaxDB 函数


Changes the user of the specified database connection

maxdb_bind_result
maxdb_character_set_name
MaxDB 函数
PHP 手册

maxdb_change_user

maxdb->change_user

(PECL maxdb >= 1.0)

maxdb_change_user -- maxdb->change_user — Changes the user of the specified database connection

说明

Procedural style:

bool maxdb_change_user ( resource $link , string $user , string $password , string $database )

Object oriented style (method):

maxdb
bool change_user ( string $user , string $password , string $database )

maxdb_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Note: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php

/* connect database test */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT * FROM dual")) {
   $row = $result->fetch_row();
   printf("Result: %s\n", $row[0]);
   $result->free();
}

/* reset all and select a new database */
if (!$maxdb->change_user("DBADMIN", "SECRET", "DEMODB")) {
  printf("Database not running\n");
} else {
  printf("Database running\n");
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT * FROM dual")) {
   $row = maxdb_fetch_row($result);
   printf("Result: %s\n", $row[0]);
   maxdb_free_result($result);
}

/* reset all and select a new database */
if (!maxdb_change_user($link, "DBADMIN", "SECRET", "DEMODB")) {
  printf("Database not running\n");
} else {
  printf("Database running\n");
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Result: a
Database running

参见

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_select_db() - Selects the default database for database queries

maxdb_bind_result
maxdb_character_set_name
MaxDB 函数


Returns the default character set for the database connection

maxdb_change_user
maxdb_client_encoding
MaxDB 函数
PHP 手册

maxdb_character_set_name

maxdb->character_set_name

(PECL maxdb >= 1.0)

maxdb_character_set_name -- maxdb->character_set_name — Returns the default character set for the database connection

说明

Procedural style:

string maxdb_character_set_name ( resource $link )

Object oriented style (method):

maxdb
string character_set_name ( void )

Returns the current character set for the database connection specified by the link parameter.

返回值

The default character set for the current connection, either ascii or unicode.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Print current character set */
$charset = $maxdb->character_set_name();
printf ("Current character set is %s\n", $charset);

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Print current character set */
$charset = maxdb_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Current character set is ascii

参见

  • maxdb_client_encoding() - 别名 maxdb_character_set_name
  • maxdb_real_escape_string() - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

maxdb_change_user
maxdb_client_encoding
MaxDB 函数


别名 maxdb_character_set_name

maxdb_character_set_name
maxdb_close_long_data
MaxDB 函数
PHP 手册

maxdb_client_encoding

(PECL maxdb 1.0)

maxdb_client_encoding — 别名 maxdb_character_set_name()

说明

本函数是该函数的别名： maxdb_character_set_name().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_character_set_name
maxdb_close_long_data
MaxDB 函数


别名 maxdb_stmt_close_long_data

maxdb_client_encoding
maxdb_close
MaxDB 函数
PHP 手册

maxdb_close_long_data

maxdb->close_long_data

(PECL maxdb >= 1.0)

maxdb_close_long_data -- maxdb->close_long_data — 别名 maxdb_stmt_close_long_data()

说明

本函数是该函数的别名： maxdb_stmt_close_long_data().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_client_encoding
maxdb_close
MaxDB 函数


Closes a previously opened database connection

maxdb_close_long_data
maxdb_commit
MaxDB 函数
PHP 手册

maxdb_close

maxdb->close

(PECL maxdb >= 1.0)

maxdb_close -- maxdb->close — Closes a previously opened database connection

说明

Procedural style:

bool maxdb_close ( resource $link )

Object oriented style (method):

maxdb
bool close ( void )

The maxdb_close() function closes a previously opened database connection specified by the link parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_real_connect() - Opens a connection to a MaxDB server

maxdb_close_long_data
maxdb_commit
MaxDB 函数


Commits the current transaction

maxdb_close
maxdb_connect_errno
MaxDB 函数
PHP 手册

maxdb_commit

maxdb->commit

(PECL maxdb >= 1.0)

maxdb_commit -- maxdb->commit — Commits the current transaction

说明

Procedural style:

bool maxdb_commit ( resource $link )

Object oriented style (method)

maxdb
bool commit ( void )

Commits the current transaction for the database connection specified by the link parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* set autocommit to off */
$maxdb->autocommit(FALSE);

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycustomer LIKE hotel.customer");

/* Insert some values */
$maxdb->query("INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
$maxdb->query("INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* commit transaction */
$maxdb->commit();

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* set autocommit to off */
maxdb_autocommit($link, FALSE);

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycustomer LIKE hotel.customer");

/* Insert some values */
maxdb_query($link, "INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
maxdb_query($link, "INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* commit transaction */
maxdb_commit($link);

/* close connection */
maxdb_close($link);
?>

The above examples produces no output.

参见

  • maxdb_autocommit() - Turns on or off auto-commiting database modifications
  • maxdb_rollback() - Rolls back current transaction

maxdb_close
maxdb_connect_errno
MaxDB 函数


Returns the error code from last connect call

maxdb_commit
maxdb_connect_error
MaxDB 函数
PHP 手册

maxdb_connect_errno

(PECL maxdb >= 1.0)

maxdb_connect_errno — Returns the error code from last connect call

说明

int maxdb_connect_errno ( void )

The maxdb_connect_errno() function will return the last error code number for last call to maxdb_connect(). If no errors have occured, this function will return zero.

返回值

An error code value for the last call to maxdb_connect(), if it failed. zero means no error occurred.

范例

Example #1 maxdb_connect_errno sample

<?php
$link = maxdb_connect("localhost", "XXXXXXXX", "YYYYYYYYY");

if (!$link) {
   printf("Can't connect to localhost. Errorcode: %d\n", maxdb_connect_errno());
}
?>

上例的输出类似于：

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Can't connect to localhost. Errorcode: -4008

参见

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation

maxdb_commit
maxdb_connect_error
MaxDB 函数


Returns a string description of the last connect error

maxdb_connect_errno
maxdb_connect
MaxDB 函数
PHP 手册

maxdb_connect_error

(PECL maxdb >= 1.0)

maxdb_connect_error — Returns a string description of the last connect error

说明

string maxdb_connect_error ( void )

The maxdb_connect_error() function is identical to the corresponding maxdb_connect_errno() function in every way, except instead of returning an integer error code the maxdb_connect_error() function will return a string representation of the last error to occur for the last maxdb_connect() call. If no error has occured, this function will return an empty string.

返回值

A string that describes the error. An empty string if no error occurred.

范例

Example #1 maxdb_connect_error sample

<?php

$link = maxdb_connect("localhost", "nonexisting_user", "");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
}
?>

上例的输出类似于：

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination <...>
Can't connect to localhost. Error: POS(1) Unknown user name/password combination

参见

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation

maxdb_connect_errno
maxdb_connect
MaxDB 函数


Open a new connection to the MaxDB server

maxdb_connect_error
maxdb_data_seek
MaxDB 函数
PHP 手册

maxdb_connect

maxdb

(PECL maxdb >= 1.0)

maxdb_connect -- maxdb — Open a new connection to the MaxDB server

说明

Procedural style

resource maxdb_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket ]]]]]] )

Object oriented style (constructor):

maxdb
__construct ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket ]]]]]] )

The maxdb_connect() function attempts to open a connection to the MaxDB Server running on host which can be either a host name or an IP address. Passing the string "localhost" to this parameter, the local host is assumed. If successful, the maxdb_connect() will return an resource representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MaxDB server. If the password is not provided (the NULL value is passed), the MaxDB server will attempt to authenticate the user against the maxdb.default_pw in php.ini.

The dbname parameter if provided will specify the default database to be used when performing queries. If not provied, the entry maxdb.default_db in php.ini is used.

The port and socket parameters are ignored for the MaxDB server.

返回值

Returns a resource which represents the connection to a MaxDB Server or FALSE if the connection failed.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("Host information: %s\n", $maxdb->host_info);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("Host information: %s\n", maxdb_get_host_info($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Host information: localhost
maxdb_connect_error
maxdb_data_seek
MaxDB 函数


Adjusts the result pointer to an arbitary row in the result

maxdb_connect
maxdb_debug
MaxDB 函数
PHP 手册

maxdb_data_seek

result->data_seek

(PECL maxdb >= 1.0)

maxdb_data_seek -- result->data_seek — Adjusts the result pointer to an arbitary row in the result

说明

Procedural style:

bool maxdb_data_seek ( resource $result , int $offset )

Object oriented style (method):

result
bool data_seek ( int $offset )

The maxdb_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result . The offset parameter must be between zero and the total number of rows minus one (0..maxdb_num_rows() - 1).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";
if ($result = $maxdb->query( $query)) {

   /* seek to row no. 10 */
   $result->data_seek(10);

   /* fetch row */
   $row = $result->fetch_row();

   printf ("City: %s  State: %s\n", $row[0], $row[1]);

   /* free result set*/
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";

if ($result = maxdb_query($link, $query)) {

   /* seek to row no. 400 */
   maxdb_data_seek($result, 10);

   /* fetch row */
   $row = maxdb_fetch_row($result);

   printf ("City: %s  State: %s\n", $row[0], $row[1]);

   /* free result set*/
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

City: Irvine  State: CA

参见

  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_num_rows() - Gets the number of rows in a result

maxdb_connect
maxdb_debug
MaxDB 函数


Performs debugging operations

maxdb_data_seek
maxdb_disable_reads_from_master
MaxDB 函数
PHP 手册

maxdb_debug

(PECL maxdb >= 1.0)

maxdb_debug — Performs debugging operations

说明

void maxdb_debug ( string $debug )

The maxdb_debug() can be used to trace the SQLDBC communication. The following strings can be used as a parameter to maxdb_debug():

  • TRACE SHORT ON|OFF - Enables/disables method call trace.
  • TRACE LONG ON|OFF - Enables/disables method argument and detail debug trace.
  • TRACE PACKET ON|OFF|<size> - Enables/disables packet trace, limiting the size of the traced object to the specified number of bytes, or 1000 if no size is specified.
  • TRACE SQL ON|OFF - Enables/disables high level api trace.
  • TRACE TIMESTAMP ON|OFF - Enables/disables a timestamp prefix on each line that is traced.
  • TRACE SIZE <size> - Limits the size of the trace file to <size> bytes, at least 8192 bytes are required.

返回值

maxdb_debug() doesn't return any value.

范例

Example #1 Procedural style

<?php

maxdb_debug("trace packet 200");

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* close connection */
maxdb_close($link);
?>

The above example produces no output.

maxdb_data_seek
maxdb_disable_reads_from_master
MaxDB 函数


Disable reads from master

maxdb_debug
maxdb_disable_rpl_parse
MaxDB 函数
PHP 手册

maxdb_disable_reads_from_master

maxdb->disable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_disable_reads_from_master -- maxdb->disable_reads_from_master — Disable reads from master

说明

Procedural style:

bool maxdb_disable_reads_from_master ( resource $link )

Object oriented style (method):

maxdb
void disable_reads_from_master ( void )
Warning

本函数暂无文档，仅有参数列表。

maxdb_debug
maxdb_disable_rpl_parse
MaxDB 函数


Disable RPL parse

maxdb_disable_reads_from_master
maxdb_dump_debug_info
MaxDB 函数
PHP 手册

maxdb_disable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_disable_rpl_parse — Disable RPL parse

说明

bool maxdb_disable_rpl_parse ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

maxdb_disable_reads_from_master
maxdb_dump_debug_info
MaxDB 函数


Dump debugging information into the log

maxdb_disable_rpl_parse
maxdb_embedded_connect
MaxDB 函数
PHP 手册

maxdb_dump_debug_info

(PECL maxdb >= 1.0)

maxdb_dump_debug_info — Dump debugging information into the log

说明

bool maxdb_dump_debug_info ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

maxdb_disable_rpl_parse
maxdb_embedded_connect
MaxDB 函数


Open a connection to an embedded MaxDB server

maxdb_dump_debug_info
maxdb_enable_reads_from_master
MaxDB 函数
PHP 手册

maxdb_embedded_connect

(PECL maxdb >= 1.0)

maxdb_embedded_connect — Open a connection to an embedded MaxDB server

说明

resource maxdb_embedded_connect ([ string $dbname ] )
Warning

本函数暂无文档，仅有参数列表。

maxdb_dump_debug_info
maxdb_enable_reads_from_master
MaxDB 函数


Enable reads from master

maxdb_embedded_connect
maxdb_enable_rpl_parse
MaxDB 函数
PHP 手册

maxdb_enable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_enable_reads_from_master — Enable reads from master

说明

bool maxdb_enable_reads_from_master ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

maxdb_embedded_connect
maxdb_enable_rpl_parse
MaxDB 函数


Enable RPL parse

maxdb_enable_reads_from_master
maxdb_errno
MaxDB 函数
PHP 手册

maxdb_enable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_enable_rpl_parse — Enable RPL parse

说明

bool maxdb_enable_rpl_parse ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

maxdb_enable_reads_from_master
maxdb_errno
MaxDB 函数


Returns the error code for the most recent function call

maxdb_enable_rpl_parse
maxdb_error
MaxDB 函数
PHP 手册

maxdb_errno

maxdb->errno

(PECL maxdb >= 1.0)

maxdb_errno -- maxdb->errno — Returns the error code for the most recent function call

说明

Procedural style:

int maxdb_errno ( resource $link )

Object oriented style (property):

maxdb
int $errno;

The maxdb_errno() function will return the last error code for the most recent MaxDB function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

返回值

An error code value for the last call, if it failed. zero means no error occurred.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
   printf("Errorcode: %d\n", $maxdb->errno);
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
   printf("Errorcode: %d\n", maxdb_errno($link));
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Errorcode: -4005

参见

  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation

maxdb_enable_rpl_parse
maxdb_error
MaxDB 函数


Returns a string description of the last error

maxdb_errno
maxdb_escape_string
MaxDB 函数
PHP 手册

maxdb_error

(PECL maxdb >= 1.0)

maxdb_error — Returns a string description of the last error

说明

Procedural style:

string maxdb_error ( resource $link )

Object oriented style (property)

maxdb
string $error;

The maxdb_error() function is identical to the corresponding maxdb_errno() function in every way, except instead of returning an integer error code the maxdb_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

返回值

A string that describes the error. An empty string if no error occurred.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
   printf("Errormessage: %s\n", $maxdb->error);
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
   printf("Errormessgae: %s\n", maxdb_error($link));
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Errormessgae: POS(8) Unknown column name:XXX

参见

  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation

maxdb_errno
maxdb_escape_string
MaxDB 函数


别名 maxdb_real_escape_string

maxdb_error
maxdb_execute
MaxDB 函数
PHP 手册

maxdb_escape_string

(PECL maxdb 1.0)

maxdb_escape_string — 别名 maxdb_real_escape_string()

说明

本函数是该函数的别名： maxdb_real_escape_string().

maxdb_error
maxdb_execute
MaxDB 函数


别名 maxdb_stmt_execute

maxdb_escape_string
maxdb_fetch_array
MaxDB 函数
PHP 手册

maxdb_execute

(PECL maxdb 1.0)

maxdb_execute — 别名 maxdb_stmt_execute()

说明

本函数是该函数的别名： maxdb_stmt_execute().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_escape_string
maxdb_fetch_array
MaxDB 函数


Fetch a result row as an associative, a numeric array, or both

maxdb_execute
maxdb_fetch_assoc
MaxDB 函数
PHP 手册

maxdb_fetch_array

result->fetch_array

(PECL maxdb >= 1.0)

maxdb_fetch_array -- result->fetch_array — Fetch a result row as an associative, a numeric array, or both

说明

Procedural style:

mixed maxdb_fetch_array ( resource $result [, int $resulttype ] )

Object oriented style (method):

result
mixed fetch_array ([ int $resulttype ] )

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

maxdb_fetch_array() is an extended version of the maxdb_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the maxdb_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MAXDB_ASSOC, MAXDB_ASSOC_UPPER, MAXDB_ASSOC_LOWER, MAXDB_NUM, or MAXDB_BOTH. By default the maxdb_fetch_array() function will assume MAXDB_BOTH, which is a combination of MAXDB_NUM and MAXDB_ASSOC for this parameter.

By using the MAXDB_ASSOC constant this function will behave identically to the maxdb_fetch_assoc(), while MAXDB_NUM will behave identically to the maxdb_fetch_row() function. The final option MAXDB_BOTH will create a single array with the attributes of both.

By using the MAXDB_ASSOC_UPPER constant, the behaviour of this function is identical to the use of MAXDB_ASSOC except the array index of a column is the fieldname in upper case.

By using the MAXDB_ASSOC_LOWER constant, the behaviour of this function is identical to the use of MAXDB_ASSOC except the array index of a column is the fieldname in lower case.

返回值

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = $maxdb->query($query);

/* numeric array */
$row = $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* associative and numeric array */
$row = $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* free result set */
$result->close();

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = maxdb_query($link, $query);

/* numeric array */
$row = maxdb_fetch_array($result, MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = maxdb_fetch_array($result, MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* associative and numeric array */
$row = maxdb_fetch_array($result, MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* free result set */
maxdb_free_result($result);

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

New York (NY)
New York (NY)
Long Island (NY)

参见

  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_fetch_resource()

maxdb_execute
maxdb_fetch_assoc
MaxDB 函数


Fetch a result row as an associative array

maxdb_fetch_array
maxdb_fetch_field_direct
MaxDB 函数
PHP 手册

maxdb_fetch_assoc

maxdb->fetch_assoc

(PECL maxdb >= 1.0)

maxdb_fetch_assoc -- maxdb->fetch_assoc — Fetch a result row as an associative array

说明

Procedural style:

array maxdb_fetch_assoc ( resource $result )

Object oriented style (method):

result
array fetch_assoc ( void )

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The maxdb_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using maxdb_fetch_row() or add alias names.

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

返回值

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch associative array */
   while ($row = $result->fetch_assoc()) {
       printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch associative array */
   while ($row = maxdb_fetch_assoc($result)) {
       printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

参见

  • maxdb_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_fetch_resource()

maxdb_fetch_array
maxdb_fetch_field_direct
MaxDB 函数


Fetch meta-data for a single field

maxdb_fetch_assoc
maxdb_fetch_field
MaxDB 函数
PHP 手册

maxdb_fetch_field_direct

result->fetch_field_direct

(PECL maxdb >= 1.0)

maxdb_fetch_field_direct -- result->fetch_field_direct — Fetch meta-data for a single field

说明

Procedural style:

mixed maxdb_fetch_field_direct ( resource $result , int $fieldnr )

Object oriented style (method):

result
mixed fetch_field_direct ( int $fieldnr )

maxdb_fetch_field_direct() returns an resource which contains field definition information from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

返回值

Returns an resource which contains field definition information or FALSE if no field information for specified fieldnr is available.

Object attributes
Attribute | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = $maxdb->query($query)) {

   /* Get field information for column 'SurfaceArea' */
   $finfo = $result->fetch_field_direct(1);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n", $finfo->type);

   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for column 'cno' */
   $finfo = maxdb_fetch_field_direct($result, 1);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n", $finfo->type);

   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

参见

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_fetch_fields() - Returns an array of resources representing the fields in a result set

maxdb_fetch_assoc
maxdb_fetch_field
MaxDB 函数


Returns the next field in the result set

maxdb_fetch_field_direct
maxdb_fetch_fields
MaxDB 函数
PHP 手册

maxdb_fetch_field

result->fetch_field

(PECL maxdb >= 1.0)

maxdb_fetch_field -- result->fetch_field — Returns the next field in the result set

说明

Procedural style:

mixed maxdb_fetch_field ( resource $result )

Object oriented style (method):

result
mixed fetch_field ( void )

The maxdb_fetch_field() returns the definition of one column of a result set as an resource. Call this function repeatedly to retrieve information about all columns in the result set. maxdb_fetch_field() returns FALSE when no more fields are left.

返回值

Returns an resource which contains field definition information or FALSE if no field information is available.

Object properties
Property | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   while ($finfo = $result->fetch_field()) {

       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all fields */
   while ($finfo = maxdb_fetch_field($result)) {

       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

参见

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field_direct() - Fetch meta-data for a single field
  • maxdb_fetch_fields() - Returns an array of resources representing the fields in a result set
  • maxdb_field_seek() - Set result pointer to a specified field offset

maxdb_fetch_field_direct
maxdb_fetch_fields
MaxDB 函数


Returns an array of resources representing the fields in a result set

maxdb_fetch_field
maxdb_fetch_lengths
MaxDB 函数
PHP 手册

maxdb_fetch_fields

result->fetch_fields

(PECL maxdb >= 1.0)

maxdb_fetch_fields -- result->fetch_fields — Returns an array of resources representing the fields in a result set

说明

Procedural Style:

mixed maxdb_fetch_fields ( resource $result )

Object oriented style (method):

result
mixed fetch_fields ( void )

This function serves an identical purpose to the maxdb_fetch_field() function with the single difference that, instead of returning one resource at a time for each field, the columns are returned as an array of resources.

返回值

Returns an array of resources which contains field definition information or FALSE if no field information is available.

Object properties
Property | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   $finfo = $result->fetch_fields();

   foreach ($finfo as $val) {
       printf("Name:     %s\n", $val->name);
       printf("Table:    %s\n", $val->table);
       printf("max. Len: %d\n", $val->max_length);
       printf("Flags:    %d\n", $val->flags);
       printf("Type:     %d\n\n", $val->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all columns */
   $finfo = maxdb_fetch_fields($result);

   foreach ($finfo as $val) {
       printf("Name:     %s\n", $val->name);
       printf("Table:    %s\n", $val->table);
       printf("max. Len: %d\n", $val->max_length);
       printf("Flags:    %d\n", $val->flags);
       printf("Type:     %d\n\n", $val->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

参见

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_fetch_field_direct() - Fetch meta-data for a single field

maxdb_fetch_field
maxdb_fetch_lengths
MaxDB 函数


Returns the lengths of the columns of the current row in the result set

maxdb_fetch_fields
maxdb_fetch_object
MaxDB 函数
PHP 手册

maxdb_fetch_lengths

result->lengths

(PECL maxdb >= 1.0)

maxdb_fetch_lengths -- result->lengths — Returns the lengths of the columns of the current row in the result set

说明

Procedural style:

array maxdb_fetch_lengths ( resource $result )

Object oriented style (property):

result
array $lengths;

The maxdb_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

返回值

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

maxdb_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling maxdb_fetch_row/array/resource or after retrieving all rows in the result.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = $maxdb->query($query)) {

   $row = $result->fetch_row();

   /* display column lengths */
   foreach ($result->lengths as $i => $val) {
       printf("Field %2d has Length %2d\n", $i+1, $val);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = maxdb_query($link, $query)) {

   $row = maxdb_fetch_row($result);

   /* display column lengths */
   foreach (maxdb_fetch_lengths($result) as $i => $val) {
       printf("Field %2d has Length %2d\n", $i+1, $val);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Field  1 has Length  4
Field  2 has Length  3
Field  3 has Length  5
Field  4 has Length  6
Field  5 has Length  5
Field  6 has Length 21
maxdb_fetch_fields
maxdb_fetch_object
MaxDB 函数


Returns the current row of a result set as an object

maxdb_fetch_lengths
maxdb_fetch_row
MaxDB 函数
PHP 手册

maxdb_fetch_object

result->fetch_object

(PECL maxdb >= 1.0)

maxdb_fetch_object -- result->fetch_object — Returns the current row of a result set as an object

说明

Procedural style:

object maxdb_fetch_object ( object $result )

Object oriented style (method):

result
object fetch_object ( void )

The maxdb_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

返回值

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch object array */
   while ($obj = $result->fetch_object()) {
       printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch object array */
   while ($obj = maxdb_fetch_object($result)) {
       printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

参见

  • maxdb_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_row() - Get a result row as an enumerated array

maxdb_fetch_lengths
maxdb_fetch_row
MaxDB 函数


Get a result row as an enumerated array

maxdb_fetch_object
maxdb_fetch
MaxDB 函数
PHP 手册

maxdb_fetch_row

result->fetch_row

(PECL maxdb >= 1.0)

maxdb_fetch_row -- result->fetch_row — Get a result row as an enumerated array

说明

Procedural style:

mixed maxdb_fetch_row ( resource $result )

Object oriented style (method):

result
mixed fetch_row ( void )

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

maxdb_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the maxdb_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

返回值

maxdb_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

Note: 本函数对 PHP NULL 值设定 NULL 字段。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch enumerated array */
   while ($row = $result->fetch_row()) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch enumerated array */
   while ($row = maxdb_fetch_row($result)) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

参见

  • maxdb_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_resource()

maxdb_fetch_object
maxdb_fetch
MaxDB 函数


别名 maxdb_stmt_fetch

maxdb_fetch_row
maxdb_field_count
MaxDB 函数
PHP 手册

maxdb_fetch

(PECL maxdb 1.0)

maxdb_fetch — 别名 maxdb_stmt_fetch()

说明

本函数是该函数的别名： maxdb_stmt_fetch().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_fetch_row
maxdb_field_count
MaxDB 函数


Returns the number of columns for the most recent query

maxdb_fetch
maxdb_field_seek
MaxDB 函数
PHP 手册

maxdb_field_count

maxdb->field_count

(PECL maxdb >= 1.0)

maxdb_field_count -- maxdb->field_count — Returns the number of columns for the most recent query

说明

Procedural style:

int maxdb_field_count ( resource $link )

Object oriented style (method):

maxdb
int field_count ( void )

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the maxdb_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

返回值

An integer representing the number of fields in a result set.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query( "CREATE TABLE friends (id int, name varchar(20))");

$maxdb->query( "INSERT INTO friends VALUES (1,'Hartmut')");
$maxdb->query( "INSERT INTO friends VALUES (2, 'Ulf')");

if ($maxdb->field_count()) {
   /* this was a select/show or describe query */
   $result = $maxdb->store_result();

   /* process resultset */
   $row = $result->fetch_row();

   /* free resultset */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO friends VALUES (2, 'Ulf')");

if (maxdb_field_count($link)) {
   /* this was a select/show or describe query */
   $result = maxdb_store_result($link);

   /* process resultset */
   $row = maxdb_fetch_row($result);

   /* free resultset */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above example produces no output.

maxdb_fetch
maxdb_field_seek
MaxDB 函数


Set result pointer to a specified field offset

maxdb_field_count
maxdb_field_tell
MaxDB 函数
PHP 手册

maxdb_field_seek

result->field_seek

(PECL maxdb >= 1.0)

maxdb_field_seek -- result->field_seek — Set result pointer to a specified field offset

说明

Procedural style:

bool maxdb_field_seek ( resource $result , int $fieldnr )

Object oriented style (method):

result
bool field_seek ( int $fieldnr )

Sets the field cursor to the given offset. The next call to maxdb_fetch_field() will retrieve the field definition of the column associated with that offset.

Note: To seek to the beginning of a row, pass an offset value of zero.

返回值

maxdb_field_seek() returns previuos value of field cursor.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for 2nd column */
   $result->field_seek(1);
   $finfo = $result->fetch_field();

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n\n", $finfo->type);

   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for 2nd column */
   maxdb_field_seek($result, 1);
   $finfo = maxdb_fetch_field($result);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n\n", $finfo->type);

   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

参见

  • maxdb_fetch_field() - Returns the next field in the result set

maxdb_field_count
maxdb_field_tell
MaxDB 函数


Get current field offset of a result pointer

maxdb_field_seek
maxdb_free_result
MaxDB 函数
PHP 手册

maxdb_field_tell

result->current_field

(PECL maxdb >= 1.0)

maxdb_field_tell -- result->current_field — Get current field offset of a result pointer

说明

Procedural style:

int maxdb_field_tell ( resource $result )

Object oriented style (property):

result
int $current_field ;

Returns the position of the field cursor used for the last maxdb_fetch_field() call. This value can be used as an argument to maxdb_field_seek().

返回值

Returns current offset of field cursor.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   while ($finfo = $result->fetch_field()) {

       /* get fieldpointer offset */
       $currentfield = $result->current_field;

       printf("Column    %d:\n", $currentfield);
       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all fields */
   while ($finfo = maxdb_fetch_field($result)) {

       /* get fieldpointer offset */
       $currentfield = maxdb_field_tell($result);

       printf("Column    %d:\n", $currentfield);
       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Column    1:
Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Column    2:
Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

参见

  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_field_seek() - Set result pointer to a specified field offset

maxdb_field_seek
maxdb_free_result
MaxDB 函数


Frees the memory associated with a result

maxdb_field_tell
maxdb_get_client_info
MaxDB 函数
PHP 手册

maxdb_free_result

result->free

(PECL maxdb >= 1.0)

maxdb_free_result -- result->free — Frees the memory associated with a result

说明

Procedural style:

void maxdb_free_result ( resource $result )

Object oriented style (method):

result
void free ( void )

The maxdb_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by maxdb_query(), maxdb_store_result() or maxdb_use_result().

Note: You should always free your result with maxdb_free_result(), when your result resource is not needed anymore.

返回值

This function doesn't return any value.

参见

  • maxdb_query() - Performs a query on the database
  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval

maxdb_field_tell
maxdb_get_client_info
MaxDB 函数


Returns the MaxDB client version as a string

maxdb_free_result
maxdb_get_client_version
MaxDB 函数
PHP 手册

maxdb_get_client_info

(PECL maxdb >= 1.0)

maxdb_get_client_info — Returns the MaxDB client version as a string

说明

string maxdb_get_client_info ( void )

The maxdb_get_client_info() function is used to return a string representing the client version being used in the MaxDB extension.

返回值

A string that represents the MaxDB client library version

范例

Example #1 maxdb_get_client_info

<?php

/* We don't need a connection to determine
   the version of MaxDB client library */

printf("Client library version: %s\n", maxdb_get_client_info());
?>

上例的输出类似于：

Client library version: libSQLDBC <...>

参见

  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_info() - Returns the version of the MaxDB server
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer

maxdb_free_result
maxdb_get_client_version
MaxDB 函数


Get MaxDB client info

maxdb_get_client_info
maxdb_get_host_info
MaxDB 函数
PHP 手册

maxdb_get_client_version

(PECL maxdb >= 1.0)

maxdb_get_client_version — Get MaxDB client info

说明

int maxdb_get_client_version ( void )

Returns client version number as an integer.

返回值

A number that represents the MaxDB client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 7.5.0 is returned as 70500.

This is useful to quickly determine the version of the client library to know if some capability exists.

范例

Example #1 maxdb_get_client_version

<?php

/* We don't need a connection to determine
   the version of MaxDB client library */

printf("Client library version: %d\n", maxdb_get_client_version());
?>

上例的输出类似于：

Client library version: 7.<...>

参见

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_server_info() - Returns the version of the MaxDB server
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer

maxdb_get_client_info
maxdb_get_host_info
MaxDB 函数


Returns a string representing the type of connection used

maxdb_get_client_version
maxdb_get_metadata
MaxDB 函数
PHP 手册

maxdb_get_host_info

maxdb->get_host_info

(PECL maxdb >= 1.0)

maxdb_get_host_info -- maxdb->get_host_info — Returns a string representing the type of connection used

说明

Procdural style:

string maxdb_get_host_info ( resource $link )

Object oriented style (property):

maxdb
string $host_info;

The maxdb_get_host_info() function returns a string describing the connection represented by the link parameter is using.

返回值

A character string representing the server hostname and the connection type.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print host information */
printf("Host info: %s\n", $maxdb->host_info);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print host information */
printf("Host info: %s\n", maxdb_get_host_info($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Host info: localhost

参见

  • maxdb_get_proto_info() - Returns the version of the MaxDB protocol used

maxdb_get_client_version
maxdb_get_metadata
MaxDB 函数


别名 maxdb_stmt_result_metadata

maxdb_get_host_info
maxdb_get_proto_info
MaxDB 函数
PHP 手册

maxdb_get_metadata

(PECL maxdb 1.0)

maxdb_get_metadata — 别名 maxdb_stmt_result_metadata()

说明

本函数是该函数的别名： maxdb_stmt_result_metadata().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_get_host_info
maxdb_get_proto_info
MaxDB 函数


Returns the version of the MaxDB protocol used

maxdb_get_metadata
maxdb_get_server_info
MaxDB 函数
PHP 手册

maxdb_get_proto_info

maxdb->protocol_version

(PECL maxdb >= 1.0)

maxdb_get_proto_info -- maxdb->protocol_version — Returns the version of the MaxDB protocol used

说明

Procedural style:

int maxdb_get_proto_info ( resource $link )

Object oriented style (property):

maxdb
string $protocol_version;

Returns an integer representing the MaxDB protocol version used by the connection represented by the link parameter.

返回值

Returns an integer representing the protocol version (constant 10).

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $maxdb->protocol_version);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print protocol version */
printf("Protocol version: %d\n", maxdb_get_proto_info($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Protocol version: 10

参见

  • maxdb_get_host_info() - Returns a string representing the type of connection used

maxdb_get_metadata
maxdb_get_server_info
MaxDB 函数


Returns the version of the MaxDB server

maxdb_get_proto_info
maxdb_get_server_version
MaxDB 函数
PHP 手册

maxdb_get_server_info

maxdb->server_info

(PECL maxdb >= 1.0)

maxdb_get_server_info -- maxdb->server_info — Returns the version of the MaxDB server

说明

Procedural style:

string maxdb_get_server_info ( resource $link )

Object oriented style (property):

maxdb
string $server_info;

Returns a string representing the version of the MaxDB server that the MaxDB extension is connected to (represented by the link parameter).

返回值

A character string representing the server version.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %s\n", $maxdb->server_info);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %s\n", maxdb_get_server_info($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Server version: Kernel    7<...>

参见

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer

maxdb_get_proto_info
maxdb_get_server_version
MaxDB 函数


Returns the version of the MaxDB server as an integer

maxdb_get_server_info
maxdb_info
MaxDB 函数
PHP 手册

maxdb_get_server_version

(PECL maxdb >= 1.0)

maxdb_get_server_version — Returns the version of the MaxDB server as an integer

说明

Procedural style:

int maxdb_get_server_version ( resource $link )

Object oriented style (property):

maxdb
int $server_version;

The maxdb_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 7.5.0 is 70500).

返回值

An integer representing the server version.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %d\n", $maxdb->server_version);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %d\n", maxdb_get_server_version($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Server version: 7<...>

参见

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_info() - Returns the version of the MaxDB server

maxdb_get_server_info
maxdb_info
MaxDB 函数


Retrieves information about the most recently executed query

maxdb_get_server_version
maxdb_init
MaxDB 函数
PHP 手册

maxdb_info

maxdb->info

(PECL maxdb >= 1.0)

maxdb_info -- maxdb->info — Retrieves information about the most recently executed query

说明

Procedural style:

string maxdb_info ( resource $link )

Object oriented style (property)

maxdb
string $info;

The maxdb_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Possible maxdb_info return values
Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Note: Queries which do not fall into one of the above formats are not supported. In these situations, maxdb_info() will return an empty string.

返回值

A character string representing additional information about the most recently executed query.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
$maxdb->query("INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", $maxdb->info);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
maxdb_query($link, "INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", maxdb_info($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Records: 25 Duplicates: 0 Warnings: 0

参见

  • maxdb_affected_rows() - Gets the number of affected rows in a previous MaxDB operation
  • maxdb_warning_count() - Returns the number of warnings from the last query for the given link
  • maxdb_num_rows() - Gets the number of rows in a result

maxdb_get_server_version
maxdb_init
MaxDB 函数


Initializes MaxDB and returns an resource for use with maxdb_real_connect

maxdb_info
maxdb_insert_id
MaxDB 函数
PHP 手册

maxdb_init

(PECL maxdb >= 1.0)

maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect

说明

resource maxdb_init ( void )

Allocates or initializes a MaxDB resource suitable for maxdb_options() and maxdb_real_connect().

Note: Any subsequent calls to any maxdb function (except maxdb_options()) will fail until maxdb_real_connect() was called.

返回值

Returns an resource.

参见

  • maxdb_options() - Set options
  • maxdb_close() - Closes a previously opened database connection
  • maxdb_real_connect() - Opens a connection to a MaxDB server
  • maxdb_connect() - Open a new connection to the MaxDB server

maxdb_info
maxdb_insert_id
MaxDB 函数


Returns the auto generated id used in the last query

maxdb_init
maxdb_kill
MaxDB 函数
PHP 手册

maxdb_insert_id

maxdb->insert_id

(PECL maxdb >= 1.0)

maxdb_insert_id -- maxdb->insert_id — Returns the auto generated id used in the last query

说明

Procedural style:

mixed maxdb_insert_id ( resource $link )

Object oriented style (property):

maxdb
mixed $insert_id;

The maxdb_insert_id() function returns the ID generated by a query on a table with a column having the DEFAULT SERIAL attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the DEFAULT SERIAL attribute, this function will return zero.

返回值

The value of the DEFAULT SERIAL field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an DEFAULT_SERIAL value.

Note: If the number is greater than maximal int value, maxdb_insert_id() will return a string.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycity LIKE hotel.city");
$maxdb->query("ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
$maxdb->query($query);

printf ("New Record has id %d.\n", $maxdb->insert_id);

/* drop table */
$maxdb->query("DROP TABLE mycity");

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city");
maxdb_query($link, "ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
maxdb_query($link, $query);

printf ("New Record has id %d.\n", maxdb_insert_id($link));

/* drop table */
maxdb_query($link, "DROP TABLE mycity");

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

New Record has id 1.
maxdb_init
maxdb_kill
MaxDB 函数


Disconnects from a MaxDB server

maxdb_insert_id
maxdb_master_query
MaxDB 函数
PHP 手册

maxdb_kill

maxdb->kill

(PECL maxdb >= 1.0)

maxdb_kill -- maxdb->kill — Disconnects from a MaxDB server

说明

Procedural style:

bool maxdb_kill ( resource $link , int $processid )

Object oriented style (method)

maxdb
bool kill ( int $processid )

This function is used to disconnect from a MaxDB server specified by the processid parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = $maxdb->thread_id;

/* Kill connection */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE myCity LIKE City")) {
   printf("Error: %s\n", $maxdb->error);
   exit;
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = maxdb_thread_id($link);

/* Kill connection */
maxdb_kill($link, $thread_id);

/* This should produce an error */
if (!maxdb_query($link, "CREATE TABLE myCity LIKE City")) {
   printf("Error: %s\n", maxdb_error($link));
   exit;
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Error: Session not connected

参见

  • maxdb_thread_id() - Returns the thread ID for the current connection

maxdb_insert_id
maxdb_master_query
MaxDB 函数


Enforce execution of a query on the master in a master/slave setup

maxdb_kill
maxdb_more_results
MaxDB 函数
PHP 手册

maxdb_master_query

(PECL maxdb >= 1.0)

maxdb_master_query — Enforce execution of a query on the master in a master/slave setup

说明

bool maxdb_master_query ( resource $link , string $query )
Warning

本函数暂无文档，仅有参数列表。

maxdb_kill
maxdb_more_results
MaxDB 函数


Check if there any more query results from a multi query

maxdb_master_query
maxdb_multi_query
MaxDB 函数
PHP 手册

maxdb_more_results

maxdb->more_results

(PECL maxdb >= 1.0)

maxdb_more_results -- maxdb->more_results — Check if there any more query results from a multi query

说明

bool maxdb_more_results ( resource $link )

maxdb_more_results() indicates if one or more result sets are available from a previous call to maxdb_multi_query().

返回值

Always FALSE.

范例

See maxdb_multi_query().

参见

  • maxdb_multi_query() - Performs a query on the database
  • maxdb_next_result() - Prepare next result from multi_query
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval

maxdb_master_query
maxdb_multi_query
MaxDB 函数


Performs a query on the database

maxdb_more_results
maxdb_next_result
MaxDB 函数
PHP 手册

maxdb_multi_query

maxdb->multi_query

(PECL maxdb >= 1.0)

maxdb_multi_query -- maxdb->multi_query — Performs a query on the database

说明

Procedural style:

bool maxdb_multi_query ( resource $link , string $query )

Object oriented style (method):

maxdb
bool multi_query ( string $query )

The maxdb_multi_query() works like the function maxdb_query(). Multiple queries are not yet supported.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM dual";

/* execute multi query */
if ($maxdb->multi_query($query)) {
   do {
       /* store first result set */
       if ($result = $maxdb->store_result()) {
           while ($row = $result->fetch_row()) {
               printf("%s\n", $row[0]);
           }
           $result->close();
       }
       /* print divider */
       if ($maxdb->more_results()) {
           printf("-----------------\n");
       }
   } while ($maxdb->next_result());
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * FROM dual";

/* execute multi query */
if (maxdb_multi_query($link, $query)) {
   do {
       /* store first result set */
       if ($result = maxdb_store_result($link)) {
           while ($row = maxdb_fetch_row($result)) {
               printf("%s\n", $row[0]);
           }
           maxdb_free_result($result);
       }
       /* print divider */
       if (maxdb_more_results($link)) {
           printf("-----------------\n");
       }
   } while (maxdb_next_result($link));
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

a

参见

  • maxdb_use_result() - Initiate a result set retrieval
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_next_result() - Prepare next result from multi_query
  • maxdb_more_results() - Check if there any more query results from a multi query

maxdb_more_results
maxdb_next_result
MaxDB 函数


Prepare next result from multi_query

maxdb_multi_query
maxdb_num_fields
MaxDB 函数
PHP 手册

maxdb_next_result

maxdb->next_result

(PECL maxdb >= 1.0)

maxdb_next_result -- maxdb->next_result — Prepare next result from multi_query

说明

bool maxdb_next_result ( resource $link )

Since multiple queries are not yet supported, maxdb_next_result() returns always FALSE.

返回值

Returns FALSE.

参见

  • maxdb_multi_query() - Performs a query on the database
  • maxdb_more_results() - Check if there any more query results from a multi query
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval

maxdb_multi_query
maxdb_num_fields
MaxDB 函数


Get the number of fields in a result

maxdb_next_result
maxdb_num_rows
MaxDB 函数
PHP 手册

maxdb_num_fields

result->field_count

(PECL maxdb >= 1.0)

maxdb_num_fields -- result->field_count — Get the number of fields in a result

说明

Procedural style:

int maxdb_num_fields ( resource $result )

Object oriented style (property):

result
int $field_count;

maxdb_num_fields() returns the number of fields from specified result set.

返回值

The number of fields from a result set

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT * FROM hotel.city ORDER BY zip")) {

   /* determine number of fields in result set */
   $field_cnt = $result->field_count;

   printf("Result set has %d fields.\n", $field_cnt);

   /* close result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT * FROM hotel.city ORDER BY zip")) {

   /* determine number of fields in result set */
   $field_cnt = maxdb_num_fields($result);

   printf("Result set has %d fields.\n", $field_cnt);

   /* close result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Result set has 3 fields.

参见

  • maxdb_fetch_field() - Returns the next field in the result set

maxdb_next_result
maxdb_num_rows
MaxDB 函数


Gets the number of rows in a result

maxdb_num_fields
maxdb_options
MaxDB 函数
PHP 手册

maxdb_num_rows

(PECL maxdb >= 1.0)

maxdb_num_rows — Gets the number of rows in a result

说明

Procedural style:

int maxdb_num_rows ( resource $result )

Object oriented style (property):

maxdb
int $num_rows;

Returns the number of rows in the result set.

The use of maxdb_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets maxdb_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

返回值

Returns number of rows in the result set.

Note: If the number of rows is greater than maximal int value, the number will be returned as a string.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT cno, name FROM hotel.customer ORDER BY name")) {

   /* determine number of rows result set */
   $row_cnt = $result->num_rows;

   printf("Result set has %d rows.\n", $row_cnt);

   /* close result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT cno, name FROM hotel.customer ORDER BY name")) {

   /* determine number of rows result set */
   $row_cnt = maxdb_num_rows($result);

   printf("Result set has %d rows.\n", $row_cnt);

   /* close result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Result set has 15 rows.

参见

  • maxdb_affected_rows() - Gets the number of affected rows in a previous MaxDB operation
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval
  • maxdb_query() - Performs a query on the database

maxdb_num_fields
maxdb_options
MaxDB 函数


Set options

maxdb_num_rows
maxdb_param_count
MaxDB 函数
PHP 手册

maxdb_options

maxdb->options

(PECL maxdb >= 1.0)

maxdb_options -- maxdb->options — Set options

说明

Procedural style:

bool maxdb_options ( resource $link , int $option , mixed $value )

Object oriented style (method)

maxdb
bool options ( int $option , mixed $value )

maxdb_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

maxdb_options() should be called after maxdb_init() and before maxdb_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. For detailed description of the options see » http://maxdb.sap.com/documentation/ The parameter option can be one of the following values:

Valid options
Name | Description
MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment.
MAXDB_APPLICATION | The application to be connected to the database.
MAXDB_APPVERSION | The version of the application.
MAXDB_SQLMODE | The SQL mode.
MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not.
MAXDB_TIMEOUT | The maximum allowed time of inactivity after which the connection to the database is closed by the system.
MAXDB_ISOLATIONLEVEL | Specifies whether and how shared locks and exclusive locks are implicitly requested or released.
MAXDB_PACKETCOUNT | The number of different request packets used for the connection.
MAXDB_STATEMENTCACHESIZE | The number of prepared statements to be cached for the connection for re-use.
MAXDB_CURSORPREFIX | The prefix to use for result tables that are automatically named.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

See maxdb_real_connect().

参见

  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_real_connect() - Opens a connection to a MaxDB server

maxdb_num_rows
maxdb_param_count
MaxDB 函数


别名 maxdb_stmt_param_count

maxdb_options
maxdb_ping
MaxDB 函数
PHP 手册

maxdb_param_count

(PECL maxdb 1.0)

maxdb_param_count — 别名 maxdb_stmt_param_count()

说明

本函数是该函数的别名： maxdb_stmt_param_count().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_options
maxdb_ping
MaxDB 函数


Pings a server connection, or tries to reconnect if the connection has gone down

maxdb_param_count
maxdb_prepare
MaxDB 函数
PHP 手册

maxdb_ping

maxdb->ping

(PECL maxdb >= 1.0)

maxdb_ping -- maxdb->ping — Pings a server connection, or tries to reconnect if the connection has gone down

说明

Procedural style:

bool maxdb_ping ( resource $link )

Object oriented style (method):

maxdb
bool ping ( void )

Checks whether the connection to the server is working. If it has gone down, and global option maxdb.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* check if server is alive */
if ($maxdb->ping()) {
   printf ("Our connection is ok!\n");
} else {
   printf ("Error: %s\n", $maxdb->error);
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* check if server is alive */
if (maxdb_ping($link)) {
   printf ("Our connection is ok!\n");
} else {
   printf ("Error: %s\n", maxdb_error($link));
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Our connection is ok!
maxdb_param_count
maxdb_prepare
MaxDB 函数


Prepare a SQL statement for execution

maxdb_ping
maxdb_query
MaxDB 函数
PHP 手册

maxdb_prepare

maxdb->prepare

(PECL maxdb >= 1.0)

maxdb_prepare -- maxdb->prepare — Prepare a SQL statement for execution

说明

Procedure style:

resource maxdb_prepare ( resource $link , string $query )

Object oriented style (method)

stmt
resource prepare ( string $query )

maxdb_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Note: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Note: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.
However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using maxdb_stmt_bind_param() and/or maxdb_stmt_bind_result() before executing the statement or fetching rows.

返回值

maxdb_prepare() returns a statement resource or FALSE if an error occured.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Rosemont";

/* create a prepared statement */
if ($stmt = $maxdb->prepare("SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Rosemont";

/* create a prepared statement */
if ($stmt = maxdb_prepare($link, "SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   maxdb_stmt_bind_param($stmt, "s", $city);

   /* execute query */
   maxdb_stmt_execute($stmt);

  /* bind result variables */
   maxdb_stmt_bind_result($stmt, $district);

   /* fetch value */
   maxdb_stmt_fetch($stmt);

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Rosemont is in district IL

参见

  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_close() - Closes a prepared statement

maxdb_ping
maxdb_query
MaxDB 函数


Performs a query on the database

maxdb_prepare
maxdb_real_connect
MaxDB 函数
PHP 手册

maxdb_query

maxdb->query

(PECL maxdb >= 1.0)

maxdb_query -- maxdb->query — Performs a query on the database

说明

Procedural style:

mixed maxdb_query ( resource $link , string $query [, int $resultmode ] )

Object oriented style (method):

maxdb
mixed query ( string $query )

The maxdb_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 For SELECT, SHOW, DESCRIBE or EXPLAIN maxdb_query() will return a result resource.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Create table doesn't return a resultset */
if ($maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
   printf("Table mycity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $maxdb->query("SELECT name FROM hotel.city")) {
   printf("Select returned %d rows.\n", $result->num_rows);

   /* free result set */
   $result->close();
}

/* If we have to retrieve large amount of data we use MAXDB_USE_RESULT */
if ($result = $maxdb->query("SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
   $result->close();
}

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Create table doesn't return a resultset */
if (maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
   printf("Table mycity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = maxdb_query($link, "SELECT name FROM hotel.city")) {
   printf("Select returned %d rows.\n", maxdb_num_rows($result));

   /* free result set */
   maxdb_free_result($result);
}

/* If we have to retrieve large amount of data we use MAXDB_USE_RESULT */
if ($result = maxdb_query($link, "SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
   maxdb_free_result($result);
}

maxdb_close($link);
?>

上例的输出类似于：

Table mycity successfully created.
Select returned 25 rows.

参见

  • maxdb_real_query() - Execute an SQL query
  • maxdb_multi_query() - Performs a query on the database
  • maxdb_free_result() - Frees the memory associated with a result

maxdb_prepare
maxdb_real_connect
MaxDB 函数


Opens a connection to a MaxDB server

maxdb_query
maxdb_real_escape_string
MaxDB 函数
PHP 手册

maxdb_real_connect

maxdb->real_connect

(PECL maxdb >= 1.0)

maxdb_real_connect -- maxdb->real_connect — Opens a connection to a MaxDB server

说明

Procedural style

bool maxdb_real_connect ( resource $link [, string $hostname [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket ]]]]]] )

Object oriented style (method)

maxdb
bool real_connect ([ string $hostname [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket ]]]]]] )

maxdb_real_connect() attempts to establish a connection to a MaxDB database engine running on hostname .

This function differs from maxdb_connect():

  • maxdb_real_connect() needs a valid resource which has to be created by function maxdb_init()

  • With function maxdb_options() you can set various options for connection.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php

/* create a connection object which is not connected */
$maxdb = maxdb_init();

/* set connection options */
$maxdb->options(MAXDB_UNICODE, "FALSE");
$maxdb->options(MAXDB_TIMEOUT, 5);

/* connect to server */
$maxdb->real_connect('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("Connection: %s\n.", $maxdb->host_info);

$maxdb->close();
?>

Example #2 Procedural style

<?php

/* create a connection object which is not connected */
$link = maxdb_init();

/* set connection options */
maxdb_options($link, MAXDB_UNICODE, "FALSE");
maxdb_options($link, MAXDB_TIMEOUT, 5);

/* connect to server */
maxdb_real_connect($link, 'localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("Connection: %s\n.", maxdb_get_host_info($link));

maxdb_close($link);
?>

上例的输出类似于：

Connection: localhost <...>

参见

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_options() - Set options
  • maxdb_ssl_set() - Used for establishing secure connections using SSL
  • maxdb_close() - Closes a previously opened database connection

maxdb_query
maxdb_real_escape_string
MaxDB 函数


Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

maxdb_real_connect
maxdb_real_query
MaxDB 函数
PHP 手册

maxdb_real_escape_string

maxdb->real_escape_string

(PECL maxdb >= 1.0)

maxdb_real_escape_string -- maxdb->real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

说明

Procedural style:

string maxdb_real_escape_string ( resource $link , string $escapestr )

Object oriented style (method):

maxdb
string real_escape_sring ( string $escapestr )

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are ', ".

返回值

Returns an escaped string.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$maxdb->query("INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
   printf("Error: %s\n", $maxdb->sqlstate);
}

$city = $maxdb->real_escape_string($city);

/* this query with escaped $city will work */
if ($maxdb->query("INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
   printf("%d Row inserted.\n", $maxdb->affected_rows);
}

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!maxdb_query($link, "INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
   printf("Error: %s\n", maxdb_sqlstate($link));
}

$city = maxdb_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (maxdb_query($link, "INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
   printf("%d Row inserted.\n", maxdb_affected_rows($link));
}

maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Error: 42000
1 Row inserted.

参见

  • maxdb_character_set_name() - Returns the default character set for the database connection

maxdb_real_connect
maxdb_real_query
MaxDB 函数


Execute an SQL query

maxdb_real_escape_string
maxdb_report
MaxDB 函数
PHP 手册

maxdb_real_query

maxdb->real_query

(PECL maxdb >= 1.0)

maxdb_real_query -- maxdb->real_query — Execute an SQL query

说明

Procedural style

bool maxdb_real_query ( resource $link , string $query )

Object oriented style (method):

maxdb
bool real_query ( string $query )

The maxdb_real_query() is functionally identical with the maxdb_query().

Note: In order to determine if a given query should return a result set or not, see maxdb_field_count().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • maxdb_query() - Performs a query on the database
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval

maxdb_real_escape_string
maxdb_report
MaxDB 函数


Enables or disables internal report functions

maxdb_real_query
maxdb_rollback
MaxDB 函数
PHP 手册

maxdb_report

(PECL maxdb 1.0)

maxdb_report — Enables or disables internal report functions

说明

bool maxdb_report ( int $flags )

范例

Example #1 Procedural style

<?php
/* activate reporting */
maxdb_report(MAXDB_REPORT_ERROR);

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* this query should report an error */
$result = maxdb_query($link,"SELECT Name FROM Nonexistingtable WHERE population > 50000");

maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>
maxdb_real_query
maxdb_rollback
MaxDB 函数


Rolls back current transaction

maxdb_report
maxdb_rpl_parse_enabled
MaxDB 函数
PHP 手册

maxdb_rollback

maxdb->rollback

(PECL maxdb >= 1.0)

maxdb_rollback -- maxdb->rollback — Rolls back current transaction

说明

bool maxdb_rollback ( resource $link )
maxdb
bool rollback ( void )

Rollbacks the current transaction for the database specified by the link parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* disable autocommit */
$maxdb->autocommit(FALSE);

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* commit insert */
$maxdb->commit();

/* delete all rows */
$maxdb->query("DELETE FROM temp.mycity");

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
   $row = $result->fetch_row();
   printf("%d rows in table mycity.\n", $row[0]);
   /* Free result */
   $result->close();
}

/* Rollback */
$maxdb->rollback();

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
   $row = $result->fetch_row();
   printf("%d rows in table mycity (after rollback).\n", $row[0]);
   /* Free result */
   $result->close();
}

/* Drop table myCity */
$maxdb->query("DROP TABLE temp.mycity");

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* disable autocommit */
maxdb_autocommit($link, FALSE);

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* commit insert */
maxdb_commit($link);

/* delete all rows */
maxdb_query($link, "DELETE FROM temp.mycity");

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
   $row = maxdb_fetch_row($result);
   printf("%d rows in table mycity.\n", $row[0]);
   /* Free result */
   maxdb_free_result($result);
}

/* Rollback */
maxdb_rollback($link);

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
   $row = maxdb_fetch_row($result);
   printf("%d rows in table mycity (after rollback).\n", $row[0]);
   /* Free result */
   maxdb_free_result($result);
}

/* Drop table myCity */
maxdb_query($link, "DROP TABLE temp.mycity");

maxdb_close($link);
?>

上例的输出类似于：

0 rows in table mycity.
25 rows in table mycity (after rollback).

参见

  • maxdb_commit() - Commits the current transaction
  • maxdb_autocommit() - Turns on or off auto-commiting database modifications

maxdb_report
maxdb_rpl_parse_enabled
MaxDB 函数


Check if RPL parse is enabled

maxdb_rollback
maxdb_rpl_probe
MaxDB 函数
PHP 手册

maxdb_rpl_parse_enabled

(PECL maxdb >= 1.0)

maxdb_rpl_parse_enabled — Check if RPL parse is enabled

说明

int maxdb_rpl_parse_enabled ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

maxdb_rollback
maxdb_rpl_probe
MaxDB 函数


RPL probe

maxdb_rpl_parse_enabled
maxdb_rpl_query_type
MaxDB 函数
PHP 手册

maxdb_rpl_probe

(PECL maxdb >= 1.0)

maxdb_rpl_probe — RPL probe

说明

bool maxdb_rpl_probe ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

maxdb_rpl_parse_enabled
maxdb_rpl_query_type
MaxDB 函数


Returns RPL query type

maxdb_rpl_probe
maxdb_select_db
MaxDB 函数
PHP 手册

maxdb_rpl_query_type

maxdb->rpl_query_type

(PECL maxdb >= 1.0)

maxdb_rpl_query_type -- maxdb->rpl_query_type — Returns RPL query type

说明

int maxdb_rpl_query_type ( resource $link )

Object oriented style (method)

maxdb
int rpl_query_type ( void )
Warning

本函数暂无文档，仅有参数列表。

maxdb_rpl_probe
maxdb_select_db
MaxDB 函数


Selects the default database for database queries

maxdb_rpl_query_type
maxdb_send_long_data
MaxDB 函数
PHP 手册

maxdb_select_db

maxdb->select_db

(PECL maxdb >= 1.0)

maxdb_select_db -- maxdb->select_db — Selects the default database for database queries

说明

bool maxdb_select_db ( resource $link , string $dbname )

The maxdb_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Note: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in maxdb_connect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* return name of current default database */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = $result->fetch_row();
   printf("Default database is %s.\n", $row[0]);
   $result->close();
}

/* change db to non existing db */
$maxdb->select_db("XXXXXXXX");

/* return name of current default database */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = $result->fetch_row();
   printf("Default database is %s.\n", $row[0]);
   $result->close();
}

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* return name of current default database */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = maxdb_fetch_row($result);
   printf("Default database is %s.\n", $row[0]);
   maxdb_free_result($result);
}

/* change db to non existing db */
maxdb_select_db($link, "XXXXXXXX");

/* return name of current default database */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = maxdb_fetch_row($result);
   printf("Default database is %s.\n", $row[0]);
   maxdb_free_result($result);
}

maxdb_close($link);
?>

上例的输出类似于：

Default database is <...>.

Warning: maxdb_select_db(): -10709 Connection failed (RTE:database not running) <...>

Warning: maxdb_query(): -10821 Session not connected [] <...>

Warning: maxdb_close(): -10821 Session not connected [] <...>

参见

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_real_connect() - Opens a connection to a MaxDB server

maxdb_rpl_query_type
maxdb_send_long_data
MaxDB 函数


别名 maxdb_stmt_send_long_data

maxdb_select_db
maxdb_send_query
MaxDB 函数
PHP 手册

maxdb_send_long_data

(PECL maxdb >= 1.0)

maxdb_send_long_data — 别名 maxdb_stmt_send_long_data()

说明

本函数是该函数的别名： maxdb_stmt_send_long_data().

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

maxdb_select_db
maxdb_send_query
MaxDB 函数


Send the query and return

maxdb_send_long_data
maxdb_server_end
MaxDB 函数
PHP 手册

maxdb_send_query

maxdb->send_query

(PECL maxdb >= 1.0)

maxdb_send_query -- maxdb->send_query — Send the query and return

说明

bool maxdb_send_query ( resource $link , string $query )

Object oriented style (method)

maxdb
bool send_query ( string $query )
Warning

本函数暂无文档，仅有参数列表。

maxdb_send_long_data
maxdb_server_end
MaxDB 函数


Shut down the embedded server

maxdb_send_query
maxdb_server_init
MaxDB 函数
PHP 手册

maxdb_server_end

(PECL maxdb >= 1.0)

maxdb_server_end — Shut down the embedded server

说明

void maxdb_server_end ( void )
Warning

本函数暂无文档，仅有参数列表。

maxdb_send_query
maxdb_server_init
MaxDB 函数


Initialize embedded server

maxdb_server_end
maxdb_set_opt
MaxDB 函数
PHP 手册

maxdb_server_init

(PECL maxdb >= 1.0)

maxdb_server_init — Initialize embedded server

说明

bool maxdb_server_init ([ array $server [, array $groups ]] )
Warning

本函数暂无文档，仅有参数列表。

maxdb_server_end
maxdb_set_opt
MaxDB 函数


别名 maxdb_options

maxdb_server_init
maxdb_sqlstate
MaxDB 函数
PHP 手册

maxdb_set_opt

(PECL maxdb 1.0)

maxdb_set_opt — 别名 maxdb_options()

说明

本函数是该函数的别名： maxdb_options().

maxdb_server_init
maxdb_sqlstate
MaxDB 函数


Returns the SQLSTATE error from previous MaxDB operation

maxdb_set_opt
maxdb_ssl_set
MaxDB 函数
PHP 手册

maxdb_sqlstate

maxdb->sqlstate

(PECL maxdb >= 1.0)

maxdb_sqlstate -- maxdb->sqlstate — Returns the SQLSTATE error from previous MaxDB operation

说明

Procedural style:

string maxdb_sqlstate ( resource $link )

Object oriented style (property):

maxdb
string $sqlstate;

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC.

Note: Note that not all MaxDB errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

返回值

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Table City already exists, so we should get an error */
if (!$maxdb->query("CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
   printf("Error - SQLSTATE %s.\n", $maxdb->sqlstate);
}

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Table City already exists, so we should get an error */
if (!maxdb_query($link, "CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
   printf("Error - SQLSTATE %s.\n", maxdb_sqlstate($link));
}

maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Error - SQLSTATE I6000.

参见

  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error

maxdb_set_opt
maxdb_ssl_set
MaxDB 函数


Used for establishing secure connections using SSL

maxdb_sqlstate
maxdb_stat
MaxDB 函数
PHP 手册

maxdb_ssl_set

maxdb->ssl_set

(PECL maxdb >= 1.0)

maxdb_ssl_set -- maxdb->ssl_set — Used for establishing secure connections using SSL

说明

Procedural style:

bool maxdb_ssl_set ( resource $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Object oriented style (method):

maxdb
bool ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
Warning

本函数暂无文档，仅有参数列表。

maxdb_sqlstate
maxdb_stat
MaxDB 函数


Gets the current system status

maxdb_ssl_set
maxdb_stmt_affected_rows
MaxDB 函数
PHP 手册

maxdb_stat

maxdb->stat

(PECL maxdb >= 1.0)

maxdb_stat -- maxdb->stat — Gets the current system status

说明

Procedural style:

string maxdb_stat ( resource $link )

Object oriented style (method):

maxdb
string maxdb->stat ( void )

maxdb_stat() returns a string containing several information about the MaxDB server running.

返回值

A string describing the server status. FALSE if an error occurred.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("System status: %s\n", $maxdb->stat());

$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("System status: %s\n", maxdb_stat($link));

maxdb_close($link);
?>

上例的输出类似于：

System status: Kernel    7<...>

参见

  • maxdb_get_server_info() - Returns the version of the MaxDB server

maxdb_ssl_set
maxdb_stmt_affected_rows
MaxDB 函数


Returns the total number of rows changed, deleted, or inserted by the last executed statement

maxdb_stat
maxdb_stmt_bind_param
MaxDB 函数
PHP 手册

maxdb_stmt_affected_rows

maxdb_stmt->affected_rows

(PECL maxdb >= 1.0)

maxdb_stmt_affected_rows -- maxdb_stmt->affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement

说明

Procedural style :

int maxdb_stmt_affected_rows ( resource $stmt )

Object oriented style (property):

stmt
int $affected_rows;

maxdb_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid or the number of rows can not determined, this function will return -1.

返回值

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error or the number of rows can not determined.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* create temp table */
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* prepare statement */
if ($stmt = $maxdb->prepare($query)) {

   /* Bind variable for placeholder */
   $code = 'N%';
   $stmt->bind_param("s", $code);

   /* execute statement */
   $stmt->execute();

   printf("rows inserted: %d\n", $stmt->affected_rows);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* create temp table */
maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* prepare statement */
if ($stmt = maxdb_prepare($link, $query)) {

   /* Bind variable for placeholder */
   $code = 'N%';
   maxdb_stmt_bind_param($stmt, "s", $code);

   /* execute statement */
   maxdb_stmt_execute($stmt);

   printf("rows inserted: %d\n", maxdb_stmt_affected_rows($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

rows inserted: 4

参见

  • maxdb_stmt_num_rows() - Return the number of rows in statements result set
  • maxdb_prepare() - Prepare a SQL statement for execution

maxdb_stat
maxdb_stmt_bind_param
MaxDB 函数


Binds variables to a prepared statement as parameters

maxdb_stmt_affected_rows
maxdb_stmt_bind_result
MaxDB 函数
PHP 手册

maxdb_stmt_bind_param

stmt->bind_param

(PECL maxdb >= 1.0)

maxdb_stmt_bind_param -- stmt->bind_param — Binds variables to a prepared statement as parameters

说明

Procedural style:

bool maxdb_stmt_bind_param ( resource $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Object oriented style (method):

stmt
bool bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Procedural style (extended syntax):

bool maxdb_stmt_bind_param ( resource $stmt , string $types , array &$var )

Object oriented style (method) (extended syntax):

stmt
bool bind_param ( string $types , array &$var )

maxdb_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to maxdb_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables.

The extended syntax of maxdb_stmt_bind_param() allows to give the parameters as an array instead of a variable list of PHP variables to the function. If the array variable has not been used before calling maxdb_stmt_bind_param(), it has to be initialized as an emtpy array. See the examples how to use maxdb_stmt_bind_param() with extended syntax.

Variables for SELECT INTO SQL statements can also be bound using maxdb_stmt_bind_param(). Parameters for database procedures can be bound using maxdb_stmt_bind_param(). See the examples how to use maxdb_stmt_bind_param() in this cases.

If a variable bound as INTO variable to a SQL statement was used before, the content of this variable is overwritten by the data of the SELECT INTO statement. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

For INOUT parameters of database procedures the content of the bound INOUT variable is overwritten by the output value of the database procedure. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

Type specification chars
Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be sent in packages

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n", $maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query ($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = maxdb_prepare($link, "INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt, 'sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* execute prepared statement */
maxdb_stmt_execute($stmt);

printf("%d Row inserted.\n", maxdb_stmt_affected_rows($stmt));

/* close statement and connection */
maxdb_stmt_close($stmt);

/* Clean up table CountryLanguage */
maxdb_query($link, "DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n", maxdb_affected_rows($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

1 Row inserted.
1 Row deleted.

Example #3 Procedural style (SELECT INTO)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

$hno = "50";
$rtype = "suite";

maxdb_stmt_bind_param($stmt, 'dss', $price, $hno, $rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n", $price);

maxdb_stmt_close ($stmt);
?>

上例的输出类似于：

21.600000

Example #4 Procedural style (DB procedure)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

上例的输出类似于：

a

Example #5 Object oriented style (extended syntax)

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss', $arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

$result = $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if ($result) {
  while ($row = $result->fetch_row()) {
    printf ("%s %s %s\n", $row[0], $row[1], $row[2]);
  }
}

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d Rows deleted.\n", $maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

上例的输出类似于：

1 Row inserted.
1 Row inserted.
11111 Georgetown NY
22222 New Orleans LA
2 Rows deleted.

参见

  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_send_long_data() - Send data in blocks
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error

maxdb_stmt_affected_rows
maxdb_stmt_bind_result
MaxDB 函数


Binds variables to a prepared statement for result storage

maxdb_stmt_bind_param
maxdb_stmt_close_long_data
MaxDB 函数
PHP 手册

maxdb_stmt_bind_result

stmt->bind_result

(PECL maxdb >= 1.0)

maxdb_stmt_bind_result -- stmt->bind_result — Binds variables to a prepared statement for result storage

说明

Procedural style:

bool maxdb_stmt_bind_result ( resource $stmt , mixed &$var1 [, mixed &$... ] )

Object oriented style (method):

stmt
bool bind_result ( mixed &$var1 [, mixed &$... ] )

maxdb_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When maxdb_stmt_fetch() is called to fetch data, the MaxDB client/server protocol places the data for the bound columns into the specified variables var1, ... .

Note: Note that all columns must be bound prior to calling maxdb_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.
A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time maxdb_stmt_fetch() is called.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* prepare statement */
if ($stmt = $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
   $stmt->execute();

   /* bind variables to prepared statement */
   $stmt->bind_result($col1, $col2);

   /* fetch values */
   while ($stmt->fetch()) {
       printf("%s %s\n", $col1, $col2);
   }

   /* close statement */
   $stmt->close();
}
/* close connection */
$maxdb->close();

?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* prepare statement */
if ($stmt = maxdb_prepare($link, "SELECT zip, name FROM hotel.city ORDER BY name")) {
   maxdb_stmt_execute($stmt);

   /* bind variables to prepared statement */
   maxdb_stmt_bind_result($stmt, $col1, $col2);

   /* fetch values */
   while (maxdb_stmt_fetch($stmt)) {
       printf("%s %s\n", $col1, $col2);
   }

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

12203 Albany
60601 Chicago
60615 Chicago
45211 Cincinnati
33575 Clearwater
75243 Dallas
32018 Daytona Beach
33441 Deerfield Beach
48226 Detroit
90029 Hollywood
92714 Irvine
90804 Long Beach
11788 Long Island
90018 Los Angeles
70112 New Orleans
10019 New York
10580 New York
92262 Palm Springs
97213 Portland
60018 Rosemont
95054 Santa Clara
20903 Silver Spring
20005 Washington
20019 Washington
20037 Washington

参见

  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error

maxdb_stmt_bind_param
maxdb_stmt_close_long_data
MaxDB 函数


Ends a sequence of maxdb_stmt_send_long_data

maxdb_stmt_bind_result
maxdb_stmt_close
MaxDB 函数
PHP 手册

maxdb_stmt_close_long_data

stmt->close_long_data

(PECL maxdb 1.0)

maxdb_stmt_close_long_data -- stmt->close_long_data — Ends a sequence of maxdb_stmt_send_long_data()

说明

Procedural style:

bool maxdb_stmt_close_long_data ( resource $stmt , int $param_nr )

Object oriented style (method):

maxdb_stmt
bool maxdb_stmt->close_long_data ( void )

This function has to be called after a sequence of maxdb_stmt_send_long_data(), that was started after maxdb_execute().

param_nr indicates which parameter to associate the end of data with. Parameters are numbered beginning with 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters

maxdb_stmt_bind_result
maxdb_stmt_close
MaxDB 函数


Closes a prepared statement

maxdb_stmt_close_long_data
maxdb_stmt_data_seek
MaxDB 函数
PHP 手册

maxdb_stmt_close

maxdb_stmt->close

(PECL maxdb >= 1.0)

maxdb_stmt_close -- maxdb_stmt->close — Closes a prepared statement

说明

Procedural style:

bool maxdb_stmt_close ( resource $stmt )

Object oriented style (method):

maxdb_stmt
bool maxdb_stmt->close ( void )

Closes a prepared statement. maxdb_stmt_close() also deallocates the statement handle pointed to by stmt . If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • maxdb_prepare() - Prepare a SQL statement for execution

maxdb_stmt_close_long_data
maxdb_stmt_data_seek
MaxDB 函数


Seeks to an arbitray row in statement result set

maxdb_stmt_close
maxdb_stmt_errno
MaxDB 函数
PHP 手册

maxdb_stmt_data_seek

stmt->data_seek

(PECL maxdb >= 1.0)

maxdb_stmt_data_seek -- stmt->data_seek — Seeks to an arbitray row in statement result set

说明

Procedural style:

bool maxdb_stmt_data_seek ( resource $statement , int $offset )

Object oriented style (method):

stmt
bool data_seek ( int $offset )

The maxdb_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement . The offset parameter must be between zero and the total number of rows minus one (0..maxdb_stmt_num_rows() - 1).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($name, $code);

   /* store result */
   $stmt->store_result();

   /* seek to row no. 5 */
   $stmt->data_seek(5);

   /* fetch values */
   $stmt->fetch();

   printf ("City: %s  Zip: %s\n", $name, $code);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $name, $code);

   /* store result */
   maxdb_stmt_store_result($stmt);

   /* seek to row no. 5 */
   maxdb_stmt_data_seek($stmt, 5);

   /* fetch values */
   maxdb_stmt_fetch($stmt);

   printf ("City: %s  Zip: %s\n", $name, $code);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

City: Dallas  Zip: 75243

参见

  • maxdb_prepare() - Prepare a SQL statement for execution

maxdb_stmt_close
maxdb_stmt_errno
MaxDB 函数


Returns the error code for the most recent statement call

maxdb_stmt_data_seek
maxdb_stmt_error
MaxDB 函数
PHP 手册

maxdb_stmt_errno

maxdb_stmt->errno

(PECL maxdb >= 1.0)

maxdb_stmt_errno -- maxdb_stmt->errno — Returns the error code for the most recent statement call

说明

Procedural style :

int maxdb_stmt_errno ( resource $stmt )

Object oriented style (property):

stmt
int $errno;

For the statement specified by stmt, maxdb_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Note: For possible error codes see documentation of SQLDBC: » http://maxdb.sap.com/documentation/.

返回值

An error code value. Zero means no error occurred.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %d.\n", $stmt->errno);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %d.\n", maxdb_stmt_errno($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: -4004.

参见

  • maxdb_stmt_error() - Returns a string description for last statement error
  • maxdb_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation

maxdb_stmt_data_seek
maxdb_stmt_error
MaxDB 函数


Returns a string description for last statement error

maxdb_stmt_errno
maxdb_stmt_execute
MaxDB 函数
PHP 手册

maxdb_stmt_error

maxdb_stmt->error

(PECL maxdb >= 1.0)

maxdb_stmt_error -- maxdb_stmt->error — Returns a string description for last statement error

说明

Procedural style:

string maxdb_stmt_error ( resource $stmt )

Object oriented style (property):

stmt
string $error;

For the statement specified by stmt, maxdb_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

返回值

A string that describes the error. An empty string if no error occurred.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %s.\n", $stmt->error);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %s.\n", maxdb_stmt_error($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: POS(23) Unknown table name:MYCITY.

参见

  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation

maxdb_stmt_errno
maxdb_stmt_execute
MaxDB 函数


Executes a prepared Query

maxdb_stmt_error
maxdb_stmt_fetch
MaxDB 函数
PHP 手册

maxdb_stmt_execute

stmt->execute

(PECL maxdb >= 1.0)

maxdb_stmt_execute -- stmt->execute — Executes a prepared Query

说明

Procedural style:

bool maxdb_stmt_execute ( resource $stmt )

Object oriented style (method):

stmt
bool execute ( void )

The maxdb_stmt_execute() function executes a query that has been previously prepared using the maxdb_prepare() function represented by the stmt resource. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the maxdb_stmt_affected_rows() function. Likewise, if the query yields a result set the maxdb_fetch() function is used.

Note: When using maxdb_stmt_execute(), the maxdb_fetch() function must be used to fetch the data prior to preforming any additional queries.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* Prepare an insert statement */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = $maxdb->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Execute the statement */
$stmt->execute();

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = $maxdb->query($query)) {
   while ($row = $result->fetch_row()) {
       printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
   }
   /* free result set */
   $result->close();
}

/* remove table */
$maxdb->query("DROP TABLE temp.mycity");

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* Prepare an insert statement */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = maxdb_prepare($link, $query);

maxdb_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Execute the statement */
maxdb_stmt_execute($stmt);

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Execute the statement */
maxdb_stmt_execute($stmt);

/* close statement */
maxdb_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = maxdb_query($link, $query)) {
   while ($row = maxdb_fetch_row($result)) {
       printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
   }
   /* free result set */
   maxdb_free_result($result);
}

/* remove table */
maxdb_query($link, "DROP TABLE temp.mycity");

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

参见

  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters

maxdb_stmt_error
maxdb_stmt_fetch
MaxDB 函数


Fetch results from a prepared statement into the bound variables

maxdb_stmt_execute
maxdb_stmt_free_result
MaxDB 函数
PHP 手册

maxdb_stmt_fetch

stmt->fetch

(PECL maxdb >= 1.0)

maxdb_stmt_fetch -- stmt->fetch — Fetch results from a prepared statement into the bound variables

说明

Procedural style:

bool maxdb_stmt_fetch ( resource $stmt )

Object oriented style (method):

stmt
bool fetch ( void )

maxdb_stmt_fetch() returns row data using the variables bound by maxdb_stmt_bind_result().

Note: Note that all columns must be bound by the application before calling maxdb_stmt_fetch().

返回值

Return values
Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = $maxdb->prepare($query)) {

   /* execute statement */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($name, $code);

   /* fetch values */
   while ($stmt->fetch()) {
       printf ("%s (%s)\n", $name, $code);
   }

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = maxdb_prepare($link, $query)) {

   /* execute statement */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $name, $code);

   /* fetch values */
   while (maxdb_stmt_fetch($stmt)) {
       printf ("%s (%s)\n", $name, $code);
   }

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

12203 (Albany)
60601 (Chicago)
60615 (Chicago)
45211 (Cincinnati)
33575 (Clearwater)
75243 (Dallas)
32018 (Daytona Beach)
33441 (Deerfield Beach)
48226 (Detroit)
90029 (Hollywood)
92714 (Irvine)
90804 (Long Beach)
11788 (Long Island)
90018 (Los Angeles)
70112 (New Orleans)
10019 (New York)
10580 (New York)
92262 (Palm Springs)
97213 (Portland)
60018 (Rosemont)
95054 (Santa Clara)
20903 (Silver Spring)
20005 (Washington)
20019 (Washington)
20037 (Washington)

参见

  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error
  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage

maxdb_stmt_execute
maxdb_stmt_free_result
MaxDB 函数


Frees stored result memory for the given statement handle

maxdb_stmt_fetch
maxdb_stmt_init
MaxDB 函数
PHP 手册

maxdb_stmt_free_result

stmt->free_result

(PECL maxdb >= 1.0)

maxdb_stmt_free_result -- stmt->free_result — Frees stored result memory for the given statement handle

说明

Procedural style:

void maxdb_stmt_free_result ( resource $stmt )

Object oriented style (method):

stmt
void free_result ( void )

The maxdb_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by maxdb_stmt_store_result().

返回值

This function doesn't return any value.

参见

  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement

maxdb_stmt_fetch
maxdb_stmt_init
MaxDB 函数


Initializes a statement and returns an resource for use with maxdb_stmt_prepare

maxdb_stmt_free_result
maxdb_stmt_num_rows
MaxDB 函数
PHP 手册

maxdb_stmt_init

maxdb->stmt_init

(PECL maxdb >= 1.0)

maxdb_stmt_init -- maxdb->stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare

说明

Procedural style :

resource maxdb_stmt_init ( resource $link )

Object oriented style (property):

maxdb
object stmt_init ( void )

Allocates and initializes a statement resource suitable for maxdb_stmt_prepare().

Note: Any subsequent calls to any maxdb_stmt function will fail until maxdb_stmt_prepare() was called.

返回值

Returns an resource.

参见

  • maxdb_stmt_prepare() - Prepare a SQL statement for execution

maxdb_stmt_free_result
maxdb_stmt_num_rows
MaxDB 函数


Return the number of rows in statements result set

maxdb_stmt_init
maxdb_stmt_param_count
MaxDB 函数
PHP 手册

maxdb_stmt_num_rows

stmt->num_rows

(PECL maxdb >= 1.0)

maxdb_stmt_num_rows -- stmt->num_rows — Return the number of rows in statements result set

说明

Procedural style :

int maxdb_stmt_num_rows ( resource $stmt )

Object oriented style (property):

stmt
int $num_rows;

Returns the number of rows in the result set.

返回值

An integer representing the number of rows in result set.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   printf("Number of rows: %d.\n", $stmt->num_rows);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* store result */
   maxdb_stmt_store_result($stmt);

   printf("Number of rows: %d.\n", maxdb_stmt_num_rows($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Number of rows: 25.

参见

  • maxdb_stmt_affected_rows() - Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement

maxdb_stmt_init
maxdb_stmt_param_count
MaxDB 函数


Returns the number of parameter for the given statement

maxdb_stmt_num_rows
maxdb_stmt_prepare
MaxDB 函数
PHP 手册

maxdb_stmt_param_count

stmt->param_count

(PECL maxdb >= 1.0)

maxdb_stmt_param_count -- stmt->param_count — Returns the number of parameter for the given statement

说明

Procedural style:

int maxdb_stmt_param_count ( resource $stmt )

Object oriented style (property):

stmt
int $param_count;

maxdb_stmt_param_count() returns the number of parameter markers present in the prepared statement.

返回值

returns an integer representing the number of parameters.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($stmt = $maxdb->prepare("SELECT name FROM hotel.city WHERE name=? OR state=?")) {

   $marker = $stmt->param_count;
   printf("Statement has %d markers.\n", $marker);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($stmt = maxdb_prepare($link, "SELECT name FROM hotel.city WHERE name=? OR state=?")) {

   $marker = maxdb_stmt_param_count($stmt);
   printf("Statement has %d markers.\n", $marker);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Statement has 2 markers.

参见

  • maxdb_prepare() - Prepare a SQL statement for execution

maxdb_stmt_num_rows
maxdb_stmt_prepare
MaxDB 函数


Prepare a SQL statement for execution

maxdb_stmt_param_count
maxdb_stmt_reset
MaxDB 函数
PHP 手册

maxdb_stmt_prepare

stmt->prepare

(PECL maxdb >= 1.0)

maxdb_stmt_prepare -- stmt->prepare — Prepare a SQL statement for execution

说明

Procedure style:

bool maxdb_stmt_prepare ( resource $stmt , string $query )

Object oriented style (method)

stmt
mixed prepare ( string $query )

maxdb_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement resource has to be allocated by maxdb_stmt_init(). The query must consist of a single SQL statement.

Note: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Note: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.
However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using maxdb_stmt_bind_param() and/or maxdb_stmt_bind_result() before executing the statement or fetching rows.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Portland";

/* create a prepared statement */
$stmt =  $maxdb->stmt_init();
if ($stmt->prepare("SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Portland";

/* create a prepared statement */
$stmt = maxdb_stmt_init($link);
if (maxdb_stmt_prepare($stmt, "SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   maxdb_stmt_bind_param($stmt, "s", $city);

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $district);

   /* fetch value */
   maxdb_stmt_fetch($stmt);

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Portland is in district OR

参见

  • maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_close() - Closes a prepared statement

maxdb_stmt_param_count
maxdb_stmt_reset
MaxDB 函数


Resets a prepared statement

maxdb_stmt_prepare
maxdb_stmt_result_metadata
MaxDB 函数
PHP 手册

maxdb_stmt_reset

stmt->reset

(PECL maxdb >= 1.0)

maxdb_stmt_reset -- stmt->reset — Resets a prepared statement

说明

Procedural style:

bool maxdb_stmt_reset ( resource $stmt )

Object oriented style (method):

stmt
bool reset ( void )
Warning

本函数暂无文档，仅有参数列表。

maxdb_stmt_prepare
maxdb_stmt_result_metadata
MaxDB 函数


Returns result set metadata from a prepared statement

maxdb_stmt_reset
maxdb_stmt_send_long_data
MaxDB 函数
PHP 手册

maxdb_stmt_result_metadata

(PECL maxdb >= 1.0)

maxdb_stmt_result_metadata — Returns result set metadata from a prepared statement

说明

Procedural style:

resource maxdb_stmt_result_metadata ( resource $stmt )

Object oriented style (method):

stmt
resource result_metadata ( void )

If a statement passed to maxdb_prepare() is one that produces a result set, maxdb_stmt_result_metadata() returns the result resource that can be used to process the meta information such as total number of fields and individual field information.

Note: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • maxdb_num_fields()

  • maxdb_fetch_field()

  • maxdb_fetch_field_direct()

  • maxdb_fetch_fields()

  • maxdb_field_count()

  • maxdb_field_seek()

  • maxdb_field_tell()

  • maxdb_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to maxdb_free_result()

Note: The result set returned by maxdb_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with maxdb_fetch().

返回值

maxdb_stmt_result_metadata() returns a result resource or FALSE if an error occured.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

$maxdb->query("CREATE TABLE temp.friends (id int, name varchar(20))");

$maxdb->query("INSERT INTO temp.friends VALUES (1,'Hartmut')");
$maxdb->query("INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = $maxdb->prepare("SELECT id, name FROM temp.friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_query($link, "CREATE TABLE temp.friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO temp.friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = maxdb_prepare($link, "SELECT id, name FROM temp.friends");
maxdb_stmt_execute($stmt);

/* get resultset for metadata */
$result = maxdb_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = maxdb_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
maxdb_free_result($result);

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Fieldname: ID

参见

  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_free_result() - Frees the memory associated with a result

maxdb_stmt_reset
maxdb_stmt_send_long_data
MaxDB 函数


Send data in blocks

maxdb_stmt_result_metadata
maxdb_stmt_sqlstate
MaxDB 函数
PHP 手册

maxdb_stmt_send_long_data

stmt->send_long_data

(PECL maxdb 1.0)

maxdb_stmt_send_long_data -- stmt->send_long_data — Send data in blocks

说明

Procedural style:

bool maxdb_stmt_send_long_data ( resource $stmt , int $param_nr , string $data )

Object oriented style (method)

stmt
bool stmt_send_long_data ( int $param_nr , string $data )

Allows to send parameter data to the server in pieces (or chunks). This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Note: For efficiency reasons, this function should be used after calling maxdb_execute(). In this case, the data is not stored on the client side. The end of the sequence must end with a call to maxdb_stmt_close_long_data().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters

maxdb_stmt_result_metadata
maxdb_stmt_sqlstate
MaxDB 函数


Returns SQLSTATE error from previous statement operation

maxdb_stmt_send_long_data
maxdb_stmt_store_result
MaxDB 函数
PHP 手册

maxdb_stmt_sqlstate

(PECL maxdb >= 1.0)

maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation

说明

string maxdb_stmt_sqlstate ( resource $stmt )

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC.

Note: Note that not all MaxDB errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

返回值

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %s.\n", $stmt->sqlstate);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %s.\n", maxdb_stmt_sqlstate($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: 42000.

参见

  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error

maxdb_stmt_send_long_data
maxdb_stmt_store_result
MaxDB 函数


Transfers a result set from a prepared statement

maxdb_stmt_sqlstate
maxdb_store_result
MaxDB 函数
PHP 手册

maxdb_stmt_store_result

maxdb->store_result

(PECL maxdb >= 1.0)

maxdb_stmt_store_result -- maxdb->store_result — Transfers a result set from a prepared statement

说明

Procedural style:

bool maxdb_stmt_store_result ( resource $stmt )

Object oriented style (method):

maxdb
object store_result ( void )

maxdb_stmt_store_result() has no functionally effect and should not be used for retrieving data from MaxDB server.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   printf("Number of rows: %d.\n", $stmt->num_rows);

   /* free result */
   $stmt->free_result();

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* store result */
   maxdb_stmt_store_result($stmt);

   printf("Number of rows: %d.\n", maxdb_stmt_num_rows($stmt));

   /* free result */
   maxdb_stmt_free_result($stmt);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Number of rows: 25.

参见

  • maxdb_prepare() - Prepare a SQL statement for execution
  • maxdb_stmt_result_metadata() - Returns result set metadata from a prepared statement
  • maxdb_fetch() - 别名 maxdb_stmt_fetch

maxdb_stmt_sqlstate
maxdb_store_result
MaxDB 函数


Transfers a result set from the last query

maxdb_stmt_store_result
maxdb_thread_id
MaxDB 函数
PHP 手册

maxdb_store_result

maxdb->store_result

(PECL maxdb >= 1.0)

maxdb_store_result -- maxdb->store_result — Transfers a result set from the last query

说明

Procedural style:

resource maxdb_store_result ( resource $link )

Object oriented style (method):

maxdb
object store_result ( void )

This function has no functionally effect.

返回值

Returns a result resource or FALSE if an error occurred.

范例

See maxdb_multi_query().

参见

  • maxdb_real_query() - Execute an SQL query
  • maxdb_use_result() - Initiate a result set retrieval

maxdb_stmt_store_result
maxdb_thread_id
MaxDB 函数


Returns the thread ID for the current connection

maxdb_store_result
maxdb_thread_safe
MaxDB 函数
PHP 手册

maxdb_thread_id

maxdb->thread_id

(PECL maxdb >= 1.0)

maxdb_thread_id -- maxdb->thread_id — Returns the thread ID for the current connection

说明

Procedural style:

int maxdb_thread_id ( resource $link )

Object oriented style (property):

maxdb
int $thread_id;

The maxdb_thread_id() function returns the thread ID for the current connection which can then be killed using the maxdb_kill() function. If the connection is lost and you reconnect with maxdb_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Note: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

返回值

maxdb_thread_id() returns the Thread ID for the current connection.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = $maxdb->thread_id;

/* Kill connection */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE mycity LIKE hotel.city")) {
   printf("Error: %s\n", $maxdb->error);
   exit;
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = maxdb_thread_id($link);

/* Kill connection */
maxdb_kill($link, $thread_id);

/* This should produce an error */
if (!maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city")) {
   printf("Error: %s\n", maxdb_error($link));
   exit;
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_query(): -10821 Session not connected <...>
Error: Session not connected

参见

  • maxdb_kill() - Disconnects from a MaxDB server

maxdb_store_result
maxdb_thread_safe
MaxDB 函数


Returns whether thread safety is given or not

maxdb_thread_id
maxdb_use_result
MaxDB 函数
PHP 手册

maxdb_thread_safe

(No version information available, might be only in CVS)

maxdb_thread_safe — Returns whether thread safety is given or not

说明

Procedural style:

bool maxdb_thread_safe ( void )

maxdb_thread_safe() indicates whether the client library is compiled as thread-safe.

返回值

TRUE if the client library is thread-safe, otherwise FALSE.

maxdb_thread_id
maxdb_use_result
MaxDB 函数


Initiate a result set retrieval

maxdb_thread_safe
maxdb_warning_count
MaxDB 函数
PHP 手册

maxdb_use_result

maxdb->use_result

(PECL maxdb >= 1.0)

maxdb_use_result -- maxdb->use_result — Initiate a result set retrieval

说明

Procedural style:

resource maxdb_use_result ( resource $link )

Object oriented style (method):

maxdb
resource use_result ( void )

maxdb_use_result() has no effect.

返回值

Returns result or FALSE in case of error.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM DUAL";

/* execute multi query */
if ($maxdb->multi_query($query)) {
   do {
       /* store first result set */
       if ($result = $maxdb->use_result()) {
           while ($row = $result->fetch_row()) {
               printf("%s\n", $row[0]);
           }
           $result->close();
       }
       /* print divider */
       if ($maxdb->more_results()) {
           printf("-----------------\n");
       }
   } while ($maxdb->next_result());
}

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM DUAL";

/* execute multi query */
if (maxdb_multi_query($link, $query)) {
   do {
       /* store first result set */
       if ($result = maxdb_use_result($link)) {
           while ($row = maxdb_fetch_row($result)) {
               printf("%s\n", $row[0]);
           }
           maxdb_free_result($result);
       }
       /* print divider */
       if (maxdb_more_results($link)) {
           printf("-----------------\n");
       }
   } while (maxdb_next_result($link));
}

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

a

参见

  • maxdb_real_query() - Execute an SQL query
  • maxdb_store_result() - Transfers a result set from the last query

maxdb_thread_safe
maxdb_warning_count
MaxDB 函数


Returns the number of warnings from the last query for the given link

maxdb_use_result
mSQL
MaxDB 函数
PHP 手册

maxdb_warning_count

maxdb->warning_count

(PECL maxdb >= 1.0)

maxdb_warning_count -- maxdb->warning_count — Returns the number of warnings from the last query for the given link

说明

Procedural style:

int maxdb_warning_count ( resource $link )

Object oriented style (property):

maxdb
int $warning_count;

maxdb_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

返回值

Number of warnings or zero if there are no warnings.

范例

Example #1 Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* a remarkable city in Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
       'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$maxdb->query($query);

printf ("Number of warning: %d\n", $maxdb->warning_count);

/* close connection */
$maxdb->close();
?>

Example #2 Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* a remarkable long city name in Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
       'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

maxdb_query($link, $query);

printf ("Number of warning: %d\n", maxdb_warning_count($link));

/* close connection */
maxdb_close($link);
?>

上例的输出类似于：

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
Number of warning: 0

参见

  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation

maxdb_use_result
mSQL
MaxDB 函数


mSQL

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • mSQL usage example
  • mSQL 函数
    • msql_affected_rows — Returns number of affected rows
    • msql_close — Close mSQL connection
    • msql_connect — Open mSQL connection
    • msql_create_db — Create mSQL database
    • msql_createdb — 别名 msql_create_db
    • msql_data_seek — Move internal row pointer
    • msql_db_query — Send mSQL query
    • msql_dbname — 别名 msql_result
    • msql_drop_db — Drop (delete) mSQL database
    • msql_error — Returns error message of last msql call
    • msql_fetch_array — Fetch row as array
    • msql_fetch_field — Get field information
    • msql_fetch_object — Fetch row as object
    • msql_fetch_row — Get row as enumerated array
    • msql_field_flags — Get field flags
    • msql_field_len — Get field length
    • msql_field_name — Get the name of the specified field in a result
    • msql_field_seek — Set field offset
    • msql_field_table — Get table name for field
    • msql_field_type — Get field type
    • msql_fieldflags — Alias of msql_field_flags
    • msql_fieldlen — Alias of msql_field_len
    • msql_fieldname — Alias of msql_field_name
    • msql_fieldtable — Alias of msql_field_table
    • msql_fieldtype — Alias of msql_field_type
    • msql_free_result — Free result memory
    • msql_list_dbs — List mSQL databases on server
    • msql_list_fields — List result fields
    • msql_list_tables — List tables in an mSQL database
    • msql_num_fields — Get number of fields in result
    • msql_num_rows — Get number of rows in result
    • msql_numfields — Alias of msql_num_fields
    • msql_numrows — Alias of msql_num_rows
    • msql_pconnect — Open persistent mSQL connection
    • msql_query — Send mSQL query
    • msql_regcase — Alias of sql_regcase
    • msql_result — Get result data
    • msql_select_db — Select mSQL database
    • msql_tablename — Alias of msql_result
    • msql — Alias of msql_db_query
maxdb_warning_count
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access mSQL database servers. More information about mSQL can be found at » http://www.hughes.com.au/.

mSQL
安装/配置
mSQL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
mSQL


安装

In order to have these functions available, you must compile PHP with msql support by using the --with-msql[=DIR] option. DIR is the mSQL base install directory, defaults to /usr/local/msql3.

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: msql.dll

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

mSQL configuration options
Name | Default | Changeable | Changelog
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

msql.allow_persistent boolean

Whether to allow persistent mSQL connections.

msql.max_persistent integer

The maximum number of persistent mSQL connections per process.

msql.max_links integer

The maximum number of mSQL connections per process, including persistent connections.

安装
资源类型
安装/配置


资源类型

There are two resource types used in the mSQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

MSQL_ASSOC (integer)
MSQL_NUM (integer)
MSQL_BOTH (integer)
资源类型
范例
mSQL


范例

Table of Contents

  • mSQL usage example
预定义常量
mSQL usage example
mSQL


mSQL usage example

范例
mSQL 函数
范例
PHP 手册

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a mSQL database.

Example #1 mSQL usage example

<?php
/* Connecting, selecting database */
$link = msql_connect('localhost', 'username', 'password')
    or die('Could not connect : ' . msql_error($link));

msql_select_db('database', $link)
    or die('Could not select database');

/* Issue SQL query */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Query failed : ' . msql_error());

/* Printing results in HTML */
echo "<table>\n";
while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($row as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Free result set */
msql_free_result($result);

/* Close connection */
msql_close($link);
?>

范例
mSQL 函数
范例


mSQL 函数

Table of Contents

  • msql_affected_rows — Returns number of affected rows
  • msql_close — Close mSQL connection
  • msql_connect — Open mSQL connection
  • msql_create_db — Create mSQL database
  • msql_createdb — 别名 msql_create_db
  • msql_data_seek — Move internal row pointer
  • msql_db_query — Send mSQL query
  • msql_dbname — 别名 msql_result
  • msql_drop_db — Drop (delete) mSQL database
  • msql_error — Returns error message of last msql call
  • msql_fetch_array — Fetch row as array
  • msql_fetch_field — Get field information
  • msql_fetch_object — Fetch row as object
  • msql_fetch_row — Get row as enumerated array
  • msql_field_flags — Get field flags
  • msql_field_len — Get field length
  • msql_field_name — Get the name of the specified field in a result
  • msql_field_seek — Set field offset
  • msql_field_table — Get table name for field
  • msql_field_type — Get field type
  • msql_fieldflags — Alias of msql_field_flags
  • msql_fieldlen — Alias of msql_field_len
  • msql_fieldname — Alias of msql_field_name
  • msql_fieldtable — Alias of msql_field_table
  • msql_fieldtype — Alias of msql_field_type
  • msql_free_result — Free result memory
  • msql_list_dbs — List mSQL databases on server
  • msql_list_fields — List result fields
  • msql_list_tables — List tables in an mSQL database
  • msql_num_fields — Get number of fields in result
  • msql_num_rows — Get number of rows in result
  • msql_numfields — Alias of msql_num_fields
  • msql_numrows — Alias of msql_num_rows
  • msql_pconnect — Open persistent mSQL connection
  • msql_query — Send mSQL query
  • msql_regcase — Alias of sql_regcase
  • msql_result — Get result data
  • msql_select_db — Select mSQL database
  • msql_tablename — Alias of msql_result
  • msql — Alias of msql_db_query
mSQL usage example
msql_affected_rows
mSQL


Returns number of affected rows

mSQL 函数
msql_close
mSQL 函数
PHP 手册

msql_affected_rows

(PHP 4, PHP 5)

msql_affected_rows — Returns number of affected rows

说明

int msql_affected_rows ( resource $result )

Returns number of affected rows by the last SELECT, UPDATE or DELETE query associated with result .

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

返回值

Returns the number of affected rows on success, or FALSE on error.

参见

  • msql_query() - Send mSQL query

mSQL 函数
msql_close
mSQL 函数


Close mSQL connection

msql_affected_rows
msql_connect
mSQL 函数
PHP 手册

msql_close

(PHP 4, PHP 5)

msql_close — Close mSQL connection

说明

bool msql_close ([ resource $link_identifier ] )

msql_close() closes the non-persistent connection to the mSQL server that's associated with the specified link identifier.

Using msql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.

参数

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msql_connect() - Open mSQL connection
  • msql_pconnect() - Open persistent mSQL connection

msql_affected_rows
msql_connect
mSQL 函数


Open mSQL connection

msql_close
msql_create_db
mSQL 函数
PHP 手册

msql_connect

(PHP 4, PHP 5)

msql_connect — Open mSQL connection

说明

resource msql_connect ([ string $hostname ] )

msql_connect() establishes a connection to a mSQL server.

In case a second call is made to msql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling msql_close().

参数

hostname

The hostname can also include a port number. e.g. hostname,port.

If not specified, the connection is established by the means of a Unix domain socket, being then more efficient then a localhost TCP socket connection.

Note: While this function will accept a colon (:) as a host/port separator, a comma (,) is the preferred method.

返回值

Returns a positive mSQL link identifier on success, or FALSE on error.

参见

  • msql_pconnect() - Open persistent mSQL connection
  • msql_close() - Close mSQL connection

msql_close
msql_create_db
mSQL 函数


Create mSQL database

msql_connect
msql_createdb
mSQL 函数
PHP 手册

msql_create_db

(PHP 4, PHP 5)

msql_create_db — Create mSQL database

说明

bool msql_create_db ( string $database_name [, resource $link_identifier ] )

msql_create_db() attempts to create a new database on the mSQL server.

参数

database_name

The name of the mSQL database.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msql_drop_db() - Drop (delete) mSQL database

msql_connect
msql_createdb
mSQL 函数


别名 msql_create_db

msql_create_db
msql_data_seek
mSQL 函数
PHP 手册

msql_createdb

(PHP 4, PHP 5)

msql_createdb — 别名 msql_create_db()

说明

本函数是该函数的别名： msql_create_db().

msql_create_db
msql_data_seek
mSQL 函数


Move internal row pointer

msql_createdb
msql_db_query
mSQL 函数
PHP 手册

msql_data_seek

(PHP 4, PHP 5)

msql_data_seek — Move internal row pointer

说明

bool msql_data_seek ( resource $result , int $row_number )

msql_data_seek() moves the internal row pointer of the mSQL result associated with the specified query identifier to point to the specified row number. The next call to msql_fetch_row() would return that row.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

row_number

The seeked row number.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_object() - Fetch row as object
  • msql_fetch_row() - Get row as enumerated array
  • msql_result() - Get result data

msql_createdb
msql_db_query
mSQL 函数


Send mSQL query

msql_data_seek
msql_dbname
mSQL 函数
PHP 手册

msql_db_query

(PHP 4, PHP 5)

msql_db_query — Send mSQL query

说明

resource msql_db_query ( string $database , string $query [, resource $link_identifier ] )

msql_db_query() selects a database and executes a query on it.

参数

database

The name of the mSQL database.

query

The SQL query.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

Returns a positive mSQL query identifier to the query result, or FALSE on error.

参见

  • msql_query() - Send mSQL query

msql_data_seek
msql_dbname
mSQL 函数


别名 msql_result

msql_db_query
msql_drop_db
mSQL 函数
PHP 手册

msql_dbname

(PHP 4, PHP 5)

msql_dbname — 别名 msql_result()

说明

本函数是该函数的别名： msql_result().

msql_db_query
msql_drop_db
mSQL 函数


Drop (delete) mSQL database

msql_dbname
msql_error
mSQL 函数
PHP 手册

msql_drop_db

(PHP 4, PHP 5)

msql_drop_db — Drop (delete) mSQL database

说明

bool msql_drop_db ( string $database_name [, resource $link_identifier ] )

msql_drop_db() attempts to drop (remove) a database from the mSQL server.

参数

database_name

The name of the database.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msql_create_db() - Create mSQL database

msql_dbname
msql_error
mSQL 函数


Returns error message of last msql call

msql_drop_db
msql_fetch_array
mSQL 函数
PHP 手册

msql_error

(PHP 4, PHP 5)

msql_error — Returns error message of last msql call

说明

string msql_error ( void )

msql_error() returns the last issued error by the mSQL server. Note that only the last error message is accessible with msql_error().

返回值

The last error message or an empty string if no error was issued.

msql_drop_db
msql_fetch_array
mSQL 函数


Fetch row as array

msql_error
msql_fetch_field
mSQL 函数
PHP 手册

msql_fetch_array

(PHP 4, PHP 5)

msql_fetch_array — Fetch row as array

说明

array msql_fetch_array ( resource $result [, int $result_type ] )

msql_fetch_array() is an extended version of msql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using msql_fetch_array() is NOT significantly slower than using msql_fetch_row(), while it provides a significant added value.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

result_type

A constant that can take the following values: MSQL_ASSOC, MSQL_NUM, and MSQL_BOTH with MSQL_BOTH being the default.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 msql_fetch_array() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo $row['id'] . ': ' . $row['name'] . "\n";
}

msql_free_result($result);
?>

更新日志

版本 | 说明
4.3.11 and 5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

参见

  • msql_fetch_row() - Get row as enumerated array
  • msql_fetch_object() - Fetch row as object
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data

msql_error
msql_fetch_field
mSQL 函数


Get field information

msql_fetch_array
msql_fetch_object
mSQL 函数
PHP 手册

msql_fetch_field

(PHP 4, PHP 5)

msql_fetch_field — Get field information

说明

object msql_fetch_field ( resource $result [, int $field_offset ] )

msql_fetch_field() can be used in order to obtain information about fields in a certain query result.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

The field offset. If not specified, the next field that wasn't yet retrieved by msql_fetch_field() is retrieved.

返回值

Returns an object containing field information. The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • not_null - 1 if the column cannot be NULL

  • unique - 1 if the column is a unique key

  • type - the type of the column

参见

  • msql_field_seek() - Set field offset

msql_fetch_array
msql_fetch_object
mSQL 函数


Fetch row as object

msql_fetch_field
msql_fetch_row
mSQL 函数
PHP 手册

msql_fetch_object

(PHP 4, PHP 5)

msql_fetch_object — Fetch row as object

说明

object msql_fetch_object ( resource $result )

msql_fetch_object() is similar to msql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to msql_fetch_array(), and almost as quick as msql_fetch_row() (the difference is insignificant).

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

返回值

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

范例

Example #1 msql_fetch_object() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_object($result, MSQL_ASSOC)) {
    echo $row->id . ': ' . $row->name . "\n";
}

msql_free_result($result);
?>

更新日志

版本 | 说明
4.3.11 and 5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

参见

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_row() - Get row as enumerated array
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data

msql_fetch_field
msql_fetch_row
mSQL 函数


Get row as enumerated array

msql_fetch_object
msql_field_flags
mSQL 函数
PHP 手册

msql_fetch_row

(PHP 4, PHP 5)

msql_fetch_row — Get row as enumerated array

说明

array msql_fetch_row ( resource $result )

msql_fetch_row() fetches one row of data from the result associated with the specified query identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to msql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 msql_fetch_row() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_row($result)) {
    echo $row[0] . ': ' . $row[1] . "\n";
}

msql_free_result($result);
?>

更新日志

版本 | 说明
4.3.11 and 5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

参见

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_object() - Fetch row as object
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data

msql_fetch_object
msql_field_flags
mSQL 函数


Get field flags

msql_fetch_row
msql_field_len
mSQL 函数
PHP 手册

msql_field_flags

(PHP 4, PHP 5)

msql_field_flags — Get field flags

说明

string msql_field_flags ( resource $result , int $field_offset )

msql_field_flags() returns the field flags of the specified field.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

数字形式的字段偏移量。field_offset 从 1 开始。

返回值

Returns a string containing the field flags of the specified key. This can be: primary key not null, not null, primary key, unique not null or unique.

msql_fetch_row
msql_field_len
mSQL 函数


Get field length

msql_field_flags
msql_field_name
mSQL 函数
PHP 手册

msql_field_len

(PHP 4, PHP 5)

msql_field_len — Get field length

说明

int msql_field_len ( resource $result , int $field_offset )

msql_field_len() returns the length of the specified field.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

数字形式的字段偏移量。field_offset 从 1 开始。

返回值

Returns the length of the specified field or FALSE on error.

msql_field_flags
msql_field_name
mSQL 函数


Get the name of the specified field in a result

msql_field_len
msql_field_seek
mSQL 函数
PHP 手册

msql_field_name

(PHP 4, PHP 5)

msql_field_name — Get the name of the specified field in a result

说明

string msql_field_name ( resource $result , int $field_offset )

msql_field_name() gets the name of the specified field index.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

数字形式的字段偏移量。field_offset 从 1 开始。

返回值

The name of the field or FALSE on failure.

参见

  • msql_field_len() - Get field length

msql_field_len
msql_field_seek
mSQL 函数


Set field offset

msql_field_name
msql_field_table
mSQL 函数
PHP 手册

msql_field_seek

(PHP 4, PHP 5)

msql_field_seek — Set field offset

说明

bool msql_field_seek ( resource $result , int $field_offset )

Seeks to the specified field offset. If the next call to msql_fetch_field() won't include a field offset, this field would be returned.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

数字形式的字段偏移量。field_offset 从 1 开始。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msql_fetch_field() - Get field information

msql_field_name
msql_field_table
mSQL 函数


Get table name for field

msql_field_seek
msql_field_type
mSQL 函数
PHP 手册

msql_field_table

(PHP 4, PHP 5)

msql_field_table — Get table name for field

说明

int msql_field_table ( resource $result , int $field_offset )

Returns the name of the table that the specified field is in.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

数字形式的字段偏移量。field_offset 从 1 开始。

返回值

The name of the table on success, or FALSE on failure.

msql_field_seek
msql_field_type
mSQL 函数


Get field type

msql_field_table
msql_fieldflags
mSQL 函数
PHP 手册

msql_field_type

(PHP 4, PHP 5)

msql_field_type — Get field type

说明

string msql_field_type ( resource $result , int $field_offset )

msql_field_type() gets the type of the specified field index.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

field_offset

数字形式的字段偏移量。field_offset 从 1 开始。

返回值

The type of the field. One of int, char, real, ident, null or unknown. This functions will return FALSE on failure.

msql_field_table
msql_fieldflags
mSQL 函数


Alias of msql_field_flags

msql_field_type
msql_fieldlen
mSQL 函数
PHP 手册

msql_fieldflags

(PHP 4, PHP 5)

msql_fieldflags — Alias of msql_field_flags()

说明

This function is an alias of msql_field_flags().

msql_field_type
msql_fieldlen
mSQL 函数


Alias of msql_field_len

msql_fieldflags
msql_fieldname
mSQL 函数
PHP 手册

msql_fieldlen

(PHP 4, PHP 5)

msql_fieldlen — Alias of msql_field_len()

说明

This function is an alias of msql_field_len().

msql_fieldflags
msql_fieldname
mSQL 函数


Alias of msql_field_name

msql_fieldlen
msql_fieldtable
mSQL 函数
PHP 手册

msql_fieldname

(PHP 4, PHP 5)

msql_fieldname — Alias of msql_field_name()

说明

This function is an alias of msql_field_name().

msql_fieldlen
msql_fieldtable
mSQL 函数


Alias of msql_field_table

msql_fieldname
msql_fieldtype
mSQL 函数
PHP 手册

msql_fieldtable

(PHP 4, PHP 5)

msql_fieldtable — Alias of msql_field_table()

说明

This function is an alias of msql_field_table().

msql_fieldname
msql_fieldtype
mSQL 函数


Alias of msql_field_type

msql_fieldtable
msql_free_result
mSQL 函数
PHP 手册

msql_fieldtype

(PHP 4, PHP 5)

msql_fieldtype — Alias of msql_field_type()

说明

This function is an alias of msql_field_type().

msql_fieldtable
msql_free_result
mSQL 函数


Free result memory

msql_fieldtype
msql_list_dbs
mSQL 函数
PHP 手册

msql_free_result

(PHP 4, PHP 5)

msql_free_result — Free result memory

说明

bool msql_free_result ( resource $result )

msql_free_result() frees the memory associated with query_identifier . When PHP completes a request, this memory is freed automatically, so you only need to call this function when you want to make sure you don't use too much memory while the script is running.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

msql_fieldtype
msql_list_dbs
mSQL 函数


List mSQL databases on server

msql_free_result
msql_list_fields
mSQL 函数
PHP 手册

msql_list_dbs

(PHP 4, PHP 5)

msql_list_dbs — List mSQL databases on server

说明

resource msql_list_dbs ([ resource $link_identifier ] )

msql_list_tables() lists the databases available on the specified link_identifier .

参数

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

参见

  • msql_list_tables() - List tables in an mSQL database
  • msql_list_fields() - List result fields

msql_free_result
msql_list_fields
mSQL 函数


List result fields

msql_list_dbs
msql_list_tables
mSQL 函数
PHP 手册

msql_list_fields

(PHP 4, PHP 5)

msql_list_fields — List result fields

说明

resource msql_list_fields ( string $database , string $tablename [, resource $link_identifier ] )

msql_list_fields() returns information about the given table.

参数

database

The name of the database.

tablename

The name of the table.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

参见

  • msql_list_tables() - List tables in an mSQL database
  • msql_list_dbs() - List mSQL databases on server

msql_list_dbs
msql_list_tables
mSQL 函数


List tables in an mSQL database

msql_list_fields
msql_num_fields
mSQL 函数
PHP 手册

msql_list_tables

(PHP 4, PHP 5)

msql_list_tables — List tables in an mSQL database

说明

resource msql_list_tables ( string $database [, resource $link_identifier ] )

msql_list_tables() lists the tables on the specified database .

参数

database

The name of the database.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

参见

  • msql_list_fields() - List result fields
  • msql_list_dbs() - List mSQL databases on server

msql_list_fields
msql_num_fields
mSQL 函数


Get number of fields in result

msql_list_tables
msql_num_rows
mSQL 函数
PHP 手册

msql_num_fields

(PHP 4, PHP 5)

msql_num_fields — Get number of fields in result

说明

int msql_num_fields ( resource $result )

msql_num_fields() returns the number of fields in a result set.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

返回值

Returns the number of fields in the result set.

参见

  • msql_query() - Send mSQL query
  • msql_fetch_field() - Get field information
  • msql_num_rows() - Get number of rows in result

msql_list_tables
msql_num_rows
mSQL 函数


Get number of rows in result

msql_num_fields
msql_numfields
mSQL 函数
PHP 手册

msql_num_rows

(PHP 4, PHP 5)

msql_num_rows — Get number of rows in result

说明

int msql_num_rows ( resource $query_identifier )

msql_num_rows() returns the number of rows in a result set.

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

返回值

Returns the number of rows in the result set.

参见

  • msql_num_fields() - Get number of fields in result

msql_num_fields
msql_numfields
mSQL 函数


Alias of msql_num_fields

msql_num_rows
msql_numrows
mSQL 函数
PHP 手册

msql_numfields

(PHP 4, PHP 5)

msql_numfields — Alias of msql_num_fields()

说明

This function is an alias of msql_num_fields().

msql_num_rows
msql_numrows
mSQL 函数


Alias of msql_num_rows

msql_numfields
msql_pconnect
mSQL 函数
PHP 手册

msql_numrows

(PHP 4, PHP 5)

msql_numrows — Alias of msql_num_rows()

说明

This function is an alias of msql_num_rows().

msql_numfields
msql_pconnect
mSQL 函数


Open persistent mSQL connection

msql_numrows
msql_query
mSQL 函数
PHP 手册

msql_pconnect

(PHP 4, PHP 5)

msql_pconnect — Open persistent mSQL connection

说明

resource msql_pconnect ([ string $hostname ] )

msql_pconnect() acts very much like msql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (msql_close() will not close links established by this function).

参数

hostname

The hostname can also include a port number. e.g. hostname,port.

If not specified, the connection is established by the means of a Unix domain socket, being then more efficient then a localhost TCP socket connection.

Note: While this function will accept a colon (:) as a host/port separator, a comma (,) is the preferred method.

返回值

Returns a positive mSQL link identifier on success, or FALSE on error.

参见

  • msql_connect() - Open mSQL connection
  • msql_close() - Close mSQL connection

msql_numrows
msql_query
mSQL 函数


Send mSQL query

msql_pconnect
msql_regcase
mSQL 函数
PHP 手册

msql_query

(PHP 4, PHP 5)

msql_query — Send mSQL query

说明

resource msql_query ( string $query [, resource $link_identifier ] )

msql_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

参数

query

The SQL query.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

Returns a positive mSQL query identifier on success, or FALSE on error.

范例

Example #1 msql_query() example

<?php
$link = msql_connect("dbserver")
   or die("unable to connect to msql server: " . msql_error());
msql_select_db("db", $link)
   or die("unable to select database 'db': " . msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("query failed: " . msql_error());
}

while ($row = msql_fetch_array($result)) {
    echo $row["id"];
}
?>

参见

  • msql_db_query() - Send mSQL query
  • msql_select_db() - Select mSQL database
  • msql_connect() - Open mSQL connection

msql_pconnect
msql_regcase
mSQL 函数


Alias of sql_regcase

msql_query
msql_result
mSQL 函数
PHP 手册

msql_regcase

(PHP 4, PHP 5)

msql_regcase — Alias of sql_regcase()

说明

This function is an alias of sql_regcase().

msql_query
msql_result
mSQL 函数


Get result data

msql_regcase
msql_select_db
mSQL 函数
PHP 手册

msql_result

(PHP 4, PHP 5)

msql_result — Get result data

说明

string msql_result ( resource $result , int $row [, mixed $field ] )

msql_result() returns the contents of one cell from a mSQL result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they are often much quicker than msql_result().

Recommended high-performance alternatives:
msql_fetch_row(),
msql_fetch_array(), and
msql_fetch_object().

参数

result

返回类型为 resource 的结果集。该结果集从 msql_query() 的调用中得到。

row

The row offset.

field

Can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname.). If the column name has been aliased ('select foo as bar from ...'), use the alias instead of the column name.

Note: Specifying a numeric field offset is much quicker than specifying a fieldname or tablename.fieldname.

返回值

Returns the contents of the cell at the row and offset in the specified mSQL result set.

msql_regcase
msql_select_db
mSQL 函数


Select mSQL database

msql_result
msql_tablename
mSQL 函数
PHP 手册

msql_select_db

(PHP 4, PHP 5)

msql_select_db — Select mSQL database

说明

bool msql_select_db ( string $database_name [, resource $link_identifier ] )

msql_select_db() sets the current active database on the server that's associated with the specified link_identifier .

Subsequent calls to msql_query() will be made on the active database.

参数

database_name

The database name.

link_identifier

mSQL 的连接标识符。如果没有指定，默认使用最后被 msql_connect() 打开的连接。如果没有找到该连接，函数会尝试通过调用 msql_connect() 建立连接并使用它。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msql_connect() - Open mSQL connection
  • msql_pconnect() - Open persistent mSQL connection
  • msql_query() - Send mSQL query

msql_result
msql_tablename
mSQL 函数


Alias of msql_result

msql_select_db
msql
mSQL 函数
PHP 手册

msql_tablename

(PHP 4, PHP 5)

msql_tablename — Alias of msql_result()

说明

This function is an alias of msql_result().

msql_select_db
msql
mSQL 函数


Alias of msql_db_query

msql_tablename
Mssql
mSQL 函数
PHP 手册

msql

(PHP 4, PHP 5)

msql — Alias of msql_db_query()

说明

This function is an alias of msql_db_query().

msql_tablename
Mssql
mSQL 函数


Microsoft SQL Server

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Mssql 函数
    • mssql_bind — Adds a parameter to a stored procedure or a remote stored procedure
    • mssql_close — Close MS SQL Server connection
    • mssql_connect — Open MS SQL server connection
    • mssql_data_seek — Moves internal row pointer
    • mssql_execute — Executes a stored procedure on a MS SQL server database
    • mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • mssql_fetch_assoc — Returns an associative array of the current row in the result
    • mssql_fetch_batch — Returns the next batch of records
    • mssql_fetch_field — Get field information
    • mssql_fetch_object — Fetch row as object
    • mssql_fetch_row — Get row as enumerated array
    • mssql_field_length — Get the length of a field
    • mssql_field_name — Get the name of a field
    • mssql_field_seek — Seeks to the specified field offset
    • mssql_field_type — Gets the type of a field
    • mssql_free_result — Free result memory
    • mssql_free_statement — Free statement memory
    • mssql_get_last_message — Returns the last message from the server
    • mssql_guid_string — Converts a 16 byte binary GUID to a string
    • mssql_init — Initializes a stored procedure or a remote stored procedure
    • mssql_min_error_severity — Sets the minimum error severity
    • mssql_min_message_severity — Sets the minimum message severity
    • mssql_next_result — Move the internal result pointer to the next result
    • mssql_num_fields — Gets the number of fields in result
    • mssql_num_rows — Gets the number of rows in result
    • mssql_pconnect — Open persistent MS SQL connection
    • mssql_query — Send MS SQL query
    • mssql_result — Get result data
    • mssql_rows_affected — Returns the number of records affected by the query
    • mssql_select_db — Select MS SQL database
msql
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access MS SQL Server database.

Mssql
安装/配置
Mssql


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Mssql


需求

Requirements for Win32 platforms.

The extension requires the MS SQL Client Tools to be installed on the system where PHP is installed. The Client Tools can be installed from the MS SQL Server CD or by copying ntwdblib.dll from \winnt\system32 on the server to \winnt\system32 on the PHP box. Copying ntwdblib.dll will only provide access through named pipes. Configuration of the client will require installation of all the tools.

Requirements for Unix/Linux platforms.

To use the MSSQL extension on Unix/Linux, you first need to build and install the FreeTDS library. Source code and installation instructions are available at the FreeTDS home page: » http://www.freetds.org/

Note: On Windows, the DBLIB from Microsoft is used. Functions that return a column name are based on the dbcolname() function in DBLIB. DBLIB was developed for SQL Server 6.x where the max identifier length is 30. For this reason, the maximum column length is 30 characters. On platforms where FreeTDS is used (Linux), this is not a problem.

Note: On Windows, if you're using MSSQL 2005 or greater you must copy the ntwdblib.dll into the directory where you have installed php and overwrite the one thats already in there. This is due to the version distributed is old and outdated. Alternatively you can use the ODBC, PDO_DBLIB or PDO_ODBC extensions, to talk to MSSQL.

安装/配置
安装
安装/配置


安装

The MSSQL extension is enabled by adding extension=php_mssql.dll to php.ini.

To get these functions to work, you have to compile PHP with --with-mssql[=DIR], where DIR is the FreeTDS install prefix. And FreeTDS should be compiled using --enable-msdblib.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

MS SQL Server configuration options
Name | Default | Changeable | Changelog
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Available since PHP 4.1.0.
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.batchsize | "0" | PHP_INI_ALL | Available since PHP 4.0.4.
mssql.datetimeconvert | "1" | PHP_INI_ALL | Available since PHP 4.2.0.
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Available since PHP 4.3.0.
mssql.max_procs | "-1" | PHP_INI_ALL | Available since PHP 4.3.0.
mssql.charset | "" | PHP_INI_ALL | Available since PHP 5.1.2 when built with FreeTDS 7.0 or greater.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


资源类型

mssql link

A connection link returned by mssql_connect() and mssql_pconnect().

mssql result

A result handle returned by mssql_query() on SELECT queries.

mssql statement

A statement handle returned by mssql_init().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

MSSQL_ASSOC (integer)
Return an associative array. Used on mssql_fetch_array()'s result_type parameter.
MSSQL_NUM (integer)
Return an array with numeric keys. Used on mssql_fetch_array()'s result_type parameter.
MSSQL_BOTH (integer)
Return an array with both numeric keys and keys with their field name. This is the default value for mssql_fetch_array()'s result_type parameter.
SQLTEXT (integer)
Indicates the 'TEXT' type in MSSQL, used by mssql_bind()'s type parameter.
SQLVARCHAR (integer)
Indicates the 'VARCHAR' type in MSSQL, used by mssql_bind()'s type parameter.
SQLCHAR (integer)
Indicates the 'CHAR' type in MSSQL, used by mssql_bind()'s type parameter.
SQLINT1 (integer)
Represents one byte, with a range of -128 to 127.
SQLINT2 (integer)
Represents two bytes, with a range of -32768 to 32767.
SQLINT4 (integer)
Represents four bytes, with a range if -2147483648 to 2147483647.
SQLBIT (integer)
Indicates the 'BIT' type in MSSQL, used by mssql_bind()'s type parameter.
SQLFLT4 (integer)
Represents an four byte float.
SQLFLT8 (integer)
Represents an eight byte float.
资源类型
Mssql 函数
Mssql


Mssql 函数

Table of Contents

  • mssql_bind — Adds a parameter to a stored procedure or a remote stored procedure
  • mssql_close — Close MS SQL Server connection
  • mssql_connect — Open MS SQL server connection
  • mssql_data_seek — Moves internal row pointer
  • mssql_execute — Executes a stored procedure on a MS SQL server database
  • mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_assoc — Returns an associative array of the current row in the result
  • mssql_fetch_batch — Returns the next batch of records
  • mssql_fetch_field — Get field information
  • mssql_fetch_object — Fetch row as object
  • mssql_fetch_row — Get row as enumerated array
  • mssql_field_length — Get the length of a field
  • mssql_field_name — Get the name of a field
  • mssql_field_seek — Seeks to the specified field offset
  • mssql_field_type — Gets the type of a field
  • mssql_free_result — Free result memory
  • mssql_free_statement — Free statement memory
  • mssql_get_last_message — Returns the last message from the server
  • mssql_guid_string — Converts a 16 byte binary GUID to a string
  • mssql_init — Initializes a stored procedure or a remote stored procedure
  • mssql_min_error_severity — Sets the minimum error severity
  • mssql_min_message_severity — Sets the minimum message severity
  • mssql_next_result — Move the internal result pointer to the next result
  • mssql_num_fields — Gets the number of fields in result
  • mssql_num_rows — Gets the number of rows in result
  • mssql_pconnect — Open persistent MS SQL connection
  • mssql_query — Send MS SQL query
  • mssql_result — Get result data
  • mssql_rows_affected — Returns the number of records affected by the query
  • mssql_select_db — Select MS SQL database
预定义常量
mssql_bind
Mssql


Adds a parameter to a stored procedure or a remote stored procedure

Mssql 函数
mssql_close
Mssql 函数
PHP 手册

mssql_bind

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_bind — Adds a parameter to a stored procedure or a remote stored procedure

说明

bool mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output=false [, bool $is_null=false [, int $maxlen=-1 ]]] )

Binds a parameter to a stored procedure or a remote stored procedure.

参数

stmt

Statement resource, obtained with mssql_init().

param_name

The parameter name, as a string.

Note: You have to include the @ character, like in the T-SQL syntax. See the explanation included in mssql_execute().

var

The PHP variable you'll bind the MSSQL parameter to. It is passed by reference, to retrieve OUTPUT and RETVAL values after the procedure execution.

type

One of: SQLTEXT, SQLVARCHAR, SQLCHAR, SQLINT1, SQLINT2, SQLINT4, SQLBIT, SQLFLT4, SQLFLT8, SQLFLTN.

is_output

Whether the value is an OUTPUT parameter or not. If it's an OUTPUT parameter and you don't mention it, it will be treated as a normal input parameter and no error will be thrown.

is_null

Whether the parameter is NULL or not. Passing the NULL value as var will not do the job.

maxlen

Used with char/varchar values. You have to indicate the length of the data so if the parameter is a varchar(50), the type must be SQLVARCHAR and this value 50.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mssql_bind() example

<?php
// Connect to MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Create a new stored prodecure
$stmt = mssql_init('NewUserRecord');

// Bind the field names
mssql_bind($stmt, '@username',  'Kalle',        SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt, '@name',      'Kalle',        SQLVARCHAR,     false,  false,  60);
mssql_bind($stmt, '@age',       19,             SQLINT1,        false,  false,   3);

// Execute
mssql_execute($stmt);

// Free statement
mssql_free_statement($stmt);
?>

参见

  • mssql_execute() - Executes a stored procedure on a MS SQL server database
  • mssql_free_statement() - Free statement memory
  • mssql_init() - Initializes a stored procedure or a remote stored procedure

Mssql 函数
mssql_close
Mssql 函数


Close MS SQL Server connection

mssql_bind
mssql_connect
Mssql 函数
PHP 手册

mssql_close

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_close — Close MS SQL Server connection

说明

bool mssql_close ([ resource $link_identifier ] )

Closes the link to a MS SQL Server database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

参数

link_identifier

A MS SQL link identifier, returned by mssql_connect().

This function will not close persistent links generated by mssql_pconnect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mssql_close() example

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Do any related operations here

// Close the link to MSSQL
mssql_close($link);
?>

参见

  • mssql_connect() - Open MS SQL server connection
  • mssql_pconnect() - Open persistent MS SQL connection

mssql_bind
mssql_connect
Mssql 函数


Open MS SQL server connection

mssql_close
mssql_data_seek
Mssql 函数
PHP 手册

mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connect — Open MS SQL server connection

说明

resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]] )

mssql_connect() establishes a connection to a MS SQL server.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mssql_close().

参数

servername

The MS SQL server. It can also include a port number. e.g. hostname,port.

username

The username.

password

The password.

new_link

If a second call is made to mssql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. This parameter modifies this behavior and makes mssql_connect() always open a new link, even if mssql_connect() was called before with the same parameters.

返回值

Returns a MS SQL link identifier on success, or FALSE on error.

更新日志

版本 | 说明
4.4.1 and 5.1.0 | The new_link parameter was added

范例

Example #1 mssql_connect() example

<?php
// Server in the this format: <computer>\<instance name> or
// <server>,<port> when using a non default port number
$server = 'KALLESPC\SQLEXPRESS';

$link = mssql_connect($server, 'sa', 'phpfi');

if(!$link)
{
    die('Something went wrong while connecting to MSSQL');
}
?>

参见

  • mssql_close() - Close MS SQL Server connection
  • mssql_pconnect() - Open persistent MS SQL connection

mssql_close
mssql_data_seek
Mssql 函数


Moves internal row pointer

mssql_connect
mssql_execute
Mssql 函数
PHP 手册

mssql_data_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_data_seek — Moves internal row pointer

说明

bool mssql_data_seek ( resource $result_identifier , int $row_number )

mssql_data_seek() moves the internal row pointer of the MS SQL result associated with the specified result identifier to point to the specified row number, first row being number 0. The next call to mssql_fetch_row() would return that row.

参数

result_identifier

The result resource that is being evaluated.

row_number

The desired row number of the new result pointer.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mssql_data_seek() example

<?php
// Connect to MSSQL
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Select all people
$result = mssql_query('SELECT [name], [age] FROM [persons] WHERE [age] >= 13');

if(!$result)
{
    die('Query failed.');
}

// Select every 4th student in the results
for($i = mssql_num_rows($result) - 1; $i % 4; $i++)
{
    if(!mssql_data_seek($result, $i))
    {
        continue;
    }

    // Fetch the row ...
}

// Free the query result
mssql_free_result($result);
?>

mssql_connect
mssql_execute
Mssql 函数


Executes a stored procedure on a MS SQL server database

mssql_data_seek
mssql_fetch_array
Mssql 函数
PHP 手册

mssql_execute

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_execute — Executes a stored procedure on a MS SQL server database

说明

mixed mssql_execute ( resource $stmt [, bool $skip_results=false ] )

Executes a stored procedure on a MS SQL server database

参数

stmt

Statement handle obtained with mssql_init().

skip_results

Whenever to skip the results or not.

范例

Example #1 mssql_execute() example

<?php
// Create a new statement
$stmt = mssql_init('NewBlogEntry');

// Some data strings
$title = 'Test of blogging system';
$content = 'If you can read this, then the new system is compatible with MSSQL';

// Bind values
mssql_bind($stmt, '@author',    'Felipe Pena',  SQLVARCHAR,     false,  false,     60);
mssql_bind($stmt, '@date',      '08/10/2008',   SQLVARCHAR,     false,  false,     20);
mssql_bind($stmt, '@title',     $title,         SQLVARCHAR,     false,  false,     60);
mssql_bind($stmt, '@content',   $content,       SQLTEXT);

// Execute the statement
mssql_execute($stmt);

// And we can free it like so:
mssql_free_statement($stmt);
?>

注释

Note: If the stored procedure returns parameters or a return value these will be available after the call to mssql_execute() unless the stored procedure returns more than one result set. In that case use mssql_next_result() to shift through the results. When the last result has been processed the output parameters and return values will be available.

参见

  • mssql_bind() - Adds a parameter to a stored procedure or a remote stored procedure
  • mssql_free_statement() - Free statement memory
  • mssql_init() - Initializes a stored procedure or a remote stored procedure

mssql_data_seek
mssql_fetch_array
Mssql 函数


Fetch a result row as an associative array, a numeric array, or both

mssql_execute
mssql_fetch_assoc
Mssql 函数
PHP 手册

mssql_fetch_array

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

说明

array mssql_fetch_array ( resource $result [, int $result_type=MSSQL_BOTH ] )

mssql_fetch_array() is an extended version of mssql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using mssql_fetch_array() is NOT significantly slower than using mssql_fetch_row(), while it provides a significant added value.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

result_type

The type of array that is to be fetched. It's a constant and can take the following values: MSSQL_ASSOC, MSSQL_NUM, and the default value of MSSQL_BOTH.

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 mssql_fetch_array() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query))
{
    echo 'No records found';
}
else
{
    // The following is equal to the code below:
    //
    // while($row = mssql_fetch_row($query))

    while($row = mssql_fetch_array($query, MSSQL_NUM))
    {
        // ...
    }
}

// Free the query result
mssql_free_result($query);
?>

注释

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

参见

  • mssql_fetch_row() - Get row as enumerated array

mssql_execute
mssql_fetch_assoc
Mssql 函数


Returns an associative array of the current row in the result

mssql_fetch_array
mssql_fetch_batch
Mssql 函数
PHP 手册

mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_assoc — Returns an associative array of the current row in the result

说明

array mssql_fetch_assoc ( resource $result_id )

Returns an associative array that corresponds to the fetched row and moves the internal data pointer ahead. mssql_fetch_assoc() is equivalent to calling mssql_fetch_array() with MSSQL_ASSOC for the optional second parameter.

参数

result_id

The result resource that is being evaluated. This result comes from a call to mssql_query().

范例

Example #1 mssql_fetch_assoc() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query))
{
    echo 'No records found';
}
else
{
    // Print a nice list of users in the format of:
    // * name (username)

    echo '<ul>';

    while($row = mssql_fetch_assoc($query))
    {
        echo '<li>' . $row['name'] . ' (' . $row['username'] . ')</li>';
    }

    echo '</ul>';
}

// Free the query result
mssql_free_result($query);
?>

返回值

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

mssql_fetch_array
mssql_fetch_batch
Mssql 函数


Returns the next batch of records

mssql_fetch_assoc
mssql_fetch_field
Mssql 函数
PHP 手册

mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_batch — Returns the next batch of records

说明

int mssql_fetch_batch ( resource $result )

Returns the next batch of records

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

返回值

Returns the batch number as an integer.

范例

Example #1 mssql_fetch_batch() example

<?php
// Connect to MSSQL
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Send a query
$result = mssql_query('SELECT * FROM [php].[dbo].[people]', $link, 100);
$records = 10;

while($records >= 0)
{
    while($row = mssql_fetch_assoc($result))
    {
        // Do stuff ...
    }

    --$records;
}

if($batchsize = mssql_fetch_batch($result))
{
    // $batchsize is the number of records left
    // in the result, but not shown above
}
?>

mssql_fetch_assoc
mssql_fetch_field
Mssql 函数


Get field information

mssql_fetch_batch
mssql_fetch_object
Mssql 函数
PHP 手册

mssql_fetch_field

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_field — Get field information

说明

object mssql_fetch_field ( resource $result [, int $field_offset=-1 ] )

mssql_fetch_field() can be used in order to obtain information about fields in a certain query result.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

field_offset

The numerical field offset. If the field offset is not specified, the next field that was not yet retrieved by this function is retrieved. The field_offset starts at 0.

返回值

Returns an object containing field information.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.
  • column_source - the table from which the column was taken
  • max_length - maximum length of the column
  • numeric - 1 if the column is numeric
  • type - the column type.

范例

Example #1 mssql_fetch_field() example

<?php
// Connect MSSQL
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Send a select query to MSSQL
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construct table
echo '<h3>Table structure for \'persons\'</h3>';
echo '<table border="1">';

// Table header
echo '<thead>';
echo '<tr>';
echo '<td>Field name</td>';
echo '<td>Data type</td>';
echo '<td>Max length</td>';
echo '</tr>';
echo '</thead>';

// Dump all fields
echo '<tbody>';

for($i = 0; $i < mssql_num_fields($query); ++$i)
{
    // Fetch the field information
    $field = mssql_fetch_field($query, $i);

    // Print the row
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';

// Free the query result
mssql_free_result($query);
?>

参见

  • mssql_field_seek() - Seeks to the specified field offset

mssql_fetch_batch
mssql_fetch_object
Mssql 函数


Fetch row as object

mssql_fetch_field
mssql_fetch_row
Mssql 函数
PHP 手册

mssql_fetch_object

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_object — Fetch row as object

说明

object mssql_fetch_object ( resource $result )

mssql_fetch_object() is similar to mssql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to mssql_fetch_array(), and almost as quick as mssql_fetch_row() (the difference is insignificant).

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

返回值

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

范例

Example #1 mssql_fetch_object() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query))
{
    echo 'No records found';
}
else
{
    // Print a nice list of users in the format of:
    // * name (username)

    echo '<ul>';

    while($row = mssql_fetch_object($query))
    {
        echo '<li>' . $row->name . ' (' . $row->username . ')</li>';
    }

    echo '</ul>';
}

// Free the query result
mssql_free_result($query);
?>

注释

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

参见

  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_row() - Get row as enumerated array

mssql_fetch_field
mssql_fetch_row
Mssql 函数


Get row as enumerated array

mssql_fetch_object
mssql_field_length
Mssql 函数
PHP 手册

mssql_fetch_row

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_row — Get row as enumerated array

说明

array mssql_fetch_row ( resource $result )

mssql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to mssql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

范例

Example #1 mssql_fetch_row() example

<?php
// Connect to server and database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Query to execute
$query = mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\'', $link);

// Did the query failed?
if(!$query)
{
    die('MSSQL error: ' . mssql_get_last_message());
}

// Fetch the row
$row = mssql_fetch_row($query);

// Print the 'quote'
echo 'Quote #' . $row[0] . ': "' . $row[1] . '"';
?>

上例的输出类似于：

Quote #42: "The answer to everything..."

注释

Note: 本函数对 PHP NULL 值设定 NULL 字段。

参见

  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_object() - Fetch row as object
  • mssql_data_seek() - Moves internal row pointer
  • mssql_result() - Get result data

mssql_fetch_object
mssql_field_length
Mssql 函数


Get the length of a field

mssql_fetch_row
mssql_field_name
Mssql 函数
PHP 手册

mssql_field_length

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_length — Get the length of a field

说明

int mssql_field_length ( resource $result [, int $offset=-1 ] )

Returns the length of field no. offset in result .

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

offset

The field offset, starts at 0. If omitted, the current field is used.

返回值

The length of the specified field index on success, or FALSE on failure.

范例

Example #1 mssql_field_length() example

<?php
// Connect MSSQL
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Send a select query to MSSQL
$query = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Print the field type and length
echo 'The field \'age\' has a data length of ' . mssql_field_length($query, 1);

// Free the query result
mssql_free_result($query);
?>

上例的输出类似于：

The field 'age' has a data length of 4

注释

Note: Note to Windows Users
Due to a limitation in the underlying API used by PHP (MS DBLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.

参见

  • mssql_field_name() - Get the name of a field
  • mssql_field_type() - Gets the type of a field

mssql_fetch_row
mssql_field_name
Mssql 函数


Get the name of a field

mssql_field_length
mssql_field_seek
Mssql 函数
PHP 手册

mssql_field_name

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_name — Get the name of a field

说明

string mssql_field_name ( resource $result [, int $offset=-1 ] )

Returns the name of field no. offset in result .

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

offset

The field offset, starts at 0. If omitted, the current field is used.

返回值

The name of the specified field index on success, or FALSE on failure.

范例

Example #1 mssql_field_name() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name], [email] FROM [php].[dbo].[userlist]');

echo 'Result set contains the following field(s):', PHP_EOL;

// Dump all field names in result
for($i = 0; $i < mssql_num_fields($query); ++$i)
{
    echo ' - ' . mssql_field_name($query, $i), PHP_EOL;
}

// Free the query result
mssql_free_result($query);
?>

上例的输出类似于：

Result set contains the following field(s):
 - username
 - name
 - email

参见

  • mssql_field_length() - Get the length of a field
  • mssql_field_type() - Gets the type of a field

mssql_field_length
mssql_field_seek
Mssql 函数


Seeks to the specified field offset

mssql_field_name
mssql_field_type
Mssql 函数
PHP 手册

mssql_field_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_seek — Seeks to the specified field offset

说明

bool mssql_field_seek ( resource $result , int $field_offset )

Seeks to the specified field offset. If the next call to mssql_fetch_field() won't include a field offset, this field would be returned.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

field_offset

The field offset, starts at 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Using mssql_field_seek() on the example for mssql_fetch_field()

<?php
// Connect MSSQL
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Send a select query to MSSQL
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construct table
echo '<h3>Table structure for \'persons\'</h3>';
echo '<table border="1">';

// Table header
echo '<thead>';
echo '<tr>';
echo '<td>Field name</td>';
echo '<td>Data type</td>';
echo '<td>Max length</td>';
echo '</tr>';
echo '</thead>';

// Dump all fields
echo '<tbody>';

for($i = 0; $i < mssql_num_fields($query); ++$i)
{
    // Fetch the field information, notice the
    // field_offset parameter is not set. See
    // the mssql_field_seek call below
    $field = mssql_fetch_field($query);

    // Print the row
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';

    // Move the internal seek pointer to the next
    // row in the result set
    mssql_field_seek($query, $i + 1);
}

echo '</tbody>';
echo '</table>';

// Free the query result
mssql_free_result($query);
?>

参见

  • mssql_fetch_field() - Get field information

mssql_field_name
mssql_field_type
Mssql 函数


Gets the type of a field

mssql_field_seek
mssql_free_result
Mssql 函数
PHP 手册

mssql_field_type

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_type — Gets the type of a field

说明

string mssql_field_type ( resource $result [, int $offset=-1 ] )

Returns the type of field no. offset in result .

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

offset

The field offset, starts at 0. If omitted, the current field is used.

返回值

The type of the specified field index on success, or FALSE on failure.

范例

Example #1 mssql_field_type() example

<?php
// Connect MSSQL
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Send a select query to MSSQL
$query = mssql_query('SELECT [name] FROM [php].[dbo].[persons]');

// Print the field type and length
echo    '\'' . mssql_field_name($query, 0) . '\' is a type of ' .
        strtoupper(mssql_field_type($query, 0)) .
        '(' . mssql_field_length($query, 0) . ')';

// Free the query result
mssql_free_result($query);
?>

上例的输出类似于：

'name' is a type of CHAR(50)

参见

  • mssql_field_length() - Get the length of a field
  • mssql_field_name() - Get the name of a field

mssql_field_seek
mssql_free_result
Mssql 函数


Free result memory

mssql_field_type
mssql_free_statement
Mssql 函数
PHP 手册

mssql_free_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_result — Free result memory

说明

bool mssql_free_result ( resource $result )

mssql_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call mssql_free_result() with the result identifier as an argument and the associated result memory will be freed.

参数

result

The result resource that is being freed. This result comes from a call to mssql_query().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mssql_free_result() example

<?php
// Select some data from a table
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]', $link);

// Handle query result here

// When we're done we free the result by calling
// mssql_free_result like so:
mssql_free_result($query);

参见

  • mssql_free_statement() - Free statement memory

mssql_field_type
mssql_free_statement
Mssql 函数


Free statement memory

mssql_free_result
mssql_get_last_message
Mssql 函数
PHP 手册

mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_statement — Free statement memory

说明

bool mssql_free_statement ( resource $stmt )

mssql_free_statement() only needs to be called if you are worried about using too much memory while your script is running. All statement memory will automatically be freed when the script ends. You may call mssql_free_statement() with the statement identifier as an argument and the associated statement memory will be freed.

参数

stmt

Statement resource, obtained with mssql_init().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mssql_free_statement() example

<?php
// Create a new statement
$stmt = mssql_init('test');

// Bind values here and execute the statement

// once we're done, we clear it from the memory
// using mssql_free_statement like so:
mssql_free_statement($stmt);
?>

参见

  • mssql_bind() - Adds a parameter to a stored procedure or a remote stored procedure
  • mssql_execute() - Executes a stored procedure on a MS SQL server database
  • mssql_init() - Initializes a stored procedure or a remote stored procedure
  • mssql_free_result() - Free result memory

mssql_free_result
mssql_get_last_message
Mssql 函数


Returns the last message from the server

mssql_free_statement
mssql_guid_string
Mssql 函数
PHP 手册

mssql_get_last_message

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_get_last_message — Returns the last message from the server

说明

string mssql_get_last_message ( void )

Gets the last message from the MS-SQL server

参数

This function has no parameters.

返回值

Returns last error message from server, or an empty string if no error messages are returned from MSSQL.

范例

Example #1 mssql_get_last_message() example

<?php
// Connect to MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Make a query that will fail
$query = @mssql_query('SELECT * FROM [php].[dbo].[not-found]');

if(!$query)
{
    // The query has failed, print a nice error message
    // using mssql_get_last_message()
    die('MSSQL error: ' . mssql_get_last_message());
}
?>

上例的输出类似于：

MSSQL error: Invalid object name 'php.dbo.not-found'.

参见

  • mssql_min_error_severity() - Sets the minimum error severity
  • mssql_min_message_severity() - Sets the minimum message severity

mssql_free_statement
mssql_guid_string
Mssql 函数


Converts a 16 byte binary GUID to a string

mssql_get_last_message
mssql_init
Mssql 函数
PHP 手册

mssql_guid_string

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_guid_string — Converts a 16 byte binary GUID to a string

说明

string mssql_guid_string ( string $binary [, bool $short_format=false ] )

Converts a 16 byte binary GUID to a string.

参数

binary

A 16 byte binary GUID.

short_format

Whenever to use short to use short format, defaults to FALSE

返回值

Returns the converted string on success.

范例

Example #1 mssql_guid_string() example

<?php
$binary = '19555081977808608437941339997619274330352755554827939936';

var_dump(mssql_guid_string($binary));
var_dump(mssql_guid_string($binary, true));
?>

上例将输出：

string(36) "35353931-3035-3138-3937-373830383630"
string(32) "31393535353038313937373830383630"

mssql_get_last_message
mssql_init
Mssql 函数


Initializes a stored procedure or a remote stored procedure

mssql_guid_string
mssql_min_error_severity
Mssql 函数
PHP 手册

mssql_init

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_init — Initializes a stored procedure or a remote stored procedure

说明

resource mssql_init ( string $sp_name [, resource $link_identifier ] )

Initializes a stored procedure or a remote stored procedure.

参数

sp_name

Stored procedure name, like ownew.sp_name or otherdb.owner.sp_name.

link_identifier

A MS SQL link identifier, returned by mssql_connect().

返回值

Returns a resource identifier "statement", used in subsequent calls to mssql_bind() and mssql_execute(), or FALSE on errors.

范例

Example #1 mssql_init() example

<?php
// Connect to MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Create a new statement
$stmt = mssql_init('StatementTest', $link);

// Bind values here

// Once values are binded we execute our statement
// using mssql_execute:
mssql_execute($stmt);

// And we can free it like so:
mssql_free_statement($stmt);
?>

参见

  • mssql_bind() - Adds a parameter to a stored procedure or a remote stored procedure
  • mssql_execute() - Executes a stored procedure on a MS SQL server database
  • mssql_free_statement() - Free statement memory

mssql_guid_string
mssql_min_error_severity
Mssql 函数


Sets the minimum error severity

mssql_init
mssql_min_message_severity
Mssql 函数
PHP 手册

mssql_min_error_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_error_severity — Sets the minimum error severity

说明

void mssql_min_error_severity ( int $severity )

Sets the minimum error severity.

参数

severity

The new error severity.

返回值

无返回值。

范例

Example #1 mssql_min_error_severity() example

<?php
// Connect to MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Set the minimum error severity to not include SQL
// syntax errors by setting it to something greater than
// or equal to 1.
mssql_min_error_severity(1);

// Send a query we know that will cause an syntax error, in
// this case we use the MySQL quote signs instead of wrapping
// square brackets around the field and table names.
$query = mssql_query('SELECT `syntax`, `error` FROM `MSSQL`');

if(!$query)
{
    // Custom error handler ...
}
?>

mssql_init
mssql_min_message_severity
Mssql 函数


Sets the minimum message severity

mssql_min_error_severity
mssql_next_result
Mssql 函数
PHP 手册

mssql_min_message_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_message_severity — Sets the minimum message severity

说明

void mssql_min_message_severity ( int $severity )

Sets the minimum message severity.

参数

severity

The new message severity.

返回值

无返回值。

范例

Example #1 mssql_min_message_severity() example

<?php
// Connect to MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Set the minimum message severity to 17, this
// will not show any messages issued by the underlaying
// API when we select a non-existent database below
mssql_min_message_severity(17);

// Select a non-existent database
mssql_select_db('THIS_DATABASE_DOES_NOT_EXISTS');
?>

上例将输出：

mssql_select_db(): Unable to select database:  THIS_DATABASE_DOES_NOT_EXISTS

mssql_min_error_severity
mssql_next_result
Mssql 函数


Move the internal result pointer to the next result

mssql_min_message_severity
mssql_num_fields
Mssql 函数
PHP 手册

mssql_next_result

(PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)

mssql_next_result — Move the internal result pointer to the next result

说明

bool mssql_next_result ( resource $result_id )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results, it will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the rows from the new result set.

参数

result_id

The result resource that is being evaluated. This result comes from a call to mssql_query().

返回值

Returns TRUE if an additional result set was available or FALSE otherwise.

范例

Example #1 mssql_next_result() example

<?php
// Connect MSSQL
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Send a query to MSSQL
$sql = 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$query = mssql_query($sql, $link);

// Iterate through returned records
do
{
    while($row = mssql_fetch_row($query))
    {
        // Handle record ...
    }
}
while(mssql_next_result($query));

// Clean up
mssql_free_result($query);
mssql_close($link);
?>

mssql_min_message_severity
mssql_num_fields
Mssql 函数


Gets the number of fields in result

mssql_next_result
mssql_num_rows
Mssql 函数
PHP 手册

mssql_num_fields

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_fields — Gets the number of fields in result

说明

int mssql_num_fields ( resource $result )

mssql_num_fields() returns the number of fields in a result set.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

返回值

Returns the number of fields, as an integer.

范例

Example #1 mssql_num_fields() example

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Select some data from our database
$data = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Construct a table
echo '<table border="1">';

$header = false;

// Iterate through returned results
while($row = mssql_fetch_array($data))
{
    // Build the table header
    if(!$header)
    {
        echo '<thead>';
        echo '<tr>';

        for($i = 1; ($i + 1) <= mssql_num_fields($data); ++$i)
        {
            echo '<td>' . ucfirst($row[$i]) . '</td>';
        }

        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        $header = true;
    }

    // Build the row
    echo '<tr>';

    foreach($row as $value)
    {
        echo '<td>' . $value . '</td>';
    }

    echo '</tr>';
}

// Close table
echo '</tbody>';
echo '</table>';

// Clean up
mssql_free_result($data);
mssql_close($link);
?>

参见

  • mssql_query() - Send MS SQL query
  • mssql_fetch_field() - Get field information
  • mssql_num_rows() - Gets the number of rows in result

mssql_next_result
mssql_num_rows
Mssql 函数


Gets the number of rows in result

mssql_num_fields
mssql_pconnect
Mssql 函数
PHP 手册

mssql_num_rows

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_rows — Gets the number of rows in result

说明

int mssql_num_rows ( resource $result )

mssql_num_rows() returns the number of rows in a result set.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

返回值

Returns the number of rows, as an integer.

范例

Example #1 mssql_num_rows() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Select all our records from a table
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

echo 'Total records in database: ' . mssql_num_rows($query);

// Clean up
mssql_free_result($query);
?>

参见

  • mssql_query() - Send MS SQL query
  • mssql_fetch_row() - Get row as enumerated array

mssql_num_fields
mssql_pconnect
Mssql 函数


Open persistent MS SQL connection

mssql_num_rows
mssql_query
Mssql 函数
PHP 手册

mssql_pconnect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_pconnect — Open persistent MS SQL connection

说明

resource mssql_pconnect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]] )

mssql_pconnect() acts very much like mssql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mssql_close() will not close links established by mssql_pconnect()).

This type of links is therefore called 'persistent'.

参数

servername

The MS SQL server. It can also include a port number. e.g. hostname:port.

username

The username.

password

The password.

new_link

If a second call is made to mssql_pconnect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. This parameter modifies this behavior and makes mssql_pconnect() always open a new link, even if mssql_pconnect() was called before with the same parameters.

返回值

Returns a positive MS SQL persistent link identifier on success, or FALSE on error.

范例

Example #1 mssql_pconnect() using the new_link parameter

<?php
// Connect to the database server
$link1 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link1);

// Create a new link
$link2 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi', true);
mssql_select_db('random', $link2);
?>

mssql_num_rows
mssql_query
Mssql 函数


Send MS SQL query

mssql_pconnect
mssql_result
Mssql 函数
PHP 手册

mssql_query

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_query — Send MS SQL query

说明

mixed mssql_query ( string $query [, resource $link_identifier [, int $batch_size=0 ]] )

mssql_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

参数

query

A SQL query.

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if mssql_connect() was called, and use it.

batch_size

The number of records to batch in the buffer.

返回值

Returns a MS SQL result resource on success, TRUE if no rows were returned, or FALSE on error.

范例

Example #1 mssql_query() example

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

if(!$link || !mssql_select_db('php', $link))
{
    die('Unable to connect or select database!');
}

// Do a simple query, select the version of
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>

注释

Note: If the query returns multiple results then it is necessary to fetch all results by mssql_next_result() or free the results by mssql_free_result() before executing next query.

参见

  • mssql_select_db() - Select MS SQL database
  • mssql_connect() - Open MS SQL server connection

mssql_pconnect
mssql_result
Mssql 函数


Get result data

mssql_query
mssql_rows_affected
Mssql 函数
PHP 手册

mssql_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_result — Get result data

说明

string mssql_result ( resource $result , int $row , mixed $field )

mssql_result() returns the contents of one cell from a MS SQL result set.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

row

The row number.

field

Can be the field's offset, the field's name or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), it uses the alias instead of the column name.

Note: Specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

返回值

Returns the contents of the specified cell.

范例

Example #1 mssql_result() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query))
{
    echo 'No records found';
}
else
{
    for($i = 0; $i < mssql_num_rows($query); ++$i)
    {
        echo mssql_result($query, $i, 'username'), PHP_EOL;
    }
}

// Free the query result
mssql_free_result($query);
?>

上例的输出类似于：

Kalle
Felipe
Emil
Ross

Example #2 Faster alternative to above example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Check if there were any records
if(!mssql_num_rows($query))
{
    echo 'No records found';
}
else
{
    while($row = mssql_fetch_array($query))
    {
        echo $row['username'], PHP_EOL;
    }
}

// Free the query result
mssql_free_result($query);
?>

注释

Note: When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mssql_result().

参见

Recommended high-performance alternatives:

  • mssql_fetch_row() - Get row as enumerated array
  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_assoc() - Returns an associative array of the current row in the result
  • mssql_fetch_object() - Fetch row as object

mssql_query
mssql_rows_affected
Mssql 函数


Returns the number of records affected by the query

mssql_result
mssql_select_db
Mssql 函数
PHP 手册

mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_rows_affected — Returns the number of records affected by the query

说明

int mssql_rows_affected ( resource $link_identifier )

Returns the number of records affected by the last write query.

参数

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

返回值

Returns the number of records affected by last operation.

范例

Example #1 mssql_rows_affected() example

<?php
// Delete all rows in a table
mssql_query('TRUNCATE TABLE [php].[dbo].[persons]');

echo 'Deleted ' . mssql_rows_affected($link) . ' row(s)';
?>

mssql_result
mssql_select_db
Mssql 函数


Select MS SQL database

mssql_rows_affected
MySQL
Mssql 函数
PHP 手册

mssql_select_db

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_select_db — Select MS SQL database

说明

bool mssql_select_db ( string $database_name [, resource $link_identifier ] )

mssql_select_db() sets the current active database on the server that's associated with the specified link identifier.

Every subsequent call to mssql_query() will be made on the active database.

参数

database_name

The database name.

To escape the name of a database that contains spaces, hyphens ("-"), or any other exceptional characters, the database name must be enclosed in brackets, as is shown in the example, below. This technique must also be applied when selecting a database name that is also a reserved word (such as primary).

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mssql_connect() was called, and use it.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mssql_select_db() example

<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Select the database 'php'
mssql_select_db('php', $link);
?>

参见

  • mssql_connect() - Open MS SQL server connection
  • mssql_pconnect() - Open persistent MS SQL connection
  • mssql_query() - Send MS SQL query

mssql_rows_affected
MySQL
Mssql 函数


MySQL

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • MySQL extension overview example
  • MySQL 函数
    • mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
    • mysql_change_user — 改变活动连接中登录的用户
    • mysql_client_encoding — 返回字符集的名称
    • mysql_close — 关闭 MySQL 连接
    • mysql_connect — 打开一个到 MySQL 服务器的连接
    • mysql_create_db — 新建一个 MySQL 数据库
    • mysql_data_seek — 移动内部结果的指针
    • mysql_db_name — 取得结果数据
    • mysql_db_query — 发送一条 MySQL 查询
    • mysql_drop_db — 丢弃（删除）一个 MySQL 数据库
    • mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码
    • mysql_error — 返回上一个 MySQL 操作产生的文本错误信息
    • mysql_escape_string — 转义一个字符串用于 mysql_query
    • mysql_fetch_array — 从结果集中取得一行作为关联数组，或数字数组，或二者兼有
    • mysql_fetch_assoc — 从结果集中取得一行作为关联数组
    • mysql_fetch_field — 从结果集中取得列信息并作为对象返回
    • mysql_fetch_lengths — 取得结果集中每个输出的长度
    • mysql_fetch_object — 从结果集中取得一行作为对象
    • mysql_fetch_row — 从结果集中取得一行作为枚举数组
    • mysql_field_flags — 从结果中取得和指定字段关联的标志
    • mysql_field_len — 返回指定字段的长度
    • mysql_field_name — 取得结果中指定字段的字段名
    • mysql_field_seek — 将结果集中的指针设定为制定的字段偏移量
    • mysql_field_table — 取得指定字段所在的表名
    • mysql_field_type — 取得结果集中指定字段的类型
    • mysql_free_result — 释放结果内存
    • mysql_get_client_info — 取得 MySQL 客户端信息
    • mysql_get_host_info — 取得 MySQL 主机信息
    • mysql_get_proto_info — 取得 MySQL 协议信息
    • mysql_get_server_info — 取得 MySQL 服务器信息
    • mysql_info — 取得最近一条查询的信息
    • mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
    • mysql_list_dbs — 列出 MySQL 服务器中所有的数据库
    • mysql_list_fields — 列出 MySQL 结果中的字段
    • mysql_list_processes — 列出 MySQL 进程
    • mysql_list_tables — 列出 MySQL 数据库中的表
    • mysql_num_fields — 取得结果集中字段的数目
    • mysql_num_rows — 取得结果集中行的数目
    • mysql_pconnect — 打开一个到 MySQL 服务器的持久连接
    • mysql_ping — Ping 一个服务器连接，如果没有连接则重新连接
    • mysql_query — 发送一条 MySQL 查询
    • mysql_real_escape_string — 转义 SQL 语句中使用的字符串中的特殊字符，并考虑到连接的当前字符集
    • mysql_result — 取得结果数据
    • mysql_select_db — 选择 MySQL 数据库
    • mysql_set_charset — Sets the client character set
    • mysql_stat — 取得当前系统状态
    • mysql_tablename — 取得表名
    • mysql_thread_id — 返回当前线程的 ID
    • mysql_unbuffered_query — 向 MySQL 发送一条 SQL 查询，并不获取和缓存结果的行
mssql_select_db
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access MySQL database servers. More information about MySQL can be found at » http://www.mysql.com/.

Documentation for MySQL can be found at » http://dev.mysql.com/doc/.

For an overview of MySQL database connectivity terms and products see Overview.

MySQL
安装/配置
MySQL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
MySQL


需求

In order to have these functions available, you must compile PHP with MySQL support.

安装/配置
安装
安装/配置


安装

编译时，只要使用 --with-mysql[=DIR] 配置选项即可，其中可选的 [DIR] 指向 MySQL 的安装目录。

虽然本 MySQL 扩展库兼容 MySQL 4.1.0 及其以后版本，但是它不支持这些版本提供的额外功能。要使用这些功能，请使用 MySQLi 扩展库。

如果要同时安装 mysql 扩展库和 mysqli 扩展库，必须使用同一个客户端库以避免任何冲突。

在 Linux 系统下安装

PHP 4

默认开启了 --with-mysql 选项。此默认行为可以用 --without-mysql 配置选项来禁止。如果启用 MySQL 而不指定安装目录的话，PHP 将使用绑定的 MySQL 客户端连接库。

还有其它应用程序使用 MySQL（例如 auth-mysql）的用户不要用绑定的库，而要指定 MySQL 的安装目录，如这样：--with-mysql=/path/to/mysql。这将强制 PHP 使用随 MySQL 安装的客户端连接库，就可以避免任何冲突。

PHP 5+

MySQL 默认未启用，也没有绑定的 MySQL 库。其原因见此 FAQ。使用 --with-mysql[=DIR] 配置选项来加入 MySQL 的支持。可以从 » MySQL 下载头文件和库。

在 Windows 系统下安装

PHP 4

PHP MySQL 扩展已经编译入 PHP。

PHP 5+

MySQL 默认未启用，因此必须在 php.ini 中激活 php_mysql.dll 动态连接库。此外，PHP 还需要访问 MySQL 客户端连接库。PHP 的 Windows 发行版包括了一个 libmysql.dll，为了让 PHP 能和 MySQL 对话，此文件必须放在 Windows 的系统路径 PATH 中。怎样做见 FAQ 中的“怎样把 PHP 目录加入到 Windows 路径中”。尽管将 libmysql.dll 拷贝到 Windows 系统目录中也可以（因为系统目录默认在系统路径 PATH 中），但不推荐这样做。

要激活任何 PHP 扩展库（例如 php_mysql.dll），PHP 指令 extension_dir 要被设为 PHP 扩展库所在的目录。参见手工 Windows 安装指南。PHP 5 下 extension_dir 取值的一个例子是 c:\php\ext。

Note: 如果启动 web 服务器时出现类似如下的错误："Unable to load dynamic library './php_mysql.dll'"，这是因为系统找不到 php_mysql.dll 和／或 libmysql.dll。

MySQL 安装注意事项

Warning

当同时加在本扩展库和 recode 扩展库时 PHP 可能会崩溃。更多信息见 recode 扩展库。

Note: 如果需要不同于 latin（默认值）的字符集，必须安装外部的（非绑定的）已编译入所需字符集支持的 libmysql。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

MySQL 配置选项
选项名称 | 默认值 | 可修改范围 | 更新记录
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL | 自 PHP 4.3.0 起可用
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | 自 PHP 4.0.1 起可用
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "60" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。在 PHP <= 4.3.2 时为 PHP_INI_SYSTEM

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

mysql.allow_persistent boolean

是否允许 MySQL 的持久连接。

mysql.max_persistent integer

每个进程中最大的持久连接数目。

mysql.max_links integer

每个进程中最大的连接数，包括持久连接。

mysql.trace_mode boolean

跟踪模式。当激活 mysql.trace_mode 时，将会显示 table/index 扫描的警告，未释放的结果集以及 SQL 错误。（PHP 4.3.0 引进）

mysql.default_port string

指定默认连接数据库的 TCP 端口号。如果没有指定默认端口号，则按顺序从 MYSQL_TCP_PORT 环境变量，/etc/services 文件中的 mysql-tcp 项或者编译时指定的 MYSQL_PORT 常量中取得。Win32 环境下只会使用 MYSQL_PORT 常量。

mysql.default_socket string

当使用本地连接的时候，默认的 socket 名称。

mysql.default_host string

默认连接的数据库服务器地址。不适用于 SQL 安全模式。

mysql.default_user string

默认连接数据库时使用的用户名。不适用于 SQL 安全模式。

mysql.default_password string

默认连接数据库时使用的密码。不适用于 SQL 安全模式。

mysql.connect_timeout integer

连接超时秒数。在 Linux 中，此参数设定了等候来自服务器的响应的时长。

安装
资源类型
安装/配置


资源类型

There are two resource types used in the MySQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

在 PHP 4.3.0 以后的版本中，允许在 mysql_connect() 函数和 mysql_pconnect() 函数中指定更多的客户端标记。下面列出所定义的常量：

MySQL 客户端常量
常量 | 说明
MYSQL_CLIENT_COMPRESS | 使用压缩的通讯协议
MYSQL_CLIENT_IGNORE_SPACE | 允许在函数名后留空格位
MYSQL_CLIENT_INTERACTIVE | 允许设置断开连接之前所空闲等候的 interactive_timeout 时间（代替 wait_timeout）。
MYSQL_CLIENT_SSL | 使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP 5 安装包中绑定的都是 3.23.x。

mysql_fetch_array() 函数使用一个常量来表示所返回数组的类型。下面是常量的定义：

MySQL fetch 常量
常量 | 说明
MYSQL_ASSOC | 返回的数据列使用字段名作为数组的索引名。
MYSQL_BOTH | 返回的数据列使用字段名及数字索引作为数组的索引名。
MYSQL_NUM | 返回的数据列使用数字索引作为数组的索引名。索引从 0 开始，表示返回结果的第一个字段。

资源类型
范例
MySQL


范例

Table of Contents

  • MySQL extension overview example
预定义常量
MySQL extension overview example
MySQL


MySQL extension overview example

范例
MySQL 函数
范例
PHP 手册

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a MySQL database.

Example #1 MySQL extension overview example

<?php
// Connecting, selecting database
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// Performing SQL query
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>

范例
MySQL 函数
范例


MySQL 函数

注释

Note: Most MySQL functions accept link_identifier as the last optional parameter. If it is not provided, last opened connection is used. If it doesn't exist, connection is tried to establish with default parameters defined in php.ini. If it is not successful, functions return FALSE.

Table of Contents

  • mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
  • mysql_change_user — 改变活动连接中登录的用户
  • mysql_client_encoding — 返回字符集的名称
  • mysql_close — 关闭 MySQL 连接
  • mysql_connect — 打开一个到 MySQL 服务器的连接
  • mysql_create_db — 新建一个 MySQL 数据库
  • mysql_data_seek — 移动内部结果的指针
  • mysql_db_name — 取得结果数据
  • mysql_db_query — 发送一条 MySQL 查询
  • mysql_drop_db — 丢弃（删除）一个 MySQL 数据库
  • mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码
  • mysql_error — 返回上一个 MySQL 操作产生的文本错误信息
  • mysql_escape_string — 转义一个字符串用于 mysql_query
  • mysql_fetch_array — 从结果集中取得一行作为关联数组，或数字数组，或二者兼有
  • mysql_fetch_assoc — 从结果集中取得一行作为关联数组
  • mysql_fetch_field — 从结果集中取得列信息并作为对象返回
  • mysql_fetch_lengths — 取得结果集中每个输出的长度
  • mysql_fetch_object — 从结果集中取得一行作为对象
  • mysql_fetch_row — 从结果集中取得一行作为枚举数组
  • mysql_field_flags — 从结果中取得和指定字段关联的标志
  • mysql_field_len — 返回指定字段的长度
  • mysql_field_name — 取得结果中指定字段的字段名
  • mysql_field_seek — 将结果集中的指针设定为制定的字段偏移量
  • mysql_field_table — 取得指定字段所在的表名
  • mysql_field_type — 取得结果集中指定字段的类型
  • mysql_free_result — 释放结果内存
  • mysql_get_client_info — 取得 MySQL 客户端信息
  • mysql_get_host_info — 取得 MySQL 主机信息
  • mysql_get_proto_info — 取得 MySQL 协议信息
  • mysql_get_server_info — 取得 MySQL 服务器信息
  • mysql_info — 取得最近一条查询的信息
  • mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
  • mysql_list_dbs — 列出 MySQL 服务器中所有的数据库
  • mysql_list_fields — 列出 MySQL 结果中的字段
  • mysql_list_processes — 列出 MySQL 进程
  • mysql_list_tables — 列出 MySQL 数据库中的表
  • mysql_num_fields — 取得结果集中字段的数目
  • mysql_num_rows — 取得结果集中行的数目
  • mysql_pconnect — 打开一个到 MySQL 服务器的持久连接
  • mysql_ping — Ping 一个服务器连接，如果没有连接则重新连接
  • mysql_query — 发送一条 MySQL 查询
  • mysql_real_escape_string — 转义 SQL 语句中使用的字符串中的特殊字符，并考虑到连接的当前字符集
  • mysql_result — 取得结果数据
  • mysql_select_db — 选择 MySQL 数据库
  • mysql_set_charset — Sets the client character set
  • mysql_stat — 取得当前系统状态
  • mysql_tablename — 取得表名
  • mysql_thread_id — 返回当前线程的 ID
  • mysql_unbuffered_query — 向 MySQL 发送一条 SQL 查询，并不获取和缓存结果的行
MySQL extension overview example
mysql_affected_rows
MySQL


取得前一次 MySQL 操作所影响的记录行数

MySQL 函数
mysql_change_user
MySQL 函数
PHP 手册

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数

说明

int mysql_affected_rows ([ resource $link_identifier ] )

取得最近一次与 link_identifier 关联的 INSERT，UPDATE 或 DELETE 查询所影响的记录行数。

参数

link_identifier

MySQL 的连接标识符。如果没有指定，默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接，函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外，没有找到连接或无法建立连接，系统发出 E_WARNING 级别的警告信息。

返回值

执行成功则返回受影响的行的数目，如果最近一次查询失败的话，函数返回 -1。

如果最近一次操作是没有任何条件（WHERE）的 DELETE 查询，在表中所有的记录都会被删除，但本函数返回值在 4.1.2 版之前都为 0。

当使用 UPDATE 查询，MySQL 不会将原值和新值一样的列更新。这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数，只有真正被修改的记录数才会被返回。

REPLACE 语句首先删除具有相同主键的记录，然后插入一个新记录。本函数返回的是被删除的记录数加上被插入的记录数。

范例

Example #1 mysql_affected_rows() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

/* 本例返回被删除记录的准确数目 */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Records deleted: %d\n", mysql_affected_rows());

/* 对于非真值的 WHERE 子句，应返回 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Records deleted: %d\n", mysql_affected_rows());
?>

上例的输出类似于：

Records deleted: 10
Records deleted: 0

Example #2 使用事务处理的 mysql_affected_rows() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

/* Update records */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

上例的输出类似于：

Updated Records: 10

注释

Note: 事务处理
如果使用事务处理（transactions），需要在 INSERT，UPDATE 或 DELETE 查询后调用 mysql_affected_rows() 函数，而不是在 COMMIT 命令之后。

Note: SELECT 语句
要获取 SELECT 所返回的行数，可以用 mysql_num_rows()。

参见

  • mysql_num_rows() - 取得结果集中行的数目
  • mysql_info() - 取得最近一条查询的信息

MySQL 函数
mysql_change_user
MySQL 函数


改变活动连接中登录的用户

mysql_affected_rows
mysql_client_encoding
MySQL 函数
PHP 手册

mysql_change_user

(PHP 3 <= 3.0.13)

mysql_change_user — 改变活动连接中登录的用户

说明

int mysql_change_user ( string $user , string $password [, string $database [, resource $link_identifier ]] )

mysql_change_user() 改变当前活动连接中的登录用户，或者是可选的 link_identifier 参数所指定的连接。如果指明了数据库，将在改变用户后成为当前数据库。如果新用户和密码认证失败，当前连接的用户保持活动状态。

本函数已废弃，不再存在于 PHP 中。

参数

user

新的 MySQL 用户名。

password

新的 MySQL 密码。

database

MySQL 数据库。如果未指定，则使用当前已选择的数据库。

link_identifier

MySQL 的连接标识符。如果没有指定，默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接，函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外，没有找到连接或无法建立连接，系统发出 E_WARNING 级别的警告信息。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
3.0.14 | 本函数自 PHP 中删除。

注释

Note: 需求
本函数需要 MySQL 3.23.3 或更高版本。

参见

  • mysql_connect() - 打开一个到 MySQL 服务器的连接
  • mysql_select_db() - 选择 MySQL 数据库
  • mysql_query() - 发送一条 MySQL 查询

mysql_affected_rows
mysql_client_encoding
MySQL 函数


返回字符集的名称

mysql_change_user
mysql_close
MySQL 函数
PHP 手册

mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding — 返回字符集的名称

说明

string mysql_client_encoding ([ resource $link_identifier ] )

从 MySQL 中取得 character_set 变量的值。

参数

link_identifier

MySQL 的连接标识符。如果没有指定，默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接，函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外，没有找到连接或无法建立连接，系统发出 E_WARNING 级别的警告信息。

返回值

返回当前连接的默认字符集名称。

范例

Example #1 mysql_client_encoding() 例子

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "The current character set is: $charset\n";
?>

上例的输出类似于：

The current character set is: latin1

参见

  • mysql_real_escape_string() - 转义 SQL 语句中使用的字符串中的特殊字符，并考虑到连接的当前字符集

mysql_change_user
mysql_close
MySQL 函数


关闭 MySQL 连接

mysql_client_encoding
mysql_connect
MySQL 函数
PHP 手册

mysql_close

(PHP 4, PHP 5)

mysql_close — 关闭 MySQL 连接

说明

bool mysql_close ([ resource $link_identifier ] )

mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier ，则关闭上一个打开的连接。

通常不需要使用 mysql_close()，因为已打开的非持久连接会在脚本执行完毕后自动关闭。参见释放资源。

参数

link_identifier

MySQL 的连接标识符。如果没有指定，默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接，函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外，没有找到连接或无法建立连接，系统发出 E_WARNING 级别的警告信息。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mysql_close() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

上例将输出：

Connected successfully

注释

Note: mysql_close() 不会关闭由 mysql_pconnect() 建立的持久连接。

参见

  • mysql_connect() - 打开一个到 MySQL 服务器的连接
  • mysql_free_result() - 释放结果内存

mysql_client_encoding
mysql_connect
MySQL 函数


打开一个到 MySQL 服务器的连接

mysql_close
mysql_create_db
MySQL 函数
PHP 手册

mysql_connect

(PHP 4, PHP 5)

mysql_connect — 打开一个到 MySQL 服务器的连接

说明

resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

打开或重复使用一个到 MySQL 服务器的连接。

参数

server

MySQL 服务器。可以包括端口号，例如 "hostname:port"，或者到本地套接字的路径，例如对于 localhost 的 ":/path/to/socket"。

如果 PHP 指令 mysql.default_host 未定义（默认情况），则默认值是 'localhost:3306'。

username

用户名。默认值是服务器进程所有者的用户名。

password

密码。默认值是空密码。

new_link

如果用同样的参数第二次调用 mysql_connect()，将不会建立新连接，而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接，甚至当 mysql_connect() 曾在前面被用同样的参数调用过。

client_flags

client_flags 参数可以是以下常量的组合：MYSQL_CLIENT_SSL，MYSQL_CLIENT_COMPRESS，MYSQL_CLIENT_IGNORE_SPACE 或 MYSQL_CLIENT_INTERACTIVE。进一步信息见预定义常量。

返回值

如果成功则返回一个 MySQL 连接标识，失败则返回 FALSE。

更新日志

版本 | 说明
4.3.0 | 添加 client_flags 参数。
4.2.0 | 添加 new_link 参数。
3.0.10 | 对 server 添加 ":/path/to/socket" 支持。
3.0.0 | 对 server 添加 ":port" 支持。

范例

Example #1 mysql_connect() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Example #2 mysql_connect() 例子：使用 hostname:port 语法

<?php
// we connect to example.com and port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

// we connect to localhost at port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Example #3 mysql_connect() 例子：使用 ":/path/to/socket" 语法

<?php
// we connect to localhost and socket e.g. /tmp/mysql.sock

//variant 1: ommit localhost
$link = mysql_connect('/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

// variant 2: with localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

注释

Note: 只要将 server 指定为 "localhost" 或 "localhost:port"，MySQL 客户端库会越过此值并尝试连接到本地套接字（Windows 中的名字管道）。如果想用 TCP/IP，应该用 "127.0.0.1" 代替 "localhost"。如果 MySQL 客户端库试图连接到一个错误的本地套接字，则应该在 PHP 配置中设定 运行时配置 的正确路径并把 server 留空。

Note: 脚本一结束，到服务器的连接就被关闭，除非之前已经明确调用 mysql_close() 关闭了。

Note: 可以在函数名前加上一个 @ 来抑制出错时的错误信息。

参见

  • mysql_pconnect() - 打开一个到 MySQL 服务器的持久连接
  • mysql_close() - 关闭 MySQL 连接

mysql_close
mysql_create_db
MySQL 函数


新建一个 MySQL 数据库

mysql_connect
mysql_data_seek
MySQL 函数
PHP 手册

mysql_create_db

(PHP 4, PHP 5)

mysql_create_db — 新建一个 MySQL 数据库

说明

bool mysql_create_db ( string $database name [, resource $link_identifier ] )

mysql_create_db() 尝试在指定的连接标识所关联的服务器上建立一个新数据库。

参数

database_name

要创建的数据库名。

link_identifier

MySQL 的连接标识符。如果没有指定，默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接，函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外，没有找到连接或无法建立连接，系统发出 E_WARNING 级别的警告信息。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 替代 mysql_create_db() 的例子

mysql_create_db() 函数已废弃。最好用 mysql_query() 来提交一条 SQL 的 CREATE DATABASE 语句来代替。

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "Database my_db created successfully\n";
} else {
    echo 'Error creating database: ' . mysql_error() . "\n";
}
?>

上例的输出类似于：

Database my_db created successfully

注释

Note: 为了保证向下兼容性，可以使用下面的别名，但不赞成使用它： mysql_createdb()

Note: 如果 MySQL 扩展是基于 MySQL 4.x 客户端库编译的话则本函数不可用。

参见

  • mysql_query() - 发送一条 MySQL 查询
  • mysql_select_db() - 选择 MySQL 数据库

mysql_connect
mysql_data_seek
MySQL 函数


移动内部结果的指针

mysql_create_db
mysql_db_name
MySQL 函数
PHP 手册

mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seek — 移动内部结果的指针

说明

bool mysql_data_seek ( resource $result , int $row_number )

mysql_data_seek() 将指定的结果标识所关联的 MySQL 结果内部的行指针移动到指定的行号。接着调用 mysql_fetch_row() 将返回那一行。

row_number 从 0 开始。row_number 的取值范围应该从 0 到 mysql_num_rows - 1。但是如果结果集为空（mysql_num_rows() == 0），要将指针移动到 0 会失败并发出 E_WARNING 级的错误，mysql_data_seek() 将返回 FALSE。

参数

result

返回类型为 resource 的结果集。该结果集从 mysql_query() 的调用中得到。

row_number

想要设定的新的结果集指针的行数。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mysql_data_seek() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
    die('Could not select database: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
    die('Query failed: ' . mysql_error());
}
/* fetch rows in reverse order */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
    if (!mysql_data_seek($result, $i)) {
        echo "Cannot seek to row $i: " . mysql_error() . "\n";
        continue;
    }

    if (!($row = mysql_fetch_assoc($result))) {
        continue;
    }

    echo $row['last_name'] . ' ' . $row['first_name'] . "<br />\n";
}

mysql_free_result($result);
?>

注释

Note:

    mysql_data_seek() 只能和
    mysql_query() 结合起来使用，而不能用于
    mysql_unbuffered_query()。

参见

  • mysql_query() - 发送一条 MySQL 查询
  • mysql_num_rows() - 取得结果集中行的数目
  • mysql_fetch_row() - 从结果集中取得一行作为枚举数组
  • mysql_fetch_assoc() - 从结果集中取得一行作为关联数组
  • mysql_fetch_array() - 从结果集中取得一行作为关联数组，或数字数组，或二者兼有
  • mysql_fetch_object() - 从结果集中取得一行作为对象

mysql_create_db
mysql_db_name
MySQL 函数


取得结果数据

mysql_data_seek
mysql_db_query
MySQL 函数
PHP 手册

mysql_db_name

(PHP 4, PHP 5)

mysql_db_name — 取得结果数据

说明

string mysql_db_name ( resource $result , int $row [, mixed $field ] )

取得 mysql_list_dbs() 调用所返回的数据库名。

参数

result

mysql_list_dbs() 调用所返回的结果指针。

row

结果集中的行号。

field

字段名。

返回值

如果成功则返回数据库名，失败返回 FALSE。如果返回了 FALSE，用 mysql_error() 来判断错误的种类。

范例

Example #1 mysql_db_name() 例子

<?php
error_reporting(E_ALL);

$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

注释

Note: 为了保证向下兼容性，可以使用下面的别名，但不赞成使用它：mysql_dbname()。

参见

  • mysql_list_dbs() - 列出 MySQL 服务器中所有的数据库
  • mysql_tablename() - 取得表名

mysql_data_seek
mysql_db_query
MySQL 函数


发送一条 MySQL 查询

mysql_db_name
mysql_drop_db
MySQL 函数
PHP 手册

mysql_db_query

(PHP 4, PHP 5)

mysql_db_query — 发送一条 MySQL 查询

说明

resource mysql_db_query ( string $database , string $query [, resource $ link_identifier ] )

根据查询结果返回一个正的 MySQL 结果资源号，出错时返回 FALSE。本函数会对 INSERT/UPDATE/DELETE 查询返回 TRUE/FALSE 来指示成功或失败。

mysql_db_query() 选择一个数据库并在其上执行查询。如果没有提供可选的连接标识，本函数会去找一个到 MySQL 服务器的已打开的连接，如果找不到已打开连接则会尝试无参数调用 mysql_connect() 来建立一个。

注意此函数不会切换回先前连接到的数据库。换句话说，不能用此函数临时在另一个数据库上执行 sql 查询，只能手工切换回来。强烈建议用户在 sql 查询中使用 database.table 语法来替代此函数。

参见 mysql_connect() 和 mysql_query()。

Note: 自 PHP 4.0.6 起不提倡使用此函数。不要用此函数，用 mysql_select_db() 和 mysql_query() 来替代。

mysql_db_name
mysql_drop_db
MySQL 函数


丢弃（删除）一个 MySQL 数据库

mysql_db_query
mysql_errno
MySQL 函数
PHP 手册

mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_db — 丢弃（删除）一个 MySQL 数据库

说明

bool mysql_drop_db ( string $database_name [, resource $ link_identifier ] )

mysql_drop_db() 尝试丢弃（删除）指定连接标识所关联的服务器上的一整个数据库。

如果成功则返回 TRUE，失败则返回 FALSE。

为向下兼容也可以用 mysql_dropdb()，但反对这样做。

Note: 不提倡使用 mysql_drop_db() 函数。最好用 mysql_query() 提交一条 SQL DROP DATABASE 语句来替代。

Warning

如果 MySQL 扩展库是基于 MySQL 4.x 客户端库建立的，则本函数不可用。

参见 mysql_create_db() 和 mysql_query()。

mysql_db_query
mysql_errno
MySQL 函数


返回上一个 MySQL 操作中的错误信息的数字编码

mysql_drop_db
mysql_error
MySQL 函数
PHP 手册

mysql_errno

(PHP 4, PHP 5)

mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码

说明

int mysql_errno ([ resource $link_identifier ] )

返回上一个 MySQL 函数的错误号码，如果没有出错则返回 0（零）。

从 MySQL 数据库后端来的错误不再发出警告，要用
mysql_errno() 来提取错误代码。注意本函数仅返回最近一次
MySQL 函数的执行（不包括 mysql_error() 和
mysql_errno()）的错误代码，因此如果要使用此函数，确保在调用另一个
MySQL 函数之前检查它的值。

Example #1 mysql_errno() 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("nonexistentdb");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM nonexistenttable");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

以上例子将产生如下输出：

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Note: 如果指定了可选参数则用给定的连接提取错误代码。否则使用上一个打开的连接。

参见 mysql_error()。

mysql_drop_db
mysql_error
MySQL 函数


返回上一个 MySQL 操作产生的文本错误信息

mysql_errno
mysql_escape_string
MySQL 函数
PHP 手册

mysql_error

(PHP 4, PHP 5)

mysql_error — 返回上一个 MySQL 操作产生的文本错误信息

说明

string mysql_error ([ resource $link_identifier ] )

返回上一个 MySQL 函数的错误文本，如果没有出错则返回 ''（空字符串）。如果没有指定连接资源号，则使用上一个成功打开的连接从 MySQL 服务器提取错误信息。

从 MySQL 数据库后端来的错误不再发出警告，要用
mysql_error() 来提取错误文本。注意本函数仅返回最近一次
MySQL 函数的执行（不包括 mysql_error() 和
mysql_errno()）的错误文本，因此如果要使用此函数，确保在调用另一个
MySQL 函数之前检查它的值。

Example #1 mysql_error 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("nonexistentdb");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM nonexistenttable");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

以上例子将产生如下输出：

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

参见 mysql_errno()。

mysql_errno
mysql_escape_string
MySQL 函数


转义一个字符串用于 mysql_query

mysql_error
mysql_fetch_array
MySQL 函数
PHP 手册

mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string — 转义一个字符串用于 mysql_query

说明

string mysql_escape_string ( string $unescaped_string )

本函数将 unescaped_string 转义，使之可以安全用于 mysql_query()。

Note: mysql_escape_string() 并不转义 % 和 _。 本函数和 mysql_real_escape_string() 完全一样，除了 mysql_real_escape_string() 接受的是一个连接句柄并根据当前字符集转移字符串之外。mysql_escape_string() 并不接受连接参数，也不管当前字符集设定。

Example #1 mysql_escape_string() 例子

<?php
    $item = "Zak's Laptop";
    $escaped_item = mysql_escape_string($item);
    printf ("Escaped string: %s\n", $escaped_item);
?>

以上例子将产生如下输出：

Escaped string: Zak\'s Laptop

参见 mysql_real_escape_string()，addslashes() 和 magic_quotes_gpc 指令。

mysql_error
mysql_fetch_array
MySQL 函数


从结果集中取得一行作为关联数组，或数字数组，或二者兼有

mysql_escape_string
mysql_fetch_assoc
MySQL 函数
PHP 手册

mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — 从结果集中取得一行作为关联数组，或数字数组，或二者兼有

说明

array mysql_fetch_array ( resource $result [, int $ result_type ] )

返回根据从结果集取得的行生成的数组，如果没有更多行则返回 FALSE。

mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外，还可以将数据作为关联索引储存，用字段名作为键名。

如果结果中的两个或以上的列具有相同字段名，最后一列将优先。要访问同名的其它列，必须用该列的数字索引或给该列起个别名。对有别名的列，不能再用原来的列名访问其内容（本例中的 'field'）。

Example #1 相同字段名的查询

select table1.field as foo, table2.field as bar from table1, table2

有一点很重要必须指出，用 mysql_fetch_array() 并不明显 比用 mysql_fetch_row() 慢，而且还提供了明显更多的值。

mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量，可以接受以下值：MYSQL_ASSOC，MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。

如果用了 MYSQL_BOTH，将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引（如同 mysql_fetch_assoc() 那样），用 MYSQL_NUM 只得到数字索引（如同 mysql_fetch_row() 那样）。

Note: 本函数返回的字段名是区分大小写的。

Example #2 mysql_fetch_array 使用 MYSQL_NUM

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);
    }

    mysql_free_result($result);
?>

Example #3 mysql_fetch_array 使用 MYSQL_ASSOC

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
    }

    mysql_free_result($result);
?>

Example #4 mysql_fetch_array 使用 MYSQL_BOTH

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        printf ("ID: %s  Name: %s", $row[0], $row["name"]);
    }

    mysql_free_result($result);
?>

参见 mysql_fetch_row() 和 mysql_fetch_assoc()。

mysql_escape_string
mysql_fetch_assoc
MySQL 函数


从结果集中取得一行作为关联数组

mysql_fetch_array
mysql_fetch_field
MySQL 函数
PHP 手册

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc — 从结果集中取得一行作为关联数组

说明

array mysql_fetch_assoc ( resource $result )

返回根据从结果集取得的行生成的关联数组，如果没有更多行则返回 FALSE。

mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是 mysql_fetch_array() 起初始的工作方式。如果在关联索引之外还需要数字索引，用 mysql_fetch_array()。

如果结果中的两个或以上的列具有相同字段名，最后一列将优先。要访问同名的其它列，要么用 mysql_fetch_row() 来取得数字索引或给该列起个别名。参见 mysql_fetch_array() 例子中有关别名说明。

有一点很重要必须指出，用 mysql_fetch_assoc() 并不明显 比用 mysql_fetch_row() 慢，而且还提供了明显更多的值。

Note: 本函数返回的字段名是区分大小写的。

Example #1 扩展的 mysql_fetch_assoc() 例子

<?php

    $conn = mysql_connect("localhost", "mysql_user", "mysql_password");

    if (!$conn) {
        echo "Unable to connect to DB: " . mysql_error();
        exit;
    }

    if (!mysql_select_db("mydbname")) {
        echo "Unable to select mydbname: " . mysql_error();
        exit;
    }

    $sql = "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1";

    $result = mysql_query($sql);

    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }

    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }

    // While a row of data exists, put that row in $row as an associative array
    // Note: If you're expecting just one row, no need to use a loop
    // Note: If you put extract($row); inside the following loop, you'll
    //       then create $userid, $fullname, and $userstatus
    while ($row = mysql_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

    mysql_free_result($result);

?>

参见 mysql_fetch_row()，mysql_fetch_array()，mysql_query() 和 mysql_error()。

mysql_fetch_array
mysql_fetch_field
MySQL 函数


从结果集中取得列信息并作为对象返回

mysql_fetch_assoc
mysql_fetch_lengths
MySQL 函数
PHP 手册

mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field — 从结果集中取得列信息并作为对象返回

说明

object mysql_fetch_field ( resource $result [, int $field_offset ] )

返回一个包含字段信息的对象。

mysql_fetch_field() 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量，则下一个尚未被 mysql_fetch_field() 取得的字段被提取。

对象的属性为：

  • name - 列名
  • table - 该列所在的表名
  • max_length - 该列最大长度
  • not_null - 1，如果该列不能为 NULL
  • primary_key - 1，如果该列是 primary key
  • unique_key - 1，如果该列是 unique key
  • multiple_key - 1，如果该列是 non-unique key
  • numeric - 1，如果该列是 numeric
  • blob - 1，如果该列是 BLOB
  • type - 该列的类型
  • unsigned - 1，如果该列是无符号数
  • zerofill - 1，如果该列是 zero-filled

Note: 本函数返回的字段名是区分大小写的。

Example #1 mysql_fetch_field()

<?php
mysql_connect('localhost:3306', $user, $password)
    or die("Could not connect: " . mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table")
    or die("Query failed: " . mysql_error());
/* get column metadata */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = mysql_fetch_field($result);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
</pre>";
    $i++;
}
mysql_free_result($result);
?>

参见 mysql_field_seek()。

mysql_fetch_assoc
mysql_fetch_lengths
MySQL 函数


取得结果集中每个输出的长度

mysql_fetch_field
mysql_fetch_object
MySQL 函数
PHP 手册

mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths — 取得结果集中每个输出的长度

说明

array mysql_fetch_lengths ( resource $result )

以数组返回上一次用 mysql_fetch_row() 取得的行中每个字段的长度，如果出错返回 FALSE。

mysql_fetch_lengths() 将上一次
mysql_fetch_row()，mysql_fetch_array()
和 mysql_fetch_object()
所返回的每个列的长度储存到一个数组中，偏移量从 0 开始。

参见 mysql_fetch_row()。

mysql_fetch_field
mysql_fetch_object
MySQL 函数


从结果集中取得一行作为对象

mysql_fetch_lengths
mysql_fetch_row
MySQL 函数
PHP 手册

mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — 从结果集中取得一行作为对象

说明

object mysql_fetch_object ( resource $result )

返回根据所取得的行生成的对象，如果没有更多行则返回 FALSE。

mysql_fetch_object() 和 mysql_fetch_array() 类似，只有一点区别 - 返回一个对象而不是数组。间接地也意味着只能通过字段名来访问数组，而不是偏移量（数字是合法的属性名）。

Note: 本函数返回的字段名是区分大小写的。

<?php

/* this is valid */
echo $row->field;
/* this is invalid */
echo $row->0;

?>

速度上，本函数和 mysql_fetch_array() 一样，也几乎和 mysql_fetch_row() 一样快（差别很不明显）。

Example #1 mysql_fetch_object() 例子

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

参见 mysql_fetch_array()，mysql_fetch_assoc() 和 mysql_fetch_row()。

mysql_fetch_lengths
mysql_fetch_row
MySQL 函数


从结果集中取得一行作为枚举数组

mysql_fetch_object
mysql_field_flags
MySQL 函数
PHP 手册

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_row — 从结果集中取得一行作为枚举数组

说明

array mysql_fetch_row ( resource $result )

返回根据所取得的行生成的数组，如果没有更多行则返回 FALSE。

mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中，偏移量从 0 开始。

依次调用 mysql_fetch_row() 将返回结果集中的下一行，如果没有更多行则返回 FALSE。

Note: 本函数返回的字段名是区分大小写的。

参见 mysql_fetch_array()，mysql_fetch_assoc()，mysql_fetch_object()，mysql_data_seek()，mysql_fetch_lengths() 和 mysql_result()。

mysql_fetch_object
mysql_field_flags
MySQL 函数


从结果中取得和指定字段关联的标志

mysql_fetch_row
mysql_field_len
MySQL 函数
PHP 手册

mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flags — 从结果中取得和指定字段关联的标志

说明

string mysql_field_flags ( resource $result , int $field_offset )

mysql_field_flags() 返回指定字段的字段标志。每个标志都用一个单词表示，之间用一个空格分开，因此可以用 explode() 将其分开。

如果 MySQL 版本足够新，则会支持以下的标志："not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp"。

为向下兼容仍然可以使用 mysql_fieldflags()，但反对这样做。

mysql_fetch_row
mysql_field_len
MySQL 函数


返回指定字段的长度

mysql_field_flags
mysql_field_name
MySQL 函数
PHP 手册

mysql_field_len

(PHP 4, PHP 5)

mysql_field_len — 返回指定字段的长度

说明

int mysql_field_len ( resource $result , int $field_offset )

mysql_field_len() 返回指定字段的长度。

为向下兼容仍然可以使用 mysql_fieldlen()，但反对这样做。

mysql_field_flags
mysql_field_name
MySQL 函数


取得结果中指定字段的字段名

mysql_field_len
mysql_field_seek
MySQL 函数
PHP 手册

mysql_field_name

(PHP 4, PHP 5)

mysql_field_name — 取得结果中指定字段的字段名

说明

string mysql_field_name ( resource $result , int $field_index )

mysql_field_name() 返回指定字段索引的字段名。result 必须是一个合法的结果标识符，field_index 是该字段的数字偏移量。

Note: field_index 从 0 开始。
例如，第三个字段的索引值其实是 2，第四个字段的索引值是 3，以此类推。

Note: 本函数返回的字段名是区分大小写的。

Example #1 mysql_field_name() 例子

<?php
/* The users table consists of three fields:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$dbname = "mydb";
mysql_select_db($dbname, $link)
    or die("Could not set $dbname: " . mysql_error());
$res = mysql_query("select * from users", $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

以上例子将产生如下输出：

user_id
password

为向下兼容仍然可以使用 mysql_fieldname()，但反对这样做。

mysql_field_len
mysql_field_seek
MySQL 函数


将结果集中的指针设定为制定的字段偏移量

mysql_field_name
mysql_field_table
MySQL 函数
PHP 手册

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek — 将结果集中的指针设定为制定的字段偏移量

说明

int mysql_field_seek ( resource $result , int $field_offset )

用指定的字段偏移量检索。如果下一个 mysql_fetch_field() 的调用不包括字段偏移量，则会返回本次 mysql_field_seek() 中指定的偏移量的字段。

参见 mysql_fetch_field()。

mysql_field_name
mysql_field_table
MySQL 函数


取得指定字段所在的表名

mysql_field_seek
mysql_field_type
MySQL 函数
PHP 手册

mysql_field_table

(PHP 4, PHP 5)

mysql_field_table — 取得指定字段所在的表名

说明

string mysql_field_table ( resource $result , int $field_offset )

返回指定字段所在的表的名字。

为向下兼容仍然可以使用 mysql_fieldtable()，但反对这样做。

mysql_field_seek
mysql_field_type
MySQL 函数


取得结果集中指定字段的类型

mysql_field_table
mysql_free_result
MySQL 函数
PHP 手册

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type — 取得结果集中指定字段的类型

说明

string mysql_field_type ( resource $result , int $field_offset )

mysql_field_type() 和 mysql_field_name() 函数相似。参数完全相同，但返回的是字段类型而不是字段名。字段类型有“int”，“real”，“string”，“blob”以及其它，详见 » MySQL 手册。

Example #1 mysql_field_type() 例子

<?php
    mysql_connect("localhost", "mysql_username", "mysql_password");
    mysql_select_db("mysql");
    $result = mysql_query("SELECT * FROM func");
    $fields = mysql_num_fields($result);
    $rows   = mysql_num_rows($result);
    $table = mysql_field_table($result, 0);
    echo "Your '".$table."' table has ".$fields." fields and ".$rows." record(s)\n";
    echo "The table has the following fields:\n";
    for ($i=0; $i < $fields; $i++) {
        $type  = mysql_field_type($result, $i);
        $name  = mysql_field_name($result, $i);
        $len   = mysql_field_len($result, $i);
        $flags = mysql_field_flags($result, $i);
        echo $type." ".$name." ".$len." ".$flags."\n";
    }
    mysql_free_result($result);
    mysql_close();
?>

以上例子将产生如下输出：

Your 'func' table has 4 fields and 1 record(s)
The table has the following fields:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

为向下兼容仍然可以使用 mysql_fieldtype()，但反对这样做。

mysql_field_table
mysql_free_result
MySQL 函数


释放结果内存

mysql_field_type
mysql_get_client_info
MySQL 函数
PHP 手册

mysql_free_result

(PHP 4, PHP 5)

mysql_free_result — 释放结果内存

说明

bool mysql_free_result ( resource $result )

mysql_free_result() 将释放所有与结果标识符 result 所关联的内存。

mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。

如果成功则返回 TRUE，失败则返回 FALSE。

为向下兼容仍然可以使用 mysql_freeresult()，但反对这样做。

mysql_field_type
mysql_get_client_info
MySQL 函数


取得 MySQL 客户端信息

mysql_free_result
mysql_get_host_info
MySQL 函数
PHP 手册

mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info — 取得 MySQL 客户端信息

说明

string mysql_get_client_info ( void )

mysql_get_client_info() 返回一个字符串指出了客户端库的版本。

Example #1 mysql_get_client_info() 例子

<?php
    printf ("MySQL client info: %s\n", mysql_get_client_info());
?>

以上例子将产生如下输出：

MySQL client info: 3.23.39

参见 mysql_get_host_info()，mysql_get_proto_info() 和 mysql_get_server_info()。

mysql_free_result
mysql_get_host_info
MySQL 函数


取得 MySQL 主机信息

mysql_get_client_info
mysql_get_proto_info
MySQL 函数
PHP 手册

mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info — 取得 MySQL 主机信息

说明

string mysql_get_host_info ([ resource $link_identifier ] )

mysql_get_host_info() 返回一个字符串说明了连接 link_identifier 所使用的连接方式，包括服务器的主机名。如果省略 link_identifier ，则使用上一个打开的连接。

Example #1 mysql_get_host_info() 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    printf ("MySQL host info: %s\n", mysql_get_host_info());
?>

以上例子将产生如下输出：

MySQL host info: Localhost via UNIX socket

参见 mysql_get_client_info()，mysql_get_proto_info() 和 mysql_get_server_info()。

mysql_get_client_info
mysql_get_proto_info
MySQL 函数


取得 MySQL 协议信息

mysql_get_host_info
mysql_get_server_info
MySQL 函数
PHP 手册

mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info — 取得 MySQL 协议信息

说明

int mysql_get_proto_info ([ resource $link_identifier ] )

mysql_get_proto_info() 返回 link_identifier 所使用的协议版本。如果省略 link_identifier ，则使用上一个打开的连接。

Example #1 mysql_get_proto_info() 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    printf ("MySQL protocol version: %s\n", mysql_get_proto_info());
?>

以上例子将产生如下输出：

MySQL protocol version: 10

参见 mysql_get_client_info()，mysql_get_host_info() 和 mysql_get_server_info()。

mysql_get_host_info
mysql_get_server_info
MySQL 函数


取得 MySQL 服务器信息

mysql_get_proto_info
mysql_info
MySQL 函数
PHP 手册

mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info — 取得 MySQL 服务器信息

说明

string mysql_get_server_info ([ resource $link_identifier ] )

mysql_get_server_info() 返回 link_identifier 所使用的服务器版本。如果省略 link_identifier ，则使用上一个打开的连接。

Example #1 mysql_get_server_info() 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    printf ("MySQL server version: %s\n", mysql_get_server_info());
?>

以上例子将产生如下输出：

MySQL server version: 4.0.1-alpha

参见 mysql_get_client_info()，mysql_get_host_info() 和 mysql_get_proto_info()。

mysql_get_proto_info
mysql_info
MySQL 函数


取得最近一条查询的信息

mysql_get_server_info
mysql_insert_id
MySQL 函数
PHP 手册

mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info — 取得最近一条查询的信息

说明

string mysql_info ([ resource $link_identifier ] )

mysql_info() 返回通过给定的 link_identifier 所进行的最新一条查询的详细信息。如果没有指定 link_identifier ，则假定为上一个打开的连接。

mysql_info() 对以下列出的所有语句返回一个字符串。对于其它任何语句返回 FALSE。字符串的格式取决于给出的语句。

Example #1 相关的 MySQL 语句

INSERT INTO ... SELECT ...
字符串格式：Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
字符串格式：Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
字符串格式：Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
字符串格式：Records: 60 Duplicates: 0 Warnings: 0
UPDATE
字符串格式：Rows matched: 65 Changed: 65 Warnings: 0

上例中的数字只是为了演示的目的，实际的值取决于查询。

Note: mysql_info() 对于 INSERT ... VALUES 语句仅在该语句中列出了多个值的情况下返回一个非 FALSE 的值。

参见 mysql_affected_rows()。

mysql_get_server_info
mysql_insert_id
MySQL 函数


取得上一步 INSERT 操作产生的 ID

mysql_info
mysql_list_dbs
MySQL 函数
PHP 手册

mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id — 取得上一步 INSERT 操作产生的 ID

说明

int mysql_insert_id ([ resource $link_identifier ] )

mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier ，则使用上一个打开的连接。

如果上一查询没有产生 AUTO_INCREMENT 的值，则 mysql_insert_id() 返回 0。如果需要保存该值以后使用，要确保在产生了值的查询之后立即调用 mysql_insert_id()。

Note: MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值，并且不会在查询语句之间被重置。

Warning

mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成 long（PHP 中命名为 int）。如果 AUTO_INCREMENT 的列的类型是 BIGINT，则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。

Example #1 mysql_insert_id() 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    mysql_query("INSERT INTO mytable (product) values ('kossu')");
    printf ("Last inserted record has id %d\n", mysql_insert_id());
?>

参见 mysql_query()。

mysql_info
mysql_list_dbs
MySQL 函数


列出 MySQL 服务器中所有的数据库

mysql_insert_id
mysql_list_fields
MySQL 函数
PHP 手册

mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs — 列出 MySQL 服务器中所有的数据库

说明

resource mysql_list_dbs ([ resource $link_identifier ] )

mysql_list_dbs() 将返回一个结果指针，包含了当前 MySQL 进程中所有可用的数据库。用 mysql_tablename() 函数来遍历此结果指针，或者任何使用结果表的函数，例如 mysql_fetch_array()。

Example #1 mysql_list_dbs() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

以上例子将产生如下输出：

database1
database2
database3
...

Note: 以上代码用起来和 mysql_fetch_row() 或类似函数一样简单。

为向下兼容仍然可以使用 mysql_listdbs()，但反对这样做。

参见 mysql_db_name()。

mysql_insert_id
mysql_list_fields
MySQL 函数


列出 MySQL 结果中的字段

mysql_list_dbs
mysql_list_processes
MySQL 函数
PHP 手册

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fields — 列出 MySQL 结果中的字段

说明

resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

mysql_list_fields() 取得给定表名的信息。参数是数据库名和表名。返回一个结果指针，可以用于 mysql_field_flags()，mysql_field_len()，mysql_field_name() 和 mysql_field_type()。

Example #1 mysql_list_fields() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$fields = mysql_list_fields("database1", "table1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo mysql_field_name($fields, $i) . "\n";
}

以上例子将产生如下输出：

field1
field2
field3
...

为向下兼容仍然可以使用 mysql_listfields()，但反对这样做。

Note: mysql_list_fields() 函数已过时。最好用 mysql_query() 来发出一条 SHOW COLUMNS FROM table [LIKE 'name'] 的 SQL 语句来代替。

mysql_list_dbs
mysql_list_processes
MySQL 函数


列出 MySQL 进程

mysql_list_fields
mysql_list_tables
MySQL 函数
PHP 手册

mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes — 列出 MySQL 进程

说明

resource mysql_list_processes ([ resource $link_identifier ] )

mysql_list_processes() 返回一个结果指针，说明了当前服务器的线程。

Example #1 mysql_list_processes() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
       $row["Command"], $row["Time"]);
}
mysql_free_result ($result);
?>

以上例子将产生如下输出：

1 localhost test Processlist 0
4 localhost mysql sleep 5

参见 mysql_thread_id()。

mysql_list_fields
mysql_list_tables
MySQL 函数


列出 MySQL 数据库中的表

mysql_list_processes
mysql_num_fields
MySQL 函数
PHP 手册

mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tables — 列出 MySQL 数据库中的表

说明

resource mysql_list_tables ( string $database [, resource $link_identifier ] )

mysql_list_tables() 接受一个数据库名并返回和 mysql_query() 函数很相似的一个结果指针。用 mysql_tablename() 函数来遍历此结果指针，或者任何使用结果表的函数，例如 mysql_fetch_array()。

database 参数是需要被取得其中的的表名的数据库名。如果失败 mysql_list_tables() 返回 FALSE。

为向下兼容仍然可以使用本函数的别名 mysql_listtables()，但反对这样做。

Note: 该函数已经被删除了，请不要再使用该函数。您可以用命令 SHOW TABLES FROM DATABASE 来实现该函数的功能。

Example #1 mysql_list_tables() 例子

<?php
    $dbname = 'mysql_dbname';

    if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
        print 'Could not connect to mysql';
        exit;
    }

    $result = mysql_list_tables($dbname);

    if (!$result) {
        print "DB Error, could not list tables\n";
        print 'MySQL Error: ' . mysql_error();
        exit;
    }

    while ($row = mysql_fetch_row($result)) {
        print "Table: $row[0]\n";
    }

    mysql_free_result($result);
?>

参见 mysql_list_dbs() 和 mysql_tablename()。

mysql_list_processes
mysql_num_fields
MySQL 函数


取得结果集中字段的数目

mysql_list_tables
mysql_num_rows
MySQL 函数
PHP 手册

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields — 取得结果集中字段的数目

说明

int mysql_num_fields ( resource $result )

mysql_num_fields() 返回结果集中字段的数目。

参见 mysql_select_db()，mysql_query()，mysql_fetch_field() 和 mysql_num_rows()。

为向下兼容仍然可以使用 mysql_numfields()，但反对这样做。

mysql_list_tables
mysql_num_rows
MySQL 函数


取得结果集中行的数目

mysql_num_fields
mysql_pconnect
MySQL 函数
PHP 手册

mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rows — 取得结果集中行的数目

说明

int mysql_num_rows ( resource $result )

mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT，UPDATE 或者 DELETE 查询所影响到的行的数目，用 mysql_affected_rows()。

Example #1 mysql_num_rows() 例子

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Note: 如果使用 mysql_unbuffered_query()，则直到结果集中的所有行都被提取后 mysql_num_rows() 才能返回正确的值。

参见 mysql_affected_rows()，mysql_connect()，mysql_data_seek()，mysql_select_db() 和 mysql_query()。

为向下兼容仍然可以使用 mysql_numrows()，但反对这样做。

mysql_num_fields
mysql_pconnect
MySQL 函数


打开一个到 MySQL 服务器的持久连接

mysql_num_rows
mysql_ping
MySQL 函数
PHP 手册

mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect — 打开一个到 MySQL 服务器的持久连接

说明

resource mysql_pconnect ([ string $server [, string $username [, string $password [, int $client_flags ]]]] )

如果成功则返回一个正的 MySQL 持久连接标识符，出错则返回 FALSE。

mysql_pconnect() 建立一个到 MySQL 服务器的连接。如果没有提供可选参数，则使用如下默认值：server = 'localhost:3306'，username = 服务器进程所有者的用户名，password = 空密码。client_flags 参数可以是以下常量的组合：MYSQL_CLIENT_COMPRESS，MYSQL_CLIENT_IGNORE_SPACE 或者 MYSQL_CLIENT_INTERACTIVE。

server 参数也可以包括端口号，例如 "hostname:port"，或者是本机套接字的的路径，例如 ":/path/to/socket"。

Note: 对 ":port" 的支持是 3.0B4 版添加的。
对 ":/path/to/socket" 的支持是 3.0.10 版添加的。

mysql_pconnect() 和 mysql_connect() 非常相似，但有两个主要区别。

首先，当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的（持久）连接，如果找到，则返回此连接标识而不打开新连接。

其次，当脚本执行完毕后到 SQL 服务器的连接不会被关闭，此连接将保持打开以备以后使用（mysql_close() 不会关闭由 mysql_pconnect() 建立的连接）。

可选参数 client_flags 自 PHP 4.3.0 版起可用。

此种连接称为“持久的”。

Note: 注意，此种连接仅能用于模块版本的 PHP。更多信息参见数据库持久连接一节。

Warning

使用持久连接需要调整一些 Apache 和 MySQL 的配置以使不会超出 MySQL 所允许的连接数目。

mysql_num_rows
mysql_ping
MySQL 函数


Ping 一个服务器连接，如果没有连接则重新连接

mysql_pconnect
mysql_query
MySQL 函数
PHP 手册

mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping — Ping 一个服务器连接，如果没有连接则重新连接

说明

bool mysql_ping ([ resource $ link_identifier ] )

mysql_ping() 检查到服务器的连接是否正常。如果断开，则自动尝试连接。本函数可用于空闲很久的脚本来检查服务器是否关闭了连接，如果有必要则重新连接上。如果到服务器的连接可用则 mysql_ping() 返回 TRUE，否则返回 FALSE。

参见 mysql_thread_id() 和 mysql_list_processes()。

mysql_pconnect
mysql_query
MySQL 函数


发送一条 MySQL 查询

mysql_ping
mysql_real_escape_string
MySQL 函数
PHP 手册

mysql_query

(PHP 4, PHP 5)

mysql_query — 发送一条 MySQL 查询

说明

resource mysql_query ( string $query [, resource $link_identifier ] )

mysql_query() 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。如果没有指定 link_identifier ，则使用上一个打开的连接。如果没有打开的连接，本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。

Note: 查询字符串不应以分号结束。

mysql_query() 仅对 SELECT，SHOW，EXPLAIN 或 DESCRIBE 语句返回一个资源标识符，如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句，mysql_query() 在执行成功时返回 TRUE，出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。

以下查询语法上有错，因此 mysql_query() 失败并返回 FALSE：

Example #1 mysql_query() 例子

<php
$result = mysql_query("SELECT * WHERE 1=1")
    or die("Invalid query: " . mysql_error());
?>

以下查询当 my_col 并不是表 my_tbl 中的列时语义上有错，因此 mysql_query() 失败并返回 FALSE：

Example #2 mysql_query()

<?php
$result = mysql_query("SELECT my_col FROM my_tbl")
    or die("Invalid query: " . mysql_error());
?>

如果没有权限访问查询语句中引用的表时，mysql_query() 也会返回 FALSE。

假定查询成功，可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行，或者调用 mysql_affected_rows() 来查看对应于 DELETE，INSERT，REPLACE 或 UPDATE 语句影响到了多少行。

仅对 SELECT，SHOW，DESCRIBE 或 EXPLAIN 语句 mysql_query() 才会返回一个新的结果标识符，可以将其传递给 mysql_fetch_array() 和其它处理结果表的函数。处理完结果集后可以通过调用 mysql_free_result() 来释放与之关联的资源，尽管脚本执行完毕后会自动释放内存。

参见 mysql_num_rows()，mysql_affected_rows()，mysql_unbuffered_query()，mysql_free_result()，mysql_fetch_array()，mysql_fetch_row()，mysql_fetch_assoc()，mysql_result()，mysql_select_db() 和 mysql_connect()。

mysql_ping
mysql_real_escape_string
MySQL 函数


转义 SQL 语句中使用的字符串中的特殊字符，并考虑到连接的当前字符集

mysql_query
mysql_result
MySQL 函数
PHP 手册

mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string — 转义 SQL 语句中使用的字符串中的特殊字符，并考虑到连接的当前字符集

说明

string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

本函数将 unescaped_string 中的特殊字符转义，并计及连接的当前字符集，因此可以安全用于 mysql_query()。

Note: mysql_real_escape_string() 并不转义 % 和 _。

Example #1 mysql_real_escape_string() 例子

<?php
$item = "Zak's and Derick's Laptop";
$escaped_item = mysql_real_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>

以上例子将产生如下输出：

Escaped string: Zak\'s and Derick\'s Laptop

参见 mysql_escape_string() 和 mysql_character_set_name()。

mysql_query
mysql_result
MySQL 函数


取得结果数据

mysql_real_escape_string
mysql_select_db
MySQL 函数
PHP 手册

mysql_result

(PHP 4, PHP 5)

mysql_result — 取得结果数据

说明

mixed mysql_result ( resource $result , int $row [, mixed $field ] )

mysql_result() 返回 MySQL 结果集中一个单元的内容。字段参数可以是字段的偏移量或者字段名，或者是字段表点字段名（tablename.fieldname）。如果给列起了别名（'select foo as bar from...'），则用别名替代列名。

当作用于很大的结果集时，应该考虑使用能够取得整行的函数（在下边指出）。这些函数在一次函数调用中返回了多个单元的内容，比 mysql_result() 快得多。此外注意在字段参数中指定数字偏移量比指定字段名或者 tablename.fieldname 要快得多。

调用 mysql_result() 不能和其它处理结果集的函数混合调用。

Example #1 mysql_result() 例子

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
            or die("Could not connect: " . mysql_error());

    $result = mysql_query("SELECT name FROM work.employee")
            or die("Could not query: . mysql_error());

    echo mysql_result($result,2); // outputs third employee's name

    mysql_close($link);
?>

推荐使用高性能的替代函数：mysql_fetch_row()，mysql_fetch_array()，mysql_fetch_assoc() 和 mysql_fetch_object()。

mysql_real_escape_string
mysql_select_db
MySQL 函数


选择 MySQL 数据库

mysql_result
mysql_set_charset
MySQL 函数
PHP 手册

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db — 选择 MySQL 数据库

说明

bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

如果成功则返回 TRUE，失败则返回 FALSE。

mysql_select_db() 设定与指定的连接标识符所关联的服务器上的当前激活数据库。如果没有指定连接标识符，则使用上一个打开的连接。如果没有打开的连接，本函数将无参数调用 mysql_connect() 来尝试打开一个并使用之。

每个其后的 mysql_query() 调用都会作用于活动数据库。

Example #1 mysql_select_db() 例子

<?php

$lnk = mysql_connect('localhost', 'mysql_user', 'mysql_password')
       or die ('Not connected : ' . mysql_error());

// make foo the current db
mysql_select_db('foo', $lnk) or die ('Can\'t use foo : ' . mysql_error());

?>

参见 mysql_connect()，mysql_pconnect() 和 mysql_query()。

为向下兼容仍然可以使用 mysql_selectdb()，但反对这样做。

mysql_result
mysql_set_charset
MySQL 函数


Sets the client character set

mysql_select_db
mysql_stat
MySQL 函数
PHP 手册

mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charset — Sets the client character set

说明

bool mysql_set_charset ( string $charset [, resource $link_identifier ] )

Sets the default character set for the current connection.

参数

charset

A valid character set name.

link_identifier

MySQL 的连接标识符。如果没有指定，默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接，函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外，没有找到连接或无法建立连接，系统发出 E_WARNING 级别的警告信息。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: This function requires MySQL 5.0.7 or later.

Note: This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not recommended.

参见

  • mysql_client_encoding() - 返回字符集的名称
  • » List of character sets that MySQL supports

mysql_select_db
mysql_stat
MySQL 函数


取得当前系统状态

mysql_set_charset
mysql_tablename
MySQL 函数
PHP 手册

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat — 取得当前系统状态

说明

string mysql_stat ([ resource $link_identifier ] )

mysql_stat() 返回当前服务器状态。

Note: mysql_stat() 目前只返回 uptime，threads，queries，open tables，flush tables 和 queries per second。要得到其它状态变量的完整列表，只能使用 SQL 命令 SHOW STATUS。

Example #1 mysql_stat() 例子

<?php
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

以上例子将产生如下输出：

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

mysql_set_charset
mysql_tablename
MySQL 函数


取得表名

mysql_stat
mysql_thread_id
MySQL 函数
PHP 手册

mysql_tablename

(PHP 4, PHP 5)

mysql_tablename — 取得表名

说明

string mysql_tablename ( resource $result , int $i )

mysql_tablename() 接受 mysql_list_tables() 返回的结果指针以及一个整数索引作为参数并返回表名。可以用 mysql_num_rows() 函数来判断结果指针中的表的数目。用 mysql_tablename() 函数来遍历此结果指针，或者任何处理结果表的函数，例如 mysql_fetch_array()。

Example #1 mysql_tablename() 例子

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");
    $result = mysql_list_tables("mydb");

    for ($i = 0; $i < mysql_num_rows($result); $i++)
        printf ("Table: %s\n", mysql_tablename($result, $i));

    mysql_free_result($result);
?>

参见 mysql_list_tables()。

mysql_stat
mysql_thread_id
MySQL 函数


返回当前线程的 ID

mysql_tablename
mysql_unbuffered_query
MySQL 函数
PHP 手册

mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id — 返回当前线程的 ID

说明

int mysql_thread_id ([ resource $link_identifier ] )

mysql_thread_id() 返回当前线程的 ID。如果连接丢失了并用 mysql_ping() 重新连接上，线程 ID 会改变。这意味着不能取得线程的 ID 后保存起来备用。当需要的时候再去获取之。

Example #1 mysql_thread_id() 例子

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf ("current thread id is %d\n", $thread_id);
}
?>

以上例子将产生如下输出：

current thread id is 73

参见 mysql_ping() 和 mysql_list_processes()。

mysql_tablename
mysql_unbuffered_query
MySQL 函数


向 MySQL 发送一条 SQL 查询，并不获取和缓存结果的行

mysql_thread_id
Mysqli
MySQL 函数
PHP 手册

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — 向 MySQL 发送一条 SQL 查询，并不获取和缓存结果的行

说明

resource mysql_unbuffered_query ( string $query [, resource $link_identifier ] )

mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询 query ，但不像 mysql_query() 那样自动获取并缓存结果集。一方面，这在处理很大的结果集时会节省可观的内存。另一方面，可以在获取第一行后立即对结果集进行操作，而不用等到整个 SQL 语句都执行完毕。当使用多个数据库连接时，必须指定可选参数 link_identifier 。

Note: mysql_unbuffered_query() 的好处是有代价的：在 mysql_unbuffered_query() 返回的结果集之上不能使用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 发送一条新的 SQL 查询之前，必须提取掉所有未缓存的 SQL 查询所产生的结果行。

参见 mysql_query()。

mysql_thread_id
Mysqli
MySQL 函数


MySQL Improved Extension

  • 简介
  • Overview
  • The MySQL Native Driver
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • The MySQLi Extension Function Summary
  • MySQLi — The MySQLi class
    • mysqli->affected_rows — Gets the number of affected rows in a previous MySQL operation
    • mysqli::autocommit — Turns on or off auto-commiting database modifications
    • mysqli::change_user — Changes the user of the specified database connection
    • mysqli::character_set_name — Returns the default character set for the database connection
    • mysqli::close — Closes a previously opened database connection
    • mysqli::commit — Commits the current transaction
    • mysqli->connect_errno — Returns the error code from last connect call
    • mysqli->connect_error — Returns a string description of the last connect error
    • mysqli::__construct — Open a new connection to the MySQL server
    • mysqli::debug — Performs debugging operations
    • mysqli::dump_debug_info — Dump debugging information into the log
    • mysqli->errno — Returns the error code for the most recent function call
    • mysqli->error — Returns a string description of the last error
    • mysqli->field_count — Returns the number of columns for the most recent query
    • mysqli::get_cache_stats — Returns client Zval cache statistics
    • mysqli::get_charset — Returns a character set object
    • mysqli::get_client_info — Returns the MySQL client version as a string
    • mysqli::get_client_stats — Returns client per-process statistics
    • mysqli::get_client_version — Get MySQL client info
    • mysqli::get_connection_stats — Returns statistics about the client connection
    • mysqli->host_info — Returns a string representing the type of connection used
    • mysqli->protocol_version — Returns the version of the MySQL protocol used
    • mysqli->server_info — Returns the version of the MySQL server
    • mysqli->server_version — Returns the version of the MySQL server as an integer
    • mysqli::get_warnings — 说明
    • mysqli->info — Retrieves information about the most recently executed query
    • mysqli::init — Initializes MySQLi and returns a resource for use with mysqli_real_connect()
    • mysqli->insert_id — Returns the auto generated id used in the last query
    • mysqli::kill — Asks the server to kill a MySQL thread
    • mysqli::more_results — Check if there are any more query results from a multi query
    • mysqli::multi_query — Performs a query on the database
    • mysqli::next_result — Prepare next result from multi_query
    • mysqli::options — Set options
    • mysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • mysqli::poll — Poll connections
    • mysqli::prepare — Prepare a SQL statement for execution
    • mysqli::query — Performs a query on the database
    • mysqli::real_connect — Opens a connection to a mysql server
    • mysqli::real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
    • mysqli::real_query — Execute an SQL query
    • mysqli::reap_async_query — Get result from async query
    • mysqli::rollback — Rolls back current transaction
    • mysqli::select_db — Selects the default database for database queries
    • mysqli::set_charset — Sets the default client character set
    • mysqli::set_local_infile_default — Unsets user defined handler for load local infile command
    • mysqli::set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command
    • mysqli->sqlstate — Returns the SQLSTATE error from previous MySQL operation
    • mysqli::ssl_set — Used for establishing secure connections using SSL
    • mysqli::stat — Gets the current system status
    • mysqli::stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare
    • mysqli::store_result — Transfers a result set from the last query
    • mysqli::thread_id — Returns the thread ID for the current connection
    • mysqli::thread_safe — Returns whether thread safety is given or not
    • mysqli::use_result — Initiate a result set retrieval
    • mysqli::warning_count — Returns the number of warnings from the last query for the given link
  • MySQLi_STMT — The MySQLi_STMT class
    • mysqli_stmt->affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
    • mysqli_stmt::attr_get — Used to get the current value of a statement attribute
    • mysqli_stmt::attr_set — Used to modify the behavior of a prepared statement
    • mysqli_stmt::bind_param — Binds variables to a prepared statement as parameters
    • mysqli_stmt::bind_result — Binds variables to a prepared statement for result storage
    • mysqli_stmt::close — Closes a prepared statement
    • mysqli_stmt::data_seek — Seeks to an arbitrary row in statement result set
    • mysqli_stmt->errno — Returns the error code for the most recent statement call
    • mysqli_stmt->error — Returns a string description for last statement error
    • mysqli_stmt->execute — Executes a prepared Query
    • mysqli_stmt::fetch — Fetch results from a prepared statement into the bound variables
    • mysqli_stmt->field_count — Returns the number of field in the given statement
    • stmt::free_result — Frees stored result memory for the given statement handle
    • mysqli_stmt::get_warnings — 说明
    • mysqli_stmt->insert_id — Get the ID generated from the previous INSERT operation
    • mysqli_stmt::num_rows — Return the number of rows in statements result set
    • mysqli_stmt->param_count — Returns the number of parameter for the given statement
    • mysqli_stmt::prepare — Prepare a SQL statement for execution
    • mysqli_stmt::reset — Resets a prepared statement
    • mysqli_stmt::result_metadata — Returns result set metadata from a prepared statement
    • mysqli_stmt::send_long_data — Send data in blocks
    • mysqli_stmt::sqlstate — Returns SQLSTATE error from previous statement operation
    • mysqli_stmt::store_result — Transfers a result set from a prepared statement
  • MySQLi_Result — The MySQLi_Result class
    • mysqli_result->current_field — Get current field offset of a result pointer
    • mysqli_result::data_seek — Adjusts the result pointer to an arbitary row in the result
    • mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
    • mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
    • mysqli_result::fetch_assoc — Fetch a result row as an associative array
    • mysqli_result::fetch_field_direct — Fetch meta-data for a single field
    • mysqli_result::fetch_field — Returns the next field in the result set
    • mysqli_result::fetch_fields — Returns an array of objects representing the fields in a result set
    • mysqli_result::fetch_object — Returns the current row of a result set as an object
    • mysqli_result::fetch_row — Get a result row as an enumerated array
    • mysqli_result->field_count — Get the number of fields in a result
    • mysqli_result::field_seek — Set result pointer to a specified field offset
    • mysqli_result::free — Frees the memory associated with a result
    • mysqli_result->lengths — Returns the lengths of the columns of the current row in the result set
    • mysqli_result->num_rows — Gets the number of rows in a result
  • MySQLi_Driver — The MySQLi_Driver class
    • mysqli_driver::embedded_server_end — Stop embedded server
    • mysqli_driver::embedded_server_start — Initialize and start embedded server
  • Aliases and deprecated Mysqli 函数
    • mysqli_bind_param — Alias for mysqli_stmt_bind_param
    • mysqli_bind_result — Alias for mysqli_stmt_bind_result
    • mysqli_client_encoding — Alias of mysqli_character_set_name
    • mysqli_disable_reads_from_master — Disable reads from master
    • mysqli_disable_rpl_parse — Disable RPL parse
    • mysqli_enable_reads_from_master — Enable reads from master
    • mysqli_enable_rpl_parse — Enable RPL parse
    • mysqli_escape_string — Alias of mysqli_real_escape_string
    • mysqli_execute — Alias for mysqli_stmt_execute
    • mysqli_fetch — Alias for mysqli_stmt_fetch
    • mysqli_get_metadata — Alias for mysqli_stmt_result_metadata
    • mysqli_master_query — Enforce execution of a query on the master in a master/slave setup
    • mysqli_param_count — Alias for mysqli_stmt_param_count
    • mysqli_report — Enables or disables internal report functions
    • mysqli_rpl_parse_enabled — Check if RPL parse is enabled
    • mysqli_rpl_probe — RPL probe
    • mysqli_rpl_query_type — Returns RPL query type
    • mysqli_send_long_data — Alias for mysqli_stmt_send_long_data
    • mysqli_send_query — Send the query and return
    • mysqli_set_opt — Alias of mysqli_options
    • mysqli_slave_query — Force execution of a query on a slave in a master/slave setup
mysql_unbuffered_query
简介
与具体数据库系统相关的扩展


简介

The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at » http://www.mysql.com/

An overview of software available for using MySQL from PHP can be found at Overview

Documentation for MySQL can be found at » http://dev.mysql.com/doc/.

Parts of this documentation included from MySQL manual with permissions of MySQL AB.

Examples

All Examples in the MySQLI documentation use the world database from MySQL AB. The world database can be found at » http://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Mysqli
Overview
Mysqli


Overview

This section provides an introduction to the options available to you when developing a PHP application that needs to interact with a MySQL database.

What is an API?

An Application Programming Interface, or API, defines the classes, methods, functions and variables that your application will need to call in order to carry out its desired task. In the case of PHP applications that need to communicate with databases the necessary APIs are usually exposed via PHP extensions.

APIs can be procedural or object-oriented. With a procedural API you call functions to carry out tasks, with the object-oriented API you instantiate classes and then call methods on the resulting objects. Of the two the latter is usually the preferred interface, as it is more modern and leads to better organised code.

When writing PHP applications that need to connect to the MySQL server there are several API options available. This document discusses what is available and how to select the best solution for your application.

What is a Connector?

In the MySQL documentation, the term connector refers to a piece of software that allows your application to connect to the MySQL database server. MySQL provides connectors for a variety of languages, including PHP.

If your PHP application needs to communicate with a database server you will need to write PHP code to perform such activities as connecting to the database server, querying the database and other database-related functions. Software is required to provide the API that your PHP application will use, and also handle the communication between your application and the database server, possibly using other intermediate libraries where necessary. This software is known generically as a connector, as it allows your application to connect to a database server.

What is a Driver?

A driver is a piece of software designed to communicate with a specific type of database server. The driver may also call a library, such as the MySQL Client Library or the MySQL Native Driver. These libraries implement the low-level protocol used to communicate with the MySQL database server.

By way of an example, the PHP Data Objects (PDO) database abstraction layer may use one of several database-specific drivers. One of the drivers it has available is the PDO MYSQL driver, which allows it to interface with the MySQL server.

Sometimes people use the terms connector and driver interchangeably, this can be confusing. In the MySQL-related documentation the term "driver" is reserved for software that provides the database-specific part of a connector package.

What is an Extension?

In the PHP documentation you will come across another term - extension. The PHP code consists of a core, with optional extensions to the core functionality. PHP's MySQL-related extensions, such as the mysqli extension, and the mysql extension, are implemented using the PHP extension framework.

An extension typically exposes an API to the PHP programmer, to allow its facilities to be used programmatically. However, some extensions which use the PHP extension framework do not expose an API to the PHP programmer.

The PDO MySQL driver extension, for example, does not expose an API to the PHP programmer, but provides an interface to the PDO layer above it.

The terms API and extension should not be taken to mean the same thing, as an extension may not necessarily expose an API to the programmer.

What are the main PHP API offerings for using MySQL?

There are three main API options when considering connecting to a MySQL database server:

  • PHP's MySQL Extension

  • PHP's mysqli Extension

  • PHP Data Objects (PDO)

Each has its own advantages and disadvantages. The following discussion aims to give a brief introduction to the key aspects of each API.

What is PHP's MySQL Extension?

This is the original extension designed to allow you to develop PHP applications that interact with a MySQL database. The mysql extension provides a procedural interface and is intended for use only with MySQL versions older than 4.1.3. This extension can be used with versions of MySQL 4.1.3 or newer, but not all of the latest MySQL server features will be available.

Note: If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use the mysqli extension instead.

The mysql extension source code is located in the PHP extension directory ext/mysql.

For further information on the mysql extension, see MySQL.

What is PHP's mysqli Extension?

The mysqli extension, or as it is sometimes known, the MySQL improved extension, was developed to take advantage of new features found in MySQL systems versions 4.1.3 and newer. The mysqli extension is included with PHP versions 5 and later.

The mysqli extension has a number of benefits, the key enhancements over the mysql extension being:

  • Object-oriented interface

  • Support for Prepared Statements

  • Support for Multiple Statements

  • Support for Transactions

  • Enhanced debugging capabilities

  • Embedded server support

Note: If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use this extension.

As well as the object-oriented interface the extension also provides a procedural interface.

The mysqli extension is built using the PHP extension framework, its source code is located in the directory ext/mysqli.

For further information on the mysqli extension, see Mysqli.

What is PDO?

PHP Data Objects, or PDO, is a database abstraction layer specifically for PHP applications. PDO provides a consistent API for your PHP application regardless of the type of database server your application will connect to. In theory, if you are using the PDO API, you could switch the database server you used, from say Firebird to MySQL, and only need to make minor changes to your PHP code.

Other examples of database abstraction layers include JDBC for Java applications and DBI for Perl.

While PDO has its advantages, such as a clean, simple, portable API, its main disadvantage is that it doesn't allow you to use all of the advanced features that are available in the latest versions of MySQL server. For example, PDO does not allow you to use MySQL's support for Multiple Statements.

PDO is implemented using the PHP extension framework, its source code is located in the directory ext/pdo.

For further information on PDO, see the PDO.

What is the PDO MYSQL driver?

The PDO MYSQL driver is not an API as such, at least from the PHP programmer's perspective. In fact the PDO MYSQL driver sits in the layer below PDO itself and provides MySQL-specific functionality. The programmer still calls the PDO API, but PDO uses the PDO MYSQL driver to carry out communication with the MySQL server.

The PDO MYSQL driver is one of several available PDO drivers. Other PDO drivers available include those for the Firebird and PostgreSQL database servers.

The PDO MYSQL driver is implemented using the PHP extension framework. Its source code is located in the directory ext/pdo_mysql. It does not expose an API to the PHP programmer.

For further information on the PDO MYSQL driver, see MySQL (PDO).

What is PHP's MySQL Native Driver?

In order to communicate with the MySQL database server the mysql extension, mysqli and the PDO MYSQL driver each use a low-level library that implements the required protocol. In the past, the only available library was the MySQL Client Library, otherwise known as libmysql.

However, the interface presented by libmysql was not optimized for communication with PHP applications, as libmysql was originally designed with C applications in mind. For this reason the MySQL Native Driver, mysqlnd, was developed as an alternative to libmysql for PHP applications.

The mysql extension, the mysqli extension and the PDO MySQL driver can each be individually configured to use either libmysql or mysqlnd. As mysqlnd is designed specifically to be utilised in the PHP system it has numerous memory and speed enhancements over libmysql. You are strongly encouraged to take advantage of these improvements.

Note: The MySQL Native Driver can only be used with MySQL server versions 4.1.3 and later.

The MySQL Native Driver is implemented using the PHP extension framework. The source code is located in ext/mysqlnd. It does not expose an API to the PHP programmer.

Comparison of Features

The following table compares the functionality of the three main methods of connecting to MySQL from PHP:

 | PHP's mysqli Extension | PDO (Using PDO MySQL Driver and MySQL Native Driver) | PHP's MySQL Extension
PHP version introduced | 5.0 | 5.0 | Prior to 3.0
Included with PHP 5.x | yes | yes | Yes
Comes with PHP 6.0 | Yes | Yes | Yes
MySQL development status | Active development | Active development as of PHP 5.3 | Maintenance only
Recommended by MySQL for new projects | Yes - preferred option | Yes | No
API supports Charsets | Yes | Yes | No
API supports server-side Prepared Statements | Yes | Yes | No
API supports client-side Prepared Statements | No | Yes | No
API supports Stored Procedures | Yes | Yes | No
API supports Multiple Statements | Yes | Most | No
Supports all MySQL 4.1+ functionality | Yes | Most | No
简介
The MySQL Native Driver
Mysqli


The MySQL Native Driver

This section of the manual provides an overview of the MySQL Native Driver.

What is it?

MySQL Native Driver is a replacement for the MySQL Client Library (libmysql). MySQL Native Driver is part of the official PHP 5.3 and PHP 6 branches.

The MySQL database extensions MySQL extension, mysqli and PDO MYSQL all communicate with the MySQL server. In the past, this was done by the extension using the services provided by the MySQL Client Library. The extensions were compiled against the MySQL Client Library in order to use its client-server protocol.

With MySQL Native Driver there is now an alternative, as the MySQL database extensions can be compiled to use MySQL Native Driver instead of the MySQL Client Library.

MySQL Native Driver is written in C as a PHP extension.

What it is not

Although MySQL Native Driver is written as a PHP extension, it is important to note that it does not provide a new API to the PHP programmer. The programmer APIs for MySQL database connectivity are provided by the MySQL extension, mysqli and PDO MYSQL. These extensions can now use the services of MySQL Native Driver to communicate with the MySQL Server. Therefore, you should not think of MySQL Native Driver as an API.

Why use it?

Using the MySQL Native Driver offers a number of advantages over using the MySQL Client Library.

The older MySQL Client Library was written by MySQL AB and so was released under the MySQL license. This ultimately led to MySQL support being disabled by default in PHP. However, the MySQL Native Driver has been developed as part of the PHP project, and is therefore released under the PHP license. This removes licensing issues that have been problematic in the past.

Also, in the past, you needed to build the MySQL database extensions against a copy of the MySQL Client Library. This typically meant you needed to have MySQL installed on a machine where you were building the PHP source code. Also, when your PHP application was running, the MySQL database extensions would call down to the MySQL Client library file at run time, so the file needed to be installed on your system. With MySQL Native Driver that is no longer the case as it is included as part of the standard distribution. So you do not need MySQL installed in order to build PHP or run PHP database applications.

Because MySQL Native Driver is written as a PHP extension, it is tightly coupled to the workings of PHP. This leads to gains in efficiency, especially when it comes to memory usage, as the driver uses the PHP memory management system. It also supports the PHP memory limit. Using MySQL Native Driver leads to comparable or better performance than using MySQL Client Library, it always ensures the most efficient use of memory. One example of the memory efficiency is the fact that when using the MySQL Client Library, each row is stored in memory twice, whereas with the MySQL Native Driver each row is only stored once in memory.

Special features

MySQL Native Driver also provides some special features not available when the MySQL database extensions use MySQL Client Library. These special features are listed below:

  • Improved persistent connections

  • The special function mysqli_fetch_all()

  • Performance statistics calls:
mysqli_get_cache_stats(),
mysqli_get_client_stats(),
mysqli_get_connection_stats()

The performance statistics facility can prove to be very useful in identifying performance bottlenecks.

MySQL Native Driver also allows for persistent connections when used with the mysqli extension.

Installation on Unix

By default the MySQL database extensions are configured to use MySQL Client Library. In order to use the MySQL Native Driver, PHP needs to be built specifying that the MySQL database extensions are compiled with MySQL Native Driver support. This is done through configuration options prior to building the PHP source code.

For example, to build the MySQL extension, mysqli and PDO MYSQL using the MySQL Native Driver, the following command would be given:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[other options]

Installation on Windows

In the official PHP distributions from 5.3 onwards, MySQL Native Driver is enabled by default, so no additional configuration is required to use it. All MySQL database extensions will use MySQL Native Driver in this case.

Using Persistent Connections

The MySQL database extensions do not support persistent connections when used with the MySQL Client Library. However, they do when using MySQL Native Driver. When creating a connection the hostname is prepended with "p:". This is demonstrated by the following code snippet, which creates a new connection using mysqli:

$host="p:localhost";
$port=3306;
$socket="/tmp/mysql.sock";
$user="root";
$password="password";
$dbname="test";

$conn = new mysqli($host, $user, $password, $dbname, $port, $socket)
or die ('Could not connect to the database server' . mysqli_connect_error());

Using mysqli_fetch_all()

If you are using mysqli with the MySQL Native Driver, you have access to the new API call mysqli_fetch_all().

As mysqli_fetch_all() returns all the rows as an array in a single step, it may consume more memory than some similar functions such as mysqli_fetch_array(), which only returns one row at a time from the result set. Further, if you need to iterate over the result set, you will need a looping construct that will further impact performance. For these reasons mysqli_fetch_all() should only be used in those situations where the fetched result set will be sent to another layer for processing.

Using Statistical Data

MySQL Native Driver contains support for gathering statistics on the communication between the client and the server. The statistics gathered are of three main types:

  • Client statistics

  • Connection statistics

  • Zval cache statistics

If you are using the mysqli extension, these statistics can be obtained through three API calls:

  • mysqli_get_client_stats()

  • mysqli_get_connection_stats()

  • mysqli_get_cache_stats()

Accessing Client Statistics

To access client statistics, you need to call mysqli_get_client_stats(). The function call does not require any parameters.

The function returns an associative array that contains the name of the statistic as the key and the statistical data as the value.

Client statistics can also be accessed by calling the phpinfo() function.

Accessing Connection Statistics

To access connection statistics call mysqli_get_connection_stats(). This takes the database connection handle as the parameter.

The function returns an associative array that contains the name of the statistic as the key and the statistical data as the value.

Accessing Zval Cache Statistics

The MySQL Native Driver also collects statistics from its internal Zval cache. These statistics can be accessed by calling mysqli_get_cache_stats().

The Zval cache statistics obtained may lead to a tweaking of php.ini settings related to the Zval cache, resulting in better performance.

Statistics returned by MySQL Native Driver

The following table shows a list of statistics returned by the
mysqli_get_client_stats(),
mysqli_get_connections_stats() and
mysqli_get_cache_stats() functions.

Statistic
bytes_sent
bytes_received
packets_sent
packets_received
protocol_overhead_in
protocol_overhead_out
bytes_received_ok_packet
bytes_received_eof_packet
bytes_received_rset_header_packet
bytes_received_rset_field_meta_packet
bytes_received_rset_row_packet
bytes_received_prepare_response_packet
bytes_received_change_user_packet
packets_sent_command
packets_received_ok
packets_received_eof
packets_received_rset_header
packets_received_rset_field_meta
packets_received_rset_row
packets_received_prepare_response
packets_received_change_user
result_set_queries
non_result_set_queries
no_index_used
bad_index_used
slow_queries
buffered_sets
unbuffered_sets
ps_buffered_sets
ps_unbuffered_sets
flushed_normal_sets
flushed_ps_sets
ps_prepared_never_executed
ps_prepared_once_executed
rows_fetched_from_server_normal
rows_fetched_from_server_ps
rows_buffered_from_client_normal
rows_buffered_from_client_ps
rows_fetched_from_client_normal_buffered
rows_fetched_from_client_normal_unbuffered
rows_fetched_from_client_ps_buffered
rows_fetched_from_client_ps_unbuffered
rows_fetched_from_client_ps_cursor
rows_skipped_normal
rows_skipped_ps
copy_on_write_saved
copy_on_write_performed
command_buffer_too_small
connect_success
connect_failure
connection_reused
reconnect
pconnect_success
active_connections
active_persistent_connections
explicit_close
implicit_close
disconnect_close
in_middle_of_command_close
explicit_free_result
implicit_free_result
explicit_stmt_close
implicit_stmt_close
mem_emalloc_count
mem_emalloc_ammount
mem_ecalloc_count
mem_ecalloc_ammount
mem_erealloc_count
mem_erealloc_ammount
mem_efree_count
mem_malloc_count
mem_malloc_ammount
mem_calloc_count
mem_calloc_ammount
mem_realloc_count
mem_realloc_ammount
mem_free_count
proto_text_fetched_null
proto_text_fetched_bit
proto_text_fetched_tinyint
proto_text_fetched_short
proto_text_fetched_int24
proto_text_fetched_int
proto_text_fetched_bigint
proto_text_fetched_decimal
proto_text_fetched_float
proto_text_fetched_double
proto_text_fetched_date
proto_text_fetched_year
proto_text_fetched_time
proto_text_fetched_datetime
proto_text_fetched_timestamp
proto_text_fetched_string
proto_text_fetched_blob
proto_text_fetched_enum
proto_text_fetched_set
proto_text_fetched_geometry
proto_text_fetched_other
proto_binary_fetched_null
proto_binary_fetched_bit
proto_binary_fetched_tinyint
proto_binary_fetched_short
proto_binary_fetched_int24
proto_binary_fetched_int
proto_binary_fetched_bigint
proto_binary_fetched_decimal
proto_binary_fetched_float
proto_binary_fetched_double
proto_binary_fetched_date
proto_binary_fetched_year
proto_binary_fetched_time
proto_binary_fetched_datetime
proto_binary_fetched_timestamp
proto_binary_fetched_string
proto_binary_fetched_blob
proto_binary_fetched_enum
proto_binary_fetched_set
proto_binary_fetched_geometry
proto_binary_fetched_other
Overview
安装/配置
Mysqli


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
The MySQL Native Driver
需求
Mysqli


需求

In order to have these functions available, you must compile PHP with support for the mysqli extension.

Note: The mysqli extension is designed to work with MySQL version 4.1.13 or newer, or 5.0.7 or newer. For previous versions, please see the MySQL extension documentation.

安装/配置
安装
安装/配置


安装

要安装 PHP 的 mysqli 扩展，配置时加上 --with-mysqli=mysql_config_path/mysql_config。其中 mysql_config_path 表示 mysql_config 程序的路径，该程序随 MySQL 大于 4.1 版本一起发布。

如果要同时安装 mysql 和 mysqli 扩展，必须使用同一个客户端库以避免冲突。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

MySQLi 配置选项
名称 | 默认值 | 可修改范围 | 更新日志
mysqli.max_links | "-1" | PHP_INI_SYSTEM | 自 PHP 5.0.0 起可用。
mysqli.default_port | "3306" | PHP_INI_ALL | 自 PHP 5.0.0 起可用。
mysqli.default_socket | NULL | PHP_INI_ALL | 自 PHP 5.0.0 起可用。
mysqli.default_host | NULL | PHP_INI_ALL | 自 PHP 5.0.0 起可用。
mysqli.default_user | NULL | PHP_INI_ALL | 自 PHP 5.0.0 起可用。
mysqli.default_pw | NULL | PHP_INI_ALL | 自 PHP 5.0.0 起可用。

以上 PHP_INI_* 常量的进一步细节及定义，见怎样修改配置设定一节。

以下是配置选项的简要解释。

mysqli.max_links integer

每个进程的 MySQL 连接的最大数目。

mysqli.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

mysqli.default_socket string

The default socket name to use when connecting to a local database server if no other socket name is specified.

mysqli.default_host string

The default server host to use when connecting to the database server if no other host is specified. Doesn't apply in safe mode.

mysqli.default_user string

The default user name to use when connecting to the database server if no other name is specified. Doesn't apply in safe mode.

mysqli.default_pw string

The default password to use when connecting to the database server if no other password is specified. Doesn't apply in safe mode.

安装
资源类型
安装/配置


预定义常量

MYSQLI_READ_DEFAULT_GROUP

Read options from the named group from my.cnf or the file specified with MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE

Read options from the named option file instead of from my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT

Connect timeout in seconds

MYSQLI_OPT_LOCAL_INFILE

Enables command LOAD LOCAL INFILE

MYSQLI_INIT_COMMAND

Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.

MYSQLI_CLIENT_SSL

Use SSL (encrypted protocol). This option should not be set by application programs; it is set internally in the MySQL client library

MYSQLI_CLIENT_COMPRESS

Use compression protocol

MYSQLI_CLIENT_INTERACTIVE

Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection. The client's session wait_timeout variable will be set to the value of the session interactive_timeout variable.

MYSQLI_CLIENT_IGNORE_SPACE

Allow spaces after function names. Makes all functions names reserved words.

MYSQLI_CLIENT_NO_SCHEMA

Don't allow the db_name.tbl_name.col_name syntax.

MYSQLI_CLIENT_MULTI_QUERIES

Allows multiple semicolon-delimited queries in a single mysqli_query() call.

MYSQLI_STORE_RESULT

For using buffered resultsets

MYSQLI_USE_RESULT

For using unbuffered resultsets

MYSQLI_ASSOC

Columns are returned into the array having the fieldname as the array index.

MYSQLI_NUM

Columns are returned into the array having an enumerated index.

MYSQLI_BOTH

Columns are returned into the array having both a numerical index and the fieldname as the associative index.

MYSQLI_NOT_NULL_FLAG

Indicates that a field is defined as NOT NULL

MYSQLI_PRI_KEY_FLAG

Field is part of a primary index

MYSQLI_UNIQUE_KEY_FLAG

Field is part of a unique index.

MYSQLI_MULTIPLE_KEY_FLAG

Field is part of an index.

MYSQLI_BLOB_FLAG

Field is defined as BLOB

MYSQLI_UNSIGNED_FLAG

Field is defined as UNSIGNED

MYSQLI_ZEROFILL_FLAG

Field is defined as ZEROFILL

MYSQLI_AUTO_INCREMENT_FLAG

Field is defined as AUTO_INCREMENT

MYSQLI_TIMESTAMP_FLAG

Field is defined as TIMESTAMP

MYSQLI_SET_FLAG

Field is defined as SET

MYSQLI_NUM_FLAG

Field is defined as NUMERIC

MYSQLI_PART_KEY_FLAG

Field is part of an multi-index

MYSQLI_GROUP_FLAG

Field is part of GROUP BY

MYSQLI_TYPE_DECIMAL

Field is defined as DECIMAL

MYSQLI_TYPE_NEWDECIMAL

Precision math DECIMAL or NUMERIC field (MySQL 5.0.3 and up)

MYSQLI_TYPE_BIT

Field is defined as BIT (MySQL 5.0.3 and up)

MYSQLI_TYPE_TINY

Field is defined as TINYINT

MYSQLI_TYPE_SHORT

Field is defined as SMALLINT

MYSQLI_TYPE_LONG

Field is defined as INT

MYSQLI_TYPE_FLOAT

Field is defined as FLOAT

MYSQLI_TYPE_DOUBLE

Field is defined as DOUBLE

MYSQLI_TYPE_NULL

Field is defined as DEFAULT NULL

MYSQLI_TYPE_TIMESTAMP

Field is defined as TIMESTAMP

MYSQLI_TYPE_LONGLONG

Field is defined as BIGINT

MYSQLI_TYPE_INT24

Field is defined as MEDIUMINT

MYSQLI_TYPE_DATE

Field is defined as DATE

MYSQLI_TYPE_TIME

Field is defined as TIME

MYSQLI_TYPE_DATETIME

Field is defined as DATETIME

MYSQLI_TYPE_YEAR

Field is defined as YEAR

MYSQLI_TYPE_NEWDATE

Field is defined as DATE

MYSQLI_TYPE_ENUM

Field is defined as ENUM

MYSQLI_TYPE_SET

Field is defined as SET

MYSQLI_TYPE_TINY_BLOB

Field is defined as TINYBLOB

MYSQLI_TYPE_MEDIUM_BLOB

Field is defined as MEDIUMBLOB

MYSQLI_TYPE_LONG_BLOB

Field is defined as LONGBLOB

MYSQLI_TYPE_BLOB

Field is defined as BLOB

MYSQLI_TYPE_VAR_STRING

Field is defined as VARCHAR

MYSQLI_TYPE_STRING

Field is defined as CHAR

MYSQLI_TYPE_GEOMETRY

Field is defined as GEOMETRY

MYSQLI_NEED_DATA

More data available for bind variable

MYSQLI_NO_DATA

No more data available for bind variable

MYSQLI_DATA_TRUNCATED

Data truncation occurred. Available since PHP 5.1.0 and MySQL 5.0.5.

MYSQLI_ENUM_FLAG

Field is defined as ENUM. Available since PHP 5.3.0.

资源类型
The MySQLi Extension Function Summary
Mysqli


The MySQLi Extension Function Summary

MySQLi Class
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli->affected_rows | mysqli_affected_rows() | N/A | Gets the number of affected rows in a previous MySQL operation
$mysqli->connect_errno | mysqli_connect_errno() | N/A | Returns the error code from last connect call
$mysqli->connect_error | mysqli_connect_error() | N/A | Returns a string description of the last connect error
$mysqli->errno | mysqli_errno() | N/A | Returns the error code for the most recent function call
$mysqli->error | mysqli_error() | N/A | Returns a string description of the last error
$mysqli->field_count | mysqli_field_count() | N/A | Returns the number of columns for the most recent query
$mysqli->host_info | mysqli_get_host_info() | N/A | Returns a string representing the type of connection used
$mysqli->protocol_version | mysqli_get_proto_info() | N/A | Returns the version of the MySQL protocol used
$mysqli->server_info | mysqli_get_server_info() | N/A | Returns the version of the MySQL server
$mysqli->server_version | mysqli_get_server_version() | N/A | Returns the version of the MySQL server as an integer
$mysqli->info | mysqli_info() | N/A | Retrieves information about the most recently executed query
$mysqli->insert_id | mysqli_insert_id() | N/A | Returns the auto generated id used in the last query
$mysqli->sqlstate | mysqli_sqlstate() | N/A | Returns the SQLSTATE error from previous MySQL operation
$mysqli->warning_count | mysqli_warning_count() | N/A | Returns the number of warnings from the last query for the given link
Methods
mysqli->autocommit | mysqli_autocommit() | N/A | Turns on or off auto-commiting database modifications
mysqli->change_user | mysqli_change_user() | N/A | Changes the user of the specified database connection
mysqli->character_set_name, mysqli->client_encoding | mysqli_character_set_name() | mysqli_client_encoding() | Returns the default character set for the database connection
mysqli->close | mysqli_close() | N/A | Closes a previously opened database connection
mysqli->commit | mysqli_commit() | N/A | Commits the current transaction
mysqli::__construct | mysqli_connect() | N/A | Open a new connection to the MySQL server [Note: static (i.e. class) method]
mysqli->debug | mysqli_debug() | N/A | Performs debugging operations
mysqli->dump_debug_info | mysqli_dump_debug_info() | N/A | Dump debugging information into the log
mysqli->get_charset | mysqli_get_charset() | N/A | Returns a character set object
mysqli->get_client_info | mysqli_get_client_info() | N/A | Returns the MySQL client version as a string
mysqli->get_client_version | mysqli_get_client_version() | N/A | Get MySQL client info
mysqli->get_connection_stats | mysqli_get_connection_stats() | N/A | Returns client connection statistics. MySQL Native Driver only.
mysqli->get_client_stats | mysqli_get_client_stats() | N/A | Returns client per-process statistics. MySQL Native Driver only.
mysqli->get_cache_stats | mysqli_get_cache_stats() | N/A | Returns client Zval cache statistics. MySQL Native Driver only.
mysqli->get_server_info | mysqli_get_server_info() | N/A | NOT DOCUMENTED
mysqli->get_warnings | mysqli_get_warnings() | N/A | NOT DOCUMENTED
mysqli_init | mysqli_init() | N/A | Initializes MySQLi and returns a resource for use with mysqli_real_connect. [Not called on an object, as it returns a $mysqli object.]
mysqli->kill | mysqli_kill() | N/A | Asks the server to kill a MySQL thread
mysqli->more_results | mysqli_more_results() | N/A | Check if there are any more query results from a multi query
mysqli->multi_query | mysqli_multi_query() | N/A | Performs a query on the database
mysqli->next_result | mysqli_next_result() | N/A | Prepare next result from multi_query
mysqli->options | mysqli_options() | mysqli_set_opt() | Set options
mysqli->ping | mysqli_ping() | N/A | Pings a server connection, or tries to reconnect if the connection has gone down
mysqli->prepare | mysqli_prepare() | N/A | Prepare a SQL statement for execution
mysqli->query | mysqli_query() | N/A | Performs a query on the database
mysqli->real_connect | mysqli_real_connect() | N/A | Opens a connection to a mysql server
mysqli->real_escape_string, mysqli->escape_string | mysqli_real_escape_string() | mysqli_escape_string() | Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
mysqli->real_query | mysqli_real_query() | N/A | Execute an SQL query
mysqli->rollback | mysqli_rollback() | N/A | Rolls back current transaction
mysqli->select_db | mysqli_select_db() | N/A | Selects the default database for database queries
mysqli->set_charset | mysqli_set_charset() | N/A | Sets the default client character set
mysqli->set_local_infile_default | mysqli_set_local_infile_default() | N/A | Unsets user defined handler for load local infile command
mysqli->set_local_infile_handler | mysqli_set_local_infile_handler() | N/A | Set callback function for LOAD DATA LOCAL INFILE command
mysqli->ssl_set | mysqli_ssl_set() | N/A | Used for establishing secure connections using SSL
mysqli->stat | mysqli_stat() | N/A | Gets the current system status
mysqli->stmt_init | mysqli_stmt_init() | N/A | Initializes a statement and returns an object for use with mysqli_stmt_prepare
mysqli->store_result | mysqli_store_result() | N/A | Transfers a result set from the last query
mysqli->thread_id | mysqli_thread_id() | N/A | Returns the thread ID for the current connection
mysqli->thread_safe | mysqli_thread_safe() | N/A | Returns whether thread safety is given or not
mysqli->use_result | mysqli_use_result() | N/A | Initiate a result set retrieval
MySQL_STMT
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli_stmt->affected_rows | mysqli_stmt_affected_rows() | N/A | Returns the total number of rows changed, deleted, or inserted by the last executed statement
$mysqli_stmt->errno | mysqli_stmt_errno() | N/A | Returns the error code for the most recent statement call
$mysqli_stmt->error | mysqli_stmt_error() | N/A | Returns a string description for last statement error
$mysqli_stmt->field_count | mysqli_stmt_field_count() | N/A | Returns the number of field in the given statement - not documented
$mysqli_stmt->insert_id | mysqli_stmt_insert_id() | N/A | Get the ID generated from the previous INSERT operation
$mysqli_stmt->num_rows | mysqli_stmt_num_rows() | N/A | Return the number of rows in statements result set
$mysqli_stmt->param_count | mysqli_stmt_param_count() | mysqli_param_count() | Returns the number of parameter for the given statement
$mysqli_stmt->sqlstate | mysqli_stmt_sqlstate() | N/A | Returns SQLSTATE error from previous statement operation
Methods
mysqli_stmt->attr_get | mysqli_stmt_attr_get() | N/A | Used to get the current value of a statement attribute
mysqli_stmt->attr_set | mysqli_stmt_attr_set() | N/A | Used to modify the behavior of a prepared statement
mysqli_stmt->bind_param | mysqli_stmt_bind_param() | mysqli_bind_param() | Binds variables to a prepared statement as parameters
mysqli_stmt->bind_result | mysqli_stmt_bind_result() | mysqli_bind_result() | Binds variables to a prepared statement for result storage
mysqli_stmt->close | mysqli_stmt_close() | N/A | Closes a prepared statement
mysqli_stmt->data_seek | mysqli_stmt_data_seek() | N/A | Seeks to an arbitrary row in statement result set
mysqli_stmt->execute | mysqli_stmt_execute() | mysqli_execute() | Executes a prepared Query
mysqli_stmt->fetch | mysqli_stmt_fetch() | mysqli_fetch() | Fetch results from a prepared statement into the bound variables
mysqli_stmt->free_result | mysqli_stmt_free_result() | N/A | Frees stored result memory for the given statement handle
$mysqli_stmt->get_result() | mysqli_stmt_get_result | N/A | NOT DOCUMENTED [mysqlnd only]
mysqli_stmt->get_warnings | mysqli_stmt_get_warnings() | N/A | NOT DOCUMENTED
$mysqli_stmt->more_results() | mysqli_stmt_more_results() | N/A | NOT DOCUMENTED [mysqlnd only]
$mysqli_stmt->next_result() | mysqli_stmt_next_result() | N/A | NOT DOCUMENTED [mysqlnd only]
mysqli_stmt->num_rows | mysqli_stmt_num_rows() | N/A | NOT DOCUMENTED [see also num_rows property]
mysqli_stmt->prepare | mysqli_stmt_prepare() | N/A | Prepare a SQL statement for execution
mysqli_stmt->reset | mysqli_stmt_reset() | N/A | Resets a prepared statement
mysqli_stmt->result_metadata | mysqli_stmt_result_metadata() | mysqli_get_metadata() | Returns result set metadata from a prepared statement
mysqli_stmt->send_long_data | mysqli_stmt_send_long_data() | mysqli_send_long_data() | Send data in blocks
mysqli_stmt->store_result | mysqli_stmt_store_result() | N/A | Transfers a result set from a prepared statement
MySQLi_RESULT
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli_result->current_field | mysqli_field_tell() | N/A | Get current field offset of a result pointer
$mysqli_result->field_count | mysqli_num_fields() | N/A | Get the number of fields in a result
$mysqli_result->lengths | mysqli_fetch_lengths() | N/A | Returns the lengths of the columns of the current row in the result set
$mysqli_result->num_rows | mysqli_num_rows() | N/A | Gets the number of rows in a result
Methods
mysqli_result->data_seek | mysqli_data_seek() | N/A | Adjusts the result pointer to an arbitary row in the result
mysqli_result->fetch_all | mysqli_fetch_all() | N/A | Fetches all result rows and returns the result set as an associative array, a numeric array, or both. MySQL Native Driver only
mysqli_result->fetch_array | mysqli_fetch_array() | N/A | Fetch a result row as an associative, a numeric array, or both
mysqli_result->fetch_assoc | mysqli_fetch_assoc() | N/A | Fetch a result row as an associative array
mysqli_result->fetch_field_direct | mysqli_fetch_field_direct() | N/A | Fetch meta-data for a single field
mysqli_result->fetch_field | mysqli_fetch_field() | N/A | Returns the next field in the result set
mysqli_result->fetch_fields | mysqli_fetch_fields() | N/A | Returns an array of objects representing the fields in a result set
mysqli_result->fetch_object | mysqli_fetch_object() | N/A | Returns the current row of a result set as an object
mysqli_result->fetch_row | mysqli_fetch_row() | N/A | Get a result row as an enumerated array
mysqli_result->field_seek | mysqli_field_seek() | N/A | Set result pointer to a specified field offset
mysqli_result->free, mysqli_result->close, mysqli_result->free_result | mysqli_free_result() | N/A | Frees the memory associated with a result
MySQL_Driver
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
N/A
Methods
mysqli_driver->embedded_server_end | mysqli_embedded_server_end() | N/A | NOT DOCUMENTED
mysqli_driver->embedded_server_start | mysqli_embedded_server_start() | N/A | NOT DOCUMENTED

Note: Alias functions are provided for backward compatibility purposes only. Do not use them in new projects.

预定义常量
MySQLi
Mysqli


The MySQLi class

简介

Represents a connection between PHP and a MySQL database.

Class synopsis

MySQLi
MySQLi {
/* Properties */
int $affected_rows;
string $connect_errno;
string $connect_error;
int $errno;
string $error;
int $field_count;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
int $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Methods */
int mysqli_affected_rows ( mysqli $link )
bool mysqli::autocommit ( bool $mode )
bool mysqli::change_user ( string $user , string $password , string $database )
string mysqli::character_set_name ( void )
bool mysqli::close ( void )
bool mysqli::commit ( void )
int mysqli_connect_errno ( void )
string mysqli_connect_error ( void )
 mysqli mysqli_connect
  ([ string $host=ini_get("mysqli.default_host")
 [, string $username=ini_get("mysqli.default_user")
 [, string $passwd=ini_get("mysqli.default_pw")
 [, string $dbname=""
 [, int $port=ini_get("mysqli.default_port")
 [, string $socket=ini_get("mysqli.default_socket")
]]]]]] )
bool mysqli::debug ( string $message )
bool mysqli::dump_debug_info ( void )
int mysqli_errno ( mysqli $link )
string mysqli_error ( mysqli $link )
int mysqli_field_count ( mysqli $link )
bool mysqli::get_cache_stats ( void )
object mysqli::get_charset ( void )
string mysqli::get_client_info ( void )
bool mysqli::get_client_stats ( void )
int mysqli::get_client_version ( void )
bool mysqli::get_connection_stats ( void )
string mysqli_get_host_info ( mysqli $link )
int mysqli_get_proto_info ( mysqli $link )
string mysqli_get_server_info ( mysqli $link )
int mysqli_get_server_version ( mysqli $link )
object mysqli::get_warnings ( void )
string mysqli_info ( mysqli $link )
mysqli init ( void )
int mysqli_insert_id ( mysqli $link )
bool mysqli::kill ( int $processid )
bool mysqli::more_results ( void )
bool mysqli::multi_query ( string $query )
bool mysqli::next_result ( void )
bool mysqli::options ( int $option , mixed $value )
bool mysqli::ping ( void )
public int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
mysqli_stmt prepare ( string $query )
mixed mysqli::query ( string $query [, int $resultmode ] )
bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )
string mysqli::escape_string ( string $escapestr )
bool real_query ( string $query )
public mysqli_result mysqli::reap_async_query ( void )
bool mysqli::rollback ( void )
bool mysqli::select_db ( string $dbname )
bool mysqli::set_charset ( string $charset )
void mysqli_set_local_infile_default ( mysqli $link )
bool mysqli_set_local_infile_handler ( mysqli $link , callback $read_func )
string mysqli_sqlstate ( mysqli $link )
bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
string mysqli::stat ( void )
mysqli_stmt stmt_init ( void )
mysqli_result store_result ( void )
int mysqli_thread_id ( mysqli $link )
bool mysqli_thread_safe ( void )
mysqli_result use_result ( void )
int mysqli_warning_count ( mysqli $link )
}

Table of Contents

  • mysqli->affected_rows — Gets the number of affected rows in a previous MySQL operation
  • mysqli::autocommit — Turns on or off auto-commiting database modifications
  • mysqli::change_user — Changes the user of the specified database connection
  • mysqli::character_set_name — Returns the default character set for the database connection
  • mysqli::close — Closes a previously opened database connection
  • mysqli::commit — Commits the current transaction
  • mysqli->connect_errno — Returns the error code from last connect call
  • mysqli->connect_error — Returns a string description of the last connect error
  • mysqli::__construct — Open a new connection to the MySQL server
  • mysqli::debug — Performs debugging operations
  • mysqli::dump_debug_info — Dump debugging information into the log
  • mysqli->errno — Returns the error code for the most recent function call
  • mysqli->error — Returns a string description of the last error
  • mysqli->field_count — Returns the number of columns for the most recent query
  • mysqli::get_cache_stats — Returns client Zval cache statistics
  • mysqli::get_charset — Returns a character set object
  • mysqli::get_client_info — Returns the MySQL client version as a string
  • mysqli::get_client_stats — Returns client per-process statistics
  • mysqli::get_client_version — Get MySQL client info
  • mysqli::get_connection_stats — Returns statistics about the client connection
  • mysqli->host_info — Returns a string representing the type of connection used
  • mysqli->protocol_version — Returns the version of the MySQL protocol used
  • mysqli->server_info — Returns the version of the MySQL server
  • mysqli->server_version — Returns the version of the MySQL server as an integer
  • mysqli::get_warnings — 说明
  • mysqli->info — Retrieves information about the most recently executed query
  • mysqli::init — Initializes MySQLi and returns a resource for use with mysqli_real_connect()
  • mysqli->insert_id — Returns the auto generated id used in the last query
  • mysqli::kill — Asks the server to kill a MySQL thread
  • mysqli::more_results — Check if there are any more query results from a multi query
  • mysqli::multi_query — Performs a query on the database
  • mysqli::next_result — Prepare next result from multi_query
  • mysqli::options — Set options
  • mysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • mysqli::poll — Poll connections
  • mysqli::prepare — Prepare a SQL statement for execution
  • mysqli::query — Performs a query on the database
  • mysqli::real_connect — Opens a connection to a mysql server
  • mysqli::real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
  • mysqli::real_query — Execute an SQL query
  • mysqli::reap_async_query — Get result from async query
  • mysqli::rollback — Rolls back current transaction
  • mysqli::select_db — Selects the default database for database queries
  • mysqli::set_charset — Sets the default client character set
  • mysqli::set_local_infile_default — Unsets user defined handler for load local infile command
  • mysqli::set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command
  • mysqli->sqlstate — Returns the SQLSTATE error from previous MySQL operation
  • mysqli::ssl_set — Used for establishing secure connections using SSL
  • mysqli::stat — Gets the current system status
  • mysqli::stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare
  • mysqli::store_result — Transfers a result set from the last query
  • mysqli::thread_id — Returns the thread ID for the current connection
  • mysqli::thread_safe — Returns whether thread safety is given or not
  • mysqli::use_result — Initiate a result set retrieval
  • mysqli::warning_count — Returns the number of warnings from the last query for the given link
The MySQLi Extension Function Summary
mysqli->affected_rows
Mysqli


Gets the number of affected rows in a previous MySQL operation

MySQLi
mysqli::autocommit
MySQLi
PHP 手册

mysqli->affected_rows

mysqli_affected_rows

(PHP 5)

mysqli->affected_rows -- mysqli_affected_rows — Gets the number of affected rows in a previous MySQL operation

说明

Object oriented style (property):

mysqli
int $affected_rows;

Procedural style:

int mysqli_affected_rows ( mysqli $link )

Returns the number of rows affected by the last INSERT, UPDATE, REPLACE or DELETE query.

For SELECT statements mysqli_affected_rows() works like mysqli_num_rows().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error.

Note: If the number of affected rows is greater than maximal int value, the number of affected rows will be returned as a string.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* update rows */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);

/* delete rows */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

/* select all rows */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>

上例将输出：

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

参见

  • mysqli_num_rows() - Gets the number of rows in a result
  • mysqli_info() - Retrieves information about the most recently executed query

MySQLi
mysqli::autocommit
MySQLi


Turns on or off auto-commiting database modifications

mysqli->affected_rows
mysqli::change_user
MySQLi
PHP 手册

mysqli::autocommit

mysqli_autocommit

(PHP 5)

mysqli::autocommit -- mysqli_autocommit — Turns on or off auto-commiting database modifications

说明

Object oriented style (method)

bool mysqli::autocommit ( bool $mode )

Procedural style:

bool mysqli_autocommit ( mysqli $link , bool $mode )

Turns on or off auto-commit mode on queries for the database connection.

To determine the current state of autocommit use the SQL command SELECT @@autocommit.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

mode

Whether to turn on auto-commit or not.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: This function doesn't work with non transactional table types (like MyISAM or ISAM).

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Autocommit is 1

参见

  • mysqli_commit() - Commits the current transaction
  • mysqli_rollback() - Rolls back current transaction

mysqli->affected_rows
mysqli::change_user
MySQLi


Changes the user of the specified database connection

mysqli::autocommit
mysqli::character_set_name
MySQLi
PHP 手册

mysqli::change_user

mysqli_change_user

(PHP 5)

mysqli::change_user -- mysqli_change_user — Changes the user of the specified database connection

说明

Object oriented style (method):

bool mysqli::change_user ( string $user , string $password , string $database )

Procedural style:

bool mysqli_change_user ( mysqli $link , string $user , string $password , string $database )

Changes the user of the specified database connection and sets the current database.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

user

The MySQL user name.

password

The MySQL password.

database

The database to change to.

If desired, the NULL value may be passed resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

范例

Example #1 Object oriented style

<?php

/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
$mysqli->query("SET @a:=1");

/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
mysqli_query($link, "SET @a:=1");

/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database: %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Default database: world
Value of variable a is NULL

参见

  • mysqli_connect() - Open a new connection to the MySQL server
  • mysqli_select_db() - Selects the default database for database queries

mysqli::autocommit
mysqli::character_set_name
MySQLi


Returns the default character set for the database connection

mysqli::change_user
mysqli::close
MySQLi
PHP 手册

mysqli::character_set_name

mysqli_character_set_name

(PHP 5)

mysqli::character_set_name -- mysqli_character_set_name — Returns the default character set for the database connection

说明

Object oriented style (method):

string mysqli::character_set_name ( void )

Procedural style:

string mysqli_character_set_name ( mysqli $link )

Returns the current character set for the database connection.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

The default character set for the current connection

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);
?>

上例将输出：

Current character set is latin1_swedish_ci

参见

  • mysqli_client_encoding() - Alias of mysqli_character_set_name
  • mysqli_real_escape_string() - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

mysqli::change_user
mysqli::close
MySQLi


Closes a previously opened database connection

mysqli::character_set_name
mysqli::commit
MySQLi
PHP 手册

mysqli::close

mysqli_close

(PHP 5)

mysqli::close -- mysqli_close — Closes a previously opened database connection

说明

Object oriented style (method):

bool mysqli::close ( void )

Procedural style:

bool mysqli_close ( mysqli $link )

Closes a previously opened database connection.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mysqli_connect() - Open a new connection to the MySQL server
  • mysqli_init() - Initializes MySQLi and returns a resource for use with mysqli_real_connect()
  • mysqli_real_connect() - Opens a connection to a mysql server

mysqli::character_set_name
mysqli::commit
MySQLi


Commits the current transaction

mysqli::close
mysqli->connect_errno
MySQLi
PHP 手册

mysqli::commit

mysqli_commit

(PHP 5)

mysqli::commit -- mysqli_commit — Commits the current transaction

说明

Object oriented style (method)

bool mysqli::commit ( void )

Procedural style:

bool mysqli_commit ( mysqli $link )

Commits the current transaction for the database connection.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
$mysqli->commit();

/* drop table */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* set autocommit to off */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Insert some values */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
mysqli_commit($link);

/* close connection */
mysqli_close($link);
?>

参见

  • mysqli_autocommit() - Turns on or off auto-commiting database modifications
  • mysqli_rollback() - Rolls back current transaction

mysqli::close
mysqli->connect_errno
MySQLi


Returns the error code from last connect call

mysqli::commit
mysqli->connect_error
MySQLi
PHP 手册

mysqli->connect_errno

mysqli_connect_errno

(PHP 5)

mysqli->connect_errno -- mysqli_connect_errno — Returns the error code from last connect call

说明

mysqli
string $connect_errno;
int mysqli_connect_errno ( void )

Returns the last error code number from the last call to mysqli_connect().

Note: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

返回值

An error code value for the last call to mysqli_connect(), if it failed. zero means no error occurred.

范例

Example #1 mysqli_connect_errno() example

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Errorcode: %d\n", mysqli_connect_errno());
}
?>

参见

  • mysqli_connect() - Open a new connection to the MySQL server
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation

mysqli::commit
mysqli->connect_error
MySQLi


Returns a string description of the last connect error

mysqli->connect_errno
mysqli::__construct
MySQLi
PHP 手册

mysqli->connect_error

mysqli_connect_error

(PHP 5)

mysqli->connect_error -- mysqli_connect_error — Returns a string description of the last connect error

说明

mysqli
string $connect_error;
string mysqli_connect_error ( void )

Returns the last error message string from the last call to mysqli_connect().

返回值

A string that describes the error. An empty string if no error occurred.

范例

Example #1 mysqli_connect_error() example

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
}
?>

参见

  • mysqli_connect() - Open a new connection to the MySQL server
  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation

mysqli->connect_errno
mysqli::__construct
MySQLi


Open a new connection to the MySQL server

mysqli->connect_error
mysqli::debug
MySQLi
PHP 手册

mysqli::__construct

mysqli_connect

(PHP 5)

mysqli::__construct -- mysqli_connect — Open a new connection to the MySQL server

说明

Object oriented style (constructor):

  mysqli::__construct
  ([ string $host=ini_get("mysqli.default_host")
 [, string $username=ini_get("mysqli.default_user")
 [, string $passwd=ini_get("mysqli.default_pw")
 [, string $dbname=""
 [, int $port=ini_get("mysqli.default_port")
 [, string $socket=ini_get("mysqli.default_socket")
]]]]]] )

Procedural style

 mysqli mysqli_connect
  ([ string $host=ini_get("mysqli.default_host")
 [, string $username=ini_get("mysqli.default_user")
 [, string $passwd=ini_get("mysqli.default_pw")
 [, string $dbname=""
 [, int $port=ini_get("mysqli.default_port")
 [, string $socket=ini_get("mysqli.default_socket")
]]]]]] )

Opens a connection to the MySQL Server running on.

参数

host

Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

Prepending host by p: opens a persistent connection. mysqli_change_user() is automatically called on connections opened from the connection pool.

username

The MySQL user name.

passwd

If not provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

dbname

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used.

Note: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

返回值

Returns a object which represents the connection to a MySQL Server.

更新日志

版本 | 说明
5.3.0 | Added the ability of persistent connections.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_error) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

Host information: Localhost via UNIX socket

注释

Note: OO syntax only: If a connection fails an object is still returned. To check if the connection failed then use the mysqli->connect_error property like in the examples above.

Note: Error "Can't create TCP/IP socket (10106)" usually means that the variables_order configure directive doesn't contain character E. On Windows, if the environment is not copied the SYSTEMROOT environment variable won't be available and PHP will have problems loading Winsock.

mysqli->connect_error
mysqli::debug
MySQLi


Performs debugging operations

mysqli::__construct
mysqli::dump_debug_info
MySQLi
PHP 手册

mysqli::debug

mysqli_debug

(PHP 5)

mysqli::debug -- mysqli_debug — Performs debugging operations

说明

Object oriented style (method):

bool mysqli::debug ( string $message )

Procedural style:

bool mysqli_debug ( string $message )

Performs debugging operations using the Fred Fish debugging library.

参数

message

A string representing the debugging operation to perform

返回值

Returns TRUE.

注释

Note: To use the mysqli_debug() function you must complile the MySQL client library to support debugging.

范例

Example #1 Generating a Trace File

<?php

/* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
mysqli_debug("d:t:0,/tmp/client.trace");

?>

参见

  • mysqli_dump_debug_info() - Dump debugging information into the log
  • mysqli_report() - Enables or disables internal report functions

mysqli::__construct
mysqli::dump_debug_info
MySQLi


Dump debugging information into the log

mysqli::debug
mysqli->errno
MySQLi
PHP 手册

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Dump debugging information into the log

说明

Object oriented style (method):

bool mysqli::dump_debug_info ( void )

Procedural style:

bool mysqli_dump_debug_info ( mysqli $link )

This function is designed to be executed by an user with the SUPER privilege and is used to dump debugging information into the log for the MySQL Server relating to the connection.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mysqli_debug() - Performs debugging operations

mysqli::debug
mysqli->errno
MySQLi


Returns the error code for the most recent function call

mysqli::dump_debug_info
mysqli->error
MySQLi
PHP 手册

mysqli->errno

mysqli_errno

(PHP 5)

mysqli->errno -- mysqli_errno — Returns the error code for the most recent function call

说明

Object oriented style (property):

mysqli
int $errno;

Procedural style:

int mysqli_errno ( mysqli $link )

Returns the last error code for the most recent MySQLi function call that can succeed or fail.

Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

An error code value for the last call, if it failed. zero means no error occurred.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errorcode: %d\n", $mysqli->errno);
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errorcode: %d\n", mysqli_errno($link));
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Errorcode: 1193

参见

  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation

mysqli::dump_debug_info
mysqli->error
MySQLi


Returns a string description of the last error

mysqli->errno
mysqli->field_count
MySQLi
PHP 手册

mysqli->error

mysqli_error

(PHP 5)

mysqli->error -- mysqli_error — Returns a string description of the last error

说明

Object oriented style (property):

mysqli
string $error;

Procedural style:

string mysqli_error ( mysqli $link )

Returns the last error message for the most recent MySQLi function call that can succeed or fail.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

A string that describes the error. An empty string if no error occurred.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errormessage: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Errormessage: Unknown system variable 'a'

参见

  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation

mysqli->errno
mysqli->field_count
MySQLi


Returns the number of columns for the most recent query

mysqli->error
mysqli::get_cache_stats
MySQLi
PHP 手册

mysqli->field_count

mysqli_field_count

(PHP 5)

mysqli->field_count -- mysqli_field_count — Returns the number of columns for the most recent query

说明

Object oriented style (property):

mysqli_result
int $field_count;

Procedural style:

int mysqli_field_count ( mysqli $link )

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

An integer representing the number of fields in a result set.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query("SELECT * FROM friends");

if ($mysqli->field_count) {
    /* this was a select/show or describe query */
    $result = $mysqli->store_result();

    /* process resultset */
    $row = $result->fetch_row();

    /* free resultset */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, "SELECT * FROM friends");

if (mysqli_field_count($link)) {
    /* this was a select/show or describe query */
    $result = mysqli_store_result($link);

    /* process resultset */
    $row = mysqli_fetch_row($result);

    /* free resultset */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

mysqli->error
mysqli::get_cache_stats
MySQLi


Returns client Zval cache statistics

mysqli->field_count
mysqli::get_charset
MySQLi
PHP 手册

mysqli::get_cache_stats

mysqli_get_cache_stats

(No version information available, might be only in CVS)

mysqli::get_cache_stats -- mysqli_get_cache_stats — Returns client Zval cache statistics

说明

Object oriented style (method):

bool mysqli::get_cache_stats ( void )

Procedural style:

array mysqli_get_cache_stats ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns client Zval cache statistics. Available only with mysqlnd.

参数

返回值

Returns an array with client Zval cache stats if success, FALSE otherwise.

范例

Example #1 A mysqli_get_cache_stats() example

<?php
$link = mysqli_connect();
print_r(mysqli_get_cache_stats());
?>

上例的输出类似于：

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

mysqli->field_count
mysqli::get_charset
MySQLi


Returns a character set object

mysqli::get_cache_stats
mysqli::get_client_info
MySQLi
PHP 手册

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0)

mysqli::get_charset -- mysqli_get_charset — Returns a character set object

说明

object mysqli::get_charset ( void )
object mysqli_get_charset ( mysqli $link )

Returns a character set object providing several properties of the current active character set.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

The function returns a character set object with the following properties:

charset

Character set name

collation

Collation name

dir

Directory the charset description was fetched from (?) or "" for built-in character sets

min_length

Minimum character length in bytes

max_length

Maximum character length in bytes

number

Internal character set number

state

Character set status (?)

范例

Example #1 Object oriented style

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");
  var_dump($db->get_charset());
?>

Example #2 Procedural style

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");
  var_dump($db->get_charset());
?>

上例将输出：

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

参见

  • mysqli_character_set_name() - Returns the default character set for the database connection
  • mysqli_set_charset() - Sets the default client character set

mysqli::get_cache_stats
mysqli::get_client_info
MySQLi


Returns the MySQL client version as a string

mysqli::get_charset
mysqli::get_client_stats
MySQLi
PHP 手册

mysqli::get_client_info

mysqli_get_client_info

(PHP 5)

mysqli::get_client_info -- mysqli_get_client_info — Returns the MySQL client version as a string

说明

string mysqli::get_client_info ( void )
string mysqli_get_client_info ( void )

The mysqli_get_client_info() function is used to return a string representing the client version being used in the MySQLi extension.

返回值

A string that represents the MySQL client library version

范例

Example #1 mysqli_get_client_info

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

参见

  • mysqli_get_client_version() - Get MySQL client info
  • mysqli_get_server_info() - Returns the version of the MySQL server
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer

mysqli::get_charset
mysqli::get_client_stats
MySQLi


Returns client per-process statistics

mysqli::get_client_info
mysqli::get_client_version
MySQLi
PHP 手册

mysqli::get_client_stats

mysqli_get_client_stats

(No version information available, might be only in CVS)

mysqli::get_client_stats -- mysqli_get_client_stats — Returns client per-process statistics

说明

Object oriented style (method):

bool mysqli::get_client_stats ( void )

Procedural style:

array mysqli_get_client_stats ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns client per-process statistics. Available only with mysqlnd.

参数

返回值

Returns an array with client stats if success, FALSE otherwise.

范例

Example #1 A mysqli_get_client_stats() example

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

上例的输出类似于：

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

mysqli::get_client_info
mysqli::get_client_version
MySQLi


Get MySQL client info

mysqli::get_client_stats
mysqli::get_connection_stats
MySQLi
PHP 手册

mysqli::get_client_version

mysqli_get_client_version

(PHP 5)

mysqli::get_client_version -- mysqli_get_client_version — Get MySQL client info

说明

int mysqli::get_client_version ( void )
int mysqli_get_client_version ( void )

Returns client version number as an integer.

返回值

A number that represents the MySQL client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 4.1.0 is returned as 40100.

This is useful to quickly determine the version of the client library to know if some capability exits.

范例

Example #1 mysqli_get_client_version

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

参见

  • mysqli_get_client_info() - Returns the MySQL client version as a string
  • mysqli_get_server_info() - Returns the version of the MySQL server
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer

mysqli::get_client_stats
mysqli::get_connection_stats
MySQLi


Returns statistics about the client connection

mysqli::get_client_version
mysqli->host_info
MySQLi
PHP 手册

mysqli::get_connection_stats

mysqli_get_connection_stats

(No version information available, might be only in CVS)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Returns statistics about the client connection

说明

Object oriented style (method):

bool mysqli::get_connection_stats ( void )

Procedural style:

array mysqli_get_connection_stats ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

Returns statistics about the client connection. Available only with mysqlnd.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns an array with connection stats if success, FALSE otherwise.

范例

Example #1 A mysqli_get_connection_stats() example

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

上例的输出类似于：

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

mysqli::get_client_version
mysqli->host_info
MySQLi


Returns a string representing the type of connection used

mysqli::get_connection_stats
mysqli->protocol_version
MySQLi
PHP 手册

mysqli->host_info

mysqli_get_host_info

(PHP 5)

mysqli->host_info -- mysqli_get_host_info — Returns a string representing the type of connection used

说明

Object oriented style (property):

mysqli
string $host_info;

Procdural style:

string mysqli_get_host_info ( mysqli $link )

The mysqli_get_host_info() function returns a string describing the connection represented by the link parameter is using (including the server host name).

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

A character string representing the server hostname and the connection type.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

Host info: Localhost via UNIX socket

参见

  • mysqli_get_proto_info() - Returns the version of the MySQL protocol used

mysqli::get_connection_stats
mysqli->protocol_version
MySQLi


Returns the version of the MySQL protocol used

mysqli->host_info
mysqli->server_info
MySQLi
PHP 手册

mysqli->protocol_version

mysqli_get_proto_info

(PHP 5)

mysqli->protocol_version -- mysqli_get_proto_info — Returns the version of the MySQL protocol used

说明

Object oriented style (property):

mysqli
string $protocol_version;

Procedural style:

int mysqli_get_proto_info ( mysqli $link )

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns an integer representing the protocol version.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

Protocol version: 10

参见

  • mysqli_get_host_info() - Returns a string representing the type of connection used

mysqli->host_info
mysqli->server_info
MySQLi


Returns the version of the MySQL server

mysqli->protocol_version
mysqli->server_version
MySQLi
PHP 手册

mysqli->server_info

mysqli_get_server_info

(PHP 5)

mysqli->server_info -- mysqli_get_server_info — Returns the version of the MySQL server

说明

Object oriented style (property):

mysqli
string $server_info;

Procedural style:

string mysqli_get_server_info ( mysqli $link )

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

A character string representing the server version.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

Server version: 4.1.2-alpha-debug

参见

  • mysqli_get_client_info() - Returns the MySQL client version as a string
  • mysqli_get_client_version() - Get MySQL client info
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer

mysqli->protocol_version
mysqli->server_version
MySQLi


Returns the version of the MySQL server as an integer

mysqli->server_info
mysqli::get_warnings
MySQLi
PHP 手册

mysqli->server_version

mysqli_get_server_version

(PHP 5)

mysqli->server_version -- mysqli_get_server_version — Returns the version of the MySQL server as an integer

说明

Object oriented style (property):

mysqli
int $server_version;

Procedural style:

int mysqli_get_server_version ( mysqli $link )

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

An integer representing the server version.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

Server version: 40102

参见

  • mysqli_get_client_info() - Returns the MySQL client version as a string
  • mysqli_get_client_version() - Get MySQL client info
  • mysqli_get_server_info() - Returns the version of the MySQL server

mysqli->server_info
mysqli::get_warnings
MySQLi


说明

mysqli->server_version
mysqli->info
MySQLi
PHP 手册

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0)

mysqli::get_warnings -- mysqli_get_warnings —

说明

object mysqli::get_warnings ( void )
object mysqli_get_warnings ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

mysqli->server_version
mysqli->info
MySQLi


Retrieves information about the most recently executed query

mysqli::get_warnings
mysqli::init
MySQLi
PHP 手册

mysqli->info

mysqli_info

(PHP 5)

mysqli->info -- mysqli_info — Retrieves information about the most recently executed query

说明

Object oriented style (property)

mysqli
string $info;

Procedural style:

string mysqli_info ( mysqli $link )

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Possible mysqli_info return values
Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Note: Queries which do not fall into one of the above formats are not supported. In these situations, mysqli_info() will return an empty string.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

A character string representing additional information about the most recently executed query.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

Records: 150  Duplicates: 0  Warnings: 0

参见

  • mysqli_affected_rows() - Gets the number of affected rows in a previous MySQL operation
  • mysqli_warning_count() - Returns the number of warnings from the last query for the given link
  • mysqli_num_rows() - Gets the number of rows in a result

mysqli::get_warnings
mysqli::init
MySQLi


Initializes MySQLi and returns a resource for use with mysqli_real_connect()

mysqli->info
mysqli->insert_id
MySQLi
PHP 手册

mysqli::init

mysqli_init

(PHP 5)

mysqli::init -- mysqli_init — Initializes MySQLi and returns a resource for use with mysqli_real_connect()

说明

Object oriented style (method):

mysqli init ( void )

Procedural style:

mysqli mysqli_init ( void )

Allocates or initializes a MYSQL object suitable for mysqli_options() and mysqli_real_connect().

Note: Any subsequent calls to any mysqli function (except mysqli_options()) will fail until mysqli_real_connect() was called.

返回值

Returns an object.

参见

  • mysqli_options() - Set options
  • mysqli_close() - Closes a previously opened database connection
  • mysqli_real_connect() - Opens a connection to a mysql server
  • mysqli_connect() - Open a new connection to the MySQL server

mysqli->info
mysqli->insert_id
MySQLi


Returns the auto generated id used in the last query

mysqli::init
mysqli::kill
MySQLi
PHP 手册

mysqli->insert_id

mysqli_insert_id

(PHP 5)

mysqli->insert_id -- mysqli_insert_id — Returns the auto generated id used in the last query

说明

Object oriented style (property):

mysqli
int $insert_id;

Procedural style:

int mysqli_insert_id ( mysqli $link )

The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Note: Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.

Note: If the number is greater than maximal int value, mysqli_insert_id() will return a string.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("New Record has id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

上例将输出：

New Record has id 1.
mysqli::init
mysqli::kill
MySQLi


Asks the server to kill a MySQL thread

mysqli->insert_id
mysqli::more_results
MySQLi
PHP 手册

mysqli::kill

mysqli_kill

(PHP 5)

mysqli::kill -- mysqli_kill — Asks the server to kill a MySQL thread

说明

Object oriented style (method)

bool mysqli::kill ( int $processid )

Procedural style:

bool mysqli_kill ( mysqli $link , int $processid )

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

To stop a running query you should use the SQL command KILL QUERY processid.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Error: MySQL server has gone away

参见

  • mysqli_thread_id() - Returns the thread ID for the current connection

mysqli->insert_id
mysqli::more_results
MySQLi


Check if there are any more query results from a multi query

mysqli::kill
mysqli::multi_query
MySQLi
PHP 手册

mysqli::more_results

mysqli_more_results

(PHP 5)

mysqli::more_results -- mysqli_more_results — Check if there are any more query results from a multi query

说明

bool mysqli::more_results ( void )
bool mysqli_more_results ( mysqli $link )

Indicates if one or more result sets are available from a previous call to mysqli_multi_query().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

See mysqli_multi_query().

参见

  • mysqli_multi_query() - Performs a query on the database
  • mysqli_next_result() - Prepare next result from multi_query
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval

mysqli::kill
mysqli::multi_query
MySQLi


Performs a query on the database

mysqli::more_results
mysqli::next_result
MySQLi
PHP 手册

mysqli::multi_query

mysqli_multi_query

(PHP 5)

mysqli::multi_query -- mysqli_multi_query — Performs a query on the database

说明

Object oriented style (method):

bool mysqli::multi_query ( string $query )

Procedural style:

bool mysqli_multi_query ( mysqli $link , string $query )

Executes one or multiple queries which are concatenated by a semicolon.

To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

query

The query, as a string.

返回值

Returns FALSE if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

上例的输出类似于：

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

参见

  • mysqli_use_result() - Initiate a result set retrieval
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_next_result() - Prepare next result from multi_query
  • mysqli_more_results() - Check if there are any more query results from a multi query

mysqli::more_results
mysqli::next_result
MySQLi


Prepare next result from multi_query

mysqli::multi_query
mysqli::options
MySQLi
PHP 手册

mysqli::next_result

mysqli_next_result

(PHP 5)

mysqli::next_result -- mysqli_next_result — Prepare next result from multi_query

说明

bool mysqli::next_result ( void )
bool mysqli_next_result ( mysqli $link )

Prepares next result set from a previous call to
mysqli_multi_query() which can be retrieved by
mysqli_store_result() or
mysqli_use_result().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

See mysqli_multi_query().

参见

  • mysqli_multi_query() - Performs a query on the database
  • mysqli_more_results() - Check if there are any more query results from a multi query
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval

mysqli::multi_query
mysqli::options
MySQLi


Set options

mysqli::next_result
mysqli::ping
MySQLi
PHP 手册

mysqli::options

mysqli_options

(PHP 5)

mysqli::options -- mysqli_options — Set options

说明

Object oriented style (method)

bool mysqli::options ( int $option , mixed $value )

Procedural style:

bool mysqli_options ( mysqli $link , int $option , mixed $value )

Used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after
mysqli_init() and before
mysqli_real_connect().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

option

The option that you want to set. It can be one of the following values:

Valid options
Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | connection timeout in seconds
MYSQLI_OPT_LOCAL_INFILE | enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | command to execute after when connecting to MySQL server
MYSQLI_READ_DEFAULT_FILE | Read options from named option file instead of my.cnf
MYSQLI_READ_DEFAULT_GROUP | Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE.

value

The value for the option.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

See mysqli_real_connect().

参见

  • mysqli_init() - Initializes MySQLi and returns a resource for use with mysqli_real_connect()
  • mysqli_real_connect() - Opens a connection to a mysql server

mysqli::next_result
mysqli::ping
MySQLi


Pings a server connection, or tries to reconnect if the connection has gone down

mysqli::options
mysqli::poll
MySQLi
PHP 手册

mysqli::ping

mysqli_ping

(PHP 5)

mysqli::ping -- mysqli_ping — Pings a server connection, or tries to reconnect if the connection has gone down

说明

Object oriented style (method):

bool mysqli::ping ( void )

Procedural style:

bool mysqli_ping ( mysqli $link )

Checks whether the connection to the server is working. If it has gone down, and global option mysqli.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if (mysqli_ping($link)) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Our connection is ok!
mysqli::options
mysqli::poll
MySQLi


Poll connections

mysqli::ping
mysqli::prepare
MySQLi
PHP 手册

mysqli::poll

mysqli_poll

(No version information available, might be only in CVS)

mysqli::poll -- mysqli_poll — Poll connections

说明

public int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
int mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
Warning

本函数暂无文档，仅有参数列表。

Poll connections. Available only with mysqlnd.

参数

read

error

reject

sec

Number of seconds to wait, must be non-negative.

usec

Number of microseconds to wait, must be non-negative.

返回值

Returns number of ready connections in success, FALSE otherwise.

范例

Example #1 A mysqli_poll() example

<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
    $links = $errors = $reject = array();
    foreach ($all_links as $link) {
        $links[] = $errors[] = $reject[] = $link;
    }
    if (!mysqli_poll($links, $errors, $reject, 1)) {
        continue;
    }
    foreach ($links as $link) {
        if ($result = $link->reap_async_query()) {
            print_r($result->fetch_row());
            mysqli_free_result($result);
            $processed++;
        }
    }
} while ($processed < count($all_links));
?>

上例将输出：

Array
(
    [0] => test
)

参见

mysqli::ping
mysqli::prepare
MySQLi


Prepare a SQL statement for execution

mysqli::poll
mysqli::query
MySQLi
PHP 手册

mysqli::prepare

mysqli_prepare

(PHP 5)

mysqli::prepare -- mysqli_prepare — Prepare a SQL statement for execution

说明

Object oriented style (method)

mysqli_stmt prepare ( string $query )

Procedure style:

mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

Prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

query

The query, as a string.

Note: You should not add a terminating semicolon or \g to the statement.

This parameter can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Note: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.
However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement, or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. It's not allowed to compare marker with NULL by ? IS NULL too. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

返回值

mysqli_prepare() returns a statement object or FALSE if an error occured.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Amersfoort is in district Utrecht

参见

  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • mysqli_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • mysqli_stmt_close() - Closes a prepared statement

mysqli::poll
mysqli::query
MySQLi


Performs a query on the database

mysqli::prepare
mysqli::real_connect
MySQLi
PHP 手册

mysqli::query

mysqli_query

(PHP 5)

mysqli::query -- mysqli_query — Performs a query on the database

说明

Object oriented style (method):

mixed mysqli::query ( string $query [, int $resultmode ] )

Procedural style:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode ] )

Performs a query against the database.

Functionally, using this function is identical to calling
mysqli_real_query() followed either by
mysqli_use_result() or
mysqli_store_result().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

query

The query string.

resultmode

Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

If you use MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result()

With MYSQLI_ASYNC (available with mysqlnd), it is possible to perform query asynchronously. mysqli_poll() is then used to get results from such queries.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.

更新日志

版本 | 说明
5.3.0 | Added the ability of async queries.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

上例将输出：

Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

参见

  • mysqli_real_query() - Execute an SQL query
  • mysqli_multi_query() - Performs a query on the database
  • mysqli_free_result() - Frees the memory associated with a result

mysqli::prepare
mysqli::real_connect
MySQLi


Opens a connection to a mysql server

mysqli::query
mysqli::real_escape_string
MySQLi
PHP 手册

mysqli::real_connect

mysqli_real_connect

(PHP 5)

mysqli::real_connect -- mysqli_real_connect — Opens a connection to a mysql server

说明

Object oriented style (method)

bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

Procedural style

bool mysqli_real_connect ( mysqli $link [, string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

Establish a connection to a MySQL database engine.

This function differs from mysqli_connect():

  • mysqli_real_connect() needs a valid object which has to be created by function mysqli_init().

  • With function mysqli_options() you can set various options for connection.

  • There is a flags parameter.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

host

Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

username

The MySQL user name.

passwd

If provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

dbname

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used.

Note: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

flags

With the parameter flags you can set different connection options:

Supported flags
Name | Description
MYSQLI_CLIENT_COMPRESS | Use compression protocol
MYSQLI_CLIENT_FOUND_ROWS | return number of matched rows, not the number of affected rows
MYSQLI_CLIENT_IGNORE_SPACE | Allow spaces after function names. Makes all function names reserved words.
MYSQLI_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
MYSQLI_CLIENT_SSL | Use SSL (encryption)

Note: For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php

/* create a connection object which is not connected */
$mysqli = mysqli_init();

/* set connection options */
$mysqli->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", $mysqli->host_info);

$mysqli->close();
?>

Example #2 Procedural style

<?php

/* create a connection object which is not connected */
$link = mysqli_init();

/* set connection options */
mysqli_options($link, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", mysqli_get_host_info($link));

mysqli_close($link);
?>

上例将输出：

Connection: Localhost via UNIX socket

参见

  • mysqli_connect() - Open a new connection to the MySQL server
  • mysqli_init() - Initializes MySQLi and returns a resource for use with mysqli_real_connect()
  • mysqli_options() - Set options
  • mysqli_ssl_set() - Used for establishing secure connections using SSL
  • mysqli_close() - Closes a previously opened database connection

mysqli::query
mysqli::real_escape_string
MySQLi


Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

mysqli::real_connect
mysqli::real_query
MySQLi
PHP 手册

mysqli::real_escape_string

mysqli_real_escape_string

(PHP 5)

mysqli::real_escape_string -- mysqli_real_escape_string — Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

说明

Object oriented style (both methods are equivalent):

string mysqli::escape_string ( string $escapestr )
string real_escape_string ( string $escapestr )

Procedural style:

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

This function is used to create a legal SQL string that you can use in an SQL statement. The given string is encoded to an escaped SQL string, taking into account the current character set of the connection.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

escapestr

The string to be escaped.

Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

返回值

Returns an escaped string.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

上例将输出：

Error: 42000
1 Row inserted.

参见

  • mysqli_character_set_name() - Returns the default character set for the database connection

mysqli::real_connect
mysqli::real_query
MySQLi


Execute an SQL query

mysqli::real_escape_string
mysqli::reap_async_query
MySQLi
PHP 手册

mysqli::real_query

mysqli_real_query

(PHP 5)

mysqli::real_query -- mysqli_real_query — Execute an SQL query

说明

Object oriented style (method):

bool real_query ( string $query )

Procedural style

bool mysqli_real_query ( mysqli $link , string $query )

Executes a single query against the database whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

In order to determine if a given query should return a result set or not, see mysqli_field_count().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

query

The query, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mysqli_query() - Performs a query on the database
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval

mysqli::real_escape_string
mysqli::reap_async_query
MySQLi


Get result from async query

mysqli::real_query
mysqli::rollback
MySQLi
PHP 手册

mysqli::reap_async_query

mysqli_reap_async_query

(No version information available, might be only in CVS)

mysqli::reap_async_query -- mysqli_reap_async_query — Get result from async query

说明

public mysqli_result mysqli::reap_async_query ( void )
mysqli_result mysqli_reap_async_query ( mysql $link )
Warning

本函数暂无文档，仅有参数列表。

Get result from async query. Available only with mysqlnd.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns mysqli_result in success, FALSE otherwise.

参见

  • mysqli_poll() - Poll connections

mysqli::real_query
mysqli::rollback
MySQLi


Rolls back current transaction

mysqli::reap_async_query
mysqli::select_db
MySQLi
PHP 手册

mysqli::rollback

mysqli_rollback

(PHP 5)

mysqli::rollback -- mysqli_rollback — Rolls back current transaction

说明

Object oriented style (method):

bool mysqli::rollback ( void )

Procedural style:

bool mysqli_rollback ( mysqli $link )

Rollbacks the current transaction for the database.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
$mysqli->commit();

/* delete all rows */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Drop table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
mysqli_commit($link);

/* delete all rows */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Drop table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

上例将输出：

0 rows in table myCity.
50 rows in table myCity (after rollback).

参见

  • mysqli_commit() - Commits the current transaction
  • mysqli_autocommit() - Turns on or off auto-commiting database modifications

mysqli::reap_async_query
mysqli::select_db
MySQLi


Selects the default database for database queries

mysqli::rollback
mysqli::set_charset
MySQLi
PHP 手册

mysqli::select_db

mysqli_select_db

(PHP 5)

mysqli::select_db -- mysqli_select_db — Selects the default database for database queries

说明

Object oriented style (method):

bool mysqli::select_db ( string $dbname )

Procedural style:

bool mysqli_select_db ( mysqli $link , string $dbname )

Selects the default database to be used when performing queries against the database connection.

Note: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in mysqli_connect().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

dbname

The database name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* change db to world db */
mysqli_select_db($link, "world");

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

上例将输出：

Default database is test.
Default database is world.

参见

  • mysqli_connect() - Open a new connection to the MySQL server
  • mysqli_real_connect() - Opens a connection to a mysql server

mysqli::rollback
mysqli::set_charset
MySQLi


Sets the default client character set

mysqli::select_db
mysqli::set_local_infile_default
MySQLi
PHP 手册

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5)

mysqli::set_charset -- mysqli_set_charset — Sets the default client character set

说明

Object oriented style (method):

bool mysqli::set_charset ( string $charset )

Procedural style:

bool mysqli_set_charset ( mysqli $link , string $charset )

Sets the default character set to be used when sending data from and to the database server.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

charset

The charset to be set as default.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: To use this function on a Windows platform you need MySQL client library version 4.1.11 or above (for MySQL 5.0 you need 5.0.6 or above).

Note: This is the preferred way to change the charset. Using mysqli::query() to execute SET NAMES .. is not recommended.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* change character set to utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Error loading character set utf8: %s\n", mysqli_error($link));
} else {
    printf("Current character set: %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

上例将输出：

Current character set: utf8

参见

  • mysqli_character_set_name() - Returns the default character set for the database connection
  • mysqli_real_escape_string() - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
  • » List of character sets that MySQL supports

mysqli::select_db
mysqli::set_local_infile_default
MySQLi


Unsets user defined handler for load local infile command

mysqli::set_charset
mysqli::set_local_infile_handler
MySQLi
PHP 手册

mysqli::set_local_infile_default

mysqli_set_local_infile_default

(PHP 5)

mysqli::set_local_infile_default -- mysqli_set_local_infile_default — Unsets user defined handler for load local infile command

说明

void mysqli_set_local_infile_default ( mysqli $link )

Deactivates a LOAD DATA INFILE LOCAL handler previously set with mysqli_set_local_infile_handler().

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

无返回值。

范例

See mysqli_set_local_infile_handler() examples

参见

  • mysqli_set_local_infile_handler() - Set callback function for LOAD DATA LOCAL INFILE command

mysqli::set_charset
mysqli::set_local_infile_handler
MySQLi


Set callback function for LOAD DATA LOCAL INFILE command

mysqli::set_local_infile_default
mysqli->sqlstate
MySQLi
PHP 手册

mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command

说明

bool mysqli_set_local_infile_handler ( mysqli $link , callback $read_func )

Object oriented style (method)

mysqli
bool set_local_infile_handler ( mysqli $link , callback $read_func )

Set callback function for LOAD DATA LOCAL INFILE command

The callbacks task is to read input from the file specified in the LOAD DATA LOCAL INFILE and to reformat it into the format understood by LOAD DATA INFILE.

The returned data needs to match the format specified in the LOAD DATA

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

read_func

A callback function or object method taking the following parameters:

stream

A PHP stream associated with the SQL commands INFILE

&buffer

A string buffer to store the rewritten input into

buflen

The maximum number of characters to be stored in the buffer

&errormsg

If an error occurs you can store an error message in here

The callback function should return the number of characters stored in the buffer or a negative value if an error occurred.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // convert to upper case and replace "," delimiter with [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Input:\n";

  $db->set_local_infile_handler("callme");
  $db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  $db->set_local_infile_default();

  $res = $db->query("SELECT * FROM t1");

  echo "\nResult:\n";
  while ($row = $res->fetch_assoc()) {
    echo join(",", $row)."\n";
  }
?>

Example #2 Procedural style

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // convert to upper case and replace "," delimiter with [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Input:\n";

  mysqli_set_local_infile_handler($db, "callme");
  mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  mysqli_set_local_infile_default($db);

  $res = mysqli_query($db, "SELECT * FROM t1");

  echo "\nResult:\n";
  while ($row = mysqli_fetch_assoc($res)) {
    echo join(",", $row)."\n";
  }
?>

上例将输出：

Input:
23,foo
42,bar

Output:
23,FOO
42,BAR

参见

  • mysqli_set_local_infile_default() - Unsets user defined handler for load local infile command

mysqli::set_local_infile_default
mysqli->sqlstate
MySQLi


Returns the SQLSTATE error from previous MySQL operation

mysqli::set_local_infile_handler
mysqli::ssl_set
MySQLi
PHP 手册

mysqli->sqlstate

mysqli_sqlstate

(PHP 5)

mysqli->sqlstate -- mysqli_sqlstate — Returns the SQLSTATE error from previous MySQL operation

说明

Object oriented style (property):

mysqli
string $sqlstate;

Procedural style:

string mysqli_sqlstate ( mysqli $link )

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Note: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

上例将输出：

Error - SQLSTATE 42S01.

参见

  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error

mysqli::set_local_infile_handler
mysqli::ssl_set
MySQLi


Used for establishing secure connections using SSL

mysqli->sqlstate
mysqli::stat
MySQLi
PHP 手册

mysqli::ssl_set

mysqli_ssl_set

(PHP 5)

mysqli::ssl_set -- mysqli_ssl_set — Used for establishing secure connections using SSL

说明

Object oriented style (method):

bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )

Procedural style:

bool mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

key

The path name to the key file.

cert

The path name to the certificate file.

ca

The path name to the certificate authority file.

capath

The pathname to a directory that contains trusted SSL CA certificates in PEM format.

cipher

A list of allowable ciphers to use for SSL encryption.

Any unused SSL parameters may be given as NULL

返回值

This function always returns TRUE value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

参见

  • mysqli_options() - Set options
  • mysqli_real_connect() - Opens a connection to a mysql server

mysqli->sqlstate
mysqli::stat
MySQLi


Gets the current system status

mysqli::ssl_set
mysqli::stmt_init
MySQLi
PHP 手册

mysqli::stat

mysqli_stat

(PHP 5)

mysqli::stat -- mysqli_stat — Gets the current system status

说明

Object oriented style (method):

string mysqli::stat ( void )

Procedural style:

string mysqli_stat ( mysqli $link )

mysqli_stat() returns a string containing information similar to that provided by the 'mysqladmin status' command. This includes uptime in seconds and the number of running threads, questions, reloads, and open tables.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

A string describing the server status. FALSE if an error occurred.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("System status: %s\n", $mysqli->stat());

$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("System status: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

上例将输出：

System status: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

参见

  • mysqli_get_server_info() - Returns the version of the MySQL server

mysqli::ssl_set
mysqli::stmt_init
MySQLi


Initializes a statement and returns an object for use with mysqli_stmt_prepare

mysqli::stat
mysqli::store_result
MySQLi
PHP 手册

mysqli::stmt_init

mysqli_stmt_init

(PHP 5)

mysqli::stmt_init -- mysqli_stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare

说明

Object oriented style (property):

mysqli
mysqli_stmt stmt_init ( void )

Procedural style :

mysqli_stmt mysqli_stmt_init ( mysqli $link )

Allocates and initializes a statement object suitable for mysqli_stmt_prepare().

Note: Any subsequent calls to any mysqli_stmt function will fail until mysqli_stmt_prepare() was called.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns an object.

参见

  • mysqli_stmt_prepare() - Prepare a SQL statement for execution

mysqli::stat
mysqli::store_result
MySQLi


Transfers a result set from the last query

mysqli::stmt_init
mysqli::thread_id
MySQLi
PHP 手册

mysqli::store_result

mysqli_store_result

(PHP 5)

mysqli::store_result -- mysqli_store_result — Transfers a result set from the last query

说明

Object oriented style (method):

mysqli_result store_result ( void )

Procedural style:

mysqli_result mysqli_store_result ( mysqli $link )

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns a buffered result object or FALSE if an error occurred.

Note: mysqli_store_result() returns FALSE in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns FALSE if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error() doesn't return an empty string, if mysqli_errno() returns a non zero value, or if mysqli_field_count() returns a non zero value. Also possible reason for this function returning FALSE after successfull call to mysqli_query() can be too large result set (memory for it cannot be allocated). If mysqli_field_count() returns a non-zero value, the statement should have produced a non-empty result set.

注释

Note: Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transfering large result sets using the mysqli_store_result() this becomes particularly important.

范例

See mysqli_multi_query().

参见

  • mysqli_real_query() - Execute an SQL query
  • mysqli_use_result() - Initiate a result set retrieval

mysqli::stmt_init
mysqli::thread_id
MySQLi


Returns the thread ID for the current connection

mysqli::store_result
mysqli::thread_safe
MySQLi
PHP 手册

mysqli::thread_id

mysqli_thread_id

(PHP 5)

mysqli::thread_id -- mysqli_thread_id — Returns the thread ID for the current connection

说明

Object oriented style (property):

mysqli
int $thread_id;

Procedural style:

int mysqli_thread_id ( mysqli $link )

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function. If the connection is lost and you reconnect with mysqli_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Note: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.
To kill a running query you can use the SQL command KILL QUERY processid.

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Returns the Thread ID for the current connection.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Error: MySQL server has gone away

参见

  • mysqli_kill() - Asks the server to kill a MySQL thread

mysqli::store_result
mysqli::thread_safe
MySQLi


Returns whether thread safety is given or not

mysqli::thread_id
mysqli::use_result
MySQLi
PHP 手册

mysqli::thread_safe

mysqli_thread_safe

(PHP 5)

mysqli::thread_safe -- mysqli_thread_safe — Returns whether thread safety is given or not

说明

Procedural style:

bool mysqli_thread_safe ( void )

Tells whether the client library is compiled as thread-safe.

返回值

TRUE if the client library is thread-safe, otherwise FALSE.

mysqli::thread_id
mysqli::use_result
MySQLi


Initiate a result set retrieval

mysqli::thread_safe
mysqli::warning_count
MySQLi
PHP 手册

mysqli::use_result

mysqli_use_result

(PHP 5)

mysqli::use_result -- mysqli_use_result — Initiate a result set retrieval

说明

Object oriented style (method):

mysqli_result use_result ( void )

Procedural style:

mysqli_result mysqli_use_result ( mysqli $link )

Used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection.

Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Note: The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

返回值

Returns an unbuffered result object or FALSE if an error occurred.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

参见

  • mysqli_real_query() - Execute an SQL query
  • mysqli_store_result() - Transfers a result set from the last query

mysqli::thread_safe
mysqli::warning_count
MySQLi


Returns the number of warnings from the last query for the given link

mysqli::use_result
MySQLi_STMT
MySQLi
PHP 手册

mysqli::warning_count

mysqli_warning_count

(PHP 5)

mysqli::warning_count -- mysqli_warning_count — Returns the number of warnings from the last query for the given link

说明

Object oriented style (property):

mysqli
int $warning_count;

Procedural style:

int mysqli_warning_count ( mysqli $link )

Returns the number of warnings from the last query in the connection.

Note: For retrieving warning messages you can use the SQL command SHOW WARNINGS [limit row_count].

参数

link

Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

返回值

Number of warnings or zero if there are no warnings.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* a remarkable city in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* a remarkable long city name in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Warning (1264): Data truncated for column 'Name' at row 1

参见

  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation

mysqli::use_result
MySQLi_STMT
MySQLi


The MySQLi_STMT class

简介

Represents a prepared statement.

Class synopsis

MySQLi_STMT
MySQLi_STMT {
/* Properties */
int $affected_rows;
int $errno;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Methods */
int mysqli_stmt_affected_rows ( mysqli_stmt $stmt )
int mysqli_stmt::attr_get ( int $attr )
bool mysqli_stmt::attr_set ( int $attr , int $mode )
bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )
bool mysqli_stmt::close ( void )
void mysqli_stmt::data_seek ( int $offset )
int mysqli_stmt_errno ( mysqli_stmt $stmt )
string mysqli_stmt_error ( mysqli_stmt $stmt )
bool mysqli_stmt::execute ( void )
bool mysqli_stmt::fetch ( void )
int mysqli_stmt_field_count ( mysqli_stmt $stmt )
void mysqli_stmt::free_result ( void )
object mysqli_stmt::get_warnings ( mysqli_stmt $stmt )
mixed mysqli_stmt_insert_id ( mysqli_stmt $stmt )
int mysqli_stmt_num_rows ( mysqli_stmt $stmt )
int mysqli_stmt_param_count ( mysqli_stmt $stmt )
mixed mysqli_stmt::prepare ( string $query )
bool mysqli_stmt::reset ( void )
mysqli_result mysqli_stmt::result_metadata ( void )
bool mysqli_stmt::send_long_data ( int $param_nr , string $data )
string mysqli_stmt_sqlstate ( mysqli_stmt $stmt )
bool mysqli_stmt::store_result ( void )
}

Table of Contents

  • mysqli_stmt->affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • mysqli_stmt::attr_get — Used to get the current value of a statement attribute
  • mysqli_stmt::attr_set — Used to modify the behavior of a prepared statement
  • mysqli_stmt::bind_param — Binds variables to a prepared statement as parameters
  • mysqli_stmt::bind_result — Binds variables to a prepared statement for result storage
  • mysqli_stmt::close — Closes a prepared statement
  • mysqli_stmt::data_seek — Seeks to an arbitrary row in statement result set
  • mysqli_stmt->errno — Returns the error code for the most recent statement call
  • mysqli_stmt->error — Returns a string description for last statement error
  • mysqli_stmt->execute — Executes a prepared Query
  • mysqli_stmt::fetch — Fetch results from a prepared statement into the bound variables
  • mysqli_stmt->field_count — Returns the number of field in the given statement
  • stmt::free_result — Frees stored result memory for the given statement handle
  • mysqli_stmt::get_warnings — 说明
  • mysqli_stmt->insert_id — Get the ID generated from the previous INSERT operation
  • mysqli_stmt::num_rows — Return the number of rows in statements result set
  • mysqli_stmt->param_count — Returns the number of parameter for the given statement
  • mysqli_stmt::prepare — Prepare a SQL statement for execution
  • mysqli_stmt::reset — Resets a prepared statement
  • mysqli_stmt::result_metadata — Returns result set metadata from a prepared statement
  • mysqli_stmt::send_long_data — Send data in blocks
  • mysqli_stmt::sqlstate — Returns SQLSTATE error from previous statement operation
  • mysqli_stmt::store_result — Transfers a result set from a prepared statement
mysqli::warning_count
mysqli_stmt->affected_rows
Mysqli


Returns the total number of rows changed, deleted, or inserted by the last executed statement

MySQLi_STMT
mysqli_stmt::attr_get
MySQLi_STMT
PHP 手册

mysqli_stmt->affected_rows

mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt->affected_rows -- mysqli_stmt_affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement

说明

Object oriented style (property):

mysqli_stmt
int $affected_rows;

Procedural style :

int mysqli_stmt_affected_rows ( mysqli_stmt $stmt )

Returns the number of rows affected by INSERT, UPDATE, or DELETE query.

This function only works with queries which update a table. In order to get the number of rows from a SELECT query, use mysqli_stmt_num_rows() instead.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error. NULL indicates an invalid argument was supplied to the function.

Note: If the number of affected rows is greater than maximal PHP int value, the number of affected rows will be returned as a string value.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = $mysqli->prepare($query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* execute statement */
    $stmt->execute();

    printf("rows inserted: %d\n", $stmt->affected_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* execute statement */
    mysqli_stmt_execute($stmt);

    printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

rows inserted: 17

参见

  • mysqli_stmt_num_rows() - Return the number of rows in statements result set
  • mysqli_prepare() - Prepare a SQL statement for execution

MySQLi_STMT
mysqli_stmt::attr_get
MySQLi_STMT


Used to get the current value of a statement attribute

mysqli_stmt->affected_rows
mysqli_stmt::attr_set
MySQLi_STMT
PHP 手册

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Used to get the current value of a statement attribute

说明

Object oriented style (method):

int mysqli_stmt::attr_get ( int $attr )

Procedural style:

int mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr )

Gets the current value of a statement attribute.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

attr

The attribute that you want to get.

返回值

Returns FALSE if the attribute is not found, otherwise returns the value of the attribute.

mysqli_stmt->affected_rows
mysqli_stmt::attr_set
MySQLi_STMT


Used to modify the behavior of a prepared statement

mysqli_stmt::attr_get
mysqli_stmt::bind_param
MySQLi_STMT
PHP 手册

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Used to modify the behavior of a prepared statement

说明

Object oriented style (method):

bool mysqli_stmt::attr_set ( int $attr , int $mode )

Procedural style:

bool mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode )

Used to modify the behavior of a prepared statement. This function may be called multiple times to set several attributes.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

attr

The attribute that you want to set. It can have one of the following values:

Attribute values
Character | Description
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | If set to 1, causes mysqli_stmt_store_result() to update the metadata MYSQL_FIELD->max_length value.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Type of cursor to open for statement when mysqli_stmt_execute() is invoked. mode can be MYSQLI_CURSOR_TYPE_NO_CURSOR (the default) or MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Number of rows to fetch from server at a time when using a cursor. mode can be in the range from 1 to the maximum value of unsigned long. The default is 1.

If you use the MYSQLI_STMT_ATTR_CURSOR_TYPE option with MYSQLI_CURSOR_TYPE_READ_ONLY, a cursor is opened for the statement when you invoke mysqli_stmt_execute(). If there is already an open cursor from a previous mysqli_stmt_execute() call, it closes the cursor before opening a new one. mysqli_stmt_reset() also closes any open cursor before preparing the statement for re-execution. mysqli_stmt_free_result() closes any open cursor.

If you open a cursor for a prepared statement, mysqli_stmt_store_result() is unnecessary.

mode

The value to assign to the attribute.

mysqli_stmt::attr_get
mysqli_stmt::bind_param
MySQLi_STMT


Binds variables to a prepared statement as parameters

mysqli_stmt::attr_set
mysqli_stmt::bind_result
MySQLi_STMT
PHP 手册

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Binds variables to a prepared statement as parameters

说明

Object oriented style (method):

bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Procedural style:

bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Bind variables for the parameter markers in the SQL statement that was passed to mysqli_prepare().

Note: If data size of a variable exceeds max. allowed packet size (max_allowed_packet), you have to specify b in types and use mysqli_stmt_send_long_data() to send the data in packets.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

types

A string that contains one or more characters which specify the types for the corresponding bind variables:

Type specification chars
Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be sent in packets

var1

The number of variables and length of string types must match the parameters in the statement.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
mysqli_stmt_execute($stmt);

printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

/* close statement and connection */
mysqli_stmt_close($stmt);

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", mysqli_affected_rows($link));

/* close connection */
mysqli_close($link);
?>

上例将输出：

1 Row inserted.
1 Row deleted.

参见

  • mysqli_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_send_long_data() - Send data in blocks
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error

mysqli_stmt::attr_set
mysqli_stmt::bind_result
MySQLi_STMT


Binds variables to a prepared statement for result storage

mysqli_stmt::bind_param
mysqli_stmt::close
MySQLi_STMT
PHP 手册

mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Binds variables to a prepared statement for result storage

说明

Object oriented style (method):

bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

Procedural style:

bool mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] )

Binds columns in the result set to variables.

When mysqli_stmt_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified variables var1, ... .

Note: Note that all columns must be bound after mysqli_stmt_execute() and prior to calling mysqli_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.
A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time mysqli_stmt_fetch() is called.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

var1

The variable to be bound.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1, $col2);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    $stmt->close();
}
/* close connection */
$mysqli->close();

?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* bind variables to prepared statement */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

参见

  • mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error

mysqli_stmt::bind_param
mysqli_stmt::close
MySQLi_STMT


Closes a prepared statement

mysqli_stmt::bind_result
mysqli_stmt::data_seek
MySQLi_STMT
PHP 手册

mysqli_stmt::close

mysqli_stmt_close

(PHP 5)

mysqli_stmt::close -- mysqli_stmt_close — Closes a prepared statement

说明

Object oriented style (method):

bool mysqli_stmt::close ( void )

Procedural style:

bool mysqli_stmt_close ( mysqli_stmt $stmt )

Closes a prepared statement. mysqli_stmt_close() also deallocates the statement handle. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mysqli_prepare() - Prepare a SQL statement for execution

mysqli_stmt::bind_result
mysqli_stmt::data_seek
MySQLi_STMT


Seeks to an arbitrary row in statement result set

mysqli_stmt::close
mysqli_stmt->errno
MySQLi_STMT
PHP 手册

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Seeks to an arbitrary row in statement result set

说明

Object oriented style (method):

void mysqli_stmt::data_seek ( int $offset )

Procedural style:

void mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset )

Seeks to an arbitrary result pointer in the statement result set.

mysqli_stmt_store_result() must be called prior to mysqli_stmt_data_seek().

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

offset

Must be between zero and the total number of rows minus one (0.. mysqli_stmt_num_rows() - 1).

返回值

无返回值。

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* store result */
    $stmt->store_result();

    /* seek to row no. 400 */
    $stmt->data_seek(399);

    /* fetch values */
    $stmt->fetch();

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* store result */
    mysqli_stmt_store_result($stmt);

    /* seek to row no. 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* fetch values */
    mysqli_stmt_fetch($stmt);

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

City: Benin City  Countrycode: NGA

参见

  • mysqli_prepare() - Prepare a SQL statement for execution

mysqli_stmt::close
mysqli_stmt->errno
MySQLi_STMT


Returns the error code for the most recent statement call

mysqli_stmt::data_seek
mysqli_stmt->error
MySQLi_STMT
PHP 手册

mysqli_stmt->errno

mysqli_stmt_errno

(PHP 5)

mysqli_stmt->errno -- mysqli_stmt_errno — Returns the error code for the most recent statement call

说明

Object oriented style (property):

mysqli_stmt
int $errno;

Procedural style :

int mysqli_stmt_errno ( mysqli_stmt $stmt )

Returns the error code for the most recently invoked statement function that can succeed or fail.

Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

An error code value. Zero means no error occurred.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %d.\n", $stmt->errno);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %d.\n", mysqli_stmt_errno($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Error: 1146.

参见

  • mysqli_stmt_error() - Returns a string description for last statement error
  • mysqli_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation

mysqli_stmt::data_seek
mysqli_stmt->error
MySQLi_STMT


Returns a string description for last statement error

mysqli_stmt->errno
mysqli_stmt->execute
MySQLi_STMT
PHP 手册

mysqli_stmt->error

mysqli_stmt_error

(PHP 5)

mysqli_stmt->error -- mysqli_stmt_error — Returns a string description for last statement error

说明

Object oriented style (property):

mysqli_stmt
string $error;

Procedural style:

string mysqli_stmt_error ( mysqli_stmt $stmt )

Returns a containing the error message for the most recently invoked statement function that can succeed or fail.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

A string that describes the error. An empty string if no error occurred.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->error);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_error($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Error: Table 'world.myCountry' doesn't exist.

参见

  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation

mysqli_stmt->errno
mysqli_stmt->execute
MySQLi_STMT


Executes a prepared Query

mysqli_stmt->error
mysqli_stmt::fetch
MySQLi_STMT
PHP 手册

mysqli_stmt->execute

mysqli_stmt_execute

(PHP 5)

mysqli_stmt->execute -- mysqli_stmt_execute — Executes a prepared Query

说明

Object oriented style (method):

bool mysqli_stmt::execute ( void )

Procedural style:

bool mysqli_stmt_execute ( mysqli_stmt $stmt )

Executes a query that has been previously prepared using the mysqli_prepare() function. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_stmt_fetch() function is used.

Note: When using mysqli_stmt_execute(), the mysqli_stmt_fetch() function must be used to fetch the data prior to performing any additional queries.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    $result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    mysqli_free_result($result);
}

/* remove table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

上例将输出：

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

参见

  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters

mysqli_stmt->error
mysqli_stmt::fetch
MySQLi_STMT


Fetch results from a prepared statement into the bound variables

mysqli_stmt->execute
mysqli_stmt->field_count
MySQLi_STMT
PHP 手册

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Fetch results from a prepared statement into the bound variables

说明

Object oriented style (method):

bool mysqli_stmt::fetch ( void )

Procedural style:

bool mysqli_stmt_fetch ( mysqli_stmt $stmt )

Fetch the result from a prepared statement into the variables bound by mysqli_stmt_bind_result().

Note: Note that all columns must be bound by the application before calling mysqli_stmt_fetch().

Note: Data are transferred unbuffered without calling mysqli_stmt_store_result() which can decrease performance (but reduces memory cost).

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

返回值
Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists or data truncation occurred

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* execute statement */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

参见

  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error
  • mysqli_stmt_bind_result() - Binds variables to a prepared statement for result storage

mysqli_stmt->execute
mysqli_stmt->field_count
MySQLi_STMT


Returns the number of field in the given statement

mysqli_stmt::fetch
stmt::free_result
MySQLi_STMT
PHP 手册

mysqli_stmt->field_count

mysqli_stmt_field_count

(PHP 5)

mysqli_stmt->field_count -- mysqli_stmt_field_count — Returns the number of field in the given statement

说明

mysqli_stmt
int $field_count;
int mysqli_stmt_field_count ( mysqli_stmt $stmt )
Warning

本函数暂无文档，仅有参数列表。

mysqli_stmt::fetch
stmt::free_result
MySQLi_STMT


Frees stored result memory for the given statement handle

mysqli_stmt->field_count
mysqli_stmt::get_warnings
MySQLi_STMT
PHP 手册

stmt::free_result

mysqli_stmt_free_result

(PHP 5)

stmt::free_result -- mysqli_stmt_free_result — Frees stored result memory for the given statement handle

说明

Object oriented style (method):

void mysqli_stmt::free_result ( void )

Procedural style:

void mysqli_stmt_free_result ( mysqli_stmt $stmt )

Frees the result memory associated with the statement, which was allocated by mysqli_stmt_store_result().

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

无返回值。

参见

  • mysqli_stmt_store_result() - Transfers a result set from a prepared statement

mysqli_stmt->field_count
mysqli_stmt::get_warnings
MySQLi_STMT


说明

stmt::free_result
mysqli_stmt->insert_id
MySQLi_STMT
PHP 手册

mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings —

说明

object mysqli_stmt::get_warnings ( mysqli_stmt $stmt )
object mysqli_stmt_get_warnings ( mysqli_stmt $stmt )
Warning

本函数暂无文档，仅有参数列表。

stmt::free_result
mysqli_stmt->insert_id
MySQLi_STMT


Get the ID generated from the previous INSERT operation

mysqli_stmt::get_warnings
mysqli_stmt::num_rows
MySQLi_STMT
PHP 手册

mysqli_stmt->insert_id

mysqli_stmt_insert_id

(PHP 5)

mysqli_stmt->insert_id -- mysqli_stmt_insert_id — Get the ID generated from the previous INSERT operation

说明

mysqli_stmt
int $insert_id;
mixed mysqli_stmt_insert_id ( mysqli_stmt $stmt )
Warning

本函数暂无文档，仅有参数列表。

mysqli_stmt::get_warnings
mysqli_stmt::num_rows
MySQLi_STMT


Return the number of rows in statements result set

mysqli_stmt->insert_id
mysqli_stmt->param_count
MySQLi_STMT
PHP 手册

mysqli_stmt::num_rows

mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt::num_rows -- mysqli_stmt_num_rows — Return the number of rows in statements result set

说明

Object oriented style (property):

mysqli_stmt
int $num_rows;

Procedural style :

int mysqli_stmt_num_rows ( mysqli_stmt $stmt )

Returns the number of rows in the result set. The use of mysqli_stmt_num_rows() depends on whether or not you used mysqli_stmt_store_result() to buffer the entire result set in the statement handle.

If you use mysqli_stmt_store_result(), mysqli_stmt_num_rows() may be called immediately.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

An integer representing the number of rows in result set.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Number of rows: 20.

参见

  • mysqli_stmt_affected_rows() - Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_store_result() - Transfers a result set from a prepared statement

mysqli_stmt->insert_id
mysqli_stmt->param_count
MySQLi_STMT


Returns the number of parameter for the given statement

mysqli_stmt::num_rows
mysqli_stmt::prepare
MySQLi_STMT
PHP 手册

mysqli_stmt->param_count

mysqli_stmt_param_count

(PHP 5)

mysqli_stmt->param_count -- mysqli_stmt_param_count — Returns the number of parameter for the given statement

说明

Object oriented style (property):

mysqli_stmt
int $param_count;

Procedural style:

int mysqli_stmt_param_count ( mysqli_stmt $stmt )

Returns the number of parameter markers present in the prepared statement.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

Returns an integer representing the number of parameters.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Statement has 2 markers.

参见

  • mysqli_prepare() - Prepare a SQL statement for execution

mysqli_stmt::num_rows
mysqli_stmt::prepare
MySQLi_STMT


Prepare a SQL statement for execution

mysqli_stmt->param_count
mysqli_stmt::reset
MySQLi_STMT
PHP 手册

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Prepare a SQL statement for execution

说明

Object oriented style (method)

mixed mysqli_stmt::prepare ( string $query )

Procedure style:

bool mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query )

Prepares the SQL query pointed to by the null-terminated string query.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

query

The query, as a string. It must consist of a single SQL statement.

You can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Note: You should not add a terminating semicolon or \g to the statement.

Note: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.
However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Definition Language (DDL) statements.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Amersfoort is in district Utrecht

参见

mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare, mysqli_stmt_execute() - Executes a prepared Query, mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables, mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters, mysqli_stmt_bind_result() - Binds variables to a prepared statement for result storage mysqli_stmt_close() - Closes a prepared statement.

mysqli_stmt->param_count
mysqli_stmt::reset
MySQLi_STMT


Resets a prepared statement

mysqli_stmt::prepare
mysqli_stmt::result_metadata
MySQLi_STMT
PHP 手册

mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5)

mysqli_stmt::reset -- mysqli_stmt_reset — Resets a prepared statement

说明

Object oriented style (method):

bool mysqli_stmt::reset ( void )

Procedural style:

bool mysqli_stmt_reset ( mysqli_stmt $stmt )

Resets a prepared statement on client and server to state after prepare.

For now this is mainly used to reset data sent with mysqli_stmt_send_long_data().

To prepare a statement with another query use function mysqli_stmt_prepare().

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mysqli_prepare() - Prepare a SQL statement for execution

mysqli_stmt::prepare
mysqli_stmt::result_metadata
MySQLi_STMT


Returns result set metadata from a prepared statement

mysqli_stmt::reset
mysqli_stmt::send_long_data
MySQLi_STMT
PHP 手册

mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Returns result set metadata from a prepared statement

说明

Object oriented style (method):

mysqli_result mysqli_stmt::result_metadata ( void )

Procedural style:

mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt )

If a statement passed to mysqli_prepare() is one that produces a result set, mysqli_stmt_result_metadata() returns the result object that can be used to process the meta information such as total number of fields and individual field information.

Note: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result()

Note: The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_stmt_fetch().

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

Returns a result object or FALSE if an error occurred.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* get resultset for metadata */
$result = mysqli_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = mysqli_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

参见

  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_free_result() - Frees the memory associated with a result

mysqli_stmt::reset
mysqli_stmt::send_long_data
MySQLi_STMT


Send data in blocks

mysqli_stmt::result_metadata
mysqli_stmt::sqlstate
MySQLi_STMT
PHP 手册

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Send data in blocks

说明

Object oriented style (method)

bool mysqli_stmt::send_long_data ( int $param_nr , string $data )

Procedural style:

bool mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data )

Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob exceeds the size of max_allowed_packet. This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

param_nr

Indicates which parameter to associate the data with. Parameters are numbered beginning with 0.

data

A string containing data to be sent.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$stmt->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
    $stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$stmt->execute();
?>

参见

  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters

mysqli_stmt::result_metadata
mysqli_stmt::sqlstate
MySQLi_STMT


Returns SQLSTATE error from previous statement operation

mysqli_stmt::send_long_data
mysqli_stmt::store_result
MySQLi_STMT
PHP 手册

mysqli_stmt::sqlstate

mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt::sqlstate -- mysqli_stmt_sqlstate — Returns SQLSTATE error from previous statement operation

说明

Object oriented style (property):

mysqli_stmt
string $sqlstate;

Procedural style:

string mysqli_stmt_sqlstate ( mysqli_stmt $stmt )

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see » http://dev.mysql.com/doc/mysql/en/error-handling.html.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

注释

Note: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->sqlstate);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Error: 42S02.

参见

  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error

mysqli_stmt::send_long_data
mysqli_stmt::store_result
MySQLi_STMT


Transfers a result set from a prepared statement

mysqli_stmt::sqlstate
MySQLi_Result
MySQLi_STMT
PHP 手册

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Transfers a result set from a prepared statement

说明

Object oriented style (method):

bool mysqli_stmt::store_result ( void )

Procedural style:

bool mysqli_stmt_store_result ( mysqli_stmt $stmt )

You must call mysqli_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN), and only if you want to buffer the complete result set by the client, so that the subsequent mysqli_stmt_fetch() call returns buffered data.

Note: It is unnecessary to call mysqli_stmt_store_result() for other queries, but if you do, it will not harm or cause any notable performance in all cases. You can detect whether the query produced a result set by checking if mysqli_stmt_result_metadata() returns NULL.

参数

stmt

Procedural style only: A statement identifier returned by mysqli_stmt_init().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* free result */
    $stmt->free_result();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* free result */
    mysqli_stmt_free_result($stmt);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Number of rows: 20.

参见

  • mysqli_prepare() - Prepare a SQL statement for execution
  • mysqli_stmt_result_metadata() - Returns result set metadata from a prepared statement
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables

mysqli_stmt::sqlstate
MySQLi_Result
MySQLi_STMT


The MySQLi_Result class

简介

Represents the result set obtained from a query against the database.

Class synopsis

MySQLi_Result
MySQLi_Result {
/* Properties */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Methods */
int mysqli_field_tell ( mysqli_result $result )
bool mysqli_result::data_seek ( int $offset )
mixed mysqli_result::fetch_all ([ int $resulttype ] )
mixed mysqli_result::fetch_array ([ int $resulttype ] )
array mysqli_result::fetch_assoc ( void )
object mysqli_result::fetch_field_direct ( int $fieldnr )
object mysqli_result::fetch_field ( void )
array mysqli_result::fetch_fields ( void )
object mysqli_result::fetch_object ([ string $class_name [, array $params ]] )
mixed mysqli_result::fetch_row ( void )
int mysqli_num_fields ( mysqli_result $result )
bool mysqli_result::field_seek ( int $fieldnr )
void mysqli_result::free ( void )
array mysqli_fetch_lengths ( mysqli_result $result )
int mysqli_num_rows ( mysqli_result $result )
}

Table of Contents

  • mysqli_result->current_field — Get current field offset of a result pointer
  • mysqli_result::data_seek — Adjusts the result pointer to an arbitary row in the result
  • mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
  • mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
  • mysqli_result::fetch_assoc — Fetch a result row as an associative array
  • mysqli_result::fetch_field_direct — Fetch meta-data for a single field
  • mysqli_result::fetch_field — Returns the next field in the result set
  • mysqli_result::fetch_fields — Returns an array of objects representing the fields in a result set
  • mysqli_result::fetch_object — Returns the current row of a result set as an object
  • mysqli_result::fetch_row — Get a result row as an enumerated array
  • mysqli_result->field_count — Get the number of fields in a result
  • mysqli_result::field_seek — Set result pointer to a specified field offset
  • mysqli_result::free — Frees the memory associated with a result
  • mysqli_result->lengths — Returns the lengths of the columns of the current row in the result set
  • mysqli_result->num_rows — Gets the number of rows in a result
mysqli_stmt::store_result
mysqli_result->current_field
Mysqli


Get current field offset of a result pointer

MySQLi_Result
mysqli_result::data_seek
MySQLi_Result
PHP 手册

mysqli_result->current_field

mysqli_field_tell

(PHP 5)

mysqli_result->current_field -- mysqli_field_tell — Get current field offset of a result pointer

说明

Object oriented style (property):

mysqli_result
int $current_field ;

Procedural style:

int mysqli_field_tell ( mysqli_result $result )

Returns the position of the field cursor used for the last mysqli_fetch_field() call. This value can be used as an argument to mysqli_field_seek().

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

Returns current offset of field cursor.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        /* get fieldpointer offset */
        $currentfield = $result->current_field;

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        /* get fieldpointer offset */
        $currentfield = mysqli_field_tell($result);

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Column 1:
Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Column 2:
Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

参见

  • mysqli_fetch_field() - Returns the next field in the result set
  • mysqli_field_seek() - Set result pointer to a specified field offset

MySQLi_Result
mysqli_result::data_seek
MySQLi_Result


Adjusts the result pointer to an arbitary row in the result

mysqli_result->current_field
mysqli_result::fetch_all
MySQLi_Result
PHP 手册

mysqli_result::data_seek

mysqli_data_seek

(PHP 5)

mysqli_result::data_seek -- mysqli_data_seek — Adjusts the result pointer to an arbitary row in the result

说明

Object oriented style (method):

bool mysqli_result::data_seek ( int $offset )

Procedural style:

bool mysqli_data_seek ( mysqli_result $result , int $offset )

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

offset

The field offset. Must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: This function can only be used with buffered results attained from the use of the mysqli_store_result() or mysqli_query() functions.

范例

Example #1 Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query( $query)) {

    /* seek to row no. 400 */
    $result->data_seek(399);

    /* fetch row */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

City: Benin City  Countrycode: NGA

参见

  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_num_rows() - Gets the number of rows in a result

mysqli_result->current_field
mysqli_result::fetch_all
MySQLi_Result


Fetches all result rows as an associative array, a numeric array, or both

mysqli_result::data_seek
mysqli_result::fetch_array
MySQLi_Result
PHP 手册

mysqli_result::fetch_all

mysqli_fetch_all

(No version information available, might be only in CVS)

mysqli_result::fetch_all -- mysqli_fetch_all — Fetches all result rows as an associative array, a numeric array, or both

说明

Object oriented style (method):

mixed mysqli_result::fetch_all ([ int $resulttype ] )

Procedural style:

mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype ] )

Available only with mysqlnd.

mysqli_fetch_all() fetches all result rows and returns the result set as an associative array, a numeric array, or both.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

resulttype

This optional parameter is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. Defaults to MYSQLI_NUM.

返回值

Returns an array of associative or numeric arrays holding result rows.

参见

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_query() - Performs a query on the database

mysqli_result::data_seek
mysqli_result::fetch_array
MySQLi_Result


Fetch a result row as an associative, a numeric array, or both

mysqli_result::fetch_all
mysqli_result::fetch_assoc
MySQLi_Result
PHP 手册

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5)

mysqli_result::fetch_array -- mysqli_fetch_array — Fetch a result row as an associative, a numeric array, or both

说明

Object oriented style (method):

mixed mysqli_result::fetch_array ([ int $resulttype ] )

Procedural style:

mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype ] )

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

mysqli_fetch_array() is an extended version of the mysqli_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the mysqli_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

resulttype

This optional parameter is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. Defaults to MYSQLI_BOTH.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

返回值

Returns an array of strings that corresponds to the fetched row or NULL if there are no more rows in resultset.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
$result->close();

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

上例将输出：

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

参见

  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitary row in the result

mysqli_result::fetch_all
mysqli_result::fetch_assoc
MySQLi_Result


Fetch a result row as an associative array

mysqli_result::fetch_array
mysqli_result::fetch_field_direct
MySQLi_Result
PHP 手册

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Fetch a result row as an associative array

说明

Object oriented style (method):

array mysqli_result::fetch_assoc ( void )

Procedural style:

array mysqli_fetch_assoc ( mysqli_result $result )

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

Returns an associative array of strings representing the fetched row in the result set, where each key in the array represents the name of one of the result set's columns or NULL if there are no more rows in resultset.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

参见

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitary row in the result

mysqli_result::fetch_array
mysqli_result::fetch_field_direct
MySQLi_Result


Fetch meta-data for a single field

mysqli_result::fetch_assoc
mysqli_result::fetch_field
MySQLi_Result
PHP 手册

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Fetch meta-data for a single field

说明

Object oriented style (method):

object mysqli_result::fetch_field_direct ( int $fieldnr )

Procedural style:

object mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr )

Returns an object which contains field definition information from the specified result set.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

fieldnr

The field number. This value must be in the range from 0 to number of fields - 1.

返回值

Returns an object which contains field definition information or FALSE if no field information for specified fieldnr is available.

Object attributes
Attribute | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
length | The width of the field, as specified in the tabl definition.
charsetnr | The character set number for the field.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

参见

  • mysqli_num_fields() - Get the number of fields in a result
  • mysqli_fetch_field() - Returns the next field in the result set
  • mysqli_fetch_fields() - Returns an array of objects representing the fields in a result set

mysqli_result::fetch_assoc
mysqli_result::fetch_field
MySQLi_Result


Returns the next field in the result set

mysqli_result::fetch_field_direct
mysqli_result::fetch_fields
MySQLi_Result
PHP 手册

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5)

mysqli_result::fetch_field -- mysqli_fetch_field — Returns the next field in the result set

说明

Object oriented style (method):

object mysqli_result::fetch_field ( void )

Procedural style:

object mysqli_fetch_field ( mysqli_result $result )

Returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

Returns an object which contains field definition information or FALSE if no field information is available.

Object properties
Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
length | The width of the field, as specified in the table definition.
charsetnr | The character set number for the field.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

参见

  • mysqli_num_fields() - Get the number of fields in a result
  • mysqli_fetch_field_direct() - Fetch meta-data for a single field
  • mysqli_fetch_fields() - Returns an array of objects representing the fields in a result set
  • mysqli_field_seek() - Set result pointer to a specified field offset

mysqli_result::fetch_field_direct
mysqli_result::fetch_fields
MySQLi_Result


Returns an array of objects representing the fields in a result set

mysqli_result::fetch_field
mysqli_result::fetch_object
MySQLi_Result
PHP 手册

mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Returns an array of objects representing the fields in a result set

说明

Object oriented style (method):

array mysqli_result::fetch_fields ( void )

Procedural Style:

array mysqli_fetch_fields ( mysqli_result $result )

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

Returns an array of objects which contains field definition information or FALSE if no field information is available.

Object properties
Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
length | The width of the field, as specified in the table definition.
charsetnr | The character set number for the field.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    $finfo = $result->fetch_fields();

    foreach ($finfo as $val) {
        printf("Name:     %s\n", $val->name);
        printf("Table:    %s\n", $val->table);
        printf("max. Len: %d\n", $val->max_length);
        printf("Flags:    %d\n", $val->flags);
        printf("Type:     %d\n\n", $val->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all columns */
    $finfo = mysqli_fetch_fields($result);

    foreach ($finfo as $val) {
        printf("Name:     %s\n", $val->name);
        printf("Table:    %s\n", $val->table);
        printf("max. Len: %d\n", $val->max_length);
        printf("Flags:    %d\n", $val->flags);
        printf("Type:     %d\n\n", $val->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

参见

  • mysqli_num_fields() - Get the number of fields in a result
  • mysqli_fetch_field_direct() - Fetch meta-data for a single field
  • mysqli_fetch_field() - Returns the next field in the result set

mysqli_result::fetch_field
mysqli_result::fetch_object
MySQLi_Result


Returns the current row of a result set as an object

mysqli_result::fetch_fields
mysqli_result::fetch_row
MySQLi_Result
PHP 手册

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5)

mysqli_result::fetch_object -- mysqli_fetch_object — Returns the current row of a result set as an object

说明

Object oriented style (method):

object mysqli_result::fetch_object ([ string $class_name [, array $params ]] )

Procedural style:

object mysqli_fetch_object ( mysqli_result $result [, string $class_name [, array $params ]] )

The mysqli_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

class_name

The name of the class to instantiate, set the properties of and return. If not specified, a stdClass object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

返回值

Returns an object with string properties that corresponds to the fetched row or NULL if there are no more rows in resultset.

Note: 本函数返回的字段名是区分大小写的。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

更新日志

版本 | 说明
5.0.0 | Added the ability to return as a different object.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

参见

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitary row in the result

mysqli_result::fetch_fields
mysqli_result::fetch_row
MySQLi_Result


Get a result row as an enumerated array

mysqli_result::fetch_object
mysqli_result->field_count
MySQLi_Result
PHP 手册

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5)

mysqli_result::fetch_row -- mysqli_fetch_row — Get a result row as an enumerated array

说明

Object oriented style (method):

mixed mysqli_result::fetch_row ( void )

Procedural style:

mixed mysqli_fetch_row ( mysqli_result $result )

Fetches one row of data from the result set and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to this function will return the next row within the result set, or NULL if there are no more rows.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

mysqli_fetch_row() returns an array of strings that corresponds to the fetched row or NULL if there are no more rows in result set.

Note: 本函数对 PHP NULL 值设定 NULL 字段。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

参见

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitary row in the result

mysqli_result::fetch_object
mysqli_result->field_count
MySQLi_Result


Get the number of fields in a result

mysqli_result::fetch_row
mysqli_result::field_seek
MySQLi_Result
PHP 手册

mysqli_result->field_count

mysqli_num_fields

(PHP 5)

mysqli_result->field_count -- mysqli_num_fields — Get the number of fields in a result

说明

Object oriented style (property):

mysqli_result
int $field_count;

Procedural style:

int mysqli_num_fields ( mysqli_result $result )

Returns the number of fields from specified result set.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

The number of fields from a result set.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = $result->field_count;

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = mysqli_num_fields($result);

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Result set has 5 fields.

参见

  • mysqli_fetch_field() - Returns the next field in the result set

mysqli_result::fetch_row
mysqli_result::field_seek
MySQLi_Result


Set result pointer to a specified field offset

mysqli_result->field_count
mysqli_result::free
MySQLi_Result
PHP 手册

mysqli_result::field_seek

mysqli_field_seek

(PHP 5)

mysqli_result::field_seek -- mysqli_field_seek — Set result pointer to a specified field offset

说明

Object oriented style (method):

bool mysqli_result::field_seek ( int $fieldnr )

Procedural style:

bool mysqli_field_seek ( mysqli_result $result , int $fieldnr )

Sets the field cursor to the given offset. The next call to mysqli_fetch_field() will retrieve the field definition of the column associated with that offset.

Note: To seek to the beginning of a row, pass an offset value of zero.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

fieldnr

The field number. This value must be in the range from 0 to number of fields - 1.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for 2nd column */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for 2nd column */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

参见

  • mysqli_fetch_field() - Returns the next field in the result set

mysqli_result->field_count
mysqli_result::free
MySQLi_Result


Frees the memory associated with a result

mysqli_result::field_seek
mysqli_result->lengths
MySQLi_Result
PHP 手册

mysqli_result::free

mysqli_free_result

(PHP 5)

mysqli_result::free -- mysqli_free_result — Frees the memory associated with a result

说明

Object oriented style (all methods are equivalent):

void mysqli_result::free ( void )
void mysqli_result::close ( void )
void mysqli_result::free_result ( void )

Procedural style:

void mysqli_free_result ( mysqli_result $result )

Frees the memory associated with the result.

Note: You should always free your result with mysqli_free_result(), when your result object is not needed anymore.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

无返回值。

参见

  • mysqli_query() - Performs a query on the database
  • mysqli_stmt_store_result() - Transfers a result set from a prepared statement
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval

mysqli_result::field_seek
mysqli_result->lengths
MySQLi_Result


Returns the lengths of the columns of the current row in the result set

mysqli_result::free
mysqli_result->num_rows
MySQLi_Result
PHP 手册

mysqli_result->lengths

mysqli_fetch_lengths

(PHP 5)

mysqli_result->lengths -- mysqli_fetch_lengths — Returns the lengths of the columns of the current row in the result set

说明

Object oriented style (property):

mysqli_result
array $lengths;

Procedural style:

array mysqli_fetch_lengths ( mysqli_result $result )

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

mysqli_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling mysqli_fetch_row/array/object or after retrieving all rows in the result.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* display column lengths */
    foreach ($result->lengths as $i => $val) {
        printf("Field %2d has Length %2d\n", $i+1, $val);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* display column lengths */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Field %2d has Length %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Field  1 has Length  3
Field  2 has Length  5
Field  3 has Length 13
Field  4 has Length  9
Field  5 has Length  6
Field  6 has Length  1
Field  7 has Length  6
Field  8 has Length  4
Field  9 has Length  6
Field 10 has Length  6
Field 11 has Length  5
Field 12 has Length 44
Field 13 has Length  7
Field 14 has Length  3
Field 15 has Length  2
mysqli_result::free
mysqli_result->num_rows
MySQLi_Result


Gets the number of rows in a result

mysqli_result->lengths
MySQLi_Driver
MySQLi_Result
PHP 手册

mysqli_result->num_rows

mysqli_num_rows

(PHP 5)

mysqli_result->num_rows -- mysqli_num_rows — Gets the number of rows in a result

说明

Object oriented style (property):

mysqli_result
int $num_rows;

Procedural style:

int mysqli_num_rows ( mysqli_result $result )

Returns the number of rows in the result set.

The use of mysqli_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets mysqli_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

参数

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

返回值

Returns number of rows in the result set.

Note: If the number of rows is greater than maximal int value, the number will be returned as a string.

范例

Example #1 Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = $result->num_rows;

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Example #2 Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

上例将输出：

Result set has 239 rows.

参见

  • mysqli_affected_rows() - Gets the number of affected rows in a previous MySQL operation
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval
  • mysqli_query() - Performs a query on the database

mysqli_result->lengths
MySQLi_Driver
MySQLi_Result


The MySQLi_Driver class

简介

MySQLi Driver.

Class synopsis

MySQLi_Driver
MySQLi_Driver {
/* Properties */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly string $embedded ;
public bool $reconnect ;
public int $report-mode ;
/* Methods */
void mysqli_driver::embedded_server_end ( void )
bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )
}

属性

client_info

The Client API header version

client_version

The Client version

driver_version

The MySQLi Driver version

embedded

Wether MySQLi Embedded support is enabled

reconnect

Allow or prevent reconnect (see the mysqli.reconnect INI directive)

report_mode

Set to MYSQLI_REPORT_STRICT to throw Exceptions for errors

Table of Contents

  • mysqli_driver::embedded_server_end — Stop embedded server
  • mysqli_driver::embedded_server_start — Initialize and start embedded server
mysqli_result->num_rows
mysqli_driver::embedded_server_end
Mysqli


Stop embedded server

MySQLi_Driver
mysqli_driver::embedded_server_start
MySQLi_Driver
PHP 手册

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5 >= 5.1.0)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Stop embedded server

说明

void mysqli_driver::embedded_server_end ( void )
void mysqli_embedded_server_end ( void )
Warning

本函数暂无文档，仅有参数列表。

MySQLi_Driver
mysqli_driver::embedded_server_start
MySQLi_Driver


Initialize and start embedded server

mysqli_driver::embedded_server_end
Aliases and deprecated Mysqli 函数
MySQLi_Driver
PHP 手册

mysqli_driver::embedded_server_start

mysqli_embedded_server_start

(PHP 5 >= 5.1.0)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Initialize and start embedded server

说明

bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )
bool mysqli_embedded_server_start ( bool $start , array $arguments , array $groups )
Warning

本函数暂无文档，仅有参数列表。

mysqli_driver::embedded_server_end
Aliases and deprecated Mysqli 函数
MySQLi_Driver


Aliases and deprecated Mysqli 函数

Table of Contents

  • mysqli_bind_param — Alias for mysqli_stmt_bind_param
  • mysqli_bind_result — Alias for mysqli_stmt_bind_result
  • mysqli_client_encoding — Alias of mysqli_character_set_name
  • mysqli_disable_reads_from_master — Disable reads from master
  • mysqli_disable_rpl_parse — Disable RPL parse
  • mysqli_enable_reads_from_master — Enable reads from master
  • mysqli_enable_rpl_parse — Enable RPL parse
  • mysqli_escape_string — Alias of mysqli_real_escape_string
  • mysqli_execute — Alias for mysqli_stmt_execute
  • mysqli_fetch — Alias for mysqli_stmt_fetch
  • mysqli_get_metadata — Alias for mysqli_stmt_result_metadata
  • mysqli_master_query — Enforce execution of a query on the master in a master/slave setup
  • mysqli_param_count — Alias for mysqli_stmt_param_count
  • mysqli_report — Enables or disables internal report functions
  • mysqli_rpl_parse_enabled — Check if RPL parse is enabled
  • mysqli_rpl_probe — RPL probe
  • mysqli_rpl_query_type — Returns RPL query type
  • mysqli_send_long_data — Alias for mysqli_stmt_send_long_data
  • mysqli_send_query — Send the query and return
  • mysqli_set_opt — Alias of mysqli_options
  • mysqli_slave_query — Force execution of a query on a slave in a master/slave setup
mysqli_driver::embedded_server_start
mysqli_bind_param
Mysqli


Alias for mysqli_stmt_bind_param

Aliases and deprecated Mysqli 函数
mysqli_bind_result
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_bind_param

(PHP 5)

mysqli_bind_param — Alias for mysqli_stmt_bind_param()

说明

This function is an alias of mysqli_stmt_bind_param().

注释

Note: mysqli_bind_param() is deprecated and will be removed.

参见

  • mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters

Aliases and deprecated Mysqli 函数
mysqli_bind_result
Aliases and deprecated Mysqli 函数


Alias for mysqli_stmt_bind_result

mysqli_bind_param
mysqli_client_encoding
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_bind_result

(PHP 5)

mysqli_bind_result — Alias for mysqli_stmt_bind_result()

说明

This function is an alias of mysqli_stmt_bind_result().

注释

Note: mysqli_bind_result() is deprecated and will be removed.

参见

  • mysqli_stmt_bind_result() - Binds variables to a prepared statement for result storage

mysqli_bind_param
mysqli_client_encoding
Aliases and deprecated Mysqli 函数


Alias of mysqli_character_set_name

mysqli_bind_result
mysqli_disable_reads_from_master
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_client_encoding

(PHP 5)

mysqli_client_encoding — Alias of mysqli_character_set_name()

说明

This function is an alias of mysqli_character_set_name().

参见

  • mysqli_real_escape_string() - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

mysqli_bind_result
mysqli_disable_reads_from_master
Aliases and deprecated Mysqli 函数


Disable reads from master

mysqli_client_encoding
mysqli_disable_rpl_parse
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_disable_reads_from_master

mysqli->disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master -- mysqli->disable_reads_from_master — Disable reads from master

说明

Procedural style:

bool mysqli_disable_reads_from_master ( mysqli $link )

Object oriented style (method):

mysqli
void disable_reads_from_master ( void )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_client_encoding
mysqli_disable_rpl_parse
Aliases and deprecated Mysqli 函数


Disable RPL parse

mysqli_disable_reads_from_master
mysqli_enable_reads_from_master
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parse — Disable RPL parse

说明

bool mysqli_disable_rpl_parse ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_disable_reads_from_master
mysqli_enable_reads_from_master
Aliases and deprecated Mysqli 函数


Enable reads from master

mysqli_disable_rpl_parse
mysqli_enable_rpl_parse
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_master — Enable reads from master

说明

bool mysqli_enable_reads_from_master ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_disable_rpl_parse
mysqli_enable_rpl_parse
Aliases and deprecated Mysqli 函数


Enable RPL parse

mysqli_enable_reads_from_master
mysqli_escape_string
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parse — Enable RPL parse

说明

bool mysqli_enable_rpl_parse ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_enable_reads_from_master
mysqli_escape_string
Aliases and deprecated Mysqli 函数


Alias of mysqli_real_escape_string

mysqli_enable_rpl_parse
mysqli_execute
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_escape_string

(PHP 5)

mysqli_escape_string — Alias of mysqli_real_escape_string()

说明

This function is an alias of mysqli_real_escape_string().

参见

  • mysqli_real_escape_string() - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

mysqli_enable_rpl_parse
mysqli_execute
Aliases and deprecated Mysqli 函数


Alias for mysqli_stmt_execute

mysqli_escape_string
mysqli_fetch
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_execute

(PHP 5)

mysqli_execute — Alias for mysqli_stmt_execute()

说明

This function is an alias of mysqli_stmt_execute().

注释

Note: mysqli_execute() is deprecated and will be removed.

参见

  • mysqli_stmt_execute() - Executes a prepared Query

mysqli_escape_string
mysqli_fetch
Aliases and deprecated Mysqli 函数


Alias for mysqli_stmt_fetch

mysqli_execute
mysqli_get_metadata
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_fetch

(PHP 5)

mysqli_fetch — Alias for mysqli_stmt_fetch()

说明

This function is an alias of mysqli_stmt_fetch().

注释

Note: mysqli_fetch() is deprecated and will be removed.

参见

  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables

mysqli_execute
mysqli_get_metadata
Aliases and deprecated Mysqli 函数


Alias for mysqli_stmt_result_metadata

mysqli_fetch
mysqli_master_query
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_get_metadata

(PHP 5)

mysqli_get_metadata — Alias for mysqli_stmt_result_metadata()

说明

This function is an alias of mysqli_stmt_result_metadata().

注释

Note: mysqli_get_metadata() is deprecated and will be removed.

参见

  • mysqli_stmt_result_metadata() - Returns result set metadata from a prepared statement

mysqli_fetch
mysqli_master_query
Aliases and deprecated Mysqli 函数


Enforce execution of a query on the master in a master/slave setup

mysqli_get_metadata
mysqli_param_count
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_master_query

(PHP 5)

mysqli_master_query — Enforce execution of a query on the master in a master/slave setup

说明

bool mysqli_master_query ( mysqli $link , string $query )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_get_metadata
mysqli_param_count
Aliases and deprecated Mysqli 函数


Alias for mysqli_stmt_param_count

mysqli_master_query
mysqli_report
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_param_count

(PHP 5)

mysqli_param_count — Alias for mysqli_stmt_param_count()

说明

This function is an alias of mysqli_stmt_param_count().

注释

Note: mysqli_param_count() is deprecated and will be removed.

参见

  • mysqli_stmt_param_count() - Returns the number of parameter for the given statement

mysqli_master_query
mysqli_report
Aliases and deprecated Mysqli 函数


Enables or disables internal report functions

mysqli_param_count
mysqli_rpl_parse_enabled
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_report

(PHP 5)

mysqli_report — Enables or disables internal report functions

说明

bool mysqli_report ( int $flags )

mysqli_report() is a powerful function to improve your queries and code during development and testing phase. Depending on the flags it reports errors from mysqli function calls or queries which don't use an index (or use a bad index).

参数

flags

Supported flags
Name | Description
MYSQLI_REPORT_OFF | Turns reporting off
MYSQLI_REPORT_ERROR | Report errors from mysqli function calls
MYSQLI_REPORT_STRICT | Report warnings from mysqli function calls
MYSQLI_REPORT_INDEX | Report if no index or bad index was used in a query
MYSQLI_REPORT_ALL | Set all options (report all)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Object oriented style

<?php
/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* this query should report an error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* this query should report a warning */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

参见

  • mysqli_debug() - Performs debugging operations
  • mysqli_dump_debug_info() - Dump debugging information into the log

mysqli_param_count
mysqli_rpl_parse_enabled
Aliases and deprecated Mysqli 函数


Check if RPL parse is enabled

mysqli_report
mysqli_rpl_probe
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabled — Check if RPL parse is enabled

说明

int mysqli_rpl_parse_enabled ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_report
mysqli_rpl_probe
Aliases and deprecated Mysqli 函数


RPL probe

mysqli_rpl_parse_enabled
mysqli_rpl_query_type
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probe — RPL probe

说明

bool mysqli_rpl_probe ( mysqli $link )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_rpl_parse_enabled
mysqli_rpl_query_type
Aliases and deprecated Mysqli 函数


Returns RPL query type

mysqli_rpl_probe
mysqli_send_long_data
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_rpl_query_type

mysqli->rpl_query_type

(PHP 5)

mysqli_rpl_query_type -- mysqli->rpl_query_type — Returns RPL query type

说明

Procedural style:

int mysqli_rpl_query_type ( mysqli $link , string $query )

Object oriented style (method)

mysqli
int rpl_query_type ( string $query )

Returns MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE or MYSQLI_RPL_ADMIN depending on a query type. INSERT, UPDATE and similar are master queries, SELECT is slave, and FLUSH, REPAIR and similar are admin.

Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_rpl_probe
mysqli_send_long_data
Aliases and deprecated Mysqli 函数


Alias for mysqli_stmt_send_long_data

mysqli_rpl_query_type
mysqli_send_query
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_send_long_data

(PHP 5)

mysqli_send_long_data — Alias for mysqli_stmt_send_long_data()

说明

This function is an alias of mysqli_stmt_send_long_data().

注释

Note: mysqli_send_long_data() is deprecated and will be removed.

参见

  • mysqli_stmt_send_long_data() - Send data in blocks

mysqli_rpl_query_type
mysqli_send_query
Aliases and deprecated Mysqli 函数


Send the query and return

mysqli_send_long_data
mysqli_set_opt
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_send_query

mysqli->send_query

(PHP 5)

mysqli_send_query -- mysqli->send_query — Send the query and return

说明

Procedural style:

bool mysqli_send_query ( mysqli $link , string $query )

Object oriented style (method)

mysqli
bool send_query ( string $query )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_send_long_data
mysqli_set_opt
Aliases and deprecated Mysqli 函数


Alias of mysqli_options

mysqli_send_query
mysqli_slave_query
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_set_opt

(PHP 5)

mysqli_set_opt — Alias of mysqli_options()

说明

This function is an alias of mysqli_options().

mysqli_send_query
mysqli_slave_query
Aliases and deprecated Mysqli 函数


Force execution of a query on a slave in a master/slave setup

mysqli_set_opt
OCI8
Aliases and deprecated Mysqli 函数
PHP 手册

mysqli_slave_query

(PHP 5)

mysqli_slave_query — Force execution of a query on a slave in a master/slave setup

说明

bool mysqli_slave_query ( mysqli $link , string $query )
Warning

本函数暂无文档，仅有参数列表。

Warning

This function has been DEPRECATED and REMOVED as of PHP 5.3.0.

mysqli_set_opt
OCI8
Aliases and deprecated Mysqli 函数


Oracle OCI8

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic query
  • Connecting Handling
  • Supported Datatypes
  • OCI8 函数
    • oci_bind_array_by_name — Binds PHP array to Oracle PL/SQL array by name
    • oci_bind_by_name — 绑定一个 PHP 变量到一个 Oracle 位置标志符
    • oci_cancel — 取消从游标读取数据
    • oci_close — 关闭 Oracle 连接
    • OCI-Collection->append — Appends element to the collection
    • OCI-Collection->assign — Assigns a value to the collection from another existing collection
    • OCI-Collection->assignElem — Assigns a value to the element of the collection
    • OCI-Collection->free — Frees the resources associated with the collection object
    • OCI-Collection->getElem — Returns value of the element
    • OCI-Collection->max — Returns the maximum number of elements in the collection
    • OCI-Collection->size — Returns size of the collection
    • OCI-Collection->trim — Trims elements from the end of the collection
    • oci_commit — 提交未执行的事务处理
    • oci_connect — 建立一个到 Oracle 服务器的连接
    • oci_define_by_name — 在 SELECT 中使用 PHP 变量作为定义的步骤
    • oci_error — 返回上一个错误
    • oci_execute — 执行一条语句
    • oci_fetch_all — 获取结果数据的所有行到一个数组
    • oci_fetch_array — Returns the next row from the result data as an associative or numeric array, or both
    • oci_fetch_assoc — Returns the next row from the result data as an associative array
    • oci_fetch_object — Returns the next row from the result data as an object
    • oci_fetch_row — Returns the next row from the result data as a numeric array
    • oci_fetch — Fetches the next row into result-buffer
    • oci_field_is_null — 检查字段是否为 NULL
    • oci_field_name — 返回字段名
    • oci_field_precision — 返回字段精度
    • oci_field_scale — 返回字段范围
    • oci_field_size — 返回字段大小
    • oci_field_type_raw — 返回字段的原始 Oracle 数据类型
    • oci_field_type — 返回字段的数据类型
    • oci_free_statement — 释放关联于语句或游标的所有资源
    • oci_internal_debug — 打开或关闭内部调试输出
    • OCI-Lob->append — Appends data from the large object to another large object
    • OCI-Lob->close — Closes LOB descriptor
    • oci_lob_copy — Copies large object
    • OCI-Lob->eof — Tests for end-of-file on a large object's descriptor
    • OCI-Lob->erase — Erases a specified portion of the internal LOB data
    • OCI-Lob->export — Exports LOB's contents to a file
    • OCI-Lob->flush — Flushes/writes buffer of the LOB to the server
    • OCI-Lob->free — Frees resources associated with the LOB descriptor
    • OCI-Lob->getBuffering — Returns current state of buffering for the large object
    • OCI-Lob->import — Imports file data to the LOB
    • oci_lob_is_equal — Compares two LOB/FILE locators for equality
    • OCI-Lob->load — Returns large object's contents
    • OCI-Lob->read — Reads part of the large object
    • OCI-Lob->rewind — Moves the internal pointer to the beginning of the large object
    • OCI-Lob->save — Saves data to the large object
    • OCI-Lob->saveFile — 别名 oci_lob_import
    • OCI-Lob->seek — Sets the internal pointer of the large object
    • OCI-Lob->setBuffering — Changes current state of buffering for the large object
    • OCI-Lob->size — Returns size of large object
    • OCI-Lob->tell — Returns current position of internal pointer of large object
    • OCI-Lob->truncate — Truncates large object
    • OCI-Lob->write — Writes data to the large object
    • OCI-Lob->writeTemporary — Writes temporary large object
    • OCI-Lob->writeToFile — 别名 oci_lob_export
    • oci_new_collection — 分配新的 collection 对象
    • oci_new_connect — 建定一个到 Oracle 服务器的新连接
    • oci_new_cursor — 分配并返回一个新的游标（语句句柄）
    • oci_new_descriptor — 初始化一个新的空 LOB 或 FILE 描述符
    • oci_num_fields — 返回结果列的数目
    • oci_num_rows — 返回语句执行后受影响的行数
    • oci_parse — 配置 Oracle 语句预备执行
    • oci_password_change — 修改 Oracle 用户的密码
    • oci_pconnect — 使用一个持久连接连到 Oracle 数据库
    • oci_result — 返回所取得行中字段的值
    • oci_rollback — 回滚未提交的事务
    • oci_server_version — 返回服务器版本信息
    • oci_set_prefetch — 设置预提取行数
    • oci_statement_type — 返回 OCI 语句的类型
    • ocibindbyname — oci_bind_by_name 的别名
    • ocicancel — oci_cancel 的别名
    • ocicloselob — 的别名
    • ocicollappend — 的别名
    • ocicollassign — 的别名
    • ocicollassignelem — 的别名
    • ocicollgetelem — 的别名
    • ocicollmax — 的别名
    • ocicollsize — 的别名
    • ocicolltrim — 的别名
    • ocicolumnisnull — oci_field_is_null 的别名
    • ocicolumnname — oci_field_name 的别名
    • ocicolumnprecision — oci_field_precision 的别名
    • ocicolumnscale — oci_field_scale 的别名
    • ocicolumnsize — oci_field_size 的别名
    • ocicolumntype — oci_field_type 的别名
    • ocicolumntyperaw — oci_field_type_raw 的别名
    • ocicommit — oci_commit 的别名
    • ocidefinebyname — oci_define_by_name 的别名
    • ocierror — oci_error 的别名
    • ociexecute — oci_execute 的别名
    • ocifetch — oci_fetch 的别名
    • ocifetchinto — 获取下一行到一个数组
    • ocifetchstatement — oci_fetch_all 的别名
    • ocifreecollection — 的别名
    • ocifreecursor — oci_free_statement 的别名
    • ocifreedesc — 的别名
    • ocifreestatement — oci_free_statement 的别名
    • ociinternaldebug — oci_internal_debug 的别名
    • ociloadlob — 的别名
    • ocilogoff — oci_close 的别名
    • ocilogon — oci_connect 的别名
    • ocinewcollection — oci_new_collection 的别名
    • ocinewcursor — oci_new_cursor 的别名
    • ocinewdescriptor — oci_new_descriptor 的别名
    • ocinlogon — oci_new_connect 的别名
    • ocinumcols — oci_num_fields 的别名
    • ociparse — oci_parse 的别名
    • ociplogon — oci_pconnect 的别名
    • ociresult — oci_result 的别名
    • ocirollback — oci_rollback 别名
    • ocirowcount — oci_num_rows 的别名
    • ocisavelob — 的别名
    • ocisavelobfile — 的别名
    • ociserverversion — oci_server_version 的别名
    • ocisetprefetch — oci_set_prefetch 的别名
    • ocistatementtype — oci_statement_type 的别名
    • ociwritelobtofile — 的别名
    • ociwritetemporarylob — 的别名
mysqli_slave_query
简介
与具体数据库系统相关的扩展


简介

These functions allow you to access Oracle 10, Oracle 9, Oracle 8 and Oracle 7 databases using the Oracle Call Interface (OCI). They support binding of PHP variables to Oracle placeholders, have full LOB, FILE and ROWID support, and allow you to use user-supplied define variables.

OCI8
安装/配置
OCI8


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
OCI8


需求

You will need the Oracle client libraries to use this extension. Windows users will need libraries with version at least 10 to use the php_oci8.dll.

Note: This extension does not support Oracle 8 client libraries anymore. Though you still can connect to Oracle 8 servers as long as the client library (v.9+) supports this.

The most convenient way to install all the required files is to use Oracle Instant Client, which is available from here: » http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html. To work with OCI8 module "basic" version of Oracle Instant Client is enough. Instant Client does not need ORACLE_SID or ORACLE_HOME environment variables set. You still may need to set LD_LIBRARY_PATH and NLS_LANG, though.

Before using this extension, make sure that you have set up your Oracle environment variables properly for the Oracle user, as well as your web daemon user. These variables should be set up before you start your web-server. The variables you might need to set are as follows:

  • ORACLE_HOME
  • ORACLE_SID
  • LD_PRELOAD
  • LD_LIBRARY_PATH
  • NLS_LANG

For less frequently used Oracle environment variables such as TNS_ADMIN, TWO_TASK, ORA_TZFILE, and the various Oracle globalization settings like ORA_NLS33, ORA_NLS10 and the NLS_* variables refer to Oracle documentation.

After setting up the environment variables for your web server user, be sure to also add the web server user (nobody, www) to the oracle group.

Note: If your web server doesn't start or crashes at startup
Check that Apache is linked with the pthread library:

# ldd /www/apache/bin/httpd
   libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
   libm.so.6 => /lib/libm.so.6 (0x4002f000)
   libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
   libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
   libc.so.6 => /lib/libc.so.6 (0x4007e000)
   /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

If the libpthread is not listed you have to reinstall Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Please note that on some systems, like UnixWare it is libthread instead of libpthread. PHP and Apache have to be configured with EXTRA_LIBS=-lthread.

安装/配置
安装
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

OCI8 Configuration Options
Name | Default | Changeable | Changelog
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | Available since PHP 5.1.2.
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 5.1.2.
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Available since PHP 5.1.2.
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Available since PHP 5.1.2.
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Available since PHP 5.1.2.
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | Available since PHP 5.1.2.
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | Available since PHP 5.1.2.

以下是配置选项的简要解释。

oci8.privileged_connect boolean

This option enables privileged connections using external credentials (OCI_SYSOPER, OCI_SYSDBA).

oci8.max_persistent int

The maximum number of persistent OCI8 connections per process. Setting this option to -1 means that there is no limit.

oci8.persistent_timeout int

The maximum length of time (in seconds) that a given process is allowed to maintain an idle persistent connection. Setting this option to -1 means that idle persistent connections will be maintained forever.

oci8.ping_interval int

The length of time (in seconds) that must pass before issuing a ping during oci_pconnect(). When set to 0, persistent connections will be pinged every time they are reused. To disable pings completely, set this option to -1.

Note: Disabling pings will cause oci_pconnect() calls to operate at the highest efficiency, but may cause PHP to not detect faulty connections, such as those caused by network partitions, or if the Oracle server has gone down since PHP connected, until later in the script. Consult the oci_pconnect() documentation for more information.

oci8.statement_cache_size int

This option enables statement caching, and specifies how many statements to cache. To disable statement caching just set this option to 0.

Note: A larger cache can result in improved performance, at the cost of increased memory usage.

oci8.default_prefetch int

This option enables statement prefetching and sets the default number of rows that will be fetched automatically after statement execution.

Note: A larger prefetch can result in improved performance, at the cost of increased memory usage.

oci8.old_oci_close_semantics boolean

This option controls oci_close() behaviour. Enabling it means that oci_close() will do nothing; the connection will not be closed until the end of the script. This is for backward compatibility only. If you find that you need to enable this setting, you are strongly encouraged to remove the oci_close() calls from your application instead of enabling this option.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

OCI_DEFAULT (integer)
Statement execution mode. Statement is not committed automatically when using this mode.
OCI_DESCRIBE_ONLY (integer)
Statement execution mode. Use this mode if you don't want to execute the query, but get the select-list's description.
OCI_COMMIT_ON_SUCCESS (integer)
Statement execution mode. Statement is automatically committed after oci_execute() call.
OCI_EXACT_FETCH (integer)
Statement fetch mode. Used when the application knows in advance exactly how many rows it will be fetching. This mode turns prefetching off for Oracle release 8 or later mode. Cursor is cancelled after the desired rows are fetched and may result in reduced server-side resource usage.
OCI_SYSDATE (integer)
OCI_B_BFILE (integer)
Used with oci_bind_by_name() when binding BFILEs.
OCI_B_CFILEE (integer)
Used with oci_bind_by_name() when binding CFILEs.
OCI_B_CLOB (integer)
Used with oci_bind_by_name() when binding CLOBs.
OCI_B_BLOB (integer)
Used with oci_bind_by_name() when binding BLOBs.
OCI_B_ROWID (integer)
Used with oci_bind_by_name() when binding ROWIDs.
OCI_B_CURSOR (integer)
Used with oci_bind_by_name() when binding cursors, previously allocated with oci_new_descriptor().
OCI_B_NTY (integer)
Used with oci_bind_by_name() when binding named data types. Note: in PHP < 5.0 it was called OCI_B_SQLT_NTY.
OCI_B_BIN (integer)
SQLT_BFILEE (integer)
The same as OCI_B_BFILE.
SQLT_CFILEE (integer)
The same as OCI_B_CFILEE.
SQLT_CLOB (integer)
The same as OCI_B_CLOB.
SQLT_BLOB (integer)
The same as OCI_B_BLOB.
SQLT_RDD (integer)
The same as OCI_B_ROWID.
SQLT_NTY (integer)
The same as OCI_B_NTY.
SQLT_LNG (integer)
Used with oci_bind_by_name() to bind LONG values.
SQLT_LBI (integer)
Used with oci_bind_by_name() to bind LONG RAW values.
SQLT_BIN (integer)
Used with oci_bind_by_name() to bind RAW values.
SQLT_NUM (integer)
Used with oci_bind_array_by_name() to bind arrays of NUMBER.
SQLT_INT (integer)
Used with oci_bind_array_by_name() to bind arrays of INTEGER.
SQLT_AFC (integer)
Used with oci_bind_array_by_name() to bind arrays of CHAR.
SQLT_CHR (integer)
Used with oci_bind_array_by_name() to bind arrays of VARCHAR2. Also used with oci_bind_by_name().
SQLT_VCS (integer)
Used with oci_bind_array_by_name() to bind arrays of VARCHAR.
SQLT_AVC (integer)
Used with oci_bind_array_by_name() to bind arrays of CHARZ.
SQLT_STR (integer)
Used with oci_bind_array_by_name() to bind arrays of STRING.
SQLT_LVC (integer)
Used with oci_bind_array_by_name() to bind arrays of LONG VARCHAR.
SQLT_FLT (integer)
Used with oci_bind_array_by_name() to bind arrays of FLOAT.
SQLT_ODT (integer)
Used with oci_bind_array_by_name() to bind arrays of LONG.
SQLT_BDOUBLE (integer)
SQLT_BFLOAT (integer)
OCI_FETCHSTATEMENT_BY_COLUMN (integer)
Default mode of oci_fetch_all().
OCI_FETCHSTATEMENT_BY_ROW (integer)
Alternative mode of oci_fetch_all().
OCI_ASSOC (integer)
Used with oci_fetch_all() and oci_fetch_array() to get an associative array as a result.
OCI_NUM (integer)
Used with oci_fetch_all() and oci_fetch_array() to get an enumerated array as a result.
OCI_BOTH (integer)
Used with oci_fetch_all() and oci_fetch_array() to get an array with both associative and number indices.
OCI_RETURN_NULLS (integer)
Used with oci_fetch_array() to get empty array elements if field's value is NULL.
OCI_RETURN_LOBS (integer)
Used with oci_fetch_array() to get value of LOB instead of the descriptor.
OCI_DTYPE_FILE (integer)
This flag tells oci_new_descriptor() to initialize new FILE descriptor.
OCI_DTYPE_LOB (integer)
This flag tells oci_new_descriptor() to initialize new LOB descriptor.
OCI_DTYPE_ROWID (integer)
This flag tells oci_new_descriptor() to initialize new ROWID descriptor.
OCI_D_FILE (integer)
The same as OCI_DTYPE_FILE.
OCI_D_LOB (integer)
The same as OCI_DTYPE_LOB.
OCI_D_ROWID (integer)
The same as OCI_DTYPE_ROWID.
OCI_SYSOPER (integer)
Used with oci_connect() to connect as SYSOPER using external credentials (oci8.privileged_connect should be enabled for this).
OCI_SYSDBA (integer)
Used with oci_connect() to connect as SYSDBA using external credentials (oci8.privileged_connect should be enabled for this).
OCI_LOB_BUFFER_FREE (integer)
Used with OCI-Lob->flush to free buffers used.
OCI_TEMP_CLOB (integer)
Used with OCI-Lob->writeTemporary to indicate explicilty that temporary CLOB should be created.
OCI_TEMP_BLOB (integer)
Used with OCI-Lob->writeTemporary to indicate explicilty that temporary BLOB should be created.
资源类型
范例
OCI8


范例

Table of Contents

  • Basic query
预定义常量
Basic query
OCI8


Basic query

范例
Connecting Handling
范例
PHP 手册

Example #1 Basic query

<?php

  $conn = oci_connect('hr', 'hr', 'orcl');
  if (!$conn) {
    $e = oci_error();
    print htmlentities($e['message']);
    exit;
  }

  $query = 'SELECT * FROM DEPARTMENTS';

  $stid = oci_parse($conn, $query);
  if (!$stid) {
    $e = oci_error($conn);
    print htmlentities($e['message']);
    exit;
  }

  $r = oci_execute($stid, OCI_DEFAULT);
  if (!$r) {
    $e = oci_error($stid);
    echo htmlentities($e['message']);
    exit;
  }

  print '<table border="1">';
  while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
    print '<tr>';
       foreach ($row as $item) {
         print '<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
       }
       print '</tr>';
  }
  print '</table>';

  oci_close($conn);
?>

Example #2 Insert with bind variables

<?php

  // Before running, create the table:
  //   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

  $conn = oci_connect('scott', 'tiger', 'orcl');

  $query = 'INSERT INTO MYTABLE VALUES(:myid, :mydata)';

  $stid = oci_parse($conn, $query);

  $id = 60;
  $data = 'Some data';

  oci_bind_by_name($stid, ':myid', $id);
  oci_bind_by_name($stid, ':mydata', $data);

  $r = oci_execute($stid);

  if ($r)
    print "One row inserted";

  oci_close($conn);

?>

Example #3 Inserting data into a CLOB column

<?php

// Before running, create the table:
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('scott', 'tiger', 'orcl');

$mykey = 12343;  // arbitrary key for this example;

$sql = "INSERT INTO mytable (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Fetching CLOB data

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid, OCI_DEFAULT);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC)) {
  $result = $row['MYCLOB']->load();
  print '<tr><td>'.$result.'</td></tr>';
}
print '</table>';

?>

You can easily access stored procedures in the same way as you would from the command line.

Example #4 Using Stored Procedures

<?php
// by webmaster at remoterealty dot com
$sth = oci_parse($dbh, "begin sp_newaddress( :address_id, '$firstname',
 '$lastname', '$company', '$address1', '$address2', '$city', '$state',
 '$postalcode', '$country', :error_code );end;");

// This calls stored procedure sp_newaddress, with :address_id being an
// in/out variable and :error_code being an out variable.
// Then you do the binding:

   oci_bind_by_name($sth, ":address_id", $addr_id, 10);
   oci_bind_by_name($sth, ":error_code", $errorcode, 10);
   oci_execute($sth);

?>

范例
Connecting Handling
范例


Connecting Handling

The oci8 extension provides you with 3 different functions for connecting to Oracle. It is up to you to use the most appropriate function for your application, and the information in this section is intended to help you make an informed choice.

Connecting to an Oracle server is a reasonably expensive operation, in terms of the time that it takes to complete. The oci_pconnect() function uses a persistent cache of connections that can be re-used across different script requests. This means that you will typically only incur the connection overhead once per php process (or apache child).

If your application connects to Oracle using a different set of credentials for each web user, the persistent cache employed by oci_pconnect() will become less useful as the number of concurrent users increases, to the point where it may start to adversely affect the overall performance of your Oracle server due to maintaining too many idle connections. If your application is structured in this way, it is recommended that you either tune your application using the oci8.max_persistent and oci8.persistent_timeout configuration settings (these will give you control over the persistent connection cache size and lifetime) or use oci_connect() instead.

Both oci_connect() and oci_pconnect() employ a connection cache; if you make multiple calls to oci_connect(), using the same parameters, in a given script, the second and subsequent calls return the existing connection handle. The cache used by oci_connect() is cleaned up at the end of the script run, or when you explicitly close the connection handle. oci_pconnect() has similar behaviour, although its cache is maintained separately and survives between requests.

This caching feature is important to remember, because it gives the appearance that the two handles are not transactionally isolated (they are in fact the same connection handle, so there is no isolation of any kind). If your application needs two separate, transactionally isolated connections, you should use oci_new_connect().

oci_new_connect() always creates a new connection to the Oracle server, regardless of what other connections might already exist. High traffic web applications should try to avoid using oci_new_connect(), especially in the busiest sections of the application.

Basic query
Supported Datatypes
OCI8


Supported Datatypes

The driver supports the following types when binding parameters using oci_bind_by_name() function:
Type | Mapping
SQLT_NTY | Maps a native collection type from a PHP collection object, such as those created by oci_new_collection().
SQLT_BFILEE | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_CFILEE | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_CLOB | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_BLOB | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_RDD | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_NUM | Converts the PHP parameter to a 'C' long type, and binds to that value.
SQLT_RSET | Maps a native statement handle, such as those created by oci_parse() or those retrieved from other OCI queries.
SQLT_CHR and any other type | Converts the PHP parameter to a string type and binds as a string.
The following types are supported when retrieving columns from a result set:
Type | Mapping
SQLT_RSET | Creates an oci statement resource to represent the the cursor.
SQLT_RDD | Creates a ROWID object.
SQLT_BLOB | Creates a LOB object.
SQLT_CLOB | Creates a LOB object.
SQLT_BFILE | Creates a LOB object.
SQLT_LNG | Bound as SQLT_CHR, returned as a string
SQLT_LBI | Bound as SQLT_BIN, returned as a string
Any other type | Bound as SQLT_CHR, returned as a string
Connecting Handling
OCI8 函数
OCI8


OCI8 函数

Table of Contents

  • oci_bind_array_by_name — Binds PHP array to Oracle PL/SQL array by name
  • oci_bind_by_name — 绑定一个 PHP 变量到一个 Oracle 位置标志符
  • oci_cancel — 取消从游标读取数据
  • oci_close — 关闭 Oracle 连接
  • OCI-Collection->append — Appends element to the collection
  • OCI-Collection->assign — Assigns a value to the collection from another existing collection
  • OCI-Collection->assignElem — Assigns a value to the element of the collection
  • OCI-Collection->free — Frees the resources associated with the collection object
  • OCI-Collection->getElem — Returns value of the element
  • OCI-Collection->max — Returns the maximum number of elements in the collection
  • OCI-Collection->size — Returns size of the collection
  • OCI-Collection->trim — Trims elements from the end of the collection
  • oci_commit — 提交未执行的事务处理
  • oci_connect — 建立一个到 Oracle 服务器的连接
  • oci_define_by_name — 在 SELECT 中使用 PHP 变量作为定义的步骤
  • oci_error — 返回上一个错误
  • oci_execute — 执行一条语句
  • oci_fetch_all — 获取结果数据的所有行到一个数组
  • oci_fetch_array — Returns the next row from the result data as an associative or numeric array, or both
  • oci_fetch_assoc — Returns the next row from the result data as an associative array
  • oci_fetch_object — Returns the next row from the result data as an object
  • oci_fetch_row — Returns the next row from the result data as a numeric array
  • oci_fetch — Fetches the next row into result-buffer
  • oci_field_is_null — 检查字段是否为 NULL
  • oci_field_name — 返回字段名
  • oci_field_precision — 返回字段精度
  • oci_field_scale — 返回字段范围
  • oci_field_size — 返回字段大小
  • oci_field_type_raw — 返回字段的原始 Oracle 数据类型
  • oci_field_type — 返回字段的数据类型
  • oci_free_statement — 释放关联于语句或游标的所有资源
  • oci_internal_debug — 打开或关闭内部调试输出
  • OCI-Lob->append — Appends data from the large object to another large object
  • OCI-Lob->close — Closes LOB descriptor
  • oci_lob_copy — Copies large object
  • OCI-Lob->eof — Tests for end-of-file on a large object's descriptor
  • OCI-Lob->erase — Erases a specified portion of the internal LOB data
  • OCI-Lob->export — Exports LOB's contents to a file
  • OCI-Lob->flush — Flushes/writes buffer of the LOB to the server
  • OCI-Lob->free — Frees resources associated with the LOB descriptor
  • OCI-Lob->getBuffering — Returns current state of buffering for the large object
  • OCI-Lob->import — Imports file data to the LOB
  • oci_lob_is_equal — Compares two LOB/FILE locators for equality
  • OCI-Lob->load — Returns large object's contents
  • OCI-Lob->read — Reads part of the large object
  • OCI-Lob->rewind — Moves the internal pointer to the beginning of the large object
  • OCI-Lob->save — Saves data to the large object
  • OCI-Lob->saveFile — 别名 oci_lob_import
  • OCI-Lob->seek — Sets the internal pointer of the large object
  • OCI-Lob->setBuffering — Changes current state of buffering for the large object
  • OCI-Lob->size — Returns size of large object
  • OCI-Lob->tell — Returns current position of internal pointer of large object
  • OCI-Lob->truncate — Truncates large object
  • OCI-Lob->write — Writes data to the large object
  • OCI-Lob->writeTemporary — Writes temporary large object
  • OCI-Lob->writeToFile — 别名 oci_lob_export
  • oci_new_collection — 分配新的 collection 对象
  • oci_new_connect — 建定一个到 Oracle 服务器的新连接
  • oci_new_cursor — 分配并返回一个新的游标（语句句柄）
  • oci_new_descriptor — 初始化一个新的空 LOB 或 FILE 描述符
  • oci_num_fields — 返回结果列的数目
  • oci_num_rows — 返回语句执行后受影响的行数
  • oci_parse — 配置 Oracle 语句预备执行
  • oci_password_change — 修改 Oracle 用户的密码
  • oci_pconnect — 使用一个持久连接连到 Oracle 数据库
  • oci_result — 返回所取得行中字段的值
  • oci_rollback — 回滚未提交的事务
  • oci_server_version — 返回服务器版本信息
  • oci_set_prefetch — 设置预提取行数
  • oci_statement_type — 返回 OCI 语句的类型
  • ocibindbyname — oci_bind_by_name 的别名
  • ocicancel — oci_cancel 的别名
  • ocicloselob — 的别名
  • ocicollappend — 的别名
  • ocicollassign — 的别名
  • ocicollassignelem — 的别名
  • ocicollgetelem — 的别名
  • ocicollmax — 的别名
  • ocicollsize — 的别名
  • ocicolltrim — 的别名
  • ocicolumnisnull — oci_field_is_null 的别名
  • ocicolumnname — oci_field_name 的别名
  • ocicolumnprecision — oci_field_precision 的别名
  • ocicolumnscale — oci_field_scale 的别名
  • ocicolumnsize — oci_field_size 的别名
  • ocicolumntype — oci_field_type 的别名
  • ocicolumntyperaw — oci_field_type_raw 的别名
  • ocicommit — oci_commit 的别名
  • ocidefinebyname — oci_define_by_name 的别名
  • ocierror — oci_error 的别名
  • ociexecute — oci_execute 的别名
  • ocifetch — oci_fetch 的别名
  • ocifetchinto — 获取下一行到一个数组
  • ocifetchstatement — oci_fetch_all 的别名
  • ocifreecollection — 的别名
  • ocifreecursor — oci_free_statement 的别名
  • ocifreedesc — 的别名
  • ocifreestatement — oci_free_statement 的别名
  • ociinternaldebug — oci_internal_debug 的别名
  • ociloadlob — 的别名
  • ocilogoff — oci_close 的别名
  • ocilogon — oci_connect 的别名
  • ocinewcollection — oci_new_collection 的别名
  • ocinewcursor — oci_new_cursor 的别名
  • ocinewdescriptor — oci_new_descriptor 的别名
  • ocinlogon — oci_new_connect 的别名
  • ocinumcols — oci_num_fields 的别名
  • ociparse — oci_parse 的别名
  • ociplogon — oci_pconnect 的别名
  • ociresult — oci_result 的别名
  • ocirollback — oci_rollback 别名
  • ocirowcount — oci_num_rows 的别名
  • ocisavelob — 的别名
  • ocisavelobfile — 的别名
  • ociserverversion — oci_server_version 的别名
  • ocisetprefetch — oci_set_prefetch 的别名
  • ocistatementtype — oci_statement_type 的别名
  • ociwritelobtofile — 的别名
  • ociwritetemporarylob — 的别名
Supported Datatypes
oci_bind_array_by_name
OCI8


Binds PHP array to Oracle PL/SQL array by name

OCI8 函数
oci_bind_by_name
OCI8 函数
PHP 手册

oci_bind_array_by_name

(PHP 5 >= 5.1.2, PECL oci8 >= 1.2.0)

oci_bind_array_by_name — Binds PHP array to Oracle PL/SQL array by name

说明

bool oci_bind_array_by_name ( resource $statement , string $name , array &$var_array , int $max_table_length [, int $max_item_length=-1 [, int $type=SQLT_AFC ]] )

Binds the PHP array var_array to the Oracle placeholder name , which points to Oracle PL/SQL array. Whether it will be used for input or output will be determined at run-time.

参数

statement

A valid OCI statement identifier.

name

The Oracle placeholder.

var_array

An array.

max_table_length

Sets the maximum length both for incoming and result arrays.

max_item_length

Sets maximum length for array items. If not specified or equals to -1, oci_bind_array_by_name() will use find the longest element in the incoming array and will use it as maximum length for array items.

type

Should be used to set the type of PL/SQL array items. See list of available types below:

  • SQLT_NUM - for arrays of NUMBER.

  • SQLT_INT - for arrays of INTEGER (Note: INTEGER it is actually a synonym for NUMBER(38), but SQLT_NUM type won't work in this case even though they are synonyms).

  • SQLT_FLT - for arrays of FLOAT.

  • SQLT_AFC - for arrays of CHAR.

  • SQLT_CHR - for arrays of VARCHAR2.

  • SQLT_VCS - for arrays of VARCHAR.

  • SQLT_AVC - for arrays of CHARZ.

  • SQLT_STR - for arrays of STRING.

  • SQLT_LVC - for arrays of LONG VARCHAR.

  • SQLT_ODT - for arrays of DATE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 oci_bind_array_by_name() example

<?php

$c = oci_connect("scott", "tiger");

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$statement = oci_parse($c, $create);
oci_execute($statement);

$create_pkg = "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
  PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;";
$statement = oci_parse($c, $create_pkg);
oci_execute($statement);

$create_pkg_body = "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
  CURSOR CUR IS SELECT name FROM bind_example;
  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
    BEGIN
    FOR i IN 1..5 LOOP
      INSERT INTO bind_example VALUES (c1(i));
    END LOOP;
    IF NOT CUR%ISOPEN THEN
      OPEN CUR;
    END IF;
    FOR i IN REVERSE 1..5 LOOP
      FETCH CUR INTO c1(i);
      IF CUR%NOTFOUND THEN
        CLOSE CUR;
        EXIT;
      END IF;
    END LOOP;
  END iobind;
END ARRAYBINDPKG1;";
$statement = oci_parse($c, $create_pkg_body);
oci_execute($statement);

$statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.iobind(:c1); END;");

$array = array("one", "two", "three", "four", "five");

oci_bind_array_by_name($statement, ":c1", $array, 5, -1, SQLT_CHR);

oci_execute($statement);

var_dump($array);

?>

注释

Note: This function is available since OCI8 release 1.2.

OCI8 函数
oci_bind_by_name
OCI8 函数


绑定一个 PHP 变量到一个 Oracle 位置标志符

oci_bind_array_by_name
oci_cancel
OCI8 函数
PHP 手册

oci_bind_by_name

(PHP 5, PECL oci8 >= 1.1.0)

oci_bind_by_name — 绑定一个 PHP 变量到一个 Oracle 位置标志符

说明

bool oci_bind_by_name ( resource $stmt , string $ph_name , mixed &$variable [, int $maxlength [, int $type ]] )

oci_bind_by_name() 将 PHP 变量 variable 绑定到 Oracle 的位置标志符 ph_name 。该变量是否会被用作输入输出是在运行时决定的，并且函数给该变量分配必要的存储空间。length 参数确定该绑定的最大长度，如果将 length 设为 -1，oci_bind_by_name() 会用 variable 变量的当前长度确定绑定的最大长度。

如果要绑定一个抽象数据类型（LOB/ROWID/BFILE），需要先用 oci_new_descriptor() 函数分配空间。length 没有用于抽象数据类型，应被设为 -1。type 参数告诉 Oracle 要使用什么样的描述符。可能的值为：

  • SQLT_FILE - 对应于 BFILE；

  • SQLT_CFILE - 对应于 CFILE；

  • SQLT_CLOB - 对应于 CLOB；

  • SQLT_BLOB - 对应于 BLOB；

  • SQLT_ROWID - 对应于 ROWID；

  • SQLT_NTY - 对应于有名字的数据类型；

  • SQLT_INT - 对应于 integers；

  • SQLT_CHR - 对应于 VARCHARs；

  • SQLT_BIN - 对应于 RAW 列；

  • SQLT_LNG - 对应于 LONG 列；

  • SQLT_LBI - 对应于 LONG RAW 列；

  • SQLT_RSET - 对应于游标，是之前由 oci_new_cursor() 创建的。

Example #1 oci_bind_by_name() 例子

<?php
/* oci_bind_by_name example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                                              VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         ");

$data = array(
              1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim"
             );

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

oci_bind_by_name($stmt, ":empno", $empno, 32);
oci_bind_by_name($stmt, ":ename", $ename, 32);
oci_bind_by_name($stmt, ":rid",   $rowid, -1, OCI_B_ROWID);

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             ");
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

foreach ($data as $empno => $ename) {
    oci_execute($stmt);
    oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              ");
oci_execute($stmt);

while ($row = oci_fetch_assoc($stmt)) {
    var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   ");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

记住，本函数删除了行尾的空白字符。见以下例子：

Example #2 oci_bind_by_name() 例子

<?php
$connection = oci_connect('apelsin','kanistra');
$query = "INSERT INTO test_table VALUES(:id, :text)";

$statement = oci_parse($query);
oci_bind_by_name($statement, ":id", 1);
oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
oci_execute($statement);
/*
 This code will insert into DB string 'trailing spaces follow', without
 trailing spaces
*/
?>

Example #3 oci_bind_by_name() 例子

<?php
$connection = oci_connect('apelsin','kanistra');
$query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

$statement = oci_parse($query);
oci_bind_by_name($statement, ":id", 1);
oci_execute($statement);
/*
 And this code will add 'trailing spaces follow      ', preserving
 trailing whitespaces
*/
?>

Warning

不要将 magic_quotes_gpc 或 addslashes() 与 oci_bind_by_name() 同时使用，因为不需要转义，任何自动加上的引号都会被写入数据库中，因为 oci_bind_by_name() 不能分辨有意加上的引号和魔术引号。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocibindbyname() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_bind_by_name() 的别名。不过其已被废弃，不推荐使用。

oci_bind_array_by_name
oci_cancel
OCI8 函数


取消从游标读取数据

oci_bind_by_name
oci_close
OCI8 函数
PHP 手册

oci_cancel

(PHP 5, PECL oci8 >= 1.1.0)

oci_cancel — 取消从游标读取数据

说明

bool oci_cancel ( resource $stmt )

oci_cancel() 使一个游标无效，释放所有与之关联的资源并取消了从中读取的能力。

如果成功则返回 TRUE，失败则返回 FALSE。

在 PHP 5.0.0 之前的版本必须使用 ocicancel() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_cancel() 的别名。不过其已被废弃，不推荐使用。

oci_bind_by_name
oci_close
OCI8 函数


关闭 Oracle 连接

oci_cancel
OCI-Collection->append
OCI8 函数
PHP 手册

oci_close

(PHP 5, PECL oci8 >= 1.1.0)

oci_close — 关闭 Oracle 连接

说明

bool oci_close ( resource $connection )

oci_close() 将 Oracle 连接 connection 关闭。

Note: 自版本 1.1 起 oci_close() 正确关闭 Oracle 连接。使用 oci8.old_oci_close_semantics 选项来恢复本函数的旧行为。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocilogoff() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_close() 的别名。不过其已被废弃，不推荐使用。

oci_cancel
OCI-Collection->append
OCI8 函数


Appends element to the collection

oci_close
OCI-Collection->assign
OCI8 函数
PHP 手册

OCI-Collection->append

(No version information available, might be only in CVS)

OCI-Collection->append — Appends element to the collection

说明

OCI-Collection
bool append ( mixed $value )

Appends element to the end of the collection.

参数

value

The value to be added to the collection. Can be a string or a number.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Collection->assign

oci_close
OCI-Collection->assign
OCI8 函数


Assigns a value to the collection from another existing collection

OCI-Collection->append
OCI-Collection->assignElem
OCI8 函数
PHP 手册

OCI-Collection->assign

(No version information available, might be only in CVS)

OCI-Collection->assign — Assigns a value to the collection from another existing collection

说明

OCI-Collection
bool assign ( OCI-Collection $from )

Assigns a value to the collection from another, previously created collection. Both collections must be created with oci_new_collection() prior to using them.

参数

from

An instance of OCI-Collection.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Collection->append

OCI-Collection->append
OCI-Collection->assignElem
OCI8 函数


Assigns a value to the element of the collection

OCI-Collection->assign
OCI-Collection->free
OCI8 函数
PHP 手册

OCI-Collection->assignElem

(No version information available, might be only in CVS)

OCI-Collection->assignElem — Assigns a value to the element of the collection

说明

OCI-Collection
bool assignElem ( int $index , mixed $value )

Assigns a value to the element with index index .

参数

index

The element index. First index is 1.

value

Can be a string or a number.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Collection->getElem

OCI-Collection->assign
OCI-Collection->free
OCI8 函数


Frees the resources associated with the collection object

OCI-Collection->assignElem
OCI-Collection->getElem
OCI8 函数
PHP 手册

OCI-Collection->free

(No version information available, might be only in CVS)

OCI-Collection->free — Frees the resources associated with the collection object

说明

OCI-Collection
bool free ( void )

Frees the resources associated with the collection object.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • oci_new_collection

OCI-Collection->assignElem
OCI-Collection->getElem
OCI8 函数


Returns value of the element

OCI-Collection->free
OCI-Collection->max
OCI8 函数
PHP 手册

OCI-Collection->getElem

(No version information available, might be only in CVS)

OCI-Collection->getElem — Returns value of the element

说明

OCI-Collection
mixed getElem ( int $index )

Returns element's value with the index index (1-based).

参数

index

The element index. First index is 1.

返回值

Returns FALSE if such element doesn't exist; NULL if element is NULL; string if element is column of a string datatype or number if element is numeric field.

参见

  • OCI-Collection->assignElem

OCI-Collection->free
OCI-Collection->max
OCI8 函数


Returns the maximum number of elements in the collection

OCI-Collection->getElem
OCI-Collection->size
OCI8 函数
PHP 手册

OCI-Collection->max

(No version information available, might be only in CVS)

OCI-Collection->max — Returns the maximum number of elements in the collection

说明

OCI-Collection
int max ( void )

Returns the maximum number of elements in the collection.

返回值

Returns the maximum number as an integer, or FALSE on errors.

If the returned value is 0, then the number of elements is not limited.

参见

  • OCI-Collection->size

OCI-Collection->getElem
OCI-Collection->size
OCI8 函数


Returns size of the collection

OCI-Collection->max
OCI-Collection->trim
OCI8 函数
PHP 手册

OCI-Collection->size

(No version information available, might be only in CVS)

OCI-Collection->size — Returns size of the collection

说明

OCI-Collection
int size ( void )

Returns the size of the collection.

返回值

Returns the number of elements in the collection or FALSE on error.

参见

  • OCI-Collection->max

OCI-Collection->max
OCI-Collection->trim
OCI8 函数


Trims elements from the end of the collection

OCI-Collection->size
oci_commit
OCI8 函数
PHP 手册

OCI-Collection->trim

(No version information available, might be only in CVS)

OCI-Collection->trim — Trims elements from the end of the collection

说明

OCI-Collection
bool trim ( int $num )

Trims num of elements from the end of the collection.

参数

num

The number of elements to be trimmed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Collection->size

OCI-Collection->size
oci_commit
OCI8 函数


提交未执行的事务处理

OCI-Collection->trim
oci_connect
OCI8 函数
PHP 手册

oci_commit

(PHP 5, PECL oci8 >= 1.1.0)

oci_commit — 提交未执行的事务处理

说明

bool oci_commit ( resource $connection )

oci_commit() 将 Oracle 连接 connection 上正在运行的事务中所有未执行的语句提交处理。

Example #1 oci_commit() 例子

<?php
    // Login to Oracle server
    $conn = oci_connect('scott', 'tiger');

    // Parse SQL
    $stmt = oci_parse($conn, "
                              INSERT INTO
                                         employees (name, surname)
                                   VALUES
                                         ('Maxim', 'Maletsky')
                             ");

    /* Execute statement
       OCI_DEFAULT tells oci_execute()
       not to commit statement immediately */
    oci_execute($stmt, OCI_DEFAULT);

    /*
    ....
    Parsing and executing other statements here ...
    ....
    */

    // Commit transaction
    $committed = oci_commit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

?>

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 当关闭连接或脚本结束时（看哪个先）事务会自动回卷。需要明确地调用 oci_commit() 来提交事务，或 oci_rollback() 来中止事务。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicommit() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_commit() 的别名。不过其已被废弃，不推荐使用。

参见 oci_rollback() 和 oci_execute()。

OCI-Collection->trim
oci_connect
OCI8 函数


建立一个到 Oracle 服务器的连接

oci_commit
oci_define_by_name
OCI8 函数
PHP 手册

oci_connect

(PHP 5, PECL oci8 >= 1.1.0)

oci_connect — 建立一个到 Oracle 服务器的连接

说明

resource oci_connect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] )

oci_connect() 返回一个大多数 OCI 调用都需要的连接标识符。可选的第三个参数可以包含想要连接的本地 Oracle 的实例的或者在 tnsnames.ora 中的条目的名字。如果没有指定可选的第三个参数，PHP 使用环境变量 ORACLE_SID（Oracle 实例）或 TWO_TASK（tnsnames.ora）来确定连接哪一个数据库。

session_mode 参数自版本 1.1 起可用并接受如下值：OCI_DEFAULT，OCI_SYSOPER 和 OCI_SYSDBA。如果指定了 OCI_SYSOPER 或 OCI_SYSDBA 其中之一，oci_connect() 将尝试使用外部认证信息建立特权连接。特权连接默认被禁止。要启用，需要将 oci8.privileged_connect 设为 On。

Note: 如果 PHP 用的是 Oracle Instant Client，可以用容易的命名连接方法，说明见这里：» http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306。基本上这意味着可以指定 "//db_host[:port]/database_name" 作为数据库名。但如果想用命名的旧方法则必须设定 ORACLE_HOME 或 TNS_ADMIN 二者之一。

Note: 对 oci_connect() 用同样的参数第二次及之后的调用将返回第一次调用所返回的连接句柄。也就是说对一个句柄发出的查询也适用于另一个句柄，因为它们是同一个句柄。此行为演示于下面的例 1。如果需要两个句柄在事务上互相隔离开，应该使用 oci_new_connect() 来替代。

使用 Oracle 服务器 9.2 或更高版本，可以指定 charset 参数，其将被用于新的连接。如果使用 Oracle 服务器低于 9.2 的版本，本参数将被忽略并以 NLS_LANG 环境变量替代之。

Example #1 oci_connect() 例子

<?php
echo "<pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
echo "</pre>";
?>

oci_connect() 如果出错则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocilogon() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_connect() 的别名。不过其已被废弃，不推荐使用。

参见 oci_pconnect()，oci_new_connect() 和 oci_close()。

oci_commit
oci_define_by_name
OCI8 函数


在 SELECT 中使用 PHP 变量作为定义的步骤

oci_connect
oci_error
OCI8 函数
PHP 手册

oci_define_by_name

(PHP 5, PECL oci8 >= 1.1.0)

oci_define_by_name — 在 SELECT 中使用 PHP 变量作为定义的步骤

说明

bool oci_define_by_name ( resource $statement , string $column_name , mixed &$variable [, int $type ] )

oci_define_by_name() 绑定 PHP 到获取的 SQL 列。 需要注意的是，Oracle 使用大写字母的列名，而用户在 select 中也可以用小写字母。oci_define_by_name() 期望 column_name 是大写字母。如果定义一个变量不存在于 select 语句中，将没有错误被给出。

如果需要定义一个抽象数据类型（LOB/ROWID/BFILE），必须先用 oci_new_descriptor() 分配空间。参见 oci_bind_by_name() 函数。

Example #1 oci_define_by_name() 例子

<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");

/* the define MUST be done BEFORE oci_execute! */

oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Note: 在 PHP 5.0.0 之前的版本必须使用 ocidefinebyname() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_define_by_name() 的别名。不过其已被废弃，不推荐使用。

oci_connect
oci_error
OCI8 函数


返回上一个错误

oci_define_by_name
oci_execute
OCI8 函数
PHP 手册

oci_error

(PHP 5, PECL oci8 >= 1.1.0)

oci_error — 返回上一个错误

说明

array oci_error ([ resource $source ] )

对于大多数错误，参数是最适合的资源句柄。对于 oci_connect()，oci_new_connect() 或 oci_pconnect() 的连接错误，不要传递参数。如果没有发现错误，oci_error() 返回 FALSE。oci_error() 以一个关联数组返回错误。在此数组中，code 是 oracle 错误代码而 message 是 oracle 的错误字符串。

Note: 自 PHP 4.3 起
offset 和 sqltext 也包括在返回的数组中，用来指出错误发生的位置以及造成错误的原始的 SQL 文本。

Example #1 连接错误后显示 Oracle 错误信息

$conn = @oci_connect("scott", "tiger", "mydb");
if (!$conn) {
  $e = oci_error();   // For oci_connect errors pass no handle
  echo htmlentities($e['message']);
}

Example #2 语法解析错误后显示 Oracle 错误信息

$stmt = @oci_parse($conn, "select ' from dual");  // note mismatched quote
if (!$stmt) {
  $e = oci_error($conn);  // For oci_parse errors pass the connection handle
  echo htmlentities($e['message']);
}

Example #3 执行错误后显示 Oracle 错误信息和出错的语句

$r = oci_execute($stmt);
if (!$r) {
  $e = oci_error($stmt); // For oci_execute errors pass the statementhandle
  echo htmlentities($e['message']);
  echo "<pre>";
  echo htmlentities($e['sqltext']);
  printf("\n%".($e['offset']+1)."s", "^");
  echo "</pre>";
}

Note: 在 PHP 5.0.0 之前的版本必须使用 ocierror() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_error() 的别名。不过其已被废弃，不推荐使用。

oci_define_by_name
oci_execute
OCI8 函数


执行一条语句

oci_error
oci_fetch_all
OCI8 函数
PHP 手册

oci_execute

(PHP 5, PECL oci8 >= 1.1.0)

oci_execute — 执行一条语句

说明

bool oci_execute ( resource $stmt [, int $mode ] )

oci_execute() 执行一条之前被解析过的语句（见 oci_parse()）。可选参数 mode 允许定义执行模式（默认是 OCI_COMMIT_ON_SUCCESS）。如果不需要将语句自动提交，则需要把 mode 设为 OCI_DEFAULT。

用 OCI_DEFAULT 模式时，将建立一个事务。事务会在关闭连接或脚本结束时（看哪个先）自动回卷。需要明确调用 oci_commit() 来提交事务，或者 oci_rollback() 中止事务。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ociexecute() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_execute() 的别名。不过其已被废弃，不推荐使用。

oci_error
oci_fetch_all
OCI8 函数


获取结果数据的所有行到一个数组

oci_execute
oci_fetch_array
OCI8 函数
PHP 手册

oci_fetch_all

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch_all — 获取结果数据的所有行到一个数组

说明

int oci_fetch_all ( resource $statement , array &$output [, int $skip [, int $maxrows [, int $flags ]]] )

oci_fetch_all() 从一个结果中获取所有的行到一个用户定义的数组。oci_fetch_all() 返回获取的行数，出错则返回 FALSE。skip 是从结果中获取数据时，最开始忽略的行数（默认值是 0，即从第一行开始）。maxrows 是要读取的行数，从第 skip 行开始（默认值是 -1，即所有行）。

Note: 本函数对 PHP NULL 值设定 NULL 字段。

flags 参数可以是下列值的任意组合：

  • OCI_FETCHSTATEMENT_BY_ROW
  • OCI_FETCHSTATEMENT_BY_COLUMN（默认值）
  • OCI_NUM
  • OCI_ASSOC

Example #1 oci_fetch_all() 例子

<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
   echo "<table border=\"1\">\n";
   echo "<tr>\n";
   foreach ($results as $key => $val) {
      echo "<th>$key</th>\n";
   }
   echo "</tr>\n";

   for ($i = 0; $i < $nrows; $i++) {
      echo "<tr>\n";
      foreach ($results as $data) {
         echo "<td>$data[$i]</td>\n";
      }
      echo "</tr>\n";
   }
   echo "</table>\n";
} else {
   echo "No data found<br />\n";
}
echo "$nrows Records Selected<br />\n";

oci_free_statement($stmt);
oci_close($conn);
?>

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

oci_fetch_all() 如果出错则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocifetchstatement() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_fetch_all() 的别名。不过其已被废弃，不推荐使用。

oci_execute
oci_fetch_array
OCI8 函数


Returns the next row from the result data as an associative or numeric array, or both

oci_fetch_all
oci_fetch_assoc
OCI8 函数
PHP 手册

oci_fetch_array

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch_array — Returns the next row from the result data as an associative or numeric array, or both

说明

array oci_fetch_array ( resource $statement [, int $mode ] )

Returns an array, which corresponds to the next result row.

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

It should be mentioned here, that oci_fetch_array() is insignificantly slower, than oci_fetch_row(), but much more handy.

参数

statement

A valid OCI statement identifier.

mode

An optional second parameter can be any combination of the following constants:

  • OCI_BOTH - return an array with both associative and numeric indices (the same as OCI_ASSOC + OCI_NUM). This is the default behavior.
  • OCI_ASSOC - return an associative array (as oci_fetch_assoc() works).
  • OCI_NUM - return a numeric array, (as oci_fetch_row() works).
  • OCI_RETURN_NULLS - create empty elements for the NULL fields.
  • OCI_RETURN_LOBS - return the value of a LOB of the descriptor.

Default mode is OCI_BOTH.

返回值

Returns an array with both associative and numeric indices, or FALSE if there are no more rows in the statement .

Note: 本函数对 PHP NULL 值设定 NULL 字段。

Note: Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

范例

Example #1 oci_fetch_array() with OCI_BOTH example

<?php
$connection = oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0]." and ".$row['ID']." is the same<br>";
    echo $row[1]." and ".$row['NAME']." is the same<br>";
}
?>

Example #2 oci_fetch_array() with OCI_NUM example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row[2]->read(100)."<br>";  //this will output first 100 bytes from LOB
}
?>

Example #3 oci_fetch_array() with OCI_ASSOC example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_ASSOC)) {
    echo $row['ID']."<br>";
    echo $row['NAME']."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output "Object id #1"
}
?>

Example #4 oci_fetch_array() with OCI_RETURN_LOBS example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, (OCI_NUM+OCI_RETURN_LOBS))) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output LOB's content
}
?>

参见

  • oci_fetch_assoc() - Returns the next row from the result data as an associative array
  • oci_fetch_object() - Returns the next row from the result data as an object
  • oci_fetch_row() - Returns the next row from the result data as a numeric array
  • oci_fetch_all() - 获取结果数据的所有行到一个数组

oci_fetch_all
oci_fetch_assoc
OCI8 函数


Returns the next row from the result data as an associative array

oci_fetch_array
oci_fetch_object
OCI8 函数
PHP 手册

oci_fetch_assoc

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch_assoc — Returns the next row from the result data as an associative array

说明

array oci_fetch_assoc ( resource $statement )

Returns the next row from the result data as an associative array.

Calling oci_fetch_assoc() is identical to calling oci_fetch_array() with OCI_ASSOC.

A subsequent call to oci_fetch_assoc() will return the next row or FALSE if there are no more rows.

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

参数

statement

A valid OCI statement identifier.

返回值

Returns an associative array, or FALSE if there are no more rows in the statement .

Note: 本函数对 PHP NULL 值设定 NULL 字段。

Note: Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

参见

  • oci_fetch_array() - Returns the next row from the result data as an associative or numeric array, or both
  • oci_fetch_object() - Returns the next row from the result data as an object
  • oci_fetch_row() - Returns the next row from the result data as a numeric array
  • oci_fetch_all() - 获取结果数据的所有行到一个数组

oci_fetch_array
oci_fetch_object
OCI8 函数


Returns the next row from the result data as an object

oci_fetch_assoc
oci_fetch_row
OCI8 函数
PHP 手册

oci_fetch_object

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch_object — Returns the next row from the result data as an object

说明

object oci_fetch_object ( resource $statement )

Returns the next row from the result data as an object.

Subsequent calls to oci_fetch_object() will return the next row from the result or FALSE if there are no more rows.

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

参数

statement

A valid OCI statement identifier.

返回值

Returns an object, which attributes correspond to fields in statement, or FALSE if there are no more rows in the statement .

Note: 本函数对 PHP NULL 值设定 NULL 字段。

Note: Oracle returns all field names in uppercase and associative indices in the result object will be uppercased too.

参见

  • oci_fetch_array() - Returns the next row from the result data as an associative or numeric array, or both
  • oci_fetch_assoc() - Returns the next row from the result data as an associative array
  • oci_fetch_row() - Returns the next row from the result data as a numeric array
  • oci_fetch_all() - 获取结果数据的所有行到一个数组

oci_fetch_assoc
oci_fetch_row
OCI8 函数


Returns the next row from the result data as a numeric array

oci_fetch_object
oci_fetch
OCI8 函数
PHP 手册

oci_fetch_row

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch_row — Returns the next row from the result data as a numeric array

说明

array oci_fetch_row ( resource $statement )

Returns the next row from the result data as an indexed array.

Calling oci_fetch_row() is identical to calling oci_fetch_array() with OCI_NUM.

Subsequent calls to oci_fetch_row() will return the next row from the result data or FALSE if there are no more rows.

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

参数

statement

A valid OCI statement identifier.

返回值

Returns an indexed array with the field information, or FALSE if there are no more rows in the statement .

Note: 本函数对 PHP NULL 值设定 NULL 字段。

参见

  • oci_fetch_array() - Returns the next row from the result data as an associative or numeric array, or both
  • oci_fetch_assoc() - Returns the next row from the result data as an associative array
  • oci_fetch_object() - Returns the next row from the result data as an object
  • oci_fetch_all() - 获取结果数据的所有行到一个数组

oci_fetch_object
oci_fetch
OCI8 函数


Fetches the next row into result-buffer

oci_fetch_row
oci_field_is_null
OCI8 函数
PHP 手册

oci_fetch

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch — Fetches the next row into result-buffer

说明

bool oci_fetch ( resource $statement )

oci_fetch() 获取下一行（对于 SELECT 语句）到内部结果缓冲区。

如果成功则返回 TRUE，失败则返回 FALSE。

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocifetch() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_fetch() 的别名。不过其已被废弃，不推荐使用。

oci_fetch_row
oci_field_is_null
OCI8 函数


检查字段是否为 NULL

oci_fetch
oci_field_name
OCI8 函数
PHP 手册

oci_field_is_null

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_is_null — 检查字段是否为 NULL

说明

bool oci_field_is_null ( resource $statement , mixed $field )

如果 statement 语句结果中返回的 field 字段的值是 NULL，oci_field_is_null() 返回 TRUE。field 参数可以是字段的索引或字段名（大写字母）。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumnisnull() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_is_null() 的别名。不过其已被废弃，不推荐使用。

oci_fetch
oci_field_name
OCI8 函数


返回字段名

oci_field_is_null
oci_field_precision
OCI8 函数
PHP 手册

oci_field_name

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_name — 返回字段名

说明

string oci_field_name ( resource $statement , int $field )

oci_field_name() 返回与字段数字索引（从 1 开始）相对应的字段名。

Example #1 oci_field_name() 例子

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumnname() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_name() 的别名。不过其已被废弃，不推荐使用。

参见 oci_num_fields()，oci_field_type() 和 oci_field_size()。

oci_field_is_null
oci_field_precision
OCI8 函数


返回字段精度

oci_field_name
oci_field_scale
OCI8 函数
PHP 手册

oci_field_precision

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_precision — 返回字段精度

说明

int oci_field_precision ( resource $statement , int $field )

返回索引为 field （从 1 开始）的字段的精度。

对于 FLOAT 字段，精度为非零值且范围为 -127。如果精度为 0，则字段为 NUMBER。其它类型为 NUMBER(precision, scale)。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumnprecision() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_precision() 的别名。不过其已被废弃，不推荐使用。

参见 oci_field_scale() 和 oci_field_type()。

oci_field_name
oci_field_scale
OCI8 函数


返回字段范围

oci_field_precision
oci_field_size
OCI8 函数
PHP 手册

oci_field_scale

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_scale — 返回字段范围

说明

int oci_field_scale ( resource $statement , int $field )

返回索引为 field （从 1 开始）的字段的范围。如果无此字段则返回 FALSE。

对于 FLOAT 字段，精度为非零值且范围为 -127。如果精度为 0，则字段为 NUMBER。其它类型为 NUMBER(precision, scale)。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumnscale() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_scale() 的别名。不过其已被废弃，不推荐使用。

参见 oci_field_precision() 和 oci_field_type()。

oci_field_precision
oci_field_size
OCI8 函数


返回字段大小

oci_field_scale
oci_field_type_raw
OCI8 函数
PHP 手册

oci_field_size

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_size — 返回字段大小

说明

int oci_field_size ( resource $stmt , mixed $field )

oci_field_size() 以字节为单位返回字段的大小。field 参数的值可以是字段的索引（从 1 开始）或者字段名。

Example #1 oci_field_size()例子

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumnsize() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_size() 的别名。不过其已被废弃，不推荐使用。

参见 oci_num_fields() 和 oci_field_name()。

oci_field_scale
oci_field_type_raw
OCI8 函数


返回字段的原始 Oracle 数据类型

oci_field_size
oci_field_type
OCI8 函数
PHP 手册

oci_field_type_raw

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_type_raw — 返回字段的原始 Oracle 数据类型

说明

int oci_field_type_raw ( resource $statement , int $field )

oci_field_type_raw() 返回字段的原始 Oracle 数据类型。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumntyperaw() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_type_raw() 的别名。不过其已被废弃，不推荐使用。

不过，如果需要取得字段的类型，oci_field_type() 更为适合。更多信息见 oci_field_type()。

oci_field_size
oci_field_type
OCI8 函数


返回字段的数据类型

oci_field_type_raw
oci_free_statement
OCI8 函数
PHP 手册

oci_field_type

(PHP 5, PECL oci8 >= 1.1.0)

oci_field_type — 返回字段的数据类型

说明

mixed oci_field_type ( resource $stmt , int $field )

oci_field_type() 返回字段的数据类型。field 参数是字段的索引（从 1 开始）。

Example #1 oci_field_type() 例子

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Note: 在 PHP 5.0.0 之前的版本必须使用 ocicolumntype() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_field_type() 的别名。不过其已被废弃，不推荐使用。

参见 oci_num_fields()，oci_field_name() 和 oci_field_size()。

oci_field_type_raw
oci_free_statement
OCI8 函数


释放关联于语句或游标的所有资源

oci_field_type
oci_internal_debug
OCI8 函数
PHP 手册

oci_free_statement

(PHP 5, PECL oci8 >= 1.1.0)

oci_free_statement — 释放关联于语句或游标的所有资源

说明

bool oci_free_statement ( resource $statement )

oci_free_statement() 释放关联于 Oracle 游标或语句的资源，该资源是作为 oci_parse() 的结果或者是从 Oracle 取得。

如果成功则返回 TRUE，失败则返回 FALSE。

oci_field_type
oci_internal_debug
OCI8 函数


打开或关闭内部调试输出

oci_free_statement
OCI-Lob->append
OCI8 函数
PHP 手册

oci_internal_debug

(PHP 5, PECL oci8 >= 1.1.0)

oci_internal_debug — 打开或关闭内部调试输出

说明

void oci_internal_debug ( int $onoff )

oci_internal_debug() 打开或关闭内部调试输出。设置 onoff 为 0 关闭调试输出，为 1 则打开。

Note: 在 PHP 5.0.0 之前的版本必须使用 ociinternaldebug() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_internal_debug() 的别名。不过其已被废弃，不推荐使用。

oci_free_statement
OCI-Lob->append
OCI8 函数


Appends data from the large object to another large object

oci_internal_debug
OCI-Lob->close
OCI8 函数
PHP 手册

OCI-Lob->append

(No version information available, might be only in CVS)

OCI-Lob->append — Appends data from the large object to another large object

说明

OCI-Lob
bool append ( OCI-Lob $lob_from )

Appends data from the large object to the end of another large object.

Writing to the large object with this method will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with OCI-Lob->flush before disabling buffering.

参数

lob_from

The copied LOB.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->flush
  • OCI-Lob->setBuffering
  • OCI-Lob->getBuffering

oci_internal_debug
OCI-Lob->close
OCI8 函数


Closes LOB descriptor

OCI-Lob->append
oci_lob_copy
OCI8 函数
PHP 手册

OCI-Lob->close

(No version information available, might be only in CVS)

OCI-Lob->close — Closes LOB descriptor

说明

OCI-Lob
bool close ( void )

Closes descriptor of LOB or FILE. This function should be used only with OCI-Lob->writeTemporary.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->writeTemporary

OCI-Lob->append
oci_lob_copy
OCI8 函数


Copies large object

OCI-Lob->close
OCI-Lob->eof
OCI8 函数
PHP 手册

oci_lob_copy

(PHP 5, PECL oci8 >= 1.1.0)

oci_lob_copy — Copies large object

说明

bool oci_lob_copy ( OCI-Lob $lob_to , OCI-Lob $lob_from [, int $length=0 ] )

Copies a large object or a part of a large object to another large object. Old LOB-recipient data will be overwritten.

If you need to copy a particular part of a LOB to a particular position of a LOB, use oci_lob_seek() to move LOB internal pointers.

参数

lob_to

The destination LOB.

lob_from

The copied LOB.

length

Indicates the length of data to be copied.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

OCI-Lob->close
OCI-Lob->eof
OCI8 函数


Tests for end-of-file on a large object's descriptor

oci_lob_copy
OCI-Lob->erase
OCI8 函数
PHP 手册

OCI-Lob->eof

(No version information available, might be only in CVS)

OCI-Lob->eof — Tests for end-of-file on a large object's descriptor

说明

OCI-Lob
bool eof ( void )

Tells whether the internal pointer of large object is at the end of LOB.

返回值

Returns TRUE if internal pointer of large object is at the end of LOB. Otherwise returns FALSE.

参见

  • OCI-Lob->size

oci_lob_copy
OCI-Lob->erase
OCI8 函数


Erases a specified portion of the internal LOB data

OCI-Lob->eof
OCI-Lob->export
OCI8 函数
PHP 手册

OCI-Lob->erase

(No version information available, might be only in CVS)

OCI-Lob->erase — Erases a specified portion of the internal LOB data

说明

OCI-Lob
int erase ([ int $offset [, int $length ]] )

Erases a specified portion of the internal LOB data starting at a specified offset . If called without parameters, it erases all LOB data.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

参数

offset

length

返回值

Returns the actual number of characters/bytes erased or FALSE in case of error.

参见

  • OCI-Lob->truncate

OCI-Lob->eof
OCI-Lob->export
OCI8 函数


Exports LOB's contents to a file

OCI-Lob->erase
OCI-Lob->flush
OCI8 函数
PHP 手册

OCI-Lob->export

(No version information available, might be only in CVS)

OCI-Lob->export — Exports LOB's contents to a file

说明

OCI-Lob
bool export ( string $filename [, int $start [, int $length ]] )

Exports LOB contents to a file.

参数

filename

Path to the file.

start

Indicates from where to start exporting.

length

Indicates the length of data to be exported.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->import

OCI-Lob->erase
OCI-Lob->flush
OCI8 函数


Flushes/writes buffer of the LOB to the server

OCI-Lob->export
OCI-Lob->free
OCI8 函数
PHP 手册

OCI-Lob->flush

(No version information available, might be only in CVS)

OCI-Lob->flush — Flushes/writes buffer of the LOB to the server

说明

OCI-Lob
bool flush ([ int $flag ] )

OCI-Lob->flush() actually writes data to the server.

参数

flag

By default, resources are not freed, but using flag OCI_LOB_BUFFER_FREE you can do it explicitly. Be sure you know what you're doing - next read/write operation to the same part of LOB will involve a round-trip to the server and initialize new buffer resources. It is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Returns FALSE if buffering was not enabled or an error occurred.

参见

  • OCI-Lob->getBuffering
  • OCI-Lob->setBuffering

OCI-Lob->export
OCI-Lob->free
OCI8 函数


Frees resources associated with the LOB descriptor

OCI-Lob->flush
OCI-Lob->getBuffering
OCI8 函数
PHP 手册

OCI-Lob->free

(No version information available, might be only in CVS)

OCI-Lob->free — Frees resources associated with the LOB descriptor

说明

OCI-Lob
bool free ( void )

Frees resources associated with the descriptor, previously allocated with oci_new_descriptor().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

OCI-Lob->flush
OCI-Lob->getBuffering
OCI8 函数


Returns current state of buffering for the large object

OCI-Lob->free
OCI-Lob->import
OCI8 函数
PHP 手册

OCI-Lob->getBuffering

(No version information available, might be only in CVS)

OCI-Lob->getBuffering — Returns current state of buffering for the large object

说明

OCI-Lob
bool getBuffering ( void )

Tells whether the buffering for the large object is on or off.

返回值

Returns FALSE if buffering for the large object is off and TRUE if buffering is used.

参见

  • OCI-Lob->setBuffering

OCI-Lob->free
OCI-Lob->import
OCI8 函数


Imports file data to the LOB

OCI-Lob->getBuffering
oci_lob_is_equal
OCI8 函数
PHP 手册

OCI-Lob->import

(No version information available, might be only in CVS)

OCI-Lob->import — Imports file data to the LOB

说明

OCI-Lob
bool import ( string $filename )

Writes data from the filename in to the current position of large object.

参数

filename

Path to the file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->export
  • OCI-Lob->write

OCI-Lob->getBuffering
oci_lob_is_equal
OCI8 函数


Compares two LOB/FILE locators for equality

OCI-Lob->import
OCI-Lob->load
OCI8 函数
PHP 手册

oci_lob_is_equal

(PHP 5, PECL oci8 >= 1.1.0)

oci_lob_is_equal — Compares two LOB/FILE locators for equality

说明

bool oci_lob_is_equal ( OCI-Lob $lob1 , OCI-Lob $lob2 )

Compares two LOB/FILE locators.

参数

lob1

A LOB identifier.

lob2

A LOB identifier.

返回值

Returns TRUE if these objects are equal, FALSE otherwise.

OCI-Lob->import
OCI-Lob->load
OCI8 函数


Returns large object's contents

oci_lob_is_equal
OCI-Lob->read
OCI8 函数
PHP 手册

OCI-Lob->load

(No version information available, might be only in CVS)

OCI-Lob->load — Returns large object's contents

说明

OCI-Lob
string load ( void )

Returns large object's contents. As script execution is terminated when the memory_limit is reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use OCI-Lob->read instead.

返回值

Returns the contents of the object, or FALSE on errors.

参见

  • OCI-Lob->read

oci_lob_is_equal
OCI-Lob->read
OCI8 函数


Reads part of the large object

OCI-Lob->load
OCI-Lob->rewind
OCI8 函数
PHP 手册

OCI-Lob->read

(No version information available, might be only in CVS)

OCI-Lob->read — Reads part of the large object

说明

OCI-Lob
string read ( int $length )

Reads length bytes from the current position of LOB's internal pointer.

Reading stops when length bytes have been read or end of the large object is reached. Internal pointer of the large object will be shifted on the amount of bytes read.

参数

length

The length of data to read, in bytes.

返回值

Returns the contents as a string, or FALSE in case of error.

参见

  • OCI-Lob->load
  • OCI-Lob->write

OCI-Lob->load
OCI-Lob->rewind
OCI8 函数


Moves the internal pointer to the beginning of the large object

OCI-Lob->read
OCI-Lob->save
OCI8 函数
PHP 手册

OCI-Lob->rewind

(No version information available, might be only in CVS)

OCI-Lob->rewind — Moves the internal pointer to the beginning of the large object

说明

OCI-Lob
bool rewind ( void )

Sets the internal pointer to the beginning of the large object.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->seek
  • OCI-Lob->tell

OCI-Lob->read
OCI-Lob->save
OCI8 函数


Saves data to the large object

OCI-Lob->rewind
OCI-Lob->saveFile
OCI8 函数
PHP 手册

OCI-Lob->save

(No version information available, might be only in CVS)

OCI-Lob->save — Saves data to the large object

说明

OCI-Lob
bool save ( string $data [, int $offset ] )

Saves data to the large object.

参数

data

The data to be saved.

offset

Can be used to indicate offset from the beginning of the large object.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->write
  • OCI-Lob->import

OCI-Lob->rewind
OCI-Lob->saveFile
OCI8 函数


别名 oci_lob_import

OCI-Lob->save
OCI-Lob->seek
OCI8 函数
PHP 手册

OCI-Lob->saveFile

(No version information available, might be only in CVS)

OCI-Lob->saveFile — 别名 oci_lob_import()

说明

本函数是该函数的别名： oci_lob_import().

OCI-Lob->save
OCI-Lob->seek
OCI8 函数


Sets the internal pointer of the large object

OCI-Lob->saveFile
OCI-Lob->setBuffering
OCI8 函数
PHP 手册

OCI-Lob->seek

(No version information available, might be only in CVS)

OCI-Lob->seek — Sets the internal pointer of the large object

说明

OCI-Lob
bool seek ( int $offset [, int $whence ] )

Sets the internal pointer of the large object.

参数

offset

Indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence .

whence

May be one of:

  • OCI_SEEK_SET - sets the position equal to offset
  • OCI_SEEK_CUR - adds offset bytes to the current position
  • OCI_SEEK_END - adds offset bytes to the end of large object (use negative value to move to a position before the end of large object)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->rewind
  • OCI-Lob->tell
  • OCI-Lob->eof

OCI-Lob->saveFile
OCI-Lob->setBuffering
OCI8 函数


Changes current state of buffering for the large object

OCI-Lob->seek
OCI-Lob->size
OCI8 函数
PHP 手册

OCI-Lob->setBuffering

(No version information available, might be only in CVS)

OCI-Lob->setBuffering — Changes current state of buffering for the large object

说明

OCI-Lob
bool setBuffering ( bool $on_off )

Sets the buffering for the large object, depending on the value of the on_off parameter.

Use of this function may provide performance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. oci_lob_flush() should be used to flush buffers, when you have finished working with the large object.

参数

on_off

TRUE for on and FALSE for off.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Repeated calls to this method with the same flag will return TRUE.

参见

  • OCI-Lob->getBuffering

OCI-Lob->seek
OCI-Lob->size
OCI8 函数


Returns size of large object

OCI-Lob->setBuffering
OCI-Lob->tell
OCI8 函数
PHP 手册

OCI-Lob->size

(No version information available, might be only in CVS)

OCI-Lob->size — Returns size of large object

说明

OCI-Lob
int size ( void )

Gets the size of the large object.

返回值

Returns length of large object value or FALSE in case of error. Empty objects have zero length.

OCI-Lob->setBuffering
OCI-Lob->tell
OCI8 函数


Returns current position of internal pointer of large object

OCI-Lob->size
OCI-Lob->truncate
OCI8 函数
PHP 手册

OCI-Lob->tell

(No version information available, might be only in CVS)

OCI-Lob->tell — Returns current position of internal pointer of large object

说明

OCI-Lob
int tell ( void )

Gets the current position of a LOB's internal pointer.

返回值

Returns current position of a LOB's internal pointer or FALSE if an error occurred.

参见

  • OCI-Lob->rewind
  • OCI-Lob->size
  • OCI-Lob->eof

OCI-Lob->size
OCI-Lob->truncate
OCI8 函数


Truncates large object

OCI-Lob->tell
OCI-Lob->write
OCI8 函数
PHP 手册

OCI-Lob->truncate

(No version information available, might be only in CVS)

OCI-Lob->truncate — Truncates large object

说明

OCI-Lob
bool truncate ([ int $length ] )

Truncates the LOB.

参数

length

If provided, this method will truncate the LOB to length bytes. Otherwise, it will completrely purge the LOB.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->erase

OCI-Lob->tell
OCI-Lob->write
OCI8 函数


Writes data to the large object

OCI-Lob->truncate
OCI-Lob->writeTemporary
OCI8 函数
PHP 手册

OCI-Lob->write

(No version information available, might be only in CVS)

OCI-Lob->write — Writes data to the large object

说明

OCI-Lob
int write ( string $data [, int $length ] )

Writes data from the parameter data into the current position of LOB's internal pointer.

参数

data

The data to write in the LOB.

length

If this parameter is given, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

返回值

Returns the number of bytes written or FALSE in case of error.

参见

  • OCI-Lob->read

OCI-Lob->truncate
OCI-Lob->writeTemporary
OCI8 函数


Writes temporary large object

OCI-Lob->write
OCI-Lob->writeToFile
OCI8 函数
PHP 手册

OCI-Lob->writeTemporary

(No version information available, might be only in CVS)

OCI-Lob->writeTemporary — Writes temporary large object

说明

OCI-Lob
bool writeTemporary ( string $data [, int $lob_type ] )

Creates a temporary large object and writes data to it.

You should use OCI-Lob->close when you are done with this object.

参数

data

The data to write.

lob_type

Can be one of the following:

  • OCI_TEMP_BLOB is used to create temporary BLOBs
  • OCI_TEMP_CLOB (default value) is used to create temporary CLOBs

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OCI-Lob->close

OCI-Lob->write
OCI-Lob->writeToFile
OCI8 函数


别名 oci_lob_export

OCI-Lob->writeTemporary
oci_new_collection
OCI8 函数
PHP 手册

OCI-Lob->writeToFile

(No version information available, might be only in CVS)

OCI-Lob->writeToFile — 别名 oci_lob_export()

说明

本函数是该函数的别名： oci_lob_export().

OCI-Lob->writeTemporary
oci_new_collection
OCI8 函数


分配新的 collection 对象

OCI-Lob->writeToFile
oci_new_connect
OCI8 函数
PHP 手册

oci_new_collection

(PHP 5, PECL oci8 >= 1.1.0)

oci_new_collection — 分配新的 collection 对象

说明

OCI-Collection oci_new_collection ( resource $connection , string $tdo [, string $schema ] )

分配一个新的 collection 对象。tdo 参数应为一个有效的名字类型（大写）。第三个可选参数 schema 应指向建立名字对象的架构。oci_new_collection() 使用当前用户作为 schema 的默认值。

oci_new_collection() 如果出错返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocinewcollection() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_new_collection() 的别名。不过其已被废弃，不推荐使用。

OCI-Lob->writeToFile
oci_new_connect
OCI8 函数


建定一个到 Oracle 服务器的新连接

oci_new_collection
oci_new_cursor
OCI8 函数
PHP 手册

oci_new_connect

(PHP 5, PECL oci8 >= 1.1.0)

oci_new_connect — 建定一个到 Oracle 服务器的新连接

说明

resource oci_new_connect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] )

oci_new_connect() 创建一个到 Oracle
服务器的新连接并登录。与 oci_connect()
和 oci_pconnect() 不同，oci_new_connect()
不会缓冲连接，总是会返回一个全新的刚打开的连接句柄。这在应用程序需要在两组查询之间实现事务隔离很有用。

可选的第三个参数可以是本地 Oracle 实例的名字或者是在 tnsnames.ora 的条目中的名字。如果没有指定第三个参数， PHP 使用环境变量 ORACLE_SID 和 TWO_TASK 来分别确定本地 Oracle 实例的名字和 tnsnames.ora 的位置。

session_mode 参数自版本 1.1 起可用并接受如下值：OCI_DEFAULT，OCI_SYSOPER 和 OCI_SYSDBA。如果指定了 OCI_SYSOPER 或 OCI_SYSDBA 其中之一，oci_new_connect() 将尝试使用外部认证信息建立特权连接。特权连接默认被禁止。要启用，需要将 oci8.privileged_connect 设为 On。

Note: 如果 PHP 用的是 Oracle Instant Client，可以用容易的命名连接方法，说明见这里：» http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306。基本上这意味着可以指定 "//db_host[:port]/database_name" 作为数据库名。但如果想用命名的旧方法则必须设定 ORACLE_HOME 或 TNS_ADMIN 二者之一。

使用 Oracle 服务器 9.2 或更高版本，可以指定 charset 参数，其将被用于新的连接。如果使用 Oracle 服务器低于 9.2 的版本，本参数将被忽略并以 NLS_LANG 环境变量替代之。

下面例子演示了怎样隔离连接。

Example #1 oci_new_connect() 例子

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

oci_new_connect() 在出错时返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocinlogon() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_new_connect() 的别名。不过其已被废弃，不推荐使用。

参见 oci_connect() 和 oci_pconnect()。

oci_new_collection
oci_new_cursor
OCI8 函数


分配并返回一个新的游标（语句句柄）

oci_new_connect
oci_new_descriptor
OCI8 函数
PHP 手册

oci_new_cursor

(PHP 5, PECL oci8 >= 1.1.0)

oci_new_cursor — 分配并返回一个新的游标（语句句柄）

说明

resource oci_new_cursor ( resource $connection )

oci_new_cursor() 在指定的连接上分配一个新的语句句柄。

Example #1 在 Oracle 的存储过程中使用 REF CURSOR

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");

oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_row($curs)) {
    var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Example #2 在 Oracle 的 select 语句中使用 REF CURSOR

<?php
echo "<html><body>";
$conn = oci_connect("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = oci_parse($conn, "select deptno,dname,$count_cursor");

oci_execute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while ($data = oci_fetch_assoc($stmt)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    oci_execute($data["EMPCNT"]);
    while ($subdata = oci_fetch_assoc($data["EMPCNT"])) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

oci_new_cursor() 如果出错返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocinewcursor() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_new_cursor() 的别名。不过其已被废弃，不推荐使用。

oci_new_connect
oci_new_descriptor
OCI8 函数


初始化一个新的空 LOB 或 FILE 描述符

oci_new_cursor
oci_num_fields
OCI8 函数
PHP 手册

oci_new_descriptor

(PHP 5, PECL oci8 >= 1.1.0)

oci_new_descriptor — 初始化一个新的空 LOB 或 FILE 描述符

说明

OCI-Lob oci_new_descriptor ( resource $connection [, int $type ] )

oci_new_descriptor() 分配资源以保存描述符或 LOB 定位器。有效的 type 值是：OCI_D_FILE，OCI_D_LOB 以及 OCI_D_ROWID。

Example #1 oci_new_descriptor() 例子

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "select rowid from $table $where");
    $rowid = oci_new_descriptor($conn, OCI_D_ROWID);
    oci_define_by_name($stmt, "ROWID", $rowid);
    oci_execute($stmt);
    while (oci_fetch($stmt)) {
       $nrows = oci_num_rows($stmt);
       $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
       oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
       oci_execute($delete);
       echo "$nrows\n";
       if (($nrows % $commitsize) == 0) {
           oci_commit($conn);
       }
    }
    $nrows = oci_num_rows($stmt);
    echo "$nrows deleted...\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload" />
     * ...
     */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_commit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     oci_free_descriptor($lob);
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Example #2 oci_new_descriptor() 例子

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
    $clob = oci_new_descriptor($conn, OCI_D_LOB);
    oci_bind_by_name($stmt, ':key', $key);
    oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
    $clob->write($data);
    oci_execute($stmt, OCI_DEFAULT);
    oci_commit($conn);
    $clob->free();
    oci_free_statement($stmt);
?>

oci_new_descriptor() 如果出错返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocinewdescriptor() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_new_descriptor() 的别名。不过其已被废弃，不推荐使用。

oci_new_cursor
oci_num_fields
OCI8 函数


返回结果列的数目

oci_new_descriptor
oci_num_rows
OCI8 函数
PHP 手册

oci_num_fields

(PHP 5, PECL oci8 >= 1.1.0)

oci_num_fields — 返回结果列的数目

说明

int oci_num_fields ( resource $statement )

oci_num_fields() 返回 statement 中的列的数目。

Example #1 oci_num_fields() 例子

<?php
    echo "<pre>\n";
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "select * from emp");

    oci_execute($stmt);

    while (oci_fetch($stmt)) {
        echo "\n";
        $ncols = oci_num_fields($stmt);
        for ($i = 1; $i <= $ncols; $i++) {
            $column_name  = oci_field_name($stmt, $i);
            $column_value = oci_result($stmt, $i);
            echo $column_name . ': ' . $column_value . "\n";
        }
        echo "\n";
    }

    oci_free_statement($stmt);
    oci_close($conn);

    echo "</pre>";
?>

oci_num_fields() 在出错时返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocinumcols() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_num_fields() 的别名。不过其已被废弃，不推荐使用。

oci_new_descriptor
oci_num_rows
OCI8 函数


返回语句执行后受影响的行数

oci_num_fields
oci_parse
OCI8 函数
PHP 手册

oci_num_rows

(PHP 5, PECL oci8 >= 1.1.0)

oci_num_rows — 返回语句执行后受影响的行数

说明

int oci_num_rows ( resource $stmt )

oci_num_rows() 返回语句执行后受影响的行数。

Note: 本函数并不返回 SELECT 查询出来的行数！对于 SELECT 语句本函数将返回用 oci_fetch*() 函数取到缓冲区的行数。

Example #1 oci_num_rows() 例子

<?php
    echo "<pre>";
    $conn = oci_connect("scott", "tiger");

    $stmt = oci_parse($conn, "create table emp2 as select * from emp");
    oci_execute($stmt);
    echo oci_num_rows($stmt) . " rows inserted.<br />";
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "delete from emp2");
    oci_execute($stmt, OCI_DEFAULT);
    echo oci_num_rows($stmt) . " rows deleted.<br />";
    oci_commit($conn);
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "drop table emp2");
    oci_execute($stmt);
    oci_free_statement($stmt);

    oci_close($conn);
    echo "</pre>";
?>

oci_num_rows() 在出错时返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocirowcount() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_num_rows() 的别名。不过其已被废弃，不推荐使用。

oci_num_fields
oci_parse
OCI8 函数


配置 Oracle 语句预备执行

oci_num_rows
oci_password_change
OCI8 函数
PHP 手册

oci_parse

(PHP 5, PECL oci8 >= 1.1.0)

oci_parse — 配置 Oracle 语句预备执行

说明

resource oci_parse ( resource $connection , string $query )

oci_parse() 在 connection 上配置 query 并返回语句标识符以用于 oci_bind_by_name()，oci_execute() 以及其它函数。

Note: 本函数并不验证 query 。要知道 query 是否是合法的 SQL 或 PL/SQL 语句的唯一方法是执行它。

oci_parse() 在出错时返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ociparse() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_parse() 的别名。不过其已被废弃，不推荐使用。

oci_num_rows
oci_password_change
OCI8 函数


修改 Oracle 用户的密码

oci_parse
oci_pconnect
OCI8 函数
PHP 手册

oci_password_change

(PHP 5, PECL oci8 >= 1.1.0)

oci_password_change — 修改 Oracle 用户的密码

说明

bool oci_password_change ( resource $connection , string $username , string $old_password , string $new_password )
resource oci_password_change ( string $dbname , string $username , string $old_password , string $new_password )

修改用户 username 的密码。old_password 和 new_password 应分别指定旧密码和新密码。

Note: 第二种 oci_password_change() 的语法自版本 1.1（OCI8 扩展库版本）起可用。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocipasswordchange() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_password_change() 的别名。不过其已被废弃，不推荐使用。

oci_parse
oci_pconnect
OCI8 函数


使用一个持久连接连到 Oracle 数据库

oci_password_change
oci_result
OCI8 函数
PHP 手册

oci_pconnect

(PHP 5, PECL oci8 >= 1.1.0)

oci_pconnect — 使用一个持久连接连到 Oracle 数据库

说明

resource oci_pconnect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] )

oci_pconnect() 创建一个到 Oracle 服务器的持久连接并登录。持久连接会被缓冲并在请求之间重复使用，可以降低每个页面加载的消耗。一个典型的 PHP 应用程序对于每个 Apache 子进程（或者 PHP FastCGI/CGI 进程）会有一个打开的持久连接到 Oracle 服务器。更多信息见数据库持久连接一节。

Note: 自 OCI8 扩展库版本 1.1 起，持久 Oracle 连接的生命周期和最大数目可以通过设定以下配置选项来调整：oci8.persistent_timeout，oci8.ping_interval 和 oci8.max_persistent。

可选的第三个参数可以是本地 Oracle 实例的名字或者是在 tnsnames.ora 的条目中的名字。如果没有指定第三个参数， PHP 使用环境变量 ORACLE_SID 和 TWO_TASK 来分别确定本地 Oracle 实例的名字和 tnsnames.ora 的位置。

session_mode 参数自版本 1.1 起可用并接受如下值：OCI_DEFAULT，OCI_SYSOPER 和 OCI_SYSDBA。如果指定了 OCI_SYSOPER 或 OCI_SYSDBA 其中之一，oci_new_connect() 将尝试使用外部认证信息建立特权连接。特权连接默认被禁止。要启用，需要将 oci8.privileged_connect 设为 On。

Note: 如果 PHP 用的是 Oracle Instant Client，可以用容易的命名连接方法，说明见这里：» http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306。基本上这意味着可以指定 "//db_host[:port]/database_name" 作为数据库名。但如果想用命名的旧方法则必须设定 ORACLE_HOME 或 TNS_ADMIN 二者之一。

使用 Oracle 服务器 9.2 或更高版本，可以指定 charset 参数，其将被用于新的连接。如果使用 Oracle 服务器低于 9.2 的版本，本参数将被忽略并以 NLS_LANG 环境变量替代之。

oci_pconnect() 返回连接标识符，出错则返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ociplogon() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_pconnect() 的别名。不过其已被废弃，不推荐使用。

参见 oci_connect() 和 oci_new_connect()。

oci_password_change
oci_result
OCI8 函数


返回所取得行中字段的值

oci_pconnect
oci_rollback
OCI8 函数
PHP 手册

oci_result

(PHP 5, PECL oci8 >= 1.1.0)

oci_result — 返回所取得行中字段的值

说明

mixed oci_result ( resource $statement , mixed $field )

oci_result() 返回由 oci_fetch() 所取得的当前行中 field 字段的数据。oci_result() 对所有类型都返回字符串只除了抽象类型（ROWID，LOB 和 FILE）。oci_result() 在出错时返回 FALSE。

可以使用列序号（从 1 开始）或列名（大写）作为 col 的参数。

Note: 在 PHP 5.0.0 之前的版本必须使用 ociresult() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_result() 的别名。不过其已被废弃，不推荐使用。

有关 OCI8 驱动程序执行的数据类型映射的细节，见驱动程序支持的数据类型。

参见 oci_fetch_array()，oci_fetch_assoc()，oci_fetch_object()，oci_fetch_row() 和 oci_fetch_all()。

oci_pconnect
oci_rollback
OCI8 函数


回滚未提交的事务

oci_result
oci_server_version
OCI8 函数
PHP 手册

oci_rollback

(PHP 5, PECL oci8 >= 1.1.0)

oci_rollback — 回滚未提交的事务

说明

bool oci_rollback ( resource $connection )

oci_rollback() 回滚 Oracle 连接 connection 上所有未提交的语句。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 当关闭连接或脚本结束时（看哪个先）事务会自动回卷。需要明确地调用 oci_commit() 来提交事务，或 oci_rollback() 来中止事务。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocirollback() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_rollback() 的别名。不过其已被废弃，不推荐使用。

参见 oci_commit()。

oci_result
oci_server_version
OCI8 函数


返回服务器版本信息

oci_rollback
oci_set_prefetch
OCI8 函数
PHP 手册

oci_server_version

(PHP 5, PECL oci8 >= 1.1.0)

oci_server_version — 返回服务器版本信息

说明

string oci_server_version ( resource $connection )

以字符串返回 connection 所连接的 Oracle 服务器的版本信息。出错则返回 FALSE。

Example #1 oci_server_version() 例子

<?php
    $conn = oci_connect("scott", "tiger");
    echo "Server Version: " . oci_server_version($conn);
    oci_close($conn);
?>

Note: 在 PHP 5.0.0 之前的版本必须使用 ociserverversion() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_server_version() 的别名。不过其已被废弃，不推荐使用。

oci_rollback
oci_set_prefetch
OCI8 函数


设置预提取行数

oci_server_version
oci_statement_type
OCI8 函数
PHP 手册

oci_set_prefetch

(PHP 5, PECL oci8 >= 1.1.0)

oci_set_prefetch — 设置预提取行数

说明

bool oci_set_prefetch ( resource $statement [, int $rows ] )

在成功调用 oci_execute() 之后设定预提取的行数。rows 的默认值为 1。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocisetprefetch() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_set_prefetch() 的别名。不过其已被废弃，不推荐使用。

如果成功则返回 TRUE，失败则返回 FALSE。

参见 oci8_.default_prefetch INI 选项。

oci_server_version
oci_statement_type
OCI8 函数


返回 OCI 语句的类型

oci_set_prefetch
ocibindbyname
OCI8 函数
PHP 手册

oci_statement_type

(PHP 5, PECL oci8 >= 1.1.0)

oci_statement_type — 返回 OCI 语句的类型

说明

string oci_statement_type ( resource $statement )

oci_statement_type() 返回语句 statement 的查询类型，其值为下列之一：

  1. SELECT
  2. UPDATE
  3. DELETE
  4. INSERT
  5. CREATE
  6. DROP
  7. ALTER
  8. BEGIN
  9. DECLARE
  10. UNKNOWN

statement 参数是一个由 oci_parse() 所返回的有效的 OCI 语句标识符。

Example #1 oci_statement_type() 例子

<?php
    $conn = oci_connect("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = oci_parse($conn, $sql);
    if (oci_statement_type($stmt) == "DELETE") {
        die("You are not allowed to delete from this table<br />");
    }

    oci_close($conn);
?>

oci_statement_type() 在出错时返回 FALSE。

Note: 在 PHP 5.0.0 之前的版本必须使用 ocistatementtype() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_statement_type() 的别名。不过其已被废弃，不推荐使用。

oci_set_prefetch
ocibindbyname
OCI8 函数


oci_bind_by_name 的别名

oci_statement_type
ocicancel
OCI8 函数
PHP 手册

ocibindbyname

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocibindbyname — oci_bind_by_name() 的别名

说明

本函数是该函数的别名：oci_bind_by_name()。

oci_statement_type
ocicancel
OCI8 函数


oci_cancel 的别名

ocibindbyname
ocicloselob
OCI8 函数
PHP 手册

ocicancel

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicancel — oci_cancel() 的别名

说明

本函数是该函数的别名：oci_cancel()。

ocibindbyname
ocicloselob
OCI8 函数


的别名

ocicancel
ocicollappend
OCI8 函数
PHP 手册

ocicloselob

(PHP 4 >= 4.0.6, PECL oci8 1.0)

ocicloselob — OCI-Lob->close 的别名

说明

本函数是该函数的别名：OCI-Lob->close。

ocicancel
ocicollappend
OCI8 函数


的别名

ocicloselob
ocicollassign
OCI8 函数
PHP 手册

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocicollappend — OCI-Collection->append 的别名

说明

本函数是该函数的别名：OCI-Collection->append。

ocicloselob
ocicollassign
OCI8 函数


的别名

ocicollappend
ocicollassignelem
OCI8 函数
PHP 手册

ocicollassign

(PHP 4 >= 4.0.6, PECL oci8 1.0)

ocicollassign — OCI-Collection->assign 的别名

说明

本函数是该函数的别名：OCI-Collection->assign。

ocicollappend
ocicollassignelem
OCI8 函数


的别名

ocicollassign
ocicollgetelem
OCI8 函数
PHP 手册

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocicollassignelem — OCI-Collection->assignElem 的别名

说明

本函数是该函数的别名：OCI-Collection->assignElem。

ocicollassign
ocicollgetelem
OCI8 函数


的别名

ocicollassignelem
ocicollmax
OCI8 函数
PHP 手册

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocicollgetelem — OCI-Collection->getElem 的别名

说明

本函数是该函数的别名：OCI-Collection->getElem。

ocicollassignelem
ocicollmax
OCI8 函数


的别名

ocicollgetelem
ocicollsize
OCI8 函数
PHP 手册

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocicollmax — OCI-Collection->max 的别名

说明

本函数是该函数的别名：OCI-Collection->max。

ocicollgetelem
ocicollsize
OCI8 函数


的别名

ocicollmax
ocicolltrim
OCI8 函数
PHP 手册

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocicollsize — OCI-Collection->size 的别名

说明

本函数是该函数的别名：OCI-Collection->size。

ocicollmax
ocicolltrim
OCI8 函数


的别名

ocicollsize
ocicolumnisnull
OCI8 函数
PHP 手册

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocicolltrim — OCI-Collection->trim 的别名

说明

本函数是该函数的别名：OCI-Collection->trim。

ocicollsize
ocicolumnisnull
OCI8 函数


oci_field_is_null 的别名

ocicolltrim
ocicolumnname
OCI8 函数
PHP 手册

ocicolumnisnull

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumnisnull — oci_field_is_null() 的别名

说明

本函数是该函数的别名：oci_field_is_null()。

ocicolltrim
ocicolumnname
OCI8 函数


oci_field_name 的别名

ocicolumnisnull
ocicolumnprecision
OCI8 函数
PHP 手册

ocicolumnname

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumnname — oci_field_name() 的别名

说明

本函数是该函数的别名：oci_field_name()。

ocicolumnisnull
ocicolumnprecision
OCI8 函数


oci_field_precision 的别名

ocicolumnname
ocicolumnscale
OCI8 函数
PHP 手册

ocicolumnprecision

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumnprecision — oci_field_precision() 的别名

说明

本函数是该函数的别名：oci_field_precision()。

ocicolumnname
ocicolumnscale
OCI8 函数


oci_field_scale 的别名

ocicolumnprecision
ocicolumnsize
OCI8 函数
PHP 手册

ocicolumnscale

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumnscale — oci_field_scale() 的别名

说明

本函数是该函数的别名：oci_field_scale()。

ocicolumnprecision
ocicolumnsize
OCI8 函数


oci_field_size 的别名

ocicolumnscale
ocicolumntype
OCI8 函数
PHP 手册

ocicolumnsize

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumnsize — oci_field_size() 的别名

说明

本函数是该函数的别名：oci_field_size()。

ocicolumnscale
ocicolumntype
OCI8 函数


oci_field_type 的别名

ocicolumnsize
ocicolumntyperaw
OCI8 函数
PHP 手册

ocicolumntype

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumntype — oci_field_type() 的别名

说明

本函数是该函数的别名：oci_field_type()。

ocicolumnsize
ocicolumntyperaw
OCI8 函数


oci_field_type_raw 的别名

ocicolumntype
ocicommit
OCI8 函数
PHP 手册

ocicolumntyperaw

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicolumntyperaw — oci_field_type_raw() 的别名

说明

本函数是该函数的别名：oci_field_type_raw()。

ocicolumntype
ocicommit
OCI8 函数


oci_commit 的别名

ocicolumntyperaw
ocidefinebyname
OCI8 函数
PHP 手册

ocicommit

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocicommit — oci_commit() 的别名

说明

本函数是该函数的别名：oci_commit()。

ocicolumntyperaw
ocidefinebyname
OCI8 函数


oci_define_by_name 的别名

ocicommit
ocierror
OCI8 函数
PHP 手册

ocidefinebyname

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocidefinebyname — oci_define_by_name() 的别名

说明

本函数是该函数的别名：oci_define_by_name()。

ocicommit
ocierror
OCI8 函数


oci_error 的别名

ocidefinebyname
ociexecute
OCI8 函数
PHP 手册

ocierror

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocierror — oci_error() 的别名

说明

本函数是该函数的别名：oci_error()。

ocidefinebyname
ociexecute
OCI8 函数


oci_execute 的别名

ocierror
ocifetch
OCI8 函数
PHP 手册

ociexecute

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociexecute — oci_execute() 的别名

说明

本函数是该函数的别名：oci_execute()。

ocierror
ocifetch
OCI8 函数


oci_fetch 的别名

ociexecute
ocifetchinto
OCI8 函数
PHP 手册

ocifetch

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocifetch — oci_fetch() 的别名

说明

本函数是该函数的别名：oci_fetch()。

ociexecute
ocifetchinto
OCI8 函数


获取下一行到一个数组

ocifetch
ocifetchstatement
OCI8 函数
PHP 手册

ocifetchinto

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocifetchinto — 获取下一行到一个数组

说明

int ocifetchinto ( resource $statement , array &$result [, int $mode ] )

Note: 本函数已废弃。建议使用：oci_fetch_array()，oci_fetch_object()，oci_fetch_assoc() 以及 oci_fetch_row()。

ocifetchinto() 获取 SELECT 的下一行到 result 数组。ocifetchinto() 将覆盖 result 以前的内容。在默认情况下，result 是一个索引从 0 开始的数组，含有所有非 NULL 的列。

mode 参数允许改变默认的行为。可以简单的将标志相加来使用多个标志（例如 OCI_ASSOC+OCI_RETURN_NULLS）。其有效值为：

  • OCI_ASSOC - 返回一个关联数组。
  • OCI_NUM - 返回一个数字下标从 0 开始的数组（默认情况）。
  • OCI_RETURN_NULLS - 对于空列返回 NULL 值。
  • OCI_RETURN_LOBS - 返回 LOB 的值而不是它的描述符。

Example #1 ocifetchinto() 例子

<?php
$conn = ocilogon("username", "password");

$query = "SELECT apples FROM oranges";

$statement = OCIParse ($conn, $query);
OCIExecute ($statement);

while (OCIFetchInto ($statement, $row, OCI_ASSOC)) {
    echo $row['apples'];
}
?>

参见 oci_fetch_array()，oci_fetch_object()，oci_fetch_assoc()，oci_fetch_row()，oci_fetch() 和 oci_execute()。

ocifetch
ocifetchstatement
OCI8 函数


oci_fetch_all 的别名

ocifetchinto
ocifreecollection
OCI8 函数
PHP 手册

ocifetchstatement

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocifetchstatement — oci_fetch_all() 的别名

说明

本函数是该函数的别名：oci_fetch_all()。

ocifetchinto
ocifreecollection
OCI8 函数


的别名

ocifetchstatement
ocifreecursor
OCI8 函数
PHP 手册

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PECL oci8 >= 1.0.0)

ocifreecollection — OCI-Collection->free 的别名

说明

本函数是该函数的别名：OCI-Collection->free。

ocifetchstatement
ocifreecursor
OCI8 函数


oci_free_statement 的别名

ocifreecollection
ocifreedesc
OCI8 函数
PHP 手册

ocifreecursor

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocifreecursor — oci_free_statement() 的别名

说明

本函数是该函数的别名：oci_free_statement()。

ocifreecollection
ocifreedesc
OCI8 函数


的别名

ocifreecursor
ocifreestatement
OCI8 函数
PHP 手册

ocifreedesc

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocifreedesc — OCI-Lob->free 的别名

说明

本函数是该函数的别名：OCI-Lob->free。

ocifreecursor
ocifreestatement
OCI8 函数


oci_free_statement 的别名

ocifreedesc
ociinternaldebug
OCI8 函数
PHP 手册

ocifreestatement

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocifreestatement — oci_free_statement() 的别名

说明

本函数是该函数的别名：oci_free_statement()。

ocifreedesc
ociinternaldebug
OCI8 函数


oci_internal_debug 的别名

ocifreestatement
ociloadlob
OCI8 函数
PHP 手册

ociinternaldebug

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociinternaldebug — oci_internal_debug() 的别名

说明

本函数是该函数的别名：oci_internal_debug()。

ocifreestatement
ociloadlob
OCI8 函数


的别名

ociinternaldebug
ocilogoff
OCI8 函数
PHP 手册

ociloadlob

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociloadlob — OCI-Lob->load 的别名

说明

本函数是该函数的别名：OCI-Lob->load。

ociinternaldebug
ocilogoff
OCI8 函数


oci_close 的别名

ociloadlob
ocilogon
OCI8 函数
PHP 手册

ocilogoff

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocilogoff — oci_close() 的别名

说明

本函数是该函数的别名：oci_close()。

ociloadlob
ocilogon
OCI8 函数


oci_connect 的别名

ocilogoff
ocinewcollection
OCI8 函数
PHP 手册

ocilogon

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocilogon — oci_connect() 的别名

说明

本函数是该函数的别名：oci_connect()。

ocilogoff
ocinewcollection
OCI8 函数


oci_new_collection 的别名

ocilogon
ocinewcursor
OCI8 函数
PHP 手册

ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PECL oci8 >= 1.0.0)

ocinewcollection — oci_new_collection() 的别名

说明

本函数是该函数的别名：oci_new_collection()。

ocilogon
ocinewcursor
OCI8 函数


oci_new_cursor 的别名

ocinewcollection
ocinewdescriptor
OCI8 函数
PHP 手册

ocinewcursor

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocinewcursor — oci_new_cursor() 的别名

说明

本函数是该函数的别名：oci_new_cursor()。

ocinewcollection
ocinewdescriptor
OCI8 函数


oci_new_descriptor 的别名

ocinewcursor
ocinlogon
OCI8 函数
PHP 手册

ocinewdescriptor

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocinewdescriptor — oci_new_descriptor() 的别名

说明

本函数是该函数的别名：oci_new_descriptor()。

ocinewcursor
ocinlogon
OCI8 函数


oci_new_connect 的别名

ocinewdescriptor
ocinumcols
OCI8 函数
PHP 手册

ocinlogon

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocinlogon — oci_new_connect() 的别名

说明

本函数是该函数的别名：oci_new_connect()。

ocinewdescriptor
ocinumcols
OCI8 函数


oci_num_fields 的别名

ocinlogon
ociparse
OCI8 函数
PHP 手册

ocinumcols

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocinumcols — oci_num_fields() 的别名

说明

本函数是该函数的别名：oci_num_fields()。

ocinlogon
ociparse
OCI8 函数


oci_parse 的别名

ocinumcols
ociplogon
OCI8 函数
PHP 手册

ociparse

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociparse — oci_parse() 的别名

说明

本函数是该函数的别名：oci_parse()。

ocinumcols
ociplogon
OCI8 函数


oci_pconnect 的别名

ociparse
ociresult
OCI8 函数
PHP 手册

ociplogon

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociplogon — oci_pconnect() 的别名

说明

本函数是该函数的别名：oci_pconnect()。

ociparse
ociresult
OCI8 函数


oci_result 的别名

ociplogon
ocirollback
OCI8 函数
PHP 手册

ociresult

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociresult — oci_result() 的别名

说明

本函数是该函数的别名：oci_result()。

ociplogon
ocirollback
OCI8 函数


oci_rollback 别名

ociresult
ocirowcount
OCI8 函数
PHP 手册

ocirollback

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocirollback — oci_rollback() 别名

说明

本函数是该函数的别名：oci_rollback()。

ociresult
ocirowcount
OCI8 函数


oci_num_rows 的别名

ocirollback
ocisavelob
OCI8 函数
PHP 手册

ocirowcount

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocirowcount — oci_num_rows() 的别名

说明

本函数是该函数的别名：oci_num_rows()。

ocirollback
ocisavelob
OCI8 函数


的别名

ocirowcount
ocisavelobfile
OCI8 函数
PHP 手册

ocisavelob

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocisavelob — OCI-Lob->save 的别名

说明

本函数是该函数的别名：OCI-Lob->save。

ocirowcount
ocisavelobfile
OCI8 函数


的别名

ocisavelob
ociserverversion
OCI8 函数
PHP 手册

ocisavelobfile

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocisavelobfile — OCI-Lob->import 的别名

说明

本函数是该函数的别名：OCI-Lob->import。

ocisavelob
ociserverversion
OCI8 函数


oci_server_version 的别名

ocisavelobfile
ocisetprefetch
OCI8 函数
PHP 手册

ociserverversion

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociserverversion — oci_server_version() 的别名

说明

本函数是该函数的别名：oci_server_version()。

ocisavelobfile
ocisetprefetch
OCI8 函数


oci_set_prefetch 的别名

ociserverversion
ocistatementtype
OCI8 函数
PHP 手册

ocisetprefetch

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocisetprefetch — oci_set_prefetch() 的别名

说明

本函数是该函数的别名：oci_set_prefetch()。

ociserverversion
ocistatementtype
OCI8 函数


oci_statement_type 的别名

ocisetprefetch
ociwritelobtofile
OCI8 函数
PHP 手册

ocistatementtype

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ocistatementtype — oci_statement_type() 的别名

说明

本函数是该函数的别名：oci_statement_type()。

ocisetprefetch
ociwritelobtofile
OCI8 函数


的别名

ocistatementtype
ociwritetemporarylob
OCI8 函数
PHP 手册

ociwritelobtofile

(PHP 4, PHP 5, PECL oci8 >= 1.0.0)

ociwritelobtofile — OCI-Lob->export 的别名

说明

本函数是该函数的别名：OCI-Lob->export。

ocistatementtype
ociwritetemporarylob
OCI8 函数


的别名

ociwritelobtofile
Ovrimos SQL
OCI8 函数
PHP 手册

ociwritetemporarylob

(PHP 4 >= 4.0.6, PECL oci8 1.0)

ociwritetemporarylob — OCI-Lob->writeTemporary 的别名

说明

本函数是该函数的别名：OCI-Lob->writeTemporary。

ociwritelobtofile
Ovrimos SQL
OCI8 函数


Ovrimos SQL

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Connect to Ovrimos SQL Server and select from a system table
  • Ovrimos SQL 函数
    • ovrimos_close — Closes the connection to ovrimos
    • ovrimos_commit — Commits the transaction
    • ovrimos_connect — Connect to the specified database
    • ovrimos_cursor — Returns the name of the cursor
    • ovrimos_exec — Executes an SQL statement
    • ovrimos_execute — Executes a prepared SQL statement
    • ovrimos_fetch_into — Fetches a row from the result set
    • ovrimos_fetch_row — Fetches a row from the result set
    • ovrimos_field_len — Returns the length of the output column
    • ovrimos_field_name — Returns the output column name
    • ovrimos_field_num — Returns the (1-based) index of the output column
    • ovrimos_field_type — Returns the type of the output column
    • ovrimos_free_result — Frees the specified result_id
    • ovrimos_longreadlen — Specifies how many bytes are to be retrieved from long datatypes
    • ovrimos_num_fields — Returns the number of columns
    • ovrimos_num_rows — Returns the number of rows affected by update operations
    • ovrimos_prepare — Prepares an SQL statement
    • ovrimos_result_all — Prints the whole result set as an HTML table
    • ovrimos_result — Retrieves the output column
    • ovrimos_rollback — Rolls back the transaction
ociwritetemporarylob
简介
与具体数据库系统相关的扩展


简介

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：4.4.5 and PHP 5.1.0.

Note: 本扩展模块在 Windows 平台下不可用。

Ovrimos SQL
安装/配置
Ovrimos SQL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Ovrimos SQL


需求

You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

安装/配置
安装
安装/配置


安装

To enable Ovrimos support in PHP just compile PHP with the --with-ovrimos[=DIR] parameter to your configure line. DIR is the Ovrimos' libsqlcli install directory.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Ovrimos SQL


范例

Table of Contents

  • Connect to Ovrimos SQL Server and select from a system table
预定义常量
Connect to Ovrimos SQL Server and select from a system table
Ovrimos SQL


Connect to Ovrimos SQL Server and select from a system table

范例
Ovrimos SQL 函数
范例
PHP 手册

Example #1 Connect to Ovrimos SQL Server and select from a system table

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

范例
Ovrimos SQL 函数
范例


Ovrimos SQL 函数

Table of Contents

  • ovrimos_close — Closes the connection to ovrimos
  • ovrimos_commit — Commits the transaction
  • ovrimos_connect — Connect to the specified database
  • ovrimos_cursor — Returns the name of the cursor
  • ovrimos_exec — Executes an SQL statement
  • ovrimos_execute — Executes a prepared SQL statement
  • ovrimos_fetch_into — Fetches a row from the result set
  • ovrimos_fetch_row — Fetches a row from the result set
  • ovrimos_field_len — Returns the length of the output column
  • ovrimos_field_name — Returns the output column name
  • ovrimos_field_num — Returns the (1-based) index of the output column
  • ovrimos_field_type — Returns the type of the output column
  • ovrimos_free_result — Frees the specified result_id
  • ovrimos_longreadlen — Specifies how many bytes are to be retrieved from long datatypes
  • ovrimos_num_fields — Returns the number of columns
  • ovrimos_num_rows — Returns the number of rows affected by update operations
  • ovrimos_prepare — Prepares an SQL statement
  • ovrimos_result_all — Prints the whole result set as an HTML table
  • ovrimos_result — Retrieves the output column
  • ovrimos_rollback — Rolls back the transaction
Connect to Ovrimos SQL Server and select from a system table
ovrimos_close
Ovrimos SQL


Closes the connection to ovrimos

Ovrimos SQL 函数
ovrimos_commit
Ovrimos SQL 函数
PHP 手册

ovrimos_close

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_close — Closes the connection to ovrimos

说明

void ovrimos_close ( int $connection )

Closes the specified connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

参数

connection

The Ovrimos connection identifier, returned by ovrimos_connect().

返回值

无返回值。

参见

  • ovrimos_connect() - Connect to the specified database

Ovrimos SQL 函数
ovrimos_commit
Ovrimos SQL 函数


Commits the transaction

ovrimos_close
ovrimos_connect
Ovrimos SQL 函数
PHP 手册

ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_commit — Commits the transaction

说明

bool ovrimos_commit ( int $connection_id )

Commits the transaction.

参数

connection_id

The Ovrimos connection identifier, returned by ovrimos_connect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ovrimos_rollback() - Rolls back the transaction

ovrimos_close
ovrimos_connect
Ovrimos SQL 函数


Connect to the specified database

ovrimos_commit
ovrimos_cursor
Ovrimos SQL 函数
PHP 手册

ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_connect — Connect to the specified database

说明

int ovrimos_connect ( string $host , string $dborport , string $user , string $password )

Connects to the specified database.

参数

host

A host name or IP address.

dborport

Either a database name, or the port number to connect to.

user

The user name.

password

Password associated with user .

返回值

Returns a connection identifier (greater than 0) on success, or 0 on failure.

范例

Example #1 ovrimos_connect() Example

<?php
$conn = ovrimos_connect("server.example.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

参见

  • ovrimos_close() - Closes the connection to ovrimos

ovrimos_commit
ovrimos_cursor
Ovrimos SQL 函数


Returns the name of the cursor

ovrimos_connect
ovrimos_exec
Ovrimos SQL 函数
PHP 手册

ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_cursor — Returns the name of the cursor

说明

string ovrimos_cursor ( int $result_id )

Gets the name of the cursor. Useful when wishing to perform positioned updates or deletes.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

返回值

Returns the name as a string, or FALSE on error.

ovrimos_connect
ovrimos_exec
Ovrimos SQL 函数


Executes an SQL statement

ovrimos_cursor
ovrimos_execute
Ovrimos SQL 函数
PHP 手册

ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_exec — Executes an SQL statement

说明

int ovrimos_exec ( int $connection_id , string $query )

Executes an SQL statement (query or update) and returns a result identifier.

参数

connection_id

The Ovrimos connection identifier, returned by ovrimos_connect().

query

The SQL statement. Evidently, it should not contain parameters. Use ovrimos_prepare() for prepared statements.

返回值

Returns the result identifier as an integer, or FALSE on error.

参见

  • ovrimos_execute() - Executes a prepared SQL statement
  • ovrimos_prepare() - Prepares an SQL statement

ovrimos_cursor
ovrimos_execute
Ovrimos SQL 函数


Executes a prepared SQL statement

ovrimos_exec
ovrimos_fetch_into
Ovrimos SQL 函数
PHP 手册

ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_execute — Executes a prepared SQL statement

说明

bool ovrimos_execute ( int $result_id [, array $parameters_array ] )

Executes a prepared statement.

参数

result_id

An Ovrimos result identifier prepared with ovrimos_prepare().

parameters_array

If the prepared statement contained parameters (question marks in the statement), the correct number of parameters should be passed in an array.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ovrimos_prepare() - Prepares an SQL statement

ovrimos_exec
ovrimos_fetch_into
Ovrimos SQL 函数


Fetches a row from the result set

ovrimos_execute
ovrimos_fetch_row
Ovrimos SQL 函数
PHP 手册

ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_fetch_into — Fetches a row from the result set

说明

bool ovrimos_fetch_into ( int $result_id , array &$result_array [, string $how [, int $rownumber ]] )

Fetches a row from the given result set, into result_array .

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

result_array

You must provide an array by reference. It will be filled with the fetched values.

how

Determines how the rows are fetched. This can be one of the following strings (case is not significant):

Option | Notes
Next | Forward direction from current position. This is the default value.
Prev | Backward direction from current position.
First | Forward direction from the start.
Last | Backward direction from the end.
Absolute | Absolute position from the start. Requires rownumber .

rownumber

The row number, first one is 0. Only needed when how is set to Absolute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A fetch into example

<?php
$conn=ovrimos_connect("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_into($res, &$row)) {
            list($table_id, $table_name) = $row;
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_into($res, &$row)) {
                list($table_id, $table_name) = $row;
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

参见

  • ovrimos_fetch_row() - Fetches a row from the result set

ovrimos_execute
ovrimos_fetch_row
Ovrimos SQL 函数


Fetches a row from the result set

ovrimos_fetch_into
ovrimos_field_len
Ovrimos SQL 函数
PHP 手册

ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_fetch_row — Fetches a row from the result set

说明

bool ovrimos_fetch_row ( int $result_id [, int $how [, int $row_number ]] )

Fetches a row from the result set. Column values should be retrieved with other calls.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

how

Determines how the rows are fetched. This can be one of the following strings (case is not significant):

Option | Notes
Next | Forward direction from current position. This is the default value.
Prev | Backward direction from current position.
First | Forward direction from the start.
Last | Backward direction from the end.
Absolute | Absolute position from the start. Requires rownumber .

rownumber

The row number, first one is 0. Only needed when how is set to Absolute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A fetch row example

<?php
$conn = ovrimos_connect("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_row($res, "First")) {
            $table_id = ovrimos_result($res, 1);
            $table_name = ovrimos_result($res, 2);
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_row($res, "Next")) {
                $table_id = ovrimos_result($res, "table_id");
                $table_name = ovrimos_result($res, "table_name");
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

This will fetch a row and print the result.

参见

  • ovrimos_fetch_into() - Fetches a row from the result set

ovrimos_fetch_into
ovrimos_field_len
Ovrimos SQL 函数


Returns the length of the output column

ovrimos_fetch_row
ovrimos_field_name
Ovrimos SQL 函数
PHP 手册

ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_len — Returns the length of the output column

说明

int ovrimos_field_len ( int $result_id , int $field_number )

Gets the length of the specified output column.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

field_number

The field number. Starts at 1.

返回值

Returns the length as an integer, or FALSE on error.

参见

  • ovrimos_field_name() - Returns the output column name
  • ovrimos_field_num() - Returns the (1-based) index of the output column
  • ovrimos_field_type() - Returns the type of the output column

ovrimos_fetch_row
ovrimos_field_name
Ovrimos SQL 函数


Returns the output column name

ovrimos_field_len
ovrimos_field_num
Ovrimos SQL 函数
PHP 手册

ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_name — Returns the output column name

说明

string ovrimos_field_name ( int $result_id , int $field_number )

Returns the output column name at the index specified.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

field_number

The field number. Starts at 1.

返回值

Returns the field name as a string, or FALSE on error.

参见

  • ovrimos_field_len() - Returns the length of the output column
  • ovrimos_field_num() - Returns the (1-based) index of the output column
  • ovrimos_field_type() - Returns the type of the output column

ovrimos_field_len
ovrimos_field_num
Ovrimos SQL 函数


Returns the (1-based) index of the output column

ovrimos_field_name
ovrimos_field_type
Ovrimos SQL 函数
PHP 手册

ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_num — Returns the (1-based) index of the output column

说明

int ovrimos_field_num ( int $result_id , string $field_name )

Returns the 1-based index of the specified output column.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

field_name

The field name.

返回值

Returns the index, starting at 1, or FALSE on error.

参见

  • ovrimos_field_len() - Returns the length of the output column
  • ovrimos_field_name() - Returns the output column name
  • ovrimos_field_type() - Returns the type of the output column

ovrimos_field_name
ovrimos_field_type
Ovrimos SQL 函数


Returns the type of the output column

ovrimos_field_num
ovrimos_free_result
Ovrimos SQL 函数
PHP 手册

ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_field_type — Returns the type of the output column

说明

int ovrimos_field_type ( int $result_id , int $field_number )

Returns the type of the output column

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

field_number

A 1-based index.

返回值

Returns the field type as an integer, or FALSE on error.

参见

  • ovrimos_field_len() - Returns the length of the output column
  • ovrimos_field_name() - Returns the output column name
  • ovrimos_field_num() - Returns the (1-based) index of the output column

ovrimos_field_num
ovrimos_free_result
Ovrimos SQL 函数


Frees the specified result_id

ovrimos_field_type
ovrimos_longreadlen
Ovrimos SQL 函数
PHP 手册

ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_free_result — Frees the specified result_id

说明

bool ovrimos_free_result ( int $result_id )

Frees the specified result identifier.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

返回值

Returns TRUE.

ovrimos_field_type
ovrimos_longreadlen
Ovrimos SQL 函数


Specifies how many bytes are to be retrieved from long datatypes

ovrimos_free_result
ovrimos_num_fields
Ovrimos SQL 函数
PHP 手册

ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_longreadlen — Specifies how many bytes are to be retrieved from long datatypes

说明

bool ovrimos_longreadlen ( int $result_id , int $length )

Specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary).

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

length

The number of bytes to retrieve. Default is zero.

返回值

Returns TRUE.

ovrimos_free_result
ovrimos_num_fields
Ovrimos SQL 函数


Returns the number of columns

ovrimos_longreadlen
ovrimos_num_rows
Ovrimos SQL 函数
PHP 手册

ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_num_fields — Returns the number of columns

说明

int ovrimos_num_fields ( int $result_id )

Returns the number of columns in the specified result identifier.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

返回值

Returns the number of columns as an integer, or FALSE on error.

参见

  • ovrimos_num_rows() - Returns the number of rows affected by update operations

ovrimos_longreadlen
ovrimos_num_rows
Ovrimos SQL 函数


Returns the number of rows affected by update operations

ovrimos_num_fields
ovrimos_prepare
Ovrimos SQL 函数
PHP 手册

ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_num_rows — Returns the number of rows affected by update operations

说明

int ovrimos_num_rows ( int $result_id )

Gets the number of rows affected by update operations.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

返回值

Returns the number of rows as an integer, or FALSE on error.

参见

  • ovrimos_num_fields() - Returns the number of columns

ovrimos_num_fields
ovrimos_prepare
Ovrimos SQL 函数


Prepares an SQL statement

ovrimos_num_rows
ovrimos_result_all
Ovrimos SQL 函数
PHP 手册

ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_prepare — Prepares an SQL statement

说明

int ovrimos_prepare ( int $connection_id , string $query )

Prepares an SQL statement.

参数

connection_id

The Ovrimos connection identifier, returned by ovrimos_connect().

query

The SQL statement.

返回值

Returns a result identifier on success, or FALSE on error.

范例

Example #1 ovrimos_prepare() Example

<?php
$conn=ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";

    // Prepare the statement
    $res=ovrimos_prepare($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Prepare ok!";
        // Execute the prepared statement
        if (ovrimos_execute($res)) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>

ovrimos_num_rows
ovrimos_result_all
Ovrimos SQL 函数


Prints the whole result set as an HTML table

ovrimos_prepare
ovrimos_result
Ovrimos SQL 函数
PHP 手册

ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_result_all — Prints the whole result set as an HTML table

说明

int ovrimos_result_all ( int $result_id [, string $format ] )

Prints the whole result set as an HTML table.

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

format

Optional HTML attributes for the generated table element.

返回值

Returns the number of rows in the generated table.

范例

This will execute an SQL statement and print the result in an HTML table.

Example #1 Prepare a statement, execute, and view the result

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_prepare($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res, array(3))) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>

Example #2 ovrimos_result_all() with meta-information

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1");
    if ($res != 0) {
        echo "Statement ok! cursor=" . ovrimos_cursor($res) . "\n";
        $colnb = ovrimos_num_fields($res);
        echo "Output columns=" . $colnb . "\n";
        for ($i=1; $i <= $colnb; $i++) {
            $name = ovrimos_field_name($res, $i);
            $type = ovrimos_field_type($res, $i);
            $len = ovrimos_field_len($res, $i);
            echo "Column " . $i . " name=" . $name . " type=" . $type . " len=" . $len . "\n";
        }
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

ovrimos_prepare
ovrimos_result
Ovrimos SQL 函数


Retrieves the output column

ovrimos_result_all
ovrimos_rollback
Ovrimos SQL 函数
PHP 手册

ovrimos_result

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_result — Retrieves the output column

说明

string ovrimos_result ( int $result_id , mixed $field )

Retrieves the output column specified by field .

参数

result_id

A result identifier, returned by ovrimos_execute() or ovrimos_exec().

field

Either as a string with the field name or as an 1-based index.

返回值

Returns the column as a string, FALSE on failure.

ovrimos_result_all
ovrimos_rollback
Ovrimos SQL 函数


Rolls back the transaction

ovrimos_result
Paradox
Ovrimos SQL 函数
PHP 手册

ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5 <= 5.0.5)

ovrimos_rollback — Rolls back the transaction

说明

bool ovrimos_rollback ( int $connection_id )

Rolls back the transaction.

参数

connection_id

The Ovrimos connection identifier, returned by ovrimos_connect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ovrimos_commit() - Commits the transaction

ovrimos_result
Paradox
Ovrimos SQL 函数


Paradox File Access

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Paradox 函数
    • px_close — Closes a paradox database
    • px_create_fp — Create a new paradox database
    • px_date2string — Converts a date into a string.
    • px_delete_record — Deletes record from paradox database
    • px_delete — Deletes resource of paradox database
    • px_get_field — Returns the specification of a single field
    • px_get_info — Return lots of information about a paradox file
    • px_get_parameter — Gets a parameter
    • px_get_record — Returns record of paradox database
    • px_get_schema — Returns the database schema
    • px_get_value — Gets a value
    • px_insert_record — Inserts record into paradox database
    • px_new — Create a new paradox object
    • px_numfields — Returns number of fields in a database
    • px_numrecords — Returns number of records in a database
    • px_open_fp — Open paradox database
    • px_put_record — Stores record into paradox database
    • px_retrieve_record — Returns record of paradox database
    • px_set_blob_file — Sets the file where blobs are read from
    • px_set_parameter — Sets a parameter
    • px_set_tablename — Sets the name of a table (deprecated)
    • px_set_targetencoding — Sets the encoding for character fields (deprecated)
    • px_set_value — Sets a value
    • px_timestamp2string — Converts the timestamp into a string.
    • px_update_record — Updates record in paradox database
ovrimos_rollback
简介
与具体数据库系统相关的扩展


简介

This module allows to read and write Paradox databases, primary index files and blob files. Write support has been proven to be quite reliable, though due to lack of documentation the produced files may not in any case be readable by other applications. Encrypted databases can be read without specifying a password if pxlib >= 0.5.0 is used.

Note: This module is also in development and may change, though I don't expect major changes to the API.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Paradox
安装/配置
Paradox


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Paradox


需求

You need at least PHP 5.0.0 and pxlib >= 0.4.4 for the basic set of functions. Some newer functions are only available with pxlib >= 0.6.0. Reading and writing of encrypted databases requires at least pxlib >= 0.5.0. The paradox library (pxlib) is available at » http://pxlib.sourceforge.net.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/paradox

Make sure you have pxlib installed before. If you install pxlib from an rpm or debian package, do not forget to install the development package as well.

需求
运行时配置
安装/配置


资源类型

px_new() creates a new Paradox object required by all Paradox functions.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following two tables lists all constants defined by the paradox extension.

Contants for field types
Name | Meaning
PX_FIELD_ALPHA | Character data with fixed length
PX_FIELD_DATE | Date, number of days since 1.1.0000
PX_FIELD_SHORT | Short integer (2 Bytes)
PX_FIELD_LONG | Long integer (4 Bytes)
PX_FIELD_CURRENCY | same as PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Boolean
PX_FIELD_MEMOBLOB | Binary large object
PX_FIELD_BLOB | Binary large object (not supported)
PX_FIELD_FMTMEMOBLOB | Binary large object
PX_FIELD_OLE | OLE object (basically a blob, not supported)
PX_FIELD_GRAPHIC | Graphic (basically a blob, not supported)
PX_FIELD_TIME | time, number of milli seconds since midnight
PX_FIELD_TIMESTAMP | timestamp, number of milli seconds since 1.1.0000
PX_FIELD_AUTOINC | Auto incrementing interger (like PX_FIELD_LONG)
PX_FIELD_BCD | Decimal number stored in bcd format (not supported)
PX_FIELD_BYTES | Array of Bytes with not more than 255 bytes (not supported)
PX_KEYTOLOWER | Turn all field names into lower case
PX_KEYTOUPPER | Turn all field names into upper case

Contants for file types
Name | Meaning
PX_FILE_INDEX_DB | Indexed database
PX_FILE_PRIM_INDEX | Primary index
PX_FILE_NON_INDEX_DB | None indexed database
PX_FILE_NON_INC_SEC_INDEX | None incremental secondary index
PX_FILE_SEC_INDEX | Secondary index
PX_FILE_INC_SEC_INDEX | Incremental secondary index
PX_FILE_NON_INC_SEC_INDEX_G | Non incremental secondary index
PX_FILE_SEC_INDEX_G | Secondary index
PX_FILE_INC_SEC_INDEX_G | Non incremental secondary index

资源类型
Paradox 函数
Paradox


Paradox 函数

Object oriented API

The paradox extension provides also an object oriented API. It consists of only one class called paradox_db. Its methods only differ from the functions in its name and of course the missing first parameter. The following table will list all methods and its equivalent functions.

Methods of class paradox_db
Name of method | Equivalent function
Constructor | px_new()
Destructor | px_delete()
open_fp() | px_open_fp()
create_fp() | px_create_fp()
close() | px_close()
numrecords() | px_numrecords()
numfields() | px_numfields()
get_record() | px_get_record()
put_record() | px_put_record()
retrieve_record() | px_retrieve_record()
delete_record() | px_delete_record()
insert_record() | px_insert_record()
update_record() | px_update_record()
get_field() | px_get_field()
get_schema() | px_get_schema()
get_info() | px_get_info()
set_parameter() | px_set_parameter()
get_parameter() | px_get_parameter()
set_value() | px_set_value()
get_value() | px_get_value()
get_info() | px_get_info()
set_targetencoding() | px_set_targetencoding()
set_tablename() | px_set_tablename()
set_blob_file() | px_set_blob_file()
date2string() | px_date2string()
timestamp2string() | px_timestamp2string()

Table of Contents

  • px_close — Closes a paradox database
  • px_create_fp — Create a new paradox database
  • px_date2string — Converts a date into a string.
  • px_delete_record — Deletes record from paradox database
  • px_delete — Deletes resource of paradox database
  • px_get_field — Returns the specification of a single field
  • px_get_info — Return lots of information about a paradox file
  • px_get_parameter — Gets a parameter
  • px_get_record — Returns record of paradox database
  • px_get_schema — Returns the database schema
  • px_get_value — Gets a value
  • px_insert_record — Inserts record into paradox database
  • px_new — Create a new paradox object
  • px_numfields — Returns number of fields in a database
  • px_numrecords — Returns number of records in a database
  • px_open_fp — Open paradox database
  • px_put_record — Stores record into paradox database
  • px_retrieve_record — Returns record of paradox database
  • px_set_blob_file — Sets the file where blobs are read from
  • px_set_parameter — Sets a parameter
  • px_set_tablename — Sets the name of a table (deprecated)
  • px_set_targetencoding — Sets the encoding for character fields (deprecated)
  • px_set_value — Sets a value
  • px_timestamp2string — Converts the timestamp into a string.
  • px_update_record — Updates record in paradox database
预定义常量
px_close
Paradox


Closes a paradox database

Paradox 函数
px_create_fp
Paradox 函数
PHP 手册

px_close

(PECL paradox >= 1.0.0)

px_close — Closes a paradox database

说明

bool px_close ( resource $pxdoc )

Closes the paradox database. This function will not close the file. You will have to call fclose() afterwards.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • px_open_fp() - Open paradox database
  • The example at px_new() - Create a new paradox object

Paradox 函数
px_create_fp
Paradox 函数


Create a new paradox database

px_close
px_date2string
Paradox 函数
PHP 手册

px_create_fp

(PECL paradox >= 1.0.0)

px_create_fp — Create a new paradox database

说明

bool px_create_fp ( resource $pxdoc , resource $file , array $fielddesc )

Create a new paradox database file. The actual file has to be opened before with fopen(). Make sure the file is writable.

Note: Calling this functions issues a warning about an empty tablename which can be safely ignored. Just set the tablename afterwards with px_set_parameter().

Note: This function is highly experimental, due to insufficient documentation of the paradox file format. Database files created with this function can be opened by px_open_fp() and has been successfully opened by the Paradox software, but your milage may vary.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

file

File handle as returned by fopen().

fielddesc

fielddesc is an array containing one element for each field specification. A field specification is an array itself with either two or three elements.The first element is always a string value used as the name of the field. It may not be larger than ten characters. The second element contains the field type which is one of the constants listed in the table Constants for field types. In the case of a character field or bcd field, you will have to provide a third element specifying the length respectively the precesion of the field. If your field specification contains blob fields, you will have to make sure to either make the field large enough for all field values to fit or specify a blob file with px_set_blob_file() for storing the blobs. If this is not done the field data is truncated.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Creating a Paradox database with two fields

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Error handling */
}
px_set_parameter($pxdoc, "tablename", "testtable");
for($i=-50; $i<50; $i++) {
  $rec = array($i, -$i);
  px_put_record($pxdoc, $rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

参见

  • px_new() - Create a new paradox object
  • px_put_record() - Stores record into paradox database
  • fopen() - 打开文件或者 URL

px_close
px_date2string
Paradox 函数


Converts a date into a string.

px_create_fp
px_delete_record
Paradox 函数
PHP 手册

px_date2string

(PECL paradox >= 1.4.0)

px_date2string — Converts a date into a string.

说明

string px_date2string ( resource $pxdoc , int $value , string $format )

Turns a date as it stored in the paradox file into human readable format. Paradox dates are the number of days since 1.1.0000. This function is just for convenience. It can be easily replaced by some math and the calendar functions as demonstrated in the example below.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

value

Value as stored in paradox database field of type PX_FIELD_DATE.

format

String format similar to the format used by date(). The placeholders support by this function is a subset of those supported by date() (Y, y, m, n, d, j, L).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Turn a paradox date into a human readable form

<?php
$px = px_new();

/* make up a date as it could be stored in */
/* a date field of a paradox db. */
/* 700000 days since 1.1.0000. */
$days = 700000;

/* Use the calendar functions to print a */
/* human readable format of the date */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() outputs the same */
echo px_date2string($px, $days, "n/d/Y")."\n";

px_delete($px);
?>

上例将输出：

7/15/1917
7/15/1917

参见

  • px_timestamp2string() - Converts the timestamp into a string.
  • jdtogregorian() - Converts Julian Day Count to Gregorian date

px_create_fp
px_delete_record
Paradox 函数


Deletes record from paradox database

px_date2string
px_delete
Paradox 函数
PHP 手册

px_delete_record

(PECL paradox >= 1.4.0)

px_delete_record — Deletes record from paradox database

说明

bool px_delete_record ( resource $pxdoc , int $num )

This function deletes a record from the database. It does not free the space in the database file but just marks it as deleted. Inserting a new record afterwards will reuse the space.

Note: This function is only available if pxlib >= 0.6.0 is used.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

px_date2string
px_delete
Paradox 函数


Deletes resource of paradox database

px_delete_record
px_get_field
Paradox 函数
PHP 手册

px_delete

(PECL paradox >= 1.0.0)

px_delete — Deletes resource of paradox database

说明

bool px_delete ( resource $pxdoc )

Deletes the resource of the paradox file and frees all memory.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

px_delete_record
px_get_field
Paradox 函数


Returns the specification of a single field

px_delete
px_get_info
Paradox 函数
PHP 手册

px_get_field

(PECL paradox >= 1.0.0)

px_get_field — Returns the specification of a single field

说明

array px_get_field ( resource $pxdoc , int $fieldno )

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

fieldno

Number of the field. The first field has number 0. Specifying a field number less than 0 and greater or equal the number of fields will trigger an error.

返回值

Returns the specification of the fieldno'th database field as an associated array. The array contains three fields named name, type, and size.

px_delete
px_get_info
Paradox 函数


Return lots of information about a paradox file

px_get_field
px_get_parameter
Paradox 函数
PHP 手册

px_get_info

(PECL paradox >= 1.0.0)

px_get_info — Return lots of information about a paradox file

说明

array px_get_info ( resource $pxdoc )

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

返回值

Returns an associated array with lots of information about a paradox file. This array is likely to be extended in the future.

fileversion

Version of file multiplied by 10, e.g. 70.

tablename

Name of table as stored in the file. If the database was created by pxlib, then this will be the name of the file without the extension.

numrecords

Number of records in this table.

numfields

Number of fields in this table.

headersize

Number of bytes used for the header. This is usually 0x800.

recordsize

Number of bytes used for each record. This is the sum of all field sizes (available since version 1.4.2).

maxtablesize

This value multiplied by 0x400 is the size of a data block in bytes. The maximum number of records in a datablock is the integer part of (maxtablesize * 0x400 - 8) / recordsize.

numdatablocks

The number of data blocks in the file. Each data block contains a certain number of records which depends on the record size and the data block size (maxtablesize). Data blocks may not necessarily be completely filled.

numindexfields

Number of fields used for the primary index. The fields do always start with field number 1.

codepage

The DOS codepage which was used for encoding fields with character data. If the target encoding is not set with px_set_targetencoding() this will be the encoding for character fields when records are being accessed with px_get_record() or px_retrieve_record().

参见

  • px_numfields() - Returns number of fields in a database
  • px_numrecords() - Returns number of records in a database

px_get_field
px_get_parameter
Paradox 函数


Gets a parameter

px_get_info
px_get_record
Paradox 函数
PHP 手册

px_get_parameter

(PECL paradox >= 1.1.0)

px_get_parameter — Gets a parameter

说明

string px_get_parameter ( resource $pxdoc , string $name )

Gets various parameters.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

The name can be one of the following:

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields with px_get_record() or px_retrieve_record() is recoded into the targetencoding. If it is not set, then the data will be delivered as stored in the database file.

inputencoding

The encoding of the input data which is to be stored into the database. When storing data of character fields in the database, the data is expected to be delivered in this encoding.

返回值

Returns the value of the parameter or FALSE on failure.

px_get_info
px_get_record
Paradox 函数


Returns record of paradox database

px_get_parameter
px_get_schema
Paradox 函数
PHP 手册

px_get_record

(PECL paradox >= 1.0.0)

px_get_record — Returns record of paradox database

说明

array px_get_record ( resource $pxdoc , int $num [, int $mode=0 ] )

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys of the returned array into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp (PX_FIELD_TIMESTAMP) and date (PX_FIELD_DATE) are floating point respectively int values counting milliseconds respectively days starting at the beginning of julian calendar. Use the functions px-timestamp2string() and px-date2string() to convert them into a character representation.

返回值

Returns the num 'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

参见

  • px_retrieve_record() - Returns record of paradox database

px_get_parameter
px_get_schema
Paradox 函数


Returns the database schema

px_get_record
px_get_value
Paradox 函数
PHP 手册

px_get_schema

(PECL paradox >= 1.0.0)

px_get_schema — Returns the database schema

说明

array px_get_schema ( resource $pxdoc [, int $mode=0 ] )

px_get_schema() returns the database schema.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

mode

If the optional mode is PX_KEYTOLOWER or PX_KEYTOUPPER the keys of the returned array will be converted to lower or upper case. If mode is 0 or not passed at all, then the key name will be identical to the field name.

返回值

Returns the schema of a database file as an associated array. The key name is equal to the field name. Each array element is itself an associated array containing the two fields type and size. type is one of the constants in table Constants for field types. size is the number of bytes this field consumes in the record. The total of all field sizes is equal to the record size as it can be retrieved with px-get-info().

px_get_record
px_get_value
Paradox 函数


Gets a value

px_get_schema
px_insert_record
Paradox 函数
PHP 手册

px_get_value

(PECL paradox >= 1.1.0)

px_get_value — Gets a value

说明

float px_get_value ( resource $pxdoc , string $name )

Gets various values.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

返回值

Returns the value of the parameter or FALSE on failure.

px_get_schema
px_insert_record
Paradox 函数


Inserts record into paradox database

px_get_value
px_new
Paradox 函数
PHP 手册

px_insert_record

(PECL paradox >= 1.4.0)

px_insert_record — Inserts record into paradox database

说明

int px_insert_record ( resource $pxdoc , array $data )

Inserts a new record into the database. The record is not necessarily inserted at the end of the database, but may be inserted at any position depending on where the first free slot is found.

The record data is passed as an array of field values. The elements in the array must correspond to the fields in the database. If the array has less elements than fields in the database, the remaining fields will be set to null.

Most field values can be passed as its equivalent php type e.g. a long value is used for fields of type PX_FIELD_LONG, PX_FIELD_SHORT and PX_FIELD_AUTOINC, a double values is used for fields of type PX_FIELD_CURRENCY and PX_FIELD_NUMBER. Field values for blob and alpha fields are passed as strings.

Fields of type PX_FIELD_TIME and PX_FIELD_DATE both require a long value. In the first case this is the number of milliseconds since midnight. In the second case this is the number of days since 1.1.0000. Below there are two examples to convert the current date or timestamp into a value suitable for one of paradox's date/time fields.

Note: This function is only available if pxlib >= 0.6.0 is used.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

data

Associated or indexed array containing the field values as e.g. returned by px_retrieve_record().

返回值

Returns FALSE on failure or the record number in case of success.

范例

Example #1 Set the date/time fields in a paradox database to the current date/time

<?php
$px = px_new();
$fp = fopen("test.db", "w+");
px_create_fp($px, $fp, array(array("timestamp", "@"), array("time", "T"), array("date", "D")));

$curdate = getdate();
$jd = gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days = $jd - 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs = $curdate["hours"]*3600 + $curdate["minutes"]*60 + $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));

$curtimestamp = microtime(true);
$days = (int) ($curtimestamp/86400);
$secs = $curtimestamp - ($days * 86400.0);
$days += 2440588; /* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));
for($i=0; $i<2; $i++) {
    $rec = px_retrieve_record($px, $i);
    echo px_timestamp2string($px, $rec["timestamp"], "n/d/Y H:i:s")."\n";
    echo px_date2string($px, $rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

上例将输出：

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

The Julian day count as passed to jdtogregorian() has a different base of 1.1.4714 b.c. and must therefore be calculated by adding 1721425 to the day count used in the paradox file. Turning the day count into a timestamp is easily done by multiplying with 86400000.0 to obtain milli seconds.

参见

px_update_record() - Updates record in paradox database

px_get_value
px_new
Paradox 函数


Create a new paradox object

px_insert_record
px_numfields
Paradox 函数
PHP 手册

px_new

(PECL paradox >= 1.0.0)

px_new — Create a new paradox object

说明

resource px_new ( void )

Create a new paradox object. You will have to call this function before any further functions. px_new() does not create any file on the disk, it just creates an instance of a paradox object. This function must not be called if the object oriented interface is used. Use new paradox_db() instead.

返回值

Returns FALSE on failure.

范例

Example #1 Opening a Paradox database

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Error handling */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

If you prefer the object oriented API, then the above example will look like the following.

Example #2 Opening a Paradox database

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /* Error handling */
}
// ...
$pxdoc->close();
fclose($fp);
?>

参见

  • px_delete() - Deletes resource of paradox database
  • px_open_fp() - Open paradox database

px_insert_record
px_numfields
Paradox 函数


Returns number of fields in a database

px_new
px_numrecords
Paradox 函数
PHP 手册

px_numfields

(PECL paradox >= 1.0.0)

px_numfields — Returns number of fields in a database

说明

int px_numfields ( resource $pxdoc )

Get the number of fields in a database file.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

返回值

Returns the number of fields in a database file. The return value of this function is identical to the element numfields in the array returned by px_get_info().

px_new
px_numrecords
Paradox 函数


Returns number of records in a database

px_numfields
px_open_fp
Paradox 函数
PHP 手册

px_numrecords

(PECL paradox >= 1.0.0)

px_numrecords — Returns number of records in a database

说明

int px_numrecords ( resource $pxdoc )

Get the number of records in a database file.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

返回值

Returns the number of records in a database file. The return value of this function is identical to the element numrecords in the array returned by px_get_info().

px_numfields
px_open_fp
Paradox 函数


Open paradox database

px_numrecords
px_put_record
Paradox 函数
PHP 手册

px_open_fp

(PECL paradox >= 1.0.0)

px_open_fp — Open paradox database

说明

bool px_open_fp ( resource $pxdoc , resource $file )

Open an existing paradox database file. The actual file has to be opened before with fopen(). This function can also be used to open primary index files and tread them like a paradox database. This is supported for those who would like to investigate a primary index. It cannot be used to accelerate access to a database file.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

file

file is the return value from fopen() with the actual database file as parameter. Make sure the database is writable if you plan to update or insert records.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fopen() - 打开文件或者 URL
  • The example at px_new() - Create a new paradox object

px_numrecords
px_put_record
Paradox 函数


Stores record into paradox database

px_open_fp
px_retrieve_record
Paradox 函数
PHP 手册

px_put_record

(PECL paradox >= 1.0.0)

px_put_record — Stores record into paradox database

说明

bool px_put_record ( resource $pxdoc , array $record [, int $recpos=-1 ] )

Stores a record into a paradox database. The record is always added at the end of the database, regardless of any free slots. Use px_insert_record() to add a new record into the first free slot found in the database.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

record

Associated or indexed array containing the field values as e.g. returned by px_retrieve_record().

recpos

This optional parameter may be used to specify a record number greater than the current number of records in the database. The function will add as many empty records as needed. There is hardly any need for this parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

px_open_fp
px_retrieve_record
Paradox 函数


Returns record of paradox database

px_put_record
px_set_blob_file
Paradox 函数
PHP 手册

px_retrieve_record

(PECL paradox >= 1.4.0)

px_retrieve_record — Returns record of paradox database

说明

array px_retrieve_record ( resource $pxdoc , int $num [, int $mode=0 ] )

This function is very similar to px_get_record() but uses internally a different approach to retrieve the data. It relies on pxlib for reading each single field value, which usually results in support for more field types.

Note: This function is only available if pxlib >= 0.6.0 is used.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp is a floating point value also counting milliseconds starting at the beginning of julian calendar.

返回值

Returns the num 'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

参见

  • px_get_record() - Returns record of paradox database

px_put_record
px_set_blob_file
Paradox 函数


Sets the file where blobs are read from

px_retrieve_record
px_set_parameter
Paradox 函数
PHP 手册

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_file — Sets the file where blobs are read from

说明

bool px_set_blob_file ( resource $pxdoc , string $filename )

Sets the name of the file where blobs are going to be read from or written into. Without calling this function, px_get_record() or px_retrieve_record() will only return data in blob fields if the data is part of the record and not stored in the blob file. Blob data is stored in the record if it is small enough to fit in the size of the blob field.

Calling px_put_record(),
px_insert_record(), or
px_update_record() without calling
px_set_blob_file() will result in truncated blob fields
unless the data fits into the database file.

Calling this function twice will close the first blob file and open the new one.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

filename

The name of the file. Its extension should be .MB.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

px_retrieve_record
px_set_parameter
Paradox 函数


Sets a parameter

px_set_blob_file
px_set_tablename
Paradox 函数
PHP 手册

px_set_parameter

(PECL paradox >= 1.1.0)

px_set_parameter — Sets a parameter

说明

bool px_set_parameter ( resource $pxdoc , string $name , string $value )

Sets various parameters.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

Depending on the parameter you want to set, name can be one of the following.

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

inputencoding

The encoding of the input data which is to be stored into the database.

value

The value of parameter to set. For inputencoding and targetencoding this must be the name of the encoding as understood by iconv or recode, e.g. iso-8859-1, utf-8, cp850.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • px_get_info() - Return lots of information about a paradox file to determine the DOS code page.

px_set_blob_file
px_set_tablename
Paradox 函数


Sets the name of a table (deprecated)

px_set_parameter
px_set_targetencoding
Paradox 函数
PHP 手册

px_set_tablename

(PECL paradox >= 1.0.0)

px_set_tablename — Sets the name of a table (deprecated)

说明

void px_set_tablename ( resource $pxdoc , string $name )

Sets the table name of a paradox database, which was created with px_create_fp(). This function is deprecated use px_set_parameter() instead.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

tablename

The name of the table. If it is not set explicitly it will be set to the name of the database file.

返回值

Returns NULL on success or FALSE on failure.

参见

px_set_parameter() - Sets a parameter

px_set_parameter
px_set_targetencoding
Paradox 函数


Sets the encoding for character fields (deprecated)

px_set_tablename
px_set_value
Paradox 函数
PHP 手册

px_set_targetencoding

(PECL paradox >= 1.0.0)

px_set_targetencoding — Sets the encoding for character fields (deprecated)

说明

bool px_set_targetencoding ( resource $pxdoc , string $encoding )

Set the encoding for data retrieved from a character field. All character fields will be recoded to the encoding set by this function. If the encoding is not set, the character data will be returned in the DOS code page encoding as specified in the database file. The encoding can be any string identifier known to iconv or recode. On Unix systems run iconv -l for a list of available encodings.

This function is deprecated and should be replaced by calling px_set_parameter().

See also px_get_info() to determine the DOS code page as stored in the database file.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

encoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

返回值

Returns FALSE if the encoding could not be set, e.g. the encoding is unknown, or pxlib does not support recoding at all. In the second case a warning will be issued.

参见

px_set_parameter() - Sets a parameter

px_set_tablename
px_set_value
Paradox 函数


Sets a value

px_set_targetencoding
px_timestamp2string
Paradox 函数
PHP 手册

px_set_value

(PECL paradox >= 1.1.0)

px_set_value — Sets a value

说明

bool px_set_value ( resource $pxdoc , string $name , float $value )

Sets various values.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

value

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

px_set_parameter() - Sets a parameter

px_set_targetencoding
px_timestamp2string
Paradox 函数


Converts the timestamp into a string.

px_set_value
px_update_record
Paradox 函数
PHP 手册

px_timestamp2string

(PECL paradox >= 1.4.0)

px_timestamp2string — Converts the timestamp into a string.

说明

string px_timestamp2string ( resource $pxdoc , float $value , string $format )

Turns a timestamp as it stored in the paradox file into human readable format. Paradox timestamps are the number of milliseconds since 1.1.0000. This function is just for convenience. It can be easily replaced by some math and the calendar functions as demonstrated in the following example.

参数

pxdoc

Resource identifier of the paradox database.

value

Value as stored in paradox database field of type PX_FIELD_TIME, or PX_FIELD_TIMESTAMP.

format

String format similar to the format used by date(). The placeholders support by this function is a subset of those supported by date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Turn a paradox timestamp into a human readable form

<?php
$px = px_new();

/* make up a date as it could be stored in */
/* a date field of a paradox db. */
/* 700000 days since 1.1.0000. */
$days = 700000;

/* Use the calendar functions to print a */
/* human readable format of the date */
echo jdtogregorian($days+1721425)."\n";

/* Turn it into a timestamp as it stored in a paradox database */
/* Timestamps are stored in milli seconds since 1.1.0000 */
$stamp = $days * 86400.0 * 1000.0;
/* Add one hour */
$stamp += 3600000.0;
/* The following will output '7/15/1917 01:00:00'. */
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

上例将输出：

7/15/1917
7/15/1917 01:00:00

The Julian day count as passed to jdtogregorian() has a different base of 1.1.4714 b.c. and must therefore be calculated by adding 1721425 to the day count used in the paradox file. Turning the day count into a timestamp is easily done by multiplying with 86400000.0 to obtain milli seconds.

参见

  • px_date2string() - Converts a date into a string.
  • jdtogregorian() - Converts Julian Day Count to Gregorian date

px_set_value
px_update_record
Paradox 函数


Updates record in paradox database

px_timestamp2string
PostgreSQL
Paradox 函数
PHP 手册

px_update_record

(PECL paradox >= 1.4.0)

px_update_record — Updates record in paradox database

说明

bool px_update_record ( resource $pxdoc , array $data , int $num )

Updates an exiting record in the database. The record starts at 0.

The record data is passed as an array of field values. The elements in the array must correspond to the fields in the database. If the array has less elements than fields in the database, the remaining fields will be set to null.

Note: This function is only available if pxlib >= 0.6.0 is used.

参数

pxdoc

Resource identifier of the paradox database as returned by px_new().

data

Associated array containing the field values as returned by px_retrieve_record().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

px_insert_record() - Inserts record into paradox database

px_timestamp2string
PostgreSQL
Paradox 函数


PostgreSQL

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • PostgreSQL extension overview example
  • PostgreSQL 函数
    • pg_affected_rows — 返回受影响的记录数目
    • pg_cancel_query — 取消异步查询
    • pg_client_encoding — 取得客户端编码方式
    • pg_close — 关闭一个 PostgreSQL 连接
    • pg_connect — 打开一个 PostgreSQL 连接
    • pg_connection_busy — 获知连接是否为忙
    • pg_connection_reset — 重置连接（再次连接）
    • pg_connection_status — 获得连接状态
    • pg_convert — 将关联的数组值转换为适合 SQL 语句的格式。
    • pg_copy_from — 根据数组将记录插入表中
    • pg_copy_to — 将一个表拷贝到数组中
    • pg_dbname — 获得数据库名
    • pg_delete — 删除记录
    • pg_end_copy — 与 PostgreSQL 后端同步
    • pg_escape_bytea — 转义 bytea 类型的二进制数据
    • pg_escape_string — 转义 text/char 类型的字符串
    • pg_execute — Sends a request to execute a prepared statement with given parameters, and waits for the result.
    • pg_fetch_all_columns — Fetches all rows in a particular result column as an array
    • pg_fetch_all — 从结果中提取所有行作为一个数组
    • pg_fetch_array — 提取一行作为数组
    • pg_fetch_assoc — 提取一行作为关联数组
    • pg_fetch_object — 提取一行作为对象
    • pg_fetch_result — 从结果资源中返回值
    • pg_fetch_row — 提取一行作为枚举数组
    • pg_field_is_null — 测试字段是否为 NULL
    • pg_field_name — 返回字段的名字
    • pg_field_num — 返回字段的编号
    • pg_field_prtlen — 返回打印出来的长度
    • pg_field_size — 返回指定字段占用内部存储空间的大小
    • pg_field_table — Returns the name or oid of the tables field
    • pg_field_type_oid — Returns the type ID (OID) for the corresponding field number
    • pg_field_type — 返回相应字段的类型名称
    • pg_free_result — 释放查询结果占用的内存
    • pg_get_notify — Ping 数据库连接
    • pg_get_pid — Ping 数据库连接
    • pg_get_result — 取得异步查询结果
    • pg_host — 返回和某连接关联的主机名
    • pg_insert — 将数组插入到表中
    • pg_last_error — 得到某连接的最后一条错误信息
    • pg_last_notice — 返回 PostgreSQL 服务器最新一条公告信息
    • pg_last_oid — 返回上一个对象的 oid
    • pg_lo_close — 关闭一个大型对象
    • pg_lo_create — 新建一个大型对象
    • pg_lo_export — 将大型对象导出到文件
    • pg_lo_import — 将文件导入为大型对象
    • pg_lo_open — 打开一个大型对象
    • pg_lo_read_all — 读入整个大型对象并直接发送给浏览器
    • pg_lo_read — 从大型对象中读入数据
    • pg_lo_seek — 移动大型对象中的指针
    • pg_lo_tell — 返回大型对象的当前指针位置
    • pg_lo_unlink — 删除一个大型对象
    • pg_lo_write — 向大型对象写入数据
    • pg_meta_data — 获得表的元数据
    • pg_num_fields — 返回字段的数目
    • pg_num_rows — 返回行的数目
    • pg_options — 获得和连接有关的选项
    • pg_parameter_status — Looks up a current parameter setting of the server.
    • pg_pconnect — 打开一个持久的 PostgreSQL 连接
    • pg_ping — Ping 数据库连接
    • pg_port — 返回该连接的端口号
    • pg_prepare — Submits a request to create a prepared statement with the given parameters, and waits for completion.
    • pg_put_line — 向 PostgreSQL 后端发送以 NULL 结尾的字符串
    • pg_query_params — Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.
    • pg_query — 执行查询
    • pg_result_error_field — Returns an individual field of an error report.
    • pg_result_error — 获得查询结果的错误信息
    • pg_result_seek — 在结果资源中设定内部行偏移量
    • pg_result_status — 获得查询结果的状态
    • pg_select — 选择记录
    • pg_send_execute — Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).
    • pg_send_prepare — Sends a request to create a prepared statement with the given parameters, without waiting for completion.
    • pg_send_query_params — Submits a command and separate parameters to the server without waiting for the result(s).
    • pg_send_query — 发送异步查询
    • pg_set_client_encoding — 设定客户端编码
    • pg_set_error_verbosity — Determines the verbosity of messages returned by pg_last_error and pg_result_error.
    • pg_trace — 启动一个 PostgreSQL 连接的追踪功能
    • pg_transaction_status — Returns the current in-transaction status of the server.
    • pg_tty — 返回该连接的 tty 号
    • pg_unescape_bytea — 取消 bytea 类型中的字符串转义
    • pg_untrace — 关闭 PostgreSQL 连接的追踪功能
    • pg_update — 更新表
    • pg_version — Returns an array with client, protocol and server version (when available)
px_update_record
简介
与具体数据库系统相关的扩展


简介

PostgreSQL database is Open Source product and available without cost. Postgres, developed originally in the UC Berkeley Computer Science Department, pioneered many of the object-relational concepts now becoming available in some commercial databases. It provides SQL92/SQL99 language support, transactions, referential integrity, stored procedures and type extensibility. PostgreSQL is an open source descendant of this original Berkeley code.

PostgreSQL
安装/配置
PostgreSQL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PostgreSQL


需求

To use PostgreSQL support, you need PostgreSQL 6.5 or later, PostgreSQL 8.0 or later to enable all PostgreSQL module features. PostgreSQL supports many character encodings including multibyte character encoding. The current version and more information about PostgreSQL is available at » http://www.postgresql.org/ and the » PostgreSQL Documentation.

安装/配置
安装
安装/配置


安装

为添加 PostgreSQL 支持，在编译 PHP 时需要加上 --with-pgsql[=DIR] 选项。如果可以用共享模块方式，PostgreSQL 模块可以在 php.ini 用 extension 指令或者 dl() 函数加载。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

PostgreSQL 配置选项
名称 | 默认值 | 可变范围 | 更新日志
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | 从 PHP 4.2.0 起开始存在
pgsql.ignore_notice | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起开始存在
pgsql.log_notice | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起开始存在

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

pgsql.allow_persistent boolean

是否允许持久的 Postgres 连接。

pgsql.max_persistent integer

每个进程所能有的持久 Postgres 连接数目。

pgsql.max_links integer

每个进程所能有的 Postgres 连接数目，包括持久连接。

pgsql.auto_reset_persistent integer

检测用在 pg_pconnect() 上的中断了的持久连接。需要一些损耗。

pgsql.ignore_notice integer

是否忽略 PostgreSQL 后端的通告。

pgsql.log_notice integer

是否记录 PostgreSQL 后端的通告消息。要记录通告消息日志，PHP 指令 pgsql.ignore_notice 必须为 off。

安装
资源类型
安装/配置


资源类型

There are two resource types used in the PostgreSQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

PGSQL_ASSOC (integer)
Passed to pg_fetch_array(). Return an associative array of field names and values.
PGSQL_NUM (integer)
Passed to pg_fetch_array(). Return a numerically indexed array of field numbers and values.
PGSQL_BOTH (integer)
Passed to pg_fetch_array(). Return an array of field values that is both numerically indexed (by field number) and associated (by field name).
PGSQL_CONNECT_FORCE_NEW (integer)
Passed to pg_connect() to force the creation of a new connection, rather then re-using an existing identical connection.
PGSQL_CONNECTION_BAD (integer)
Returned by pg_connection_status() indicating that the database connection is in an invalid state.
PGSQL_CONNECTION_OK (integer)
Returned by pg_connection_status() indicating that the database connection is in a valid state.
PGSQL_SEEK_SET (integer)
Passed to pg_lo_seek(). Seek operation is to begin from the start of the object.
PGSQL_SEEK_CUR (integer)
Passed to pg_lo_seek(). Seek operation is to begin from the current position.
PGSQL_SEEK_END (integer)
Passed to pg_lo_seek(). Seek operation is to begin from the end of the object.
PGSQL_EMPTY_QUERY (integer)
Returned by pg_result_status(). The string sent to the server was empty.
PGSQL_COMMAND_OK (integer)
Returned by pg_result_status(). Successful completion of a command returning no data.
PGSQL_TUPLES_OK (integer)
Returned by pg_result_status(). Successful completion of a command returning data (such as a SELECT or SHOW).
PGSQL_COPY_OUT (integer)
Returned by pg_result_status(). Copy Out (from server) data transfer started.
PGSQL_COPY_IN (integer)
Returned by pg_result_status(). Copy In (to server) data transfer started.
PGSQL_BAD_RESPONSE (integer)
Returned by pg_result_status(). The server's response was not understood.
PGSQL_NONFATAL_ERROR (integer)
Returned by pg_result_status(). A nonfatal error (a notice or warning) occurred.
PGSQL_FATAL_ERROR (integer)
Returned by pg_result_status(). A fatal error occurred.
PGSQL_TRANSACTION_IDLE (integer)
Returned by pg_transaction_status(). Connection is currently idle, not in a transaction.
PGSQL_TRANSACTION_ACTIVE (integer)
Returned by pg_transaction_status(). A command is in progress on the connection. A query has been sent via the connection and not yet completed.
PGSQL_TRANSACTION_INTRANS (integer)
Returned by pg_transaction_status(). The connection is idle, in a transaction block.
PGSQL_TRANSACTION_INERROR (integer)
Returned by pg_transaction_status(). The connection is idle, in a failed transaction block.
PGSQL_TRANSACTION_UNKNOWN (integer)
Returned by pg_transaction_status(). The connection is bad.
PGSQL_DIAG_SEVERITY (integer)
Passed to pg_result_error_field(). The severity; the field contents are ERROR, FATAL, or PANIC (in an error message), or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized translation of one of these. Always present.
PGSQL_DIAG_SQLSTATE (integer)
Passed to pg_result_error_field(). The SQLSTATE code for the error. The SQLSTATE code identifies the type of error that has occurred; it can be used by front-end applications to perform specific operations (such as error handling) in response to a particular database error. This field is not localizable, and is always present.
PGSQL_DIAG_MESSAGE_PRIMARY (integer)
Passed to pg_result_error_field(). The primary human-readable error message (typically one line). Always present.
PGSQL_DIAG_MESSAGE_DETAIL (integer)
Passed to pg_result_error_field(). Detail: an optional secondary error message carrying more detail about the problem. May run to multiple lines.
PGSQL_DIAG_MESSAGE_HINT (integer)
Passed to pg_result_error_field(). Hint: an optional suggestion what to do about the problem. This is intended to differ from detail in that it offers advice (potentially inappropriate) rather than hard facts. May run to multiple lines.
PGSQL_DIAG_STATEMENT_POSITION (integer)
Passed to pg_result_error_field(). A string containing a decimal integer indicating an error cursor position as an index into the original statement string. The first character has index 1, and positions are measured in characters not bytes.
PGSQL_DIAG_INTERNAL_POSITION (integer)
Passed to pg_result_error_field(). This is defined the same as the PG_DIAG_STATEMENT_POSITION field, but it is used when the cursor position refers to an internally generated command rather than the one submitted by the client. The PG_DIAG_INTERNAL_QUERY field will always appear when this field appears.
PGSQL_DIAG_INTERNAL_QUERY (integer)
Passed to pg_result_error_field(). The text of a failed internally-generated command. This could be, for example, a SQL query issued by a PL/pgSQL function.
PGSQL_DIAG_CONTEXT (integer)
Passed to pg_result_error_field(). An indication of the context in which the error occurred. Presently this includes a call stack traceback of active procedural language functions and internally-generated queries. The trace is one entry per line, most recent first.
PGSQL_DIAG_SOURCE_FILE (integer)
Passed to pg_result_error_field(). The file name of the PostgreSQL source-code location where the error was reported.
PGSQL_DIAG_SOURCE_LINE (integer)
Passed to pg_result_error_field(). The line number of the PostgreSQL source-code location where the error was reported.
PGSQL_DIAG_SOURCE_FUNCTION (integer)
Passed to pg_result_error_field(). The name of the PostgreSQL source-code function reporting the error.
PGSQL_ERRORS_TERSE (integer)
Passed to pg_set_error_verbosity(). Specified that returned messages include severity, primary text, and position only; this will normally fit on a single line.
PGSQL_ERRORS_DEFAULT (integer)
Passed to pg_set_error_verbosity(). The default mode produces messages that include the above plus any detail, hint, or context fields (these may span multiple lines).
PGSQL_ERRORS_VERBOSE (integer)
Passed to pg_set_error_verbosity(). The verbose mode includes all available fields.
PGSQL_STATUS_LONG (integer)
Passed to pg_result_status(). Indicates that numerical result code is desired.
PGSQL_STATUS_STRING (integer)
Passed to pg_result_status(). Indicates that textual result command tag is desired.
PGSQL_CONV_IGNORE_DEFAULT (integer)
Passed to pg_convert(). Ignore default values in the table during conversion.
PGSQL_CONV_FORCE_NULL (integer)
Passed to pg_convert(). Use SQL NULL in place of an empty string.
PGSQL_CONV_IGNORE_DEFAULT (integer)
Passed to pg_convert(). Ignore conversion of NULL into SQL NOT NULL columns.
资源类型
范例
PostgreSQL


范例

Table of Contents

  • PostgreSQL extension overview example
预定义常量
PostgreSQL extension overview example
PostgreSQL


PostgreSQL extension overview example

范例
PostgreSQL 函数
范例
PHP 手册

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a PostgreSQL database.

Example #1 PostgreSQL extension overview example

<?php
// Connecting, selecting database
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die('Could not connect: ' . pg_last_error());

// Performing SQL query
$query = 'SELECT * FROM authors';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());

// Printing results in HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
pg_free_result($result);

// Closing connection
pg_close($dbconn);
?>

范例
PostgreSQL 函数
范例


PostgreSQL 函数

注释

Note: Not all functions are supported by all builds. It depends on your libpq (The PostgreSQL C client library) version and how libpq is compiled. If PHP PostgreSQL extensions are missing, then it is because your libpq version does not support them.

Note: Most PostgreSQL functions accept connection as the first optional parameter. If it is not provided, the last opened connection is used. If it doesn't exist, functions return FALSE.

Note: PostgreSQL automatically folds all identifiers (e.g. table/column names) to lower-case values at object creation time and at query time. To force the use of mixed or upper case identifiers, you must escape the identifier using double quotes ("").

Note: PostgreSQL does not have special commands for fetching database schema information (eg. all the tables in the current database). Instead, there is a standard schema named information_schema in PostgreSQL 7.4 and above containing system views with all the necessary information, in an easily queryable form. See the » PostgreSQL Documentation for full details.

Table of Contents

  • pg_affected_rows — 返回受影响的记录数目
  • pg_cancel_query — 取消异步查询
  • pg_client_encoding — 取得客户端编码方式
  • pg_close — 关闭一个 PostgreSQL 连接
  • pg_connect — 打开一个 PostgreSQL 连接
  • pg_connection_busy — 获知连接是否为忙
  • pg_connection_reset — 重置连接（再次连接）
  • pg_connection_status — 获得连接状态
  • pg_convert — 将关联的数组值转换为适合 SQL 语句的格式。
  • pg_copy_from — 根据数组将记录插入表中
  • pg_copy_to — 将一个表拷贝到数组中
  • pg_dbname — 获得数据库名
  • pg_delete — 删除记录
  • pg_end_copy — 与 PostgreSQL 后端同步
  • pg_escape_bytea — 转义 bytea 类型的二进制数据
  • pg_escape_string — 转义 text/char 类型的字符串
  • pg_execute — Sends a request to execute a prepared statement with given parameters, and waits for the result.
  • pg_fetch_all_columns — Fetches all rows in a particular result column as an array
  • pg_fetch_all — 从结果中提取所有行作为一个数组
  • pg_fetch_array — 提取一行作为数组
  • pg_fetch_assoc — 提取一行作为关联数组
  • pg_fetch_object — 提取一行作为对象
  • pg_fetch_result — 从结果资源中返回值
  • pg_fetch_row — 提取一行作为枚举数组
  • pg_field_is_null — 测试字段是否为 NULL
  • pg_field_name — 返回字段的名字
  • pg_field_num — 返回字段的编号
  • pg_field_prtlen — 返回打印出来的长度
  • pg_field_size — 返回指定字段占用内部存储空间的大小
  • pg_field_table — Returns the name or oid of the tables field
  • pg_field_type_oid — Returns the type ID (OID) for the corresponding field number
  • pg_field_type — 返回相应字段的类型名称
  • pg_free_result — 释放查询结果占用的内存
  • pg_get_notify — Ping 数据库连接
  • pg_get_pid — Ping 数据库连接
  • pg_get_result — 取得异步查询结果
  • pg_host — 返回和某连接关联的主机名
  • pg_insert — 将数组插入到表中
  • pg_last_error — 得到某连接的最后一条错误信息
  • pg_last_notice — 返回 PostgreSQL 服务器最新一条公告信息
  • pg_last_oid — 返回上一个对象的 oid
  • pg_lo_close — 关闭一个大型对象
  • pg_lo_create — 新建一个大型对象
  • pg_lo_export — 将大型对象导出到文件
  • pg_lo_import — 将文件导入为大型对象
  • pg_lo_open — 打开一个大型对象
  • pg_lo_read_all — 读入整个大型对象并直接发送给浏览器
  • pg_lo_read — 从大型对象中读入数据
  • pg_lo_seek — 移动大型对象中的指针
  • pg_lo_tell — 返回大型对象的当前指针位置
  • pg_lo_unlink — 删除一个大型对象
  • pg_lo_write — 向大型对象写入数据
  • pg_meta_data — 获得表的元数据
  • pg_num_fields — 返回字段的数目
  • pg_num_rows — 返回行的数目
  • pg_options — 获得和连接有关的选项
  • pg_parameter_status — Looks up a current parameter setting of the server.
  • pg_pconnect — 打开一个持久的 PostgreSQL 连接
  • pg_ping — Ping 数据库连接
  • pg_port — 返回该连接的端口号
  • pg_prepare — Submits a request to create a prepared statement with the given parameters, and waits for completion.
  • pg_put_line — 向 PostgreSQL 后端发送以 NULL 结尾的字符串
  • pg_query_params — Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.
  • pg_query — 执行查询
  • pg_result_error_field — Returns an individual field of an error report.
  • pg_result_error — 获得查询结果的错误信息
  • pg_result_seek — 在结果资源中设定内部行偏移量
  • pg_result_status — 获得查询结果的状态
  • pg_select — 选择记录
  • pg_send_execute — Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).
  • pg_send_prepare — Sends a request to create a prepared statement with the given parameters, without waiting for completion.
  • pg_send_query_params — Submits a command and separate parameters to the server without waiting for the result(s).
  • pg_send_query — 发送异步查询
  • pg_set_client_encoding — 设定客户端编码
  • pg_set_error_verbosity — Determines the verbosity of messages returned by pg_last_error and pg_result_error.
  • pg_trace — 启动一个 PostgreSQL 连接的追踪功能
  • pg_transaction_status — Returns the current in-transaction status of the server.
  • pg_tty — 返回该连接的 tty 号
  • pg_unescape_bytea — 取消 bytea 类型中的字符串转义
  • pg_untrace — 关闭 PostgreSQL 连接的追踪功能
  • pg_update — 更新表
  • pg_version — Returns an array with client, protocol and server version (when available)
PostgreSQL extension overview example
pg_affected_rows
PostgreSQL


返回受影响的记录数目

PostgreSQL 函数
pg_cancel_query
PostgreSQL 函数
PHP 手册

pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows — 返回受影响的记录数目

说明

int pg_affected_rows ( resource $result )

pg_affected_rows() 返回在 pg_query() 中执行 INSERT，UPDATE 和 DELETE 查询后受到影响的记录数目（包括实例／记录／行）。如果本函数没有影响到任何记录，则返回 0。

Example #1 pg_affected_rows() 例子

<?php
$result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");
$cmdtuples = pg_affected_rows($result);
echo $cmdtuples . " tuples are affected.\n";
?>

Note: 本函数以前被称为 pg_cmdtuples()。

参见 pg_query() 和 pg_num_rows()。

PostgreSQL 函数
pg_cancel_query
PostgreSQL 函数


取消异步查询

pg_affected_rows
pg_client_encoding
PostgreSQL 函数
PHP 手册

pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query — 取消异步查询

说明

bool pg_cancel_query ( resource $connection )

pg_cancel_query() 取消由 pg_send_query() 发送的异步查询。不能取消由 pg_query() 执行的查询。

参见 pg_send_query() 和 pg_connection_busy()。

pg_affected_rows
pg_client_encoding
PostgreSQL 函数


取得客户端编码方式

pg_cancel_query
pg_close
PostgreSQL 函数
PHP 手册

pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding — 取得客户端编码方式

说明

string pg_client_encoding ([ resource $connection ] )

pg_client_encoding() 以字符串形式返回客户端编码。所返回的字符串为以下之一：SQL_ASCII，EUC_JP，EUC_CN，EUC_KR，EUC_TW，UNICODE，MULE_INTERNAL，LATINX (X=1...9)，KOI8，WIN，ALT，SJIS，BIG5，WIN1250。

Note: 本函数需要 PHP-4.0.3 或以上版本以及 PostgreSQL-7.0 或以上版本。如果在编译 libpq 时没有加入多字节编码支持，则 pg_set_client_encoding() 总是返回 "SQL_ASCII"。所支持的编码方式取决于 PostgreSQL 的版本。详情参见 PostgreSQL 手册如何加入多字节支持以及所支持的编码方式。
本函数以前被称为 pg_clientencoding()。

参见 pg_set_client_encoding()。

pg_cancel_query
pg_close
PostgreSQL 函数


关闭一个 PostgreSQL 连接

pg_client_encoding
pg_connect
PostgreSQL 函数
PHP 手册

pg_close

(PHP 4, PHP 5)

pg_close — 关闭一个 PostgreSQL 连接

说明

bool pg_close ( resource $connection )

pg_close() 关闭由所给资源 connection 指定的到 PostgreSQL 数据库的非持久连接。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 使用 pg_close() 并不很必要，因为非持久连接在本脚本执行结束后会自动关闭。

Example #1 pg_close() 例子

<?php
    $dbconn = pg_connect("host=localhost port=5432 dbname=mary")
        or die("Could not connect");
    print("Connected successfully");
    pg_close($dbconn);
?>

如果在此连接中打开了 large object 资源，则在关闭所有 large object 资源之前不要关闭连接。

pg_client_encoding
pg_connect
PostgreSQL 函数


打开一个 PostgreSQL 连接

pg_close
pg_connection_busy
PostgreSQL 函数
PHP 手册

pg_connect

(PHP 4, PHP 5)

pg_connect — 打开一个 PostgreSQL 连接

说明

resource pg_connect ( string $connection_string )

pg_connect() 返回其它 PostgreSQL 函数所需要的资源。

pg_connect() 打开一个由 connection_string 所指定的 PostgreSQL 数据库的连接。如果成功则返回连接资源，如果不能连接则返回 FALSE。connection_string 应该是用引号引起来的字符串。

Example #1 使用 pg_connect()

<?php
$dbconn = pg_connect("dbname=mary");
//connect to a database named "mary"
$dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
// connect to a database named "mary" on "localhost" at port "5432"
$dbconn3 = pg_connect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//connect to a database named "mary" on the host "sheep" with a username and password

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect($conn_string);
//connect to a database named "test" on the host "sheep" with a username and password
?>

connection_string 所包括的参数有 host ，port ，tty , options ，dbname , user 和 password 。

如果用同样的 connection_string 再次调用 pg_connect()，不会建立新连接，而是返回前面已经打开的连接资源。如果使用不同的连接字符串，则可以和同一个数据库建立多个连接。

旧的多参数语法 $conn = pg_connect("host", "port", "options", "tty", "dbname") 已经不提倡使用。

参见 pg_pconnect()，pg_close()，pg_host()，pg_port(), pg_tty()，pg_options() 和 pg_dbname()。

pg_close
pg_connection_busy
PostgreSQL 函数


获知连接是否为忙

pg_connect
pg_connection_reset
PostgreSQL 函数
PHP 手册

pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy — 获知连接是否为忙

说明

bool pg_connection_busy ( resource $connection )

pg_connection_busy() 在此连接状态为忙的时候返回 TRUE。如果连接状态为忙，说明前一个查询仍然在执行。如果调用 pg_get_result() 函数的话，则会被锁死。

Example #1 pg_connection_busy() 例子

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $bs = pg_connection_busy($dbconn);
    if ($bs) {
        echo 'connection is busy';
    }
    else {
       echo 'connection is not busy';
    }
?>

参见 pg_connection_status() 和 pg_get_result()。

pg_connect
pg_connection_reset
PostgreSQL 函数


重置连接（再次连接）

pg_connection_busy
pg_connection_status
PostgreSQL 函数
PHP 手册

pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset — 重置连接（再次连接）

说明

bool pg_connection_reset ( resource $connection )

pg_connection_reset() 重置一个连接，用于错误恢复。如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 pg_connection_reset() 例子

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $dbconn2 = pg_connection_reset($dbconn);
    if ($dbconn2) {
        echo "reset successful\n";
    }
    else {
        echo "reset failed\n";
    }
?>

参见 pg_connect()，pg_pconnect() 和 pg_connection_status()。

pg_connection_busy
pg_connection_status
PostgreSQL 函数


获得连接状态

pg_connection_reset
pg_convert
PostgreSQL 函数
PHP 手册

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status — 获得连接状态

说明

int pg_connection_status ( resource $connection )

pg_connection_status() 返回一个连接的状态。可能的状态为 PGSQL_CONNECTION_OK 和 PGSQL_CONNECTION_BAD。

Example #1 pg_connection_status() 例子

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $stat = pg_connection_status($dbconn);
    echo 'connection_status: '.$stat;
?>

Example #2 pg_connection_status() 例子

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $stat = pg_connection_status($dbconn);
    echo 'connection_status: '.$stat;
?>

参见 pg_connection_busy()。

pg_connection_reset
pg_convert
PostgreSQL 函数


将关联的数组值转换为适合 SQL 语句的格式。

pg_connection_status
pg_copy_from
PostgreSQL 函数
PHP 手册

pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert — 将关联的数组值转换为适合 SQL 语句的格式。

说明

array pg_convert ( resource $connection , string $table_name , array $assoc_array [, int $options ] )

pg_convert() 检查 assoc_array 中的值并将其转换为为适用于 SQL 语句的值。pg_convert() 的前提条件是现有的表 table_name 中具有的列至少有 assoc_array 中的单元那么多。table_name 中的字段名以及字段值必须和 assoc_array 中的键名及值匹配。如果成功则返回一个包括转换后的值的数组，否则返回 FALSE。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见 pg_meta_data()。

pg_connection_status
pg_copy_from
PostgreSQL 函数


根据数组将记录插入表中

pg_convert
pg_copy_to
PostgreSQL 函数
PHP 手册

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from — 根据数组将记录插入表中

说明

bool pg_copy_from ( resource $connection , string $table_name , array $rows [, string $delimiter [, string $null_as ]] )

pg_copy_from() 将数组 rows 的内容作为记录插入表中。它在内部使用了 COPY FROM SQL 命令来插入记录。如果成功则返回 TRUE，失败则返回 FALSE。

参见 pg_copy_to()。

pg_convert
pg_copy_to
PostgreSQL 函数


将一个表拷贝到数组中

pg_copy_from
pg_dbname
PostgreSQL 函数
PHP 手册

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to — 将一个表拷贝到数组中

说明

array pg_copy_to ( resource $connection , string $table_name [, string $delimiter [, string $null_as ]] )

pg_copy_to() 将一个表拷贝到数组中，该数组作为结果返回。它在内部使用了 COPY FROM SQL 命令来插入记录，并返回结果数组。如果失败则返回 FALSE。

参见 pg_copy_from()。

pg_copy_from
pg_dbname
PostgreSQL 函数


获得数据库名

pg_copy_to
pg_delete
PostgreSQL 函数
PHP 手册

pg_dbname

(PHP 4, PHP 5)

pg_dbname — 获得数据库名

说明

string pg_dbname ( resource $connection )

pg_dbname() 返回给定 PostgreSQL connection 资源的数据库名称。如果 connection 不是有效的 PostgreSQL 连接资源则返回 FALSE。

Example #1 pg_dbname() 例子

<?php
    error_reporting(E_ALL);

    pg_connect("host=localhost port=5432 dbname=mary");
    echo pg_dbname(); // mary
?>

pg_copy_to
pg_delete
PostgreSQL 函数


删除记录

pg_dbname
pg_end_copy
PostgreSQL 函数
PHP 手册

pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete — 删除记录

说明

mixed pg_delete ( resource $connection , string $table_name , array $assoc_array [, int $options ] )

pg_delete() 删除符合条件的记录，条件在 assoc_array 中以 field=>value 格式给出。如果指定了 option，则 pg_convert() 按照该选项作用于 assoc_array 之上。

Example #1 pg_delete() 例子

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_delete($db, 'post_log', $_POST);
    if ($res) {
        echo "POST data is deleted: $res\n";
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见 pg_convert()。

pg_dbname
pg_end_copy
PostgreSQL 函数


与 PostgreSQL 后端同步

pg_delete
pg_escape_bytea
PostgreSQL 函数
PHP 手册

pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy — 与 PostgreSQL 后端同步

说明

bool pg_end_copy ([ resource $connection ] )

pg_end_copy() 在处理完 pg_put_line() 所执行的拷贝操作之后将 PostgreSQL 前端（通常为 web server 进程）与 PostgreSQL 服务器进行同步。pg_end_copy() 必须被调用，否则 PostgreSQL 服务器可能会和前端失去同步并报错。如果成功则返回 TRUE，失败则返回 FALSE。

更多细节和例子参见 pg_put_line()。

pg_delete
pg_escape_bytea
PostgreSQL 函数


转义 bytea 类型的二进制数据

pg_end_copy
pg_escape_string
PostgreSQL 函数
PHP 手册

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea — 转义 bytea 类型的二进制数据

说明

string pg_escape_bytea ( string $data )

pg_escape_bytea() 转义 bytea 数据类型的二进制字符串，返回转义后的字符串。

Note: 当对 bytea 类型字段进行 SELECT 操作时，PostgreSQL 返回前导 \ 的八进制字节值（例如 \032）。用户需要自己将结果转换为二进制格式。
本函数需要 PostgreSQL 7.2 或以上版本。在 PostgreSQL 7.2.0 和 7.2.1 版中，如果使用了多字节支持，bytea 类型必须被强制转换。例如 INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);。PostgreSQL 7.2.2 或以上版本不需要强制转换。异常情况是当客户端和后端字符编码不匹配时，可能会有多字节流错误。用户必须强制转换 bytea 以避免此错误。

参见 pg_unescape_bytea() 和 pg_escape_string()。

pg_end_copy
pg_escape_string
PostgreSQL 函数


转义 text/char 类型的字符串

pg_escape_bytea
pg_execute
PostgreSQL 函数
PHP 手册

pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string — 转义 text/char 类型的字符串

说明

string pg_escape_string ( string $data )

pg_escape_string() 转义 text/char 数据类型的字符串，返回转义后的字符串。建议用此函数替代 addslashes()。

Note: 本函数需要 PostgreSQL 7.2 或以上版本。

参见 pg_escape_bytea()。

pg_escape_bytea
pg_execute
PostgreSQL 函数


Sends a request to execute a prepared statement with given parameters, and waits for the result.

pg_escape_string
pg_fetch_all_columns
PostgreSQL 函数
PHP 手册

pg_execute

(PHP 5 >= 5.1.0)

pg_execute — Sends a request to execute a prepared statement with given parameters, and waits for the result.

说明

resource pg_execute ([ resource $connection ], string $stmtname , array $params )

Sends a request to execute a prepared statement with given parameters, and waits for the result.

pg_execute() is like pg_query_params(), but the command to be executed is specified by naming a previously-prepared statement, instead of giving a query string. This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed. The statement must have been prepared previously in the current session. pg_execute() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

The parameters are identical to pg_query_params(), except that the name of a prepared statement is given instead of a query string.

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name of the prepared statement to execute. if "" is specified, then the unnamed statement is executed. The name must have been previously prepared using pg_prepare(), pg_send_prepare() or a PREPARE SQL command.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Warning

Elements are converted to strings by calling this function.

返回值

A query result resource on success, or FALSE on failure.

范例

Example #1 Using pg_execute()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

参见

  • pg_prepare() - Submits a request to create a prepared statement with the given parameters, and waits for completion.
  • pg_send_prepare() - Sends a request to create a prepared statement with the given parameters, without waiting for completion.
  • pg_query_params() - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

pg_escape_string
pg_fetch_all_columns
PostgreSQL 函数


Fetches all rows in a particular result column as an array

pg_execute
pg_fetch_all
PostgreSQL 函数
PHP 手册

pg_fetch_all_columns

(PHP 5 >= 5.1.0)

pg_fetch_all_columns — Fetches all rows in a particular result column as an array

说明

array pg_fetch_all_columns ( resource $result [, int $column=0 ] )

pg_fetch_all_columns() returns an array that contains all rows (records) in a particular column of the result resource.

Note: 本函数对 PHP NULL 值设定 NULL 字段。

参数

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

column

Column number, zero-based, to be retrieved from the result resource. Defaults to the first column if not specified.

返回值

An array with all values in the result column.

FALSE is returned if column is larger than the number of columns in the result, or on any other error.

范例

Example #1 pg_fetch_all_columns() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

// Get an array of all author names
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

参见

  • pg_fetch_all() - 从结果中提取所有行作为一个数组

pg_execute
pg_fetch_all
PostgreSQL 函数


从结果中提取所有行作为一个数组

pg_fetch_all_columns
pg_fetch_array
PostgreSQL 函数
PHP 手册

pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all — 从结果中提取所有行作为一个数组

说明

array pg_fetch_all ( resource $result )

pg_fetch_all() 从结果资源中返回一个包含有所有的行（元组/记录）的数组。如果没有更多行可供提取，则返回 FALSE。

Example #1 pg_fetch_all() 例子

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}
$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}
$arr = pg_fetch_all($result);
var_dump($arr);
?>

参见 pg_fetch_row()，pg_fetch_array()，pg_fetch_object() 和 pg_fetch_result()。

pg_fetch_all_columns
pg_fetch_array
PostgreSQL 函数


提取一行作为数组

pg_fetch_all
pg_fetch_assoc
PostgreSQL 函数
PHP 手册

pg_fetch_array

(PHP 4, PHP 5)

pg_fetch_array — 提取一行作为数组

说明

array pg_fetch_array ( resource $result [, int $row [, int $result_type ]] )

pg_fetch_array() 返回一个与所提取的行（元组/记录）相一致的数组。如果没有更多行可供提取，则返回 FALSE。

pg_fetch_array() 是 pg_fetch_row() 的扩展版本。在返回的数组中不仅以数字索引方式存放数据（字段编号），默认情况下还用字段名做索引存放数据（字段名）。

row 是想要取得的行（记录）的编号。第一行为 0。

result_type 是可选参数，控制着怎样初始化返回值。result_type 是一个常量，可以有以下取值：PGSQL_ASSOC，PGSQL_NUM 和 PGSQL_BOTH。取值为 PGSQL_ASSOC 时 pg_fetch_array() 返回用字段名作为键值索引的关联数组，取值为 PGSQL_NUM 时用字段编号作为键值，取值为 PGSQL_BOTH 时则同时用两者作为键值。默认值是 PGSQL_BOTH。

Note: result_type 是在 PHP 4.0 中才加入的参数。

pg_fetch_array() 并不明显比使用 pg_fetch_row() 慢，而且在使用中提供了更大的方便。

Example #1 pg_fetch_array()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- array\n";

$arr = pg_fetch_array($result, 1, PGSQL_ASSOC);
echo $arr["author"] . " <- array\n";

?>

Note: 从 4.1.0 开始，row 成为可选参数。每次调用 pg_fetch_array()，内部的行计数器都会加一。

参见 pg_fetch_row() 和 pg_fetch_object() 以及 pg_fetch_result()。

pg_fetch_all
pg_fetch_assoc
PostgreSQL 函数


提取一行作为关联数组

pg_fetch_array
pg_fetch_object
PostgreSQL 函数
PHP 手册

pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc — 提取一行作为关联数组

说明

array pg_fetch_assoc ( resource $result [, int $row ] )

pg_fetch_assoc() 和调用 pg_fetch_array() 加上第三个可选参数 PGSQL_ASSOC 是等价的。它只返回一个关联数组。如果需要数字索引，用 pg_fetch_row()。

pg_fetch_assoc() 是 pg_fetch_row() 的扩展版本。除了将数据存储在数字索引（字段编号）之外，默认还将数组存储在关联索引（字段名）中。

row 是要被提取的行（记录）编号。第一行为 0。

pg_fetch_assoc() 并不明显比 pg_fetch_row() 慢，而且还显著更便于使用。

Example #1 pg_fetch_assoc() 例子

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}
while ($row = pg_fetch_assoc($result)) {
    echo $row['id'];
    echo $row['author'];
    echo $row['email'];
}
?>

参见 pg_fetch_row()，pg_fetch_array()，pg_fetch_object() 和 pg_fetch_result()。

pg_fetch_array
pg_fetch_object
PostgreSQL 函数


提取一行作为对象

pg_fetch_assoc
pg_fetch_result
PostgreSQL 函数
PHP 手册

pg_fetch_object

(PHP 4, PHP 5)

pg_fetch_object — 提取一行作为对象

说明

object pg_fetch_object ( resource $result [, int $row [, int $result_type ]] )

pg_fetch_object() 返回与所提取行的属性相一致的一个对象。如果出错或者没有更多行可供提取时则返回 FALSE。

pg_fetch_object() 和 pg_fetch_array() 相似，只有一点区别 － 返回一个对象而不是数组。间接的，这意味着只能通过字段名来访问数据而不能通过偏移量来访问（数字是非法的属性名）。

row 是想要取得的行（记录）的编号。第一行为 0。

除了速度之外，本函数和 pg_fetch_array() 完全一样，而且几乎和 pg_fetch_row() 一样快（速度上的差别很小）。

Note: 从 4.1.0 版本开始，参数 row 变为可选参数。
从 4.3.0 开始，result_type 默认值为 PGSQL_ASSOC，而旧版本的默认值是 PGSQL_BOTH。数字属性在这里没有用处，因为在 PHP 中对象的属性不能是数字。
result_type 参数在以后的版本中可能会删除。

Example #1 pg_fetch_object()

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
    echo "Failed connecting to postgres database $database\n";
    exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

$row = 0; // postgres needs a row counter

while ($data = pg_fetch_object($qu, $row)) {
    echo $data->author . " (";
    echo $data->year . "): ";
    echo $data->title . "<br />";
    $row++;
}

pg_free_result ($qu);
pg_close ($db_conn);

?>

Note: 从 4.1.0 开始，row 成为可选参数。每次调用 pg_fetch_object()，内部的行计数器都会加一。

参见 pg_query()，pg_fetch_array()，pg_fetch_row() 和 pg_fetch_result()。

pg_fetch_assoc
pg_fetch_result
PostgreSQL 函数


从结果资源中返回值

pg_fetch_object
pg_fetch_row
PostgreSQL 函数
PHP 手册

pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result — 从结果资源中返回值

说明

mixed pg_fetch_result ( resource $result , int $row , mixed $field )

pg_fetch_result() 根据由 pg_query() 返回的 result 资源返回相应的值。row 为整型数。field 为字段名（字符串）或字段索引（整数）。row 和 field 指明了查询结果中的哪个单元被返回。行编号从 0 开始。除了用字段名之外，还可以用不带引号的数字作为字段索引。字段索引从 0 开始。

PostgreSQL 有很多内置的类型，这里只直接支持基本类型。所有形式的 integer，boolean 和 void 类型都被返回为 integer 值。所有形式的 float 和 real 类型都被返回为 float 值。Boolean 类型被返回为 "t" 或者 "f"。所有其它类型包括数组都被返回为字符串，该字符串的格式和默认的 PostgreSQL 风格一样，可以在 psql 程序中看到。

pg_fetch_object
pg_fetch_row
PostgreSQL 函数


提取一行作为枚举数组

pg_fetch_result
pg_field_is_null
PostgreSQL 函数
PHP 手册

pg_fetch_row

(PHP 4, PHP 5)

pg_fetch_row — 提取一行作为枚举数组

说明

array pg_fetch_row ( resource $result , int $row )

pg_fetch_row() 根据指定的 result 资源提取一行数据（记录）作为数组返回。每个得到的列依次存放在数组中，从偏移量 0 开始。

返回的数组和提取的行相一致。如果没有更多行可提取，则返回 FALSE。

Example #1 pg_fetch_row() 例子

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

while ($row = pg_fetch_row($result, $i)) {
  for ($j=0; $j < count($row); $j++) {
    echo $row[$j] . "&nbsp;";
  }

  echo "<br />\n";

}
?>

Note: 从 4.1.0 开始，row 成为可选参数。每次调用 pg_fetch_row()，内部的行计数器都会加一。

参见 pg_query()，pg_fetch_array()，pg_fetch_object() 和 pg_fetch_result()。

pg_fetch_result
pg_field_is_null
PostgreSQL 函数


测试字段是否为 NULL

pg_fetch_row
pg_field_name
PostgreSQL 函数
PHP 手册

pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null — 测试字段是否为 NULL

说明

int pg_field_is_null ( resource $result , int $row , mixed $field )

pg_field_is_null() 测试字段是否为 NULL。如果字段在给出的行中为 NULL 则返回 1，如果字段在给出的行中不是 NULL 则返回 0。字段可以以列的索引号（数字）方式给出，也可以以字段名（字符串）方式给出。行的编号从 0 开始。

Example #1 pg_field_is_null() 例子

<?php
    $dbconn = pg_connect("dbname=publisher") or die ("Could not connect");
    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    if ($res) {
        if (pg_field_is_null($res, 0, "year") == 1) {
            echo "The value of the field year is null.\n";
        }
        if (pg_field_is_null($res, 0, "year") == 0) {
            echo "The value of the field year is not null.\n";
      }
   }
?>

Note: 本函数以前的名字为 pg_fieldisnull()。

pg_fetch_row
pg_field_name
PostgreSQL 函数


返回字段的名字

pg_field_is_null
pg_field_num
PostgreSQL 函数
PHP 手册

pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name — 返回字段的名字

说明

string pg_field_name ( resource $result , int $field_number )

pg_field_name() 返回给定 PostgreSQL result 资源中的 field_number 所代表的字段名。字段编号从 0 开始。

Example #1 获取字段信息

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    $i = pg_num_fields($res);
    for ($j = 0; $j < $i; $j++) {
        echo "column $j\n";
        $fieldname = pg_field_name($res, $j);
        echo "fieldname: $fieldname\n";
        echo "printed length: ".pg_field_prtlen($res, $fieldname)." characters\n";
        echo "storage length: ".pg_field_size($res, $j)." bytes\n";
        echo "field type: ".pg_field_type($res, $j)." \n\n";
}
?>

上例的输出如下：

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Note: 本函数以前的名字为 pg_fieldname()。

参见 pg_field_num()。

pg_field_is_null
pg_field_num
PostgreSQL 函数


返回字段的编号

pg_field_name
pg_field_prtlen
PostgreSQL 函数
PHP 手册

pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num — 返回字段的编号

说明

int pg_field_num ( resource $result , string $field_name )

pg_field_num() 返回给定 PostgreSQL result 资源中的 field_name 所代表的列（字段）的编号。字段编号从 0 开始。如果出错本函数返回 -1。

例子参见 pg_field_name() 页。

Note: 本函数以前的名字为 pg_fieldnum()。

参见 pg_field_name()。

pg_field_name
pg_field_prtlen
PostgreSQL 函数


返回打印出来的长度

pg_field_num
pg_field_size
PostgreSQL 函数
PHP 手册

pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen — 返回打印出来的长度

说明

int pg_field_prtlen ( resource $result , int $row_number , string $field_name )

pg_field_prtlen() 返回 PostgreSQL result 中得到的值实际上打印出来的长度（字符数）。行编号从 0 开始。如果出错本函数返回 -1。

例子参见 pg_field_name() 页。

Note: 本函数以前的名字为 pg_field_prtlen()。

参见 pg_field_size()。

pg_field_num
pg_field_size
PostgreSQL 函数


返回指定字段占用内部存储空间的大小

pg_field_prtlen
pg_field_table
PostgreSQL 函数
PHP 手册

pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size — 返回指定字段占用内部存储空间的大小

说明

int pg_field_size ( resource $result , int $field_number )

pg_field_size() 返回 PostgreSQL result 中指定字段占用内部存储空间的大小（字节数）。字段编号从 0 开始。字段大小为 -1 表示可变长度字段。如果出错本函数返回 FALSE。

参考 pg_field_name() 页面中的例子。

Note: 本函数以前的名字为 pg_fieldsize()。

参见 pg_field_prtlen() 和 pg_field_type()。

pg_field_prtlen
pg_field_table
PostgreSQL 函数


Returns the name or oid of the tables field

pg_field_size
pg_field_type_oid
PostgreSQL 函数
PHP 手册

pg_field_table

(PHP 5 >= 5.2.0)

pg_field_table — Returns the name or oid of the tables field

说明

mixed pg_field_table ( resource $result , int $field_number [, bool $oid_only=false ] )

pg_field_table() returns the name of the table that field belongs to, or the table's oid if oid_only is TRUE.

参数

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

oid_only

By default the tables name that field belongs to is returned but if oid_only is set to TRUE, then the oid will instead be returned.

返回值

On success either the fields table name or oid. Or, FALSE on failure.

范例

Example #1 Getting table information about a field

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

上例的输出类似于：

foo
14379580

bool(false)

注释

Note: Returning the oid is much faster than returning the table name because fetching the table name requires a query to the database system table.

参见

  • pg_field_name() - 返回字段的名字
  • pg_field_type() - 返回相应字段的类型名称

pg_field_size
pg_field_type_oid
PostgreSQL 函数


Returns the type ID (OID) for the corresponding field number

pg_field_table
pg_field_type
PostgreSQL 函数
PHP 手册

pg_field_type_oid

(PHP 5 >= 5.1.0)

pg_field_type_oid — Returns the type ID (OID) for the corresponding field number

说明

int pg_field_type_oid ( resource $result , int $field_number )

pg_field_type_oid() returns an integer containing the OID of the base type of the given field_number in the given PostgreSQL result resource.

You can get more information about the field type by querying PostgreSQL's pg_type system table using the OID obtained with this function. The PostgreSQL format_type() function will convert a type OID into an SQL standard type name.

Note: If the field uses a PostgreSQL domain (rather than a basic type), it is the OID of the domain's underlying type that is returned, rather than the OID of the domain itself.

参数

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

返回值

The OID of the field's base type. FALSE is returned on error.

范例

Example #1 Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Assume 'title' is a varchar type
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Title field type OID: ", pg_field_type_oid($res, 0);
?>

上例将输出：

Title field type OID: 1043

参见

  • pg_field_type() - 返回相应字段的类型名称
  • pg_field_prtlen() - 返回打印出来的长度
  • pg_field_name() - 返回字段的名字

pg_field_table
pg_field_type
PostgreSQL 函数


返回相应字段的类型名称

pg_field_type_oid
pg_free_result
PostgreSQL 函数
PHP 手册

pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type — 返回相应字段的类型名称

说明

string pg_field_type ( resource $result , int $field_number )

pg_field_type() 以字符串返回 PostgreSQL result 资源中指定 field_number 字段的类型。字段编号从 0 开始。

参考 pg_field_name() 页面中的例子。

Note: 本函数以前的名字为 pg_fieldtype()。

参见 pg_field_prtlen() 和 pg_field_name()。

pg_field_type_oid
pg_free_result
PostgreSQL 函数


释放查询结果占用的内存

pg_field_type
pg_get_notify
PostgreSQL 函数
PHP 手册

pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result — 释放查询结果占用的内存

说明

bool pg_free_result ( resource $result )

pg_free_result() 仅在当你担心脚本执行时占用了过多内存时调用。脚本执行完毕后所有的查询结果占用的内存都会被自动释放。不过如果你确认在脚本中不会再用到查询结果了，你可以用 result 作为参数调用 pg_free_result() 来释放有关的内存。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数以前的名字为 pg_freeresult()。

参见 pg_query()。

pg_field_type
pg_get_notify
PostgreSQL 函数


Ping 数据库连接

pg_free_result
pg_get_pid
PostgreSQL 函数
PHP 手册

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify — Ping 数据库连接

说明

array pg_get_notify ( resource $connection [, int $result_type ] )

pg_get_notify() 取得 SQL 命令 NOTIFY 发送的通告消息。要接收通告消息，必须发送 SQL 命令 LISTEN。如果连接中有通告消息，则数组包含消息名并且返回后端的 PID。如果没有消息则返回 FALSE。

参见 pg_get_pid()。

Example #1 PostgreSQL NOTIFY 消息

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Listen 'author_updated' message from other processes
pq_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify)
    print("No messages\n");
else
    print_r($notify);
?>

pg_free_result
pg_get_pid
PostgreSQL 函数


Ping 数据库连接

pg_get_notify
pg_get_result
PostgreSQL 函数
PHP 手册

pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid — Ping 数据库连接

说明

int pg_get_pid ( resource $connection )

pg_get_pid() 取得后端（数据库服务器进程）的 PID。PID 用来检查其它进程是否发送了 NOTIFY 消息。

Example #1 PostgreSQL 后端 PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

参见 pg_get_notify()。

pg_get_notify
pg_get_result
PostgreSQL 函数


取得异步查询结果

pg_get_pid
pg_host
PostgreSQL 函数
PHP 手册

pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result — 取得异步查询结果

说明

resource pg_get_result ([ resource $connection ] )

pg_get_result() 取得执行 pg_send_query() 而得到的查询结果资源。pg_send_query() 可以向 PostgreSQL 发送多个查询， pg_get_result() 则用来逐个得到查询结果。返回值为查询结果资源号。如果没有更多查询结果，则返回 FALSE。

pg_get_pid
pg_host
PostgreSQL 函数


返回和某连接关联的主机名

pg_get_result
pg_insert
PostgreSQL 函数
PHP 手册

pg_host

(PHP 4, PHP 5)

pg_host — 返回和某连接关联的主机名

说明

string pg_host ( resource $connection )

pg_host() 返回指定的 PostgreSQL connection 资源号所连接到的主机名称。

参见 pg_connect() 和 pg_pconnect()。

pg_get_result
pg_insert
PostgreSQL 函数


将数组插入到表中

pg_host
pg_last_error
PostgreSQL 函数
PHP 手册

pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert — 将数组插入到表中

说明

bool pg_insert ( resource $connection , string $table_name , array $assoc_array [, int $options ] )

pg_insert() 将 assoc_array 数组中的值插入到由 table_name 指定的表中。table_name 中的列必须至少要有 assoc_array 中的单元那么多。table_name 中的字段名以及字段值必须和 assoc_array 中的键名及值匹配。如果成功则返回 TRUE，失败则返回 FALSE。如果给出了参数 options ，则函数 pg_convert() 会按照给定选项被作用到 assoc_array 上。

Example #1 pg_insert() 例子

<?php
    $db = pg_connect ('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_insert($db, 'post_log', $_POST);
    if ($res) {
        echo "POST data is succesfully logged\n";
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见 pg_convert()。

pg_host
pg_last_error
PostgreSQL 函数


得到某连接的最后一条错误信息

pg_insert
pg_last_notice
PostgreSQL 函数
PHP 手册

pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error — 得到某连接的最后一条错误信息

说明

string pg_last_error ([ resource $connection ] )

pg_last_error() 返回指定连接 connection 的最后一条错误信息。

错误信息可能会被 PostgreSQL(libpq) 的内部函数调用所覆盖。如果 PostgreSQL 的内部模块函数产生了多个错误，则可能不能返回适当的错误信息。

使用 pg_result_error()，pg_result_status() 和 pg_connection_status() 来取得更好的错误处理。

Note: 本函数以前的名字为 pg_errormessage()。

参见 pg_result_error()。

pg_insert
pg_last_notice
PostgreSQL 函数


返回 PostgreSQL 服务器最新一条公告信息

pg_last_error
pg_last_oid
PostgreSQL 函数
PHP 手册

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice — 返回 PostgreSQL 服务器最新一条公告信息

说明

string pg_last_notice ( resource $connection )

pg_last_notice() 返回由 connection 指定的 PostgreSQL 服务器最新的一条公告信息。PostgreSQL 服务器在某些情况下会发送公告信息，例如如果不能继续进行某事务时。有了 pg_last_notice()，只要检查公告是否和该事务有关，就可以避免提交无用的查询。

Warning

本函数为试验性质，并且还没有完全实现。pg_last_notice() 是 PHP 4.0.6 新增的，但是 PHP 4.0.6 本身在公告信息处理上有问题。即使不使用 pg_last_notice() 函数，也不推荐在 PHP 4.0.6 中使用 PostgreSQL 模块。

本函数在 PHP 4.3.0 中完全实现。低于 PHP 4.3.0 的版本中都忽略了数据库连接参数。

在 PHP 4.3.0 中可以通过在 php.ini 中把 pgsql.ignore_notice 置为 1 来使公告信息追踪成为可选项。

在 PHP 4.3.0 中可以通过在 php.ini 中把 pgsql.log_notice 置为 0 来使公告信息日志成为可选项。除非 pgsql.ignore_notice 为 0，否则公告信息不能被日志记录。

参见 pg_query() 和 pg_last_error()。

pg_last_error
pg_last_oid
PostgreSQL 函数


返回上一个对象的 oid

pg_last_notice
pg_lo_close
PostgreSQL 函数
PHP 手册

pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid — 返回上一个对象的 oid

说明

int pg_last_oid ( resource $result )

pg_last_oid() 在上一条通过 pg_query() 发送的命令是 SQL INSERT 的情况下用来取得分配给所插入记录的 oid。如果存在有效的 oid 则返回一个正整数，如果出错或者上一条通过 pg_query() 发送的命令不是 INSERT 或者该 INSERT 失败则返回 FALSE。

从 PostgreSQL 7.2 版开始 OID 字段成为可选项。如果一个表中没有定义 OID 字段，程序员必须用 pg_result_status() 函数来检查记录是否被成功插入。

Note: 本函数以前的名字为 pg_getlastoid()。

参见 pg_query() 和 pg_result_status()。

pg_last_notice
pg_lo_close
PostgreSQL 函数


关闭一个大型对象

pg_last_oid
pg_lo_create
PostgreSQL 函数
PHP 手册

pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close — 关闭一个大型对象

说明

bool pg_lo_close ( resource $large_object )

pg_lo_close() 关闭一个大型对象。参数 large_object 是 pg_lo_open() 函数所返回的资源号。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_loclose()。

参见 pg_lo_open()，pg_lo_create() 和 pg_lo_import()。

pg_last_oid
pg_lo_create
PostgreSQL 函数


新建一个大型对象

pg_lo_close
pg_lo_export
PostgreSQL 函数
PHP 手册

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create — 新建一个大型对象

说明

int pg_lo_create ( resource $connection )

pg_lo_create() 新建一个大型对象并返回该大型对象的 oid。connection 指定了由 pg_connect() 或 pg_pconnect() 打开的有效的数据库连接号。不支持 PostgreSQL 访问模式 INV_READ，INV_WRITE 和 INV_ARCHIVE，该对象总是以读写方式访问。INV_ARCHIVE 已经从 PostgreSQL 中删除了（6.3 及以上版本）。本函数返回大型对象的 oid，如果出错则返回 FALSE。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_locreate()。

pg_lo_close
pg_lo_export
PostgreSQL 函数


将大型对象导出到文件

pg_lo_create
pg_lo_import
PostgreSQL 函数
PHP 手册

pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export — 将大型对象导出到文件

说明

bool pg_lo_export ( int $oid , string $pathname [, resource $connection ] )

oid 参数指定了要导出的大型对象的 oid，pathname 参数则指明了文件名。如果成功则返回 TRUE，失败则返回 FALSE。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_loexport()。

参见 pg_lo_import()。

pg_lo_create
pg_lo_import
PostgreSQL 函数


将文件导入为大型对象

pg_lo_export
pg_lo_open
PostgreSQL 函数
PHP 手册

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import — 将文件导入为大型对象

说明

int pg_lo_import ([ resource $connection ], string $pathname )

在 PHP 4.2.0 版本之前，本函数语法不一样，见如下定义：

int pg_lo_import ( string $pathname [, resource $connection ] )

pathname 变量指明了要导入为大型对象的文件名。导入成功则返回新建的大型对象的 oid，如果出错则返回 FALSE。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

Note: 本函数以前的名字为 pg_loimport()。

参见 pg_lo_export() 和 pg_lo_open()。

pg_lo_export
pg_lo_open
PostgreSQL 函数


打开一个大型对象

pg_lo_import
pg_lo_read_all
PostgreSQL 函数
PHP 手册

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open — 打开一个大型对象

说明

resource pg_lo_open ( resource $connection , int $oid , string $mode )

pg_lo_open() 打开一个大型对象并返回大型对象资源号。该资源号内封装了连接号。oid 指定了有效的大型对象的 oid，mode 可以为 "r"，"w" 或者 "rw"。如果失败则返回 FALSE。

Warning

在关闭大型对象资源之前不要关闭数据库连接。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_loopen()。

参见 pg_lo_close() 和 pg_lo_create()。

pg_lo_import
pg_lo_read_all
PostgreSQL 函数


读入整个大型对象并直接发送给浏览器

pg_lo_open
pg_lo_read
PostgreSQL 函数
PHP 手册

pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all — 读入整个大型对象并直接发送给浏览器

说明

int pg_lo_read_all ( resource $large_object )

pg_lo_read_all() 读入一个大型对象并在（PHP）发送完所有待发的 header 之后将其直接发送给浏览器。主要目的是发送图片或声音等二进制数据。返回值为读入的字节数，如果出错则返回 FALSE。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_loreadall()。

参见 pg_lo_read()。

pg_lo_open
pg_lo_read
PostgreSQL 函数


从大型对象中读入数据

pg_lo_read_all
pg_lo_seek
PostgreSQL 函数
PHP 手册

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read — 从大型对象中读入数据

说明

string pg_lo_read ( resource $large_object , int $len )

pg_lo_read() 从大型对象中读入最多 len 字节的数据并以字符串返回。large_object 指定了有效的大型对象的资源号，len 则指定了大型对象的段所允许的最大长度。如果出错则返回 FALSE。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_loread()。

参见 pg_lo_read_all()。

pg_lo_read_all
pg_lo_seek
PostgreSQL 函数


移动大型对象中的指针

pg_lo_read
pg_lo_tell
PostgreSQL 函数
PHP 手册

pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek — 移动大型对象中的指针

说明

bool pg_lo_seek ( resource $large_object , int $offset [, int $whence ] )

pg_lo_seek() 在大型对象资源中移动指针位置。whence 参数为 PGSQL_SEEK_SET，PGSQL_SEEK_CUR 或 PGSQL_SEEK_END。

参见 pg_lo_tell()。

pg_lo_read
pg_lo_tell
PostgreSQL 函数


返回大型对象的当前指针位置

pg_lo_seek
pg_lo_unlink
PostgreSQL 函数
PHP 手册

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell — 返回大型对象的当前指针位置

说明

int pg_lo_tell ( resource $large_object )

pg_lo_tell() 返回当前指针位置（大型对象中从头开始的偏移量）。

参见 pg_lo_seek()。

pg_lo_seek
pg_lo_unlink
PostgreSQL 函数


删除一个大型对象

pg_lo_tell
pg_lo_write
PostgreSQL 函数
PHP 手册

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_unlink — 删除一个大型对象

说明

bool pg_lo_unlink ( resource $connection , int $oid )

pg_lo_unlink() 删除由 oid 指定的大型对象。如果成功则返回 TRUE，失败则返回 FALSE。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_lo_unlink()。

参见 pg_lo_create() 和 pg_lo_import()。

pg_lo_tell
pg_lo_write
PostgreSQL 函数


向大型对象写入数据

pg_lo_unlink
pg_meta_data
PostgreSQL 函数
PHP 手册

pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_write — 向大型对象写入数据

说明

int pg_lo_write ( resource $large_object , string $data )

pg_lo_write() 把 data 参数中的数据尽可能多地写入大型对象并返回实际写入的字节数。如果出错则返回 FALSE。large_object 参数是 pg_lo_open() 函数所返回的大型对象资源号。

要使用大型对象（lo）接口，需要将其放置在事务块中。

Note: 本函数以前的名字为 pg_lo_write()。

参见 pg_lo_create() 和 pg_lo_open()。

pg_lo_unlink
pg_meta_data
PostgreSQL 函数


获得表的元数据

pg_lo_write
pg_num_fields
PostgreSQL 函数
PHP 手册

pg_meta_data

(PHP 4 >= 4.3.0, PHP 5)

pg_meta_data — 获得表的元数据

说明

array pg_meta_data ( resource $connection , string $table_name )

pg_metadata() 以数组形式返回 table_name 表的定义。如果出错则返回 FALSE。

Example #1 取得表的元数据

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $meta = pg_meta_data($dbconn,'authors');
    if (is_array ($meta)) {
        echo '<pre>';
        var_dump ($meta);
        echo '</pre>';
    }
?>

上例输出如下：

array(3) {
  ["author"]=>
  array(5) {
    ["num"]=>
    int(1)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["year"]=>
  array(5) {
    ["num"]=>
    int(2)
    ["type"]=>
    string(4) "int2"
    ["len"]=>
    int(2)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["title"]=>
  array(5) {
    ["num"]=>
    int(3)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
}

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见 pg_convert()。

pg_lo_write
pg_num_fields
PostgreSQL 函数


返回字段的数目

pg_meta_data
pg_num_rows
PostgreSQL 函数
PHP 手册

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields — 返回字段的数目

说明

int pg_num_fields ( resource $result )

pg_num_fields() 返回 PostgreSQL result 中的字段（列）数目。参数是由 pg_query() 函数返回的查询结果资源号。如果出错则返回 -1。

Note: 本函数以前的名字为 pg_numfields()。

参见 pg_num_rows() 和 pg_affected_rows()。

pg_meta_data
pg_num_rows
PostgreSQL 函数


返回行的数目

pg_num_fields
pg_options
PostgreSQL 函数
PHP 手册

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows — 返回行的数目

说明

int pg_num_rows ( resource $result )

pg_num_rows() 返回 PostgreSQL result 中的行的数目。result 参数是由 pg_query() 函数返回的查询结果资源号。如果出错则返回 -1。

Note: 用 pg_affected_rows() 函数获得被 INSERT，UPDATE 和 DELETE 命令影响到的行的数目。

Note: 本函数以前的名字为 pg_numrows()。

参见 pg_num_fields() 和 pg_affected_rows()。

pg_num_fields
pg_options
PostgreSQL 函数


获得和连接有关的选项

pg_num_rows
pg_parameter_status
PostgreSQL 函数
PHP 手册

pg_options

(PHP 4, PHP 5)

pg_options — 获得和连接有关的选项

说明

string pg_options ( resource $connection )

pg_options() 以字符串形式返回指定 PostgreSQL connection 资源的连接选项。

pg_num_rows
pg_parameter_status
PostgreSQL 函数


Looks up a current parameter setting of the server.

pg_options
pg_pconnect
PostgreSQL 函数
PHP 手册

pg_parameter_status

(PHP 5)

pg_parameter_status — Looks up a current parameter setting of the server.

说明

string pg_parameter_status ([ resource $connection ], string $param_name )

Looks up a current parameter setting of the server.

Certain parameter values are reported by the server automatically at connection startup or whenever their values change. pg_parameter_status() can be used to interrogate these settings. It returns the current value of a parameter if known, or FALSE if the parameter is not known.

Parameters reported as of PostgreSQL 8.0 include server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, and integer_datetimes. (server_encoding, TimeZone, and integer_datetimes were not reported by releases before 8.0.) Note that server_version, server_encoding and integer_datetimes cannot change after PostgreSQL startup.

PostgreSQL 7.3 or lower servers do not report parameter settings, pg_parameter_status() includes logic to obtain values for server_version and client_encoding anyway. Applications are encouraged to use pg_parameter_status() rather than ad hoc code to determine these values.

Caution

On a pre-7.4 PostgreSQL server, changing client_encoding via SET after connection startup will not be reflected by pg_parameter_status().

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

param_name

Possible param_name values include server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, and integer_datetimes.

返回值

A string containing the value of the parameter, FALSE on failure or invalid param_name .

范例

Example #1 pg_parameter_status() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  echo "Server encoding: ", pg_parameter_status($dbconn, "server_encoding");
?>

上例将输出：

Server encoding: SQL_ASCII

pg_options
pg_pconnect
PostgreSQL 函数


打开一个持久的 PostgreSQL 连接

pg_parameter_status
pg_ping
PostgreSQL 函数
PHP 手册

pg_pconnect

(PHP 4, PHP 5)

pg_pconnect — 打开一个持久的 PostgreSQL 连接

说明

resource pg_pconnect ( string $connection_string )

pg_pconnect() 打开一个到 PostgreSQL 数据库的持久连接。返回其它 PostgreSQL 函数所需要的连接资源号。

connection_string 参数的定义见 pg_connect()。

要打开持久连接功能，php.ini 中的 pgsql.allow_persistent 参数必须为 "On"（也是默认值）。 最大持久连接数目由 php.ini 中的 pgsql.max_persistent 参数定义（默认为 -1 表示没有限制）。所有连接的数目可由 php.ini 中的 pgsql.max_links 参数设置。

pg_close() 不能关闭由 pg_pconnect() 打开的持久连接。

参见 pg_connect() 以及持久数据库连接。

pg_parameter_status
pg_ping
PostgreSQL 函数


Ping 数据库连接

pg_pconnect
pg_port
PostgreSQL 函数
PHP 手册

pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping — Ping 数据库连接

说明

bool pg_ping ( resource $connection )

pg_ping() ping 数据库连接，如果中断则尝试重新连接。如果连接在活动状态返回 TRUE，否则返回 FALSE。

Example #1 pg_ping()

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

if (!pg_ping($conn))
    die("Connection is broken\n");
?>

参见 pg_connection_status() 和 pg_connection_reset()。

pg_pconnect
pg_port
PostgreSQL 函数


返回该连接的端口号

pg_ping
pg_prepare
PostgreSQL 函数
PHP 手册

pg_port

(PHP 4, PHP 5)

pg_port — 返回该连接的端口号

说明

int pg_port ( resource $connection )

pg_port() 返回给定的 PostgreSQL connection 资源所连接的端口号。

pg_ping
pg_prepare
PostgreSQL 函数


Submits a request to create a prepared statement with the given parameters, and waits for completion.

pg_port
pg_put_line
PostgreSQL 函数
PHP 手册

pg_prepare

(PHP 5 >= 5.1.0)

pg_prepare — Submits a request to create a prepared statement with the given parameters, and waits for completion.

说明

resource pg_prepare ([ resource $connection ], string $stmtname , string $query )

pg_prepare() creates a prepared statement for later execution with pg_execute() or pg_send_execute(). This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed. pg_prepare() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

The function creates a prepared statement named stmtname from the query string, which must contain a single SQL command. stmtname may be "" to create an unnamed statement, in which case any pre-existing unnamed statement is automatically replaced; otherwise it is an error if the statement name is already defined in the current session. If any parameters are used, they are referred to in the query as $1, $2, etc.

Prepared statements for use with pg_prepare() can also be created by executing SQL PREPARE statements. (But pg_prepare() is more flexible since it does not require parameter types to be pre-specified.) Also, although there is no PHP function for deleting a prepared statement, the SQL DEALLOCATE statement can be used for that purpose.

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name to give the prepared statement. Must be unique per-connection. If "" is specified, then an unnamed statement is created, overwriting any previously defined unnamed statement.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

返回值

A query result resource on success, or FALSE on failure.

范例

Example #1 Using pg_prepare()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

参见

  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result.
  • pg_send_execute() - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

pg_port
pg_put_line
PostgreSQL 函数


向 PostgreSQL 后端发送以 NULL 结尾的字符串

pg_prepare
pg_query_params
PostgreSQL 函数
PHP 手册

pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line — 向 PostgreSQL 后端发送以 NULL 结尾的字符串

说明

bool pg_put_line ([ resource $connection ], string $data )

pg_put_line() 向 PostgreSQL 后端服务器发送以 NULL 结尾的字符串。例如可以通过 PostgreSQL 的 copy 操作来向表中高速插入数据。结尾的 NULL 字符会自动加入。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 应用程序必须明确地在最后一行发送两个字符 "\." 来向后端指明发送数据结束。

Example #1 向表中高速插入数据

<?php
    $conn = pg_pconnect ("dbname=foo");
    pg_query($conn, "create table bar (a int4, b char(16), d float8)");
    pg_query($conn, "copy bar from stdin");
    pg_put_line($conn, "3\thello world\t4.5\n");
    pg_put_line($conn, "4\tgoodbye world\t7.11\n");
    pg_put_line($conn, "\\.\n");
    pg_end_copy($conn);
?>

pg_prepare
pg_query_params
PostgreSQL 函数


Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

pg_put_line
pg_query
PostgreSQL 函数
PHP 手册

pg_query_params

(PHP 5 >= 5.1.0)

pg_query_params — Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

说明

resource pg_query_params ([ resource $connection ], string $query , array $params )

Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

pg_query_params() is like pg_query(), but offers additional functionality: parameter values can be specified separately from the command string proper. pg_query_params() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

If parameters are used, they are referred to in the query string as $1, $2, etc. params specifies the actual values of the parameters. A NULL value in this array means the corresponding parameter is SQL NULL.

The primary advantage of pg_query_params() over pg_query() is that parameter values may be separated from the query string, thus avoiding the need for tedious and error-prone quoting and escaping. Unlike pg_query(), pg_query_params() allows at most one SQL command in the given string. (There can be semicolons in it, but not more than one nonempty command.)

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

返回值

A query result resource on success, or FALSE on failure.

范例

Example #1 Using pg_query_params()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Find all shops named Joe's Widgets.  Note that it is not necessary to
// escape "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Compare against just using pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

参见

  • pg_query() - 执行查询

pg_put_line
pg_query
PostgreSQL 函数


执行查询

pg_query_params
pg_result_error_field
PostgreSQL 函数
PHP 手册

pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query — 执行查询

说明

resource pg_query ( resource $connection , string $query )

pg_query() 在查询可以执行时返回查询结果资源号。如果查询失败或者提供的连接号无效则返回 FALSE。如果连接号有效，则可以用 pg_last_error() 函数来提取详细的错误信息。pg_query() 发送一条 SQL 语句到 connection 资源指定的 PostgreSQL 数据库。connection 必须是由 pg_connect() 或 pg_pconnect() 返回的合法连接号。本函数返回值是一个其它 PostgreSQL 函数例如 pg_fetch_array() 可以用来访问查询结果的查询结果资源号。

Note: connection 是 pg_query() 中的可选参数。如果没有指定 connection ，则使用默认连接。默认连接是 pg_connect() 或 pg_pconnect() 所打开的最后一个连接。 尽管 connection 参数可以省略，但不推荐这样做。因为这样可能会导致很难发现脚本中的错误。

Note: 本函数以前的名字为 pg_exec()。pg_exec() 函数为了兼容性的原因仍然可以使用，但是鼓励用户使用新的名字。

参见 pg_connect()，pg_pconnect()，pg_fetch_array()，pg_fetch_object()，pg_num_rows() 和 pg_affected_rows()。

pg_query_params
pg_result_error_field
PostgreSQL 函数


Returns an individual field of an error report.

pg_query
pg_result_error
PostgreSQL 函数
PHP 手册

pg_result_error_field

(PHP 5 >= 5.1.0)

pg_result_error_field — Returns an individual field of an error report.

说明

string pg_result_error_field ( resource $result , int $fieldcode )

pg_result_error_field() returns one of the detailed error message fields associated with result resource. It is only available against a PostgreSQL 7.4 or above server. The error field is specified by the fieldcode .

Because pg_query() and pg_query_params() return FALSE if the query fails, you must use pg_send_query() and pg_get_result() to get the result handle.

If you need to get additional error information from failed pg_query() queries, use pg_set_error_verbosity() and pg_last_error() and then parse the result.

参数

result

A PostgreSQL query result resource from a previously executed statement.

fieldcode

Possible fieldcode values are: PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ only), PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ only), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE or PGSQL_DIAG_SOURCE_FUNCTION.

返回值

A string containing the contents of the error field, NULL if the field does not exist or FALSE on failure.

范例

Example #1 pg_result_error_field() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

参见

  • pg_result_error() - 获得查询结果的错误信息

pg_query
pg_result_error
PostgreSQL 函数


获得查询结果的错误信息

pg_result_error_field
pg_result_seek
PostgreSQL 函数
PHP 手册

pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error — 获得查询结果的错误信息

说明

string pg_result_error ( resource $result )

pg_result_error() 返回和 result 资源关联的错误信息。因此用户更有机会可以得到比 pg_last_error() 更好的错误信息。

参见 pg_query()，pg_send_query()，pg_get_result()，pg_last_error() 和 pg_last_notice()。

pg_result_error_field
pg_result_seek
PostgreSQL 函数


在结果资源中设定内部行偏移量

pg_result_error
pg_result_status
PostgreSQL 函数
PHP 手册

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek — 在结果资源中设定内部行偏移量

说明

array pg_result_seek ( resource $result , int $offset )

pg_result_seek() 在结果资源中设定内部行偏移量。如果出错则返回 FALSE。

参见 pg_fetch_row()，pg_fetch_assoc()，pg_fetch_array()，pg_fetch_object() 和 pg_fetch_result()。

pg_result_error
pg_result_status
PostgreSQL 函数


获得查询结果的状态

pg_result_seek
pg_select
PostgreSQL 函数
PHP 手册

pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_status — 获得查询结果的状态

说明

int pg_result_status ( resource $result )

pg_result_status() 返回该查询结果资源的状态。可能的返回值有 PGSQL_EMPTY_QUERY，PGSQL_COMMAND_OK，PGSQL_TUPLES_OK，PGSQL_COPY_TO，PGSQL_COPY_FROM，PGSQL_BAD_RESPONSE，PGSQL_NONFATAL_ERROR 和 PGSQL_FATAL_ERROR。

参见 pg_connection_status()。

pg_result_seek
pg_select
PostgreSQL 函数


选择记录

pg_result_status
pg_send_execute
PostgreSQL 函数
PHP 手册

pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select — 选择记录

说明

array pg_select ( resource $connection , string $table_name , array $assoc_array [, int $options ] )

pg_select() 根据 assoc_array 数组中的 field=>value 值来选择记录。成功的查询返回和 assoc_array 指定的条件相匹配的包括记录和字段的数组。如果指定了 options，pg_convert() 会按照指定选项作用于 assoc_array 之上。

Example #1 pg_select

<?php
    $db = pg_connect ('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $rec = pg_select($db, 'post_log', $_POST);
    if ($rec) {
        echo "Records selected\n";
        var_dump($rec);
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见 pg_convert()。

pg_result_status
pg_send_execute
PostgreSQL 函数


Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

pg_select
pg_send_prepare
PostgreSQL 函数
PHP 手册

pg_send_execute

(PHP 5 >= 5.1.0)

pg_send_execute — Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

说明

bool pg_send_execute ( resource $connection , string $stmtname , array $params )

Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

This is similar to pg_send_query_params(), but the command to be executed is specified by naming a previously-prepared statement, instead of giving a query string. The function's parameters are handled identically to pg_execute(). Like pg_execute(), it will not work on pre-7.4 versions of PostgreSQL.

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name of the prepared statement to execute. if "" is specified, then the unnamed statement is executed. The name must have been previously prepared using pg_prepare(), pg_send_prepare() or a PREPARE SQL command.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

返回值

Returns TRUE on success, FALSE on failure. Use pg_get_result() to determine the query result.

范例

Example #1 Using pg_send_execute()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Prepare a query for execution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Execute the prepared query.  Note that it is not necessary to escape
  // the string "Joe's Widgets" in any way
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Execute the same prepared query, this time with a different parameter
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

参见

  • pg_prepare() - Submits a request to create a prepared statement with the given parameters, and waits for completion.
  • pg_send_prepare() - Sends a request to create a prepared statement with the given parameters, without waiting for completion.
  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result.

pg_select
pg_send_prepare
PostgreSQL 函数


Sends a request to create a prepared statement with the given parameters, without waiting for completion.

pg_send_execute
pg_send_query_params
PostgreSQL 函数
PHP 手册

pg_send_prepare

(PHP 5 >= 5.1.0)

pg_send_prepare — Sends a request to create a prepared statement with the given parameters, without waiting for completion.

说明

bool pg_send_prepare ( resource $connection , string $stmtname , string $query )

Sends a request to create a prepared statement with the given parameters, without waiting for completion.

This is an asynchronous version of pg_prepare(): it returns TRUE if it was able to dispatch the request, and FALSE if not. After a successful call, call pg_get_result() to determine whether the server successfully created the prepared statement. The function's parameters are handled identically to pg_prepare(). Like pg_prepare(), it will not work on pre-7.4 versions of PostgreSQL.

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name to give the prepared statement. Must be unique per-connection. If "" is specified, then an unnamed statement is created, overwriting any previously defined unnamed statement.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

返回值

Returns TRUE on success, FALSE on failure. Use pg_get_result() to determine the query result.

范例

Example #1 Using pg_send_prepare()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Prepare a query for execution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Execute the prepared query.  Note that it is not necessary to escape
  // the string "Joe's Widgets" in any way
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Execute the same prepared query, this time with a different parameter
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

参见

  • pg_connect() - 打开一个 PostgreSQL 连接
  • pg_pconnect() - 打开一个持久的 PostgreSQL 连接
  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result.
  • pg_send_execute() - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).
  • pg_send_query_params() - Submits a command and separate parameters to the server without waiting for the result(s).

pg_send_execute
pg_send_query_params
PostgreSQL 函数


Submits a command and separate parameters to the server without waiting for the result(s).

pg_send_prepare
pg_send_query
PostgreSQL 函数
PHP 手册

pg_send_query_params

(PHP 5 >= 5.1.0)

pg_send_query_params — Submits a command and separate parameters to the server without waiting for the result(s).

说明

bool pg_send_query_params ( resource $connection , string $query , array $params )

Submits a command and separate parameters to the server without waiting for the result(s).

This is equivalent to pg_send_query() except that query parameters can be specified separately from the query string. The function's parameters are handled identically to pg_query_params(). Like pg_query_params(), it will not work on pre-7.4 PostgreSQL connections, and it allows only one command in the query string.

参数

connection

PostgreSQL database connection resource.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Use pg_get_result() to determine the query result.

范例

Example #1 Using pg_send_query_params()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Using parameters.  Note that it is not necessary to quote or escape
  // the parameter.
  pg_send_query_params($dbconn, 'select count(*) from authors where city = $1', array('Perth'));

  // Compare against basic pg_send_query usage
  $str = pg_escape_string('Perth');
  pg_send_query($dbconn, "select count(*) from authors where city = '${str}'");
?>

参见

  • pg_send_query() - 发送异步查询

pg_send_prepare
pg_send_query
PostgreSQL 函数


发送异步查询

pg_send_query_params
pg_set_client_encoding
PostgreSQL 函数
PHP 手册

pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query — 发送异步查询

说明

bool pg_send_query ( resource $connection , string $query )
bool pg_send_query ( string $query )

pg_send_query() 向 connection

连接发送异步查询。和 pg_query() 不同，它可以向 PostgreSQL
发送多个查询并用 pg_get_result()
依次得到结果。当执行查询时脚本的执行不会被锁定。用
pg_connection_busy() 来检查连接连接是否为忙（即查询正在执行中）。调用
pg_cancel_query() 则有可能取消查询。

尽管用户可以一次发送多个查询，但用户不能通过正忙的连接发送多个查询。如果向正忙的连接发送了查询，则会等待上一条查询结束并丢弃所有结果。

Example #1 异步查询

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    if (!pg_connection_busy($dbconn)) {
        pg_send_query($dbconn,"select * from authors; select count(*) from authors;");
    }
    $res1 = pg_get_result($dbconn);
    echo "First call to pg_get_result(): $res1\n";
    $rows1 = pg_num_rows($res1);
    echo "$res1 has $rows1 records\n\n";
    $res2 = pg_get_result($dbconn);
    echo "second call to pg_get_result(): $res2\n";
    $rows2 = pg_num_rows($res2);
    echo "$res2 has $rows2 records\n";
?>

上例输出如下：

first call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records

参见 pg_query()，pg_cancel_query()，pg_get_result() 和 pg_connection_busy()。

pg_send_query_params
pg_set_client_encoding
PostgreSQL 函数


设定客户端编码

pg_send_query
pg_set_error_verbosity
PostgreSQL 函数
PHP 手册

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding — 设定客户端编码

说明

int pg_set_client_encoding ([ resource $connection ], string $encoding )

pg_set_client_encoding() 设定客户端编码方式，成功返回 0，出错返回 -1。

encoding 是客户端的编码方式，可以为：SQL_ASCII，EUC_JP，EUC_CN，EUC_KR，EUC_TW，UNICODE，MULE_INTERNAL，LATINX (X=1...9)，KOI8，WIN，ALT，SJIS，BIG5，WIN1250。可用的编码取决于 PostgreSQL 和 libpq 的版本。参考 PostgreSQL 手册查看你的 PostgreSQL 所支持的编码方式。

Note: 本函数需要 PHP 4.0.3 或以上版本以及 PostgreSQL 7.0 或以上版本。所支持的编码方式取决于 PostgreSQL 的版本，详情参考 PostgreSQL 手册。
本函数以前的名字为 pg_setclientencoding()。

参见 pg_client_encoding()。

pg_send_query
pg_set_error_verbosity
PostgreSQL 函数


Determines the verbosity of messages returned by pg_last_error and pg_result_error.

pg_set_client_encoding
pg_trace
PostgreSQL 函数
PHP 手册

pg_set_error_verbosity

(PHP 5 >= 5.1.0)

pg_set_error_verbosity — Determines the verbosity of messages returned by pg_last_error() and pg_result_error().

说明

int pg_set_error_verbosity ([ resource $connection ], int $verbosity )

Determines the verbosity of messages returned by pg_last_error() and pg_result_error().

pg_set_error_verbosity() sets the verbosity mode, returning the connection's previous setting. In PGSQL_ERRORS_TERSE mode, returned messages include severity, primary text, and position only; this will normally fit on a single line. The default mode (PGSQL_ERRORS_DEFAULT) produces messages that include the above plus any detail, hint, or context fields (these may span multiple lines). The PGSQL_ERRORS_VERBOSE mode includes all available fields. Changing the verbosity does not affect the messages available from already-existing result objects, only subsequently-created ones.

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

verbosity

The required verbosity: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT or PGSQL_ERRORS_VERBOSE.

返回值

The previous verbosity level: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT or PGSQL_ERRORS_VERBOSE.

范例

Example #1 pg_set_error_verbosity() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

参见

  • pg_last_error() - 得到某连接的最后一条错误信息
  • pg_result_error() - 获得查询结果的错误信息

pg_set_client_encoding
pg_trace
PostgreSQL 函数


启动一个 PostgreSQL 连接的追踪功能

pg_set_error_verbosity
pg_transaction_status
PostgreSQL 函数
PHP 手册

pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace — 启动一个 PostgreSQL 连接的追踪功能

说明

bool pg_trace ( string $pathname [, string $mode [, resource $connection ]] )

pg_trace() 启动 PostgreSQL 前端／后端通讯的追踪并记录到 pathname 指定的文件中。要完全理解结果，用户需要熟悉 PostgreSQL 通讯协议的本质。对不熟悉的用户来说，追踪发送到服务器的查询错误依然有用，例如可以用 grep '^To backend' trace.log 来查看哪些查询实际上被发送到了 PostgreSQL 服务器。更多信息参考 PostgreSQL 手册。

参数 pathname 和 mode 和 fopen()(mode 默认为 'w') 中的一样。connection 指定了要追踪的连接，默认为上一个打开的连接。

如果 pathname 可以作为日志文件打开，则 pg_trace() 返回 TRUE，否则返回 FALSE。

参见 fopen() 和 pg_untrace()。

pg_set_error_verbosity
pg_transaction_status
PostgreSQL 函数


Returns the current in-transaction status of the server.

pg_trace
pg_tty
PostgreSQL 函数
PHP 手册

pg_transaction_status

(PHP 5 >= 5.1.0)

pg_transaction_status — Returns the current in-transaction status of the server.

说明

int pg_transaction_status ( resource $connection )

Returns the current in-transaction status of the server.

Caution

pg_transaction_status() will give incorrect results when using a PostgreSQL 7.3 server that has the parameter autocommit set to off. The server-side autocommit feature has been deprecated and does not exist in later server versions.

参数

connection

PostgreSQL database connection resource.

返回值

The status can be PGSQL_TRANSACTION_IDLE (currently idle), PGSQL_TRANSACTION_ACTIVE (a command is in progress), PGSQL_TRANSACTION_INTRANS (idle, in a valid transaction block), or PGSQL_TRANSACTION_INERROR (idle, in a failed transaction block). PGSQL_TRANSACTION_UNKNOWN is reported if the connection is bad. PGSQL_TRANSACTION_ACTIVE is reported only when a query has been sent to the server and not yet completed.

范例

Example #1 pg_transaction_status() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Connection is bad';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Connection is currently idle';
  } else {
      echo 'Connection is in a transaction state';
  }
?>

pg_trace
pg_tty
PostgreSQL 函数


返回该连接的 tty 号

pg_transaction_status
pg_unescape_bytea
PostgreSQL 函数
PHP 手册

pg_tty

(PHP 4, PHP 5)

pg_tty — 返回该连接的 tty 号

说明

string pg_tty ( resource $connection )

pg_tty() 返回指定 PostgreSQL connection 资源在服务器端输出调试信息的 tty 号。

pg_transaction_status
pg_unescape_bytea
PostgreSQL 函数


取消 bytea 类型中的字符串转义

pg_tty
pg_untrace
PostgreSQL 函数
PHP 手册

pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea — 取消 bytea 类型中的字符串转义

说明

string pg_unescape_bytea ( string $data )

pg_unescape_bytea() 将 bytea 数据类型中的字符串取消转义。返回未转义的字符串（二进制）。

Note: 当 SELECT bytea 类型，PostgreSQL 返回用 \ 前导的八进制字节值（例如 \032）。用户需要自行将其转换回二进制格式。
本函数需要 PostgreSQL 7.2 或更新版本。在 PostgreSQL 7.2.0 和 7.2.1 中，当激活了多字节支持时必须强制转换为 bytea 类型，例如 INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);。PostgreSQL 7.2.2 或更新版本不需要强制转换。例外是当客户端和后端的字符编码不匹配时，有可能出现多字节流错误。用户必须强制转换为 bytea 来避免此错误。

参见 pg_escape_bytea() 和 pg_escape_string()。

pg_tty
pg_untrace
PostgreSQL 函数


关闭 PostgreSQL 连接的追踪功能

pg_unescape_bytea
pg_update
PostgreSQL 函数
PHP 手册

pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace — 关闭 PostgreSQL 连接的追踪功能

说明

bool pg_untrace ([ resource $connection ] )

停止由 pg_trace() 启动的追踪功能。connection 指定了被追踪的连接号，默认为上一个打开的连接。

本函数总是返回 TRUE。

参见 pg_trace()。

pg_unescape_bytea
pg_update
PostgreSQL 函数


更新表

pg_untrace
pg_version
PostgreSQL 函数
PHP 手册

pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update — 更新表

说明

mixed pg_update ( resource $connection , string $table_name , array $data , array $condition [, int $options ] )

pg_update() 用 condition 作为条件查询数据库，用 data 中的数据更新符合条件的记录。如果指定了 options，则 pg_convert() 会按照指定选项作用到 data 上。

Example #1 pg_update

<?php
    $db = pg_connect ('dbname=foo');
    $data = array('field1'=>'AA', 'field2'=>'BB');
    // This is safe, since $_POST is converted automatically
    $res = pg_update($db, 'post_log', $_POST, $data);
    if ($res) {
        echo "Data is updated: $res\n";
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见 pg_convert()。

pg_untrace
pg_version
PostgreSQL 函数


Returns an array with client, protocol and server version (when available)

pg_update
SQLite
PostgreSQL 函数
PHP 手册

pg_version

(PHP 5)

pg_version — Returns an array with client, protocol and server version (when available)

说明

array pg_version ([ resource $connection ] )

pg_version() returns an array with the client, protocol and server version. Protocol and server versions are only available if PHP was compiled with PostgreSQL 7.4 or later.

For more detailed server information, use pg_parameter_status().

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

返回值

Returns an array with client, protocol and server_version keys and values (if available). Returns FALSE on error or invalid connection.

范例

Example #1 pg_version() example

<?php
  $dbconn = pg_connect("host=localhost port=5432 dbname=mary")
     or die("Could not connect");

  $v = pg_version($dbconn);

  echo $v['client'];
?>

上例将输出：

7.4

参见

  • pg_parameter_status() - Looks up a current parameter setting of the server.

pg_update
SQLite
PostgreSQL 函数


SQLite

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SQLite 函数
    • sqlite_array_query — Execute a query against a given database and returns an array
    • sqlite_busy_timeout — Set busy timeout duration, or disable busy handlers
    • sqlite_changes — Returns the number of rows that were changed by the most recent SQL statement
    • sqlite_close — Closes an open SQLite database
    • sqlite_column — Fetches a column from the current row of a result set
    • sqlite_create_aggregate — Register an aggregating UDF for use in SQL statements
    • sqlite_create_function — Registers a "regular" User Defined Function for use in SQL statements
    • sqlite_current — Fetches the current row from a result set as an array
    • sqlite_error_string — Returns the textual description of an error code
    • sqlite_escape_string — Escapes a string for use as a query parameter
    • sqlite_exec — Executes a result-less query against a given database
    • sqlite_factory — Opens a SQLite database and returns a SQLiteDatabase object
    • sqlite_fetch_all — Fetches all rows from a result set as an array of arrays
    • sqlite_fetch_array — Fetches the next row from a result set as an array
    • sqlite_fetch_column_types — Return an array of column types from a particular table
    • sqlite_fetch_object — Fetches the next row from a result set as an object
    • sqlite_fetch_single — Fetches the first column of a result set as a string
    • sqlite_fetch_string — 别名 sqlite_fetch_single
    • sqlite_field_name — Returns the name of a particular field
    • sqlite_has_more — Finds whether or not more rows are available
    • sqlite_has_prev — Returns whether or not a previous row is available
    • sqlite_key — Returns the current row index
    • sqlite_last_error — Returns the error code of the last error for a database
    • sqlite_last_insert_rowid — Returns the rowid of the most recently inserted row
    • sqlite_libencoding — Returns the encoding of the linked SQLite library
    • sqlite_libversion — Returns the version of the linked SQLite library
    • sqlite_next — Seek to the next row number
    • sqlite_num_fields — Returns the number of fields in a result set
    • sqlite_num_rows — Returns the number of rows in a buffered result set
    • sqlite_open — Opens a SQLite database and create the database if it does not exist
    • sqlite_popen — Opens a persistent handle to an SQLite database and create the database if it does not exist
    • sqlite_prev — Seek to the previous row number of a result set
    • sqlite_query — Executes a query against a given database and returns a result handle
    • sqlite_rewind — Seek to the first row number
    • sqlite_seek — Seek to a particular row number of a buffered result set
    • sqlite_single_query — Executes a query and returns either an array for one single column or the value of the first row
    • sqlite_udf_decode_binary — Decode binary data passed as parameters to an UDF
    • sqlite_udf_encode_binary — Encode binary data before returning it from an UDF
    • sqlite_unbuffered_query — Execute a query that does not prefetch and buffer all data
    • sqlite_valid — Returns whether more rows are available
pg_version
简介
与具体数据库系统相关的扩展


简介

This is an extension for the SQLite Embeddable SQL Database Engine. SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process.

SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk.

Note: For further information see the SQLite Website (» http://sqlite.org/).

SQLite
安装/配置
SQLite


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SQLite


需求

In order to have these functions available, you must compile PHP with SQLite support, or load the SQLite extension dynamically from your php.ini.

安装/配置
安装
安装/配置


安装

Read the INSTALL file, which comes with the package. Or just use the PEAR installer with pecl install sqlite. SQLite itself is already included, You do not need to install any additional software.

Windows users will enable php_sqlite.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

In PHP 5, the SQLite extension and the engine itself are bundled and compiled by default. However, since PHP 5.1.0 you need to manually activate the extension in php.ini (because it is now bundled as shared). Moreover, since PHP 5.1.0 SQLite depends on PDO it must be enabled too, by adding the following lines to php.ini (in order):

extension=php_pdo.dll
extension=php_sqlite.dll

On Linux or Unix operating systems, if you build PDO as a shared extension, you must build SQLite as a shared extension using the --with-sqlite=shared configure option.

SQLite 3 is supported through PDO SQLite.

Note: Windows installation for unprivileged accounts
On Windows operating systems, unprivileged accounts don't have the TMP environment variable set by default. This will make sqlite create temporary files in the windows directory, which is not desirable. So, you should set the TMP environment variable for the web server or the user account the web server is running under. If Apache is your web server, you can accomplish this via a SetEnv directive in your httpd.conf file. For example:

SetEnv TMP c:/temp

If you are unable to establish this setting at the server level, you can implement the setting in your script:

putenv('TMP=C:/temp');

The setting must refer to a directory that the web server has permission to create files in and subsequently write to and delete the files it created. Otherwise, you may receive the following error message: malformed database schema - unable to open a temporary database file for storing temporary tables

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

SQLite 配置选项
名字 | 默认 | 可修改范围 | Changelog
sqlite.assoc_case | "0" | PHP_INI_ALL | Available since PHP 5.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

sqlite.assoc_case int

Whether to use mixed case (0), upper case (1) or lower case (2) hash indexes.

This option is primarily useful when you need compatibility with other database systems, where the names of the columns are always returned as uppercase or lowercase, regardless of the case of the actual field names in the database schema.

The SQLite library returns the column names in their natural case (that matches the case you used in your schema). When sqlite.assoc_case is set to 0 the natural case will be preserved. When it is set to 1 or 2, PHP will apply case folding on the hash keys to upper- or lower-case the keys, respectively.

Use of this option incurs a slight performance penalty, but is MUCH faster than performing the case folding yourself using PHP script.

安装
资源类型
安装/配置


资源类型

There are two resources used in the SQLite Interface. The first one is the database connection, the second one the result set.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The functions sqlite_fetch_array() and sqlite_current() use a constant for the different types of result arrays. The following constants are defined:

SQLite result type constants
SQLITE_ASSOC (int)
Columns are returned into the array having the field name as the array index.
SQLITE_BOTH (int)
Columns are returned into the array having both a numerical index and the field name as the array index.
SQLITE_NUM (int)
Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.

A number of functions may return status codes. The following constants are defined:

SQLite status code constants
SQLITE_OK (int)
Successful result.
SQLITE_ERROR (int)
SQL error or missing database.
SQLITE_INTERNAL (int)
An internal logic error in SQLite.
SQLITE_PERM (int)
Access permission denied.
SQLITE_ABORT (int)
Callback routine requested an abort.
SQLITE_BUSY (int)
The database file is locked.
SQLITE_LOCKED (int)
A table in the database is locked.
SQLITE_NOMEM (int)
Memory allocation failed.
SQLITE_READONLY (int)
Attempt to write a readonly database.
SQLITE_INTERRUPT (int)
Operation terminated internally.
SQLITE_IOERR (int)
Disk I/O error occurred.
SQLITE_CORRUPT (int)
The database disk image is malformed.
SQLITE_NOTFOUND (int)
(Internal) Table or record not found.
SQLITE_FULL (int)
Insertion failed because database is full.
SQLITE_CANTOPEN (int)
Unable to open the database file.
SQLITE_PROTOCOL (int)
Database lock protocol error.
SQLITE_EMPTY (int)
(Internal) Database table is empty.
SQLITE_SCHEMA (int)
The database schema changed.
SQLITE_TOOBIG (int)
Too much data for one row of a table.
SQLITE_CONSTRAINT (int)
Abort due to constraint violation.
SQLITE_MISMATCH (int)
Data type mismatch.
SQLITE_MISUSE (int)
Library used incorrectly.
SQLITE_NOLFS (int)
Uses of OS features not supported on host.
SQLITE_AUTH (int)
Authorized failed.
SQLITE_ROW (int)
Internal process has another row ready.
SQLITE_DONE (int)
Internal process has finished executing.
资源类型
SQLite 函数
SQLite


SQLite 函数

预定义类

SQLiteDatabase

Represents an opened SQLite database.

构造函数

  • __construct - construct a new SQLiteDatabase object

方法

  • query - Execute a query

  • queryExec - Execute a result-less query

  • arrayQuery - Execute a query and return the result as an array

  • singleQuery - Execute a query and return either an array for one single column or the value of the first row

  • unbufferedQuery - Execute an unbuffered query

  • lastInsertRowid - Returns the rowid of the most recently inserted row

  • changes - Returns the number of rows changed by the most recent statement

  • createAggregate - Register an aggregating UDF for use in SQL statements

  • createFunction - Register a UDF for use in SQL statements

  • busyTimeout - Sets or disables busy timeout duration

  • lastError - Returns the last error code of the most recently encountered error

  • fetchColumnTypes - Return an array of column types from a particular table

SQLiteResult

Represents a buffered SQLite result set.

方法

  • fetch - Fetches the next row from the result set as an array

  • fetchObject - Fetches the next row from the result set as an object

  • fetchSingle - Fetches the first column from the result set as a string

  • fetchAll - Fetches all rows from the result set as an array of arrays

  • column - Fetches a column from the current row of the result set

  • numFields - Returns the number of fields in the result set

  • fieldName - Returns the name of a particular field in the result set

  • current - Fetches the current row from the result set as an array

  • key - Return the current row index

  • next - Seek to the next row number

  • valid - Returns whether more rows are available

  • rewind - Seek to the first row number of the result set

  • prev - Seek to the previous row number of the result set

  • hasPrev - Returns whether or not a previous row is available

  • numRows - Returns the number of rows in the result set

  • seek - Seek to a particular row number

SQLiteUnbuffered

Represents an unbuffered SQLite result set. Unbuffered results sets are sequential, forward-seeking only.

方法

  • fetch - Fetches the next row from the result set as an array

  • fetchObject - Fetches the next row from the result set as an object

  • fetchSingle - Fetches the first column from the result set as a string

  • fetchAll - Fetches all rows from the result set as an array of arrays

  • column - Fetches a column from the current row of the result set

  • numFields - Returns the number of fields in the result set

  • fieldName - Returns the name of a particular field in the result set

  • current - Fetches the current row from the result set as an array

  • next - Seek to the next row number

  • valid - Returns whether more rows are available

Table of Contents

  • sqlite_array_query — Execute a query against a given database and returns an array
  • sqlite_busy_timeout — Set busy timeout duration, or disable busy handlers
  • sqlite_changes — Returns the number of rows that were changed by the most recent SQL statement
  • sqlite_close — Closes an open SQLite database
  • sqlite_column — Fetches a column from the current row of a result set
  • sqlite_create_aggregate — Register an aggregating UDF for use in SQL statements
  • sqlite_create_function — Registers a "regular" User Defined Function for use in SQL statements
  • sqlite_current — Fetches the current row from a result set as an array
  • sqlite_error_string — Returns the textual description of an error code
  • sqlite_escape_string — Escapes a string for use as a query parameter
  • sqlite_exec — Executes a result-less query against a given database
  • sqlite_factory — Opens a SQLite database and returns a SQLiteDatabase object
  • sqlite_fetch_all — Fetches all rows from a result set as an array of arrays
  • sqlite_fetch_array — Fetches the next row from a result set as an array
  • sqlite_fetch_column_types — Return an array of column types from a particular table
  • sqlite_fetch_object — Fetches the next row from a result set as an object
  • sqlite_fetch_single — Fetches the first column of a result set as a string
  • sqlite_fetch_string — 别名 sqlite_fetch_single
  • sqlite_field_name — Returns the name of a particular field
  • sqlite_has_more — Finds whether or not more rows are available
  • sqlite_has_prev — Returns whether or not a previous row is available
  • sqlite_key — Returns the current row index
  • sqlite_last_error — Returns the error code of the last error for a database
  • sqlite_last_insert_rowid — Returns the rowid of the most recently inserted row
  • sqlite_libencoding — Returns the encoding of the linked SQLite library
  • sqlite_libversion — Returns the version of the linked SQLite library
  • sqlite_next — Seek to the next row number
  • sqlite_num_fields — Returns the number of fields in a result set
  • sqlite_num_rows — Returns the number of rows in a buffered result set
  • sqlite_open — Opens a SQLite database and create the database if it does not exist
  • sqlite_popen — Opens a persistent handle to an SQLite database and create the database if it does not exist
  • sqlite_prev — Seek to the previous row number of a result set
  • sqlite_query — Executes a query against a given database and returns a result handle
  • sqlite_rewind — Seek to the first row number
  • sqlite_seek — Seek to a particular row number of a buffered result set
  • sqlite_single_query — Executes a query and returns either an array for one single column or the value of the first row
  • sqlite_udf_decode_binary — Decode binary data passed as parameters to an UDF
  • sqlite_udf_encode_binary — Encode binary data before returning it from an UDF
  • sqlite_unbuffered_query — Execute a query that does not prefetch and buffer all data
  • sqlite_valid — Returns whether more rows are available
预定义常量
sqlite_array_query
SQLite


Execute a query against a given database and returns an array

SQLite 函数
sqlite_busy_timeout
SQLite 函数
PHP 手册

sqlite_array_query

SQLiteDatabase->arrayQuery

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase->arrayQuery — Execute a query against a given database and returns an array

说明

array sqlite_array_query ( resource $dbhandle , string $query [, int $result_type [, bool $decode_binary ]] )
array sqlite_array_query ( string $query , resource $dbhandle [, int $result_type [, bool $decode_binary ]] )

Object oriented style (method):

SQLiteDatabase
array arrayQuery ( string $query [, int $result_type [, bool $decode_binary ]] )

sqlite_array_query() executes the given query and returns an array of the entire result set. It is similar to calling sqlite_query() and then sqlite_fetch_array() for each row in the result set. sqlite_array_query() is significantly faster than the aforementioned.

Tip

sqlite_array_query() is best suited to queries returning 45 rows or less. If you have more data than that, it is recommended that you write your scripts to use sqlite_unbuffered_query() instead for more optimal performance.

参数

query

The query to be executed.

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引（有名称字段）而 SQLITE_NUM 只会返回数字索引（有序字段数）。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

decode_binary

当 decode_binary 参数设为 TRUE（默认值）时，PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值，除非在操作其它支持 sqlite 程序建立的数据库时。

Note: 为兼容其它数据库（例如 MySQL），支持另两种替代的语法。推荐用第一种，dbhandle 参数作为函数的第一个参数。

返回值

Returns an array of the entire result set; FALSE otherwise.

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

范例

Example #1 Procedural style

<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Example #2 Object-oriented style

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

参见

  • sqlite_query() - Executes a query against a given database and returns a result handle
  • sqlite_fetch_array() - Fetches the next row from a result set as an array
  • sqlite_fetch_string() - 别名 sqlite_fetch_single

SQLite 函数
sqlite_busy_timeout
SQLite 函数


Set busy timeout duration, or disable busy handlers

sqlite_array_query
sqlite_changes
SQLite 函数
PHP 手册

sqlite_busy_timeout

SQLiteDatabase->busyTimeout

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_busy_timeout -- SQLiteDatabase->busyTimeout — Set busy timeout duration, or disable busy handlers

说明

void sqlite_busy_timeout ( resource $dbhandle , int $milliseconds )

Object oriented style (method):

SQLiteDatabase
void busyTimeout ( int $milliseconds )

Set the maximum time, in milliseconds, that SQLite will wait for a dbhandle to become ready for use.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

milliseconds

The number of milliseconds. When set to 0, busy handlers will be disabled and SQLite will return immediately with a SQLITE_BUSY status code if another process/thread has the database locked for an update.

PHP sets the default busy timeout to be 60 seconds when the database is opened.

Note: There are one thousand (1000) milliseconds in one second.

返回值

无返回值。

范例

Example #1 Procedural style

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_busy_timeout($dbhandle, 10000); // set timeout to 10 seconds
sqlite_busy_timeout($dbhandle, 0); // disable busy handler
?>

Example #2 Object oriented style

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->busyTimeout(10000); // 10 seconds
$dbhandle->busyTimeout(0); // disable
?>

参见

  • sqlite_open() - Opens a SQLite database and create the database if it does not exist

sqlite_array_query
sqlite_changes
SQLite 函数


Returns the number of rows that were changed by the most recent SQL statement

sqlite_busy_timeout
sqlite_close
SQLite 函数
PHP 手册

sqlite_changes

SQLiteDatabase->changes

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_changes -- SQLiteDatabase->changes — Returns the number of rows that were changed by the most recent SQL statement

说明

int sqlite_changes ( resource $dbhandle )

Object oriented style (method):

SQLiteDatabase
int changes ( void )

Returns the numbers of rows that were changed by the most recent SQL statement executed against the dbhandle database handle.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

范例

Example #1 Procedural style

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_query($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Error in query.');
} else {
    echo 'Number of rows modified: ', sqlite_changes($dbhandle);
}
?>

Example #2 Object oriented style

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Error in query.');
} else {
    echo 'Number of rows modified: ', $dbhandle->changes();
}
?>

参见

  • sqlite_open() - Opens a SQLite database and create the database if it does not exist

sqlite_busy_timeout
sqlite_close
SQLite 函数


Closes an open SQLite database

sqlite_changes
sqlite_column
SQLite 函数
PHP 手册

sqlite_close

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_close — Closes an open SQLite database

说明

void sqlite_close ( resource $dbhandle )

Closes the given database handle. If the database was persistent, it will be closed and removed from the persistent list.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally.

返回值

无返回值。

范例

Example #1 sqlite_close() example

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_close($dbhandle);
?>

参见

  • sqlite_open() - Opens a SQLite database and create the database if it does not exist
  • sqlite_popen() - Opens a persistent handle to an SQLite database and create the database if it does not exist

sqlite_changes
sqlite_column
SQLite 函数


Fetches a column from the current row of a result set

sqlite_close
sqlite_create_aggregate
SQLite 函数
PHP 手册

sqlite_column

SQLiteResult->column

SQLiteUnbuffered->column

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_column -- SQLiteResult->column -- SQLiteUnbuffered->column — Fetches a column from the current row of a result set

说明

mixed sqlite_column ( resource $result , mixed $index_or_name [, bool $decode_binary=true ] )
SQLiteResult
mixed column ( mixed $index_or_name [, bool $decode_binary=true ] )
SQLiteUnbuffered
mixed column ( mixed $index_or_name [, bool $decode_binary=true ] )

Fetches the value of a column named index_or_name (if it is a string), or of the ordinal column numbered index_or_name (if it is an integer) from the current row of the query result handle result .

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

index_or_name

The column index or name to fetch.

decode_binary

当 decode_binary 参数设为 TRUE（默认值）时，PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值，除非在操作其它支持 sqlite 程序建立的数据库时。

注释

Note: Use this function when you are iterating a large result set with many columns, or with columns that contain large amounts of data.

参见

  • sqlite_fetch_string() - 别名 sqlite_fetch_single

sqlite_close
sqlite_create_aggregate
SQLite 函数


Register an aggregating UDF for use in SQL statements

sqlite_column
sqlite_create_function
SQLite 函数
PHP 手册

sqlite_create_aggregate

SQLiteDatabase->createAggregate

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_create_aggregate -- SQLiteDatabase->createAggregate — Register an aggregating UDF for use in SQL statements

说明

void sqlite_create_aggregate ( resource $dbhandle , string $function_name , callback $step_func , callback $finalize_func [, int $num_args=-1 ] )

Object oriented style (method):

SQLiteDatabase
void createAggregate ( string $function_name , callback $step_func , callback $finalize_func [, int $num_args=-1 ] )

sqlite_create_aggregate() is similar to sqlite_create_function() except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this function and sqlite_create_function() is that two functions are required to manage the aggregate; step_func is called for each row of the result set. Your PHP function should accumulate the result and store it into the aggregation context. Once all the rows have been processed, finalize_func will be called and it should then take the data from the aggregation context and return the result. Callback functions should return a type understood by SQLite (i.e. scalar type).

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

function_name

The name of the function used in SQL statements.

step_func

Callback function called for each row of the result set.

finalize_func

Callback function to aggregate the "stepped" data from each row.

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

返回值

无返回值。

范例

Example #1 max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context . In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Note: The example above will not work correctly if the column contains binary data. Take a look at the manual page for sqlite_udf_decode_binary() for an explanation of why this is so, and an example of how to make it respect the binary encoding.

Tip

It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Tip

You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

参见

  • sqlite_create_function() - Registers a "regular" User Defined Function for use in SQL statements
  • sqlite_udf_encode_binary() - Encode binary data before returning it from an UDF
  • sqlite_udf_decode_binary() - Decode binary data passed as parameters to an UDF

sqlite_column
sqlite_create_function
SQLite 函数


Registers a "regular" User Defined Function for use in SQL statements

sqlite_create_aggregate
sqlite_current
SQLite 函数
PHP 手册

sqlite_create_function

SQLiteDatabase->createFunction

(PHP 5, sqlite >= 1.0.0)

sqlite_create_function -- SQLiteDatabase->createFunction — Registers a "regular" User Defined Function for use in SQL statements

说明

void sqlite_create_function ( resource $dbhandle , string $function_name , callback $callback [, int $num_args=-1 ] )

Object oriented style (method):

SQLiteDatabase
void createFunction ( string $function_name , callback $callback [, int $num_args=-1 ] )

sqlite_create_function() allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements.

The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

function_name

The name of the function used in SQL statements.

callback

Callback function to handle the defined SQL function.

Note: Callback functions should return a type understood by SQLite (i.e. scalar type).

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

Note: 为兼容其它数据库（例如 MySQL），支持另两种替代的语法。推荐用第一种，dbhandle 参数作为函数的第一个参数。

返回值

无返回值。

范例

Example #1 sqlite_create_function() example

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Error opening sqlite db: ' . $sqliteerror;
    exit;
}
?>

In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result.

The beauty of this technique is that you do not need to process the result using a foreach() loop after you have queried for the data.

PHP registers a special function named php when the database is first opened. The php function can be used to call any PHP function without having to register it first.

Example #2 Example of using the PHP function

<?php
$rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files");
?>

This example will call the md5() on each filename column in the database and return the result into $rows

Note: For performance reasons, PHP will not automatically encode/decode binary data passed to and from your UDF's. You need to manually encode/decode the parameters and return values if you need to process binary data in this way. Take a look at sqlite_udf_encode_binary() and sqlite_udf_decode_binary() for more details.

Tip

It is not recommended to use UDF's to handle processing of binary data, unless high performance is not a key requirement of your application.

Tip

You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

参见

  • sqlite_create_aggregate() - Register an aggregating UDF for use in SQL statements

sqlite_create_aggregate
sqlite_current
SQLite 函数


Fetches the current row from a result set as an array

sqlite_create_function
sqlite_error_string
SQLite 函数
PHP 手册

sqlite_current

SQLiteResult->current

SQLiteUnbuffered->current

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_current -- SQLiteResult->current -- SQLiteUnbuffered->current — Fetches the current row from a result set as an array

说明

array sqlite_current ( resource $result [, int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )

Object oriented style (method):

SQLiteResult
array current ([ int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )
SQLiteUnbuffered
array current ([ int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )

sqlite_current() is identical to sqlite_fetch_array() except that it does not advance to the next row prior to returning the data; it returns the data from the current position only.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引（有名称字段）而 SQLITE_NUM 只会返回数字索引（有序字段数）。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

decode_binary

当 decode_binary 参数设为 TRUE（默认值）时，PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值，除非在操作其它支持 sqlite 程序建立的数据库时。

返回值

Returns an array of the current row from a result set; FALSE if the current position is beyond the final row.

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

参见

  • sqlite_seek() - Seek to a particular row number of a buffered result set
  • sqlite_next() - Seek to the next row number
  • sqlite_fetch_array() - Fetches the next row from a result set as an array

sqlite_create_function
sqlite_error_string
SQLite 函数


Returns the textual description of an error code

sqlite_current
sqlite_escape_string
SQLite 函数
PHP 手册

sqlite_error_string

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_error_string — Returns the textual description of an error code

说明

string sqlite_error_string ( int $error_code )

Returns a human readable description of the error_code returned from sqlite_last_error().

参数

error_code

The error code being used, which might be passed in from sqlite_last_error().

返回值

Returns a human readable description of the error_code , as a string.

参见

  • sqlite_last_error() - Returns the error code of the last error for a database

sqlite_current
sqlite_escape_string
SQLite 函数


Escapes a string for use as a query parameter

sqlite_error_string
sqlite_exec
SQLite 函数
PHP 手册

sqlite_escape_string

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_escape_string — Escapes a string for use as a query parameter

说明

string sqlite_escape_string ( string $item )

sqlite_escape_string() will correctly quote the string specified by item for use in an SQLite SQL statement. This includes doubling up single-quote characters (') and checking for binary-unsafe characters in the query string.

Although the encoding makes it safe to insert the data, it will render simple text comparisons and LIKE clauses in your queries unusable for the columns that contain the binary data. In practice, this shouldn't be a problem, as your schema should be such that you don't use such things on binary columns (in fact, it might be better to store binary data using other means, such as in files).

参数

item

The string being quoted.

If the item contains a NUL character, or if it begins with a character whose ordinal value is 0x01, PHP will apply a binary encoding scheme so that you can safely store and retrieve binary data.

返回值

Returns an escaped string for use in an SQLite SQL statement.

注释

Note:

    Do not use this function to encode the return values from UDF's created
    using sqlite_create_function() or
    sqlite_create_aggregate() - use
    sqlite_udf_encode_binary() instead.

Warning

addslashes() should NOT be used to quote your strings for SQLite queries; it will lead to strange results when retrieving your data.

参见

  • sqlite_udf_encode_binary() - Encode binary data before returning it from an UDF

sqlite_error_string
sqlite_exec
SQLite 函数


Executes a result-less query against a given database

sqlite_escape_string
sqlite_factory
SQLite 函数
PHP 手册

sqlite_exec

SQLiteDatabase->exec

(PHP 5, PECL sqlite >= 1.0.3)

sqlite_exec -- SQLiteDatabase->exec — Executes a result-less query against a given database

说明

bool sqlite_exec ( resource $dbhandle , string $query [, string &$error_msg ] )
bool sqlite_exec ( string $query , resource $dbhandle )

Object oriented style (method):

SQLiteDatabase
bool queryExec ( string $query [, string &$error_msg ] )

Executes an SQL statement given by the query against a given database handle (specified by the dbhandle parameter).

Warning

SQLite will execute multiple queries separated by semicolons, so you can use it to execute a batch of SQL that you have loaded from a file or have embedded in a script.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

query

The query to be executed.

error_msg

The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the sqlite_last_error() function.

Note: 为兼容其它数据库（例如 MySQL），支持另两种替代的语法。推荐用第一种，dbhandle 参数作为函数的第一个参数。

返回值

This function will return a boolean result; TRUE for success or FALSE for failure. If you need to run a query that returns rows, see sqlite_query().

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

更新日志

版本 | 说明
5.1.0 | Added the error_msg parameter

范例

Example #1 Procedural example

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_exec($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Error in query: '$error'");
} else {
    echo 'Number of rows modified: ', sqlite_changes($dbhandle);
}
?>

Example #2 Object-oriented example

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->queryExec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Error in query: '$error'");
} else {
    echo 'Number of rows modified: ', $dbhandle->changes();
}
?>

参见

  • sqlite_query() - Executes a query against a given database and returns a result handle
  • sqlite_unbuffered_query() - Execute a query that does not prefetch and buffer all data
  • sqlite_array_query() - Execute a query against a given database and returns an array

sqlite_escape_string
sqlite_factory
SQLite 函数


Opens a SQLite database and returns a SQLiteDatabase object

sqlite_exec
sqlite_fetch_all
SQLite 函数
PHP 手册

sqlite_factory

(PHP 5)

sqlite_factory — Opens a SQLite database and returns a SQLiteDatabase object

说明

SQLiteDatabase sqlite_factory ( string $filename [, int $mode=0666 [, string &$error_message ]] )

sqlite_factory() behaves similarly to sqlite_open() in that it opens an SQLite database or attempts to create it if it does not exist. However, a SQLiteDatabase object is returned rather than a resource. Please see the sqlite_open() reference page for further usage and caveats.

参数

filename

The filename of the SQLite database.

mode

The mode of the file. Intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value.

error_message

Passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.

返回值

Returns a SQLiteDatabase object on success, NULL on error.

范例

Example #1 sqlite_factory() example

<?php
$dbhandle = sqlite_factory('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

/* functionally equivalent to: */

$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

?>

参见

  • sqlite_open() - Opens a SQLite database and create the database if it does not exist
  • sqlite_popen() - Opens a persistent handle to an SQLite database and create the database if it does not exist

sqlite_exec
sqlite_fetch_all
SQLite 函数


Fetches all rows from a result set as an array of arrays

sqlite_factory
sqlite_fetch_array
SQLite 函数
PHP 手册

sqlite_fetch_all

SQLiteResult->fetchAll

SQLiteUnbuffered->fetchAll

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult->fetchAll -- SQLiteUnbuffered->fetchAll — Fetches all rows from a result set as an array of arrays

说明

array sqlite_fetch_all ( resource $result [, int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )

Object oriented style (method):

SQLiteResult
array fetchAll ([ int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )
SQLiteUnbuffered
array fetchAll ([ int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )

sqlite_fetch_all() returns an array of the entire result set from the result resource. It is similar to calling sqlite_query() (or sqlite_unbuffered_query()) and then sqlite_fetch_array() for each row in the result set.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引（有名称字段）而 SQLITE_NUM 只会返回数字索引（有序字段数）。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

decode_binary

当 decode_binary 参数设为 TRUE（默认值）时，PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值，除非在操作其它支持 sqlite 程序建立的数据库时。

返回值

Returns an array of the remaining rows in a result set. If called right after sqlite_query(), it returns all rows. If called after sqlite_fetch_array(), it returns the rest. If there are no rows in a result set, it returns an empty array.

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

范例

Example #1 Procedural example

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Example #2 Object-oriented example

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // buffered result set
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // unbuffered result set

$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

参见

  • sqlite_fetch_array() - Fetches the next row from a result set as an array

sqlite_factory
sqlite_fetch_array
SQLite 函数


Fetches the next row from a result set as an array

sqlite_fetch_all
sqlite_fetch_column_types
SQLite 函数
PHP 手册

sqlite_fetch_array

SQLiteResult->fetch

SQLiteUnbuffered->fetch

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_fetch_array -- SQLiteResult->fetch -- SQLiteUnbuffered->fetch — Fetches the next row from a result set as an array

说明

array sqlite_fetch_array ( resource $result [, int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )

Object oriented style (method):

SQLiteResult
array fetch ([ int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )
SQLiteUnbuffered
array fetch ([ int $result_type=SQLITE_BOTH [, bool $decode_binary=true ]] )

Fetches the next row from the given result handle. If there are no more rows, returns FALSE, otherwise returns an associative array representing the row data.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引（有名称字段）而 SQLITE_NUM 只会返回数字索引（有序字段数）。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

decode_binary

当 decode_binary 参数设为 TRUE（默认值）时，PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值，除非在操作其它支持 sqlite 程序建立的数据库时。

返回值

Returns an array of the next row from a result set; FALSE if the next position is beyond the final row.

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

范例

Example #1 Procedural example

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Example #2 Object-oriented example

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // buffered result set
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // unbuffered result set

while ($entry = $query->fetch(SQLITE_ASSOC)) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

参见

  • sqlite_array_query() - Execute a query against a given database and returns an array
  • sqlite_fetch_string() - 别名 sqlite_fetch_single

sqlite_fetch_all
sqlite_fetch_column_types
SQLite 函数


Return an array of column types from a particular table

sqlite_fetch_array
sqlite_fetch_object
SQLite 函数
PHP 手册

sqlite_fetch_column_types

SQLiteDatabase->fetchColumnTypes

(PHP 5)

sqlite_fetch_column_types -- SQLiteDatabase->fetchColumnTypes — Return an array of column types from a particular table

说明

array sqlite_fetch_column_types ( string $table_name , resource $dbhandle [, int $result_type ] )

Object oriented style (method):

SQLiteDatabase
array fetchColumnTypes ( string $table_name [, int $result_type ] )

sqlite_fetch_column_types() returns an array of column data types from the specified table_name table.

参数

table_name

The table name to query.

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

result_type

The optional result_type parameter accepts a constant and determines how the returned array will be indexed. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_ASSOC is the default for this function.

返回值

Returns an array of column data types; FALSE on error.

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

更新日志

版本 | 说明
5.1.0 | Added result_type

范例

Example #1 Procedural example

<?php
$db = sqlite_open('mysqlitedb');
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10), arf text)');
$cols = sqlite_fetch_column_types('foo', $db, SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Column: $column  Type: $type";
}
?>

Example #2 Object-oriented example

<?php
$db = new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols = $db->fetchColumnTypes('foo', SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Column: $column  Type: $type";
}
?>

上例将输出：

Column: bar  Type: VARCHAR
Column: arf  Type: TEXT

sqlite_fetch_array
sqlite_fetch_object
SQLite 函数


Fetches the next row from a result set as an object

sqlite_fetch_column_types
sqlite_fetch_single
SQLite 函数
PHP 手册

sqlite_fetch_object

SQLiteResult->fetchObject

SQLiteUnbuffered->fetchObject

(PHP 5)

sqlite_fetch_object -- SQLiteResult->fetchObject -- SQLiteUnbuffered->fetchObject — Fetches the next row from a result set as an object

说明

object sqlite_fetch_object ( resource $result [, string $class_name [, array $ctor_params [, bool $decode_binary=true ]]] )

Object oriented style (method):

SQLiteResult
object fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary=true ]]] )
SQLiteUnbuffered
object fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary=true ]]] )
Warning

本函数暂无文档，仅有参数列表。

sqlite_fetch_column_types
sqlite_fetch_single
SQLite 函数


Fetches the first column of a result set as a string

sqlite_fetch_object
sqlite_fetch_string
SQLite 函数
PHP 手册

sqlite_fetch_single

SQLiteResult->fetchSingle

SQLiteUnbuffered->fetchSingle

(PHP 5, PECL sqlite >= 1.0.1)

sqlite_fetch_single -- SQLiteResult->fetchSingle -- SQLiteUnbuffered->fetchSingle — Fetches the first column of a result set as a string

说明

string sqlite_fetch_single ( resource $result [, bool $decode_binary=true ] )

Object oriented style (method):

SQLiteResult
string fetchSingle ([ bool $decode_binary=true ] )
SQLiteUnbuffered
string fetchSingle ([ bool $decode_binary=true ] )

sqlite_fetch_single() is identical to sqlite_fetch_array() except that it returns the value of the first column of the rowset.

This is the most optimal way to retrieve data when you are only interested in the values from a single column of data.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

decode_binary

当 decode_binary 参数设为 TRUE（默认值）时，PHP 将解码那些由 sqlite_escape_string() 编码的数据。通常应保留此值为其默认值，除非在操作其它支持 sqlite 程序建立的数据库时。

范例

Example #1 A sqlite_fetch_single() example

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

参见

  • sqlite_fetch_array() - Fetches the next row from a result set as an array

sqlite_fetch_object
sqlite_fetch_string
SQLite 函数


别名 sqlite_fetch_single

sqlite_fetch_single
sqlite_field_name
SQLite 函数
PHP 手册

sqlite_fetch_string

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_fetch_string — 别名 sqlite_fetch_single()

说明

本函数是该函数的别名： sqlite_fetch_single().

sqlite_fetch_single
sqlite_field_name
SQLite 函数


Returns the name of a particular field

sqlite_fetch_string
sqlite_has_more
SQLite 函数
PHP 手册

sqlite_field_name

SQLiteResult->fieldName

SQLiteUnbuffered->fieldName

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_field_name -- SQLiteResult->fieldName -- SQLiteUnbuffered->fieldName — Returns the name of a particular field

说明

string sqlite_field_name ( resource $result , int $field_index )

Object oriented style (method):

SQLiteResult
string fieldName ( int $field_index )
SQLiteUnbuffered
string fieldName ( int $field_index )

Given the ordinal column number, field_index , sqlite_field_name() returns the name of that field in the result set result .

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

field_index

The ordinal column number in the result set.

返回值

Returns the name of a field in an SQLite result set, given the ordinal column number; FALSE on error.

由 SQLITE_ASSOC 和 SQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

sqlite_fetch_string
sqlite_has_more
SQLite 函数


Finds whether or not more rows are available

sqlite_field_name
sqlite_has_prev
SQLite 函数
PHP 手册

sqlite_has_more

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_has_more — Finds whether or not more rows are available

说明

bool sqlite_has_more ( resource $result )

Finds whether more rows are available from the given result set.

参数

result

The SQLite result resource.

返回值

Returns TRUE if there are more rows available from the result handle, or FALSE otherwise.

参见

  • sqlite_num_rows() - Returns the number of rows in a buffered result set
  • sqlite_changes() - Returns the number of rows that were changed by the most recent SQL statement

sqlite_field_name
sqlite_has_prev
SQLite 函数


Returns whether or not a previous row is available

sqlite_has_more
sqlite_key
SQLite 函数
PHP 手册

sqlite_has_prev

SQLiteResult->hasPrev

(PHP 5)

sqlite_has_prev -- SQLiteResult->hasPrev — Returns whether or not a previous row is available

说明

bool sqlite_has_prev ( resource $result )

Object oriented style (method):

SQLiteResult
bool hasPrev ( void )

Find whether there are more previous rows from the given result handle.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

返回值

Returns TRUE if there are more previous rows available from the result handle, or FALSE otherwise.

参见

  • sqlite_prev() - Seek to the previous row number of a result set
  • sqlite_has_more() - Finds whether or not more rows are available
  • sqlite_num_rows() - Returns the number of rows in a buffered result set

sqlite_has_more
sqlite_key
SQLite 函数


Returns the current row index

sqlite_has_prev
sqlite_last_error
SQLite 函数
PHP 手册

sqlite_key

SQLiteResult->key

(PHP 5 >= 5.1.0)

sqlite_key -- SQLiteResult->key — Returns the current row index

说明

int sqlite_key ( resource $result )

Object oriented style (method):

SQLiteResult
int key ( void )

sqlite_key() returns the current row index of the buffered result set result .

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

返回值

Returns the current row index of the buffered result set result .

更新日志

版本 | 说明
5.0.4 | Prior to PHP 5.0.4, sqlite_key() was only able to be called as a method on a SQLiteResult object, not procedurally.

参见

  • sqlite_next() - Seek to the next row number
  • sqlite_current() - Fetches the current row from a result set as an array
  • sqlite_rewind() - Seek to the first row number

sqlite_has_prev
sqlite_last_error
SQLite 函数


Returns the error code of the last error for a database

sqlite_key
sqlite_last_insert_rowid
SQLite 函数
PHP 手册

sqlite_last_error

SQLiteDatabase->lastError

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_last_error -- SQLiteDatabase->lastError — Returns the error code of the last error for a database

说明

int sqlite_last_error ( resource $dbhandle )

Object oriented style (method):

SQLiteDatabase
int lastError ( void )

Returns the error code from the last operation performed on dbhandle (the database handle), or 0 when no error occurred. A human readable description of the error code can be retrieved using sqlite_error_string().

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

参见

  • sqlite_error_string() - Returns the textual description of an error code

sqlite_key
sqlite_last_insert_rowid
SQLite 函数


Returns the rowid of the most recently inserted row

sqlite_last_error
sqlite_libencoding
SQLite 函数
PHP 手册

sqlite_last_insert_rowid

SQLiteDatabase->lastInsertRowid

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_last_insert_rowid -- SQLiteDatabase->lastInsertRowid — Returns the rowid of the most recently inserted row

说明

int sqlite_last_insert_rowid ( resource $dbhandle )

Object oriented style (method):

SQLiteDatabase
int lastInsertRowid ( void )

Returns the rowid of the row that was most recently inserted into the database dbhandle , if it was created as an auto-increment field.

Tip

You can create auto-increment fields in SQLite by declaring them as INTEGER PRIMARY KEY in your table schema.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

sqlite_last_error
sqlite_libencoding
SQLite 函数


Returns the encoding of the linked SQLite library

sqlite_last_insert_rowid
sqlite_libversion
SQLite 函数
PHP 手册

sqlite_libencoding

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_libencoding — Returns the encoding of the linked SQLite library

说明

string sqlite_libencoding ( void )

The SQLite library may be compiled in either ISO-8859-1 or UTF-8 compatible modes. This function allows you to determine which encoding scheme is used by your version of the library.

Warning

The default PHP distribution builds libsqlite in ISO-8859-1 encoding mode. However, this is a misnomer; rather than handling ISO-8859-1, it operates according to your current locale settings for string comparisons and sort ordering. So, rather than ISO-8859-1, you should think of it as being '8-bit' instead.

When compiled with UTF-8 support, sqlite handles encoding and decoding of UTF-8 multi-byte character sequences, but does not yet do a complete job when working with the data (no normalization is performed for example), and some comparison operations may still not be carried out correctly.

Warning

It is not recommended that you use PHP in a web-server configuration with a version of the SQLite library compiled with UTF-8 support, since libsqlite will abort the process if it detects a problem with the UTF-8 encoding.

参见

  • sqlite_lib_version()

sqlite_last_insert_rowid
sqlite_libversion
SQLite 函数


Returns the version of the linked SQLite library

sqlite_libencoding
sqlite_next
SQLite 函数
PHP 手册

sqlite_libversion

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_libversion — Returns the version of the linked SQLite library

说明

string sqlite_libversion ( void )

Returns the version of the linked SQLite library.

参见

  • sqlite_libencoding() - Returns the encoding of the linked SQLite library

sqlite_libencoding
sqlite_next
SQLite 函数


Seek to the next row number

sqlite_libversion
sqlite_num_fields
SQLite 函数
PHP 手册

sqlite_next

SQLiteResult->next

SQLiteUnbuffered->next

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_next -- SQLiteResult->next -- SQLiteUnbuffered->next — Seek to the next row number

说明

bool sqlite_next ( resource $result )

Object oriented style (method):

SQLiteResult
bool next ( void )
SQLiteUnbuffered
bool next ( void )

sqlite_next() advances the result handle result to the next row.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

返回值

Returns TRUE on success, or FALSE if there are no more rows.

参见

  • sqlite_seek() - Seek to a particular row number of a buffered result set
  • sqlite_current() - Fetches the current row from a result set as an array
  • sqlite_rewind() - Seek to the first row number

sqlite_libversion
sqlite_num_fields
SQLite 函数


Returns the number of fields in a result set

sqlite_next
sqlite_num_rows
SQLite 函数
PHP 手册

sqlite_num_fields

SQLiteResult->numFields

SQLiteUnbuffered->numFields

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_num_fields -- SQLiteResult->numFields -- SQLiteUnbuffered->numFields — Returns the number of fields in a result set

说明

int sqlite_num_fields ( resource $result )

Object oriented style (method):

SQLiteResult
int numFields ( void )
SQLiteUnbuffered
int numFields ( void )

Returns the number of fields in the result set.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

参见

  • sqlite_changes() - Returns the number of rows that were changed by the most recent SQL statement
  • sqlite_num_rows() - Returns the number of rows in a buffered result set

sqlite_next
sqlite_num_rows
SQLite 函数


Returns the number of rows in a buffered result set

sqlite_num_fields
sqlite_open
SQLite 函数
PHP 手册

sqlite_num_rows

SQLiteResult->numRows

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_num_rows -- SQLiteResult->numRows — Returns the number of rows in a buffered result set

说明

int sqlite_num_rows ( resource $result )

Object oriented style (method):

SQLiteResult
int numRows ( void )

Returns the number of rows in the buffered result set.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

范例

Example #1 Procedural example

<?php
$db = sqlite_open('mysqlitedb');
$result = sqlite_query($db, "SELECT * FROM mytable WHERE name='John Doe'");
$rows = sqlite_num_rows($result);

echo "Number of rows: $rows";
?>

Example #2 Object-oriented example

<?php
$db = new SQLiteDatabase('mysqlitedb');
$result = $db->query("SELECT * FROM mytable WHERE name='John Doe'");
$rows = $result->numRows();

echo "Number of rows: $rows";
?>

参见

  • sqlite_changes() - Returns the number of rows that were changed by the most recent SQL statement
  • sqlite_query() - Executes a query against a given database and returns a result handle
  • sqlite_num_fields() - Returns the number of fields in a result set

sqlite_num_fields
sqlite_open
SQLite 函数


Opens a SQLite database and create the database if it does not exist

sqlite_num_rows
sqlite_popen
SQLite 函数
PHP 手册

sqlite_open

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_open — Opens a SQLite database and create the database if it does not exist

说明

resource sqlite_open ( string $filename [, int $mode=0666 [, string &$error_message ]] )

Object oriented style (constructor):

SQLiteDatabase
__construct ( string $filename [, int $mode=0666 [, string &$error_message ]] )

Opens a SQLite database or creates the database if it does not exist.

参数

filename

The filename of the SQLite database. If the file does not exist, SQLite will attempt to create it. PHP must have write permissions to the file if data is inserted, the database schema is modified or to create the database if it does not exist.

mode

The mode of the file. Intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value.

error_message

Passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.

返回值

Returns a resource (database handle) on success, FALSE on error.

范例

Example #1 sqlite_open() example

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
    sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
    $result = sqlite_query($db, 'select bar from foo');
    var_dump(sqlite_fetch_array($result));
} else {
    die($sqliteerror);
}
?>

注释

Tip

On Unix platforms, SQLite is sensitive to scripts that use the fork() system call. If you do have such a script, it is recommended that you close the handle prior to forking and then re-open it in the child and/or parent. For more information on this issue, see » The C language interface to the SQLite library in the section entitled Multi-Threading And SQLite.

Tip

It is not recommended to work with SQLite databases mounted on NFS partitions. Since NFS is notoriously bad when it comes to locking you may find that you cannot even open the database at all, and if it succeeds, the locking behaviour may be undefined.

Note: Starting with SQLite library version 2.8.2, you can specify :memory: as the filename to create a database that lives only in the memory of the computer. This is useful mostly for temporary processing, as the in-memory database will be destroyed when the process ends. It can also be useful when coupled with the ATTACH DATABASE SQL statement to load other databases and move and query data between them.

Note: SQLite is 安全模式 and open_basedir aware.

参见

  • sqlite_popen() - Opens a persistent handle to an SQLite database and create the database if it does not exist
  • sqlite_close() - Closes an open SQLite database
  • sqlite_factory() - Opens a SQLite database and returns a SQLiteDatabase object

sqlite_num_rows
sqlite_popen
SQLite 函数


Opens a persistent handle to an SQLite database and create the database if it does not exist

sqlite_open
sqlite_prev
SQLite 函数
PHP 手册

sqlite_popen

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_popen — Opens a persistent handle to an SQLite database and create the database if it does not exist

说明

resource sqlite_popen ( string $filename [, int $mode=0666 [, string &$error_message ]] )

This function behaves identically to sqlite_open() except that is uses the persistent resource mechanism of PHP. For information about the meaning of the parameters, read the sqlite_open() manual page.

sqlite_popen() will first check to see if a persistent handle has already been opened for the given filename . If it finds one, it returns that handle to your script, otherwise it opens a fresh handle to the database.

The benefit of this approach is that you don't incur the performance cost of re-reading the database and index schema on each page hit served by persistent web server SAPI's (any SAPI except for regular CGI or CLI).

Note: If you use persistent handles and have the database updated by a background process (perhaps via a crontab), and that process re-creates the database by overwriting it (either by unlinking and rebuilding, or moving the updated version to replace the current version), you may experience undefined behaviour when a persistent handle on the old version of the database is recycled. To avoid this situation, have your background processes open the same database file and perform their updates in a transaction.

参数

filename

The filename of the SQLite database. If the file does not exist, SQLite will attempt to create it. PHP must have write permissions to the file if data is inserted, the database schema is modified or to create the database if it does not exist.

mode

The mode of the file. Intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value.

error_message

Passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.

返回值

Returns a resource (database handle) on success, FALSE on error.

参见

  • sqlite_open() - Opens a SQLite database and create the database if it does not exist
  • sqlite_close() - Closes an open SQLite database
  • sqlite_factory() - Opens a SQLite database and returns a SQLiteDatabase object

sqlite_open
sqlite_prev
SQLite 函数


Seek to the previous row number of a result set

sqlite_popen
sqlite_query
SQLite 函数
PHP 手册

sqlite_prev

SQLiteResult->prev

(PHP 5)

sqlite_prev -- SQLiteResult->prev — Seek to the previous row number of a result set

说明

bool sqlite_prev ( resource $result )

Object oriented style (method):

SQLiteResult
bool prev ( void )

sqlite_prev() seeks back the result handle to the previous row.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

返回值

Returns TRUE on success, or FALSE if there are no more previous rows.

参见

  • sqlite_has_prev() - Returns whether or not a previous row is available
  • sqlite_rewind() - Seek to the first row number
  • sqlite_next() - Seek to the next row number

sqlite_popen
sqlite_query
SQLite 函数


Executes a query against a given database and returns a result handle

sqlite_prev
sqlite_rewind
SQLite 函数
PHP 手册

sqlite_query

SQLiteDatabase->query

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_query -- SQLiteDatabase->query — Executes a query against a given database and returns a result handle

说明

resource sqlite_query ( resource $dbhandle , string $query [, int $result_type [, string &$error_msg ]] )
resource sqlite_query ( string $query , resource $dbhandle [, int $result_type [, string &$error_msg ]] )

Object oriented style (method):

SQLiteDatabase
SQLiteResult query ( string $query [, int $result_type [, string &$error_msg ]] )

Executes an SQL statement given by the query against a given database handle.

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

query

The query to be executed.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引（有名称字段）而 SQLITE_NUM 只会返回数字索引（有序字段数）。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

error_msg

The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the sqlite_last_error() function.

Note: 为兼容其它数据库（例如 MySQL），支持另两种替代的语法。推荐用第一种，dbhandle 参数作为函数的第一个参数。

返回值

This function will return a result handle or FALSE on failure. For queries that return rows, the result handle can then be used with functions such as sqlite_fetch_array() and sqlite_seek().

Regardless of the query type, this function will return FALSE if the query failed.

sqlite_query() returns a buffered, seekable result handle. This is useful for reasonably small queries where you need to be able to randomly access the rows. Buffered result handles will allocate memory to hold the entire result and will not return until it has been fetched. If you only need sequential access to the data, it is recommended that you use the much higher performance sqlite_unbuffered_query() instead.

更新日志

版本 | 说明
5.1.0 | Added the error_msg parameter

注释

Warning

SQLite will execute multiple queries separated by semicolons, so you can use it to execute a batch of SQL that you have loaded from a file or have embedded in a script. However, this works only when the result of the function is not used - if it is used, only the first SQL statement would be executed. Function sqlite_exec() will always execute multiple SQL statements.

When executing multiple queries, the return value of this function will be FALSE if there was an error, but undefined otherwise (it might be TRUE for success or it might return a result handle).

参见

  • sqlite_unbuffered_query() - Execute a query that does not prefetch and buffer all data
  • sqlite_array_query() - Execute a query against a given database and returns an array

sqlite_prev
sqlite_rewind
SQLite 函数


Seek to the first row number

sqlite_query
sqlite_seek
SQLite 函数
PHP 手册

sqlite_rewind

SQLiteResult->rewind

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_rewind -- SQLiteResult->rewind — Seek to the first row number

说明

bool sqlite_rewind ( resource $result )

Object oriented style (method):

SQLiteResult
bool rewind ( void )

sqlite_rewind() seeks back to the first row in the given result set.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

返回值

Returns FALSE if there are no rows in the result set, TRUE otherwise.

参见

  • sqlite_next() - Seek to the next row number
  • sqlite_current() - Fetches the current row from a result set as an array
  • sqlite_seek() - Seek to a particular row number of a buffered result set

sqlite_query
sqlite_seek
SQLite 函数


Seek to a particular row number of a buffered result set

sqlite_rewind
sqlite_single_query
SQLite 函数
PHP 手册

sqlite_seek

SQLiteResult->seek

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_seek -- SQLiteResult->seek — Seek to a particular row number of a buffered result set

说明

bool sqlite_seek ( resource $result , int $rownum )

Object oriented style (method):

SQLiteResult
bool seek ( int $rownum )

sqlite_seek() seeks to the row given by the parameter rownum .

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

rownum

The ordinal row number to seek to. The row number is zero-based (0 is the first row).

Note: 本函数不能用于未缓冲的结果句柄。

返回值

Returns FALSE if the row does not exist, TRUE otherwise.

参见

  • sqlite_next() - Seek to the next row number
  • sqlite_current() - Fetches the current row from a result set as an array
  • sqlite_rewind() - Seek to the first row number

sqlite_rewind
sqlite_single_query
SQLite 函数


Executes a query and returns either an array for one single column or the value of the first row

sqlite_seek
sqlite_udf_decode_binary
SQLite 函数
PHP 手册

sqlite_single_query

SQLiteDatabase->singleQuery

(PHP 5, PECL sqlite >= 1.0.1)

sqlite_single_query -- SQLiteDatabase->singleQuery — Executes a query and returns either an array for one single column or the value of the first row

说明

array sqlite_single_query ( resource $db , string $query [, bool $first_row_only [, bool $decode_binary ]] )

Object oriented style (method):

SQLiteDatabase
array singleQuery ( string $query [, bool $first_row_only [, bool $decode_binary ]] )
Warning

本函数暂无文档，仅有参数列表。

sqlite_seek
sqlite_udf_decode_binary
SQLite 函数


Decode binary data passed as parameters to an UDF

sqlite_single_query
sqlite_udf_encode_binary
SQLite 函数
PHP 手册

sqlite_udf_decode_binary

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_udf_decode_binary — Decode binary data passed as parameters to an UDF

说明

string sqlite_udf_decode_binary ( string $data )

Decodes binary data passed as parameters to a UDF.

You must call this function on parameters passed to your UDF if you need them to handle binary data, as the binary encoding employed by PHP will obscure the content and of the parameter in its natural, non-coded form.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

参数

data

The encoded data that will be decoded, data that was applied by either sqlite_udf_encode_binary() or sqlite_escape_string().

返回值

The decoded string.

范例

Example #1 binary-safe max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

参见

  • sqlite_udf_encode_binary() - Encode binary data before returning it from an UDF
  • sqlite_create_function() - Registers a "regular" User Defined Function for use in SQL statements
  • sqlite_create_aggregate() - Register an aggregating UDF for use in SQL statements

sqlite_single_query
sqlite_udf_encode_binary
SQLite 函数


Encode binary data before returning it from an UDF

sqlite_udf_decode_binary
sqlite_unbuffered_query
SQLite 函数
PHP 手册

sqlite_udf_encode_binary

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_udf_encode_binary — Encode binary data before returning it from an UDF

说明

string sqlite_udf_encode_binary ( string $data )

sqlite_udf_encode_binary() applies a binary encoding to the data so that it can be safely returned from queries (since the underlying libsqlite API is not binary safe).

If there is a chance that your data might be binary unsafe (e.g.: it contains a NUL byte in the middle rather than at the end, or if it has and 0x01 byte as the first character) then you must call this function to encode the return value from your UDF.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Note: Do not use sqlite_escape_string() to quote strings returned from UDF's as it will lead to double-quoting of the data. Use sqlite_udf_encode_binary() instead!

参数

data

The string being encoded.

返回值

The encoded string.

参见

  • sqlite_udf_decode_binary() - Decode binary data passed as parameters to an UDF
  • sqlite_escape_string() - Escapes a string for use as a query parameter
  • sqlite_create_function() - Registers a "regular" User Defined Function for use in SQL statements
  • sqlite_create_aggregate() - Register an aggregating UDF for use in SQL statements

sqlite_udf_decode_binary
sqlite_unbuffered_query
SQLite 函数


Execute a query that does not prefetch and buffer all data

sqlite_udf_encode_binary
sqlite_valid
SQLite 函数
PHP 手册

sqlite_unbuffered_query

SQLiteDatabase->unbufferedQuery

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_unbuffered_query -- SQLiteDatabase->unbufferedQuery — Execute a query that does not prefetch and buffer all data

说明

resource sqlite_unbuffered_query ( resource $dbhandle , string $query [, int $result_type [, string &$error_msg ]] )
resource sqlite_unbuffered_query ( string $query , resource $dbhandle [, int $result_type [, string &$error_msg ]] )

Object oriented style (method):

SQLiteDatabase
SQLiteUnbuffered unbufferedQuery ( string $query [, int $result_type [, string &$error_msg ]] )

sqlite_unbuffered_query() is identical to sqlite_query() except that the result that is returned is a sequential forward-only result set that can only be used to read each row, one after the other.

This function is ideal for generating things such as HTML tables where you only need to process one row at a time and don't need to randomly access the row data.

Note:

    Functions such as sqlite_seek(),
    sqlite_rewind(), sqlite_next(),
    sqlite_current(), and
    sqlite_num_rows() do not work on result handles
    returned from sqlite_unbuffered_query().

参数

dbhandle

The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.

query

The query to be executed.

result_type

可选的 result_type 参数接受一个常量并决定返回的数组如何索引。用 SQLITE_ASSOC 只会返回关联索引（有名称字段）而 SQLITE_NUM 只会返回数字索引（有序字段数）。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BOTH 是本函数的默认值。

error_msg

The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the sqlite_last_error() function.

Note: 为兼容其它数据库（例如 MySQL），支持另两种替代的语法。推荐用第一种，dbhandle 参数作为函数的第一个参数。

返回值

Returns a result handle or FALSE on failure.

sqlite_unbuffered_query() returns a sequential forward-only result set that can only be used to read each row, one after the other.

更新日志

版本 | 说明
5.1.0 | Added the error_msg parameter

参见

  • sqlite_query() - Executes a query against a given database and returns a result handle

sqlite_udf_encode_binary
sqlite_valid
SQLite 函数


Returns whether more rows are available

sqlite_unbuffered_query
SQLite3
SQLite 函数
PHP 手册

sqlite_valid

SQLiteResult->valid

SQLiteUnbuffered->valid

(PHP 5)

sqlite_valid -- SQLiteResult->valid -- SQLiteUnbuffered->valid — Returns whether more rows are available

说明

bool sqlite_valid ( resource $result )

Object oriented style (method):

SQLiteResult
bool valid ( void )
SQLiteUnbuffered
bool valid ( void )

Finds whether more rows are available from the given result handle.

参数

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Note: 本函数不能用于未缓冲的结果句柄。

返回值

Returns TRUE if there are more rows available from the result handle, or FALSE otherwise.

参见

  • sqlite_num_rows() - Returns the number of rows in a buffered result set
  • sqlite_changes() - Returns the number of rows that were changed by the most recent SQL statement

sqlite_unbuffered_query
SQLite3
SQLite 函数


SQLite3

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SQLite3 — The SQLite3 class
    • SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement
    • SQLite3::close — Closes the database connection
    • SQLite3::__construct — Instantiates an SQLite3 object and opens an SQLite 3 database
    • SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function
    • SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function
    • SQLite3::escapeString — Returns a string that has been properly escaped
    • SQLite3::exec — Executes a result-less query against a given database
    • SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request
    • SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request
    • SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database
    • SQLite3::loadExtension — Attempts to load an SQLite extension library
    • SQLite3::open — Opens an SQLite database
    • SQLite3::prepare — Prepares an SQL statement for execution
    • SQLite3::query — Executes an SQL query
    • SQLite3::querySingle — Executes a query and returns a single result
    • SQLite3::version — Returns the SQLite3 library version as a string constant and as a number
  • SQLite3Stmt — The SQLite3Stmt class
    • SQLite3Stmt::bindParam — Binds a parameter to a statement variable
    • SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable
    • SQLite3Stmt::clear — Clears all current bound parameters
    • SQLite3Stmt::close — Closes the prepared statement
    • SQLite3Stmt::execute — Executes a prepared statement and returns a result set object
    • SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement
    • SQLite3Stmt::reset — Resets the prepared statement
  • SQLite3Result — The SQLite3Result class
    • SQLite3Result::columnName — Returns the name of the nth column
    • SQLite3Result::columnType — Returns the type of the nth column
    • SQLite3Result::fetchArray — Fetches a result row as an associative or numerically indexed array or both
    • SQLite3Result::finalize — Closes the result set
    • SQLite3Result::numColumns — Returns the number of columns in the result set
    • SQLite3Result::reset — Resets the result set back to the first row
sqlite_valid
简介
与具体数据库系统相关的扩展


简介

Support for SQLite version 3 databases.

SQLite3
安装/配置
SQLite3


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SQLite3


需求

Requirements...

安装/配置
安装
安装/配置


安装

To enable SQLite3 support, configure PHP with ...

Windows users ...

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

SQLite3 配置选项
名字 | 默认 | 可修改范围 | Changelog
sqlite3.extension_dir | NULL | PHP_INI_SYSTEM |

以下是配置选项的简要解释。

sqlite3.extension_dir string

Path to the directory where the loadable extensions for SQLite reside.

安装
资源类型
安装/配置


资源类型

Mention the resource here.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SQLITE3_ASSOC (integer)
Specifies that the SQLite3_result::fetchArray method shall return an array indexed by column name as returned in the corresponding result set.
SQLITE3_NUM (integer)
Specifies that the Sqlite3_result::fetchArray method shall return an array indexed by column number as returned in the corresponding result set, starting at column 0.
SQLITE3_BOTH (integer)
Specifies that the Sqlite3_result::fetchArray method shall return an array indexed by both column name and number as returned in the corresponding result set, starting at column 0.
SQLITE3_INTEGER (integer)
Represents the SQLite3 INTEGER storage class.
SQLITE3_FLOAT (integer)
Represents the SQLite3 REAL (FLOAT) storage class.
SQLITE3_TEXT (integer)
Represents the SQLite3 TEXT storage class.
SQLITE3_BLOB (integer)
Represents the SQLite3 BLOB storage class.
SQLITE3_NULL (integer)
Represents the SQLite3 NULL storage class.
SQLITE3_OPEN_READONLY (integer)
Specifies that the SQLite3 database be opened for reading only.
SQLITE3_OPEN_READWRITE (integer)
Specifies that the SQLite3 database be opened for reading and writing.
SQLITE3_OPEN_CREATE (integer)
Specifies that the SQLite3 database be created if it does not already exist.

资源类型
SQLite3
SQLite3


The SQLite3 class

简介

Description of the class.

Class synopsis

SQLite3
SQLite3 {
/* Methods */
public int changes ( void )
public bool close ( void )
__construct ( string $filename [, int $flags [, string $encryption_key ]] )
public bool createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count=-1 ] )
public bool createFunction ( string $name , mixed $callback [, int $argument_count=-1 ] )
public string escapeString ( string $value )
public bool exec ( string $query )
public int lastErrorCode ( void )
public string lastErrorMsg ( void )
public int lastInsertRowID ( void )
public bool loadExtension ( string $shared_library )
public bool open ( string $filename [, int $flags=SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key ]] )
public SQLite3_stmt prepare ( string $query )
public SQLite3_result query ( string $query )
public mixed querySingle ( string $query [, bool $entire_row=false ] )
public array version ( void )
}

Table of Contents

  • SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement
  • SQLite3::close — Closes the database connection
  • SQLite3::__construct — Instantiates an SQLite3 object and opens an SQLite 3 database
  • SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function
  • SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function
  • SQLite3::escapeString — Returns a string that has been properly escaped
  • SQLite3::exec — Executes a result-less query against a given database
  • SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request
  • SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request
  • SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database
  • SQLite3::loadExtension — Attempts to load an SQLite extension library
  • SQLite3::open — Opens an SQLite database
  • SQLite3::prepare — Prepares an SQL statement for execution
  • SQLite3::query — Executes an SQL query
  • SQLite3::querySingle — Executes a query and returns a single result
  • SQLite3::version — Returns the SQLite3 library version as a string constant and as a number
预定义常量
SQLite3::changes
SQLite3


Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement

SQLite3
SQLite3::close
SQLite3
PHP 手册

SQLite3::changes

(PHP 5 >= 5.3.0)

SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement

说明

public int SQLite3::changes ( void )

Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement.

参数

This function has no parameters.

返回值

Returns an integer value corresponding to the number of database rows changed (or inserted or deleted) by the most recent SQL statement.

范例

Example #1 SQLite3::changes() example

<?php
$db = new SQLite3('mysqlitedb.db');

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
    echo 'Number of rows modified: ', $db->changes();
}
?>

SQLite3
SQLite3::close
SQLite3


Closes the database connection

SQLite3::changes
SQLite3::__construct
SQLite3
PHP 手册

SQLite3::close

(PHP 5 >= 5.3.0)

SQLite3::close — Closes the database connection

说明

public bool SQLite3::close ( void )

Closes the database connection.

参数

This function has no parameters.

返回值

Returns TRUE on success, FALSE on failure.

范例

Example #1 SQLite3::close() example

<?php
$db = new SQLite3('mysqlitedb.db');
$db->close();
?>

SQLite3::changes
SQLite3::__construct
SQLite3


Instantiates an SQLite3 object and opens an SQLite 3 database

SQLite3::close
SQLite3::createAggregate
SQLite3
PHP 手册

SQLite3::__construct

(PHP 5 >= 5.3.0)

SQLite3::__construct — Instantiates an SQLite3 object and opens an SQLite 3 database

说明

SQLite3::__construct ( string $filename [, int $flags [, string $encryption_key ]] )

Instantiates an SQLite3 object and opens a connection to an SQLite 3 database. If the build includes encryption, then it will attempt to use the key.

参数

filename

Path to the SQLite database.

flags

Optional flags used to determine how to open the SQLite database. By default, open uses SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Open the database for reading only.

  • SQLITE3_OPEN_READWRITE: Open the database for reading and writing.

  • SQLITE3_OPEN_CREATE: Create the database if it does not exist.

encryption_key

An optional encryption key used when encrypting and decrypting an SQLite database.

返回值

Returns an SQLite3 object on success.

范例

Example #1 SQLite3::__construct() example

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>

SQLite3::close
SQLite3::createAggregate
SQLite3


Registers a PHP function for use as an SQL aggregate function

SQLite3::__construct
SQLite3::createFunction
SQLite3
PHP 手册

SQLite3::createAggregate

(PHP 5 >= 5.3.0)

SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function

说明

public bool SQLite3::createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count=-1 ] )

Registers a PHP function or user-defined function for use as an SQL aggregate function for use within SQL statements.

参数

name

Name of the SQL aggregate to be created or redefined.

step_callback

The name of a PHP function or user-defined function to apply as a callback for every item in the aggregate.

final_callback

The name of a PHP function or user-defined function to apply as a callback at the end of the aggregate data.

argument_count

The number of arguments that the SQL aggregate takes. If this parameter is negative, then the SQL aggregate may take any number of arguments.

返回值

Returns TRUE upon successful creation of the aggregate, FALSE on failure.

SQLite3::__construct
SQLite3::createFunction
SQLite3


Registers a PHP function for use as an SQL scalar function

SQLite3::createAggregate
SQLite3::escapeString
SQLite3
PHP 手册

SQLite3::createFunction

(PHP 5 >= 5.3.0)

SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function

说明

public bool SQLite3::createFunction ( string $name , mixed $callback [, int $argument_count=-1 ] )

Registers a PHP function or user-defined function for use as an SQL scalar function for use within SQL statements.

参数

name

Name of the SQL function to be created or redefined.

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the SQL function.

argument_count

The number of arguments that the SQL function takes. If this parameter is negative, then the SQL function may take any number of arguments.

返回值

Returns TRUE upon successful creation of the function, FALSE on failure.

范例

Example #1 SQLite3::createFunction() example

<?php
function my_udf_md5($string) {
    return md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5', 'my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

上例的输出类似于：

string(32) "098f6bcd4621d373cade4e832627b4f6"

SQLite3::createAggregate
SQLite3::escapeString
SQLite3


Returns a string that has been properly escaped

SQLite3::createFunction
SQLite3::exec
SQLite3
PHP 手册

SQLite3::escapeString

(PHP 5 >= 5.3.0)

SQLite3::escapeString — Returns a string that has been properly escaped

说明

public string SQLite3::escapeString ( string $value )

Returns a string that has been properly escaped for safe inclusion in an SQL statement.

参数

value

The string to be escaped.

返回值

Returns a properly escaped string that may be used safely in an SQL statement.

注释

Warning

addslashes() should NOT be used to quote your strings for SQLite queries; it will lead to strange results when retrieving your data.

SQLite3::createFunction
SQLite3::exec
SQLite3


Executes a result-less query against a given database

SQLite3::escapeString
SQLite3::lastErrorCode
SQLite3
PHP 手册

SQLite3::exec

(PHP 5 >= 5.3.0)

SQLite3::exec — Executes a result-less query against a given database

说明

public bool SQLite3::exec ( string $query )

Executes a result-less query against a given database.

参数

query

The SQL query to execute (typically an INSERT, UPDATE, or DELETE query).

返回值

Returns TRUE if the query succeeded, FALSE on failure.

范例

Example #1 SQLite3::exec() example

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar STRING)');
?>

SQLite3::escapeString
SQLite3::lastErrorCode
SQLite3


Returns the numeric result code of the most recent failed SQLite request

SQLite3::exec
SQLite3::lastErrorMsg
SQLite3
PHP 手册

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0)

SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request

说明

public int SQLite3::lastErrorCode ( void )

Returns the numeric result code of the most recent failed SQLite request.

参数

This function has no parameters.

返回值

Returns an integer value representing the numeric result code of the most recent failed SQLite request.

SQLite3::exec
SQLite3::lastErrorMsg
SQLite3


Returns English text describing the most recent failed SQLite request

SQLite3::lastErrorCode
SQLite3::lastInsertRowID
SQLite3
PHP 手册

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0)

SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request

说明

public string SQLite3::lastErrorMsg ( void )

Returns English text describing the most recent failed SQLite request.

参数

This function has no parameters.

返回值

Returns an English string describing the most recent failed SQLite request.

SQLite3::lastErrorCode
SQLite3::lastInsertRowID
SQLite3


Returns the row ID of the most recent INSERT into the database

SQLite3::lastErrorMsg
SQLite3::loadExtension
SQLite3
PHP 手册

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0)

SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database

说明

public int SQLite3::lastInsertRowID ( void )

Returns the row ID of the most recent INSERT into the database.

参数

This function has no parameters.

返回值

Returns the row ID of the most recent INSERT into the database

SQLite3::lastErrorMsg
SQLite3::loadExtension
SQLite3


Attempts to load an SQLite extension library

SQLite3::lastInsertRowID
SQLite3::open
SQLite3
PHP 手册

SQLite3::loadExtension

(PHP 5 >= 5.3.0)

SQLite3::loadExtension — Attempts to load an SQLite extension library

说明

public bool SQLite3::loadExtension ( string $shared_library )

Attempts to load an SQLite extension library.

参数

shared_library

The name of the library to load. The library must be located in the directory specified in the configure option sqlite3.extension_dir.

返回值

Returns TRUE if the extension is successfully loaded, FALSE on failure.

范例

Example #1 SQLite3::loadExtension() example

<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>

SQLite3::lastInsertRowID
SQLite3::open
SQLite3


Opens an SQLite database

SQLite3::loadExtension
SQLite3::prepare
SQLite3
PHP 手册

SQLite3::open

(PHP 5 >= 5.3.0)

SQLite3::open — Opens an SQLite database

说明

public bool SQLite3::open ( string $filename [, int $flags=SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key ]] )

Opens an SQLite 3 Database. If the build includes encryption, then it will attempt to use the key.

参数

filename

Path to the SQLite database.

flags

Optional flags used to determine how to open the SQLite database. By default, open uses SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Open the database for reading only.

  • SQLITE3_OPEN_READWRITE: Open the database for reading and writing.

  • SQLITE3_OPEN_CREATE: Create the database if it does not exist.

encryption_key

An optional encryption key used when encrypting and decrypting an SQLite database.

返回值

Returns TRUE on success, FALSE on failure to open the database.

范例

Example #1 SQLite3::open() example

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>

SQLite3::loadExtension
SQLite3::prepare
SQLite3


Prepares an SQL statement for execution

SQLite3::open
SQLite3::query
SQLite3
PHP 手册

SQLite3::prepare

(PHP 5 >= 5.3.0)

SQLite3::prepare — Prepares an SQL statement for execution

说明

public SQLite3_stmt SQLite3::prepare ( string $query )

Prepares an SQL statement for execution and returns an SQLite3_stmt object.

参数

query

The SQL query to prepare.

返回值

Returns an SQLite3_stmt object on success or FALSE on failure.

范例

Example #1 SQLite3::prepare() example

<?php
unlink('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>

SQLite3::open
SQLite3::query
SQLite3


Executes an SQL query

SQLite3::prepare
SQLite3::querySingle
SQLite3
PHP 手册

SQLite3::query

(PHP 5 >= 5.3.0)

SQLite3::query — Executes an SQL query

说明

public SQLite3_result SQLite3::query ( string $query )

Executes an SQL query, returning an SQLite3_result object if the query returns results.

参数

query

The SQL query to execute.

返回值

Returns an SQLite3_result object if the query returns results. Otherwise, returns TRUE if the query succeeded, FALSE on failure.

范例

Example #1 SQLite3::query() example

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
    var_dump($row);
}
?>

SQLite3::prepare
SQLite3::querySingle
SQLite3


Executes a query and returns a single result

SQLite3::query
SQLite3::version
SQLite3
PHP 手册

SQLite3::querySingle

(PHP 5 >= 5.3.0)

SQLite3::querySingle — Executes a query and returns a single result

说明

public mixed SQLite3::querySingle ( string $query [, bool $entire_row=false ] )

Executes a query and returns a single result.

参数

query

The SQL query to execute.

entire_row

By default, querySingle returns the value of the first column returned by the query. If entire_row is TRUE, then it returns an array of the entire first row.

返回值

Returns the value of the first column of results or an array of the entire first row (if entire_row is TRUE), otherwise FALSE on failure.

范例

Example #1 SQLite3::querySingle() example

<?php
$db = new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1', true));
?>

上例的输出类似于：

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)

SQLite3::query
SQLite3::version
SQLite3


Returns the SQLite3 library version as a string constant and as a number

SQLite3::querySingle
SQLite3Stmt
SQLite3
PHP 手册

SQLite3::version

(PHP 5 >= 5.3.0)

SQLite3::version — Returns the SQLite3 library version as a string constant and as a number

说明

public array SQLite3::version ( void )

Returns the SQLite3 library version as a string constant and as a number.

参数

This function has no parameters.

返回值

Returns an associative array with the keys "versionString" and "versionNumber".

范例

Example #1 SQLite3::version() example

<?php
print_r(SQLite3::version());
?>

上例的输出类似于：

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)

SQLite3::querySingle
SQLite3Stmt
SQLite3


The SQLite3Stmt class

简介

Description of the class.

Class synopsis

SQLite3Stmt
SQLite3Stmt {
/* Methods */
public bool bindParam ( int $param_number , mixed &$param [, int $type ] )
public bool bindValue ( int $param_number , mixed $param [, int $type ] )
public bool clear ( void )
public bool close ( void )
public SQLite3_result execute ( void )
public int paramCount ( void )
public bool reset ( void )
}

Table of Contents

  • SQLite3Stmt::bindParam — Binds a parameter to a statement variable
  • SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable
  • SQLite3Stmt::clear — Clears all current bound parameters
  • SQLite3Stmt::close — Closes the prepared statement
  • SQLite3Stmt::execute — Executes a prepared statement and returns a result set object
  • SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement
  • SQLite3Stmt::reset — Resets the prepared statement
SQLite3::version
SQLite3Stmt::bindParam
SQLite3


Binds a parameter to a statement variable

SQLite3Stmt
SQLite3Stmt::bindValue
SQLite3Stmt
PHP 手册

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0)

SQLite3Stmt::bindParam — Binds a parameter to a statement variable

说明

public bool SQLite3Stmt::bindParam ( int $param_number , mixed &$param [, int $type ] )

Binds a parameter to a statement variable.

参数

param_number

An integer identifying the statement variable to which the parameter should be bound.

param

The parameter to bind to a statement variable.

type

The data type of the parameter to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

返回值

Returns TRUE if the parameter is bound to the statement variable, FALSE on failure.

SQLite3Stmt
SQLite3Stmt::bindValue
SQLite3Stmt


Binds the value of a parameter to a statement variable

SQLite3Stmt::bindParam
SQLite3Stmt::clear
SQLite3Stmt
PHP 手册

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0)

SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable

说明

public bool SQLite3Stmt::bindValue ( int $param_number , mixed $param [, int $type ] )

Binds the value of a parameter to a statement variable.

参数

param_number

An integer identifying the statement variable to which the value should be bound.

param

The value to bind to a statement variable.

type

The data type of the value to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

返回值

Returns TRUE if the value is bound to the statement variable, FALSE on failure.

SQLite3Stmt::bindParam
SQLite3Stmt::clear
SQLite3Stmt


Clears all current bound parameters

SQLite3Stmt::bindValue
SQLite3Stmt::close
SQLite3Stmt
PHP 手册

SQLite3Stmt::clear

(PHP 5 >= 5.3.0)

SQLite3Stmt::clear — Clears all current bound parameters

说明

public bool SQLite3Stmt::clear ( void )

Clears all current bound parameters.

参数

This function has no parameters.

返回值

Returns TRUE on successful clearing of bound parameters, FALSE on failure.

SQLite3Stmt::bindValue
SQLite3Stmt::close
SQLite3Stmt


Closes the prepared statement

SQLite3Stmt::clear
SQLite3Stmt::execute
SQLite3Stmt
PHP 手册

SQLite3Stmt::close

(PHP 5 >= 5.3.0)

SQLite3Stmt::close — Closes the prepared statement

说明

public bool SQLite3Stmt::close ( void )

Closes the prepared statement.

参数

This function has no parameters.

返回值

Returns TRUE

SQLite3Stmt::clear
SQLite3Stmt::execute
SQLite3Stmt


Executes a prepared statement and returns a result set object

SQLite3Stmt::close
SQLite3Stmt::paramCount
SQLite3Stmt
PHP 手册

SQLite3Stmt::execute

(PHP 5 >= 5.3.0)

SQLite3Stmt::execute — Executes a prepared statement and returns a result set object

说明

public SQLite3_result SQLite3Stmt::execute ( void )

Executes a prepared statement and returns a result set object.

参数

This function has no parameters.

返回值

Returns an SQLite3_result object on successful execution of the prepared statement, FALSE on failure.

SQLite3Stmt::close
SQLite3Stmt::paramCount
SQLite3Stmt


Returns the number of parameters within the prepared statement

SQLite3Stmt::execute
SQLite3Stmt::reset
SQLite3Stmt
PHP 手册

SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0)

SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement

说明

public int SQLite3Stmt::paramCount ( void )

Returns the number of parameters within the prepared statement.

参数

This function has no parameters.

返回值

Returns the number of parameters within the prepared statement.

SQLite3Stmt::execute
SQLite3Stmt::reset
SQLite3Stmt


Resets the prepared statement

SQLite3Stmt::paramCount
SQLite3Result
SQLite3Stmt
PHP 手册

SQLite3Stmt::reset

(PHP 5 >= 5.3.0)

SQLite3Stmt::reset — Resets the prepared statement

说明

public bool SQLite3Stmt::reset ( void )

Resets the prepared statement to its state prior to execution. All bindings remain intact after reset.

参数

This function has no parameters.

返回值

Returns TRUE if the statement is successfully reset, FALSE on failure.

SQLite3Stmt::paramCount
SQLite3Result
SQLite3Stmt


The SQLite3Result class

简介

Description of the class.

Class synopsis

SQLite3Result
SQLite3Result {
/* Methods */
public string columnName ( int $column_number )
public int columnType ( int $column_number )
public array fetchArray ([ int $mode=SQLITE3_BOTH ] )
public bool finalize ( void )
public int numColumns ( void )
public bool reset ( void )
}

Table of Contents

  • SQLite3Result::columnName — Returns the name of the nth column
  • SQLite3Result::columnType — Returns the type of the nth column
  • SQLite3Result::fetchArray — Fetches a result row as an associative or numerically indexed array or both
  • SQLite3Result::finalize — Closes the result set
  • SQLite3Result::numColumns — Returns the number of columns in the result set
  • SQLite3Result::reset — Resets the result set back to the first row
SQLite3Stmt::reset
SQLite3Result::columnName
SQLite3


Returns the name of the nth column

SQLite3Result
SQLite3Result::columnType
SQLite3Result
PHP 手册

SQLite3Result::columnName

(PHP 5 >= 5.3.0)

SQLite3Result::columnName — Returns the name of the nth column

说明

public string SQLite3Result::columnName ( int $column_number )

Returns the name of the column specified by the column_number .

参数

column_number

The numeric zero-based index of the column.

返回值

Returns the string name of the column identified by column_number .

SQLite3Result
SQLite3Result::columnType
SQLite3Result


Returns the type of the nth column

SQLite3Result::columnName
SQLite3Result::fetchArray
SQLite3Result
PHP 手册

SQLite3Result::columnType

(PHP 5 >= 5.3.0)

SQLite3Result::columnType — Returns the type of the nth column

说明

public int SQLite3Result::columnType ( int $column_number )

Returns the type of the column identified by column_number .

参数

column_number

The numeric zero-based index of the column.

返回值

Returns the data type index of the column identified by column_number (one of SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB, or SQLITE3_NULL).

SQLite3Result::columnName
SQLite3Result::fetchArray
SQLite3Result


Fetches a result row as an associative or numerically indexed array or both

SQLite3Result::columnType
SQLite3Result::finalize
SQLite3Result
PHP 手册

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0)

SQLite3Result::fetchArray — Fetches a result row as an associative or numerically indexed array or both

说明

public array SQLite3Result::fetchArray ([ int $mode=SQLITE3_BOTH ] )

Fetches a result row as an associative or numerically indexed array or both. By default, fetches as both.

参数

mode

Controls how the next row will be returned to the caller. This value must be one of either SQLITE3_ASSOC, SQLITE3_NUM, or SQLITE3_BOTH. It defaults to SQLITE3_BOTH.

  • SQLITE3_ASSOC: returns an array indexed by column name as returned in the corresponding result set

  • SQLITE3_NUM: returns an array indexed by column number as returned in the corresponding result set, starting at column 0

  • SQLITE3_BOTH: returns an array indexed by both column name and number as returned in the corresponding result set, starting at column 0

返回值

Returns a result row as an associatively or numerically indexed array or both.

SQLite3Result::columnType
SQLite3Result::finalize
SQLite3Result


Closes the result set

SQLite3Result::fetchArray
SQLite3Result::numColumns
SQLite3Result
PHP 手册

SQLite3Result::finalize

(PHP 5 >= 5.3.0)

SQLite3Result::finalize — Closes the result set

说明

public bool SQLite3Result::finalize ( void )

Closes the result set.

参数

This function has no parameters.

返回值

Returns TRUE.

SQLite3Result::fetchArray
SQLite3Result::numColumns
SQLite3Result


Returns the number of columns in the result set

SQLite3Result::finalize
SQLite3Result::reset
SQLite3Result
PHP 手册

SQLite3Result::numColumns

(PHP 5 >= 5.3.0)

SQLite3Result::numColumns — Returns the number of columns in the result set

说明

public int SQLite3Result::numColumns ( void )

Returns the number of columns in the result set.

参数

This function has no parameters.

返回值

Returns the number of columns in the result set.

SQLite3Result::finalize
SQLite3Result::reset
SQLite3Result


Resets the result set back to the first row

SQLite3Result::numColumns
Sybase
SQLite3Result
PHP 手册

SQLite3Result::reset

(PHP 5 >= 5.3.0)

SQLite3Result::reset — Resets the result set back to the first row

说明

public bool SQLite3Result::reset ( void )

Resets the result set back to the first row.

参数

This function has no parameters.

返回值

Returns TRUE if the result set is successfully reset back to the first row, FALSE on failure.

SQLite3Result::numColumns
Sybase
SQLite3Result


Sybase

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Sybase 函数
    • sybase_affected_rows — Gets number of affected rows in last query
    • sybase_close — Closes a Sybase connection
    • sybase_connect — Opens a Sybase server connection
    • sybase_data_seek — Moves internal row pointer
    • sybase_deadlock_retry_count — Sets the deadlock retry count
    • sybase_fetch_array — Fetch row as array
    • sybase_fetch_assoc — Fetch a result row as an associative array
    • sybase_fetch_field — Get field information from a result
    • sybase_fetch_object — Fetch a row as an object
    • sybase_fetch_row — Get a result row as an enumerated array
    • sybase_field_seek — Sets field offset
    • sybase_free_result — Frees result memory
    • sybase_get_last_message — Returns the last message from the server
    • sybase_min_client_severity — Sets minimum client severity
    • sybase_min_error_severity — Sets minimum error severity
    • sybase_min_message_severity — Sets minimum message severity
    • sybase_min_server_severity — Sets minimum server severity
    • sybase_num_fields — Gets the number of fields in a result set
    • sybase_num_rows — Get number of rows in a result set
    • sybase_pconnect — Open persistent Sybase connection
    • sybase_query — Sends a Sybase query
    • sybase_result — Get result data
    • sybase_select_db — Selects a Sybase database
    • sybase_set_message_handler — Sets the handler called when a server message is raised
    • sybase_unbuffered_query — Send a Sybase query and do not block
SQLite3Result::reset
简介
与具体数据库系统相关的扩展


简介

Sybase
安装/配置
Sybase


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Sybase


安装

To enable Sybase-DB support configure PHP --with-sybase[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase. To enable Sybase-CT support configure PHP --with-sybase-ct[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase.

Note: As of PHP 5.3.0, the Sybase extension has been superseded by the sybase_ct extension and is no longer maintained. To continue using sybase you must use the sybase_ct extension.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Sybase configuration options
Name | Default | Changeable | Changelog
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.0.2. PHP_INI_SYSTEM in PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.0.2. PHP_INI_SYSTEM in PHP <= 4.0.3.
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.0.2. PHP_INI_SYSTEM in PHP <= 4.0.3.
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM |
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybase.compatability_mode | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL | Removed in PHP 6.0.0.

以下是配置选项的简要解释。

sybase.allow_persistent boolean

Whether to allow persistent Sybase connections.

sybase.max_persistent integer

The maximum number of persistent Sybase connections per process. -1 means no limit.

sybase.max_links integer

The maximum number of Sybase connections per process, including persistent connections. -1 means no limit.

sybase.min_error_severity integer

Minimum error severity to display.

sybase.min_message_severity integer

Minimum message severity to display.

magic_quotes_sybase boolean

If magic_quotes_sybase is on, a single-quote is escaped with a single-quote instead of a backslash if magic_quotes_gpc or magic_quotes_runtime are enabled.

Note: Note that when magic_quotes_sybase is ON it completely overrides magic_quotes_gpc . In this case even when magic_quotes_gpc is enabled neither double quotes, backslashes or NUL's will be escaped.

Sybase-CT configuration options
Name | Default | Changeable | Changelog
sybct.allow_persistent | "1" | PHP_INI_SYSTEM | PHP_INI_ALL in PHP <= 4.0.2. Available since PHP 4.0.2. Removed in PHP 4.0.3.
sybct.max_persistent | "-1" | PHP_INI_SYSTEM | PHP_INI_ALL in PHP <= 4.0.2. Available since PHP 4.0.2. Removed in PHP 4.0.3.
sybct.max_links | "-1" | PHP_INI_SYSTEM | PHP_INI_ALL in PHP <= 4.0.2. Available since PHP 4.0.2. Removed in PHP 4.0.3.
sybct.min_server_severity | "10" | PHP_INI_ALL | Available since PHP 4.0.2. Removed in PHP 4.0.3.
sybct.min_client_severity | "10" | PHP_INI_ALL | Available since PHP 4.0.2. Removed in PHP 4.0.3.
sybct.hostname | NULL | PHP_INI_ALL | Available since PHP 4.0.2. Removed in PHP 4.0.3.
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Available since PHP 4.3.0.

以下是配置选项的简要解释。

sybct.allow_persistent boolean

Whether to allow persistent Sybase-CT connections. The default is on.

sybct.max_persistent integer

The maximum number of persistent Sybase-CT connections per process. The default is -1 meaning unlimited.

sybct.max_links integer

The maximum number of Sybase-CT connections per process, including persistent connections. The default is -1 meaning unlimited.

sybct.min_server_severity integer

Server messages with severity greater than or equal to sybct.min_server_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_server_severity(). The default is 10 which reports errors of information severity or greater.

sybct.min_client_severity integer

Client library messages with severity greater than or equal to sybct.min_client_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_client_severity(). The default is 10 which effectively disables reporting.

sybct.login_timeout integer

The maximum time in seconds to wait for a connection attempt to succeed before returning failure. Note that if max_execution_time has been exceeded when a connection attempt times out, your script will be terminated before it can take action on failure. The default is one minute.

sybct.timeout integer

The maximum time in seconds to wait for a select_db or query operation to succeed before returning failure. Note that if max_execution_time has been exceeded when an operation times out, your script will be terminated before it can take action on failure. The default is no limit.

sybct.hostname string

The name of the host you claim to be connecting from, for display by sp_who. The default is none.

sybct.deadlock_retry_count int

Allows you to define how often deadlocks are to be retried. The default is 0, value -1 means "forever".

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Sybase 函数
Sybase


Sybase 函数

Table of Contents

  • sybase_affected_rows — Gets number of affected rows in last query
  • sybase_close — Closes a Sybase connection
  • sybase_connect — Opens a Sybase server connection
  • sybase_data_seek — Moves internal row pointer
  • sybase_deadlock_retry_count — Sets the deadlock retry count
  • sybase_fetch_array — Fetch row as array
  • sybase_fetch_assoc — Fetch a result row as an associative array
  • sybase_fetch_field — Get field information from a result
  • sybase_fetch_object — Fetch a row as an object
  • sybase_fetch_row — Get a result row as an enumerated array
  • sybase_field_seek — Sets field offset
  • sybase_free_result — Frees result memory
  • sybase_get_last_message — Returns the last message from the server
  • sybase_min_client_severity — Sets minimum client severity
  • sybase_min_error_severity — Sets minimum error severity
  • sybase_min_message_severity — Sets minimum message severity
  • sybase_min_server_severity — Sets minimum server severity
  • sybase_num_fields — Gets the number of fields in a result set
  • sybase_num_rows — Get number of rows in a result set
  • sybase_pconnect — Open persistent Sybase connection
  • sybase_query — Sends a Sybase query
  • sybase_result — Get result data
  • sybase_select_db — Selects a Sybase database
  • sybase_set_message_handler — Sets the handler called when a server message is raised
  • sybase_unbuffered_query — Send a Sybase query and do not block
预定义常量
sybase_affected_rows
Sybase


Gets number of affected rows in last query

Sybase 函数
sybase_close
Sybase 函数
PHP 手册

sybase_affected_rows

(PHP 4, PHP 5)

sybase_affected_rows — Gets number of affected rows in last query

说明

int sybase_affected_rows ([ resource $link_identifier ] )

sybase_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query on the server associated with the specified link identifier.

This command is not effective for SELECT statements, only on statements which modify records. To retrieve the number of rows returned from a SELECT, use sybase_num_rows().

参数

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

返回值

Returns the number of affected rows, as an integer.

范例

Example #1 Delete-Query

<?php
/* connect to database */
sybase_connect('SYBASE', '', '') or
die("Could not connect");
sybase_select_db("db");

sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Records deleted: %d\n", sybase_affected_rows());
?>

上例将输出：

Records deleted: 10

参见

  • sybase_num_rows() - Get number of rows in a result set

Sybase 函数
sybase_close
Sybase 函数


Closes a Sybase connection

sybase_affected_rows
sybase_connect
Sybase 函数
PHP 手册

sybase_close

(PHP 4, PHP 5)

sybase_close — Closes a Sybase connection

说明

bool sybase_close ([ resource $link_identifier ] )

sybase_close() closes the link to a Sybase database that's associated with the specified link link_identifier .

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

sybase_close() will not close persistent links generated by sybase_pconnect().

参数

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sybase_connect() - Opens a Sybase server connection
  • sybase_pconnect() - Open persistent Sybase connection

sybase_affected_rows
sybase_connect
Sybase 函数


Opens a Sybase server connection

sybase_close
sybase_data_seek
Sybase 函数
PHP 手册

sybase_connect

(PHP 4, PHP 5)

sybase_connect — Opens a Sybase server connection

说明

resource sybase_connect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname [, bool $new=false ]]]]]] )

sybase_connect() establishes a connection to a Sybase server.

In case a second call is made to sybase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling sybase_close().

参数

servername

The servername argument has to be a valid servername that is defined in the 'interfaces' file.

username

Sybase user name

password

Password associated with username .

charset

Specifies the charset for the connection

appname

new

Whether to open a new connection or use the existing one.

返回值

Returns a positive Sybase link identifier on success, or FALSE on failure.

更新日志

版本 | 说明
4.0.2 | The charset parameter was added.

范例

Example #1 sybase_connect() example

<?php
$link = sybase_connect('SYBASE', '', '')
        or die("Could not connect !");
echo "Connected successfully";
sybase_close($link);
?>

参见

  • sybase_pconnect() - Open persistent Sybase connection
  • sybase_close() - Closes a Sybase connection

sybase_close
sybase_data_seek
Sybase 函数


Moves internal row pointer

sybase_connect
sybase_deadlock_retry_count
Sybase 函数
PHP 手册

sybase_data_seek

(PHP 4, PHP 5)

sybase_data_seek — Moves internal row pointer

说明

bool sybase_data_seek ( resource $result_identifier , int $row_number )

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specified row number. The next call to sybase_fetch_row() would return that row.

参数

result_identifier

row_number

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sybase_fetch_row() - Get a result row as an enumerated array

sybase_connect
sybase_deadlock_retry_count
Sybase 函数


Sets the deadlock retry count

sybase_data_seek
sybase_fetch_array
Sybase 函数
PHP 手册

sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count — Sets the deadlock retry count

说明

void sybase_deadlock_retry_count ( int $retry_count )

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

参数

retry_count

Values for retry_count
-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

返回值

无返回值。

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

sybase_data_seek
sybase_fetch_array
Sybase 函数


Fetch row as array

sybase_deadlock_retry_count
sybase_fetch_assoc
Sybase 函数
PHP 手册

sybase_fetch_array

(PHP 4, PHP 5)

sybase_fetch_array — Fetch row as array

说明

array sybase_fetch_array ( resource $result )

sybase_fetch_array() is an extended version of sybase_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using sybase_fetch_array() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

参数

result

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Note: When selecting fields with identical names (for instance, in a join), the associative indices will have a sequential number prepended. See the example for details.

范例

Example #1 Identical fieldnames

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
var_dump(sybase_fetch_array($q));
sybase_close($dbh);
?>

The above example would produce the following output (assuming the two tables only have each one column called "person_id"):

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

参见

  • sybase_fetch_row() - Get a result row as an enumerated array
  • sybase_fetch_assoc() - Fetch a result row as an associative array
  • sybase_fetch_object() - Fetch a row as an object

sybase_deadlock_retry_count
sybase_fetch_assoc
Sybase 函数


Fetch a result row as an associative array

sybase_fetch_array
sybase_fetch_field
Sybase 函数
PHP 手册

sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc — Fetch a result row as an associative array

说明

array sybase_fetch_assoc ( resource $result )

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

参数

result

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

参见

  • sybase_fetch_row() - Get a result row as an enumerated array
  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_object() - Fetch a row as an object

sybase_fetch_array
sybase_fetch_field
Sybase 函数


Get field information from a result

sybase_fetch_assoc
sybase_fetch_object
Sybase 函数
PHP 手册

sybase_fetch_field

(PHP 4, PHP 5)

sybase_fetch_field — Get field information from a result

说明

object sybase_fetch_field ( resource $result [, int $field_offset=-1 ] )

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result.

参数

result

field_offset

If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

返回值

Returns an object containing field information.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.
  • column_source - the table from which the column was taken
  • max_length - maximum length of the column
  • numeric - 1 if the column is numeric
  • type - datatype of the column

参见

  • sybase_field_seek() - Sets field offset

sybase_fetch_assoc
sybase_fetch_object
Sybase 函数


Fetch a row as an object

sybase_fetch_field
sybase_fetch_row
Sybase 函数
PHP 手册

sybase_fetch_object

(PHP 4, PHP 5)

sybase_fetch_object — Fetch a row as an object

说明

object sybase_fetch_object ( resource $result [, mixed $object ] )

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

参数

result

object

Use the second object to specify the type of object you want to return. If this parameter is omitted, the object will be of type stdClass.

返回值

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

更新日志

版本 说明
4.3.0

This function will no longer return numeric object members. Old behaviour:

object(stdclass)(3) {
  [0]=>
  string(3) "foo"
  ["foo"]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
}
New behaviour:
object(stdclass)(3) {
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}

范例

Example #1 sybase_fetch_object() return as Foo

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

参见

  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_row() - Get a result row as an enumerated array

sybase_fetch_field
sybase_fetch_row
Sybase 函数


Get a result row as an enumerated array

sybase_fetch_object
sybase_field_seek
Sybase 函数
PHP 手册

sybase_fetch_row

(PHP 4, PHP 5)

sybase_fetch_row — Get a result row as an enumerated array

说明

array sybase_fetch_row ( resource $result )

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

参数

result

返回值

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 0.

Data types
PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (w/o precision), DECIMAL (w/o precision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (w/ precision), DECIMAL (w/ precision), REAL, FLOAT, MONEY
NULL | NULL

参见

  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_assoc() - Fetch a result row as an associative array
  • sybase_fetch_object() - Fetch a row as an object
  • sybase_data_seek() - Moves internal row pointer
  • sybase_result() - Get result data

sybase_fetch_object
sybase_field_seek
Sybase 函数


Sets field offset

sybase_fetch_row
sybase_free_result
Sybase 函数
PHP 手册

sybase_field_seek

(PHP 4, PHP 5)

sybase_field_seek — Sets field offset

说明

bool sybase_field_seek ( resource $result , int $field_offset )

Seeks to the specified field offset. If the next call to sybase_fetch_field() won't include a field offset, this field would be returned.

参数

result

field_offset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sybase_fetch_field() - Get field information from a result

sybase_fetch_row
sybase_free_result
Sybase 函数


Frees result memory

sybase_field_seek
sybase_get_last_message
Sybase 函数
PHP 手册

sybase_free_result

(PHP 4, PHP 5)

sybase_free_result — Frees result memory

说明

bool sybase_free_result ( resource $result )

sybase_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call sybase_free_result() with the result identifier as an argument and the associated result memory will be freed.

参数

result

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

sybase_field_seek
sybase_get_last_message
Sybase 函数


Returns the last message from the server

sybase_free_result
sybase_min_client_severity
Sybase 函数
PHP 手册

sybase_get_last_message

(PHP 4, PHP 5)

sybase_get_last_message — Returns the last message from the server

说明

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

返回值

Returns the message as a string.

参见

  • sybase_min_message_severity() - Sets minimum message severity

sybase_free_result
sybase_min_client_severity
Sybase 函数


Sets minimum client severity

sybase_get_last_message
sybase_min_error_severity
Sybase 函数
PHP 手册

sybase_min_client_severity

(PHP 4, PHP 5)

sybase_min_client_severity — Sets minimum client severity

说明

void sybase_min_client_severity ( int $severity )

sybase_min_client_severity() sets the minimum client severity level.

参数

severity

返回值

无返回值。

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

参见

  • sybase_min_server_severity() - Sets minimum server severity

sybase_get_last_message
sybase_min_error_severity
Sybase 函数


Sets minimum error severity

sybase_min_client_severity
sybase_min_message_severity
Sybase 函数
PHP 手册

sybase_min_error_severity

(PHP 4, PHP 5)

sybase_min_error_severity — Sets minimum error severity

说明

void sybase_min_error_severity ( int $severity )

sybase_min_error_severity() sets the minimum error severity level.

参数

severity

返回值

无返回值。

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

参见

  • sybase_min_message_severity() - Sets minimum message severity

sybase_min_client_severity
sybase_min_message_severity
Sybase 函数


Sets minimum message severity

sybase_min_error_severity
sybase_min_server_severity
Sybase 函数
PHP 手册

sybase_min_message_severity

(PHP 4, PHP 5)

sybase_min_message_severity — Sets minimum message severity

说明

void sybase_min_message_severity ( int $severity )

sybase_min_message_severity() sets the minimum message severity level.

参数

severity

返回值

无返回值。

注释

Note: 本函数仅适用于 Sybase 的 DB 库接口，而不适用于 CT 库。

参见

  • sybase_min_error_severity() - Sets minimum error severity

sybase_min_error_severity
sybase_min_server_severity
Sybase 函数


Sets minimum server severity

sybase_min_message_severity
sybase_num_fields
Sybase 函数
PHP 手册

sybase_min_server_severity

(PHP 4, PHP 5)

sybase_min_server_severity — Sets minimum server severity

说明

void sybase_min_server_severity ( int $severity )

sybase_min_server_severity() sets the minimum server severity level.

参数

severity

返回值

无返回值。

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

参见

  • sybase_min_client_severity() - Sets minimum client severity

sybase_min_message_severity
sybase_num_fields
Sybase 函数


Gets the number of fields in a result set

sybase_min_server_severity
sybase_num_rows
Sybase 函数
PHP 手册

sybase_num_fields

(PHP 4, PHP 5)

sybase_num_fields — Gets the number of fields in a result set

说明

int sybase_num_fields ( resource $result )

sybase_num_fields() returns the number of fields in a result set.

参数

result

返回值

Returns the number of fields as an integer.

参见

  • sybase_query() - Sends a Sybase query
  • sybase_fetch_field() - Get field information from a result
  • sybase_num_rows() - Get number of rows in a result set

sybase_min_server_severity
sybase_num_rows
Sybase 函数


Get number of rows in a result set

sybase_num_fields
sybase_pconnect
Sybase 函数
PHP 手册

sybase_num_rows

(PHP 4, PHP 5)

sybase_num_rows — Get number of rows in a result set

说明

int sybase_num_rows ( resource $result )

sybase_num_rows() returns the number of rows in a result set.

参数

result

返回值

Returns the number of rows as an integer.

参见

  • sybase_num_fields() - Gets the number of fields in a result set
  • sybase_query() - Sends a Sybase query
  • sybase_fetch_row() - Get a result row as an enumerated array

sybase_num_fields
sybase_pconnect
Sybase 函数


Open persistent Sybase connection

sybase_num_rows
sybase_query
Sybase 函数
PHP 手册

sybase_pconnect

(PHP 4, PHP 5)

sybase_pconnect — Open persistent Sybase connection

说明

resource sybase_pconnect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname ]]]]] )

sybase_pconnect() acts very much like sybase_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (sybase_close() will not close links established by sybase_pconnect()).

This type of links is therefore called 'persistent'.

参数

servername

The servername argument has to be a valid servername that is defined in the 'interfaces' file.

username

Sybase user name

password

Password associated with username .

charset

Specifies the charset for the connection

appname

返回值

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

更新日志

版本 | 说明
4.0.2 | The charset parameter was added.

参见

  • sybase_connect() - Opens a Sybase server connection

sybase_num_rows
sybase_query
Sybase 函数


Sends a Sybase query

sybase_pconnect
sybase_result
Sybase 函数
PHP 手册

sybase_query

(PHP 4, PHP 5)

sybase_query — Sends a Sybase query

说明

mixed sybase_query ( string $query [, resource $link_identifier ] )

sybase_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

参数

query

link_identifier

If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

返回值

Returns a positive Sybase result identifier on success, FALSE on error, or TRUE if the query was successful but didn't return any columns.

参见

  • sybase_select_db() - Selects a Sybase database
  • sybase_connect() - Opens a Sybase server connection

sybase_pconnect
sybase_result
Sybase 函数


Get result data

sybase_query
sybase_select_db
Sybase 函数
PHP 手册

sybase_result

(PHP 4, PHP 5)

sybase_result — Get result data

说明

string sybase_result ( resource $result , int $row , mixed $field )

Returns the contents of the cell at the row and offset in the specified Sybase result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than sybase_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
sybase_fetch_row(),
sybase_fetch_array() and
sybase_fetch_object().

参数

result

row

field

The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

返回值

sybase_result() returns the contents of one cell from a Sybase result set.

sybase_query
sybase_select_db
Sybase 函数


Selects a Sybase database

sybase_result
sybase_set_message_handler
Sybase 函数
PHP 手册

sybase_select_db

(PHP 4, PHP 5)

sybase_select_db — Selects a Sybase database

说明

bool sybase_select_db ( string $database_name [, resource $link_identifier ] )

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier.

Every subsequent call to sybase_query() will be made on the active database.

参数

database_name

link_identifier

If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if sybase_connect() was called, and use it.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sybase_connect() - Opens a Sybase server connection
  • sybase_pconnect() - Open persistent Sybase connection
  • sybase_query() - Sends a Sybase query

sybase_result
sybase_set_message_handler
Sybase 函数


Sets the handler called when a server message is raised

sybase_select_db
sybase_unbuffered_query
Sybase 函数
PHP 手册

sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler — Sets the handler called when a server message is raised

说明

bool sybase_set_message_handler ( callback $handler [, resource $connection ] )

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

参数

handler

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

connection

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
4.3.5 | The connection parameter was added.

范例

Example #1 sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Example #2 sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text)
        {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Example #3 sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        if (257 == $msgnumber) {
            return false;
        }
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

sybase_select_db
sybase_unbuffered_query
Sybase 函数


Send a Sybase query and do not block

sybase_set_message_handler
文件系统相关扩展
Sybase 函数
PHP 手册

sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query — Send a Sybase query and do not block

说明

resource sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] )

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Note: If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

参数

query

link_identifier

store_result

The optional store_result can be FALSE to indicate the resultsets shouldn't be fetched into memory, thus minimizing memory usage which is particularly interesting with very large resultsets.

返回值

Returns a positive Sybase result identifier on success, or FALSE on error.

范例

Example #1 sybase_unbuffered_query() example

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

注释

Note: 本函数仅适用于 Sybase 的 CT 库接口，而不适用于 DB 库。

参见

  • sybase_query() - Sends a Sybase query

sybase_set_message_handler
文件系统相关扩展
Sybase 函数


文件系统相关扩展

  • Direct IO
    • 简介
    • 安装/配置
    • 预定义常量
    • Direct IO 函数
  • Directories
    • 安装/配置
    • 预定义常量
    • Directory 函数
  • Fileinfo — File Information
    • 简介
    • 安装/配置
    • 预定义常量
    • Fileinfo 函数
  • Filesystem
    • 简介
    • 安装/配置
    • 预定义常量
    • Filesystem 函数
  • Inotify
    • 简介
    • 安装/配置
    • 预定义常量
    • Inotify 函数
  • Mimetype
    • 简介
    • 安装/配置
    • 预定义常量
    • Mimetype 函数
  • xattr
    • 简介
    • 安装/配置
    • 预定义常量
    • xattr 函数
  • xdiff
    • 简介
    • 安装/配置
    • 预定义常量
    • xdiff 函数
sybase_unbuffered_query
Direct IO
函数参考


Direct IO

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Direct IO 函数
    • dio_close — Closes the file descriptor given by fd
    • dio_fcntl — Performs a c library fcntl on fd
    • dio_open — Opens a new filename with specified permissions of flags and creation permissions of mode
    • dio_read — Reads bytes from a file descriptor
    • dio_seek — Seeks to pos on fd from whence
    • dio_stat — Gets stat information about the file descriptor fd
    • dio_tcsetattr — Sets terminal attributes and baud rate for a serial port
    • dio_truncate — Truncates file descriptor fd to offset bytes
    • dio_write — Writes data to fd with optional truncation at length
文件系统相关扩展
简介
文件系统相关扩展


简介

PHP supports the direct io functions as described in the Posix Standard (Section 6) for performing I/O functions at a lower level than the C-Language stream I/O functions (fopen(), fread(),..). The use of the DIO functions should be considered only when direct control of a device is needed. In all other cases, the standard filesystem functions are more than adequate.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

This extension is only available on Windows Platforms as of PHP 5.0.0

Direct IO
安装/配置
Direct IO


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Direct IO


安装

To get these functions to work, you have to configure PHP with --enable-dio.

需求
运行时配置
安装/配置


资源类型

One resource type is defined by this extension: a file descriptor returned by dio_open().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

F_DUPFD (integer)
F_GETFD (integer)
F_GETFL (integer)
F_GETLK (integer)
F_GETOWN (integer)
F_RDLCK (integer)
F_SETFL (integer)
F_SETLK (integer)
F_SETLKW (integer)
F_SETOWN (integer)
F_UNLCK (integer)
F_WRLCK (integer)
O_APPEND (integer)
O_ASYNC (integer)
O_CREAT (integer)
O_EXCL (integer)
O_NDELAY (integer)
O_NOCTTY (integer)
O_NONBLOCK (integer)
O_RDONLY (integer)
O_RDWR (integer)
O_SYNC (integer)
O_TRUNC (integer)
O_WRONLY (integer)
S_IRGRP (integer)
S_IROTH (integer)
S_IRUSR (integer)
S_IRWXG (integer)
S_IRWXO (integer)
S_IRWXU (integer)
S_IWGRP (integer)
S_IWOTH (integer)
S_IWUSR (integer)
S_IXGRP (integer)
S_IXOTH (integer)
S_IXUSR (integer)
资源类型
Direct IO 函数
Direct IO


Direct IO 函数

Table of Contents

  • dio_close — Closes the file descriptor given by fd
  • dio_fcntl — Performs a c library fcntl on fd
  • dio_open — Opens a new filename with specified permissions of flags and creation permissions of mode
  • dio_read — Reads bytes from a file descriptor
  • dio_seek — Seeks to pos on fd from whence
  • dio_stat — Gets stat information about the file descriptor fd
  • dio_tcsetattr — Sets terminal attributes and baud rate for a serial port
  • dio_truncate — Truncates file descriptor fd to offset bytes
  • dio_write — Writes data to fd with optional truncation at length
预定义常量
dio_close
Direct IO


Closes the file descriptor given by fd

Direct IO 函数
dio_fcntl
Direct IO 函数
PHP 手册

dio_close

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_close — Closes the file descriptor given by fd

说明

void dio_close ( resource $fd )

The function dio_close() closes the file descriptor fd .

参数

fd

The file descriptor returned by dio_open().

返回值

无返回值。

范例

Example #1 Closing an open file descriptor

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

参见

  • dio_open() - Opens a new filename with specified permissions of flags and creation permissions of mode

Direct IO 函数
dio_fcntl
Direct IO 函数


Performs a c library fcntl on fd

dio_close
dio_open
Direct IO 函数
PHP 手册

dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_fcntl — Performs a c library fcntl on fd

说明

mixed dio_fcntl ( resource $fd , int $cmd [, mixed $args ] )

The dio_fcntl() function performs the operation specified by cmd on the file descriptor fd . Some commands require additional arguments args to be supplied.

参数

fd

The file descriptor returned by dio_open().

cmd

Can be one of the following operations:

  • F_SETLK - Lock is set or cleared. If the lock is held by someone else dio_fcntl() returns -1.

  • F_SETLKW - like F_SETLK, but in case the lock is held by someone else, dio_fcntl() waits until the lock is released.

  • F_GETLK - dio_fcntl() returns an associative array (as described above) if someone else prevents lock. If there is no obstruction key "type" will set to F_UNLCK.

  • F_DUPFD - finds the lowest numbered available file descriptor greater than or equal to args and returns them.

  • F_SETFL - Sets the file descriptors flags to the value specified by args , which can be O_APPEND, O_NONBLOCK or O_ASYNC. To use O_ASYNC you will need to use the PCNTL extension.

args

args is an associative array, when cmd is F_SETLK or F_SETLLW, with the following keys:

  • "start" - offset where lock begins

  • "length" - size of locked area. zero means to end of file

  • "wenth" - Where l_start is relative to: can be SEEK_SET, SEEK_END and SEEK_CUR

  • "type" - type of lock: can be F_RDLCK (read lock), F_WRLCK (write lock) or F_UNLCK (unlock)

返回值

Returns the result of the C call.

范例

Example #1 Setting and clearing a lock

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   // the file descriptor appears locked
   echo "The lock can not be cleared. It is held by someone else.";
} else {
   echo "Lock succesfully set/cleared";
}

dio_close($fd);
?>

注释

Note: 本函数未在 Windows 平台下实现。

dio_close
dio_open
Direct IO 函数


Opens a new filename with specified permissions of flags and creation permissions of mode

dio_fcntl
dio_read
Direct IO 函数
PHP 手册

dio_open

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_open — Opens a new filename with specified permissions of flags and creation permissions of mode

说明

resource dio_open ( string $filename , int $flags [, int $mode=0 ] )

dio_open() opens a file and returns a new file descriptor for it.

参数

filename

The opened file.

flags

The flags parameter can also include any combination of the following flags:

  • O_CREAT - creates the file, if it doesn't already exist.

  • O_EXCL - if both, O_CREAT and O_EXCL are set, dio_open() fails, if the file already exists.

  • O_TRUNC - if the file exists, and its opened for write access, the file will be truncated to zero length.

  • O_APPEND - write operations write data at the end of the file.

  • O_NONBLOCK - sets non blocking mode.

mode

If flags is O_CREAT, mode will set the mode of the file (creation permissions).

  • O_RDONLY - opens the file for read access.

  • O_WRONLY - opens the file for write access.

  • O_RDWR - opens the file for both reading and writing.

返回值

A file descriptor or FALSE on error.

范例

Example #1 Opening a file descriptor

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

参见

  • dio_close() - Closes the file descriptor given by fd

dio_fcntl
dio_read
Direct IO 函数


Reads bytes from a file descriptor

dio_open
dio_seek
Direct IO 函数
PHP 手册

dio_read

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_read — Reads bytes from a file descriptor

说明

string dio_read ( resource $fd [, int $len=1024 ] )

The function dio_read() reads and returns len bytes from file with descriptor fd .

参数

fd

The file descriptor returned by dio_open().

len

The number of bytes to read. If not specified, dio_read() reads 1K sized block.

返回值

The bytes read from fd .

参见

  • dio_write() - Writes data to fd with optional truncation at length

dio_open
dio_seek
Direct IO 函数


Seeks to pos on fd from whence

dio_read
dio_stat
Direct IO 函数
PHP 手册

dio_seek

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_seek — Seeks to pos on fd from whence

说明

int dio_seek ( resource $fd , int $pos [, int $whence=SEEK_SET ] )

The function dio_seek() is used to change the file position of the given file descriptor.

参数

fd

The file descriptor returned by dio_open().

pos

The new position.

whence

Specifies how the position pos should be interpreted:

  • SEEK_SET (default) - specifies that pos is specified from the beginning of the file.

  • SEEK_CUR - Specifies that pos is a count of characters from the current file position. This count may be positive or negative.

  • SEEK_END - Specifies that pos is a count of characters from the end of the file. A negative count specifies a position within the current extent of the file; a positive count specifies a position past the current end. If you set the position past the current end, and actually write data, you will extend the file with zeros up to that position.

返回值

范例

Example #1 Positioning in a file

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_seek($fd, 10, SEEK_SET);
// position is now at 10 characters from the start of the file

dio_seek($fd, -2, SEEK_CUR);
// position is now at 8 characters from the start of the file

dio_seek($fd, -5, SEEK_END);
// position is now at 5 characters from the end of the file

dio_seek($fd, 10, SEEK_END);
// position is now at 10 characters past the end of the file.
// The 10 characters between the end of the file and the current
// position are filled with zeros.

dio_close($fd);
?>

dio_read
dio_stat
Direct IO 函数


Gets stat information about the file descriptor fd

dio_seek
dio_tcsetattr
Direct IO 函数
PHP 手册

dio_stat

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_stat — Gets stat information about the file descriptor fd

说明

array dio_stat ( resource $fd )

dio_stat() returns information about the given file descriptor.

参数

fd

The file descriptor returned by dio_open().

返回值

Returns an associative array with the following keys:

  • "device" - device

  • "inode" - inode

  • "mode" - mode

  • "nlink" - number of hard links

  • "uid" - user id

  • "gid" - group id

  • "device_type" - device type (if inode device)

  • "size" - total size in bytes

  • "blocksize" - blocksize

  • "blocks" - number of blocks allocated

  • "atime" - time of last access

  • "mtime" - time of last modification

  • "ctime" - time of last change

On error dio_stat() returns NULL.

dio_seek
dio_tcsetattr
Direct IO 函数


Sets terminal attributes and baud rate for a serial port

dio_stat
dio_truncate
Direct IO 函数
PHP 手册

dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5)

dio_tcsetattr — Sets terminal attributes and baud rate for a serial port

说明

bool dio_tcsetattr ( resource $fd , array $options )

dio_tcsetattr() sets the terminal attributes and baud rate of the open fd .

参数

fd

The file descriptor returned by dio_open().

options

The currently available options are:

  • 'baud' - baud rate of the port - can be 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 or 50, default value is 9600.

  • 'bits' - data bits - can be 8,7,6 or 5. Default value is 8.

  • 'stop' - stop bits - can be 1 or 2. Default value is 1.

  • 'parity' - can be 0,1 or 2. Default value is 0.

返回值

无返回值。

范例

Example #1 Setting the baud rate on a serial port

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd, F_SETFL, O_SYNC);

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  => 1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd, 256);

  if ($data) {
      echo $data;
  }
}

?>

注释

Note: 本函数未在 Windows 平台下实现。

dio_stat
dio_truncate
Direct IO 函数


Truncates file descriptor fd to offset bytes

dio_tcsetattr
dio_write
Direct IO 函数
PHP 手册

dio_truncate

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_truncate — Truncates file descriptor fd to offset bytes

说明

bool dio_truncate ( resource $fd , int $offset )

dio_truncate() truncates a file to at most offset bytes in size.

If the file previously was larger than this size, the extra data is lost. If the file previously was shorter, it is unspecified whether the file is left unchanged or is extended. In the latter case the extended part reads as zero bytes.

参数

fd

The file descriptor returned by dio_open().

offset

The offset in bytes.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数未在 Windows 平台下实现。

dio_tcsetattr
dio_write
Direct IO 函数


Writes data to fd with optional truncation at length

dio_truncate
Directories
Direct IO 函数
PHP 手册

dio_write

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_write — Writes data to fd with optional truncation at length

说明

int dio_write ( resource $fd , string $data [, int $len=0 ] )

dio_write() writes up to len bytes from data to file fd .

参数

fd

The file descriptor returned by dio_open().

data

The written data.

len

The length of data to write in bytes. If not specified, the function writes all the data to the specified file.

返回值

Returns the number of bytes written to fd .

参见

  • dio_read() - Reads bytes from a file descriptor

dio_truncate
Directories
Direct IO 函数


Directories

  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Directory 函数
    • chdir — 改变目录
    • chroot — 改变根目录
    • dir — directory 类
    • closedir — 关闭目录句柄
    • getcwd — 取得当前工作目录
    • opendir — 打开目录句柄
    • readdir — 从目录句柄中读取条目
    • rewinddir — 倒回目录句柄
    • scandir — 列出指定路径中的文件和目录
dio_write
安装/配置
文件系统相关扩展


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
Directories
需求
Directories


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)

Note: PATH_SEPARATOR 是在 PHP 4.3.0-RC2 中引入。

资源类型
Directory 函数
Directories


Directory 函数

参见

For related functions such as dirname(),
is_dir(), mkdir(), and
rmdir(), see the
Filesystem section.

Table of Contents

  • chdir — 改变目录
  • chroot — 改变根目录
  • dir — directory 类
  • closedir — 关闭目录句柄
  • getcwd — 取得当前工作目录
  • opendir — 打开目录句柄
  • readdir — 从目录句柄中读取条目
  • rewinddir — 倒回目录句柄
  • scandir — 列出指定路径中的文件和目录
预定义常量
chdir
Directories


改变目录

Directory 函数
chroot
Directory 函数
PHP 手册

chdir

(PHP 4, PHP 5)

chdir — 改变目录

说明

bool chdir ( string $directory )

将 PHP 的当前目录改为 directory 。

参数

directory

新的当前目录

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 chdir() 例子

<?php

// current directory
echo getcwd() . "\n";

chdir('public_html');

// current directory
echo getcwd() . "\n";

?>

上例的输出类似于：

/home/vincent
/home/vincent/public_html

注释

Note: 当安全模式被激活时，PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID（所有者）。

参见

  • getcwd() - 取得当前工作目录

Directory 函数
chroot
Directory 函数


改变根目录

chdir
dir
Directory 函数
PHP 手册

chroot

(PHP 4 >= 4.0.5, PHP 5)

chroot — 改变根目录

说明

bool chroot ( string $directory )

将当前进程的根目录改变为 directory 。

本函数仅在系统支持且运行于 CLI，CGI 或嵌入 SAPI 版本时才能正确工作。此外本函数还需要 root 权限。

参数

directory

新目录

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数未在 Windows 平台下实现。

chdir
dir
Directory 函数


directory 类

chroot
closedir
Directory 函数
PHP 手册

dir

(PHP 4, PHP 5)

dir — directory 类

说明

dir
dir ( string $directory )
string $path ;
resource $handle ;
string read ( void )
void rewind ( void )
void close ( void )

这是个仿冒面向对象的机制来读取一个目录。给定的 directory 被打开。一旦目录被打开，有两个属性可用。handle 属性可以用在其它目录函数例如 readdir()，rewinddir() 和 closedir() 中。path 属性被设为被打开的目录路径。有三个方法可用：read，rewind 和 close。

范例

Example #1 dir() 例子

请留意下面例子中检查 dir() 返回值的风格。我们明确地测试返回值是否全等于（值和类型都相同 － 更多信息参见比较运算符）FALSE，否则任何目录项的名称求值为 FALSE 的都会导致循环停止。

<?php
$d = dir("/etc/php5");
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
   echo $entry."\n";
}
$d->close();
?>

上例的输出类似于：

Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli

注释

Note: read 方法返回的目录项的顺序依赖于系统。

Note: 本函数定义了内部类 Directory，意味着不能再用同样的名字定义用户自己的类。PHP 预定义类的完整列表见预定义类一节。

chroot
closedir
Directory 函数


关闭目录句柄

dir
getcwd
Directory 函数
PHP 手册

closedir

(PHP 4, PHP 5)

closedir — 关闭目录句柄

说明

void closedir ( resource $dir_handle )

关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开。

参数

dir_handle

目录句柄的 resource，之前由 opendir() 所打开的。

范例

Example #1 closedir() 例子

<?php
$dir = "/etc/php5/";

// Open a known directory, read directory into variable and then close
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>

dir
getcwd
Directory 函数


取得当前工作目录

closedir
opendir
Directory 函数
PHP 手册

getcwd

(PHP 4, PHP 5)

getcwd — 取得当前工作目录

说明

string getcwd ( void )

取得当前工作目录。

返回值

成功则返回当前工作目录，失败返回 FALSE。

在某些 Unix 的变种下，如果任何父目录没有设定可读或搜索模式，即使当前目录设定了，getcwd() 还是会返回 FALSE。有关模式与权限的更多信息见 chmod()。

范例

Example #1 getcwd() 例子

<?php

// current directory
echo getcwd() . "\n";

chdir('cvs');

// current directory
echo getcwd() . "\n";

?>

上例的输出类似于：

/home/didou
/home/didou/cvs

参见

  • chdir() - 改变目录
  • chmod() - 改变文件模式

closedir
opendir
Directory 函数


打开目录句柄

getcwd
readdir
Directory 函数
PHP 手册

opendir

(PHP 4, PHP 5)

opendir — 打开目录句柄

说明

resource opendir ( string $path [, resource $context ] )

打开一个目录句柄，可用于之后的 closedir()，readdir() 和 rewinddir() 调用中。

参数

path

要打开的目录路径

context

context 参数的说明见手册中的 Streams API 一章。

返回值

如果成功则返回目录句柄的 resource，失败则返回 FALSE。

如果 path 不是一个合法的目录或者因为权限限制或文件系统错误而不能打开目录，opendir() 返回 FALSE 并产生一个 E_WARNING 级别的 PHP 错误信息。可以在 opendir() 前面加上“@”符号来抑制错误信息的输出。

更新日志

版本 | 说明
5.0.0 | path 支持 ftp:// URL wrapper
4.3.0 | path 可以是任何支持目录列表的 URL，不过在 PHP 4 中只有 file:// URL wrapper 支持此功能

范例

Example #1 opendir() 例子

<?php
$dir = "/etc/php5/";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

上例的输出类似于：

filename: . : filetype: dir
filename: .. : filetype: dir
filename: apache : filetype: dir
filename: cgi : filetype: dir
filename: cli : filetype: dir

参见

  • is_dir() - 判断给定文件名是否是一个目录
  • readdir() - 从目录句柄中读取条目
  • Dir

getcwd
readdir
Directory 函数


从目录句柄中读取条目

opendir
rewinddir
Directory 函数
PHP 手册

readdir

(PHP 4, PHP 5)

readdir — 从目录句柄中读取条目

说明

string readdir ( resource $dir_handle )

返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

参数

dir_handle

目录句柄的 resource，之前由 opendir() 打开

返回值

成功则返回文件名，失败返回 FALSE。

范例

Example #1 列出目录中的所有文件

请留意下面例子中检查 readdir() 返回值的风格。这里明确地测试返回值是否全等于（值和类型都相同――更多信息参见比较运算符）FALSE，否则任何目录项的名称求值为 FALSE 的都会导致循环停止（例如一个目录名为“0”）。

<?php
// 注意在 4.0.0-RC2 之前不存在 !== 运算符

if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* 这是正确地遍历目录方法 */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* 这是错误地遍历目录的方法 */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>

Example #2 列出当前目录的所有文件并去掉 . 和 ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

参见

  • is_dir() - 判断给定文件名是否是一个目录
  • glob() - 寻找与模式匹配的文件路径

opendir
rewinddir
Directory 函数


倒回目录句柄

readdir
scandir
Directory 函数
PHP 手册

rewinddir

(PHP 4, PHP 5)

rewinddir — 倒回目录句柄

说明

void rewinddir ( resource $dir_handle )

将 dir_handle 指定的目录流重置到目录的开头。

参数

dir_handle

目录句柄的 resource，之前由 opendir() 打开

readdir
scandir
Directory 函数


列出指定路径中的文件和目录

rewinddir
Fileinfo
Directory 函数
PHP 手册

scandir

(PHP 5)

scandir — 列出指定路径中的文件和目录

说明

array scandir ( string $directory [, int $sorting_order [, resource $context ]] )

返回一个 array，包含有 directory 中的文件和目录。

参数

directory

要被浏览的目录

sorting_order

默认的排序顺序是按字母升序排列。如果使用了可选参数 sorting_order （设为 1），则排序顺序是按字母降序排列。

context

context 参数的说明见手册中的 Streams API 一章。

返回值

成功则返回包含有文件名的 array，如果失败则返回 FALSE。如果 directory 不是个目录，则返回布尔值 FALSE 并生成一条 E_WARNING 级的错误。

范例

Example #1 一个简单的 scandir() 例子

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

上例的输出类似于：

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Example #2 scandir() 在 PHP 4 中的实现

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

上例的输出类似于：

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

注释

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

参见

  • opendir() - 打开目录句柄
  • readdir() - 从目录句柄中读取条目
  • glob() - 寻找与模式匹配的文件路径
  • is_dir() - 判断给定文件名是否是一个目录
  • sort() - 对数组排序

rewinddir
Fileinfo
Directory 函数


File Information

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Fileinfo 函数
    • finfo_buffer — Return information about a string buffer
    • finfo_close — Close fileinfo resource
    • finfo_file — Return information about a file
    • finfo_open — Create a new fileinfo resource
    • finfo_set_flags — Set libmagic configuration options
scandir
简介
文件系统相关扩展


简介

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

Fileinfo
安装/配置
Fileinfo


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Fileinfo


需求

magic_open library is needed to build this extension.

安装/配置
安装
安装/配置


安装

This extension is enabled by default as of PHP 5.3.0. Before this time, fileinfo was a PECL extension but is no longer maintained there.

需求
运行时配置
安装/配置


资源类型

There is one resource used in Fileinfo extension: a magic database descriptor returned by finfo_open().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FILEINFO_NONE (integer)
No special handling.
FILEINFO_SYMLINK (integer)
Follow symlinks.
FILEINFO_MIME (integer)
Return a mime string, instead of a textual description.
FILEINFO_COMPRESS (integer)
Decompress compressed files.
FILEINFO_DEVICES (integer)
Look at the contents of blocks or character special devices.
FILEINFO_CONTINUE (integer)
Return all matches, not just the first.
FILEINFO_PRESERVE_ATIME (integer)
If possible preserve the original access time.
FILEINFO_RAW (integer)
Don't translate unprintable characters to a \ooo octal representation.
资源类型
Fileinfo 函数
Fileinfo


Fileinfo 函数

Table of Contents

  • finfo_buffer — Return information about a string buffer
  • finfo_close — Close fileinfo resource
  • finfo_file — Return information about a file
  • finfo_open — Create a new fileinfo resource
  • finfo_set_flags — Set libmagic configuration options
预定义常量
finfo_buffer
Fileinfo


Return information about a string buffer

Fileinfo 函数
finfo_close
Fileinfo 函数
PHP 手册

finfo_buffer

(PHP 5 >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_buffer — Return information about a string buffer

说明

string finfo_buffer ( resource $finfo , string $string=NULL [, int $options=FILEINFO_NONE [, resource $context=NULL ]] )
finfo
string buffer ( string $string=NULL [, int $options=FILEINFO_NONE [, resource $context=NULL ]] )

This function is used to get information about binary data in a string.

参数

finfo

Fileinfo resource returned by finfo_open().

string

Content of a file to be checked.

options

One or disjunction of more Fileinfo constants.

context

返回值

Returns a textual description of the string argument, or FALSE if an error occurred.

范例

Example #1 A finfo_buffer() example

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

上例的输出类似于：

application/x-sh

参见

  • finfo_file() - Return information about a file

Fileinfo 函数
finfo_close
Fileinfo 函数


Close fileinfo resource

finfo_buffer
finfo_file
Fileinfo 函数
PHP 手册

finfo_close

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_close — Close fileinfo resource

说明

bool finfo_close ( resource $finfo )
finfo
__destruct ( void )

This function closes the resource opened by finfo_open().

参数

finfo

Fileinfo resource returned by finfo_open().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

finfo_buffer
finfo_file
Fileinfo 函数


Return information about a file

finfo_close
finfo_open
Fileinfo 函数
PHP 手册

finfo_file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file — Return information about a file

说明

string finfo_file ( resource $finfo , string $file_name=NULL [, int $options=FILEINFO_NONE [, resource $context=NULL ]] )
finfo
string file ( string $file_name=NULL [, int $options=FILEINFO_NONE [, resource $context=NULL ]] )

This function is used to get information about a file.

参数

finfo

Fileinfo resource returned by finfo_open().

file_name

Name of a file to be checked.

options

One or disjunction of more Fileinfo constants.

context

For a description of contexts, refer to Stream 函数.

返回值

Returns a textual description of the contents of the filename argument, or FALSE if an error occurred.

范例

Example #1 A finfo_file() example

<?php
$finfo = finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

上例的输出类似于：

text/html
image/gif
application/vnd.ms-excel

参见

  • finfo_buffer() - Return information about a string buffer

finfo_close
finfo_open
Fileinfo 函数


Create a new fileinfo resource

finfo_file
finfo_set_flags
Fileinfo 函数
PHP 手册

finfo_open

finfo->__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_open -- finfo->__construct — Create a new fileinfo resource

说明

Procedural style

resource finfo_open ([ int $options=FILEINFO_NONE [, string $magic_file=NULL ]] )

Object oriented style (constructor):

finfo
__construct ([ int $options=FILEINFO_NONE [, string $magic_file=NULL ]] )

This function opens a magic database and returns its resource.

参数

options

One or disjunction of more Fileinfo constants.

magic_file

Name of a magic database file, usually something like /path/to/magic.mime. If not specified, the MAGIC environment variable is used. If this variable is not set either, /usr/share/misc/magic is used by default. A .mime and/or .mgc suffix is added if needed.

返回值

Returns a magic database resource on success or FALSE on failure.

范例

Example #1 Object oriented style

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

/* close connection */
$finfo->close();
?>

Example #2 Procedural style

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* close connection */
finfo_close($finfo);
?>

上例将输出：

text/plain

参见

  • finfo_close() - Close fileinfo resource

finfo_file
finfo_set_flags
Fileinfo 函数


Set libmagic configuration options

finfo_open
Filesystem
Fileinfo 函数
PHP 手册

finfo_set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_set_flags — Set libmagic configuration options

说明

bool finfo_set_flags ( resource $finfo , int $options )
finfo
bool set_flags ( int $options )

This function sets various Fileinfo options. Options can be set also directly in finfo_open() or other Fileinfo functions.

参数

finfo

Fileinfo resource returned by finfo_open().

options

One or disjunction of more Fileinfo constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

finfo_open
Filesystem
Fileinfo 函数


Filesystem

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Filesystem 函数
    • basename — 返回路径中的文件名部分
    • chgrp — 改变文件所属的组
    • chmod — 改变文件模式
    • chown — 改变文件的所有者
    • clearstatcache — 清除文件状态缓存
    • copy — 拷贝文件
    • delete — 参见 unlink 或 unset
    • dirname — 返回路径中的目录部分
    • disk_free_space — 返回目录中的可用空间
    • disk_total_space — 返回一个目录的磁盘总大小
    • diskfreespace — disk_free_space 的别名
    • fclose — 关闭一个已打开的文件指针
    • feof — 测试文件指针是否到了文件结束的位置
    • fflush — 将缓冲内容输出到文件
    • fgetc — 从文件指针中读取字符
    • fgetcsv — 从文件指针中读入一行并解析 CSV 字段
    • fgets — 从文件指针中读取一行
    • fgetss — 从文件指针中读取一行并过滤掉 HTML 标记
    • file_exists — 检查文件或目录是否存在
    • file_get_contents — 将整个文件读入一个字符串
    • file_put_contents — 将一个字符串写入文件
    • file — 把整个文件读入一个数组中
    • fileatime — 取得文件的上次访问时间
    • filectime — 取得文件的 inode 修改时间
    • filegroup — 取得文件的组
    • fileinode — 取得文件的 inode
    • filemtime — 取得文件修改时间
    • fileowner — 取得文件的所有者
    • fileperms — 取得文件的权限
    • filesize — 取得文件大小
    • filetype — 取得文件类型
    • flock — 轻便的咨询文件锁定
    • fnmatch — 用模式匹配文件名
    • fopen — 打开文件或者 URL
    • fpassthru — 输出文件指针处的所有剩余数据
    • fputcsv — 将行格式化为 CSV 并写入文件指针
    • fputs — fwrite 的别名
    • fread — 读取文件（可安全用于二进制文件）
    • fscanf — 从文件中格式化输入
    • fseek — 在文件指针中定位
    • fstat — 通过已打开的文件指针取得文件信息
    • ftell — 返回文件指针读/写的位置
    • ftruncate — 将文件截断到给定的长度
    • fwrite — 写入文件（可安全用于二进制文件）
    • glob — 寻找与模式匹配的文件路径
    • is_dir — 判断给定文件名是否是一个目录
    • is_executable — 判断给定文件名是否可执行
    • is_file — 判断给定文件名是否为一个正常的文件
    • is_link — 判断给定文件名是否为一个符号连接
    • is_readable — 判断给定文件名是否可读
    • is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
    • is_writable — 判断给定的文件名是否可写
    • is_writeable — is_writable 的别名
    • lchgrp — Changes group ownership of symlink
    • lchown — Changes user ownership of symlink
    • link — 建立一个硬连接
    • linkinfo — 获取一个连接的信息
    • lstat — 给出一个文件或符号连接的信息
    • mkdir — 新建目录
    • move_uploaded_file — 将上传的文件移动到新位置
    • parse_ini_file — 解析一个配置文件
    • parse_ini_string — Parse a configuration string
    • pathinfo — 返回文件路径的信息
    • pclose — 关闭进程文件指针
    • popen — 打开进程文件指针
    • readfile — 输出一个文件
    • readlink — 返回符号连接指向的目标
    • realpath — 返回规范化的绝对路径名
    • rename — 重命名一个文件或目录
    • rewind — 倒回文件指针的位置
    • rmdir — 删除目录
    • set_file_buffer — stream_set_write_buffer 的别名
    • stat — 给出文件的信息
    • symlink — 建立符号连接
    • tempnam — 建立一个具有唯一文件名的文件
    • tmpfile — 建立一个临时文件
    • touch — 设定文件的访问和修改时间
    • umask — 改变当前的 umask
    • unlink — 删除文件
finfo_set_flags
简介
文件系统相关扩展


简介

No external libraries are needed to build this extension, but if you want PHP to support LFS (large files) on Linux, then you need to have a recent glibc and you need compile PHP with the following compiler flags: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.

Filesystem
安装/配置
Filesystem


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Filesystem


运行时配置

这些函数的行为受 php.ini 的影响。

文件系统和流配置选项
名称 | 默认值 | 可修改范围 | 更新记录
allow_url_fopen | "1" | PHP_INI_SYSTEM | 在 PHP <= 4.3.4 时是 PHP_INI_ALL。PHP 4.0.4 版以后可用。
user_agent | NULL | PHP_INI_ALL | PHP 4.3.0 版以后可用。
default_socket_timeout | "60" | PHP_INI_ALL | PHP 4.3.0 版以后可用。
from | "" | PHP_INI_ALL |
auto_detect_line_endings | "0" | PHP_INI_ALL | PHP 4.3.0 版以后可用。

以下是配置选项的简要解释。

allow_url_fopen boolean

本选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问远程文件，一些扩展库例如 zlib 可能会注册更多的封装协议。

Note: 出于安全性考虑，此选项只能在 php.ini 中设置。

Note: 此选项是紧接着版本 4.0.3 发布后引进的。版本 4.0.3 以及之前的版本只能在编译时通过配置项 --disable-url-fopen-wrapper 来取消此特性。

Warning

Windows 版在 PHP 4.3.0 之前，以下函数不支持远程文件访问：include()，include_once(), require()，require_once() 和GD 函数中的 imagecreatefromXXX 函数。

allow_url_include boolean

This option allows the use of URL-aware fopen wrappers with the following functions: include(), include_once(), require(), require_once().

Note: This setting requires allow_url_fopen to be on.

user_agent string

定义 PHP 发送的 User-Agent。

default_socket_timeout integer

基于 socket 的流的默认超时时间（秒）。

Note: 本配置参数是 PHP 4.3.0 引进的。

from string

定义匿名 ftp 的密码（email 地址）。

auto_detect_line_endings boolean

当设为 On 时，PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix，MS-DOS，还是 Macintosh 的习惯。

这使得 PHP 可以和 Macintosh 系统交互操作，但是默认值是 Off，因为在检测第一行的 EOL 习惯时会有很小的性能损失，而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。

Note: 本配置参数是 PHP 4.3.0 引进的。

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

GLOB_BRACE (integer)
GLOB_ONLYDIR (integer)
GLOB_MARK (integer)
GLOB_NOSORT (integer)
GLOB_NOCHECK (integer)
GLOB_NOESCAPE (integer)
PATHINFO_DIRNAME (integer)
PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)
PATHINFO_FILENAME (integer)
Since PHP 5.2.0.
FILE_USE_INCLUDE_PATH (integer)
Search for filename in include_path (since PHP 5).
FILE_APPEND (integer)
Append content to existing file.
FILE_IGNORE_NEW_LINES (integer)
Strip EOL characters (since PHP 5).
FILE_SKIP_EMPTY_LINES (integer)
Skip empty lines (since PHP 5).
FILE_BINARY (integer)
Binary mode (since PHP 5.2.7).
FILE_TEXT (integer)
Text mode (since PHP 5.2.7).
INI_SCANNER_NORMAL (integer)
Normal INI scanner mode (since PHP 5.3).
INI_SCANNER_RAW (integer)
Raw INI scanner mode (since PHP 5.3).
资源类型
Filesystem 函数
Filesystem


Filesystem 函数

参见

For related functions, see also the Directory and Program Execution sections.

For a list and explanation of the various URL wrappers that can be used as remote files, see also 支持的协议／封装协议列表.

Table of Contents

  • basename — 返回路径中的文件名部分
  • chgrp — 改变文件所属的组
  • chmod — 改变文件模式
  • chown — 改变文件的所有者
  • clearstatcache — 清除文件状态缓存
  • copy — 拷贝文件
  • delete — 参见 unlink 或 unset
  • dirname — 返回路径中的目录部分
  • disk_free_space — 返回目录中的可用空间
  • disk_total_space — 返回一个目录的磁盘总大小
  • diskfreespace — disk_free_space 的别名
  • fclose — 关闭一个已打开的文件指针
  • feof — 测试文件指针是否到了文件结束的位置
  • fflush — 将缓冲内容输出到文件
  • fgetc — 从文件指针中读取字符
  • fgetcsv — 从文件指针中读入一行并解析 CSV 字段
  • fgets — 从文件指针中读取一行
  • fgetss — 从文件指针中读取一行并过滤掉 HTML 标记
  • file_exists — 检查文件或目录是否存在
  • file_get_contents — 将整个文件读入一个字符串
  • file_put_contents — 将一个字符串写入文件
  • file — 把整个文件读入一个数组中
  • fileatime — 取得文件的上次访问时间
  • filectime — 取得文件的 inode 修改时间
  • filegroup — 取得文件的组
  • fileinode — 取得文件的 inode
  • filemtime — 取得文件修改时间
  • fileowner — 取得文件的所有者
  • fileperms — 取得文件的权限
  • filesize — 取得文件大小
  • filetype — 取得文件类型
  • flock — 轻便的咨询文件锁定
  • fnmatch — 用模式匹配文件名
  • fopen — 打开文件或者 URL
  • fpassthru — 输出文件指针处的所有剩余数据
  • fputcsv — 将行格式化为 CSV 并写入文件指针
  • fputs — fwrite 的别名
  • fread — 读取文件（可安全用于二进制文件）
  • fscanf — 从文件中格式化输入
  • fseek — 在文件指针中定位
  • fstat — 通过已打开的文件指针取得文件信息
  • ftell — 返回文件指针读/写的位置
  • ftruncate — 将文件截断到给定的长度
  • fwrite — 写入文件（可安全用于二进制文件）
  • glob — 寻找与模式匹配的文件路径
  • is_dir — 判断给定文件名是否是一个目录
  • is_executable — 判断给定文件名是否可执行
  • is_file — 判断给定文件名是否为一个正常的文件
  • is_link — 判断给定文件名是否为一个符号连接
  • is_readable — 判断给定文件名是否可读
  • is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
  • is_writable — 判断给定的文件名是否可写
  • is_writeable — is_writable 的别名
  • lchgrp — Changes group ownership of symlink
  • lchown — Changes user ownership of symlink
  • link — 建立一个硬连接
  • linkinfo — 获取一个连接的信息
  • lstat — 给出一个文件或符号连接的信息
  • mkdir — 新建目录
  • move_uploaded_file — 将上传的文件移动到新位置
  • parse_ini_file — 解析一个配置文件
  • parse_ini_string — Parse a configuration string
  • pathinfo — 返回文件路径的信息
  • pclose — 关闭进程文件指针
  • popen — 打开进程文件指针
  • readfile — 输出一个文件
  • readlink — 返回符号连接指向的目标
  • realpath — 返回规范化的绝对路径名
  • rename — 重命名一个文件或目录
  • rewind — 倒回文件指针的位置
  • rmdir — 删除目录
  • set_file_buffer — stream_set_write_buffer 的别名
  • stat — 给出文件的信息
  • symlink — 建立符号连接
  • tempnam — 建立一个具有唯一文件名的文件
  • tmpfile — 建立一个临时文件
  • touch — 设定文件的访问和修改时间
  • umask — 改变当前的 umask
  • unlink — 删除文件
预定义常量
basename
Filesystem


返回路径中的文件名部分

Filesystem 函数
chgrp
Filesystem 函数
PHP 手册

basename

(PHP 4, PHP 5)

basename — 返回路径中的文件名部分

说明

string basename ( string $path [, string $suffix ] )

给出一个包含有指向一个文件的全路径的字符串，本函数返回基本的文件名。如果文件名是以 suffix 结束的，那这一部分也会被去掉。

在 Windows 中，斜线（/）和反斜线（\）都可以用作目录分隔符。在其它环境下是斜线（/）。

Example #1 basename() 例子

<?php
$path = "/home/httpd/html/index.php";
$file = basename($path);        // $file is set to "index.php"
$file = basename($path,".php"); // $file is set to "index"
?>

Note: suffix 参数是 PHP 4.1.0 新加的。

参见 dirname()。

Filesystem 函数
chgrp
Filesystem 函数


改变文件所属的组

basename
chmod
Filesystem 函数
PHP 手册

chgrp

(PHP 4, PHP 5)

chgrp — 改变文件所属的组

说明

bool chgrp ( string $filename , mixed $group )

尝试将文件 filename 所属的组改成 group （通过组名或组 ID 指定）。只有超级用户可以任意修改文件的组，其它用户可能只能将文件的组改成该用户自己所在的组。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

参见 chown() 和 chmod()。

basename
chmod
Filesystem 函数


改变文件模式

chgrp
chown
Filesystem 函数
PHP 手册

chmod

(PHP 4, PHP 5)

chmod — 改变文件模式

说明

bool chmod ( string $filename , int $mode )

尝试将 filename 所指定文件的模式改成 mode 所给定的。

注意 mode 不会被自动当成八进制数值，而且也不能用字符串（例如 "g+w"）。要确保正确操作，需要给 mode 前面加上 0：

<?php
chmod("/somedir/somefile", 755);   // 十进制数，可能不对
chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串，不对
chmod("/somedir/somefile", 0755);  // 八进制数，正确的 mode 值
?>

mode 参数包含三个八进制数按顺序分别指定了所有者、所有者所在的组以及所有人的访问限制。每一部分都可以通过加入所需的权限来计算出所要的权限。数字 1 表示使文件可执行，数字 2 表示使文件可写，数字 4 表示使文件可读。加入这些数字来制定所需要的权限。有关 UNIX 系统的文件权限可以阅读手册“man 1 chmod”和“man 2 chmod”。

<?php
// Read and write for owner, nothing for everybody else
chmod("/somedir/somefile", 0600);

// Read and write for owner, read for everybody else
chmod("/somedir/somefile", 0644);

// Everything for owner, read and execute for others
chmod("/somedir/somefile", 0755);

// Everything for owner, read and execute for owner's group
chmod("/somedir/somefile", 0750);
?>

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 当前用户指的是执行 PHP 的用户。很可能和通常的 shell 或者 FTP 用户不是同一个。在大多数系统下文件模式只能被文件所有者的用户改变。

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

Note: 当安全模式打开的时候，PHP 会检查所操作的文件是否和正在执行的脚本具有相同的 UID （所有者）。要注意的是，不能修改 SUID，SGID 和 sticky bits。

参见 chown() 和 chgrp()。

chgrp
chown
Filesystem 函数


改变文件的所有者

chmod
clearstatcache
Filesystem 函数
PHP 手册

chown

(PHP 4, PHP 5)

chown — 改变文件的所有者

说明

bool chown ( string $filename , mixed $user )

尝试将文件 filename 的所有者改成用户 user （由用户名或用户 ID 指定）。只有超级用户可以改变文件的所有者。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

参见 chmod()。

chmod
clearstatcache
Filesystem 函数


清除文件状态缓存

chown
copy
Filesystem 函数
PHP 手册

clearstatcache

(PHP 4, PHP 5)

clearstatcache — 清除文件状态缓存

说明

void clearstatcache ( void )

当使用 stat()，lstat() 或者任何列在受影响函数表（见下面）中的函数时，PHP 将缓存这些函数的返回信息以提供更快的性能。然而在某些情况下，你可能想清除被缓存的信息。例如如果在一个脚本中多次检查同一个文件，而该文件在此脚本执行期间有被删除或修改的危险时，你需要清除文件状态缓存。这种情况下，可以用 clearstatcache() 函数来清除被 PHP 缓存的该文件信息。

必须注意的是，对于不存在的文件，PHP 并不会缓存其信息。所以如果调用 file_exists() 来检查不存在的文件，在该文件没有被创建之前，它都会返回 FALSE。如果该文件被创建了，就算以后被删除，它都会返回 TRUE

Note: 本函数缓存特定文件名的信息，因此只在对同一个文件名进行多次操作并且需要该文件信息不被缓存时才需要调用 clearstatcache()。

受影响的函数包括 stat()，lstat()，file_exists()，is_writable()，is_readable()，is_executable()，is_file()，is_dir()，is_link()，filectime()，fileatime()，filemtime()，fileinode()，filegroup()，fileowner()，filesize()，filetype() 和 fileperms()。

chown
copy
Filesystem 函数


拷贝文件

clearstatcache
delete
Filesystem 函数
PHP 手册

copy

(PHP 4, PHP 5)

copy — 拷贝文件

说明

bool copy ( string $source , string $dest )

将文件从 source 拷贝到 dest 。如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 copy() 例子

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "failed to copy $file...\n";
}
?>

如果要移动文件的话，请使用 rename() 函数。

Note: 从 PHP 4.3.0 开始，如果启用了“fopen wrappers”的话，source 和 dest 都可以是 URL。更多细节见 fopen()。如果 dest 是一个 URL，则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。

Warning

如果目标文件已存在，将会被覆盖。

Note: Windows 兼容
如果复制一个零字节的文件，copy() 将返回 FALSE ，但文件也会被正确复制。

参见 move_uploaded_file()，rename() 和手册中的文件上传处理一章。

clearstatcache
delete
Filesystem 函数


参见 unlink 或 unset

copy
dirname
Filesystem 函数
PHP 手册

delete

(None)

delete — 参见 unlink() 或 unset()

说明

void delete ( string $file )

这是个虚构的手册条目来给那些本来是找 unlink() 或者 unset() 的人提供一些有用的信息。

参见 unlink() 来删除文件，unset() 来删除变量。

copy
dirname
Filesystem 函数


返回路径中的目录部分

delete
disk_free_space
Filesystem 函数
PHP 手册

dirname

(PHP 4, PHP 5)

dirname — 返回路径中的目录部分

说明

string dirname ( string $path )

给出一个包含有指向一个文件的全路径的字符串，本函数返回去掉文件名后的目录名。

在 Windows 中，斜线（/）和反斜线（\）都可以用作目录分隔符。在其它环境下是斜线（/）。

Example #1 dirname() 例子

<?php
$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"
?>

Note: 在 PHP 4.0.3 中，dirname() 被修正为 POSIX 兼容。本质上就意味着如果在 path 中没有斜线，则返回一个点（'.'），表示当前目录。否则返回的是把 path 中结尾的 /component（最后一个斜线以及后面部分）去掉之后的字符串。注意这意味着在老的函数返回一个空字符串的情形下通常从 dirname() 得到的是斜线或者一个点。

dirname() 从 PHP 4.3.0 开始有所改变。请看以下例子：

<?php

// PHP 4.3.0 以前
dirname('c:/'); // 返回 '.'

// PHP 4.3.0 以后
dirname('c:/'); // 返回 'c:'

?>

dirname() 的操作从 PHP 5.0.0 版开始是二进制安全的。

参见 basename()，pathinfo() 和 realpath()。

delete
disk_free_space
Filesystem 函数


返回目录中的可用空间

dirname
disk_total_space
Filesystem 函数
PHP 手册

disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_space — 返回目录中的可用空间

说明

float disk_free_space ( string $directory )

给出一个包含有一个目录的字符串，本函数将根据相应的文件系统或磁盘分区返回可用的字节数。

Example #1 disk_free_space() 例子

<?php
// $df 包含根目录下可用的字节数
$df = disk_free_space("/");
//在 Windows 下:
disk_free_space("C:");
disk_free_space("D:");
?>

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

参见 disk_total_space()。

dirname
disk_total_space
Filesystem 函数


返回一个目录的磁盘总大小

disk_free_space
diskfreespace
Filesystem 函数
PHP 手册

disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_space — 返回一个目录的磁盘总大小

说明

float disk_total_space ( string $directory )

给出一个包含有一个目录的字符串，本函数将根据相应的文件系统或磁盘分区返回所有的字节数。

Example #1 disk_total_space() 例子

<?php
// $df 包含 "/" 目录的磁盘大小
$df = disk_total_space("/");

//在 Windows 下:
disk_total_space("C:");
disk_total_space("D:");
?>

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

参见 disk_free_space()。

【译者注】本函数返回的是该目录所在的磁盘分区的总大小，因此在给出同一个磁盘分区的不同目录作为参数所得到的结果完全相同。在 Unix 和 Windows 200x/XP 中都支持将一个磁盘分区加载为一个子目录，这时正确使用本函数就很有意义。

disk_free_space
diskfreespace
Filesystem 函数


disk_free_space 的别名

disk_total_space
fclose
Filesystem 函数
PHP 手册

diskfreespace

(PHP 4, PHP 5)

diskfreespace — disk_free_space() 的别名

说明

本函数是该函数的别名：disk_free_space()。

disk_total_space
fclose
Filesystem 函数


关闭一个已打开的文件指针

diskfreespace
feof
Filesystem 函数
PHP 手册

fclose

(PHP 4, PHP 5)

fclose — 关闭一个已打开的文件指针

说明

bool fclose ( resource $handle )

将 handle 指向的文件关闭。

如果成功则返回 TRUE，失败则返回 FALSE。

文件指针必须有效，并且是通过 fopen() 或 fsockopen() 成功打开的。

Example #1 一个简单 fclose() 例子

<?php
  $handle = fopen('somefile.txt', 'r');
  fclose($handle);
?>

diskfreespace
feof
Filesystem 函数


测试文件指针是否到了文件结束的位置

fclose
fflush
Filesystem 函数
PHP 手册

feof

(PHP 4, PHP 5)

feof — 测试文件指针是否到了文件结束的位置

说明

bool feof ( resource $handle )

如果文件指针到了 EOF 或者出错时则返回 TRUE，否则返回一个错误（包括 socket 超时），其它情况则返回 FALSE。

Warning

如果服务器没有关闭由 fsockopen() 所打开的连接，feof() 会一直等待直到超时而返回 TRUE。默认的超时限制是 60 秒，可以使用 stream_set_timeout() 来改变这个值。

文件指针必须有效，并且必须指向一个由 fopen() 或 fsockopen() 成功打开（但还没有被 fclose() 关闭）的文件。

Warning

如果传递的文件指针无效可能会陷入无限循环中，因为 EOF 不会返回 TRUE。

Example #1 使用无效文件指针的 feof() 例子

<?php
// 如果文件不可读取或者不存在，fopen 函数返回 FALSE
$file = @fopen("no_such_file", "r");

// 来自 fopen 的 FALSE 会发出一条警告信息并在这里陷入无限循环
while (!feof($file)) {
}

fclose($file);
?>

fclose
fflush
Filesystem 函数


将缓冲内容输出到文件

feof
fgetc
Filesystem 函数
PHP 手册

fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush — 将缓冲内容输出到文件

说明

bool fflush ( resource $handle )

本函数强制将所有缓冲的输出写入 handle 文件句柄所指向的资源。 如果成功则返回 TRUE，失败则返回 FALSE。

文件指针必须有效，并且必须指向一个由 fopen() 或 fsockopen() 成功打开（但还没有被 fclose() 关闭）的文件。

feof
fgetc
Filesystem 函数


从文件指针中读取字符

fflush
fgetcsv
Filesystem 函数
PHP 手册

fgetc

(PHP 4, PHP 5)

fgetc — 从文件指针中读取字符

说明

string fgetc ( resource $handle )

返回一个包含有一个字符的字符串，该字符从 handle 指向的文件中得到。碰到 EOF 则返回 FALSE。

文件指针必须有效，并且必须指向一个由 fopen() 或 fsockopen() 成功打开（但还没有被 fclose() 关闭）的文件。

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

Example #1 fgetc() 例子

<?php
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Could not open file somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Note: 本函数可安全用于二进制对象。

参见 fread()，fopen()，popen()，fsockopen() 和 fgets()。

fflush
fgetcsv
Filesystem 函数


从文件指针中读入一行并解析 CSV 字段

fgetc
fgets
Filesystem 函数
PHP 手册

fgetcsv

(PHP 4, PHP 5)

fgetcsv — 从文件指针中读入一行并解析 CSV 字段

说明

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure ]]] )

handle
一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。
length （可选）
必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略（在 PHP 5.0.4 以后的版本中设为 0）该参数的话，那么长度就没有限制，不过可能会影响执行效率。
delimiter （可选）
设置字段分界符（只允许一个字符），默认值为逗号。
enclosure （可选）
设置字段环绕符（只允许一个字符），默认值为双引号。该参数是在 PHP 4.3.0 中添加的。

和 fgets() 类似，只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。

fgetcsv() 出错时返回 FALSE，包括碰到文件结束时。

Note: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组，不会被当成错误。

Example #1 读取并显示 CSV 文件的整个内容

<?php
$row = 1;
$handle = fopen("test.csv","r");
while ($data = fgetcsv($handle, 1000, ",")) {
    $num = count($data);
    echo "<p> $num fields in line $row: <br>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br>\n";
    }
}
fclose($handle);
?>

从 PHP 4.3.5 起，fgetcsv() 的操作是二进制安全的。

Note: 该函数对区域设置是敏感的。比如说 LANG 设为 en_US.UTF-8 的话，单字节编码的文件就会出现读取错误。

Note: 如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符，可以激活 auto_detect_line_endings 运行时配置选项。

参见 explode()，file()，pack() 和 fputcsv()

fgetc
fgets
Filesystem 函数


从文件指针中读取一行

fgetcsv
fgetss
Filesystem 函数
PHP 手册

fgets

(PHP 4, PHP 5)

fgets — 从文件指针中读取一行

说明

string fgets ( int $handle [, int $length ] )

从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符（包括在返回值中）、EOF 或者已经读取了 length - 1 字节后停止（看先碰到那一种情况）。如果没有指定 length ，则默认为 1K，或者说 1024 字节。

出错时返回 FALSE。

通常的缺陷：

习惯了 C 语言中 fgets() 语法的人应该注意到 EOF 是怎样被返回的。

文件指针必须有效，并且必须指向一个由 fopen() 或 fsockopen() 成功打开（但还没有被 fclose() 关闭）的文件。

以下是一个简单例子：

Example #1 逐行读取文件

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

Note: length 参数从 PHP 4.2.0 起成为可选项，如果忽略，则行的长度被假定为 1024。从 PHP 4.3 开始，忽略掉 length 将继续从流中读取数据直到行结束。如果文件中的大多数行都大于 8KB，则在脚本中指定最大行的长度在利用资源上更为有效。

Note: 从 PHP 4.3 开始本函数可以安全用于二进制文件。早期的版本则不行。

Note: 如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符，可以激活 auto_detect_line_endings 运行时配置选项。

参见 fgetss()，fread()，fgetc()，stream_get_line()，fopen()，popen()，fsockopen() 和 stream_set_timeout()。

fgetcsv
fgetss
Filesystem 函数


从文件指针中读取一行并过滤掉 HTML 标记

fgets
file_exists
Filesystem 函数
PHP 手册

fgetss

(PHP 4, PHP 5)

fgetss — 从文件指针中读取一行并过滤掉 HTML 标记

说明

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

和 fgets() 相同，只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。

可以用可选的第三个参数指定哪些标记不被去掉。

Note: allowable_tags 是 PHP 3.0.13，PHP 4.0.0 新加的。

参数 length 从 PHP 5 起开始可选。

Note: 如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符，可以激活 auto_detect_line_endings 运行时配置选项。

参见 fgets()，fopen()，fsockopen()，popen() 和 strip_tags()。

fgets
file_exists
Filesystem 函数


检查文件或目录是否存在

fgetss
file_get_contents
Filesystem 函数
PHP 手册

file_exists

(PHP 4, PHP 5)

file_exists — 检查文件或目录是否存在

说明

bool file_exists ( string $filename )

如果由 filename 指定的文件或目录存在则返回 TRUE，否则返回 FALSE。

在 Windows 中要用 //computername/share/filename 或者 \\computername\share\filename 来检查网络中的共享文件。

Example #1 测试一个文件是否存在

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}
?>

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

Warning

如果因为安全模式的限制而导致不能访问文件的话，该函数会返回 FALSE。然而，如果文件在 safe_mode_include_dir 所指定的目录内的话，仍然可以使用 include 来包含。

参见 is_readable()，is_writable()，is_file() 和 file()。

fgetss
file_get_contents
Filesystem 函数


将整个文件读入一个字符串

file_exists
file_put_contents
Filesystem 函数
PHP 手册

file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents — 将整个文件读入一个字符串

说明

string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )

和 file() 一样，只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败，file_get_contents() 将返回 FALSE。

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

Note: 如果要打开有特殊字符的 URL （比如说有空格），就需要使用 urlencode() 进行 URL 编码。

Note: context 参数可以用 NULL 来忽略。

更新日志

版本 | 说明
5.0.0 | 添加了对 context 的支持。
5.1.0 | 添加了 offset 和 maxlen 参数。

注释

Note: 本函数可安全用于二进制对象。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

Warning

当使用 SSL 时，Microsoft IIS 将违反协议不发送 close_notify 标记就关闭连接。PHP 将在到达数据尾端时报告 "SSL: Fatal Protocol Error"。要绕过此问题，应将 error_reporting 级别降低为不包括警告。PHP 4.3.7 及更高版本可以在当使用 https:// 封装协议打开流的时候检测出有此问题的 IIS 服务器并抑制警告。如果使用 fsockopen() 来创建一个 ssl:// 套接字，则需要自己检测并抑制警告信息。

参见

  • file() - 把整个文件读入一个数组中
  • fgets() - 从文件指针中读取一行
  • fread() - 读取文件（可安全用于二进制文件）
  • readfile() - 输出一个文件
  • file_put_contents() - 将一个字符串写入文件
  • stream_get_contents() - Reads remainder of a stream into a string

file_exists
file_put_contents
Filesystem 函数


将一个字符串写入文件

file_get_contents
file
Filesystem 函数
PHP 手册

file_put_contents

(PHP 5)

file_put_contents — 将一个字符串写入文件

说明

int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] )

和依次调用 fopen()，fwrite() 以及 fclose() 功能一样。

参数 data 可以是数组（但不能为多维数组），这就相当于 file_put_contents($filename, join('', $array))

自 PHP 5.1.0 起，data 参数也可以被指定为 stream 资源，这里 stream 中所保存的缓存数据将被写入到指定文件中，这种用法就相似于使用 stream_copy_to_stream() 函数。

参数

filename

要被写入数据的文件名。

data

要写入的数据。类型可以是 string，array 或者是 stream 资源（如上面所说的那样）。

flags

flags 可以是 FILE_USE_INCLUDE_PATH，FILE_APPEND 和／或 LOCK_EX（获得一个独占锁定），然而使用 FILE_USE_INCLUDE_PATH 时要特别谨慎。

context

一个 context 资源。

返回值

该函数将返回写入到文件内数据的字节数。

更新日志

版本 | 说明
5.1.0 | 添加了对 LOCK_EX 的支持和 data 参数处理 stream 资源的功能。

注释

Note: 本函数可安全用于二进制对象。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

参见

  • fopen() - 打开文件或者 URL
  • fwrite() - 写入文件（可安全用于二进制文件）
  • file_get_contents() - 将整个文件读入一个字符串

file_get_contents
file
Filesystem 函数


把整个文件读入一个数组中

file_put_contents
fileatime
Filesystem 函数
PHP 手册

file

(PHP 4, PHP 5)

file — 把整个文件读入一个数组中

说明

array file ( string $filename [, int $use_include_path [, resource $context ]] )

和 file_get_contents() 一样，只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行，包括换行符在内。如果失败 file() 返回 FALSE。

如果也想在 include_path 中搜寻文件的话，可以将可选参数 use_include_path 设为 "1"。

<?php
// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
$lines = file('http://www.example.com/');
// 在数组中循环，显示 HTML 的源文件并加上行号。
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 另一个例子将 web 页面读入字符串。参见 file_get_contents()。
$html = implode('', file ('http://www.example.com/'));
?>

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Note: 返回的数组中每一行都包括了行结束符，因此如果不需要行结束符时还需要使用 rtrim() 函数。

Note: 如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符，可以激活 auto_detect_line_endings 运行时配置选项。

Note: 从 PHP 4.3.0 开始可以用 file_get_contents() 来将文件读入到一个字符串返回。
从 PHP 4.3.0 开始 file() 可以安全用于二进制文件。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

Warning

当使用 SSL 时，Microsoft IIS 将违反协议不发送 close_notify 标记就关闭连接。PHP 将在到达数据尾端时报告 "SSL: Fatal Protocol Error"。要绕过此问题，应将 error_reporting 级别降低为不包括警告。PHP 4.3.7 及更高版本可以在当使用 https:// 封装协议打开流的时候检测出有此问题的 IIS 服务器并抑制警告。如果使用 fsockopen() 来创建一个 ssl:// 套接字，则需要自己检测并抑制警告信息。

参见 readfile()，fopen()，fsockopen()，popen()，file_get_contents() 和 include()。

file_put_contents
fileatime
Filesystem 函数


取得文件的上次访问时间

file
filectime
Filesystem 函数
PHP 手册

fileatime

(PHP 4, PHP 5)

fileatime — 取得文件的上次访问时间

说明

int fileatime ( string $filename )

返回文件上次被访问的时间，如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

注意：一个文件的 atime 应该在不论何时读取了此文件中的数据块时被更改。当一个应用程序定期访问大量文件或目录时很影响性能。有些 Unix 文件系统可以在加载时关闭 atime 的更新以提高这类程序的性能。USENET 新闻组假脱机是一个常见的例子。在这种文件系统下本函数没有用处。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

Example #1 fileatime() 例子

<?php

// 输出类似：somefile.txt was last accessed: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last accessed: " . date("F d Y H:i:s.", fileatime($filename));
}

?>

参见 filemtime()，fileinode() 和 date()。

file
filectime
Filesystem 函数


取得文件的 inode 修改时间

fileatime
filegroup
Filesystem 函数
PHP 手册

filectime

(PHP 4, PHP 5)

filectime — 取得文件的 inode 修改时间

说明

int filectime ( string $filename )

返回文件上次 inode 被修改的时间，如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

注意：在大多数 Unix 文件系统中，当一个文件的 inode 数据被改变时则该文件被认为是修改了。也就是说，当文件的权限，所有者，所有组或其它 inode 中的元数据被更新时。参见 filemtime()（这才是你想用于在 Web 页面中建立“最后更新时间”脚注的函数）和 fileatime()。

注意某些 Unix 说明文本中把 ctime 说成是该文件建立的时间，这是错的。在大多数 Unix 文件系统中没有 Unix 文件的建立时间。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

Example #1 一个 fileatime() 的例子

<?php

// 输出类似：somefile.txt was last changed: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last changed: " . date("F d Y H:i:s.", filectime($filename));
}

?>

参见 filemtime()。

fileatime
filegroup
Filesystem 函数


取得文件的组

filectime
fileinode
Filesystem 函数
PHP 手册

filegroup

(PHP 4, PHP 5)

filegroup — 取得文件的组

说明

int filegroup ( string $filename )

取得该文件所属组的 ID。如果出错则返回 FALSE。组 ID 以数字格式返回，用 posix_getgrgid() 来将其解析为组名。如果失败返回 FALSE 以及一个 E_WARNING 级别的错误。

本函数的结果会被缓存。详细信息见 clearstatcache()。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 fileowner() 和 safe_mode_gid。

filectime
fileinode
Filesystem 函数


取得文件的 inode

filegroup
filemtime
Filesystem 函数
PHP 手册

fileinode

(PHP 4, PHP 5)

fileinode — 取得文件的 inode

说明

int fileinode ( string $filename )

返回文件的 inode 节点号，出错时返回 FALSE。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 stat()。

filegroup
filemtime
Filesystem 函数


取得文件修改时间

fileinode
fileowner
Filesystem 函数
PHP 手册

filemtime

(PHP 4, PHP 5)

filemtime — 取得文件修改时间

说明

int filemtime ( string $filename )

返回文件上次被修改的时间，出错时返回 FALSE。时间以 Unix 时间戳的方式返回，可用于 date()。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

本函数返回文件中的数据块上次被写入的时间，也就是说，文件的内容上次被修改的时间。

Example #1 filemtime() 例子

<?php
// outputs e.g.  somefile.txt was last modified: December 29 2002 22:16:23.
$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));

}
?>

参见 filectime()，stat()，touch() 和 getlastmod()。

fileinode
fileowner
Filesystem 函数


取得文件的所有者

filemtime
fileperms
Filesystem 函数
PHP 手册

fileowner

(PHP 4, PHP 5)

fileowner — 取得文件的所有者

说明

int fileowner ( string $filename )

返回文件所有的用户 ID，如果出错则返回 FALSE。用户 ID 以数字格式返回，用 posix_getpwuid() 来将其解析为用户名。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 stat()。

filemtime
fileperms
Filesystem 函数


取得文件的权限

fileowner
filesize
Filesystem 函数
PHP 手册

fileperms

(PHP 4, PHP 5)

fileperms — 取得文件的权限

说明

int fileperms ( string $filename )

返回文件的访问权限，如果出错则返回 FALSE。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

Example #1 以八进制的形式显示文件的权限

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

上例的输出类似于：

1777
0644

Example #2 输出全部权限

<?php
$perms = fileperms('/etc/passwd');

if (($perms & 0xC000) == 0xC000) {
    // Socket
    $info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
    // Symbolic Link
    $info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
    // Regular
    $info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
    // Block special
    $info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
    // Directory
    $info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
    // Character special
    $info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
    // FIFO pipe
    $info = 'p';
} else {
    // Unknown
    $info = 'u';
}

// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

echo $info;
?>

上例的输出类似于：

-rw-r--r--

参见 is_readable() 和 stat()。

fileowner
filesize
Filesystem 函数


取得文件大小

fileperms
filetype
Filesystem 函数
PHP 手册

filesize

(PHP 4, PHP 5)

filesize — 取得文件大小

说明

int filesize ( string $filename )

返回文件大小的字节数，如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。

Note: 因为 PHP 的整数类型是有符号的，并且大多数平台使用 32 位整数，filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果。对于 2GB 到 4GB 之间的文件通常可以使用 sprintf("%u", filesize($file)) 来克服此问题。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

Example #1 filesize() 例子

<?php

// 输出类似：somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

参见 file_exists()。

fileperms
filetype
Filesystem 函数


取得文件类型

filesize
flock
Filesystem 函数
PHP 手册

filetype

(PHP 4, PHP 5)

filetype — 取得文件类型

说明

string filetype ( string $filename )

返回文件的类型。可能的值有 fifo，char，dir，block，link，file 和 unknown。

如果出错则返回 FALSE。如果 stat 调用失败或者文件类型未知的话 filetype() 还会产生一个 E_NOTICE 消息。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

Example #1 filetype() 例子

<?php
echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir
?>

参见 is_dir()，is_file()，is_link()，file_exists()，stat() 和 mime_content_type()。

filesize
flock
Filesystem 函数


轻便的咨询文件锁定

filetype
fnmatch
Filesystem 函数
PHP 手册

flock

(PHP 4, PHP 5)

flock — 轻便的咨询文件锁定

说明

bool flock ( int $handle , int $operation [, int &$wouldblock ] )

PHP 支持以咨询方式（也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作）锁定全部文件的一种轻便方法。

Note: 在 Windows 下 flock() 将会强制执行。

flock() 操作的 handle 必须是一个已经打开的文件指针。operation 可以是以下值之一：

  • 要取得共享锁定（读取的程序），将 operation 设为 LOCK_SH（PHP 4.0.1 以前的版本设置为 1）。
  • 要取得独占锁定（写入的程序），将 operation 设为 LOCK_EX（PHP 4.0.1 以前的版本中设置为 2）。
  • 要释放锁定（无论共享或独占），将 operation 设为 LOCK_UN（PHP 4.0.1 以前的版本中设置为 3）。
  • 如果不希望 flock() 在锁定时堵塞，则给 operation 加上 LOCK_NB（PHP 4.0.1 以前的版本中设置为 4）。

flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型（包括大部分的 Unix 派生版和甚至是 Windows）。如果锁定会堵塞的话（EWOULDBLOCK 错误码情况下），可选的第三个参数会被设置为 TRUE。锁定操作也可以被 fclose() 释放（代码执行完毕时也会自动调用）。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 flock() 例子

<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // 进行排它型锁定
    fwrite($fp, "Write something here\n");
    flock($fp, LOCK_UN); // 释放锁定
} else {
    echo "Couldn't lock the file !";
}

fclose($fp);

?>

Note: 由于 flock() 需要一个文件指针， 因此可能不得不用一个特殊的锁定文件来保护打算通过写模式打开的文件的访问（在 fopen() 函数中加入 "w" 或 "w+"）。

Warning

flock() 不能用于 NFS 以及其它一些网络文件系统。详细资料查看自己操作系统的文档。

在部分操作系统中 flock() 以进程级实现。当用一个多线程服务器 API（比如 ISAPI）时，可能不可以依靠 flock() 来保护文件，因为运行于同一服务器实例中其它并行线程的 PHP 脚本可以对该文件进行处理。

flock() 不支持旧的文件系统，如 FAT 以及它的派生系统。因此，此环境下总是返回 FALSE（尤其是对 Windows 98 用户来说）。

filetype
fnmatch
Filesystem 函数


用模式匹配文件名

flock
fopen
Filesystem 函数
PHP 手册

fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatch — 用模式匹配文件名

说明

bool fnmatch ( string $pattern , string $string [, int $flags ] )

fnmatch() 检查传入的 string 是否匹配给出的 shell 统配符 pattern 。

此函数对于文件名尤其有用，但也可以用于普通的字符串。普通用户可能习惯于 shell 模式或者至少其中最简单的形式 '?' 和 '*' 通配符，因此使用 fnmatch() 来代替 ereg() 或者 preg_match() 来进行前端搜索表达式输入对于非程序员用户更加方便。

Example #1 用 shell 中的通配符模式匹配来检查颜色

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}
?>
Warning

目前该函数无法在 Windows 或其它非 POSIX 兼容的系统上使用。

参见 glob()，ereg()，preg_match() 和 Unix 中 fnmatch(3) 的手册中的标志名（只要本文档中还未包括它们）。

flock
fopen
Filesystem 函数


打开文件或者 URL

fnmatch
fpassthru
Filesystem 函数
PHP 手册

fopen

(PHP 4, PHP 5)

fopen — 打开文件或者 URL

说明

resource fopen ( string $filename , string $mode [, bool $use_include_path [, resource $zcontext ]] )

fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式，则被当成一个 URL，PHP 将搜索协议处理器（也被称为封装协议）来处理此模式。如果该协议尚未注册封装协议，PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

如果 PHP 认为 filename 指定的是一个本地文件，将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的，因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。

如果 PHP 认为 filename 指定的是一个已注册的协议，而该协议被注册为一个网络 URL，PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了，PHP 将发出一个警告，而 fopen 的调用则失败。

Note: 所支持的协议列表见支持的协议／封装协议列表。某些协议（也被称为 wrappers）支持 context 和／或 php.ini 选项。参见相应的页面哪些选项可以被设定（例如 php.ini 中用于 http wrapper 的 user_agent 值）。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

Note: 自 PHP 4.3.2 起，对所有区别二进制和文本模式的平台默认模式都被设为二进制模式。如果在升级后脚本碰到问题，尝试暂时使用 't' 标记，直到所有的脚本都照以下所说的改为更具移植性以后。

mode 参数指定了所要求到该流的访问类型。可以是以下：

fopen() 中 mode 的可能值列表
mode | 说明
'r' | 只读方式打开，将文件指针指向文件头。
'r+' | 读写方式打开，将文件指针指向文件头。
'w' | 写入方式打开，将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' | 读写方式打开，将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' | 写入方式打开，将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' | 读写方式打开，将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' | 创建并以写入方式打开，将文件指针指向文件头。如果文件已存在，则 fopen() 调用失败并返回 FALSE，并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持，仅能用于本地文件。
'x+' | 创建并以读写方式打开，将文件指针指向文件头。如果文件已存在，则 fopen() 调用失败并返回 FALSE，并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持，仅能用于本地文件。

Note: 不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时，需要使用符合操作系统的行结束符号。基于 Unix 的系统使用 \n 作为行结束字符，基于 Windows 的系统使用 \r\n 作为行结束字符，基于 Macintosh 的系统使用 \r 作为行结束字符。
如果写入文件时使用了错误的行结束符号，则其它应用程序打开这些文件时可能会表现得很怪异。
Windows 下提供了一个文本转换标记（'t'）可以透明地将 \n 转换为 \r\n。与此对应还可以使用 'b' 来强制使用二进制模式，这样就不会转换数据。要使用这些标记，要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。
默认的转换模式依赖于 SAPI 和所使用的 PHP 版本，因此为了便于移植鼓励总是指定恰当的标记。如果是操作纯文本文件并在脚本中使用了 \n 作为行结束符，但还要期望这些文件可以被其它应用程序例如 Notepad 读取，则在 mode 中使用 't'。在所有其它情况下使用 'b'。
在操作二进制文件时如果没有指定 'b' 标记，可能会碰到一些奇怪的问题，包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

Note: 为移植性考虑，强烈建议在用 fopen() 打开文件时总是使用 'b' 标记。

Note: 再一次，为移植性考虑，强烈建议你重写那些依赖于 't' 模式的代码使其使用正确的行结束符并改成 'b' 模式。

如果也需要在 include_path 中搜寻文件的话，可以将可选的第三个参数 use_include_path 设为 '1' 或 TRUE。

如果打开失败，本函数返回 FALSE。

Example #1 fopen() 例子

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

如果在用服务器模块版本的 PHP 时在打开和写入文件上遇到问题，记住要确保所使用的文件是服务器进程所能够访问的。

在 Windows 平台上，要小心转义文件路径中的每个反斜线，或者用斜线。

<?php
$handle = fopen("c:\\data\\info.txt", "r");
?>

Warning

当使用 SSL 时，Microsoft IIS 将违反协议不发送 close_notify 标记就关闭连接。PHP 将在到达数据尾端时报告 "SSL: Fatal Protocol Error"。要绕过此问题，应将 error_reporting 级别降低为不包括警告。PHP 4.3.7 及更高版本可以在当使用 https:// 封装协议打开流的时候检测出有此问题的 IIS 服务器并抑制警告。如果使用 fsockopen() 来创建一个 ssl:// 套接字，则需要自己检测并抑制警告信息。

Note: 当安全模式被激活时，PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID（所有者）。

参见支持的协议／封装协议列表，fclose()，fgets()，fread()，fwrite()，fsockopen()，file()，file_exists()，is_readable()，stream_set_timeout() 和 popen()。

fnmatch
fpassthru
Filesystem 函数


输出文件指针处的所有剩余数据

fopen
fputcsv
Filesystem 函数
PHP 手册

fpassthru

(PHP 4, PHP 5)

fpassthru — 输出文件指针处的所有剩余数据

说明

int fpassthru ( resource $handle )

将给定的文件指针从当前的位置读取到 EOF 并把结果写到输出缓冲区。

如果发生错误， fpassthru() 返回 FALSE。否则 fpassthru() 返回从 handle 读取并传递到输出的字符数目。

文件指针必须有效，并且必须指向一个由 fopen() 或 fsockopen() 成功打开（但还没有被 fclose() 关闭）的文件。

如果已经向文件写入数据，就必须调用 rewind() 来将文件指针指向文件头。

如果既不修改文件也不在特定位置检索，只想将文件的内容下载到输出缓冲区，应该使用 readfile()，这样可以省去 fopen() 调用。

Note: 当在 Windows 系统中将 fpassthru() 用于二进制文件时，要确保在用 fopen() 打开文件时在 mode 中附加了 b 来将文件以二进制方式打开。
鼓励在处理二进制文件时使用 b 标志，即使系统并不需要，这样可以使脚本的移植性更好。

Example #1 对二进制文件使用 fpassthru()

<?php

// 以二进制格式打开文件
$name = './img/ok.png'
$fp = fopen($name, 'rb');

// 发送合适的报头
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// 发送图片并终止脚本
fpassthru($fp);
exit;

?>

参见 readfile()，fopen()，popen() 和 fsockopen()。

fopen
fputcsv
Filesystem 函数


将行格式化为 CSV 并写入文件指针

fpassthru
fputs
Filesystem 函数
PHP 手册

fputcsv

(PHP 5 >= 5.1.0)

fputcsv — 将行格式化为 CSV 并写入文件指针

说明

int fputcsv ( resource $handle [, array $fields [, string $delimiter [, string $enclosure ]]] )

fputcsv() 将一行（用 fields 数组传递）格式化为 CSV 格式并写入由 handle 指定的文件。返回写入字符串的长度，出错则返回 FALSE。

可选的 delimiter 参数设定字段分界符（只允许一个字符）。默认为逗号：,。

可选的 enclosure 参数设定字段字段环绕符（只允许一个字符）。默认为双引号："。

Example #1 fputcsv() 例子

<?php

$list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

Note: 如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符，可以激活 auto_detect_line_endings 运行时配置选项。

参见 fgetcsv()。

fpassthru
fputs
Filesystem 函数


fwrite 的别名

fputcsv
fread
Filesystem 函数
PHP 手册

fputs

(PHP 4, PHP 5)

fputs — fwrite() 的别名

说明

本函数是该函数的别名：fwrite()。

fputcsv
fread
Filesystem 函数


读取文件（可安全用于二进制文件）

fputs
fscanf
Filesystem 函数
PHP 手册

fread

(PHP 4, PHP 5)

fread — 读取文件（可安全用于二进制文件）

说明

string fread ( int $handle , int $length )

fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数，或到达 EOF 的时候，或（对于网络流）当一个包可用时，或（在打开用户空间流之后）已读取了 8192 个字节时就会停止读取文件，视乎先碰到哪种情况。

返回所读取的字符串，如果出错返回 FALSE。

<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
fclose($handle);
?>

Warning

在区分二进制文件和文本文件的系统上（如 Windows）打开文件时，fopen() 函数的 mode 参数要加上 'b'。

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize ($filename));
fclose($handle);
?>

Warning

当从任何不是普通本地文件读取时，例如在读取从远程文件或 popen() 以及 proc_open() 返回的流时，读取会在一个包可用之后停止。这意味着应该如下例所示将数据收集起来合并成大块。

<?php
// 对 PHP 5 及更高版本
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>

<?php
$handle = fopen ("http://www.example.com/", "rb");
$contents = "";
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
?>

Note: 如果只是想将一个文件的内容读入到一个字符串中，用 file_get_contents()，它的性能比上面的代码好得多。

参见 fwrite()，fopen()，fsockopen()，popen()，fgets()，fgetss()，fscanf()，file() 和 fpassthru()。

fputs
fscanf
Filesystem 函数


从文件中格式化输入

fread
fseek
Filesystem 函数
PHP 手册

fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf — 从文件中格式化输入

说明

mixed fscanf ( resource $handle , string $format [, mixed &$... ] )

fscanf() 函数和 sscanf() 相似，但是它从与 handle 关联的文件中接受输入并根据指定的 format （定义于 sprintf() 的文档中）来解释输入。如果只给此函数传递了两个参数，解析后的值会被作为数组返回。否则，如果提供了可选参数，此函数将返回被赋值的数目。可选参数必须用引用传递。

格式字符串中的任何空白会与输入流中的任何空白匹配。这意味着甚至格式字符串中的制表符 \t 也会与输入流中的一个空格字符匹配。

Example #1 fscanf() 例子

<?php
$handle = fopen("users.txt","r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... do something with the values
}
fclose($handle);
?>

Example #2 users.txt 的内容

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Note: 在 PHP 4.3.0 之前，从文件中读入的最大字符数是 512（或者第一个 \n，看先碰到哪种情况）。从 PHP 4.3.0 起可以读取任意长的行。

参见 fread()，fgets()，fgetss()，sscanf()，printf() 和 sprintf()。

fread
fseek
Filesystem 函数


在文件指针中定位

fscanf
fstat
Filesystem 函数
PHP 手册

fseek

(PHP 4, PHP 5)

fseek — 在文件指针中定位

说明

int fseek ( resource $handle , int $offset [, int $whence ] )

在与 handle 关联的文件中设定文件指针位置。新位置从文件头开始以字节数度量，是以 whence 指定的位置加上 offset 。whence 的值定义为：

  • SEEK_SET - 设定位置等于 offset 字节。
  • SEEK_CUR - 设定位置为当前位置加上 offset 。
  • SEEK_END - 设定位置为文件尾加上 offset 。（要移动到文件尾之前的位置，需要给 offset 传递一个负值。）

如果没有指定 whence ，默认为 SEEK_SET。

成功则返回 0；否则返回 -1。注意移动到 EOF 之后的位置不算错误。

Example #1 fseek() 例子

<?php

$fp = fopen('somefile.txt', 'r');

// read some data
$data = fgets($fp, 4096);

// move back to the begining of the file
// same as rewind($fp);
fseek($fp, 0);

?>

可能不能用于在 fopen() 中以 "http://" 或 "ftp://" 格式打开所返回的文件指针。在附加模式（加参数 "a" 打开文件）中 ftell() 会返回未定义错误。

Note: whence 参数是 PHP 4.0.0 之后增加的。

Note: 如果使用附加模试（"a" 或 "a+"），任何写入文件数据都会被附加上去，而文件的位置将会被忽略。

参见 ftell() 和 rewind()。

fscanf
fstat
Filesystem 函数


通过已打开的文件指针取得文件信息

fseek
ftell
Filesystem 函数
PHP 手册

fstat

(PHP 4, PHP 5)

fstat — 通过已打开的文件指针取得文件信息

说明

array fstat ( resource $handle )

获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似，除了它是作用于已打开的文件指针而不是文件名。

返回一个数组具有该文件的统计信息，该数组的格式详细说明于手册中 stat() 页面里。

Example #1 fstat() 例子

<?php

// 打开文件
$fp = fopen("/etc/passwd", "r");

// 取得统计信息
$fstat = fstat($fp);

// 关闭文件
fclose($fp);

// 只显示关联数组部分
print_r(array_slice($fstat, 13));

?>

上例的输出类似于：

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

fseek
ftell
Filesystem 函数


返回文件指针读/写的位置

fstat
ftruncate
Filesystem 函数
PHP 手册

ftell

(PHP 4, PHP 5)

ftell — 返回文件指针读/写的位置

说明

int ftell ( resource $handle )

返回由 handle 指定的文件指针的位置，也就是文件流中的偏移量。

如果出错，返回 FALSE。

文件指针必须是有效的，且必须指向一个通过 fopen() 或 popen() 成功打开的文件。在附加模式（加参数 "a" 打开文件）中 ftell() 会返回未定义错误。

Example #1 ftell() 例子

<?php

// 打开文件并读些数据
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// 现在指针到哪里了？
echo ftell($fp); // 11

fclose($fp);

?>

参见 fopen()，popen()，fseek() 和 rewind()。

fstat
ftruncate
Filesystem 函数


将文件截断到给定的长度

ftell
fwrite
Filesystem 函数
PHP 手册

ftruncate

(PHP 4, PHP 5)

ftruncate — 将文件截断到给定的长度

说明

bool ftruncate ( resource $handle , int $size )

接受文件指针 handle 作为参数，并将文件大小截取为 size 。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 文件只会在 append 模式下改变。在 write 模式下，必须加上 fseek() 操作。

Note: 在 PHP 4.3.3 之前，ftruncate() 在成功时返回一个 integer 值 1，而不是 boolean 的 TRUE。

参见 fopen() 和 fseek()。

ftell
fwrite
Filesystem 函数


写入文件（可安全用于二进制文件）

ftruncate
glob
Filesystem 函数
PHP 手册

fwrite

(PHP 4, PHP 5)

fwrite — 写入文件（可安全用于二进制文件）

说明

int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() 把 string 的内容写入 文件指针 handle 处。 如果指定了 length ，当写入了 length 个字节或者写完了 string 以后，写入就会停止，视乎先碰到哪种情况。

fwrite() 返回写入的字符数，出现错误时则返回 FALSE 。

注意如果给出了 length 参数，则 magic_quotes_runtime 配置选项将被忽略，而 string 中的斜线将不会被抽去。

Note: 在区分二进制文件和文本文件的系统上（如 Windows） 打开文件时，fopen() 函数的 mode 参数要加上 'b'。

Example #1 一个简单的 fwrite() 例子

<?php
$filename = 'test.txt';
$somecontent = "添加这些文字到文件\n";

// 首先我们要确定文件存在并且可写。
if (is_writable($filename)) {

    // 在这个例子里，我们将使用添加模式打开$filename，
    // 因此，文件指针将会在文件的开头，
    // 那就是当我们使用fwrite()的时候，$somecontent将要写入的地方。
    if (!$handle = fopen($filename, 'a')) {
         echo "不能打开文件 $filename";
         exit;
    }

    // 将$somecontent写入到我们打开的文件中。
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "不能写入到文件 $filename";
        exit;
    }

    echo "成功地将 $somecontent 写入到文件$filename";

    fclose($handle);

} else {
    echo "文件 $filename 不可写";
}
?>

参见 fread()，fopen()，fsockopen()，popen() 和 file_put_contents()。

ftruncate
glob
Filesystem 函数


寻找与模式匹配的文件路径

fwrite
is_dir
Filesystem 函数
PHP 手册

glob

(PHP 4 >= 4.3.0, PHP 5)

glob — 寻找与模式匹配的文件路径

说明

array glob ( string $pattern [, int $flags ] )

glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径，类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。

返回一个包含有匹配文件／目录的数组。如果出错返回 FALSE。

有效标记为：

  • GLOB_MARK - 在每个返回的项目中加一个斜线
  • GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回（不排序）
  • GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
  • GLOB_NOESCAPE - 反斜线不转义元字符
  • GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a'，'b' 或 'c'
  • GLOB_ONLYDIR - 仅返回与模式匹配的目录项

    Note: 在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 库的系统上不可用。

  • GLOB_ERR - 停止并读取错误信息（比如说不可读的目录），默认的情况下忽略所有错误

    Note: GLOB_ERR 是 PHP 5.1 添加的。

Example #1 怎样用 glob() 方便地替代 opendir() 和相关函数

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

上例的输出类似于：

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

参见 opendir()，readdir()，closedir() 和 fnmatch()。

fwrite
is_dir
Filesystem 函数


判断给定文件名是否是一个目录

glob
is_executable
Filesystem 函数
PHP 手册

is_dir

(PHP 4, PHP 5)

is_dir — 判断给定文件名是否是一个目录

说明

bool is_dir ( string $filename )

如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径，则按照当前工作目录检查其相对路径。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Example #1 is_dir() 例子

<?
var_dump(is_dir('a_file.txt')) . "\n";
var_dump(is_dir('bogus_dir/abc')) . "\n";

var_dump(is_dir('..')); //one dir up
?>

上例将输出：

bool(false)
bool(false)
bool(true)

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 chdir()，dir，opendir()，is_file() 和 is_link()。

glob
is_executable
Filesystem 函数


判断给定文件名是否可执行

is_dir
is_file
Filesystem 函数
PHP 手册

is_executable

(PHP 4, PHP 5)

is_executable — 判断给定文件名是否可执行

说明

bool is_executable ( string $filename )

如果文件存在且可执行则返回 TRUE。

is_executable() 自 PHP 5.0.0 版起可用于 Windows。

Example #1 is_executable() 例子

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' is executable';
} else {
    echo $file.' is not executable';
}

?>

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 is_file() 和 is_link()。

is_dir
is_file
Filesystem 函数


判断给定文件名是否为一个正常的文件

is_executable
is_link
Filesystem 函数
PHP 手册

is_file

(PHP 4, PHP 5)

is_file — 判断给定文件名是否为一个正常的文件

说明

bool is_file ( string $filename )

如果文件存在且为正常的文件则返回 TRUE。

Example #1 is_file() 例子

<?php
var_dump(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

上例将输出：

bool(true)
bool(false)

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 is_dir() 和 is_link()。

is_executable
is_link
Filesystem 函数


判断给定文件名是否为一个符号连接

is_file
is_readable
Filesystem 函数
PHP 手册

is_link

(PHP 4, PHP 5)

is_link — 判断给定文件名是否为一个符号连接

说明

bool is_link ( string $filename )

如果文件存在并且是一个符号连接则返回 TRUE。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 is_dir()，is_file() 和 readlink()。

is_file
is_readable
Filesystem 函数


判断给定文件名是否可读

is_link
is_uploaded_file
Filesystem 函数
PHP 手册

is_readable

(PHP 4, PHP 5)

is_readable — 判断给定文件名是否可读

说明

bool is_readable ( string $filename )

如果由 filename 指定的文件或目录存在并且可读则返回 TRUE。

记住 PHP 也许只能以运行 webserver 的用户名（通常为 'nobody'）来访问文件。不计入安全模式的限制。

Example #1 is_readable() 例子

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
    echo 'The file is readable';
} else {
    echo 'The file is not readable';
}
?>

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 is_writable()，file_exists() 和 fgets()。

is_link
is_uploaded_file
Filesystem 函数


判断文件是否是通过 HTTP POST 上传的

is_readable
is_writable
Filesystem 函数
PHP 手册

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的

说明

bool is_uploaded_file ( string $filename )

如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件，例如 /etc/passwd。

这种检查显得格外重要，如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

为了能使 is_uploaded_file() 函数正常工作，必段指定类似于 $_FILES['userfile']['tmp_name'] 的变量，而在从客户端上传的文件名 $_FILES['userfile']['name'] 不能正常运作。

Example #1 is_uploaded_file() 例子

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
   echo "Displaying contents\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Possible file upload attack: ";
   echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

is_uploaded_file() 仅可用于 PHP 3 的 3.0.16 版之后，以及 PHP 4 的 4.0.2 版之后。如果执意要用老版本，可以用下面的函数来保护自己：

Note: 以下例子不能用于 PHP 4 的 4.0.2 版之后。它依赖的 PHP 内部函数在该版本之后改变了。

Example #2 is_uploaded_file() 可运行于 PHP 4 < 4.0.3 的例子

<?php
/* Userland test for uploaded file. */
function is_uploaded_file_4_0_2($filename)
{
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* User might have trailing slash in php.ini... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* This is how to use it, since you also don't have
 * move_uploaded_file() in these older versions: */
if (is_uploaded_file_4_0_2($HTTP_POST_FILES['userfile'])) {
    copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo "Possible file upload attack: filename '$HTTP_POST_FILES[userfile]'.";
}
?>

参见 move_uploaded_file()，以及文件上传处理一章中的简单使用例子。

is_readable
is_writable
Filesystem 函数


判断给定的文件名是否可写

is_uploaded_file
is_writeable
Filesystem 函数
PHP 手册

is_writable

(PHP 4, PHP 5)

is_writable — 判断给定的文件名是否可写

说明

bool is_writable ( string $filename )

如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。

记住 PHP 也许只能以运行 webserver 的用户名（通常为 'nobody'）来访问文件。不计入安全模式的限制。

Example #1 is_writable() 例子

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
    echo 'The file is writable';
} else {
    echo 'The file is not writable';
}
?>

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 is_readable()，file_exists() 和 fwrite()。

is_uploaded_file
is_writeable
Filesystem 函数


is_writable 的别名

is_writable
lchgrp
Filesystem 函数
PHP 手册

is_writeable

(PHP 4, PHP 5)

is_writeable — is_writable() 的别名

说明

本函数是该函数的别名：is_writable()。

is_writable
lchgrp
Filesystem 函数


Changes group ownership of symlink

is_writeable
lchown
Filesystem 函数
PHP 手册

lchgrp

(PHP 5 >= 5.1.2)

lchgrp — Changes group ownership of symlink

说明

bool lchgrp ( string $filename , mixed $group )

Attempts to change the group of the symlink filename to group .

Only the superuser may change the group of a symlink arbitrarily; other users may change the group of a symlink to any group of which that user is a member.

参数

filename

Path to the symlink.

group

The group specified by name or number.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Changing the group of a symbolic link

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgroup($link, 8);
?>

注释

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

Note: 本函数未在 Windows 平台下实现。

参见

  • chgrp() - 改变文件所属的组
  • lchown() - Changes user ownership of symlink
  • chown() - 改变文件的所有者
  • chmod() - 改变文件模式

is_writeable
lchown
Filesystem 函数


Changes user ownership of symlink

lchgrp
link
Filesystem 函数
PHP 手册

lchown

(PHP 5 >= 5.1.2)

lchown — Changes user ownership of symlink

说明

bool lchown ( string $filename , mixed $user )

Attempts to change the owner of the symlink filename to user user .

Only the superuser may change the owner of a symlink.

参数

filename

Path to the file.

user

User name or number.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Changing the owner of a symbolic link

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

注释

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

Note: 本函数未在 Windows 平台下实现。

参见

  • chown() - 改变文件的所有者
  • lchgrp() - Changes group ownership of symlink
  • chgrp() - 改变文件所属的组
  • chmod() - 改变文件模式

lchgrp
link
Filesystem 函数


建立一个硬连接

lchown
linkinfo
Filesystem 函数
PHP 手册

link

(PHP 4, PHP 5)

link — 建立一个硬连接

说明

bool link ( string $target , string $link )

link() 建立一个硬连接。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。

Note: 本函数未在 Windows 平台下实现。

参见 symlink() 来建立软连接，以及
readlink() 和
linkinfo()。

lchown
linkinfo
Filesystem 函数


获取一个连接的信息

link
lstat
Filesystem 函数
PHP 手册

linkinfo

(PHP 4, PHP 5)

linkinfo — 获取一个连接的信息

说明

int linkinfo ( string $path )

linkinfo() 返回 lstat 系统调用所返回的 UNIX C stat 结构中的 st_dev 字段。本函数用来验证一个连接（由 path 所指向的）是否确实存在（使用 stat.h 中的 S_ISLNK 宏同样的方法）。如果出错则返回 0 或 FALSE。

Example #1 linkinfo() 例子

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Note: 本函数未在 Windows 平台下实现。

参见 symlink()，link() 和 readlink()。

link
lstat
Filesystem 函数


给出一个文件或符号连接的信息

linkinfo
mkdir
Filesystem 函数
PHP 手册

lstat

(PHP 4, PHP 5)

lstat — 给出一个文件或符号连接的信息

说明

array lstat ( string $filename )

获取由 filename 指定的文件或符号连接的统计信息。本函数和 stat() 函数相同，只除了如果 filename 参数是符号连接的话，则该符号连接的状态被返回，而不是该符号连接所指向的文件的状态。

有关 lstat() 返回的数组结构见手册中 stat() 函数的页面。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 stat()。

linkinfo
mkdir
Filesystem 函数


新建目录

lstat
move_uploaded_file
Filesystem 函数
PHP 手册

mkdir

(PHP 4, PHP 5)

mkdir — 新建目录

说明

bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )

尝试新建一个由 pathname 指定的目录。

注意也许想用八进制数指定模式，也就是说该数应以零打头。模式也会被当前的 umask 修改，可以用 umask() 来改变。

Note: mode 在 Windows 下被忽略。自 PHP 4.2.0 起成为可选项。

默认的 mode 是 0777，意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。

Example #1 mkdir() 例子

<?php
mkdir("/path/to/my/dir", 0700);
?>

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 自 PHP 5.0.0 rmdir() 也可用于某些 URL 封装协议。参见支持的协议／封装协议列表 的列表看看 rmdir() 支持哪些 URL 封装协议。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

Note: recursive 参数是 PHP 5.0.0 添加的。

Note: 当安全模式被激活时，PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID（所有者）。

参见 rmdir()。

lstat
move_uploaded_file
Filesystem 函数


将上传的文件移动到新位置

mkdir
parse_ini_file
Filesystem 函数
PHP 手册

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file — 将上传的文件移动到新位置

说明

bool move_uploaded_file ( string $filename , string $destination )

本函数检查并确保由 filename 指定的文件是合法的上传文件（即通过 PHP 的 HTTP POST 上传机制所上传的）。如果文件合法，则将其移动为由 destination 指定的文件。

如果 filename 不是合法的上传文件，不会出现任何操作，move_uploaded_file() 将返回 FALSE。

如果 filename 是合法的上传文件，但出于某些原因无法移动，不会出现任何操作，move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。

这种检查显得格外重要，如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

Note: move_uploaded_file() 对安全模式和 open_basedir 都是敏感的。不过，限制只针对 destination 路径，因为允许移动上传的文件名 filename 可能会与这些限制产生冲突。move_uploaded_file() 仅作用于通过 PHP 上传的文件以确保这个操作的安全性。

Warning

如果目标文件已经存在，将会被覆盖。

参见 is_uploaded_file()，以及文件上传处理一章中的简单使用例子。

mkdir
parse_ini_file
Filesystem 函数


解析一个配置文件

move_uploaded_file
parse_ini_string
Filesystem 函数
PHP 手册

parse_ini_file

(PHP 4, PHP 5)

parse_ini_file — 解析一个配置文件

说明

array parse_ini_file ( string $filename [, bool $process_sections ] )

parse_ini_file() 载入一个由 filename 指定的 ini 文件，并将其中的设置作为一个联合数组返回。如果将最后的 process_sections 参数设为 TRUE，将得到一个多维数组，包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE。

Note: 本函数和 php.ini 文件没有关系，该文件在运行脚本时就已经处理过了。本函数可以用来读取你自己的应用程序的配置文件。

Note: 如果 ini 文件中的值包含任何非字母数字的字符，需要将其括在双引号中（"）。

Note: 自 PHP 4.2.1 其本函数也受到安全模式和 open_basedir 的影响。

Note: 自 PHP 5.0 版本开始，该函数也处理选项值内的新行。

Note: 有些保留字不能作为 ini 文件中的键名，包括：null，yes，no，true 和 false。值为 null，no 和 false 等效于 ""，值为 yes 和 true 等效于 "1"。字符 {}|&~![()" 也不能用在键名的任何地方，而且这些字符在选项值中有着特殊的意义。

ini 文件的结构和 php.ini 的相似。

常量也可以在 ini 文件中被解析，因此如果在运行 parse_ini_file() 之前定义了常量作为 ini 的值，将会被集成到结果中去。只有 ini 的值会被求值。例如：

Example #1 sample.ini 的内容

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

Example #2 parse_ini_file() 例子

<?php

define('BIRD', 'Dodo bird');

// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

上例将输出：

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] = Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

由数字组成的键名和小节名会被 PHP 当作整数来处理，因此以 0 开头的数字会被当作八进制而以 0x 开头的会被当作十六进制。

move_uploaded_file
parse_ini_string
Filesystem 函数


Parse a configuration string

parse_ini_file
pathinfo
Filesystem 函数
PHP 手册

parse_ini_string

(PHP 5 >= 5.3.0)

parse_ini_string — Parse a configuration string

说明

array parse_ini_string ( string $ini [, bool $process_sections=false [, int $scanner_mode=INI_SCANNER_NORMAL ]] )

parse_ini_string() returns the settings in string ini in an associative array.

The structure of the ini string is the same as the php.ini's.

参数

ini

The contents of the ini file being parsed.

process_sections

By setting the process_sections parameter to TRUE, you get a multidimensional array, with the section names and settings included. The default for process_sections is FALSE

scanner_mode

Can either be INI_SCANNER_NORMAL (default) or INI_SCANNER_RAW. If INI_SCANNER_RAW is supplied, then option values will not be parsed.

返回值

The settings are returned as an associative array on success, and FALSE on failure.

参见

  • parse_ini_file() - 解析一个配置文件

parse_ini_file
pathinfo
Filesystem 函数


返回文件路径的信息

parse_ini_string
pclose
Filesystem 函数
PHP 手册

pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo — 返回文件路径的信息

说明

mixed pathinfo ( string $path [, int $options ] )

pathinfo() 返回一个关联数组包含有 path 的信息。包括以下的数组单元：dirname，basename 和 extension。

可以通过参数 options 指定要返回哪些单元。它们包括：PATHINFO_DIRNAME，PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。如果不是要求取得所有单元，则本函数返回字符串。

Example #1 pathinfo() 例子

<?php
$path_parts = pathinfo("/www/htdocs/index.html");
echo $path_parts["dirname"] . "\n";
echo $path_parts["basename"] . "\n";
echo $path_parts["extension"] . "\n";
?>

上例将输出：

/www/htdocs
index.html
html

Note: 有关取得当前路径信息的说明，请阅读预定义变量一节。

参见 dirname()，basename()，parse_url() 和 realpath()。

parse_ini_string
pclose
Filesystem 函数


关闭进程文件指针

pathinfo
popen
Filesystem 函数
PHP 手册

pclose

(PHP 4, PHP 5)

pclose — 关闭进程文件指针

说明

int pclose ( resource $handle )

关闭用 popen() 打开的指向管道的文件指针。

文件指针必须有效，且必须是成功调用 popen() 所返回的。

返回运行的进程的终止状态。

参见 popen()。

pathinfo
popen
Filesystem 函数


打开进程文件指针

pclose
readfile
Filesystem 函数
PHP 手册

popen

(PHP 4, PHP 5)

popen — 打开进程文件指针

说明

resource popen ( string $command , string $mode )

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

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

如果出错返回 FALSE。

Note: 如果需要双向支持，使用 proc_open()。

Example #1 popen() 例子

<?php
$handle = popen("/bin/ls", "r");
?>

Note: 如果未找到要执行的命令，会返回一个合法的资源。这看上去很怪，但有道理。它允许访问 shell 返回的任何错误信息：

<?php
error_reporting(E_ALL);

/* 加入重定向以得到标准错误输出 stderr。 */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Note: 在打开了安全模式时，只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分。

Warning

在打开了安全模式时，命令字符串会被 escapeshellcmd() 转义。从而 echo y | echo x 就成了 echo "y | echo x"。

参见 pclose()，fopen() 和 proc_open()。

pclose
readfile
Filesystem 函数


输出一个文件

popen
readlink
Filesystem 函数
PHP 手册

readfile

(PHP 4, PHP 5)

readfile — 输出一个文件

说明

int readfile ( string $filename [, bool $use_include_path [, resource $context ]] )

读入一个文件并写入到输出缓冲。

返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用，否则会显示错误信息。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

如果也想在 include_path 中搜索文件，可以使用可选的第二个参数并将其设为 TRUE。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

参见 fpassthru()，file()，fopen()，include()，require()，virtual()，file_get_contents() 和支持的协议／封装协议列表。

popen
readlink
Filesystem 函数


返回符号连接指向的目标

readfile
realpath
Filesystem 函数
PHP 手册

readlink

(PHP 4, PHP 5)

readlink — 返回符号连接指向的目标

说明

string readlink ( string $path )

readlink() 和同名的 C 函数做同样的事，返回符号连接的内容。如果出错返回 FALSE。

Example #1 readlink() 例子

<?php

// output e.g. /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Note: 本函数未在 Windows 平台下实现。

参见 is_link()，symlink() 和 linkinfo()。

readfile
realpath
Filesystem 函数


返回规范化的绝对路径名

readlink
rename
Filesystem 函数
PHP 手册

realpath

(PHP 4, PHP 5)

realpath — 返回规范化的绝对路径名

说明

string realpath ( string $path )

realpath() 扩展所有的符号连接并且处理输入的 path 中的 '/./', '/../' 以及多余的 '/' 并返回规范化后的绝对路径名。返回的路径中没有符号连接，'/./' 或 '/../' 成分。

realpath() 失败时返回 FALSE，比如说文件不存在的话。在 BSD 系统上，如果仅仅是 path 不存在的话，PHP 并不会像其它系统那样返回 FALSE。

Example #1 realpath() 例子

<?php
$real_path = realpath("../../index.php");
?>

参见 basename()，dirname() 和 pathinfo()。

readlink
rename
Filesystem 函数


重命名一个文件或目录

realpath
rewind
Filesystem 函数
PHP 手册

rename

(PHP 4, PHP 5)

rename — 重命名一个文件或目录

说明

bool rename ( string $oldname , string $newname [, resource $context ] )

尝试把 oldname 重命名为 newname 。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 rename() 例子

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Note: 在 PHP 4.3.3 之前，rename() 不能在基于 *nix 的系统中跨磁盘分区重命名文件。

Note: 自 PHP 5.0.0 起 rename() 也可用于某些 URL 封装协议。参见支持的协议／封装协议列表 的列表看看 rename() 支持哪些 URL 封装协议。

Note: 用于 oldname 中的封装协议必须和用于 newname 中的相匹配。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

参见 copy()，unlink() 和 move_uploaded_file()。

realpath
rewind
Filesystem 函数


倒回文件指针的位置

rename
rmdir
Filesystem 函数
PHP 手册

rewind

(PHP 4, PHP 5)

rewind — 倒回文件指针的位置

说明

bool rewind ( resource $handle )

将 handle 的文件位置指针设为文件流的开头。

如果成功则返回 TRUE，失败则返回 FALSE。

文件指针必须合法，并且指向由 fopen() 成功打开的文件。

Note: 如果将文件以附加（"a" 或者 "a+"）模式打开，写入文件的任何数据总是会被附加在后面，不管文件指针的位置。

参见 fseek() 和 ftell()。

rename
rmdir
Filesystem 函数


删除目录

rewind
set_file_buffer
Filesystem 函数
PHP 手册

rmdir

(PHP 4, PHP 5)

rmdir — 删除目录

说明

bool rmdir ( string $dirname )

尝试删除 dirname 所指定的目录。 该目录必须是空的，而且要有相应的权限。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 自 PHP 5.0.0 起 rmdir() 也可用于某些 URL 封装协议。参见支持的协议／封装协议列表 的列表看看 rmdir() 支持哪些 URL 封装协议。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

Note: 当安全模式被激活时，PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID（所有者）。

参见 mkdir() 和 unlink()。

rewind
set_file_buffer
Filesystem 函数


stream_set_write_buffer 的别名

rmdir
stat
Filesystem 函数
PHP 手册

set_file_buffer

(PHP 4, PHP 5)

set_file_buffer — stream_set_write_buffer() 的别名

说明

本函数是该函数的别名：stream_set_write_buffer()。

rmdir
stat
Filesystem 函数


给出文件的信息

set_file_buffer
symlink
Filesystem 函数
PHP 手册

stat

(PHP 4, PHP 5)

stat — 给出文件的信息

说明

array stat ( string $filename )

获取由 filename 指定的文件的统计信息。如果 filename 是符号连接，则统计信息是关于被连接文件本身的，而不是符号连接。lstat() 和 stat() 相同，只除了它会返回符号连接的状态。

如果出错，stat() 返回 FALSE，并且发出一条警告。

返回一个数组包含有文件的统计信息，该数组具有以下列出的单元，数组下标从零开始。除了数字索引之外自 PHP 4.0.6 起还可以通过关联索引来访问。

stat() 和 fstat() 返回格式
数字下标 | 关联键名（自 PHP 4.0.6） | 说明
0 | dev | device number - 设备名
1 | ino | inode number - inode 号码
2 | mode | inode protection mode - inode 保护模式
3 | nlink | number of links - 被连接数目
4 | uid | userid of owner - 所有者的用户 id
5 | gid | groupid of owner- 所有者的组 id
6 | rdev | device type, if inode device * - 设备类型，如果是 inode 设备的话
7 | size | size in bytes - 文件大小的字节数
8 | atime | time of last access (unix timestamp) - 上次访问时间（Unix 时间戳）
9 | mtime | time of last modification (unix timestamp) - 上次修改时间（Unix 时间戳）
10 | ctime | time of last change (unix timestamp) - 上次改变时间（Unix 时间戳）
11 | blksize | blocksize of filesystem IO * - 文件系统 IO 的块大小
12 | blocks | number of blocks allocated - 所占据块的数目

* - 仅在支持 st_blksize 类型的系统下有效。其它系统（如 Windows）返回 -1。

Note: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

Tip

自 PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考支持的协议／封装协议列表 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 lstat()，fstat()，filemtime() 和 filegroup()。

set_file_buffer
symlink
Filesystem 函数


建立符号连接

stat
tempnam
Filesystem 函数
PHP 手册

symlink

(PHP 4, PHP 5)

symlink — 建立符号连接

说明

bool symlink ( string $target , string $link )

symlink() 对于已有的 target 建立一个名为 link 的符号连接。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数未在 Windows 平台下实现。

参见 link() 来建立硬连接，以及
readlink() 和
linkinfo()。

stat
tempnam
Filesystem 函数


建立一个具有唯一文件名的文件

symlink
tmpfile
Filesystem 函数
PHP 手册

tempnam

(PHP 4, PHP 5)

tempnam — 建立一个具有唯一文件名的文件

说明

string tempnam ( string $dir , string $prefix )

在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在，tempnam() 会在系统临时目录中生成一个文件，并返回其文件名。

在 PHP 4.0.6 之前，tempnam() 函数的行为取决于系统。在 Windows 下 TMP 环境变量会越过 dir 参数，在 Linux 下 TMPDIR 环境变量优先，而在 SVR4 下总是使用 dir 参数，如果其指向的目录存在的话。如果有疑问请参考系统文档中的 tempnam(3) 函数。

Note: 如果 PHP 不能在指定的 dir 参数中创建文件，则退回到系统默认值。

返回新的临时文件名，出错返回 FALSE。

Example #1 tempnam() 例子

<?php
$tmpfname = tempnam("/tmp", "FOO");
$handle = fopen($tmpfname, "w");
fwrite($handle, "writing to tempfile");
fclose($handle);
// do here something
unlink($tmpfname);
?>

Note: 本函数的行为在 4.0.3 版中改变了。也会建立一个临时文件以避免竞争情形，即有可能会在产生出作为文件名的字符串与脚本真正建立该文件之间会在文件系统中存在同名文件。注意，如果不再需要该文件则要删除此文件，不会自动删除的。

参见 tmpfile() 和 unlink()。

symlink
tmpfile
Filesystem 函数


建立一个临时文件

tempnam
touch
Filesystem 函数
PHP 手册

tmpfile

(PHP 4, PHP 5)

tmpfile — 建立一个临时文件

说明

resource tmpfile ( void )

以读写（w+）模式建立一个具有唯一文件名的临时文件，返回一个与 fopen() 所返回相似的文件句柄。文件会在关闭后（用 fclose()）自动被删除，或当脚本结束后。

详细信息请参考系统手册中的 tmpfile(3) 函数，以及 stdio.h 头文件。

Example #1 tmpfile() 例子

<?php
$temp = tmpfile();
fwrite($temp, "writing to tempfile");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // this removes the file
?>

上例将输出：

writing to tempfile

参见 tempnam()。

tempnam
touch
Filesystem 函数


设定文件的访问和修改时间

tmpfile
umask
Filesystem 函数
PHP 手册

touch

(PHP 4, PHP 5)

touch — 设定文件的访问和修改时间

说明

bool touch ( string $filename [, int $time [, int $atime ]] )

尝试将由 filename 给出的文件的访问和修改时间设定为给出的时间。如果没有给出可选参数 time ，则使用当前系统时间。如果给出了第三个参数 atime ，则给定文件的访问时间会被设为 atime 。注意访问时间总是会被修改的，不论有几个参数。

如果文件不存在，则会被创建。如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 touch() 例子

<?php
if (touch($FileName)) {
    echo "$FileName modification time has been changed to present time";
} else {
    echo "Sorry, could not change modification time of $FileName";
}
?>

tmpfile
umask
Filesystem 函数


改变当前的 umask

touch
unlink
Filesystem 函数
PHP 手册

umask

(PHP 4, PHP 5)

umask — 改变当前的 umask

说明

int umask ([ int $mask ] )

umask() 将 PHP 的 umask 设定为 mask & 0777 并返回原来的 umask。当 PHP 被作为服务器模块使用时，在每个请求结束后 umask 会被恢复。

无参数调用 umask() 会返回当前的 umask。

Note: 在多线程的服务器上尽量避免使用这个函数。创建文件后要改变其权限最好还是使用 chmod()。使用 umask() 会导致并发程序和服务器发生不可预知的情况，因为它们是使用相同的 umask 的。

Example #1 umask() 例子

<?php
$old = umask(0);
chmod("/path/some_dir/some_file.txt", 0755);
umask($old);

// Checking
if ($old != umask()) {
    die('An error occured while changing back the umask');
}
?>

touch
unlink
Filesystem 函数


删除文件

umask
Inotify
Filesystem 函数
PHP 手册

unlink

(PHP 4, PHP 5)

unlink — 删除文件

说明

bool unlink ( string $filename )

删除 filename 。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 自 PHP 5.0.0 起 unlink() 也可以用于某些 URL 封装协议。参考支持的协议／封装协议列表 中的列表看哪些封装协议支持 unlink()。

Note: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Stream 函数。

参见目录删除函数 rmdir()。

umask
Inotify
Filesystem 函数


Inotify

  • 简介
  • 安装/配置
    • 需求
    • 安装/配置
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Inotify 函数
    • inotify_add_watch — Add a watch to an initialized inotify instance
    • inotify_init — Initialize an inotify instance
    • inotify_queue_len — Return a number upper than zero if there are pending events
    • inotify_read — Read events from an inotify instance
    • inotify_rm_watch — Remove an existing watch from an inotify instance
unlink
简介
文件系统相关扩展


简介

The inotify extension exposes the inotify functions inotify_init(), inotify_add_watch() and inotify_rm_watch().

As the C inotify_init() function returns a file descriptor, PHP's inotify_init() returns a stream resource, usable with standard stream functions, like stream_select(), stream_set_blocking() and fclose(). inotify_read() replaces the C way of reading inotify events.

Inotify
安装/配置
Inotify


安装/配置

Table of Contents

  • 需求
  • 安装/配置
  • 运行时配置
  • 资源类型
简介
需求
Inotify


需求

This extension requires Linux 2.6.13 or newer, and a recent libC.

安装/配置
安装/配置
安装/配置


安装/配置
PHP 手册

安装/配置

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/inotify.

需求
运行时配置
安装/配置
PHP 手册


运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

安装/配置
资源类型
安装/配置


资源类型

This extension defines a stream resource returned by inotify_init().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Inotify constants usable with inotify_add_watch() and/or returned by inotify_read()
IN_ACCESS (integer)
File was accessed (read) (*)
IN_MODIFY (integer)
File was modified (*)
IN_ATTRIB (integer)
Metadata changed (e.g. permissions, mtime, etc.) (*)
IN_CLOSE_WRITE (integer)
File opened for writing was closed (*)
IN_CLOSE_NOWRITE (integer)
File not opened for writing was closed (*)
IN_OPEN (integer)
File was opened (*)
IN_MOVED_TO (integer)
File moved into watched directory (*)
IN_MOVED_FROM (integer)
File moved out of watched directory (*)
IN_CREATE (integer)
File or directory created in watched directory (*)
IN_DELETE (integer)
File or directory deleted in watched directory (*)
IN_DELETE_SELF (integer)
Watched file or directory was deleted
IN_MOVE_SELF (integer)
Watch file or directory was moved
IN_CLOSE (integer)
Equals to IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (integer)
Equals to IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (integer)
Bitmask of all the above constants
IN_UNMOUNT (integer)
File system containing watched object was unmounted
IN_Q_OVERFLOW (integer)
Event queue overflowed (wd is -1 for this event)
IN_IGNORED (integer)
Watch was removed (explicitly by inotify_rm_watch() or because file was removed or filesystem unmounted
IN_ISDIR (integer)
Subject of this event is a directory
IN_ONLYDIR (integer)
Only watch pathname if it is a directory (Since Linux 2.6.15)
IN_DONT_FOLLOW (integer)
Do not dereference pathname if it is a symlink (Since Linux 2.6.15)
IN_MASK_ADD (integer)
Add events to watch mask for this pathname if it already exists (instead of replacing mask).
IN_ONESHOT (integer)
Monitor pathname for one event, then remove from watch list.

Note: The events marked with an asterisk (*) above can occur for files in watched directories.

资源类型
Inotify 函数
Inotify


Inotify 函数

Table of Contents

  • inotify_add_watch — Add a watch to an initialized inotify instance
  • inotify_init — Initialize an inotify instance
  • inotify_queue_len — Return a number upper than zero if there are pending events
  • inotify_read — Read events from an inotify instance
  • inotify_rm_watch — Remove an existing watch from an inotify instance
预定义常量
inotify_add_watch
Inotify


Add a watch to an initialized inotify instance

Inotify 函数
inotify_init
Inotify 函数
PHP 手册

inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watch — Add a watch to an initialized inotify instance

说明

int inotify_add_watch ( resource $inotify_instance , string $pathname , int $mask )

inotify_add_watch() adds a new watch or modify an existing watch for the file or directory specified in pathname .

Using inotify_add_watch() on a watched object replaces the existing watch. Using the IN_MASK_ADD constant adds (OR) events to the existing watch.

参数

inotify_instance

Resource returned by inotify_init()

pathname

File or directory to watch

mask

Events to watch for. See 预定义常量.

返回值

The return value is a unique (inotify instance wide) watch descriptor.

参见

  • inotify_init() - Initialize an inotify instance

Inotify 函数
inotify_init
Inotify 函数


Initialize an inotify instance

inotify_add_watch
inotify_queue_len
Inotify 函数
PHP 手册

inotify_init

(PECL inotify >= 0.1.2)

inotify_init — Initialize an inotify instance

说明

resource inotify_init ( void )

Initialize an inotify instance for use with inotify_add_watch()

返回值

A stream resource or FALSE on error.

范例

<?php
// Open an inotify instance
$fd = inotify_init();

// Watch __FILE__ for metadata changes (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

// generate an event
touch(__FILE__);

// Read events
$events = inotify_read($fd);
print_r($events);

// The following methods allows to use inotify functions without blocking on inotify_read():

// - Using stream_select() on $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);

// - Using stream_set_blocking() on $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending

// - Using inotify_queue_len() to check if event queue is not empty
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block

// Stop watching __FILE__ for metadata changes
inotify_rm_watch($fd, $watch_descriptor);

// Close the inotify instance
// This may have closed all watches if this was not already done
fclose($fd);

?>

上例的输出类似于：

array(
  array(
    'wd' => 1,     // Equals $watch_descriptor
    'mask' => 4,   // IN_ATTRIB bit is set
    'cookie' => 0, // unique id to connect related events (e.g.
                   // IN_MOVE_FROM and IN_MOVE_TO events)
    'name' => '',  // the name of a file (e.g. if we monitored changes
                   // in a directory)
  ),
);

参见

  • inotify_add_watch() - Add a watch to an initialized inotify instance
  • inotify_rm_watch() - Remove an existing watch from an inotify instance
  • inotify_queue_len() - Return a number upper than zero if there are pending events
  • inotify_read() - Read events from an inotify instance
  • fclose() - 关闭一个已打开的文件指针

inotify_add_watch
inotify_queue_len
Inotify 函数


Return a number upper than zero if there are pending events

inotify_init
inotify_read
Inotify 函数
PHP 手册

inotify_queue_len

(PECL inotify >= 0.1.2)

inotify_queue_len — Return a number upper than zero if there are pending events

说明

int inotify_queue_len ( resource $inotify_instance )

This function allows to know if inotify_read() will block or not. If a number upper than zero is returned, there are pending events and inotify_read() will not block.

参数

inotify_instance

Resource returned by inotify_init()

返回值

Returns a number upper than zero if there are pending events.

参见

  • inotify_init() - Initialize an inotify instance
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream

inotify_init
inotify_read
Inotify 函数


Read events from an inotify instance

inotify_queue_len
inotify_rm_watch
Inotify 函数
PHP 手册

inotify_read

(PECL inotify >= 0.1.2)

inotify_read — Read events from an inotify instance

说明

array inotify_read ( resource $inotify_instance )

Read inotify events from an inotify instance.

参数

inotify_instance

Resource returned by inotify_init()

返回值

An array of inotify events or FALSE if no events was pending and inotify_instance is non-blocking. Each event is an array with the following keys:

  • wd is a watch descriptor returned by inotify_add_watch()
  • mask is a bit mask of events
  • cookie is a unique id to connect related events (e.g. IN_MOVE_FROM and IN_MOVE_TO)
  • name is the name of a file (e.g. if a file was modified in a watched directory)

参见

  • inotify_init() - Initialize an inotify instance
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • inotify_queue_len() - Return a number upper than zero if there are pending events

inotify_queue_len
inotify_rm_watch
Inotify 函数


Remove an existing watch from an inotify instance

inotify_read
Mimetype
Inotify 函数
PHP 手册

inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watch — Remove an existing watch from an inotify instance

说明

bool inotify_rm_watch ( resource $inotify_instance , int $watch_descriptor )

inotify_rm_watch() removes the watch watch_descriptor from the inotify instance inotify_instance .

参数

inotify_instance

Resource returned by inotify_init()

watch_descriptor

Watch to remove from the instance

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • inotify_init() - Initialize an inotify instance

inotify_read
Mimetype
Inotify 函数


Mimetype

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Mimetype 函数
    • mime_content_type — Detect MIME Content-type for a file (deprecated)
inotify_rm_watch
简介
文件系统相关扩展


简介

Warning

This extension has been deprecated as the PECL extension Fileinfo provides the same functionality (and more) in a much cleaner way.

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

This extension is derived from Apache mod_mime_magic, which is itself based on the file command maintained by Ian F. Darwin. See the source code for further historic and copyright information.

Mimetype
安装/配置
Mimetype


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Mimetype


安装

You must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd.

Note: The configure option has been changed from --enable-mime-magic to --with-mime-magic since PHP 4.3.2

Note: This extension is not capable of handling the fully decorated magic file that generally comes with standard Linux distro's and is supposed to be used with recent versions of file command.

Note: Note to Win32 Users
In order to use this module on a Windows environment, you must set the path to the bundled magic.mime file in your php.ini.

Example #1 Setting the path to magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Remember to substitute the $PHP_INSTALL_DIR for your actual path to PHP in the above example. e.g. c:\php

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Mimetype configuration options
Name | Default | Changeable | Changelog
mime_magic.debug | "0" | PHP_INI_SYSTEM | Available since PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Available since PHP 4.3.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

mime_magic.debug bool

Enable/disable debugging.

mime_magic.magicfile string

The path to the magic.mime file.

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Mimetype 函数
Mimetype


Mimetype 函数

Table of Contents

  • mime_content_type — Detect MIME Content-type for a file (deprecated)
预定义常量
mime_content_type
Mimetype


Detect MIME Content-type for a file (deprecated)

Mimetype 函数
xattr
Mimetype 函数
PHP 手册

mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_type — Detect MIME Content-type for a file (deprecated)

说明

string mime_content_type ( string $filename )

Returns the MIME content type for a file as determined by using information from the magic.mime file.

参数

filename

Path to the tested file.

返回值

Returns the content type in MIME format, like text/plain or application/octet-stream.

注释

Warning

This function has been deprecated as the PECL extension Fileinfo provides the same functionality (and more) in a much cleaner way.

范例

Example #1 mime_content_type() Example

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

上例将输出：

image/gif
text/plain

参见

  • Fileinfo for a replacement

Mimetype 函数
xattr
Mimetype 函数


xattr

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • xattr 函数
    • xattr_get — Get an extended attribute
    • xattr_list — Get a list of extended attributes
    • xattr_remove — Remove an extended attribute
    • xattr_set — Set an extended attribute
    • xattr_supported — Check if filesystem supports extended attributes
mime_content_type
简介
文件系统相关扩展


简介

The xattr extension allows for the manipulation of extended attributes on a filesystem.

xattr
安装/配置
xattr


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
xattr


需求

To use xattr, you will need libattr installed. It is available at » http://oss.sgi.com/projects/xfs/.

Note: These functions only work on filesystems that support extended attributes, and have them enabled at mount time. Some common filesystems that support extended attributes are ext2, ext3, reiserfs, jfs, and xfs.

安装/配置
安装
安装/配置


安装

xattr is currently available through PECL » http://pecl.php.net/package/xattr.

If » PEAR is available on your *nix-like system you can use the pear installer to install the xattr extension, by the following command: pear -v install xattr.

You can always download the tar.gz package and install xattr by hand:

Example #1 xattr install by hand

gunzip xattr-xxx.tgz
tar -xvf xattr-xxx.tar
cd xattr-xxx
phpize
./configure && make && make install

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XATTR_ROOT (integer)
Set attribute in root (trusted) namespace. Requires root privileges.
XATTR_DONTFOLLOW (integer)
Do not follow the symbolic link but operate on symbolic link itself.
XATTR_CREATE (integer)
Function will fail if extended attribute already exists.
XATTR_REPLACE (integer)
Function will fail if extended attribute doesn't exist.
资源类型
xattr 函数
xattr


xattr 函数

Table of Contents

  • xattr_get — Get an extended attribute
  • xattr_list — Get a list of extended attributes
  • xattr_remove — Remove an extended attribute
  • xattr_set — Set an extended attribute
  • xattr_supported — Check if filesystem supports extended attributes
预定义常量
xattr_get
xattr


Get an extended attribute

xattr 函数
xattr_list
xattr 函数
PHP 手册

xattr_get

(PECL xattr >= 0.9.0)

xattr_get — Get an extended attribute

说明

string xattr_get ( string $filename , string $name [, int $flags=0 ] )

This function gets the value of an extended attribute of a file.

扩展的属性有两个不同的名字空间：user 和 root 名字空间。user 名字空间对所有用户均有效，而 root 名字空间仅对拥有 root 权限的用户有效。xattr 默认在 user 名字空间上进行操作，但是可以使用 flags 参数进行更改。

参数

filename

The file from which we get the attribute.

name

The name of the attribute.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

返回值

Returns a string containing the value or FALSE if the attribute doesn't exist.

范例

Example #1 Checks if system administrator has signed the file

<?php
$file = '/usr/local/sbin/some_binary';
$signature = xattr_get($file, 'Root signature', XATTR_ROOT);

/* ... check if $signature is valid ... */

?>

参见

  • xattr_list() - Get a list of extended attributes
  • xattr_set() - Set an extended attribute
  • xattr_remove() - Remove an extended attribute

xattr 函数
xattr_list
xattr 函数


Get a list of extended attributes

xattr_get
xattr_remove
xattr 函数
PHP 手册

xattr_list

(PECL xattr >= 0.9.0)

xattr_list — Get a list of extended attributes

说明

array xattr_list ( string $filename [, int $flags=0 ] )

This functions gets a list of names of extended attributes of a file.

扩展的属性有两个不同的名字空间：user 和 root 名字空间。user 名字空间对所有用户均有效，而 root 名字空间仅对拥有 root 权限的用户有效。xattr 默认在 user 名字空间上进行操作，但是可以使用 flags 参数进行更改。

参数

filename

The path of the file.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

返回值

This function returns an array with names of extended attributes.

范例

Example #1 Prints names of all extended attributes of file

<?php
$file = 'some_file';
$root_attributes = xattr_list($file, XATTR_ROOT);
$user_attributes = xattr_list($file);

echo "Root attributes: \n";
foreach ($root_attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

echo "\n User attributes: \n";
foreach ($attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

?>

参见

  • xattr_get() - Get an extended attribute

xattr_get
xattr_remove
xattr 函数


Remove an extended attribute

xattr_list
xattr_set
xattr 函数
PHP 手册

xattr_remove

(PECL xattr >= 0.9.0)

xattr_remove — Remove an extended attribute

说明

bool xattr_remove ( string $filename , string $name [, int $flags=0 ] )

This function removes an extended attribute of a file.

扩展的属性有两个不同的名字空间：user 和 root 名字空间。user 名字空间对所有用户均有效，而 root 名字空间仅对拥有 root 权限的用户有效。xattr 默认在 user 名字空间上进行操作，但是可以使用 flags 参数进行更改。

参数

filename

The file from which we remove the attribute.

name

The name of the attribute to remove.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Removes all extended attributes of a file

<?php
$file = 'some_file';
$attributes = xattr_list($file);

foreach ($attributes as $attr_name) {
    xattr_remove($file, $attr_name);
}
?>

参见

  • xattr_list() - Get a list of extended attributes
  • xattr_set() - Set an extended attribute
  • xattr_get() - Get an extended attribute

xattr_list
xattr_set
xattr 函数


Set an extended attribute

xattr_remove
xattr_supported
xattr 函数
PHP 手册

xattr_set

(PECL xattr >= 0.9.0)

xattr_set — Set an extended attribute

说明

bool xattr_set ( string $filename , string $name , string $value [, int $flags=0 ] )

This function sets the value of an extended attribute of a file.

扩展的属性有两个不同的名字空间：user 和 root 名字空间。user 名字空间对所有用户均有效，而 root 名字空间仅对拥有 root 权限的用户有效。xattr 默认在 user 名字空间上进行操作，但是可以使用 flags 参数进行更改。

参数

filename

The file in which we set the attribute.

name

The name of the extended attribute. This attribute will be created if it doesn't exist or replaced otherwise. You can change this behaviour by using the flags parameter.

value

The value of the attribute.

flags

Supported xattr flags
XATTR_CREATE | Function will fail if extended attribute already exists.
XATTR_REPLACE | Function will fail if extended attribute doesn't exist.
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Sets extended attributes on .wav file

<?php
$file = 'my_favourite_song.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... other code ... */

printf("You've played this song %d times", xattr_get($file, 'Listen count'));
?>

参见

  • xattr_get() - Get an extended attribute
  • xattr_remove() - Remove an extended attribute

xattr_remove
xattr_supported
xattr 函数


Check if filesystem supports extended attributes

xattr_set
xdiff
xattr 函数
PHP 手册

xattr_supported

(PECL xattr >= 1.0.0)

xattr_supported — Check if filesystem supports extended attributes

说明

bool xattr_supported ( string $filename [, int $flags=0 ] )

This functions checks if the filesystem holding the given file supports extended attributes. Read access to the file is required.

参数

filename

The path of the tested file.

flags

Supported xattr flags
XATTR_DONTFOLLOW Do not follow the symbolic link but operate on symbolic link itself.

返回值

This function returns TRUE if filesystem supports extended attributes, FALSE if it doesn't and NULL if it can't be determined (for example wrong path or lack of permissions to file).

范例

Example #1 xattr_supported() example

The following code checks if we can use extended attributes.

<?php
$file = 'some_file';

if (xattr_supported($file)) {
    /* ... make use of some xattr_* functions ... */
}

?>

参见

  • xattr_get() - Get an extended attribute
  • xattr_list() - Get a list of extended attributes

xattr_set
xdiff
xattr 函数


xdiff

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • xdiff 函数
    • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_file_bdiff — Make binary diff of two files
    • xdiff_file_bpatch — Patch a file with a binary diff
    • xdiff_file_diff_binary — Alias of xdiff_file_bdiff
    • xdiff_file_diff — Make unified diff of two files
    • xdiff_file_merge3 — Merge 3 files into one
    • xdiff_file_patch_binary — Alias of xdiff_file_bpatch
    • xdiff_file_patch — Patch a file with an unified diff
    • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_string_bdiff — Make binary diff of two strings
    • xdiff_string_bpatch — Patch a string with a binary diff
    • xdiff_string_diff_binary — Alias of xdiff_string_bdiff
    • xdiff_string_diff — Make unified diff of two strings
    • xdiff_string_merge3 — Merge 3 strings into one
    • xdiff_string_patch_binary — Alias of xdiff_string_bpatch
    • xdiff_string_patch — Patch a string with an unified diff
    • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
xattr_supported
简介
文件系统相关扩展


简介

xdiff extension enables you to create and apply patch files containing differences between different revisions of files.

This extension supports two modes of operation - on strings and on files, as well as two different patch formats - unified and binary. Unified patches are excellent for text files as they are human-readable and easy to review. For binary files like archives or images, binary patches will be adequate choice as they are binary safe and handle non-printable characters well.

Starting from version 1.5.0 there are two different sets of functions for generating binary patches. New functions - xdiff_string_rabdiff() and xdiff_file_rabdiff() generate output compatible with older functions but are typically faster and generate smaller results. For more details about methods of generating binary patches and differences between them, please check » libxdiff website.

This extension uses libxdiff to implement these functions. Please see » http://www.xmailserver.org/xdiff-lib.html for more informations.

xdiff
安装/配置
xdiff


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
xdiff


需求

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage » http://www.xmailserver.org/xdiff-lib.html.

Note: You'll need at least libxdiff 0.7 for these functions to be aware of memory_limit.

安装/配置
安装
安装/配置


安装

xdiff is currently available through PECL » http://pecl.php.net/package/xdiff.

If » PEAR is available on your *nix-like system you can use the pear installer to install the xdiff extension, by the following command: pear -v install xdiff.

You can always download the tar.gz package and install xdiff by hand:

Example #1 xdiff install by hand

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XDIFF_PATCH_NORMAL (integer)
This flag indicates that xdiff_string_patch() and xdiff_file_patch() functions should create result by applying patch to original content thus creating newer version of file. This is the default mode of operation.
XDIFF_PATCH_REVERSE (integer)
This flag indicated that xdiff_string_patch() and xdiff_file_patch() functions should create result by reversing patch changed from newer content thus creating original version.
资源类型
xdiff 函数
xdiff


xdiff 函数

Table of Contents

  • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_file_bdiff — Make binary diff of two files
  • xdiff_file_bpatch — Patch a file with a binary diff
  • xdiff_file_diff_binary — Alias of xdiff_file_bdiff
  • xdiff_file_diff — Make unified diff of two files
  • xdiff_file_merge3 — Merge 3 files into one
  • xdiff_file_patch_binary — Alias of xdiff_file_bpatch
  • xdiff_file_patch — Patch a file with an unified diff
  • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_string_bdiff — Make binary diff of two strings
  • xdiff_string_bpatch — Patch a string with a binary diff
  • xdiff_string_diff_binary — Alias of xdiff_string_bdiff
  • xdiff_string_diff — Make unified diff of two strings
  • xdiff_string_merge3 — Merge 3 strings into one
  • xdiff_string_patch_binary — Alias of xdiff_string_bpatch
  • xdiff_string_patch — Patch a string with an unified diff
  • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
预定义常量
xdiff_file_bdiff_size
xdiff


Read a size of file created by applying a binary diff

xdiff 函数
xdiff_file_bdiff
xdiff 函数
PHP 手册

xdiff_file_bdiff_size

(PECL xdiff >= 0.2.0)

xdiff_file_bdiff_size — Read a size of file created by applying a binary diff

说明

int xdiff_file_bdiff_size ( string $file )

Returns a size of a result file that would be created after applying binary patch from file file to the original file.

参数

file

The path to the binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

返回值

Returns the size of file that would be created.

范例

Example #1 xdiff_file_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$length = xdiff_string_bdiff_size('file.bdiff');
echo "Resulting file will be $length bytes long";
?>

参见

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_file_bpatch() - Patch a file with a binary diff

xdiff 函数
xdiff_file_bdiff
xdiff 函数


Make binary diff of two files

xdiff_file_bdiff_size
xdiff_file_bpatch
xdiff 函数
PHP 手册

xdiff_file_bdiff

(PECL xdiff >= 0.2.0)

xdiff_file_bdiff — Make binary diff of two files

说明

bool xdiff_file_bdiff ( string $old_file , string $new_file , string $dest )

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

参数

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 xdiff_file_bdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version, $new_version, 'my_script.bdiff');
?>

注释

Note: Both files will be loaded into memory so ensure that your memory_limit is set high enough.

参见

  • xdiff_file_bpatch() - Patch a file with a binary diff

xdiff_file_bdiff_size
xdiff_file_bpatch
xdiff 函数


Patch a file with a binary diff

xdiff_file_bdiff
xdiff_file_diff_binary
xdiff 函数
PHP 手册

xdiff_file_bpatch

(PECL xdiff >= 0.2.0)

xdiff_file_bpatch — Patch a file with a binary diff

说明

bool xdiff_file_bpatch ( string $file , string $patch , string $dest )

Patches a file with a binary patch and stores the result in a file dest . This function accepts patches created both via xdiff_file_bdiff() and xdiff_file_rabdiff() functions or their string counterparts.

参数

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 xdiff_file_bpatch() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_bpatch($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

注释

Note: Both files (file and patch ) will be loaded into memory so ensure that your memory_limit is set high enough.

参见

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

xdiff_file_bdiff
xdiff_file_diff_binary
xdiff 函数


Alias of xdiff_file_bdiff

xdiff_file_bpatch
xdiff_file_diff
xdiff 函数
PHP 手册

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Alias of xdiff_file_bdiff

说明

bool xdiff_file_diff_binary ( string $old_file , string $new_file , string $dest )

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_file_bdiff().

参数

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 xdiff_file_diff_binary() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version, $new_version, 'my_script.bdiff');
?>

注释

Note: Both files will be loaded into memory so ensure that your memory_limit is set high enough.

参见

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_bpatch() - Patch a file with a binary diff

xdiff_file_bpatch
xdiff_file_diff
xdiff 函数


Make unified diff of two files

xdiff_file_diff_binary
xdiff_file_merge3
xdiff 函数
PHP 手册

xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diff — Make unified diff of two files

说明

bool xdiff_file_diff ( string $old_file , string $new_file , string $dest [, int $context=3 [, bool $minimal=false ]] )

Makes an unified diff containing differences between old_file and new_file and stores it in dest file. The resulting file is human-readable. An optional context parameter specifies how many lines of context should be added around each change (with default value of 3). Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

参数

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file.

context

Indicates how many lines of context you want to include in diff result. Default is 3.

minimal

Set this parameter to TRUE if you want to minimalize size of the result (can take a long time).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 xdiff_file_diff() example

The following code makes unified diff of two php files with context length of 2.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

注释

Note: This function doesn't work well with binary files. To make diff of binary files use xdiff_file_bdiff()/xdiff_file_rabdiff() function.

参见

  • xdiff_file_patch() - Patch a file with an unified diff

xdiff_file_diff_binary
xdiff_file_merge3
xdiff 函数


Merge 3 files into one

xdiff_file_diff
xdiff_file_patch_binary
xdiff 函数
PHP 手册

xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3 — Merge 3 files into one

说明

mixed xdiff_file_merge3 ( string $old_file , string $new_file1 , string $new_file2 , string $dest )

Merges three files into one and stores the result in a file dest . The old_file is an original version while new_file1 and new_file2 are modified versions of an original.

参数

old_file

Path to the first file. It acts as "old" file.

new_file1

Path to the second file. It acts as modified version of old_file .

new_file2

Path to the third file. It acts as modified version of old_file .

dest

Path of the resulting file, containing merged changed from both new_file1 and new_file2 .

返回值

Returns TRUE if merge was successful, string with rejected chunks if it was not or FALSE if an internal error happened.

范例

Example #1 xdiff_file_merge3() example

The following code merges three files into one.

<?php
$old_version = 'original_script.php';
$fix1 = 'script_with_fix1.php';
$fix2 = 'script_with_fix2.php';

$errors = xdiff_file_merge3($old_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
    echo "Rejects:\n";
    echo $errors;
}
?>

参见

  • xdiff_string_merge3() - Merge 3 strings into one

xdiff_file_diff
xdiff_file_patch_binary
xdiff 函数


Alias of xdiff_file_bpatch

xdiff_file_merge3
xdiff_file_patch
xdiff 函数
PHP 手册

xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binary — Alias of xdiff_file_bpatch

说明

bool xdiff_file_patch_binary ( string $file , string $patch , string $dest )

Patches a file with a binary patch and stores the result in a file dest . This function accepts patches created both via xdiff_file_bdiff() or xdiff_file_rabdiff() functions or their string counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_file_bpatch().

参数

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 xdiff_file_patch_binary() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

注释

Note: Both files (file and patch ) will be loaded into memory so ensure that your memory_limit is set high enough.

参见

  • xdiff_string_patch_binary() - Alias of xdiff_string_bpatch

xdiff_file_merge3
xdiff_file_patch
xdiff 函数


Patch a file with an unified diff

xdiff_file_patch_binary
xdiff_file_rabdiff
xdiff 函数
PHP 手册

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — Patch a file with an unified diff

说明

mixed xdiff_file_patch ( string $file , string $patch , string $dest [, int $flags=DIFF_PATCH_NORMAL ] )

Patches a file with a patch and stores the result in a file. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation.

参数

file

The original file.

patch

The unified patch file. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

dest

Path of the resulting file.

flags

Can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

返回值

Returns FALSE if an internal error happened, string with rejected chunks if patch couldn't be applied or TRUE if patch has been successfully applied.

范例

Example #1 xdiff_file_patch() example

The following code applies unified diff to a file.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

Example #2 Patch reversing example

The following code reverses a patch.

<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

参见

  • xdiff_file_diff() - Make unified diff of two files

xdiff_file_patch_binary
xdiff_file_rabdiff
xdiff 函数


Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

xdiff_file_patch
xdiff_string_bdiff_size
xdiff 函数
PHP 手册

xdiff_file_rabdiff

(PECL xdiff >= 0.2.0)

xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

说明

bool xdiff_file_rabdiff ( string $old_file , string $new_file , string $dest )

Makes a binary diff of two files and stores the result in a patch file. The difference between this function and xdiff_file_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

参数

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 xdiff_file_rabdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>

注释

Note: Both files will be loaded into memory so ensure that your memory_limit is set high enough.

参见

  • xdiff_file_bpatch() - Patch a file with a binary diff

xdiff_file_patch
xdiff_string_bdiff_size
xdiff 函数


Read a size of file created by applying a binary diff

xdiff_file_rabdiff
xdiff_string_bdiff
xdiff 函数
PHP 手册

xdiff_string_bdiff_size

(PECL xdiff >= 0.2.0)

xdiff_string_bdiff_size — Read a size of file created by applying a binary diff

说明

int xdiff_string_bdiff_size ( string $patch )

Returns a size of a result file that would be created after applying binary patch to the original file.

参数

patch

The binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

返回值

Returns the size of file that would be created.

范例

Example #1 xdiff_string_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$binary_patch = file_get_contents('file.bdiff');
$length = xdiff_string_bdiff_size($binary_patch);
echo "Resulting file will be $length bytes long";
?>

参见

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bpatch() - Patch a string with a binary diff

xdiff_file_rabdiff
xdiff_string_bdiff
xdiff 函数


Make binary diff of two strings

xdiff_string_bdiff_size
xdiff_string_bpatch
xdiff 函数
PHP 手册

xdiff_string_bdiff

(PECL xdiff >= 0.2.0)

xdiff_string_bdiff — Make binary diff of two strings

说明

string xdiff_string_bdiff ( string $old_data , string $new_data )

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

参数

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

返回值

Returns string with binary diff containing differences between "old" and "new" data or FALSE if an internal error occurred.

参见

  • xdiff_string_bpatch() - Patch a string with a binary diff

xdiff_string_bdiff_size
xdiff_string_bpatch
xdiff 函数


Patch a string with a binary diff

xdiff_string_bdiff
xdiff_string_diff_binary
xdiff 函数
PHP 手册

xdiff_string_bpatch

(PECL xdiff >= 0.2.0)

xdiff_string_bpatch — Patch a string with a binary diff

说明

string xdiff_string_bpatch ( string $str , string $patch )

Patches a string str with a binary patch . This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

参数

str

The original binary string.

patch

The binary patch string.

返回值

Returns the patched string, or FALSE on error.

参见

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

xdiff_string_bdiff
xdiff_string_diff_binary
xdiff 函数


Alias of xdiff_string_bdiff

xdiff_string_bpatch
xdiff_string_diff
xdiff 函数
PHP 手册

xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binary — Alias of xdiff_string_bdiff

说明

string xdiff_string_bdiff ( string $old_data , string $new_data )

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_string_bdiff().

参数

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

返回值

Returns string with result or FALSE if an internal error happened.

参见

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_bpatch() - Patch a string with a binary diff

xdiff_string_bpatch
xdiff_string_diff
xdiff 函数


Make unified diff of two strings

xdiff_string_diff_binary
xdiff_string_merge3
xdiff 函数
PHP 手册

xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diff — Make unified diff of two strings

说明

string xdiff_string_diff ( string $old_data , string $new_data [, int $context=3 [, bool $minimal=false ]] )

Makes an unified diff containing differences between old_data string and new_data string and returns it. The resulting diff is human-readable. An optional context parameter specifies how many lines of context should be added around each change (with default value of 3). Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

参数

old_data

First string with data. It acts as "old" data.

new_data

Second string with data. It acts as "new" data.

context

Indicates how many lines of context you want to include in the diff result. Default is 3.

minimal

Set this parameter to TRUE if you want to minimalize the size of the result (can take a long time).

返回值

Returns string with resulting diff or FALSE if an internal error happened.

范例

Example #1 xdiff_string_diff() example

The following code makes unified diff of two articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Let's say that someone pasted a new article to html form */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
    echo "Differences between two articles:\n";
    echo $diff;
}

?>

注释

Note: This function doesn't work well with binary strings. To make diff of binary strings use xdiff_string_bdiff()/xdiff_string_rabdiff().

参见

  • xdiff_string_patch() - Patch a string with an unified diff

xdiff_string_diff_binary
xdiff_string_merge3
xdiff 函数


Merge 3 strings into one

xdiff_string_diff
xdiff_string_patch_binary
xdiff 函数
PHP 手册

xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3 — Merge 3 strings into one

说明

mixed xdiff_string_merge3 ( string $old_data , string $new_data1 , string $new_data2 [, string &$error ] )

Merges three strings into one and returns the result. The old_data is an original version of data while new_file1 and new_file2 are modified versions of an original. An optional error is used to pass any rejected parts during merging process.

参数

old_data

First string with data. It acts as "old" data.

new_data1

Second string with data. It acts as modified version of old_data .

new_data2

Third string with data. It acts as modified version of old_data .

error

If provided then rejected parts are stored inside this variable.

返回值

Returns the merged string, FALSE if an internal error happened, or TRUE if merged string is empty.

参见

  • xdiff_file_merge3() - Merge 3 files into one

xdiff_string_diff
xdiff_string_patch_binary
xdiff 函数


Alias of xdiff_string_bpatch

xdiff_string_merge3
xdiff_string_patch
xdiff 函数
PHP 手册

xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binary — Alias of xdiff_string_bpatch

说明

string xdiff_string_patch_binary ( string $str , string $patch )

Patches a string str with a binary patch . This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_string_bpatch().

参数

str

The original binary string.

patch

The binary patch string.

返回值

Returns the patched string, or FALSE on error.

参见

  • xdiff_string_bpatch() - Patch a string with a binary diff
  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

xdiff_string_merge3
xdiff_string_patch
xdiff 函数


Patch a string with an unified diff

xdiff_string_patch_binary
xdiff_string_rabdiff
xdiff 函数
PHP 手册

xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Patch a string with an unified diff

说明

string xdiff_string_patch ( string $str , string $patch [, int $flags [, string &$error ]] )

Patches a str string with an unified patch in patch parameter and returns the result. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation. Any rejected parts of the patch will be stored inside error variable if it is provided.

参数

str

The original string.

patch

The unified patch string. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

flags

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

error

If provided then rejected parts are stored inside this variable.

返回值

Returns the patched string, or FALSE on error.

范例

Example #1 xdiff_string_patch() example

The following code applies changes to some article.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Let's say that someone pasted a patch to html form */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
    echo "New article:\n";
    echo $new_article;
}

if (strlen($errors)) {
    echo "Rejects: \n";
    echo $errors;
}

?>

参见

  • xdiff_string_diff() - Make unified diff of two strings

xdiff_string_patch_binary
xdiff_string_rabdiff
xdiff 函数


Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

xdiff_string_patch
国际化与字符编码支持
xdiff 函数
PHP 手册

xdiff_string_rabdiff

(PECL xdiff >= 0.2.0)

xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

说明

string xdiff_string_bdiff ( string $old_data , string $new_data )

Makes a binary diff of two strings and returns the result. The difference between this function and xdiff_string_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

参数

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

返回值

Returns string with binary diff containing differences between "old" and "new" data or FALSE if an internal error occurred.

参见

  • xdiff_string_bpatch() - Patch a string with a binary diff

xdiff_string_patch
国际化与字符编码支持
xdiff 函数


国际化与字符编码支持

  • Enchant — Enchant spelling library
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Enchant 函数
  • FriBiDi
    • 简介
    • 安装/配置
    • 预定义常量
    • FriBiDi 函数
  • Gettext
    • 简介
    • 安装/配置
    • 预定义常量
    • Gettext 函数
  • i18n — Internationalization
    • 简介
    • 安装/配置
    • 预定义常量
    • i18n 函数
  • iconv
    • 简介
    • 安装/配置
    • 预定义常量
    • iconv 函数
  • idn — International Domain Names
    • 简介
    • 安装/配置
    • 预定义常量
    • Idn 函数
  • intl — Internationalization Functions
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Collator — The Collator class
    • NumberFormatter — The NumberFormatter class
    • Locale — The Locale class
    • Normalizer — The Normalizer class
    • MessageFormatter — The MessageFormatter class
    • IntlDateFormatter — The IntlDateFormatter class
    • intl 函数
  • Multibyte String
    • 简介
    • 安装/配置
    • 预定义常量
    • Summaries of supported encodings
    • Basics of Japanese multi-byte encodings
    • HTTP Input and Output
    • Supported Character Encodings
    • Function Overloading Feature
    • PHP Character Encoding Requirements
    • Multibyte String 函数
  • Pspell
    • 简介
    • 安装/配置
    • 预定义常量
    • Pspell 函数
  • Recode — GNU Recode
    • 简介
    • 安装/配置
    • 预定义常量
    • Recode 函数
  • Unicode
    • 简介
    • 安装/配置
    • 预定义常量
    • Unicode 函数
xdiff_string_rabdiff
Enchant
函数参考


Enchant spelling library

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Enchant 函数
    • enchant_broker_describe — Enumerates the Enchant providers
    • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free_dict — Free a dictionary resource
    • enchant_broker_free — Free the broker resource and its dictionnaries
    • enchant_broker_get_error — Returns the last error of the broker
    • enchant_broker_init — create a new broker object capable of requesting
    • enchant_broker_list_dicts — Returns a list of available dictionaries
    • enchant_broker_request_dict — create a new dictionary using a tag
    • enchant_broker_request_pwl_dict — creates a dictionary using a PWL file
    • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
    • enchant_dict_add_to_personal — add a word to personal word list
    • enchant_dict_add_to_session — add 'word' to this spell-checking session
    • enchant_dict_check — Check whether a word is correctly spelled or not
    • enchant_dict_describe — Describes an individual dictionary
    • enchant_dict_get_error — Returns the last error of the current spelling-session
    • enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session
    • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement — Add a correction for a word
    • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met
国际化与字符编码支持
简介
国际化与字符编码支持


简介

Enchant is the PHP binding for the » Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. Everything should "just work" for any and every definition of "just working."

Enchat supports the following backends:

  • Aspell/Pspell (intends to replace Ispell)

  • Ispell (old as sin, could be interpreted as a defacto standard)

  • MySpell/Hunspell (an OOo projects, also used by Mozilla)

  • Uspell (primarily Yiddish, Hebrew, and Eastern European languages - hosted in AbiWord's CVS under the module "uspell")

  • Hspell (Hebrew)

  • AppleSpell (Mac OSX)

Enchant
安装/配置
Enchant


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Enchant


需求

This version uses the functions of the » Enchant library by Dom Lachowicz. You need Enchant 1.2.4 or later.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/enchant.

需求
运行时配置
安装/配置


资源类型

There are two types of resources in this extension. The first one is the broker (backends manager) and the second is for the dictionary.

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Enchant


范例

Example #1 Enchant Usage Example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    $dprovides = enchant_dict_describe($d);
    echo "dictionary $tag provides:\n";
    $wordcorrect = enchant_dict_check($d, "soong");
    print_r($dprovides);
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>
预定义常量
Enchant 函数
Enchant


Enchant 函数

Table of Contents

  • enchant_broker_describe — Enumerates the Enchant providers
  • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict — Free a dictionary resource
  • enchant_broker_free — Free the broker resource and its dictionnaries
  • enchant_broker_get_error — Returns the last error of the broker
  • enchant_broker_init — create a new broker object capable of requesting
  • enchant_broker_list_dicts — Returns a list of available dictionaries
  • enchant_broker_request_dict — create a new dictionary using a tag
  • enchant_broker_request_pwl_dict — creates a dictionary using a PWL file
  • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
  • enchant_dict_add_to_personal — add a word to personal word list
  • enchant_dict_add_to_session — add 'word' to this spell-checking session
  • enchant_dict_check — Check whether a word is correctly spelled or not
  • enchant_dict_describe — Describes an individual dictionary
  • enchant_dict_get_error — Returns the last error of the current spelling-session
  • enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session
  • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
  • enchant_dict_store_replacement — Add a correction for a word
  • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met
范例
enchant_broker_describe
Enchant


Enumerates the Enchant providers

Enchant 函数
enchant_broker_dict_exists
Enchant 函数
PHP 手册

enchant_broker_describe

(PECL enchant >= 0.1.0)

enchant_broker_describe — Enumerates the Enchant providers

说明

array enchant_broker_describe ( resource $broker )

Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo().

参数

broker

Broker resource

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 List the backends provided by the given broker

<?php
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

?>

上例的输出类似于：

Current broker provides the following backend(s):
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Enchant 函数
enchant_broker_dict_exists
Enchant 函数


Whether a dictionary exists or not. Using non-empty tag

enchant_broker_describe
enchant_broker_free_dict
Enchant 函数
PHP 手册

enchant_broker_dict_exists

(PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag

说明

bool enchant_broker_dict_exists ( resource $broker , string $tag )

Tells if a dictionary exists or not, using a non-empty tags

参数

broker

Broker resource

tag

non-empty tag in the LOCALE format, ex: us_US, ch_DE, etc.

返回值

Returns TRUE when the tag exist or FALSE when not.

范例

Example #1 A enchant_broker_dict_exists() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    echo $tag . " dictionary found.\n";
}
?>

参见

  • enchant_broker_describe() - Enumerates the Enchant providers

enchant_broker_describe
enchant_broker_free_dict
Enchant 函数


Free a dictionary resource

enchant_broker_dict_exists
enchant_broker_free
Enchant 函数
PHP 手册

enchant_broker_free_dict

(PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Free a dictionary resource

说明

bool enchant_broker_free_dict ( resource $dict )

Free a dictionary resource.

参数

dict

Dictionary resource.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • enchant_broker_request_dict() - create a new dictionary using a tag
  • enchant_broker_request_pwl_dict() - creates a dictionary using a PWL file

enchant_broker_dict_exists
enchant_broker_free
Enchant 函数


Free the broker resource and its dictionnaries

enchant_broker_free_dict
enchant_broker_get_error
Enchant 函数
PHP 手册

enchant_broker_free

(PECL enchant >= 0.1.0 )

enchant_broker_free — Free the broker resource and its dictionnaries

说明

bool enchant_broker_free ( resource $broker )

Free a broker resource with all its dictionaries.

参数

broker

Broker resource

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • enchant_broker_init() - create a new broker object capable of requesting

enchant_broker_free_dict
enchant_broker_get_error
Enchant 函数


Returns the last error of the broker

enchant_broker_free
enchant_broker_init
Enchant 函数
PHP 手册

enchant_broker_get_error

(PECL enchant >= 0.1.0 )

enchant_broker_get_error — Returns the last error of the broker

说明

string enchant_broker_get_error ( resource $broker )

Returns the last error which occurred in this broker.

参数

broker

Broker resource.

返回值

Return the msg string if an error was found or FALSE

enchant_broker_free
enchant_broker_init
Enchant 函数


create a new broker object capable of requesting

enchant_broker_get_error
enchant_broker_list_dicts
Enchant 函数
PHP 手册

enchant_broker_init

(PECL enchant >= 0.1.0 )

enchant_broker_init — create a new broker object capable of requesting

说明

resource enchant_broker_init ( void )

参数

返回值

Returns a broker resource on success or FALSE.

参见

  • enchant_broker_free() - Free the broker resource and its dictionnaries

enchant_broker_get_error
enchant_broker_list_dicts
Enchant 函数


Returns a list of available dictionaries

enchant_broker_init
enchant_broker_request_dict
Enchant 函数
PHP 手册

enchant_broker_list_dicts

(PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Returns a list of available dictionaries

说明

mixed enchant_broker_list_dicts ( resource $broker )

Returns a list of available dictionaries with their details.

参数

broker

Broker resource

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 List all available dictionaries for one broker

<?php
$r = enchant_broker_init();
$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
?>

上例的输出类似于：

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

参见

  • enchant_broker_describe() - Enumerates the Enchant providers

enchant_broker_init
enchant_broker_request_dict
Enchant 函数


create a new dictionary using a tag

enchant_broker_list_dicts
enchant_broker_request_pwl_dict
Enchant 函数
PHP 手册

enchant_broker_request_dict

(PECL enchant >= 0.1.0 )

enchant_broker_request_dict — create a new dictionary using a tag

说明

resource enchant_broker_request_dict ( resource $broker , string $tag )

create a new dictionary using tag, the non-empty language tag you wish to request a dictionary for ("en_US", "de_DE", ...)

参数

broker

Broker resource

tag

A tag describing the locale, for example en_US, de_DE

返回值

Returns a dictionary resource on success or FALSE on failure.

范例

Example #1 A enchant_broker_request_dict() example

Check if a dictionary exists using enchant_broker_dict_exists() and request it.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
}
?>

参见

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource

enchant_broker_list_dicts
enchant_broker_request_pwl_dict
Enchant 函数


creates a dictionary using a PWL file

enchant_broker_request_dict
enchant_broker_set_ordering
Enchant 函数
PHP 手册

enchant_broker_request_pwl_dict

(PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — creates a dictionary using a PWL file

说明

resource enchant_broker_request_pwl_dict ( resource $broker , string $filename )

Creates a dictionary using a PWL file. A PWL file is personal word file one word per line.

参数

broker

Broker resource

filename

Path to the PWL file.

返回值

Returns a dictionary resource on success or FALSE on failure.

参见

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource

enchant_broker_request_dict
enchant_broker_set_ordering
Enchant 函数


Declares a preference of dictionaries to use for the language

enchant_broker_request_pwl_dict
enchant_dict_add_to_personal
Enchant 函数
PHP 手册

enchant_broker_set_ordering

(PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language

说明

bool enchant_broker_set_ordering ( resource $broker , string $tag , string $ordering )

Declares a preference of dictionaries to use for the language described/referred to by 'tag'. The ordering is a comma delimited list of provider names. As a special exception, the "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

参数

broker

Broker resource

tag

Language tag. The special "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

ordering

Comma delimited list of provider names

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

enchant_broker_request_pwl_dict
enchant_dict_add_to_personal
Enchant 函数


add a word to personal word list

enchant_broker_set_ordering
enchant_dict_add_to_session
Enchant 函数
PHP 手册

enchant_dict_add_to_personal

(PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — add a word to personal word list

说明

void enchant_dict_add_to_personal ( resource $dict , string $word )

Add a word to personal word list of the given dictionary.

参数

dict

Dictionary resource

word

The word to add

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • enchant_broker_request_pwl_dict() - creates a dictionary using a PWL file
  • enchant_broker_request_dict() - create a new dictionary using a tag

enchant_broker_set_ordering
enchant_dict_add_to_session
Enchant 函数


add 'word' to this spell-checking session

enchant_dict_add_to_personal
enchant_dict_check
Enchant 函数
PHP 手册

enchant_dict_add_to_session

(PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — add 'word' to this spell-checking session

说明

void enchant_dict_add_to_session ( resource $dict , string $word )

Add a word to the given dictionary. It will be added only for the active spell-checking session.

参数

dict

Dictionary resource

word

The word to add

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • enchant_broker_request_dict() - create a new dictionary using a tag

enchant_dict_add_to_personal
enchant_dict_check
Enchant 函数


Check whether a word is correctly spelled or not

enchant_dict_add_to_session
enchant_dict_describe
Enchant 函数
PHP 手册

enchant_dict_check

(PECL enchant >= 0.1.0 )

enchant_dict_check — Check whether a word is correctly spelled or not

说明

bool enchant_dict_check ( resource $dict , string $word )

If the word is correctly spelled return TRUE, otherwise return FALSE

参数

dict

Dictionary resource

word

The word to check

返回值

Returns TRUE if the word is spelled correctly, FALSE if not.

enchant_dict_add_to_session
enchant_dict_describe
Enchant 函数


Describes an individual dictionary

enchant_dict_check
enchant_dict_get_error
Enchant 函数
PHP 手册

enchant_dict_describe

(PECL enchant >= 0.1.0 )

enchant_dict_describe — Describes an individual dictionary

说明

mixed enchant_dict_describe ( resource $dict )

Returns the details of the dictionary.

参数

dict

Dictinaray resource

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A enchant_dict_describe() example

Check if a dictionary exists using enchant_broker_dict_exists() and show the detail of it.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
    $dict_details = enchant_dict_describe($dict);
    print_r($dict_details);
}
?>

上例的输出类似于：

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)

enchant_dict_check
enchant_dict_get_error
Enchant 函数


Returns the last error of the current spelling-session

enchant_dict_describe
enchant_dict_is_in_session
Enchant 函数
PHP 手册

enchant_dict_get_error

(PECL enchant >= 0.1.0 )

enchant_dict_get_error — Returns the last error of the current spelling-session

说明

string enchant_dict_get_error ( resource $dict )

Returns the last error of the current spelling-session

参数

dict

Dictinaray resource

返回值

Returns the error message as string or FALSE if no error occurred.

enchant_dict_describe
enchant_dict_is_in_session
Enchant 函数


whether or not 'word' exists in this spelling-session

enchant_dict_get_error
enchant_dict_quick_check
Enchant 函数
PHP 手册

enchant_dict_is_in_session

(PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session

说明

bool enchant_dict_is_in_session ( resource $dict , string $word )

Tells whether or not a word already exists in the current session.

参数

dict

Dictionary resource

word

The word to lookup

返回值

Returns TRUE if the word exists or FALSE

参见

  • enchant_dict_add_to_session() - add 'word' to this spell-checking session

enchant_dict_get_error
enchant_dict_quick_check
Enchant 函数


Check the word is correctly spelled and provide suggestions

enchant_dict_is_in_session
enchant_dict_store_replacement
Enchant 函数
PHP 手册

enchant_dict_quick_check

(PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions

说明

bool enchant_dict_quick_check ( resource $dict , string $word [, array &$suggestions ] )

If the word is correctly spelled return TRUE, otherwise return FALSE, if suggestions variable is provided, fill it with spelling alternatives.

参数

dict

Dictionary resource

word

The word to check

suggestions

If the word is not correctly spelled, this variable will contain an array of suggestions.

返回值

Returns TRUE if the word is correctly spelled or FALSE

范例

Example #1 A enchant_dict_quick_check() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();

if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    enchant_dict_quick_check($d, 'soong', $suggs);
    print_r($suggs);
}
?>

上例的输出类似于：

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

参见

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_suggest() - Will return a list of values if any of those pre-conditions are not met

enchant_dict_is_in_session
enchant_dict_store_replacement
Enchant 函数


Add a correction for a word

enchant_dict_quick_check
enchant_dict_suggest
Enchant 函数
PHP 手册

enchant_dict_store_replacement

(PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Add a correction for a word

说明

void enchant_dict_store_replacement ( resource $dict , string $mis , string $cor )

Add a correction for 'mis' using 'cor'. Notes that you replaced @mis with @cor, so it's possibly more likely that future occurrences of @mis will be replaced with @cor. So it might bump @cor up in the suggestion list.

参数

dict

Dictionary resource

mis

The work to fix

cor

The correct word

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

enchant_dict_quick_check
enchant_dict_suggest
Enchant 函数


Will return a list of values if any of those pre-conditions are not met

enchant_dict_store_replacement
FriBiDi
Enchant 函数
PHP 手册

enchant_dict_suggest

(PECL enchant >= 0.1.0 )

enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met

说明

array enchant_dict_suggest ( resource $dict , string $word )

参数

dict

Dictionary resource

word

Word to use for the suggestions.

返回值

Will returns an array of suggestions if the word is bad spelled.

范例

Example #1 A enchant_dict_suggest() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);

    $wordcorrect = enchant_dict_check($d, "soong");
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

参见

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_quick_check() - Check the word is correctly spelled and provide suggestions

enchant_dict_store_replacement
FriBiDi
Enchant 函数


FriBiDi

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • FriBiDi 函数
    • fribidi_log2vis — Convert a logical string to a visual one
enchant_dict_suggest
简介
国际化与字符编码支持


简介

FriBiDi is a free implementation of the » Unicode Bidirectional Algorithm.

FriBiDi
安装/配置
FriBiDi


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
FriBiDi


需求

You must download and install the » FriBiDi package.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/fribidi.

In order to use these functions you must compile PHP with Fribidi support by using the --with-fribidi[=DIR] configure option.

Windows users will enable php_fribidi.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FRIBIDI_CHARSET_UTF8 (integer)
Unicode
FRIBIDI_CHARSET_8859_6 (integer)
Arabic
FRIBIDI_CHARSET_8859_8 (integer)
Hebrew
FRIBIDI_CHARSET_CP1255 (integer)
Hebrew/Yiddish
FRIBIDI_CHARSET_CP1256 (integer)
Arabic
FRIBIDI_CHARSET_ISIRI_3342 (integer)
Persian
FRIBIDI_CHARSET_CAP_RTL (integer)
Used for test purposes, will treat CAPS as non-English letters
FRIBIDI_RTL (integer)
Right to left
FRIBIDI_LTR (integer)
Left to right
FRIBIDI_AUTO (integer)
Autodetect the base direction
资源类型
FriBiDi 函数
FriBiDi


FriBiDi 函数

Table of Contents

  • fribidi_log2vis — Convert a logical string to a visual one
预定义常量
fribidi_log2vis
FriBiDi


Convert a logical string to a visual one

FriBiDi 函数
Gettext
FriBiDi 函数
PHP 手册

fribidi_log2vis

(PHP 4 >= 4.0.4 and PHP 4 <= 4.1.0, PECL fribidi >= 1.0)

fribidi_log2vis — Convert a logical string to a visual one

说明

string fribidi_log2vis ( string $str , string $direction , int $charset )

Converts a logical string to a visual one.

参数

str

The logical string.

direction

One of FRIBIDI_RTL, FRIBIDI_LTR or FRIBIDI_AUTO.

charset

One of the FRIBIDI_CHARSET_XXX constants.

返回值

Returns the visual string on success, or FALSE on failure.

FriBiDi 函数
Gettext
FriBiDi 函数


Gettext

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Gettext 函数
    • bind_textdomain_codeset — Specify the character encoding in which the messages from the DOMAIN message catalog will be returned
    • bindtextdomain — Sets the path for a domain
    • dcgettext — Overrides the domain for a single lookup
    • dcngettext — Plural version of dcgettext
    • dgettext — Override the current domain
    • dngettext — Plural version of dgettext
    • gettext — Lookup a message in the current domain
    • ngettext — Plural version of gettext
    • textdomain — Sets the default domain
fribidi_log2vis
简介
国际化与字符编码支持


简介

The gettext functions implement an NLS (Native Language Support) API which can be used to internationalize your PHP applications. Please see the gettext documentation for your system for a thorough explanation of these functions or view the docs at » http://www.gnu.org/software/gettext/manual/gettext.html.

Gettext
安装/配置
Gettext


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Gettext


需求

To use these functions you must download and install the GNU gettext package from » http://www.gnu.org/software/gettext/gettext.html

安装/配置
安装
安装/配置


安装

To include GNU gettext support in your PHP build you must add the option --with-gettext[=DIR] where DIR is the gettext install directory, defaults to /usr/local.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Gettext 函数
Gettext


Gettext 函数

Table of Contents

  • bind_textdomain_codeset — Specify the character encoding in which the messages from the DOMAIN message catalog will be returned
  • bindtextdomain — Sets the path for a domain
  • dcgettext — Overrides the domain for a single lookup
  • dcngettext — Plural version of dcgettext
  • dgettext — Override the current domain
  • dngettext — Plural version of dgettext
  • gettext — Lookup a message in the current domain
  • ngettext — Plural version of gettext
  • textdomain — Sets the default domain
预定义常量
bind_textdomain_codeset
Gettext


Specify the character encoding in which the messages from the DOMAIN message catalog will be returned

Gettext 函数
bindtextdomain
Gettext 函数
PHP 手册

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codeset — Specify the character encoding in which the messages from the DOMAIN message catalog will be returned

说明

string bind_textdomain_codeset ( string $domain , string $codeset )

With bind_textdomain_codeset(), you can set in which encoding will be messages from domain returned by gettext() and similar functions.

参数

domain

The domain

codeset

The code set

返回值

A string on success.

Gettext 函数
bindtextdomain
Gettext 函数


Sets the path for a domain

bind_textdomain_codeset
dcgettext
Gettext 函数
PHP 手册

bindtextdomain

(PHP 4, PHP 5)

bindtextdomain — Sets the path for a domain

说明

string bindtextdomain ( string $domain , string $directory )

The bindtextdomain() function sets the path for a domain.

参数

domain

The domain

directory

The directory path

返回值

The full pathname for the domain currently being set.

范例

Example #1 bindtextdomain() example

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

上例将输出：

/usr/share/myapp/locale

bind_textdomain_codeset
dcgettext
Gettext 函数


Overrides the domain for a single lookup

bindtextdomain
dcngettext
Gettext 函数
PHP 手册

dcgettext

(PHP 4, PHP 5)

dcgettext — Overrides the domain for a single lookup

说明

string dcgettext ( string $domain , string $message , int $category )

This function allows you to override the current domain for a single message lookup.

参数

domain

The domain

message

The message

category

The category

返回值

A string on success.

参见

  • gettext() - Lookup a message in the current domain

bindtextdomain
dcngettext
Gettext 函数


Plural version of dcgettext

dcgettext
dgettext
Gettext 函数
PHP 手册

dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettext — Plural version of dcgettext

说明

string dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category )

This function allows you to override the current domain for a single plural message lookup.

参数

domain

The domain

msgid1

msgid2

n

category

返回值

A string on success.

参见

  • ngettext() - Plural version of gettext

dcgettext
dgettext
Gettext 函数


Override the current domain

dcngettext
dngettext
Gettext 函数
PHP 手册

dgettext

(PHP 4, PHP 5)

dgettext — Override the current domain

说明

string dgettext ( string $domain , string $message )

The dgettext() function allows you to override the current domain for a single message lookup.

参数

domain

The domain

message

The message

返回值

A string on success.

参见

  • gettext() - Lookup a message in the current domain

dcngettext
dngettext
Gettext 函数


Plural version of dgettext

dgettext
gettext
Gettext 函数
PHP 手册

dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettext — Plural version of dgettext

说明

string dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n )

The dngettext() function allows you to override the current domain for a single plural message lookup.

参数

domain

The domain

msgid1

msgid2

n

返回值

A string on success.

参见

  • ngettext() - Plural version of gettext

dgettext
gettext
Gettext 函数


Lookup a message in the current domain

dngettext
ngettext
Gettext 函数
PHP 手册

gettext

(PHP 4, PHP 5)

gettext — Lookup a message in the current domain

说明

string gettext ( string $message )

Looks up a message in the current domain.

参数

message

返回值

Returns a translated string if one is found in the translation table, or the submitted message if not found.

范例

Example #1 gettext()-check

<?php
// Set language to German
setlocale(LC_ALL, 'de_DE');

// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");

// Choose domain
textdomain("myPHPApp");

// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now

// Print a test message
echo gettext("Welcome to My PHP Application");

// Or use the alias _() for gettext()
echo _("Have a nice day");
?>

注释

Note: You may use the underscore character '_' as an alias to this function.

参见

  • setlocale() - Set locale information

dngettext
ngettext
Gettext 函数


Plural version of gettext

gettext
textdomain
Gettext 函数
PHP 手册

ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettext — Plural version of gettext

说明

string ngettext ( string $msgid1 , string $msgid2 , int $n )

The plural version of gettext(). Some languages have more than one form for plural messages dependent on the count.

参数

msgid1

msgid2

n

返回值

Returns correct plural form of message identified by msgid1 and msgid2 for count n .

范例

Example #1 ngettext() example

<?php

setlocale(LC_ALL, 'cs_CZ');
printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken

?>

gettext
textdomain
Gettext 函数


Sets the default domain

ngettext
i18n
Gettext 函数
PHP 手册

textdomain

(PHP 4, PHP 5)

textdomain — Sets the default domain

说明

string textdomain ( string $text_domain )

This function sets the domain to search within when calls are made to gettext(), usually the named after an application.

参数

text_domain

The new message domain, or NULL to get the current setting without changing it

返回值

If successful, this function returns the current message domain, after possibly changing it.

ngettext
i18n
Gettext 函数


Internationalization

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • i18n 函数
    • locale_get_default — Get the default Locale
    • locale_set_default — Set the default Locale
textdomain
简介
国际化与字符编码支持


简介

I18n (short for internationalization) are means of adapting an application for different languages and cultures. The scope of i18n support includes support for local date and time, currency, measures, number formatting and strings in different encoding. Native support for i18n and l10n (localization) appeared in PHP6.

Please note that in PHP6, POSIX locales are obsoleted by the set of locales included with the ICU library.

Warning

This extension is still in development and it isn't available to public yet.

i18n
安装/配置
i18n


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
i18n


需求

The Unicode Extension.

安装/配置
安装
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
i18n 函数
i18n


i18n 函数

Table of Contents

  • locale_get_default — Get the default Locale
  • locale_set_default — Set the default Locale
预定义常量
locale_get_default
i18n


Get the default Locale

i18n 函数
locale_set_default
i18n 函数
PHP 手册

locale_get_default

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

locale_get_default — Get the default Locale

说明

string locale_get_default ( void )

This function returns the default Locale, which is used by PHP to localize certain features. Please note that this isn't influenced by setlocale() or the system settings.

返回值

Returns a string with the current Locale.

范例

Example #1 A locale_get_default() example

<?php

// get the default Locale
echo locale_get_default();

//set a new Locale...
locale_set_default('pt_PT');

// ... and print it
echo locale_get_default();

?>

上例将输出：

en_US_POSIX
pt_PT

参见

  • locale_set_default() - sets the default runtime locale

i18n 函数
locale_set_default
i18n 函数


Set the default Locale

locale_get_default
iconv
i18n 函数
PHP 手册

locale_set_default

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

locale_set_default — Set the default Locale

说明

bool locale_set_default ( string $name )

Sets the default Locale for PHP programs. Please note that this has nothing to do with setlocale() nor with the system locale.

参数

name

The new Locale name. A comprehensive list of the supported locales is available at » http://demo.icu-project.org/icu-bin/locexp.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A locale_set_default() example

This example demonstrates a possible usage of locale_set_default() to localize the sort() functions.

<?php

// the list of the strings to sort
$array = array(
    'caramelo',
    'cacto',
    'caçada'
);

// set our locale (Portuguese, in this case)
locale_set_default('pt_PT');

// sort using the locale we previously set
sort($array, SORT_LOCALE_STRING);

print_r($array);
?>

上例将输出：

Array
(
    [0] => caçada
    [1] => cacto
    [2] => caramelo
)

If we didn't use the locale, PHP would sort the string using the ASCII characters value, thus returning (wrongly):

Array
(
    [0] => cacto
    [1] => caramelo
    [2] => caçada
)

参见

  • locale_get_default() - Gets the default locale value from the INTL global 'default_locale'

locale_get_default
iconv
i18n 函数


iconv

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • iconv 函数
    • iconv_get_encoding — Retrieve internal configuration variables of iconv extension
    • iconv_mime_decode_headers — Decodes multiple MIME header fields at once
    • iconv_mime_decode — Decodes a MIME header field
    • iconv_mime_encode — Composes a MIME header field
    • iconv_set_encoding — Set current setting for character encoding conversion
    • iconv_strlen — Returns the character count of string
    • iconv_strpos — Finds position of first occurrence of a needle within a haystack
    • iconv_strrpos — Finds the last occurrence of a needle within a haystack
    • iconv_substr — Cut out part of a string
    • iconv — Convert string to requested character encoding
    • ob_iconv_handler — Convert character encoding as output buffer handler
locale_set_default
简介
国际化与字符编码支持


简介

This module contains an interface to iconv character set conversion facility. With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode character set. Supported character sets depend on the iconv implementation of your system. Note that the iconv function on some systems may not work as you expect. In such case, it'd be a good idea to install the » GNU libiconv library. It will most likely end up with more consistent results.

Since PHP 5.0.0, this extension comes with various utility functions that help you to write multilingual scripts. Let's have a look at the following sections to explore the new features.

iconv
安装/配置
iconv


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
iconv


需求

You will need nothing if the system you are using is one of the recent POSIX-compliant systems because standard C libraries that are supplied in them must provide iconv facility. Otherwise, you have to get the » libiconv library installed in your system.

安装/配置
安装
安装/配置


安装

To use functions provided by this module, the PHP binary must be built with the following configure line: --with-iconv[=DIR].

Note: Note to Windows® Users
In order to enable this module on a Windows® environment, you need to put a DLL file named iconv.dll or iconv-1.3.dll (prior to 4.2.1) which is bundled with the PHP/Win32 binary package into a directory specified by the PATH environment variable or one of the system directories of your Windows® installation. This module is part of PHP as of PHP 5 thus iconv.dll and php_iconv.dll is not needed anymore.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Iconv configuration options
Name | Default | Changeable | Changelog
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Available since PHP 4.0.5.
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Available since PHP 4.0.5.
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Available since PHP 4.0.5.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

Warning

Some systems (like IBM AIX) use "ISO8859-1" instead of "ISO-8859-1" so this value has to be used in configuration options and function parameters.

Note: Configuration option iconv.input_encoding is currently not used for anything.

安装
资源类型
安装/配置


预定义常量

Since PHP 4.3.0 it is possible to identify at runtime which iconv implementation is adopted by this extension.

iconv constants
Name | Type | Description
ICONV_IMPL | string | The implementation name
ICONV_VERSION | string | The implementation version

Note: Writing implementation-dependent scripts with these constants is strongly discouraged.

Since PHP 5.0.0, the following constants are also available:

iconv constants available since PHP 5.0.0
Name | Type | Description
ICONV_MIME_DECODE_STRICT | integer | A bitmask used for iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | integer | A bitmask used for iconv_mime_decode()

资源类型
iconv 函数
iconv


iconv 函数

参见

See also GNU Recode functions.

Table of Contents

  • iconv_get_encoding — Retrieve internal configuration variables of iconv extension
  • iconv_mime_decode_headers — Decodes multiple MIME header fields at once
  • iconv_mime_decode — Decodes a MIME header field
  • iconv_mime_encode — Composes a MIME header field
  • iconv_set_encoding — Set current setting for character encoding conversion
  • iconv_strlen — Returns the character count of string
  • iconv_strpos — Finds position of first occurrence of a needle within a haystack
  • iconv_strrpos — Finds the last occurrence of a needle within a haystack
  • iconv_substr — Cut out part of a string
  • iconv — Convert string to requested character encoding
  • ob_iconv_handler — Convert character encoding as output buffer handler
预定义常量
iconv_get_encoding
iconv


Retrieve internal configuration variables of iconv extension

iconv 函数
iconv_mime_decode_headers
iconv 函数
PHP 手册

iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encoding — Retrieve internal configuration variables of iconv extension

说明

mixed iconv_get_encoding ([ string $type="all" ] )

Retrieve internal configuration variables of iconv extension.

参数

type

The value of the optional type can be:

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

返回值

Returns the current value of the internal configuration variable if successful, or FALSE on failure.

If type is omitted or set to "all", iconv_get_encoding() returns an array that stores all these variables.

范例

Example #1 iconv_get_encoding() example

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

上例将输出：

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

参见

  • iconv_set_encoding() - Set current setting for character encoding conversion
  • ob_iconv_handler() - Convert character encoding as output buffer handler

iconv 函数
iconv_mime_decode_headers
iconv 函数


Decodes multiple MIME header fields at once

iconv_get_encoding
iconv_mime_decode
iconv 函数
PHP 手册

iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headers — Decodes multiple MIME header fields at once

说明

array iconv_mime_decode_headers ( string $encoded_headers [, int $mode=0 [, string $charset=ini_set("iconv.internal_encoding") ]] )

Returns an associative array that holds a whole set of MIME header fields specified by encoded_headers on success, or FALSE if an error occurs during the decoding.

Each key of the return value represents an individual field name and the corresponding element represents a field value. If more than one field of the same name are present, iconv_mime_decode_headers() automatically incorporates them into a numerically indexed array in the order of occurrence.

参数

encoded_headers

The encoded headers, as a string.

mode

mode determines the behaviour in the event iconv_mime_decode_headers() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Bitmasks acceptable to iconv_mime_decode_headers()
Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in » RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

charset

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_encoding will be used.

范例

Example #1 iconv_mime_decode_headers() example

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>;
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

上例将输出：

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

参见

  • iconv_mime_decode() - Decodes a MIME header field
  • mb_decode_mimeheader() - Decode string in MIME header field
  • imap_mime_header_decode() - Decode MIME header elements
  • imap_base64() - Decode BASE64 encoded text
  • imap_qprint() - Convert a quoted-printable string to an 8 bit string

iconv_get_encoding
iconv_mime_decode
iconv 函数


Decodes a MIME header field

iconv_mime_decode_headers
iconv_mime_encode
iconv 函数
PHP 手册

iconv_mime_decode

(PHP 5)

iconv_mime_decode — Decodes a MIME header field

说明

string iconv_mime_decode ( string $encoded_header [, int $mode=0 [, string $charset=ini_set("iconv.internal_encoding") ]] )

Decodes a MIME header field.

参数

encoded_header

The encoded header, as a string.

mode

mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Bitmasks acceptable to iconv_mime_decode()
Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in » RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

charset

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_encoding will be used.

返回值

Returns a decoded MIME field on success, or FALSE if an error occurs during the decoding.

范例

Example #1 iconv_mime_decode() example

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

参见

  • iconv_mime_decode_headers() - Decodes multiple MIME header fields at once
  • mb_decode_mimeheader() - Decode string in MIME header field
  • imap_mime_header_decode() - Decode MIME header elements
  • imap_base64() - Decode BASE64 encoded text
  • imap_qprint() - Convert a quoted-printable string to an 8 bit string

iconv_mime_decode_headers
iconv_mime_encode
iconv 函数


Composes a MIME header field

iconv_mime_decode
iconv_set_encoding
iconv 函数
PHP 手册

iconv_mime_encode

(PHP 5)

iconv_mime_encode — Composes a MIME header field

说明

string iconv_mime_encode ( string $field_name , string $field_value [, array $preferences=NULL ] )

Composes and returns a string that represents a valid MIME header field, which looks like the following:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

参数

field_name

The field name.

field_value

The field value.

preferences

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter preferences . The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Configuration items supported by iconv_mime_encode()
Item | Type | Description | Default value | Example
scheme | string | Specifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printable encoding scheme. | B | B
input-charset | string | Specifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_encoding ini setting. | iconv.internal_encoding | ISO-8859-1
output-charset | string | Specifies the character set to use to compose the MIME header. If not given, the same value as input-charset will be used. | iconv.internal_encoding | UTF-8
line-length | integer | Specifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to » RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters. | 76 | 996
line-break-chars | string | Specifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset. | \r\n | \n

返回值

Returns an encoded MIME field on success, or FALSE if an error occurs during the encoding.

范例

Example #1 iconv_mime_encode() example

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung_Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);
?>

参见

  • imap_binary() - Convert an 8bit string to a base64 string
  • mb_encode_mimeheader() - Encode string for MIME header
  • imap_8bit() - Convert an 8bit string to a quoted-printable string

iconv_mime_decode
iconv_set_encoding
iconv 函数


Set current setting for character encoding conversion

iconv_mime_encode
iconv_strlen
iconv 函数
PHP 手册

iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encoding — Set current setting for character encoding conversion

说明

bool iconv_set_encoding ( string $type , string $charset )

Changes the value of the internal configuration variable specified by type to charset .

参数

type

The value of type can be any one of those:

  • input_encoding
  • output_encoding
  • internal_encoding

charset

The character set.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 iconv_set_encoding() example

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

参见

  • iconv_get_encoding() - Retrieve internal configuration variables of iconv extension
  • ob_iconv_handler() - Convert character encoding as output buffer handler

iconv_mime_encode
iconv_strlen
iconv 函数


Returns the character count of string

iconv_set_encoding
iconv_strpos
iconv 函数
PHP 手册

iconv_strlen

(PHP 5)

iconv_strlen — Returns the character count of string

说明

int iconv_strlen ( string $str [, string $charset=ini_set("iconv.internal_encoding") ] )

In contrast to strlen(), iconv_strlen() counts the occurrences of characters in the given byte sequence str on the basis of the specified character set, the result of which is not necessarily identical to the length of the string in byte.

参数

str

The string.

charset

If charset parameter is omitted, str is assumed to be encoded in iconv.internal_encoding.

返回值

Returns the character count of str , as an integer.

参见

  • strlen() - Get string length
  • mb_strlen() - Get string length

iconv_set_encoding
iconv_strpos
iconv 函数


Finds position of first occurrence of a needle within a haystack

iconv_strlen
iconv_strrpos
iconv 函数
PHP 手册

iconv_strpos

(PHP 5)

iconv_strpos — Finds position of first occurrence of a needle within a haystack

说明

int iconv_strpos ( string $haystack , string $needle [, int $offset=0 [, string $charset=ini_set("iconv.internal_encoding") ]] )

Finds position of first occurrence of a needle within a haystack.

In contrast to strpos(), the return value of iconv_strpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset .

参数

haystack

The entire string.

needle

The searched substring.

offset

The optional offset parameter specifies the position from which the search should be performed.

charset

If charset parameter is omitted, string are assumed to be encoded in iconv.internal_encoding.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

返回值

Returns the numeric position of the first occurrence of needle in haystack .

If needle is not found, iconv_strpos() will return FALSE.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

参见

  • strpos() - Find position of first occurrence of a string
  • iconv_strrpos() - Finds the last occurrence of a needle within a haystack
  • mb_strpos() - Find position of first occurrence of string in a string

iconv_strlen
iconv_strrpos
iconv 函数


Finds the last occurrence of a needle within a haystack

iconv_strpos
iconv_substr
iconv 函数
PHP 手册

iconv_strrpos

(PHP 5)

iconv_strrpos — Finds the last occurrence of a needle within a haystack

说明

int iconv_strrpos ( string $haystack , string $needle [, string $charset=ini_set("iconv.internal_encoding") ] )

In contrast to strpos(), the return value of iconv_strrpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found.

参数

haystack

The entire string.

needle

The searched substring.

charset

If charset parameter is omitted, string are assumed to be encoded in iconv.internal_encoding.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

返回值

Returns the numeric position of the last occurrence of needle in haystack . The characters are counted on the basis of the specified character set charset .

If needle is not found, iconv_strrpos() will return FALSE.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

参见

  • strrpos() - Find position of last occurrence of a char in a string
  • iconv_strpos() - Finds position of first occurrence of a needle within a haystack
  • mb_strrpos() - Find position of last occurrence of a string in a string

iconv_strpos
iconv_substr
iconv 函数


Cut out part of a string

iconv_strrpos
iconv
iconv 函数
PHP 手册

iconv_substr

(PHP 5)

iconv_substr — Cut out part of a string

说明

string iconv_substr ( string $str , int $offset [, int $length=0 [, string $charset=ini_set("iconv.internal_encoding") ]] )

Cuts a portion of str specified by the offset and length parameters.

参数

str

The original string.

offset

If offset is non-negative, iconv_substr() cuts the portion out of str beginning at offset 'th character, counting from zero.

If offset is negative, iconv_substr() cuts out the portion beginning at the position, offset characters away from the end of str .

length

If length is given and is positive, the return value will contain at most length characters of the portion that begins at offset (depending on the length of string ).

If negative length is passed, iconv_substr() cuts the portion out of str from the offset 'th character up to the character that is length characters away from the end of the string. In case offset is also negative, the start position is calculated beforehand according to the rule explained above.

charset

If charset parameter is omitted, string are assumed to be encoded in iconv.internal_encoding.

Note that offset and length parameters are always deemed to represent offsets that are calculated on the basis of the character set determined by charset , whilst the counterpart substr() always takes these for byte offsets.

返回值

Returns the portion of str specified by the offset and length parameters.

If str is shorter than offset characters long, FALSE will be returned.

参见

  • substr() - Return part of a string
  • mb_substr() - Get part of string
  • mb_strcut() - Get part of string

iconv_strrpos
iconv
iconv 函数


Convert string to requested character encoding

iconv_substr
ob_iconv_handler
iconv 函数
PHP 手册

iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv — Convert string to requested character encoding

说明

string iconv ( string $in_charset , string $out_charset , string $str )

Performs a character set conversion on the string str from in_charset to out_charset .

参数

in_charset

The input charset.

out_charset

The output charset.

If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can't be represented in the target charset, it can be approximated through one or several similarly looking characters. If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character.

str

The string to be converted.

返回值

Returns the converted string or FALSE on failure.

范例

Example #1 iconv() example

<?php
echo iconv("ISO-8859-1", "UTF-8", "This is a test.");
?>

iconv_substr
ob_iconv_handler
iconv 函数


Convert character encoding as output buffer handler

iconv
idn
iconv 函数
PHP 手册

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handler — Convert character encoding as output buffer handler

说明

string ob_iconv_handler ( string $contents , int $status )

Converts the string encoded in internal_encoding to output_encoding .

internal_encoding and output_encoding should be defined in the php.ini file or in iconv_set_encoding().

参数

See ob_start() for information about this handler parameters.

返回值

See ob_start() for information about this handler return values.

范例

Example #1 ob_iconv_handler() example:

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // start output buffering
?>

参见

  • iconv_get_encoding() - Retrieve internal configuration variables of iconv extension
  • iconv_set_encoding() - Set current setting for character encoding conversion
  • output-control functions

iconv
idn
iconv 函数


International Domain Names

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Idn 函数
    • idn_strerror — Returns string describing the IDNA error code
    • idn_to_ascii — Convert UTF-8 encoded domain name to ASCII
    • idn_to_utf8 — Convert ASCII encoded domain name to UTF-8
ob_iconv_handler
简介
国际化与字符编码支持


简介

This extension gives access to the GNU Libidn which is an implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group, used for internationalized domain names.

idn
安装/配置
idn


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
idn


需求

The GNU » IDN library must be installed.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/idn.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

IDNA_STRINGPREP_ERROR (integer)
IDNA_PUNYCODE_ERROR (integer)
IDNA_CONTAINS_NON_LDH (integer)
IDNA_CONTAINS_MINUS (integer)
IDNA_INVALID_LENGTH (integer)
IDNA_NO_ACE_PREFIX (integer)
IDNA_ROUNDTRIP_VERIFY_ERROR (integer)
IDNA_CONTAINS_ACE_PREFIX (integer)
IDNA_ICONV_ERROR (integer)
IDNA_MALLOC_ERROR (integer)

资源类型
Idn 函数
idn


Idn 函数

Table of Contents

  • idn_strerror — Returns string describing the IDNA error code
  • idn_to_ascii — Convert UTF-8 encoded domain name to ASCII
  • idn_to_utf8 — Convert ASCII encoded domain name to UTF-8
预定义常量
idn_strerror
idn


Returns string describing the IDNA error code

Idn 函数
idn_to_ascii
Idn 函数
PHP 手册

idn_strerror

(PECL idn >= 0.2)

idn_strerror — Returns string describing the IDNA error code

说明

string idn_strerror ( int $errorcode )

This function returns the error message string that corresponds to the given error code.

参数

errorcode

The error code as returned by idn_to_ascii() or idn_to_utf8().

返回值

The corresponding libidn error message string is returned.

参见

  • idn_to_ascii() - Convert UTF-8 encoded domain name to ASCII
  • idn_to_utf8() - Convert ASCII encoded domain name to UTF-8

Idn 函数
idn_to_ascii
Idn 函数


Convert UTF-8 encoded domain name to ASCII

idn_strerror
idn_to_utf8
Idn 函数
PHP 手册

idn_to_ascii

(PECL idn >= 0.1)

idn_to_ascii — Convert UTF-8 encoded domain name to ASCII

说明

string idn_to_ascii ( string $utf8_domain [, int &$errorcode ] )

This function converts a UTF-8 encoded domain name to ASCII according to the IDNA toUnicode() specification. If the input has non-ASCII characters, the output will be in the "xn--" ACE notation.

参数

utf8_domain

The UTF-8 encoded domain name.

Warning

If e.g. an ISO-8859-1 (aka Western Europe latin1) encoded string is passed it will be converted into an ACE encoded "xn--" string. It will not be the one you expected though!

errorcode

Will be set to the IDNA error code.

返回值

The ACE encoded version of the domain name or FALSE in case of an error.

错误／异常

If an error occurs FALSE is returned and the optional errorcode is set. In addition a E_WARNING message is printed.

范例

Example #1 idn_to_ascii() example

First a simple example and then one explaining how to catch errors.

<?php

// ISO-8859-1 encoded string
echo idn_to_ascii(utf8_encode('täst.de')));

// Cannot convert a domain name to ASCII that contains non-ASCII chars but already starts with "xn--"
$ascii = idn_to_ascii("xn--".chr(0xC3).chr(0xA4), $errorcode);
if ($ascii === false) {
    printf("Detected error %d: %s\n", $errorcode, idn_strerror($errorcode));
}

?>

上例的输出类似于：

xn--tst-qla.de

Detected error 8: Input already contain ACE prefix (`xn--')

参见

  • utf8_encode() - 将 ISO-8859-1 编码的字符串转换为 UTF-8 编码
  • idn_strerror() - Returns string describing the IDNA error code
  • idn_to_utf8() - Convert ASCII encoded domain name to UTF-8

idn_strerror
idn_to_utf8
Idn 函数


Convert ASCII encoded domain name to UTF-8

idn_to_ascii
intl
Idn 函数
PHP 手册

idn_to_utf8

(PECL idn >= 0.1)

idn_to_utf8 — Convert ASCII encoded domain name to UTF-8

说明

string idn_to_utf8 ( string $ascii_domain [, int &$errorcode ] )

This function converts a ASCII encoded domain name to its original UTF-8 version.

参数

ascii_domain

The ASCII encoded domain name. Looks like "xn--..." if the it originally contained non-ASCII characters.

errorcode

Will be set to the IDNA error code.

返回值

The UTF-8 encoded version of the domain name or FALSE in case of an error. RFC 3490 4.2 states though "ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step."

错误／异常

If an error occurs FALSE is returned and the optional errorcode is set. In addition a E_WARNING message is printed.

范例

Example #1 idn_to_utf8() example

First a simple example and then one explaining how to catch errors (which should never happen according to the RFC).

<?php

// maybe convert the result to ISO-8859-1 using utf8_decode()
echo idn_to_utf8("xn--tst-qla.de");

// Should never happen but to be sure...
$utf8 = idn_to_utf8("xn--tst-qla.de", $errorcode);
if ($utf8 === false) {
    printf("Detected error %d: %s\n", $errorcode, idn_strerror($errorcode));
}

?>

上例的输出类似于：

täst.de

参见

  • utf8_decode() - 将用 UTF-8 方式编码的 ISO-8859-1 字符串转换成单字节的 ISO-8859-1 字符串。
  • idn_strerror() - Returns string describing the IDNA error code
  • idn_to_ascii() - Convert UTF-8 encoded domain name to ASCII

idn_to_ascii
intl
Idn 函数


Internationalization Functions

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic usage of this extension
  • Collator — The Collator class
    • Collator::asort — Sort array maintaining index association
    • Collator::compare — Compare two Unicode strings
    • Collator::__construct — Create a collator
    • Collator::create — Create a collator
    • Collator::getAttribute — Get collation attribute value
    • Collator::getErrorCode — Get collator's last error code
    • Collator::getErrorMessage — Get text for collator's last error code
    • Collator::getLocale — Get the locale name of the collator
    • Collator::getStrength — Get current collation strength
    • Collator::setAttribute — Set collation attribute
    • Collator::setStrength — Set collation strength
    • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
    • Collator::sort — Sort array using specified collator
  • NumberFormatter — The NumberFormatter class
    • NumberFormatter::create — Create a number formatter
    • NumberFormatter::formatCurrency — Format a currency value
    • NumberFormatter::format — Format a number
    • NumberFormatter::getAttribute — Get an attribute
    • NumberFormatter::getErrorCode — Get formatter's last error code.
    • NumberFormatter::getErrorMessage — Get formatter's last error message.
    • NumberFormatter::getLocale — Get formatter locale
    • NumberFormatter::getPattern — Get formatter pattern
    • NumberFormatter::getSymbol — Get a symbol value
    • NumberFormatter::getTextAttribute — Get a text attribute
    • NumberFormatter::parseCurrency — Parse a currency number
    • NumberFormatter::parse — Parse a number
    • NumberFormatter::setAttribute — Set an attribute
    • NumberFormatter::setPattern — Set formatter pattern
    • NumberFormatter::setSymbol — Set a symbol value
    • NumberFormatter::setTextAttribute — Set a text attribute
  • Locale — The Locale class
    • Locale::acceptFromHttp — Tries to find out best available locale based on HTTP "Accept-Language" header
    • Locale::composeLocale — Returns a correctly ordered and delimited locale ID
    • Locale::filterMatches — Checks if a language tag filter matches with locale
    • Locale::getAllVariants — Gets the variants for the input locale
    • Locale::getDefault — Gets the default locale value from the INTL global 'default_locale'
    • Locale::getDisplayLanguage — Returns an appropriately localized display name for language of the inputlocale
    • Locale::getDisplayName — Returns an appropriately localized display name for the input locale
    • Locale::getDisplayRegion — Returns an appropriately localized display name for region of the input locale
    • Locale::getDisplayScript — Returns an appropriately localized display name for script of the input locale
    • Locale::getDisplayVariant — Returns an appropriately localized display name for variants of the input locale
    • Locale::getKeywords — Gets the keywords for the input locale
    • Locale::getPrimaryLanguage — Gets the primary language for the input locale
    • Locale::getRegion — Gets the region for the input locale
    • Locale::getScript — Gets the script for the input locale
    • Locale::lookup — Searches the language tag list for the best match to the language
    • Locale::parseLocale — Returns a key-value array of locale ID subtag elements.
    • Locale::setDefault — sets the default runtime locale
  • Normalizer — The Normalizer class
    • Normalizer::isNormalized — Checks if the provided string is already in the specified normalization form.
    • Normalizer::normalize — Normalizes the input provided and returns the normalized string
  • MessageFormatter — The MessageFormatter class
    • MessageFormatter::create — Constructs a new Message Formatter
    • MessageFormatter::formatMessage — Quick format message
    • MessageFormatter::format — Format the message
    • MessageFormatter::getErrorCode — Get the error code from last operation
    • MessageFormatter::getErrorMessage — Get the error text from the last operation
    • MessageFormatter::getLocale — Get the locale for which the formatter was created.
    • MessageFormatter::getPattern — Get the pattern used by the formatter
    • MessageFormatter::parseMessage — Quick parse input string
    • MessageFormatter::parse — Parse input string according to pattern
    • MessageFormatter::setPattern — Set the pattern used by the formatter
  • IntlDateFormatter — The IntlDateFormatter class
    • IntlDateFormatter::create — Create a date formatter
    • IntlDateFormatter::format — Format the date/time value as a string
    • IntlDateFormatter::getCalendar — Get the calendar used for the IntlDateFormatter
    • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Get the error code from last operation
    • IntlDateFormatter::getErrorMessage — Get the error text from the last operation.
    • IntlDateFormatter::getLocale — Get the locale used by formatter
    • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime — Parse string to a field-based time value
    • IntlDateFormatter::parse — Parse string to a timestamp value
    • IntlDateFormatter::setCalendar — sets the calendar used to the appropriate calendar, which must be
    • IntlDateFormatter::setLenient — Set the leniency of the parser
    • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZoneId — Sets the time zone to use
  • intl 函数
    • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
    • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
    • grapheme_strlen — Get string length in grapheme units
    • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack.
    • grapheme_substr — Return part of a string
    • intl_error_name — Get symbolic name for a given error code
    • intl_get_error_code — Get the last error code
    • intl_get_error_message — Get description of the last error
    • intl_is_failure — Check whether the given error code indicates failure
idn_to_utf8
简介
国际化与字符编码支持


简介

Internationalization extension (further is referred as Intl) is a wrapper for » ICU library, enabling PHP programmers to perform UCA-conformant collation and date/time/number/currency formatting in their scripts.

It tends to closely follow ICU APIs, so that people having experience working with ICU in either C/C++ or Java could easily use the PHP API. Also, this way ICU documentation would be useful to understand various ICU functions.

Intl consists of several modules, each of them exposes the corresponding ICU API:

  • Collator: provides string comparison capability with support for appropriate locale-sensitive sort orderings.
  • Number Formatter: allows to display number according to the localized format or given pattern or set of rules, and to parse strings into numbers.
  • Message Formatter: allows to create messages incorporating data (such as numbers or dates) formatted according to given pattern and locale rules, and parse messages extracting data from them.
  • Normalizer: provides a function to transform text into one of the Unicode normalization forms, and provides a routine to test if a given string is already normalized.
  • Locale: provides interaction with locale identifiers in the form of functions to get subtags from locale identifier; parse, compose, match(lookup and filter) locale identifiers.

Links

  • » Miscellaneous ICU docs

  • » ICU User Guide

  • » Unicode Collation Algorithm

intl
安装/配置
intl


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
intl


需求

To build the extension you need to install the » ICU library of version 3.6+.

The extension can be built with PHP 5.2, 5.2.4+ recommended. It is part of the PHP 5.3+ source tree.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/intl.

If your ICU is installed to a non-standard directory then you might want to specify its location in LD_LIBRARY_PATH environment variable so that dynamic linker can find it:

$ export LD_LIBRARY_PATH=/opt/icu/lib

Otherwise, if PHP and ICU are installed to their default locations, then the additional options to `configure' are not needed.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Intl 配置选项
名字 | 默认 | 可修改范围 | Changelog
intl.default_locale |  | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

intl.default_locale string

安装
资源类型
安装/配置


预定义常量

INTL_MAX_LOCALE_LEN (integer)
Limit on locale length, set to 64 in PHP code. Locale names longer than this limit will not be accepted.

资源类型
范例
intl


范例

Table of Contents

  • Basic usage of this extension
预定义常量
Basic usage of this extension
intl


Basic usage of this extension

Each module provides two kind of APIs: a procedural one and an object oriented one. Both are actually identical and described in the corresponding document.

Note: All input strings must be in UTF-8 encoding. All output strings are also in UTF-8.

Example #1 Example of using the procedural API

<?php
$coll  = collator_create('en_US');
$result = collator_compare($coll, "string#1", "string#2");
?>

Example #2 Example of using the object-oriented API

<?php
$coll = new Collator('en_US');
$al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Actual locale: $al\n";

$formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>
范例
Collator
范例


The Collator class

简介

Provides string comparison capability with support for appropriate locale-sensitive sort orderings.

Class synopsis

Collator
Collator {
/* Methods */
__construct ( string $locale )
bool asort ( array &$arr [, int $sort_flag ] )
int compare ( string $str1 , string $str2 )
static Collator create ( string $locale )
int getAttribute ( int $attr )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ([ int $type ] )
int getStrength ( void )
bool setAttribute ( int $attr , int $val )
bool setStrength ( int $strength )
bool sortWithSortKeys ( array &$arr )
bool sort ( array &$arr [, int $sort_flag ] )
}

预定义常量

Collator::FRENCH_COLLATION (integer)

Sort strings with different accents from the back of the string. This attribute is automatically set to On for the French locales and a few others. Users normally would not need to explicitly set this attribute. There is a string comparison performance cost when it is set On, but sort key length is unaffected. Possible values are:

  • Collator::ON
  • Collator::OFF(default)
  • Collator::DEFAULT_VALUE

Example #1 FRENCH_COLLATION rules

  • F=OFF cote < coté < côte < côté
  • F=ON cote < côte < coté < côté

Collator::ALTERNATE_HANDLING (integer)

The Alternate attribute is used to control the handling of the so called variable characters in the UCA: whitespace, punctuation and symbols. If Alternate is set to NonIgnorable (N), then differences among these characters are of the same importance as differences among letters. If Alternate is set to Shifted (S), then these characters are of only minor importance. The Shifted value is often used in combination with Strength set to Quaternary. In such a case, whitespace, punctuation, and symbols are considered when comparing strings, but only if all other aspects of the strings (base letters, accents, and case) are identical. If Alternate is not set to Shifted, then there is no difference between a Strength of 3 and a Strength of 4. For more information and examples, see Variable_Weighting in the » UCA . The reason the Alternate values are not simply On and Off is that additional Alternate values may be added in the future. The UCA option Blanked is expressed with Strength set to 3, and Alternate set to Shifted. The default for most locales is NonIgnorable. If Shifted is selected, it may be slower if there are many strings that are the same except for punctuation; sort key length will not be affected unless the strength level is also increased.

Possible values are:

  • Collator::NON_IGNORABLE(default)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Example #2 ALTERNATE_HANDLING rules

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST (integer)

The Case_First attribute is used to control whether uppercase letters come before lowercase letters or vice versa, in the absence of other differences in the strings. The possible values are Uppercase_First (U) and Lowercase_First (L), plus the standard Default and Off. There is almost no difference between the Off and Lowercase_First options in terms of results, so typically users will not use Lowercase_First: only Off or Uppercase_First. (People interested in the detailed differences between X and L should consult the Collation Customization). Specifying either L or U won't affect string comparison performance, but will affect the sort key length.

Possible values are:

  • Collator::OFF(default)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Example #3 CASE_FIRST rules

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL (integer)

The Case_Level attribute is used when ignoring accents but not case. In such a situation, set Strength to be Primary, and Case_Level to be On. In most locales, this setting is Off by default. There is a small string comparison performance and sort key impact if this attribute is set to be On.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Example #4 CASE_LEVEL rules

  • S=1, E=X role = Role = rôle
  • S=1, E=O role = rôle < Role

Collator::NORMALIZATION_MODE (integer)

The Normalization setting determines whether text is thoroughly normalized or not in comparison. Even if the setting is off (which is the default for many locales), text as represented in common usage will compare correctly (for details, see UTN #5). Only if the accent marks are in noncanonical order will there be a problem. If the setting is On, then the best results are guaranteed for all possible text input. There is a medium string comparison performance cost if this attribute is On, depending on the frequency of sequences that require normalization. There is no significant effect on sort key length. If the input text is known to be in NFD or NFKD normalization forms, there is no need to enable this Normalization option.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH (integer)

The ICU Collation Service supports many levels of comparison (named "Levels", but also known as "Strengths"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions. For more detailed information, see collator_set_strength() chapter.

Possible values are:

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(default)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE (integer)

Compatibility with JIS x 4061 requires the introduction of an additional level to distinguish Hiragana and Katakana characters. If compatibility with that standard is required, then this attribute should be set On, and the strength set to Quaternary. This will affect sort key length and string comparison string comparison performance.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION (integer)

When turned on, this attribute generates a collation key for the numeric value of substrings of digits. This is a way to get '100' to sort AFTER '2'.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE (integer)
Collator::PRIMARY (integer)
Collator::SECONDARY (integer)
Collator::TERTIARY (integer)
Collator::DEFAULT_STRENGTH (integer)
Collator::QUATERNARY (integer)
Collator::IDENTICAL (integer)
Collator::OFF (integer)
Collator::ON (integer)
Collator::SHIFTED (integer)
Collator::NON_IGNORABLE (integer)
Collator::LOWER_FIRST (integer)
Collator::UPPER_FIRST (integer)

Table of Contents

  • Collator::asort — Sort array maintaining index association
  • Collator::compare — Compare two Unicode strings
  • Collator::__construct — Create a collator
  • Collator::create — Create a collator
  • Collator::getAttribute — Get collation attribute value
  • Collator::getErrorCode — Get collator's last error code
  • Collator::getErrorMessage — Get text for collator's last error code
  • Collator::getLocale — Get the locale name of the collator
  • Collator::getStrength — Get current collation strength
  • Collator::setAttribute — Set collation attribute
  • Collator::setStrength — Set collation strength
  • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
  • Collator::sort — Sort array using specified collator
Basic usage of this extension
Collator::asort
intl


Sort array maintaining index association

Collator
Collator::compare
Collator
PHP 手册

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Sort array maintaining index association

说明

Object oriented style

bool Collator::asort ( array &$arr [, int $sort_flag ] )

Procedural style

bool collator_asort ( Collator $coll , array &$arr [, int $sort_flag ] )

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. Array elements will have sort order according to current locale rules.

Equivalent to standard PHP asort().

参数

coll

Collator object.

arr

Array of strings to sort.

sort_flag

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default $sort_flag value is Collator::SORT_REGULAR. It is also used if an invalid $sort_flag value has been specified.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 collator_asort()example

<?php
$coll = collator_create( 'en_US' );
$arr = array(
     'a' => '100',
     'b' => '50',
     'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>

上例将输出：

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

参见

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys

Collator
Collator::compare
Collator


Compare two Unicode strings

Collator::asort
Collator::__construct
Collator
PHP 手册

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compare two Unicode strings

说明

Object oriented style

int Collator::compare ( string $str1 , string $str2 )

Procedural style

int collator_compare ( Collator $coll , string $str1 , string $str2 )

Compare two Unicode strings according to collation rules.

参数

coll

Collator object.

str1

The first string to compare.

str2

The second string to compare.

返回值

Return comparison result:

  • 1 if str1 is greater than str2 ;

  • 0 if str1 is equal to str2;

  • -1 if str1 is less than str2 .

On error boolean FALSE is returned.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

范例

Example #1 collator_compare()example

<?php
$s1 = 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res  = collator_compare( $coll, $s1, $s2 );

if ($res === false) {
    echo collator_get_error_message( $coll );
} else if( $res > 0 ) {
    echo "s1 is greater than s2\n";
} else if( $res < 0 ) {
    echo "s1 is less than s2\n";
} else {
    echo "s1 is equal to s2\n";
?>

上例将输出：

s1 is greater than s2

参见

  • collator_sort() - Sort array using specified collator

Collator::asort
Collator::__construct
Collator


Create a collator

Collator::compare
Collator::create
Collator
PHP 手册

Collator::__construct

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::__construct — Create a collator

说明

Collator::__construct ( string $locale )

Creates a new instance of Collator.

参数

locale

The locale whose collation rules should be used. Special values for locales can be passed in - if null is passed for the locale, the default locale collation rules will be used. If empty string ("") or "root" are passed, UCA rules will be used.

The Locale attribute is typically the most important attribute for correct sorting and matching, according to the user expectations in different countries and regions. The default » UCA ordering will only sort a few languages such as Dutch and Portuguese correctly ("correctly" meaning according to the normal expectations for users of the languages). Otherwise, you need to supply the locale to UCA in order to properly collate text for a given language. Thus a locale needs to be supplied so as to choose a collator that is correctly tailored for that locale. The choice of a locale will automatically preset the values for all of the attributes to something that is reasonable for that locale. Thus most of the time the other attributes do not need to be explicitly set. In some cases, the choice of locale will make a difference in string comparison performance and/or sort key length.

返回值

Returns Collator instance.

错误／异常

Returns an "empty" object on error. You can use intl_get_error_code() and/or intl_get_error_message() to know what happened.

范例

Example #1 Collator::__construct() example

<?php
$coll = new Collator( 'en_CA' );
?>

参见

  • Collator::create() - Create a collator
  • collator_create() - Create a collator

Collator::compare
Collator::create
Collator


Create a collator

Collator::__construct
Collator::getAttribute
Collator
PHP 手册

Collator::create

collator_create

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::create -- collator_create — Create a collator

说明

Object oriented style

static Collator Collator::create ( string $locale )

Procedural style

Collator collator_create ( string $locale )

The strings will be compared using the options already specified.

参数

locale

The locale containing the required collation rules. Special values for locales can be passed in - if null is passed for the locale, the default locale collation rules will be used. If empty string ("") or "root" are passed, UCA rules will be used.

返回值

Return new instance of Collator object, or NULL on error.

范例

Example #1 collator_create() example

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
    printf( "Collator creation failed: %s\n", intl_get_error_message() );
    exit( 1 );
}
?>

参见

  • Collator::__construct() - Create a collator

Collator::__construct
Collator::getAttribute
Collator


Get collation attribute value

Collator::create
Collator::getErrorCode
Collator
PHP 手册

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Get collation attribute value

说明

Object oriented style

int Collator::getAttribute ( int $attr )

Procedural style

int collator_get_attribute ( Collator $coll , int $attr )

Get a value of an integer collator attribute.

参数

coll

Collator object.

attr

Attribute to get value for.

返回值

Attribute value, or boolean FALSE on error.

范例

Example #1 collator_get_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
    // Handle error.
}
?>

参见

  • Collator constants
  • collator_set_attribute() - Set collation attribute
  • collator_get_strength() - Get current collation strength

Collator::create
Collator::getErrorCode
Collator


Get collator's last error code

Collator::getAttribute
Collator::getErrorMessage
Collator
PHP 手册

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Get collator's last error code

说明

Object oriented style

int Collator::getErrorCode ( void )

Procedural style

int collator_get_error_code ( Collator $coll )

参数

coll

Collator object.

返回值

Error code returned by the last Collator API function call.

范例

Example #1 collator_get_error_code() example

<?php
$coll = collator_create( 'en_US' );
if( collator_get_attribute( $coll, Collator::FRENCH_COLLATION ) === false )
        handle_error( collator_get_error_code() );
?>

参见

  • collator_get_error_message() - Get text for collator's last error code

Collator::getAttribute
Collator::getErrorMessage
Collator


Get text for collator's last error code

Collator::getErrorCode
Collator::getLocale
Collator
PHP 手册

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Get text for collator's last error code

说明

Object oriented style

string Collator::getErrorMessage ( void )

Procedural style

string collator_get_error_message ( Collator $coll )

Retrieves the message for the last error.

参数

coll

Collator object.

返回值

Description of an error occurred in the last Collator API function call.

范例

Example #1 collator_get_error_message() example

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
    echo collator_get_error_message( $coll );
}
?>

参见

  • collator_get_error_code() - Get collator's last error code

Collator::getErrorCode
Collator::getLocale
Collator


Get the locale name of the collator

Collator::getErrorMessage
Collator::getStrength
Collator
PHP 手册

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Get the locale name of the collator

说明

Object oriented style

string Collator::getLocale ([ int $type ] )

Procedural style

string collator_get_locale ( Collator $coll , int $type )

Get collector locale name.

参数

coll

Collator object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE and Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

返回值

Real locale name from which the collation data comes. If the collator was instantiated from rules or an error occurred, returns boolean FALSE.

范例

Example #1 collator_get_locale() example

<?php
$coll    = collator_create( 'en_US_California' );
$res_val = collator_get_locale( $coll, Locale::VALID_LOCALE );
$res_act = collator_get_locale( $coll, Locale::ACTUAL_LOCALE );
printf( "Valid locale name: %s\nActual locale name: %s\n",
         $res_req, $res_val, $res_act );
?>

上例将输出：

Requested locale name: en_US_California
Valid locale name: en_US
Actual locale name: en

参见

  • collator_create() - Create a collator

Collator::getErrorMessage
Collator::getStrength
Collator


Get current collation strength

Collator::getLocale
Collator::setAttribute
Collator
PHP 手册

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Get current collation strength

说明

Object oriented style

int Collator::getStrength ( void )

Procedural style

int collator_get_strength ( Collator $coll )

参数

coll

Collator object.

返回值

Returns current collation strength, or boolean FALSE on error.

范例

Example #1 collator_get_strength() example

<?php
$coll     = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

参见

  • Collator constants
  • collator_set_strength() - Set collation strength
  • collator_get_attribute() - Get collation attribute value

Collator::getLocale
Collator::setAttribute
Collator


Set collation attribute

Collator::getStrength
Collator::setStrength
Collator
PHP 手册

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Set collation attribute

说明

Object oriented style

bool Collator::setAttribute ( int $attr , int $val )

Procedural style

bool collator_set_attribute ( Collator $coll , int $attr , int $val )

参数

coll

Collator object.

attr

Attribute.

val

Attribute value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 collator_set_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val  = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
    // Handle error.
} elseif ($val === Collator::ON) {
    // Do something useful.
}
?>

参见

  • Collator constants
  • collator_get_attribute() - Get collation attribute value
  • collator_set_strength() - Set collation strength

Collator::getStrength
Collator::setStrength
Collator


Set collation strength

Collator::setAttribute
Collator::sortWithSortKeys
Collator
PHP 手册

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Set collation strength

说明

Object oriented style

bool Collator::setStrength ( int $strength )

Procedural style

bool collator_set_strength ( Collator $coll , int $strength )

The » ICU Collation Service supports many levels of comparison (named "Levels", but also known as "Strengths"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions.

  1. Primary Level: Typically, this is used to denote differences between base characters (for example, "a" < "b"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the level1 strength.

  2. Secondary Level: Accents in the characters are considered secondary differences (for example, "as" < "às" < "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the level2 strength.

    Note: Note: In some languages (such as Danish), certain accented letters are considered to be separate base characters. In most languages, however, an accented letter only has a secondary difference from the unaccented version of that letter.

  3. Tertiary Level: Upper and lower case differences in characters are distinguished at the tertiary level (for example, "ao" < "Ao" < "aò"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and " "). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the level3 strength.

  4. Quaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at level 13, an additional level can be used to distinguish words with and without punctuation (for example, "ab" < "a-b" < "aB"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the level4 strength. The quaternary level should only be used if ignoring punctuation is required or when processing Japanese text (see Hiragana processing).

  5. Identical Level: When all other levels are equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form of each string are compared at this level, just in case there is no difference at levels 14. For example, Hebrew cantillation marks are only distinguished at this level. This level should be used sparingly, as only code point values differences between two strings is an extremely rare occurrence. Using this level substantially decreases the performance for both incremental comparison and sort key generation (as well as increasing the sort key length). It is also known as level 5 strength.

For example, people may choose to ignore accents or ignore accents and case when searching for text. Almost all characters are distinguished by the first three levels, and in most locales the default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise be ignored. If very fine distinctions among characters are required, then the Identical strength can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical strength result in significantly longer sort keys, and slower string comparison performance for equal strings.

参数

coll

Collator object.

strength

Strength to set.

Possible values are:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 collator_set_strength() example

<?php
$arr  = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Sort array using default strength.
collator_sort( $coll, $arr );
var_export( $arr );

// Sort array using primary strength.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>

上例将输出：

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'aò',
)
array (
  0 => 'aò',
  1 => 'Ao',
  2 => 'ao',
)

参见

  • Collator constants
  • collator_get_strength() - Get current collation strength

Collator::setAttribute
Collator::sortWithSortKeys
Collator


Sort array using specified collator and sort keys

Collator::setStrength
Collator::sort
Collator
PHP 手册

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Sort array using specified collator and sort keys

说明

Object oriented style

bool Collator::sortWithSortKeys ( array &$arr )

Procedural style

bool collator_sort_with_sort_keys ( Collator $coll , array &$arr )

Similar to collator_sort() but uses ICU sorting keys produced by ucol_getSortKey() to gain more speed on large arrays.

参数

coll

Collator object.

arr

Array of strings to sort

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 collator_sort_with_sort_keys() example

<?php
$arr  = array( 'Köpfe', 'Kypper', 'Kopfe' );
$coll = collator_create( 'sv' );

collator_sort_with_sort_keys( $coll, $arr );
var_export( $arr );
?>

上例将输出：

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Köpfe',
)

参见

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_asort() - Sort array maintaining index association

Collator::setStrength
Collator::sort
Collator


Sort array using specified collator

Collator::sortWithSortKeys
NumberFormatter
Collator
PHP 手册

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Sort array using specified collator

说明

Object oriented style

bool Collator::sort ( array &$arr [, int $sort_flag ] )

Procedural style

bool collator_sort ( Collator $coll , array &$arr [, int $sort_flag ] )

This function sorts an array according to current locale rules.

Equivalent to standard PHP sort() .

参数

coll

Collator object.

arr

Array of strings to sort.

sort_flag

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default sorting type is Collator::SORT_REGULAR.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 collator_sort() example

<?php
$coll = collator_create( 'en_US' );
$arr  = array( 'at', 'às', 'as' );

var_export( $arr );
collator_sort( $coll, $arr );
var_export( $arr );
?>

上例将输出：

array (
  0 => 'at',
  1 => 'às',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'às',
  2 => 'at',
)

参见

  • Collator constants
  • collator_asort() - Sort array maintaining index association
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys

Collator::sortWithSortKeys
NumberFormatter
Collator


The NumberFormatter class

简介

Programs store and operate on numbers using a locale-independent binary representation. When displaying or printing a number it is converted to a locale-specific string. For example, the number 12345.67 is "12,345.67" in the US, "12 345,67" in France and "12.345,67" in Germany.

By invoking the methods provided by the NumberFormatter class, you can format numbers, currencies, and percentages according to the specified or default locale. NumberFormatter is locale-sensitive so you need to create a new NumberFormatter for each locale. NumberFormatter methods format primitive-type numbers, such as double and output the number as a locale-specific string.

For currencies you can use currency format type to create a formatter that returns a string with the formatted number and the appropriate currency sign. Of course, the NumberFormatter class is unaware of exchange rates so, the number output is the same regardless of the specified currency. This means that the same number has different monetary values depending on the currency locale. If the number is 9988776.65 the results will be:

  • 9 988 776,65 € in France
  • 9.988.776,65 € in Germany
  • $9,988,776.65 in the United States

In order to format percentages, create a locale-specific formatter with percentage format type. With this formatter, a decimal fraction such as 0.75 is displayed as 75%.

For more complex formatting, like spelled-out numbers, the rule-based number formatters are used.

Class synopsis

NumberFormatter
NumberFormatter {
/* Methods */
__construct ( string $locale , int $style [, string $pattern ] )
static NumberFormatter create ( string $locale , int $style [, string $pattern ] )
string formatCurrency ( float $value , string $currency )
string format ( number $value [, int $type ] )
int getAttribute ( int $attr )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ([ int $type ] )
string getPattern ( void )
string getSymbol ( int $attr )
string getTextAttribute ( int $attr )
float parseCurrency ( string $value , string &$currency [, int &$position ] )
mixed parse ( string $value [, int $type [, int &$position ]] )
bool setAttribute ( int $attr , int $value )
bool setPattern ( string $pattern )
bool setSymbol ( int $attr , string $value )
bool setTextAttribute ( int $attr , string $value )
}

预定义常量

These styles are used by the numfmt_create() to define the type of the formatter.

NumberFormatter::PATTERN_DECIMAL (integer)
Decimal format defined by pattern
NumberFormatter::DECIMAL (integer)
Decimal format
NumberFormatter::CURRENCY (integer)
Currency format
NumberFormatter::PERCENT (integer)
Percent format
NumberFormatter::SCIENTIFIC (integer)
Scientific format
NumberFormatter::SPELLOUT (integer)
Spellout rule-based format
NumberFormatter::ORDINAL (integer)
Ordinal rule-based format
NumberFormatter::DURATION (integer)
Duration rule-based format
NumberFormatter::PATTERN_RULEBASED (integer)
Rule-based format defined by pattern
NumberFormatter::DEFAULT_STYLE (integer)
Default format for the locale
NumberFormatter::IGNORE (integer)
Alias for PATTERN_DECIMAL

These constants define how the numbers are parsed or formatted. They should be used as arguments to numfmt_format() and numfmt_parse().

NumberFormatter::TYPE_DEFAULT (integer)
Derive the type from variable type
NumberFormatter::TYPE_INT32 (integer)
Format/parse as 32-bit integer
NumberFormatter::TYPE_INT64 (integer)
Format/parse as 64-bit integer
NumberFormatter::TYPE_DOUBLE (integer)
Format/parse as floating point value
NumberFormatter::TYPE_CURRENCY (integer)
Format/parse as currency value

Number format attribute used by numfmt_get_attribute() and numfmt_set_attribute() .

NumberFormatter::PARSE_INT_ONLY (integer)
Parse integers only.
NumberFormatter::GROUPING_USED (integer)
Use grouping separator.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (integer)
Always show decimal point.
NumberFormatter::MAX_INTEGER_DIGITS (integer)
Maximum integer digits.
NumberFormatter::MIN_INTEGER_DIGITS (integer)
Minimum integer digits.
NumberFormatter::INTEGER_DIGITS (integer)
Integer digits.
NumberFormatter::MAX_FRACTION_DIGITS (integer)
Maximum fraction digits.
NumberFormatter::MIN_FRACTION_DIGITS (integer)
Minimum fraction digits.
NumberFormatter::FRACTION_DIGITS (integer)
Fraction digits.
NumberFormatter::MULTIPLIER (integer)
Multiplier.
NumberFormatter::GROUPING_SIZE (integer)
Grouping size.
NumberFormatter::ROUNDING_MODE (integer)
Rounding Mode.
NumberFormatter::ROUNDING_INCREMENT (integer)
Rounding increment.
NumberFormatter::FORMAT_WIDTH (integer)
The width to which the output of format() is padded.
NumberFormatter::PADDING_POSITION (integer)
The position at which padding will take place. See pad position constants for possible argument values.
NumberFormatter::SECONDARY_GROUPING_SIZE (integer)
Secondary grouping size.
NumberFormatter::SIGNIFICANT_DIGITS_USED (integer)
Use significant digits.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (integer)
Minimum significant digits.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (integer)
Maximum significant digits.
NumberFormatter::LENIENT_PARSE (integer)
Lenient parse mode used by rule-based formats.

Number format text attribute used by numfmt_get_text_attribute() and numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (integer)
Positive prefix.
NumberFormatter::POSITIVE_SUFFIX (integer)
Positive suffix.
NumberFormatter::NEGATIVE_PREFIX (integer)
Negative prefix.
NumberFormatter::NEGATIVE_SUFFIX (integer)
Negative suffix.
NumberFormatter::PADDING_CHARACTER (integer)
The character used to pad to the format width.
NumberFormatter::CURRENCY_CODE (integer)
The ISO currency code.
NumberFormatter::DEFAULT_RULESET (integer)
The default rule set. This is only available with rule-based formatters.
NumberFormatter::PUBLIC_RULESETS (integer)
The public rule sets. This is only available with rule-based formatters. This is a read-only attribute. The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).

Number format symbols used by numfmt_get_symbol() and numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (integer)
The decimal separator.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (integer)
The grouping separator.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (integer)
The pattern separator.
NumberFormatter::PERCENT_SYMBOL (integer)
The percent sign.
NumberFormatter::ZERO_DIGIT_SYMBOL (integer)
Zero.
NumberFormatter::DIGIT_SYMBOL (integer)
Character representing a digit in the pattern.
NumberFormatter::MINUS_SIGN_SYMBOL (integer)
The minus sign.
NumberFormatter::PLUS_SIGN_SYMBOL (integer)
The plus sign.
NumberFormatter::CURRENCY_SYMBOL (integer)
The currency symbol.
NumberFormatter::INTL_CURRENCY_SYMBOL (integer)
The international currency symbol.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (integer)
The monetary separator.
NumberFormatter::EXPONENTIAL_SYMBOL (integer)
The exponential symbol.
NumberFormatter::PERMILL_SYMBOL (integer)
Per mill symbol.
NumberFormatter::PAD_ESCAPE_SYMBOL (integer)
Escape padding character.
NumberFormatter::INFINITY_SYMBOL (integer)
Infinity symbol.
NumberFormatter::NAN_SYMBOL (integer)
Not-a-number symbol.
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (integer)
Significant digit symbol.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (integer)
The monetary grouping separator.

Rounding mode values used by numfmt_get_attribute()
and numfmt_set_attribute() with
NumberFormatter::ROUNDING_MODE attribute.

NumberFormatter::ROUND_CEILING (integer)
Rounding mode to round towards positive infinity.
NumberFormatter::ROUND_DOWN (integer)
Rounding mode to round towards zero.
NumberFormatter::ROUND_FLOOR (integer)
Rounding mode to round towards negative infinity.
NumberFormatter::ROUND_HALFDOWN (integer)
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
NumberFormatter::ROUND_HALFEVEN (integer)
Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.
NumberFormatter::ROUND_HALFUP (integer)
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
NumberFormatter::ROUND_UP (integer)
Rounding mode to round away from zero.

Pad position values used by numfmt_get_attribute()
and numfmt_set_attribute() with
NumberFormatter::PADDING_POSITION attribute.

NumberFormatter::PAD_AFTER_PREFIX (integer)
Pad characters inserted after the prefix.
NumberFormatter::PAD_AFTER_SUFFIX (integer)
Pad characters inserted after the suffix.
NumberFormatter::PAD_BEFORE_PREFIX (integer)
Pad characters inserted before the prefix.
NumberFormatter::PAD_BEFORE_SUFFIX (integer)
Pad characters inserted before the suffix.

参见

  • » ICU formatting documentation
  • » ICU number formatters
  • » ICU decimal formatters
  • » ICU rule-based number formatters

Table of Contents

  • NumberFormatter::create — Create a number formatter
  • NumberFormatter::formatCurrency — Format a currency value
  • NumberFormatter::format — Format a number
  • NumberFormatter::getAttribute — Get an attribute
  • NumberFormatter::getErrorCode — Get formatter's last error code.
  • NumberFormatter::getErrorMessage — Get formatter's last error message.
  • NumberFormatter::getLocale — Get formatter locale
  • NumberFormatter::getPattern — Get formatter pattern
  • NumberFormatter::getSymbol — Get a symbol value
  • NumberFormatter::getTextAttribute — Get a text attribute
  • NumberFormatter::parseCurrency — Parse a currency number
  • NumberFormatter::parse — Parse a number
  • NumberFormatter::setAttribute — Set an attribute
  • NumberFormatter::setPattern — Set formatter pattern
  • NumberFormatter::setSymbol — Set a symbol value
  • NumberFormatter::setTextAttribute — Set a text attribute
Collator::sort
NumberFormatter::create
intl


Create a number formatter

NumberFormatter
NumberFormatter::formatCurrency
NumberFormatter
PHP 手册

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Create a number formatter

说明

Object oriented style (method)

static NumberFormatter NumberFormatter::create ( string $locale , int $style [, string $pattern ] )

Procedural style

NumberFormatter numfmt_create ( string $locale , int $style [, string $pattern ] )

Object oriented style (constructor):

NumberFormatter::__construct ( string $locale , int $style [, string $pattern ] )

Creates a number formatter.

参数

locale

Locale in which the number would be formatted (locale name, e.g. en_CA).

style

Style of the formatting, one of the format style constants. If NumberFormatter::PATTERN_DECIMAL or NumberFormatter::PATTERN_RULEBASED is passed then the number format is opened using the given pattern, which must conform to the syntax described in » ICU DecimalFormat documentation or » ICU RuleBasedNumberFormat documentation, respectively.

pattern

Pattern string in case chosen style requires pattern.

返回值

Returns NumberFormatter object or FALSE on error.

范例

Example #1 numfmt_create() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."\n";
?>

Example #2 NumberFormatter::create() example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter( 'it', NumberFormatter::SPELLOUT );
echo $fmt->format(1142)."\n";
?>

上例将输出：

1.234.567,891
millicentoquarantadue

参见

  • numfmt_format() - Format a number
  • numfmt_parse() - Parse a number

NumberFormatter
NumberFormatter::formatCurrency
NumberFormatter


Format a currency value

NumberFormatter::create
NumberFormatter::format
NumberFormatter
PHP 手册

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Format a currency value

说明

Object oriented style

string NumberFormatter::formatCurrency ( float $value , string $currency )

Procedural style

string numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency )

Format the currency value according to the formatter rules.

参数

fmt

NumberFormatter object.

value

The numeric currency value.

currency

The 3-letter ISO 4217 currency code indicating the currency to use.

返回值

String representing the formatted currency value.

范例

Example #1 numfmt_format_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
?>

上例将输出：

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number

NumberFormatter::create
NumberFormatter::format
NumberFormatter


Format a number

NumberFormatter::formatCurrency
NumberFormatter::getAttribute
NumberFormatter
PHP 手册

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Format a number

说明

Object oriented style

string NumberFormatter::format ( number $value [, int $type ] )

Procedural style

string numfmt_format ( NumberFormatter $fmt , number $value [, int $type ] )

Format a numeric value according to the formatter rules.

参数

fmt

NumberFormatter object.

value

The value to format. Can be integer or double, other values will be converted to a numeric value.

type

The formatting type to use.

返回值

Returns the string containing formatted value, or FALSE on error.

范例

Example #1 numfmt_format() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
    report_error("Formatter error");
}
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

上例将输出：

1.234.567,891

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_format_currency() - Format a currency value
  • numfmt_parse() - Parse a number

NumberFormatter::formatCurrency
NumberFormatter::getAttribute
NumberFormatter


Get an attribute

NumberFormatter::format
NumberFormatter::getErrorCode
NumberFormatter
PHP 手册

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Get an attribute

说明

Object oriented style

int NumberFormatter::getAttribute ( int $attr )

Procedural style

int numfmt_get_attribute ( NumberFormatter $fmt , int $attr )

Get a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

参数

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

返回值

Return attribute value on success, or FALSE on error.

范例

Example #1 numfmt_get_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

上例将输出：

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute

NumberFormatter::format
NumberFormatter::getErrorCode
NumberFormatter


Get formatter's last error code.

NumberFormatter::getAttribute
NumberFormatter::getErrorMessage
NumberFormatter
PHP 手册

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Get formatter's last error code.

说明

Object oriented style

int NumberFormatter::getErrorCode ( void )

Procedural style

int numfmt_get_error_code ( NumberFormatter $fmt )

Get error code from the last function performed by the formatter.

参数

fmt

NumberFormatter object.

返回值

Returns error code from last formatter call.

范例

Example #1 numfmt_get_error_code() example

<?php
$fmt  = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Formatter error");
}
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

参见

  • numfmt_get_error_message() - Get formatter's last error message.
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure

NumberFormatter::getAttribute
NumberFormatter::getErrorMessage
NumberFormatter


Get formatter's last error message.

NumberFormatter::getErrorCode
NumberFormatter::getLocale
NumberFormatter
PHP 手册

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Get formatter's last error message.

说明

Object oriented style

string NumberFormatter::getErrorMessage ( void )

Procedural style

string numfmt_get_error_message ( NumberFormatter $fmt )

Get error message from the last function performed by the formatter.

参数

fmt

NumberFormatter object.

返回值

Returns error message from last formatter call.

范例

Example #1 numfmt_get_error_message() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Formatter error");
}
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure

NumberFormatter::getErrorCode
NumberFormatter::getLocale
NumberFormatter


Get formatter locale

NumberFormatter::getErrorMessage
NumberFormatter::getPattern
NumberFormatter
PHP 手册

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Get formatter locale

说明

Object oriented style

string NumberFormatter::getLocale ([ int $type ] )

Procedural style

string numfmt_get_locale ( NumberFormatter $fmt [, int $type ] )

Get formatter locale name.

参数

fmt

NumberFormatter object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

返回值

The locale name used to create the formatter.

范例

Example #1 numfmt_get_locale() example

<?php
$req     = 'fr_FR_PARIS';
$fmt     = numfmt_create( $req,  NumberFormatter::DECIMAL);
$res_val = numfmt_get_locale( $fmt, Locale::VALID_LOCALE );
$res_act = numfmt_get_locale( $fmt, Locale::ACTUAL_LOCALE );
printf( "Requested locale name: %s\nValid locale name: %s\nActual locale name: %s\n",
         $req, $res_val, $res_act );
?>

上例将输出：

Requested locale name: fr_FR_PARIS
Valid locale name: fr_FR
Actual locale name: fr

参见

  • numfmt_create() - Create a number formatter
  • numfmt_get_error_code() - Get formatter's last error code.

NumberFormatter::getErrorMessage
NumberFormatter::getPattern
NumberFormatter


Get formatter pattern

NumberFormatter::getLocale
NumberFormatter::getSymbol
NumberFormatter
PHP 手册

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Get formatter pattern

说明

Object oriented style

string NumberFormatter::getPattern ( void )

Procedural style

string numfmt_get_pattern ( NumberFormatter $fmt )

Extract pattern used by the formatter.

参数

fmt

NumberFormatter object.

返回值

Pattern string that is used by the formatter, or FALSE if an error happens.

范例

Example #1 numfmt_get_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

上例将输出：

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_set_pattern() - Set formatter pattern
  • numfmt_create() - Create a number formatter

NumberFormatter::getLocale
NumberFormatter::getSymbol
NumberFormatter


Get a symbol value

NumberFormatter::getPattern
NumberFormatter::getTextAttribute
NumberFormatter
PHP 手册

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Get a symbol value

说明

Object oriented style

string NumberFormatter::getSymbol ( int $attr )

Procedural style

string numfmt_get_symbol ( NumberFormatter $fmt , int $attr )

Get a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

参数

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

返回值

The symbol string or FALSE on error.

范例

Example #1 numfmt_get_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

上例将输出：

Sep: .
1.234.567,891
Sep: *
1*234*567,891

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_set_symbol() - Set a symbol value

NumberFormatter::getPattern
NumberFormatter::getTextAttribute
NumberFormatter


Get a text attribute

NumberFormatter::getSymbol
NumberFormatter::parseCurrency
NumberFormatter
PHP 手册

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Get a text attribute

说明

Object oriented style

string NumberFormatter::getTextAttribute ( int $attr )

Procedural style

string numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr )

Get a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

参数

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

返回值

Return attribute value on success, or FALSE on error.

范例

Example #1 numfmt_get_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

上例将输出：

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute

NumberFormatter::getSymbol
NumberFormatter::parseCurrency
NumberFormatter


Parse a currency number

NumberFormatter::getTextAttribute
NumberFormatter::parse
NumberFormatter
PHP 手册

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Parse a currency number

说明

Object oriented style

float NumberFormatter::parseCurrency ( string $value , string &$currency [, int &$position ] )

Procedural style

float numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency [, int &$position ] )

Parse a string into a double and a currency using the current formatter.

参数

fmt

NumberFormatter object.

currency

Parameter to receive the currency name (3-letter ISO 4217 currency code).

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

返回值

The parsed numeric value or FALSE on error.

范例

Example #1 numfmt_parse_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89 $";
echo "We have ".numfmt_parse_currency($fmt, $num, $curr)." in $curr\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89 $";
echo "We have ".$fmt->parseCurrency($num, $curr)." in $curr\n";
?>

上例将输出：

We have 1234567.89 in USD

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_parse() - Parse a number
  • numfmt_format_currency() - Format a currency value

NumberFormatter::getTextAttribute
NumberFormatter::parse
NumberFormatter


Parse a number

NumberFormatter::parseCurrency
NumberFormatter::setAttribute
NumberFormatter
PHP 手册

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Parse a number

说明

Object oriented style

mixed NumberFormatter::parse ( string $value [, int $type [, int &$position ]] )

Procedural style

mixed numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] )

Parse a string into a number using the current formatter rules.

参数

fmt

NumberFormatter object.

type

The formatting type to use. By default, NumberFormatter::TYPE_DOUBLE is used.

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

返回值

The value of the parsed number or FALSE on error.

范例

Example #1 numfmt_parse() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

上例将输出：

1234567.891
1234567

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number

NumberFormatter::parseCurrency
NumberFormatter::setAttribute
NumberFormatter


Set an attribute

NumberFormatter::parse
NumberFormatter::setPattern
NumberFormatter
PHP 手册

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Set an attribute

说明

Object oriented style

bool NumberFormatter::setAttribute ( int $attr , int $value )

Procedural style

bool numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value )

Set a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

参数

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

value

The attribute value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 numfmt_set_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

上例将输出：

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute

NumberFormatter::parse
NumberFormatter::setPattern
NumberFormatter


Set formatter pattern

NumberFormatter::setAttribute
NumberFormatter::setSymbol
NumberFormatter
PHP 手册

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Set formatter pattern

说明

Object oriented style

bool NumberFormatter::setPattern ( string $pattern )

Procedural style

bool numfmt_set_pattern ( NumberFormatter $fmt , string $pattern )

Set the pattern used by the formatter. Can not be used on a rule-based formatter.

参数

fmt

NumberFormatter object.

pattern

Pattern in syntax described in » ICU DecimalFormat documentation.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 numfmt_set_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

上例将输出：

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_create() - Create a number formatter
  • numfmt_get_pattern() - Get formatter pattern

NumberFormatter::setAttribute
NumberFormatter::setSymbol
NumberFormatter


Set a symbol value

NumberFormatter::setPattern
NumberFormatter::setTextAttribute
NumberFormatter
PHP 手册

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Set a symbol value

说明

Object oriented style

bool NumberFormatter::setSymbol ( int $attr , string $value )

Procedural style

bool numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value )

Set a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

参数

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

value

Text for the symbol.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 numfmt_set_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

上例将输出：

Sep: .
1.234.567,891
Sep: *
1*234*567,891

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_symbol() - Get a symbol value

NumberFormatter::setPattern
NumberFormatter::setTextAttribute
NumberFormatter


Set a text attribute

NumberFormatter::setSymbol
Locale
NumberFormatter
PHP 手册

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Set a text attribute

说明

Object oriented style

bool NumberFormatter::setTextAttribute ( int $attr , string $value )

Procedural style

bool numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value )

Set a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

参数

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

value

Text for the attribute value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 numfmt_set_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Example #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

上例将输出：

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

参见

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute

NumberFormatter::setSymbol
Locale
NumberFormatter


The Locale class

简介

A "Locale" is an identifier used to get language, culture, or regionally-specific behavior from an API. PHP locales are organized and identified the same way that the CLDR locales used by ICU (and many vendors of Unix-like operating systems, the Mac, Java, and so forth) use. Locales are identified using RFC 4646 language tags (which use hyphen, not underscore) in addition to the more traditional underscore-using identifiers. Unless otherwise noted the functions in this class are tolerant of both formats.

Examples of identifiers include:

  • en-US (English, United States)
  • zh-Hant-TW (Chinese, Traditional Script, Taiwan)
  • fr-CA, fr-FR (French for Canada and France respectively)

The Locale class (and related procedural functions) are used to interact with locale identifiers--to verify that an ID is well-formed, valid, etc. The extensions used by CLDR in UAX #35 (and inherited by ICU) are valid and used wherever they would be in ICU normally.

Locales cannot be instantiated as objects. All of the functions/methods provided are static.

The null or empty string obtains the "root" locale. The "root" locale is equivalent to "en_US_POSIX" in CLDR. Language tags (and thus locale identifiers) are case insensitive. There exists a canonicalization function to make case match the specification.

Class synopsis

Locale
Locale {
/* Methods */
static string acceptFromHttp ( string $header )
static string composeLocale ( array $subtags )
static bool filterMatches ( string $langtag , string $locale )
static array getAllVariants ( string $locale )
static string getDefault ( void )
static string getDisplayLanguage ( string $locale [, string $in_locale ] )
static string getDisplayName ( string $locale [, string $in_locale ] )
static string getDisplayRegion ( string $locale [, string $in_locale ] )
static string getDisplayScript ( string $locale [, string $in_locale ] )
static string getDisplayVariant ( string $locale [, string $in_locale ] )
static array getKeywords ( string $locale )
static string getPrimaryLanguage ( string $locale )
static string getRegion ( string $locale )
static string getScript ( string $locale )
static string lookup ( array $langtag , string $locale , string $default )
static array parseLocale ( string $locale )
static bool setDefault ( string $locale )
}

预定义常量

These constants define how the Locale

Locale::DEFAULT_LOCALE (string)
Used with the getLocale methods of the various locale affected classes, such as numfmt.
Locale::ACTUAL_LOCALE (string)
This is locale the data actually comes from.
Locale::VALID_LOCALE (string)
This is the most specific locale supported by ICU.

These constants define how the Locales are parsed or composed. They should be used as keys in the argument array to locale_compose() and are returned from locale_parse() as keys of the returned associative array.

Locale::LANG_TAG (string)
Language subtag
Locale::EXTLANG_TAG (string)
Extended language subtag
Locale::SCRIPT_TAG (string)
Script subtag
Locale::REGION_TAG (string)
Region subtag
Locale::VARIANT_TAG (string)
Variant subtag
Locale::GRANDFATHERED_LANG_TAG (string)
Grandfathered Language subtag
Locale::PRIVATE_TAG (string)
Private subtag

参见

  • » RFC 4646 - Tags for Identifying Languages
  • » RFC 4647 - Matching of Language Tags
  • » Unicode CLDR Project:Common Locale Data Repository
  • » IANA Language Subtags Registry
  • » ICU User Guide - Locale
  • » ICU Locale api

Table of Contents

  • Locale::acceptFromHttp — Tries to find out best available locale based on HTTP "Accept-Language" header
  • Locale::composeLocale — Returns a correctly ordered and delimited locale ID
  • Locale::filterMatches — Checks if a language tag filter matches with locale
  • Locale::getAllVariants — Gets the variants for the input locale
  • Locale::getDefault — Gets the default locale value from the INTL global 'default_locale'
  • Locale::getDisplayLanguage — Returns an appropriately localized display name for language of the inputlocale
  • Locale::getDisplayName — Returns an appropriately localized display name for the input locale
  • Locale::getDisplayRegion — Returns an appropriately localized display name for region of the input locale
  • Locale::getDisplayScript — Returns an appropriately localized display name for script of the input locale
  • Locale::getDisplayVariant — Returns an appropriately localized display name for variants of the input locale
  • Locale::getKeywords — Gets the keywords for the input locale
  • Locale::getPrimaryLanguage — Gets the primary language for the input locale
  • Locale::getRegion — Gets the region for the input locale
  • Locale::getScript — Gets the script for the input locale
  • Locale::lookup — Searches the language tag list for the best match to the language
  • Locale::parseLocale — Returns a key-value array of locale ID subtag elements.
  • Locale::setDefault — sets the default runtime locale
NumberFormatter::setTextAttribute
Locale::acceptFromHttp
intl


Tries to find out best available locale based on HTTP "Accept-Language" header

Locale
Locale::composeLocale
Locale
PHP 手册

Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Tries to find out best available locale based on HTTP "Accept-Language" header

说明

Object oriented style

static string Locale::acceptFromHttp ( string $header )

Procedural style

string locale_accept_from_http ( string $header )

Tries to find locale that can satisfy the language list that is requested by the HTTP "Accept-Language" header.

参数

header

The string containing the "Accept-Language" header according to format in RFC 2616.

返回值

The corresponding locale identifier.

范例

Example #1 locale_accept_from_http() example

<?php
$locale = locale_accept_from_http($_SERVER('HTTP_ACCEPT_LANGUAGE'));
echo $locale;
?>

Example #2 OO example

<?php
$locale = Locale::acceptFromHttp($_SERVER('HTTP_ACCEPT_LANGUAGE'));
echo $locale;
?>

上例将输出：

en_US

参见

  • locale_lookup() - Searches the language tag list for the best match to the language

Locale
Locale::composeLocale
Locale


Returns a correctly ordered and delimited locale ID

Locale::acceptFromHttp
Locale::filterMatches
Locale
PHP 手册

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Returns a correctly ordered and delimited locale ID

说明

Object oriented style

static string Locale::composeLocale ( array $subtags )

Procedural style

string locale_compose ( array $subtags )

Returns a correctly ordered and delimited locale ID the keys identify the particular locale ID subtags, and the values are the associated subtag values.

参数

subtags

an array containing a list of key-value pairs, where the keys identify the particular locale ID subtags, and the values are the associated subtag values.

Note: The 'variant' and 'private' subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed with the suffix ranging from 0-14. Hence the keys for the input array can be variant0, variant1, ...,variant14. In the returned locale id, the subtag is ordered by suffix resulting in variant0 followed by variant1 followed by variant2 and so on.
The 'variant', 'private' and 'extlang' multiple values can be specified both as array under specific key (e.g. 'variant') and as multiple numbered keys (e.g. 'variant0', 'variant1', etc.).

返回值

The corresponding locale identifier.

范例

Example #1 locale_compose() example

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo locale_compose( $arr );
?>

Example #2 OO example

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo Locale::composeLocale( $arr );
?>

上例将输出：

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

参见

  • locale_parse() - Returns a key-value array of locale ID subtag elements.

Locale::acceptFromHttp
Locale::filterMatches
Locale


Checks if a language tag filter matches with locale

Locale::composeLocale
Locale::getAllVariants
Locale
PHP 手册

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Checks if a language tag filter matches with locale

说明

Object oriented style

static bool Locale::filterMatches ( string $langtag , string $locale )

Procedural style

bool locale_filter_matches ( string $langtag , string $locale )

Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm

参数

langtag

The language tag to check

locale

The language range to check against

返回值

TRUE if $locale matches $langtag FALSE otherwise.

范例

Example #1 locale_filter_matches() example

<?php
echo (locale_filter_matches('de-DEVA','de-DE')) ? "Matches" : "Does not match";
echo '; ';
echo (locale_filter_matches('de-DE_1996','de-DE')) ? "Matches" : "Does not match";
?>

Example #2 OO example

<?php
echo (Locale::filter_matches('de-DEVA','de-DE')) ? "Matches" : "Does not match";
echo '; ';
echo (Locale::filter_matches('de-DE-1996','de-DE')) ? "Matches" : "Does not match";
?>

上例将输出：

Does not match; Matches

参见

  • locale_lookup() - Searches the language tag list for the best match to the language

Locale::composeLocale
Locale::getAllVariants
Locale


Gets the variants for the input locale

Locale::filterMatches
Locale::getDefault
Locale
PHP 手册

Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Gets the variants for the input locale

说明

Object oriented style

static array Locale::getAllVariants ( string $locale )

Procedural style

array locale_get_all_variants ( string $locale )

Gets the variants for the input locale

参数

locale

The locale to extract the variants from

返回值

The array containing the list of all variants subtag for the locale or NULL if not present

范例

Example #1 locale_get_all_variants() example

<?php
$arr = locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

Example #2 OO example

<?php
 $arr = Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
 var_export( $arr );
?>

上例将输出：

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901',
)

参见

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_script() - Gets the script for the input locale
  • locale_get_region() - Gets the region for the input locale

Locale::filterMatches
Locale::getDefault
Locale


Gets the default locale value from the INTL global 'default_locale'

Locale::getAllVariants
Locale::getDisplayLanguage
Locale
PHP 手册

Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Gets the default locale value from the INTL global 'default_locale'

说明

Object oriented style

static string Locale::getDefault ( void )

Procedural style

string locale_get_default ( void )

Gets the default locale value. At the PHP initialization this value is set to 'intl.default_locale' value from php.ini if that value exists or from ICU's function uloc_getDefault().

参数

返回值

The current runtime locale

范例

Example #1 locale_get_default() example

<?php
ini_set('intl.default_locale', 'de-DE');
echo locale_get_default();
echo '; ';
locale_set_default('fr');
echo locale_get_default();
?>

Example #2 OO example

<?php
ini_set('intl.default_locale', 'de-DE');
echo Locale::getDefault();
echo '; ';
Locale::setDefault('fr');
echo Locale::getDefault();
?>

上例将输出：

de-DE; fr

参见

  • locale_set_default() - sets the default runtime locale

Locale::getAllVariants
Locale::getDisplayLanguage
Locale


Returns an appropriately localized display name for language of the inputlocale

Locale::getDefault
Locale::getDisplayName
Locale
PHP 手册

Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Returns an appropriately localized display name for language of the inputlocale

说明

Object oriented style

static string Locale::getDisplayLanguage ( string $locale [, string $in_locale ] )

Procedural style

string locale_get_display_language ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for language of the input locale. If is NULL then the default locale is used.

参数

locale

The locale to return a display language for

in_locale

Optional format locale to use to display the language name

返回值

display name of the language for the $locale in the format appropriate for $in_locale.

范例

Example #1 locale_get_display_language() example

<?php
echo locale_get_display_language('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'de');
?>

Example #2 OO example

<?php
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'de');
?>

上例将输出：

Slovenian;
slov\xc3\xa8ne;
Slowenisch

参见

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale

Locale::getDefault
Locale::getDisplayName
Locale


Returns an appropriately localized display name for the input locale

Locale::getDisplayLanguage
Locale::getDisplayRegion
Locale
PHP 手册

Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Returns an appropriately localized display name for the input locale

说明

Object oriented style

static string Locale::getDisplayName ( string $locale [, string $in_locale ] )

Procedural style

string locale_get_display_name ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for the input locale. If is NULL then the default locale is used.

参数

locale

The locale to return a display name for.

in_locale

optional format locale

返回值

Display name of the locale in the format appropriate for $in_locale.

范例

Example #1 locale_get_display_name() example

<?php
echo locale_get_display_name('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'de');
?>

Example #2 OO example

<?php
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'de');
?>

上例将输出：

Slovenian (Latin, Italy, Natisone dialect);
slov\xc3\xa8ne (latin, Italie, dialecte de Natisone;
Slowenisch (Lateinisch, Italien, NEDIS)

参见

  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale

Locale::getDisplayLanguage
Locale::getDisplayRegion
Locale


Returns an appropriately localized display name for region of the input locale

Locale::getDisplayName
Locale::getDisplayScript
Locale
PHP 手册

Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Returns an appropriately localized display name for region of the input locale

说明

Object oriented style

static string Locale::getDisplayRegion ( string $locale [, string $in_locale ] )

Procedural style

string locale_get_display_region ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for region of the input locale. If is NULL then the default locale is used.

参数

locale

The locale to return a display region for.

in_locale

Optional format locale to use to display the region name

返回值

display name of the region for the $locale in the format appropriate for $in_locale.

范例

Example #1 locale_get_display_region() example

<?php
echo locale_get_display_region('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'de');
?>

Example #2 OO example

<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'de');
?>

上例将输出：

Italy;
Italie;
Italien

参见

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale

Locale::getDisplayName
Locale::getDisplayScript
Locale


Returns an appropriately localized display name for script of the input locale

Locale::getDisplayRegion
Locale::getDisplayVariant
Locale
PHP 手册

Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Returns an appropriately localized display name for script of the input locale

说明

Object oriented style

static string Locale::getDisplayScript ( string $locale [, string $in_locale ] )

Procedural style

string locale_get_display_script ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for script of the input locale. If is NULL then the default locale is used.

参数

locale

The locale to return a display script for

in_locale

Optional format locale to use to display the script name

返回值

Display name of the script for the $locale in the format appropriate for $in_locale.

范例

Example #1 locale_get_display_script() example

<?php
echo locale_get_display_script('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'de');
?>

Example #2 OO example

<?php
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'de');
?>

上例将输出：

Latin;
latin;
Lateinisch

参见

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale

Locale::getDisplayRegion
Locale::getDisplayVariant
Locale


Returns an appropriately localized display name for variants of the input locale

Locale::getDisplayScript
Locale::getKeywords
Locale
PHP 手册

Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Returns an appropriately localized display name for variants of the input locale

说明

Object oriented style

static string Locale::getDisplayVariant ( string $locale [, string $in_locale ] )

Procedural style

string locale_get_display_variant ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for variants of the input locale. If is NULL then the default locale is used.

参数

locale

The locale to return a display variant for

in_locale

Optional format locale to use to display the variant name

返回值

Display name of the variant for the $locale in the format appropriate for $in_locale.

范例

Example #1 locale_get_display_variant() example

<?php
echo locale_get_display_variant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'de');
?>

Example #2 OO example

<?php
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'de');
?>

上例将输出：

Natisone dialect;
dialecte de Natisone;
NEDIS

参见

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale

Locale::getDisplayScript
Locale::getKeywords
Locale


Gets the keywords for the input locale

Locale::getDisplayVariant
Locale::getPrimaryLanguage
Locale
PHP 手册

Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Gets the keywords for the input locale

说明

Object oriented style

static array Locale::getKeywords ( string $locale )

Procedural style

array locale_get_keywords ( string $locale )

Gets the keywords for the input locale.

参数

locale

The locale to extract the keywords from

返回值

Associative array containing the keyword-value pairs for this locale

范例

Example #1 locale_get_keywords() example

<?php
$keywords_arr = locale_get_keywords( 'de_DE@currency=EUR;collation=PHONEBOOK' );
if ($keywords_arr) {
    foreach ($keywords_arr as $key => $value) {
        echo "$key = $value\n";
    }
}
?>

Example #2 OO example

<?php
$keywords_arr = Locale::getKeywords( 'de_DE@currency=EUR;collation=PHONEBOOK' );
if ($keywords_arr) {
    foreach( $keywords_arr as $key => $value){
        echo "$key = $value\n";
    }
}
?>

上例将输出：

collation = PHONEBOOK
currency = EUR

参见

  • locale_get_all_variants() - Gets the variants for the input locale

Locale::getDisplayVariant
Locale::getPrimaryLanguage
Locale


Gets the primary language for the input locale

Locale::getKeywords
Locale::getRegion
Locale
PHP 手册

Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Gets the primary language for the input locale

说明

Object oriented style

static string Locale::getPrimaryLanguage ( string $locale )

Procedural style

string locale_get_primary_language ( string $locale )

Gets the primary language for the input locale

参数

locale

The locale to extract the primary language code from

返回值

The language code associated with the language or NULL in case of error.

范例

Example #1 locale_get_primary_language() example

<?php
echo locale_get_primary_language('zh-Hant');
?>

Example #2 OO example

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

上例将输出：

zh

参见

  • locale_get_script() - Gets the script for the input locale
  • locale_get_region() - Gets the region for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale

Locale::getKeywords
Locale::getRegion
Locale


Gets the region for the input locale

Locale::getPrimaryLanguage
Locale::getScript
Locale
PHP 手册

Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_region — Gets the region for the input locale

说明

Object oriented style

static string Locale::getRegion ( string $locale )

Procedural style

string locale_get_region ( string $locale )

Gets the region for the input locale.

参数

locale

The locale to extract the region code from

返回值

The region subtag for the locale or NULL if not present

范例

Example #1 locale_get_region() example

<?php
echo locale_get_region('de-CH-1901');
?>

Example #2 OO example

<?php
echo Locale::getRegion('de-CH-1901');
?>

上例将输出：

CH

参见

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_script() - Gets the script for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale

Locale::getPrimaryLanguage
Locale::getScript
Locale


Gets the script for the input locale

Locale::getRegion
Locale::lookup
Locale
PHP 手册

Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_script — Gets the script for the input locale

说明

Object oriented style

static string Locale::getScript ( string $locale )

Procedural style

string locale_get_script ( string $locale )

Gets the script for the input locale.

参数

locale

The locale to extract the script code from

返回值

The script subtag for the locale or NULL if not present

范例

Example #1 locale_get_script() example

<?php
echo locale_get_script('sr-Cyrl');
?>

Example #2 OO example

<?php
echo Locale::getScript('sr-Cyrl');
?>

上例将输出：

Cyrl

参见

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_region() - Gets the region for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale

Locale::getRegion
Locale::lookup
Locale


Searches the language tag list for the best match to the language

Locale::getScript
Locale::parseLocale
Locale
PHP 手册

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Searches the language tag list for the best match to the language

说明

Object oriented style

static string Locale::lookup ( array $langtag , string $locale , string $default )

Procedural style

string locale_lookup ( array $langtag , string $locale , string $default )

Searches the items in langtag for the best match to the language range specified in locale according to RFC 4647's lookup algorithm.

参数

langtag

An array containing a list of language tags to compare to locale . Maximum 100 items allowed.

locale

The locale to use as the language range when matching.

default

The locale to use if no match is found.

返回值

The closest matching language tag or default value.

范例

Example #1 locale_lookup() example

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', 'en_US');
?>

Example #2 OO example

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', 'en_US');
?>

上例将输出：

de_de_1996

参见

  • locale_filter_matches() - Checks if a language tag filter matches with locale

Locale::getScript
Locale::parseLocale
Locale


Returns a key-value array of locale ID subtag elements.

Locale::lookup
Locale::setDefault
Locale
PHP 手册

Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Returns a key-value array of locale ID subtag elements.

说明

Object oriented style

static array Locale::parseLocale ( string $locale )

Procedural style

array locale_parse ( string $locale )

Returns a key-value array of locale ID subtag elements.

参数

locale

The locale to extract the subtag array from. Note: The 'variant' and 'private' subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.

返回值

Returns an array containing a list of key-value pairs, where the keys identify the particular locale ID subtags, and the values are the associated subtag values. The array will be ordered as the locale id subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the returned array will have variant0=>varX , variant1=>varY , variant2=>varZ

范例

Example #1 locale_parse() example

<?php
$arr = locale_parse('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Example #2 OO example

<?php
$arr = Locale::parseLocale('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

上例将输出：

language : sl , script : Latn , region : IT , variant0 : NEDIS ,

参见

  • locale_compose() - Returns a correctly ordered and delimited locale ID

Locale::lookup
Locale::setDefault
Locale


sets the default runtime locale

Locale::parseLocale
Normalizer
Locale
PHP 手册

Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — sets the default runtime locale

说明

Object oriented style

static bool Locale::setDefault ( string $locale )

Procedural style

bool locale_set_default ( string $locale )

Sets the default runtime locale to $locale. This changes the value of INTL global 'default_locale' locale identifier. UAX #35 extensions are accepted.

参数

locale

Is a BCP 47 compliant language tag containing the

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 locale_set_default() example

<?php
locale_set_default('de-DE');
echo locale_get_default();
?>

Example #2 OO example

<?php
Locale::setDefault('de-DE');
echo Locale::getDefault();
?>

上例将输出：

de-DE

参见

  • locale_get_default() - Gets the default locale value from the INTL global 'default_locale'

Locale::parseLocale
Normalizer
Locale


The Normalizer class

简介

Normalization is a process that involves transforming characters and sequences of characters into a formally-defined underlying representation. This process is most important when text needs to be compared for sorting and searching, but it is also used when storing text to ensure that the text is stored in a consistent representation.

The Unicode Consortium has defined a number of normalization forms reflecting the various needs of applications:

  • Normalization Form D (NFD) - Canonical Decomposition
  • Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition
  • Normalization Form KD (NFKD) - Compatibility Decomposition
  • Normalization Form KC (NFKC) - Compatibility Decomposition followed by Canonical Composition

The different forms are defined in terms of a set of transformations on the text, transformations that are expressed by both an algorithm and a set of data files.

Class synopsis

Normalizer
Normalizer {
/* Methods */
static bool isNormalized ( string $input [, string $form ] )
static string normalize ( string $input [, string $form ] )
}

预定义常量

The following constants define the normalization form used by the normalizer:

Normalizer::FORM_C (string)
Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition
Normalizer::FORM_D (string)
Normalization Form D (NFD) - Canonical Decomposition
Normalizer::FORM_KC (string)
Normalization Form KC (NFKC) - Compatibility Decomposition, followed by Canonical Composition
Normalizer::FORM_KD (string)
Normalization Form KD (NFKD) - Compatibility Decomposition
Normalizer::NONE (string)
No decomposition/composition
Normalizer::OPTION_DEFAULT (string)
Default normalization options

参见

  • » Unicode Normalization
  • » Unicode Normalization FAQ
  • » ICU User Guide - Normalization
  • » ICU API Reference - Normalization

Table of Contents

  • Normalizer::isNormalized — Checks if the provided string is already in the specified normalization form.
  • Normalizer::normalize — Normalizes the input provided and returns the normalized string
Locale::setDefault
Normalizer::isNormalized
intl


Checks if the provided string is already in the specified normalization form.

Normalizer
Normalizer::normalize
Normalizer
PHP 手册

Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Checks if the provided string is already in the specified normalization form.

说明

Object oriented style

static bool Normalizer::isNormalized ( string $input [, string $form ] )

Procedural style

bool normalizer_is_normalized ( string $input [, string $form ] )

Checks if the provided string is already in the specified normalization form.

参数

input

The input string to normalize

form

One of the normalization forms. Defaults to Normalizer::FORM_C.

返回值

TRUE if normalized, FALSE otherwise or if there an error

范例

Example #1 normalizer_is_normalized() example

<?php
$char_A_ring = "\xC3\x85";    // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( normalizer_is_normalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( normalizer_is_normalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Example #2 OO example

<?php
$char_A_ring = "\xC3\x85";    // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( Normalizer::isNormalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( Normalizer::isNormalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

上例将输出：

not normalized; normalized

参见

  • normalizer_normalize() - Normalizes the input provided and returns the normalized string

Normalizer
Normalizer::normalize
Normalizer


Normalizes the input provided and returns the normalized string

Normalizer::isNormalized
MessageFormatter
Normalizer
PHP 手册

Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Normalizes the input provided and returns the normalized string

说明

Object oriented style

static string Normalizer::normalize ( string $input [, string $form ] )

Procedural style

string normalizer_normalize ( string $input [, string $form ] )

Normalizes the input provided and returns the normalized string

参数

input

The input string to normalize

form

One of the normalization forms. If not provided the default is Normalizer::FORM_C.

返回值

The normalized string or NULL if an error occurred.

范例

Example #1 normalizer_normalize() example

<?php
$char_A_ring = "\xC3\x85";    // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = normalizer_normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Example #2 OO example

<?php
$char_A_ring = "\xC3\x85";    // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

上例将输出：

%C3%85 %C3%85

参见

  • normalizer_is_normalized() - Checks if the provided string is already in the specified normalization form.

Normalizer::isNormalized
MessageFormatter
Normalizer


The MessageFormatter class

简介

MessageFormatter is a concrete class that enables users to produce concatenated, language-neutral messages. The methods supplied in this class are used to build all the messages that are seen by end users.

The MessageFormatter class assembles messages from various fragments (such as text fragments, numbers, and dates) supplied by the program. Because of the MessageFormatter class, the program does not need to know the order of the fragments. The class uses the formatting specifications for the fragments to assemble them into a message that is contained in a single string within a resource bundle. For example, MessageFormatter enables you to print the phrase "Finished printing x out of y files..." in a manner that still allows for flexibility in translation.

Previously, an end user message was created as a sentence and handled as a string. This procedure created problems for localizers because the sentence structure, word order, number format and so on are very different from language to language. The language-neutral way to create messages keeps each part of the message separate and provides keys to the data. Using these keys, the MessageFormatter class can concatenate the parts of the message, localize them, and display a well-formed string to the end user.

MessageFormatter takes a set of objects, formats them, and then inserts the formatted strings into the pattern at the appropriate places. Choice formats can be used in conjunction with MessageFormatter to handle plurals, match numbers, and select from an array of items. Typically, the message format will come from resources and the arguments will be dynamically set at runtime.

Class synopsis

MessageFormatter
MessageFormatter {
/* Methods */
__construct ( string $locale , string $pattern )
MessageFormatter create ( string $locale , string $pattern )
static string formatMessage ( string $locale , string $pattern , array $args )
string format ( array $args )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ( void )
string getPattern ( void )
static array parseMessage ( string $locale , string $value )
array parse ( string $value )
bool setPattern ( string $pattern )
}

参见

  • » ICU formatting documentation
  • » ICU message formatting description
  • » ICU message formatters
  • » ICU choice formatters

Table of Contents

  • MessageFormatter::create — Constructs a new Message Formatter
  • MessageFormatter::formatMessage — Quick format message
  • MessageFormatter::format — Format the message
  • MessageFormatter::getErrorCode — Get the error code from last operation
  • MessageFormatter::getErrorMessage — Get the error text from the last operation
  • MessageFormatter::getLocale — Get the locale for which the formatter was created.
  • MessageFormatter::getPattern — Get the pattern used by the formatter
  • MessageFormatter::parseMessage — Quick parse input string
  • MessageFormatter::parse — Parse input string according to pattern
  • MessageFormatter::setPattern — Set the pattern used by the formatter
Normalizer::normalize
MessageFormatter::create
intl


Constructs a new Message Formatter

MessageFormatter
MessageFormatter::formatMessage
MessageFormatter
PHP 手册

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Constructs a new Message Formatter

说明

Object oriented style (method)

MessageFormatter MessageFormatter::create ( string $locale , string $pattern )

Object oriented style (constructor):

MessageFormatter::__construct ( string $locale , string $pattern )

Procedural style

MessageFormatter msgfmt_create ( string $locale , string $pattern )

Constructs a new Message Formatter

参数

locale

The locale to use when formatting arguments

pattern

The pattern string to stick arguments into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

返回值

The formatter object

范例

Example #1 msgfmt_create() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

上例将输出：

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

参见

  • msgfmt_format() - Format the message
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation

MessageFormatter
MessageFormatter::formatMessage
MessageFormatter


Quick format message

MessageFormatter::create
MessageFormatter::format
MessageFormatter
PHP 手册

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Quick format message

说明

Object oriented style

static string MessageFormatter::formatMessage ( string $locale , string $pattern , array $args )

Procedural style

string msgfmt_format_message ( string $locale , string $pattern , array $args )

Quick formatting function that formats the string without having to explicitly create the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

参数

locale

The locale to use for formatting locale-dependent parts

pattern

The pattern string to insert things into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

args

The array of values to insert into the format string

返回值

The formatted pattern string or FALSE if an error occurred

范例

Example #1 msgfmt_format_message() example

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum", array(4560, 123, 4560/123));

Example #2 OO example

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum", array(4560, 123, 4560/123));
?>

上例将输出：

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

参见

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation

MessageFormatter::create
MessageFormatter::format
MessageFormatter


Format the message

MessageFormatter::formatMessage
MessageFormatter::getErrorCode
MessageFormatter
PHP 手册

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Format the message

说明

Object oriented style

string MessageFormatter::format ( array $args )

Procedural style

string msgfmt_format ( MessageFormatter $fmt , array $args )

Format the message by substituting the data into the format string according to the locale rules

参数

fmt

The message formatter

args

Arguments to insert into the format string

返回值

The formatted string, or FALSE if an error occurred

范例

Example #1 msgfmt_format() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

上例将输出：

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen über 123 Bäume um 37,073 Affen pro Baum

参见

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_format_message() - Quick format message
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation

MessageFormatter::formatMessage
MessageFormatter::getErrorCode
MessageFormatter


Get the error code from last operation

MessageFormatter::format
MessageFormatter::getErrorMessage
MessageFormatter
PHP 手册

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Get the error code from last operation

说明

Object oriented style

int MessageFormatter::getErrorCode ( void )

Procedural style

int msgfmt_get_error_code ( MessageFormatter $fmt )

Get the error code from last operation.

参数

fmt

The message formatter

返回值

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

范例

Example #1 msgfmt_get_error_code() example

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

上例将输出：

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

参见

  • msgfmt_get_error_message() - Get the error text from the last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure

MessageFormatter::format
MessageFormatter::getErrorMessage
MessageFormatter


Get the error text from the last operation

MessageFormatter::getErrorCode
MessageFormatter::getLocale
MessageFormatter
PHP 手册

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Get the error text from the last operation

说明

Object oriented style

string MessageFormatter::getErrorMessage ( void )

Procedural style

string msgfmt_get_error_message ( MessageFormatter $fmt )

Get the error text from the last operation.

参数

fmt

The message formatter

返回值

Description of the last error.

范例

Example #1 msgfmt_get_error_message() example

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

上例将输出：

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

参见

  • msgfmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure

MessageFormatter::getErrorCode
MessageFormatter::getLocale
MessageFormatter


Get the locale for which the formatter was created.

MessageFormatter::getErrorMessage
MessageFormatter::getPattern
MessageFormatter
PHP 手册

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Get the locale for which the formatter was created.

说明

Object oriented style

string MessageFormatter::getLocale ( void )

Procedural style

string msgfmt_get_locale ( NumberFormatter $formatter )

Get the locale for which the formatter was created.

参数

formatter

The formatter resource

返回值

The locale name

范例

Example #1 msgfmt_get_locale() example

<?php
$fmt = msgfmt_create('en_US', "Number {0,number}");
echo msgfmt_get_locale($fmt);
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "Number {0,number}");
echo $fmt->getLocale();
?>

上例将输出：

en_US

参见

  • msgfmt_create() - Constructs a new Message Formatter

MessageFormatter::getErrorMessage
MessageFormatter::getPattern
MessageFormatter


Get the pattern used by the formatter

MessageFormatter::getLocale
MessageFormatter::parseMessage
MessageFormatter
PHP 手册

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Get the pattern used by the formatter

说明

Object oriented style

string MessageFormatter::getPattern ( void )

Procedural style

string msgfmt_get_pattern ( MessageFormatter $fmt )

Get the pattern used by the formatter

参数

fmt

The message formatter

返回值

The pattern string for this message formatter

范例

Example #1 msgfmt_get_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

上例将输出：

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

参见

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_set_pattern() - Set the pattern used by the formatter

MessageFormatter::getLocale
MessageFormatter::parseMessage
MessageFormatter


Quick parse input string

MessageFormatter::getPattern
MessageFormatter::parse
MessageFormatter
PHP 手册

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Quick parse input string

说明

Object oriented style

static array MessageFormatter::parseMessage ( string $locale , string $value )

Procedural style

array msgfmt_parse_message ( string $locale , string $value )

Parses input string without explicitly creating the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

参数

locale

The locale to use for parsing locale-dependent parts

value

The string to parse for items

返回值

An array containing items extracted, or FALSE on error

范例

Example #1 msgfmt_parse_message() example

<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum",
                            "4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($fmt);
?>

Example #2 OO example

<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum",
                            "4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($fmt);
?>

上例将输出：

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

参见

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format_message() - Quick format message
  • msgfmt_parse() - Parse input string according to pattern

MessageFormatter::getPattern
MessageFormatter::parse
MessageFormatter


Parse input string according to pattern

MessageFormatter::parseMessage
MessageFormatter::setPattern
MessageFormatter
PHP 手册

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Parse input string according to pattern

说明

Object oriented style

array MessageFormatter::parse ( string $value )

Procedural style

array msgfmt_parse ( MessageFormatter $fmt , string $value )

Parses input string and return any extracted items as an array.

参数

fmt

The message formatter

value

The string to parse

返回值

An array containing the items extracted, or FALSE on error

范例

Example #1 msgfmt_parse() example

<?php
$fmt = msgfmt_create('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = msgfmt_parse($fmt, "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = msgfmt_create('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
$res = msgfmt_parse($fmt, "4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($res);
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = $fmt->parse("4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = new MessageFormatter('de', "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum");
$res = $fmt->parse("4.560 Affen über 123 Bäume um 37,073 Affen pro Baum");
var_export($res);
?>

上例将输出：

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

参见

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format() - Format the message
  • msgfmt_parse_message() - Quick parse input string

MessageFormatter::parseMessage
MessageFormatter::setPattern
MessageFormatter


Set the pattern used by the formatter

MessageFormatter::parse
IntlDateFormatter
MessageFormatter
PHP 手册

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Set the pattern used by the formatter

说明

Object oriented style

bool MessageFormatter::setPattern ( string $pattern )

Procedural style

bool msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern )

Set the pattern used by the formatter

参数

fmt

The message formatter

pattern

The pattern string to use in this message formatter. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 msgfmt_set_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Example #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

上例将输出：

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

参见

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_get_pattern() - Get the pattern used by the formatter

MessageFormatter::parse
IntlDateFormatter
MessageFormatter


The IntlDateFormatter class

简介

Date Formatter is a concrete class that enables locale-dependent formatting/parsing of dates using pattern strings and/or canned patterns.

This class represents the ICU date formatting functionality. It allows users to display dates in a localized format or to parse strings into PHP date values using pattern strings and/or canned patterns.

Class synopsis

IntlDateFormatter
IntlDateFormatter {
/* Methods */
__construct ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )
static IntlDateFormatter create ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )
string format ( mixed $value )
int getCalendar ( void )
int getDateType ( void )
int getErrorCode ( void )
string getErrorMessage ( void )
string getLocale ([ int $which ] )
string getPattern ( void )
int getTimeType ( void )
string getTimeZoneId ( void )
bool isLenient ( void )
array localtime ( string $value [, int &$position ] )
int parse ( string $value [, int &$position ] )
bool setCalendar ( int $which )
bool setLenient ( bool $lenient )
bool setPattern ( string $pattern )
bool setTimeZoneId ( string $zone )
}

参见

  • » ICU Date formatter

预定义常量

These constants are used to specify different formats in the constructor for DateType and TimeType.

IntlDateFormatter::NONE (string)
Do not include this element
IntlDateFormatter::FULL (string)
Completely specified style (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG (string)
Long style (January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM (string)
Medium style (Jan 12, 1952)
IntlDateFormatter::SHORT (string)
Most abbreviated style, only essential data (12/13/52 or 3:30pm)

The following int constants are used to specify the calendar. These calendars are all based directly on the Gregorian calendar. Non-Gregorian calendars need to be specified in locale. Examples might include locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL (string)
Non-Gregorian Calendar
IntlDateFormatter::GREGORIAN (string)
Gregorian Calendar

Table of Contents

  • IntlDateFormatter::create — Create a date formatter
  • IntlDateFormatter::format — Format the date/time value as a string
  • IntlDateFormatter::getCalendar — Get the calendar used for the IntlDateFormatter
  • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Get the error code from last operation
  • IntlDateFormatter::getErrorMessage — Get the error text from the last operation.
  • IntlDateFormatter::getLocale — Get the locale used by formatter
  • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
  • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
  • IntlDateFormatter::localtime — Parse string to a field-based time value
  • IntlDateFormatter::parse — Parse string to a timestamp value
  • IntlDateFormatter::setCalendar — sets the calendar used to the appropriate calendar, which must be
  • IntlDateFormatter::setLenient — Set the leniency of the parser
  • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZoneId — Sets the time zone to use
MessageFormatter::setPattern
IntlDateFormatter::create
intl


Create a date formatter

IntlDateFormatter
IntlDateFormatter::format
IntlDateFormatter
PHP 手册

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Create a date formatter

说明

Object oriented style

static IntlDateFormatter IntlDateFormatter::create ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )

Object oriented style (constructor)

IntlDateFormatter::__construct ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )

Procedural style

IntlDateFormatter datefmt_create ( string $locale , int $datetype , int $timetype [, string $timezone [, int $calendar [, string $pattern ]]] )

Create a date formatter

参数

locale

Locale to use when formatting or parsing.

datetype

Date type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants.

timetype

Time type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants.

timezone

Time zone ID, default is system default.

calendar

Calendar to use for formatting or parsing; default is Gregorian. This is one of the IntlDateFormatter calendar constants.

pattern

Optional pattern to use when formatting or parsing

返回值

范例

Example #1 datefmt_create() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Second Formatted output with pattern is ".$fmt->format(0);
?>

上例将输出：

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

参见

  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.

IntlDateFormatter
IntlDateFormatter::format
IntlDateFormatter


Format the date/time value as a string

IntlDateFormatter::create
IntlDateFormatter::getCalendar
IntlDateFormatter
PHP 手册

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Format the date/time value as a string

说明

Object oriented style

string IntlDateFormatter::format ( mixed $value )

Procedural style

string datefmt_format ( IntlDateFormatter $fmt , mixed $value )

Formats the time value as a string.

参数

fmt

The date formatter resource.

value

Value to format. Can be integer for an Unix timestamp value (seconds since epoch, UTC) or array for a localtime() array.

返回值

The formatted string or, if an error occurred, FALSE.

范例

Example #1 datefmt_format() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Second Formatted output with pattern is ".$fmt->format(0);
?>

上例将输出：

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

参见

  • datefmt_create() - Create a date formatter
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.

IntlDateFormatter::create
IntlDateFormatter::getCalendar
IntlDateFormatter


Get the calendar used for the IntlDateFormatter

IntlDateFormatter::format
IntlDateFormatter::getDateType
IntlDateFormatter
PHP 手册

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Get the calendar used for the IntlDateFormatter

说明

Object oriented style

int IntlDateFormatter::getCalendar ( void )

Procedural style

int datefmt_get_calendar ( IntlDateFormatter $fmt )

参数

fmt

The formatter resource

返回值

The calendar being used by the formatter.

范例

Example #1 datefmt_get_calendar() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "calendar of the formatter is : ".datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt,IntlDateFormatter::TRADITIONAL);
echo "Now calendar of the formatter is : ".datefmt_get_calendar($fmt);
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "calendar of the formatter is : ".$fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo "Now calendar of the formatter is : ".$fmt->getCalendar();

?>

上例将输出：

calendar of the formatter is : 1
Now calendar of the formatter is : 0

参见

  • datefmt_set_calendar() - sets the calendar used to the appropriate calendar, which must be
  • datefmt_create() - Create a date formatter

IntlDateFormatter::format
IntlDateFormatter::getDateType
IntlDateFormatter


Get the datetype used for the IntlDateFormatter

IntlDateFormatter::getCalendar
IntlDateFormatter::getErrorCode
IntlDateFormatter
PHP 手册

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Get the datetype used for the IntlDateFormatter

说明

Object oriented style

int IntlDateFormatter::getDateType ( void )

Procedural style

int datefmt_get_datetype ( IntlDateFormatter $fmt )

Returns date type used by the formatter.

参数

fmt

The formatter resource.

返回值

The current date type value of the formatter.

范例

Example #1 datefmt_get_datetype() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "datetype of the formatter is : ".datefmt_get_datetype($fmt);
echo "First Formatted output with datetype is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::SHORT,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Now datetype of the formatter is : ".datefmt_get_datetype($fmt);
echo "Second Formatted output with datetype is ".datefmt_format( $fmt , 0);

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo "datetype of the formatter is : ".$fmt->getDateType();
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::SHORT,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo "Now datetype of the formatter is : ".$fmt->getDateType();
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

?>

上例将输出：

datetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now datetype of the formatter is : 2
Second Formatted output is 12/31/69 4:00:00 PM PT

参见

  • datefmt_get_timetype() - Get the timetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::getCalendar
IntlDateFormatter::getErrorCode
IntlDateFormatter


Get the error code from last operation

IntlDateFormatter::getDateType
IntlDateFormatter::getErrorMessage
IntlDateFormatter
PHP 手册

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Get the error code from last operation

说明

Object oriented style

int IntlDateFormatter::getErrorCode ( void )

Procedural style

int datefmt_get_error_code ( IntlDateFormatter $fmt )

Get the error code from last operation. Returns error code from the last number formatting operation.

参数

fmt

The formatter resource.

返回值

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

范例

Example #1 datefmt_get_error_code() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str = datefmt_format($fmt);
if(!$str) {
    echo "ERROR: ".datefmt_get_error_message($fmt) . " (" . datefmt_get_error_code($fmt) . ")\n";
}
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str = $fmt->format();
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

上例将输出：

ERROR: U_ZERO_ERROR (0)

参见

  • datefmt_get_error_message() - Get the error text from the last operation.
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure

IntlDateFormatter::getDateType
IntlDateFormatter::getErrorMessage
IntlDateFormatter


Get the error text from the last operation.

IntlDateFormatter::getErrorCode
IntlDateFormatter::getLocale
IntlDateFormatter
PHP 手册

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Get the error text from the last operation.

说明

Object oriented style

string IntlDateFormatter::getErrorMessage ( void )

Procedural style

string datefmt_get_error_message ( IntlDateFormatter $fmt )

Get the error text from the last operation.

参数

fmt

The formatter resource.

返回值

Description of the last error.

范例

Example #1 datefmt_get_error_message() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str = datefmt_format($fmt);
if(!$str) {
    echo "ERROR: ".datefmt_get_error_message($fmt) . " (" . datefmt_get_error_code($fmt) . ")\n";
}
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$str = $fmt->format();
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}

?>

上例将输出：

ERROR: U_ZERO_ERROR (0)

参见

  • datefmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure

IntlDateFormatter::getErrorCode
IntlDateFormatter::getLocale
IntlDateFormatter


Get the locale used by formatter

IntlDateFormatter::getErrorMessage
IntlDateFormatter::getPattern
IntlDateFormatter
PHP 手册

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Get the locale used by formatter

说明

Object oriented style

string IntlDateFormatter::getLocale ([ int $which ] )

Procedural style

string datefmt_get_locale ( IntlDateFormatter $fmt [, int $which ] )

Get locale used by the formatter.

参数

fmt

The formatter resource

hich

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

返回值

the locale of this formatter or 'false' if error

范例

Example #1 datefmt_get_locale() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "locale of the formatter is : ".datefmt_get_locale($fmt);
echo "First Formatted output is ".datefmt_format( $fmt , 0);
echo "locale of the formatter is : ".datefmt_get_locale($fmt);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "locale of the formatter is : ".$fmt->getLocale();
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "locale of the formatter is : ".$fmt->getLocale();
echo "Second Formatted output is ".$fmt->format(0);

?>

上例将输出：

locale of the formatter is : en
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
locale of the formatter is : de
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

参见

  • datefmt_create() - Create a date formatter

IntlDateFormatter::getErrorMessage
IntlDateFormatter::getPattern
IntlDateFormatter


Get the pattern used for the IntlDateFormatter

IntlDateFormatter::getLocale
IntlDateFormatter::getTimeType
IntlDateFormatter
PHP 手册

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Get the pattern used for the IntlDateFormatter

说明

Object oriented style

string IntlDateFormatter::getPattern ( void )

Procedural style

string datefmt_get_pattern ( IntlDateFormatter $fmt )

Get pattern used by the formatter.

参数

fmt

The formatter resource.

返回值

The pattern string being used to format/parse.

范例

Example #1 datefmt_get_pattern() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "pattern of the formatter is : ".datefmt_get_pattern($fmt);
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo "Now pattern of the formatter is : ".datefmt_get_pattern($fmt);
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN,"MM/dd/yyyy"  );
echo "pattern of the formatter is : ".$fmt->getPattern();
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo "Now pattern of the formatter is : ".$fmt->getPattern();
echo "Second Formatted output is ".datefmt_format( $fmt , 0);
?>

上例将输出：

pattern of the formatter is : MM/dd/yyyy
First Formatted output is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output is 19690031 04:00:00 PST

参见

  • datefmt_set_pattern() - Set the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::getLocale
IntlDateFormatter::getTimeType
IntlDateFormatter


Get the timetype used for the IntlDateFormatter

IntlDateFormatter::getPattern
IntlDateFormatter::getTimeZoneId
IntlDateFormatter
PHP 手册

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Get the timetype used for the IntlDateFormatter

说明

Object oriented style

int IntlDateFormatter::getTimeType ( void )

Procedural style

int datefmt_get_timetype ( IntlDateFormatter $fmt )

Return time type used by the formatter.

参数

fmt

The formatter resource.

返回值

The current date type value of the formatter.

范例

Example #1 datefmt_get_timetype() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "timetype of the formatter is : ".datefmt_get_timetype($fmt);
echo "First Formatted output with timetype is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::SHORT,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Now timetype of the formatter is : ".datefmt_get_timetype($fmt);
echo "Second Formatted output with timetype is ".datefmt_format( $fmt , 0);

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo "timetype of the formatter is : ".$fmt->getTimeType();
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::SHORT,'America/Los_Angeles',IntlDateFormatter::GREGORIAN);
echo "Now timetype of the formatter is : ".$fmt->getTimeType();
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

?>

上例将输出：

timetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now timetype of the formatter is : 3
Second Formatted output is Wednesday, December 31, 1969 4:00 PM

参见

  • datefmt_get_datetype() - Get the datetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::getPattern
IntlDateFormatter::getTimeZoneId
IntlDateFormatter


Get the timezone-id used for the IntlDateFormatter

IntlDateFormatter::getTimeType
IntlDateFormatter::isLenient
IntlDateFormatter
PHP 手册

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Get the timezone-id used for the IntlDateFormatter

说明

Object oriented style

string IntlDateFormatter::getTimeZoneId ( void )

Procedural style

string datefmt_get_timezone_id ( IntlDateFormatter $fmt )

Get the timezone-id used for the IntlDateFormatter.

参数

fmt

The formatter resource.

返回值

ID string for the time zone used by this formatter.

范例

Example #1 datefmt_get_timezone_id() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "timezone_id of the formatter is : ".datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt,'CN');
echo "Now timezone_id of the formatter is : ".datefmt_get_timezone_id($fmt);

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "timezone_id of the formatter is : ".$fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo "Now timezone_id of the formatter is : ".$fmt->getTimezoneId();

?>

上例将输出：

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

参见

  • datefmt_set_timezone_id() - Sets the time zone to use
  • datefmt_create() - Create a date formatter

IntlDateFormatter::getTimeType
IntlDateFormatter::isLenient
IntlDateFormatter


Get the lenient used for the IntlDateFormatter

IntlDateFormatter::getTimeZoneId
IntlDateFormatter::localtime
IntlDateFormatter
PHP 手册

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Get the lenient used for the IntlDateFormatter

说明

Object oriented style

bool IntlDateFormatter::isLenient ( void )

Procedural style

bool datefmt_is_lenient ( IntlDateFormatter $fmt )

Check if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly.

参数

fmt

The formatter resource.

返回值

TRUE if parser is lenient, FALSE if parser is strict. By default the parser is strict.

范例

Example #1 datefmt_is_lenient() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGO
RIAN  ,"dd/mm/yyyy");
echo "lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "Now lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GRE
GORIAN,"dd/mm/yyyy"  );
echo "lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
$fmt->parse("35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "Now lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
$fmt->parse("35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}

?>

上例将输出：

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : -2147483
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is : Error_msg is : Date parsing failed: U_PARSE_ERROR Error_code is : 9

参见

  • datefmt_set_lenient() - Set the leniency of the parser
  • datefmt_create() - Create a date formatter

IntlDateFormatter::getTimeZoneId
IntlDateFormatter::localtime
IntlDateFormatter


Parse string to a field-based time value

IntlDateFormatter::isLenient
IntlDateFormatter::parse
IntlDateFormatter
PHP 手册

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Parse string to a field-based time value

说明

Object oriented style

array IntlDateFormatter::localtime ( string $value [, int &$position ] )

Procedural style

array datefmt_localtime ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Converts string $value to a field-based time value ( an array of various fields), starting at $parse_pos and consuming as much of the input value as possible.

参数

fmt

The formatter resource

value

string to convert to a time

position

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended . If $parse_pos > strlen($value), the parse fails immediately.

返回值

Localtime compatible array of integers : contains 24 hour clock value in tm_hour field

范例

Example #1 datefmt_localtime() example

<?php

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$arr = datefmt_localtime( $fmt, "Wednesday, December 31, 1969 4:00:00 PM PT",0);
echo "First parsed output is ";
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
$arr = $fmt->localtime( "Wednesday, December 31, 1969 4:00:00 PM PT",0);
echo "First parsed output is ";
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

上例将输出：

First parsed output is tm_sec : 0 , tm_min : 0 , tm_hour : 16 , tm_year : 1969 ,
tm_mday : 31 , tm_wday : 4 , tm_yday : 365 , tm_mon : 11 , tm_isdst : 0 ,

参见

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.

IntlDateFormatter::isLenient
IntlDateFormatter::parse
IntlDateFormatter


Parse string to a timestamp value

IntlDateFormatter::localtime
IntlDateFormatter::setCalendar
IntlDateFormatter
PHP 手册

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Parse string to a timestamp value

说明

Object oriented style

int IntlDateFormatter::parse ( string $value [, int &$position ] )

Procedural style

int datefmt_parse ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Converts string $value to an incremental time value, starting at $parse_pos and consuming as much of the input value as possible.

参数

fmt

The formatter resource

value

string to convert to a time

position

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended (and the error occurred). This variable will contain the end position if the parse fails. If $parse_pos > strlen($value), the parse fails immediately.

返回值

timestamp parsed value

范例

Example #1 datefmt_parse() example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First parsed output is ".$fmt->parse("Wednesday, December 31, 1969 4:00:00 PM PT");
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second parsed output is ".$fmt->parse("Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00");
?>

Example #2 OO example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First parsed output is ".datefmt_parse( $fmt ,  "Wednesday, December 20, 1989 4:00:00 PM PT");
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second parsed output is ".datefmt_parse( $fmt , "Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00");
?>

上例将输出：

First parsed output is 630201600
Second parsed output is 630201600

参见

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_localtime() - Parse string to a field-based time value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.

IntlDateFormatter::localtime
IntlDateFormatter::setCalendar
IntlDateFormatter


sets the calendar used to the appropriate calendar, which must be

IntlDateFormatter::parse
IntlDateFormatter::setLenient
IntlDateFormatter
PHP 手册

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — sets the calendar used to the appropriate calendar, which must be

说明

Object oriented style

bool IntlDateFormatter::setCalendar ( int $which )

Procedural style

bool datefmt_set_calendar ( IntlDateFormatter $fmt , int $which )

Sets the calendar used by the formatter.

参数

fmt

The formatter resource.

which

The calendar to use. Default is IntlDateFormatter::GREGORIAN.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 datefmt_set_calendar() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "calendar of the formatter is : ".datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt,IntlDateFormatter::TRADITIONAL);
echo "Now calendar of the formatter is : ".datefmt_get_calendar($fmt);
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "calendar of the formatter is : ".$fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo "Now calendar of the formatter is : ".$fmt->getCalendar();
?>

上例将输出：

calendar of the formatter is : 1
Now calendar of the formatter is : 0

参见

  • datefmt_get_calendar() - Get the calendar used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::parse
IntlDateFormatter::setLenient
IntlDateFormatter


Set the leniency of the parser

IntlDateFormatter::setCalendar
IntlDateFormatter::setPattern
IntlDateFormatter
PHP 手册

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Set the leniency of the parser

说明

Object oriented style

bool IntlDateFormatter::setLenient ( bool $lenient )

Procedural style

bool datefmt_set_lenient ( IntlDateFormatter $fmt , bool $lenient )

Define if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly. Enabling lenient parsing allows the parser to accept otherwise flawed date or time patterns, parsing as much as possible to obtain a value. Extra space, unrecognized tokens, or invalid values ("February 30th") are not accepted.

参数

fmt

The formatter resource

lenient

Sets whether the parser is lenient or not, default is FALSE (strict).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 datefmt_set_lenient() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGO
RIAN  ,"dd/mm/yyyy");
echo "lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "Now lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GRE
GORIAN,"dd/mm/yyyy"  );
echo "lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
$fmt->parse("35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "Now lenient of the formatter is : ";
if( $fmt->isLenient() ){
        echo('TRUE');
}else{
        echo('FALSE');
}
$fmt->parse("35/13/1971");
echo "\n Trying to do parse('35/13/1971').Result is : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
        echo "Error_msg is : ".intl_get_error_message();
        echo "Error_code is : ".intl_get_error_code();
}

?>

上例将输出：

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : -2147483
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is : Error_msg is : Date parsing failed: U_PARSE_ERROR Error_code is : 9

参见

  • datefmt_is_lenient() - Get the lenient used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::setCalendar
IntlDateFormatter::setPattern
IntlDateFormatter


Set the pattern used for the IntlDateFormatter

IntlDateFormatter::setLenient
IntlDateFormatter::setTimeZoneId
IntlDateFormatter
PHP 手册

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Set the pattern used for the IntlDateFormatter

说明

Object oriented style

bool IntlDateFormatter::setPattern ( string $pattern )

Procedural style

bool datefmt_set_pattern ( IntlDateFormatter $fmt , string $pattern )

Set the pattern used for the IntlDateFormatter.

参数

fmt

The formatter resource.

pattern

New pattern string to use.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Bad formatstrings are usually the cause of the failure.

范例

Example #1 datefmt_set_pattern() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "pattern of the formatter is : ".datefmt_get_pattern($fmt);
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo "Now pattern of the formatter is : ".datefmt_get_pattern($fmt);
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);

?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN,"MM/dd/yyyy"  );
echo "pattern of the formatter is : ".$fmt->getPattern();
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo "Now pattern of the formatter is : ".$fmt->getPattern();
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

?>

上例将输出：

pattern of the formatter is : MM/dd/yyyy
First Formatted output with pattern is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output with pattern is 19690031 04:00:00 PST

参见

  • datefmt_get_pattern() - Get the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::setLenient
IntlDateFormatter::setTimeZoneId
IntlDateFormatter


Sets the time zone to use

IntlDateFormatter::setPattern
intl 函数
IntlDateFormatter
PHP 手册

IntlDateFormatter::setTimeZoneId

datefmt_set_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setTimeZoneId -- datefmt_set_timezone_id — Sets the time zone to use

说明

Object oriented style

bool IntlDateFormatter::setTimeZoneId ( string $zone )

Procedural style

bool datefmt_set_timezone_id ( IntlDateFormatter $fmt , string $zone )

Sets the time zone to use.

参数

fmt

The formatter resource.

zone

The time zone ID string of the time zone to use. If NULL or the empty string, the default time zone for the runtime is used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 datefmt_set_timezone_id() example

<?php
$fmt = datefmt_create(  "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "timezone_id of the formatter is : ".datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt,'CN');
echo "Now timezone_id of the formatter is : ".datefmt_get_timezone_id($fmt);
?>

Example #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "timezone_id of the formatter is : ".$fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo "Now timezone_id of the formatter is : ".$fmt->getTimezoneId();

?>

上例将输出：

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

参见

  • datefmt_get_timezone_id() - Get the timezone-id used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter

IntlDateFormatter::setPattern
intl 函数
IntlDateFormatter


intl 函数

Table of Contents

  • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
  • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strlen — Get string length in grapheme units
  • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • grapheme_substr — Return part of a string
  • intl_error_name — Get symbolic name for a given error code
  • intl_get_error_code — Get the last error code
  • intl_get_error_message — Get description of the last error
  • intl_is_failure — Check whether the given error code indicates failure
IntlDateFormatter::setTimeZoneId
grapheme_extract
intl


Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

intl 函数
grapheme_stripos
intl 函数
PHP 手册

grapheme_extract

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

说明

Procedural style

string grapheme_extract ( string $haystack , int $size [, int $extract_type [, int $start [, int &$next ]]] )

Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

参数

haystack

String to search.

size

Maximum number items - based on the $extract_type - to return.

extract_type

Defines the type of units referred to by the $size parameter:

  • GRAPHEME_EXTR_COUNT (default) - $size is the number of default grapheme clusters to extract.
  • GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes returned.
  • GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8 characters returned.

start

Starting position in $haystack in bytes - if given, it must be zero or a positive value that is less than or equal to the length of $haystack in bytes. The default is zero. If $start does not point to the first byte of a UTF-8 character, the start position is moved to the next character boundary.

next

Reference to a value that will be set to the next starting position. When the call returns, this may point to the first byte position past the end of the string.

返回值

A string starting at offset $start and ending on a default grapheme cluster boundary that conforms to the $size and $extract_type specified.

范例

Example #1 grapheme_extract() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

上例将输出：

o%CC%88

参见

  • grapheme_substr() - Return part of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

intl 函数
grapheme_stripos
intl 函数


Find position (in grapheme units) of first occurrence of a case-insensitive string

grapheme_extract
grapheme_stristr
intl 函数
PHP 手册

grapheme_stripos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string

说明

Procedural style

int grapheme_stripos ( string $haystack , string $needle [, int $offset ] )

Find position (in grapheme units) of first occurrence of a case-insensitive string

参数

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in haystack to start searching as an offset in grapheme units (not bytes or characters). If not given, the default is zero. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

返回值

Returns the position as an integer. If needle is not found, grapheme_stripos() will return boolean FALSE.

范例

Example #1 grapheme_stripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

上例将输出：

2

参见

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_extract
grapheme_stristr
intl 函数


Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.

grapheme_stripos
grapheme_strlen
intl 函数
PHP 手册

grapheme_stristr

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.

说明

Procedural style

string grapheme_stristr ( string $haystack , string $needle [, bool $before_needle ] )

Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.

参数

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

before_needle

If TRUE (the default is FALSE), grapheme_strstr() returns the part of the haystack before the first occurrence of the needle.

返回值

Returns the portion of $haystack, or FALSE if $needle is not found.

范例

Example #1 grapheme_stristr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_O_diaeresis_nfd));

?>

上例将输出：

o%CC%88a%CC%8A

参见

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_stripos
grapheme_strlen
intl 函数


Get string length in grapheme units

grapheme_stristr
grapheme_strpos
intl 函数
PHP 手册

grapheme_strlen

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strlen — Get string length in grapheme units

说明

Procedural style

int grapheme_strlen ( string $input )

Get string length in grapheme units (not bytes or characters)

参数

input

The string being measured for length. It must be a valid UTF-8 string.

返回值

The length of the string on success, and 0 if the string is empty.

范例

Example #1 grapheme_strlen() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

上例将输出：

6

参见

  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_stristr
grapheme_strpos
intl 函数


Find position (in grapheme units) of first occurrence of a string

grapheme_strlen
grapheme_strripos
intl 函数
PHP 手册

grapheme_strpos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strpos — Find position (in grapheme units) of first occurrence of a string

说明

Procedural style

int grapheme_strpos ( string $haystack , string $needle [, int $offset ] )

Find position (in grapheme units) of first occurrence of a string

参数

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). If not given, the default is zero. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

返回值

Returns the position as an integer. If needle is not found, strpos() will return boolean FALSE.

范例

Example #1 grapheme_strpos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strpos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

上例将输出：

2

参见

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_strlen
grapheme_strripos
intl 函数


Find position (in grapheme units) of last occurrence of a case-insensitive string

grapheme_strpos
grapheme_strrpos
intl 函数
PHP 手册

grapheme_strripos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string

说明

Procedural style

int grapheme_strripos ( string $haystack , string $needle [, int $offset ] )

Find position (in grapheme units) of last occurrence of a case-insensitive string

参数

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). If not given, the default is zero. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

返回值

Returns the position as an integer. If needle is not found, grapheme_strripos() will return boolean FALSE.

范例

Example #1 grapheme_strripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_strripos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

上例将输出：

2

参见

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_strpos
grapheme_strrpos
intl 函数


Find position (in grapheme units) of last occurrence of a string

grapheme_strripos
grapheme_strstr
intl 函数
PHP 手册

grapheme_strrpos

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string

说明

Procedural style

int grapheme_strrpos ( string $haystack , string $needle [, int $offset ] )

Find position (in grapheme units) of last occurrence of a string

参数

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). If not given, the default is zero. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

返回值

Returns the position as an integer. If needle is not found, grapheme_strrpos() will return boolean FALSE.

范例

Example #1 grapheme_strrpos() example

< ?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strrpos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

上例将输出：

2

参见

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_strripos
grapheme_strstr
intl 函数


Returns part of haystack string from the first occurrence of needle to the end of haystack.

grapheme_strrpos
grapheme_substr
intl 函数
PHP 手册

grapheme_strstr

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack.

说明

Procedural style

string grapheme_strstr ( string $haystack , string $needle [, bool $before_needle ] )

Returns part of haystack string from the first occurrence of needle to the end of haystack.

参数

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

before_needle

If TRUE (the default is FALSE), grapheme_strstr() returns the part of the haystack before the first occurrence of the needle.

返回值

Returns the portion of string, or FALSE if needle is not found.

范例

Example #1 grapheme_strstr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_o_diaeresis_nfd));

?>

上例将输出：

o%CC%88a%CC%8A

参见

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_strrpos
grapheme_substr
intl 函数


Return part of a string

grapheme_strstr
intl_error_name
intl 函数
PHP 手册

grapheme_substr

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

grapheme_substr — Return part of a string

说明

Procedural style

int grapheme_substr ( string $string , int $start [, int $length ] )

Return part of a string

参数

string

The input string. Must be valid UTF-8.

start

Start position in default grapheme units. If $start is non-negative, the returned string will start at the $start'th position in $string, counting from zero. If $start is negative, the returned string will start at the $start'th grapheme unit from the end of string.

length

Length in grapheme units. If $length is given and is positive, the string returned will contain at most $length grapheme units beginning from $start (depending on the length of string). If $string is less than or equal to $start grapheme units long, FALSE will be returned. If $length is given and is negative, then that many grapheme units will be omitted from the end of string (after the start position has been calculated when a start is negative). If $start denotes a position beyond this truncation, an empty string will be returned.

返回值

Returns the extracted part of $string.

范例

Example #1 grapheme_substr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

上例将输出：

a%CC%8Abco%CC%88

参见

  • grapheme_extract() - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries

grapheme_strstr
intl_error_name
intl 函数


Get symbolic name for a given error code

grapheme_substr
intl_get_error_code
intl 函数
PHP 手册

intl_error_name

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_error_name — Get symbolic name for a given error code

说明

string intl_error_name ( int $error_code )

Return ICU error code name.

参数

error_code

ICU error code.

返回值

The returned string will be the same as the name of the error code constant.

范例

Example #1 intl_error_name() example

<?php
$coll     = collator_create( 'en_RU' );
$err_code = collator_get_error_code( $coll );

printf( "Symbolic name for %d is %s\n.", $err_code, intl_error_name( $err_code ) );
?>

上例的输出类似于：

Symbolic name for -128 is U_USING_FALLBACK_WARNING.

参见

  • intl_is_failure() - Check whether the given error code indicates failure
  • intl_get_error_code() - Get the last error code
  • intl_get_error_message() - Get description of the last error

grapheme_substr
intl_get_error_code
intl 函数


Get the last error code

intl_error_name
intl_get_error_message
intl 函数
PHP 手册

intl_get_error_code

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_get_error_code — Get the last error code

说明

int intl_get_error_code ( void )

Useful to handle errors occurred in static methods when there's no object to get error code from.

返回值

Error code returned by the last API function call.

范例

Example #1 intl_get_error_code() example

<?php
$coll = collator_create( '<bad_param>' );
if( !$coll ) {
    handle_error( intl_get_error_code() );
}
?>

参见

  • intl_is_failure() - Check whether the given error code indicates failure
  • intl_error_name() - Get symbolic name for a given error code
  • intl_get_error_message() - Get description of the last error
  • collator_get_error_code() - Get collator's last error code
  • numfmt_get_error_code() - Get formatter's last error code.

intl_error_name
intl_get_error_message
intl 函数


Get description of the last error

intl_get_error_code
intl_is_failure
intl 函数
PHP 手册

intl_get_error_message

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_get_error_message — Get description of the last error

说明

string intl_get_error_message ( void )

Get error message from last internationalization function called.

返回值

Description of an error occurred in the last API function call.

范例

Example #1 intl_get_error_message() example

<?php
if( Collator::getAvailableLocales() === false ) {
    show_error( intl_get_error_message() );
}
?>

参见

  • intl_error_name() - Get symbolic name for a given error code
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure
  • collator_get_error_message() - Get text for collator's last error code
  • numfmt_get_error_message() - Get formatter's last error message.

intl_get_error_code
intl_is_failure
intl 函数


Check whether the given error code indicates failure

intl_get_error_message
Multibyte String
intl 函数
PHP 手册

intl_is_failure

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

intl_is_failure — Check whether the given error code indicates failure

说明

bool intl_is_failure ( int $error_code )

参数

error_code

is a value that returned by functions: intl_get_error_code(), collator_get_error_code() .

返回值

TRUE if it the code indicates some failure, and FALSE in case of success or a warning.

范例

Example #1 intl_is_failure() example

<?php
function check( $err_code )
{
    var_export( intl_is_failure( $err_code ) );
    echo "\n";
}

check( U_ZERO_ERROR );
check( U_USING_FALLBACK_WARNING );
check( U_ILLEGAL_ARGUMENT_ERROR );
?>

上例的输出类似于：

false
false
true

参见

  • intl_get_error_code() - Get the last error code
  • collator_get_error_code() - Get collator's last error code
  • Collator-getErrorCode() - Get collator's last error code

intl_get_error_message
Multibyte String
intl 函数


Multibyte String

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Summaries of supported encodings
  • Basics of Japanese multi-byte encodings
  • HTTP Input and Output
  • Supported Character Encodings
  • Function Overloading Feature
  • PHP Character Encoding Requirements
  • Multibyte String 函数
    • mb_check_encoding — Check if the string is valid for the specified encoding
    • mb_convert_case — Perform case folding on a string
    • mb_convert_encoding — Convert character encoding
    • mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
    • mb_convert_variables — Convert character code in variable(s)
    • mb_decode_mimeheader — Decode string in MIME header field
    • mb_decode_numericentity — Decode HTML numeric string reference to character
    • mb_detect_encoding — Detect character encoding
    • mb_detect_order — Set/Get character encoding detection order
    • mb_encode_mimeheader — Encode string for MIME header
    • mb_encode_numericentity — Encode character to HTML numeric string reference
    • mb_ereg_match — Regular expression match for multibyte string
    • mb_ereg_replace — Replace regular expression with multibyte support
    • mb_ereg_search_getpos — Returns start point for next regular expression match
    • mb_ereg_search_getregs — Retrieve the result from the last multibyte regular expression match
    • mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match
    • mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
    • mb_ereg_search_regs — Returns the matched part of a multibyte regular expression
    • mb_ereg_search_setpos — Set start point of next regular expression match
    • mb_ereg_search — Multibyte regular expression match for predefined multibyte string
    • mb_ereg — Regular expression match with multibyte support
    • mb_eregi_replace — Replace regular expression with multibyte support ignoring case
    • mb_eregi — Regular expression match ignoring case with multibyte support
    • mb_get_info — Get internal settings of mbstring
    • mb_http_input — Detect HTTP input character encoding
    • mb_http_output — Set/Get HTTP output character encoding
    • mb_internal_encoding — Set/Get internal character encoding
    • mb_language — Set/Get current language
    • mb_list_encodings — Returns an array of all supported encodings
    • mb_output_handler — Callback function converts character encoding in output buffer
    • mb_parse_str — Parse GET/POST/COOKIE data and set global variable
    • mb_preferred_mime_name — Get MIME charset string
    • mb_regex_encoding — Returns current encoding for multibyte regex as string
    • mb_regex_set_options — Set/Get the default options for mbregex functions
    • mb_send_mail — Send encoded mail
    • mb_split — Split multibyte string using regular expression
    • mb_strcut — Get part of string
    • mb_strimwidth — Get truncated string with specified width
    • mb_stripos — Finds position of first occurrence of a string within another, case insensitive
    • mb_stristr — Finds first occurrence of a string within another, case insensitive
    • mb_strlen — Get string length
    • mb_strpos — Find position of first occurrence of string in a string
    • mb_strrchr — Finds the last occurrence of a character in a string within another
    • mb_strrichr — Finds the last occurrence of a character in a string within another, case insensitive
    • mb_strripos — Finds position of last occurrence of a string within another, case insensitive
    • mb_strrpos — Find position of last occurrence of a string in a string
    • mb_strstr — Finds first occurrence of a string within another
    • mb_strtolower — Make a string lowercase
    • mb_strtoupper — Make a string uppercase
    • mb_strwidth — Return width of string
    • mb_substitute_character — Set/Get substitution character
    • mb_substr_count — Count the number of substring occurrences
    • mb_substr — Get part of string
intl_is_failure
简介
国际化与字符编码支持


简介

While there are many languages in which every necessary character can be represented by a one-to-one mapping to an 8-bit value, there are also several languages which require so many characters for written communication that they cannot be contained within the range a mere byte can code (A byte is made up of eight bits. Each bit can contain only two distinct values, one or zero. Because of this, a byte can only represent 256 unique values (two to the power of eight)). Multibyte character encoding schemes were developed to express more than 256 characters in the regular bytewise coding system.

When you manipulate (trim, split, splice, etc.) strings encoded in a multibyte encoding, you need to use special functions since two or more consecutive bytes may represent a single character in such encoding schemes. Otherwise, if you apply a non-multibyte-aware string function to the string, it probably fails to detect the beginning or ending of the multibyte character and ends up with a corrupted garbage string that most likely loses its original meaning.

mbstring provides multibyte specific string functions that help you deal with multibyte encodings in PHP. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs. mbstring is designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below).

Multibyte String
安装/配置
Multibyte String


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Multibyte String


安装

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring: Enable mbstring functions. This option is required to use mbstring functions.

    libmbfl is necesarry for mbstring. libmbfl is bundled with mbstring. If libmbfl is already installed on the system, --with-libmbfl[=DIR] can be specified to use the installed library.

    As of PHP 4.3.0, mbstring extension provides enhanced support for Simplified Chinese, Traditional Chinese, Korean, and Russian in addition to Japanese.

    For PHP 4.3.3 or before,
To enable that feature, you will have to supply either one of the
following options to the LANG parameter
of --enable-mbstring=LANG;
--enable-mbstring=cn for Simplified Chinese support,
--enable-mbstring=tw for Traditional Chinese support,
--enable-mbstring=kr for Korean support,
--enable-mbstring=ru for Russian support, and
--enable-mbstring=ja for Japanese support (default).
 To enable all supported encoding, use --enable-mbstring=all.

    Note: As of PHP 4.3.4, all supported encoding by libmbfl is enabled with --enable-mbstring.

  • --enable-mbstr-enc-trans : Enable HTTP input character encoding conversion using mbstring conversion engine. If this feature is enabled, HTTP input character encoding may be converted to mbstring.internal_encoding automatically.

    Note: As of PHP 4.3.0, the option --enable-mbstr-enc-trans was eliminated and replaced with the runtime setting mbstring.encoding_translation. HTTP input character encoding conversion is enabled when this is set to On (the default is Off).

  • --disable-mbregex: Disable regular expression functions with multibyte character support.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

mbstring configuration options
Name | Default | Changeable | Changelog
mbstring.language | "neutral" | PHP_INI_PERDIR | Available since PHP 4.3.0.
mbstring.detect_order | NULL | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.http_input | "pass" | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.http_output | "pass" | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.script_encoding | NULL | PHP_INI_ALL | Available since PHP 4.3.0.
mbstring.substitute_character | NULL | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM in PHP <= 4.2.3. Available since PHP 4.2.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Available since PHP 4.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Available since PHP 5.1.2.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

mbstring.language string

The default national language setting (NLS) used in mbstring. Note that this option automagically defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

mbstring.encoding_translation boolean

Enables the transparent character encoding filter for the incoming HTTP queries, which performs detection and conversion of the input encoding to the internal character encoding.

mbstring.internal_encoding string

Defines the default internal character encoding.

mbstring.http_input string

Defines the default HTTP input character encoding.

mbstring.http_output string

Defines the default HTTP output character encoding.

mbstring.detect_order string

Defines default character code detection order. See also mb_detect_order().

mbstring.substitute_character string

Defines character to substitute for invalid character encoding.

mbstring.func_overload string

Overloads a set of single byte functions by the mbstring counterparts. See Function overloading for more information.

mbstring.strict_detection boolean

Enables the strict encoding detection.

According to the » HTML 4.01 specification, Web browsers are allowed to encode a form being submitted with a character encoding different from the one used for the page. See mb_http_input() to detect character encoding used by browsers.

Although popular browsers are capable of giving a reasonably accurate guess to the character encoding of a given HTML document, it would be better to set the charset parameter in the Content-Type HTTP header to the appropriate value by header() or default_charset ini setting.

Example #1 php.ini setting examples

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Set HTTP2 input to  SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Example #2 php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Example #3 php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

MB_OVERLOAD_MAIL (integer)
MB_OVERLOAD_STRING (integer)
MB_OVERLOAD_REGEX (integer)
MB_CASE_UPPER (integer)
MB_CASE_LOWER (integer)
MB_CASE_TITLE (integer)
资源类型
Summaries of supported encodings
Multibyte String


Summaries of supported encodings

Summaries of supported encodings
Name in the IANA character set registry:ISO-10646-UCS-4
Underlying character set:ISO 10646
Description: The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:ISO-10646-UCS-4
Underlying character set:UCS-4
Description: See above.
Additional note: In contrast to UCS-4, strings are always assumed to be in big endian form.
Name in the IANA character set registry:ISO-10646-UCS-4
Underlying character set:UCS-4
Description: See above.
Additional note: In contrast to UCS-4, strings are always assumed to be in little endian form.
Name in the IANA character set registry:ISO-10646-UCS-2
Underlying character set:UCS-2
Description: The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:ISO-10646-UCS-2
Underlying character set:UCS-2
Description: See above.
Additional note: In contrast to UCS-2, strings are always assumed to be in big endian form.
Name in the IANA character set registry:ISO-10646-UCS-2
Underlying character set:UCS-2
Description: See above.
Additional note: In contrast to UCS-2, strings are always assumed to be in little endian form.
Name in the IANA character set registry:UTF-32
Underlying character set:Unicode
Description: Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:UTF-32BE
Underlying character set:Unicode
Description:See above
Additional note: In contrast to UTF-32, strings are always assumed to be in big endian form.
Name in the IANA character set registry:UTF-32LE
Underlying character set:Unicode
Description:See above
Additional note: In contrast to UTF-32, strings are always assumed to be in little endian form.
Name in the IANA character set registry:UTF-16
Underlying character set:Unicode
Description: Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:UTF-16BE
Underlying character set:Unicode
Description: See above.
Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.
Name in the IANA character set registry:UTF-16LE
Underlying character set:Unicode
Description: See above.
Additional note: In contrast to UTF-16, strings are always assumed to be in little endian form.
Name in the IANA character set registry:UTF-8
Underlying character set:Unicode / UCS
Description: Unicode Transformation Format of 8-bit unit width.
Additional note:none
Name in the IANA character set registry:UTF-7
Underlying character set:Unicode
Description: A mail-safe transformation format of Unicode, specified in » RFC2152.
Additional note:none
Name in the IANA character set registry:(none)
Underlying character set:Unicode
Description: A variant of UTF-7 which is specialized for use in the » IMAP protocol.
Additional note:none
Name in the IANA character set registry: US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII
Underlying character set:ASCII / ISO 646
Description: American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646.
Additional note:(none)
Name in the IANA character set registry: EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese
Underlying character set: Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990
Description: As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022.
Additional note: The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.
Name in the IANA character set registry:Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS
Underlying character set:Compound of JIS X0201:1997 / JIS X0208:1997
Description: Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatiblities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets.
Additional note:For the CP932 codemap, use SJIS-WIN instead.
Name in the IANA character set registry:(none)
Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions
Description: While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP.
Additional note:none
Name in the IANA character set registry:Windows-31J / csWindows31J
Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions
Description: While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS.
Additional note:(none)
Name in the IANA character set registry:ISO-2022-JP (preferred MIME name) / csISO2022JP
Underlying character set: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983
Description: » RFC1468
Additional note:(none)
Name in the IANA character set registry:JIS
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-1
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-2
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-3
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-4
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-5
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-6
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-7
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-8
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-9
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-10
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-13
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-14
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-15
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte2be
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte2le
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte4be
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte4le
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:BASE64
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:HTML-ENTITIES
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:7bit
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:8bit
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:EUC-CN
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:CP936
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:HZ
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:EUC-TW
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:CP950
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:BIG-5
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:EUC-KR
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:UHC (CP949)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-2022-KR
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:Windows-1251 (CP1251)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:Windows-1252 (CP1252)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:CP866 (IBM866)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:KOI8-R
Underlying character set:
Description:
Additional note:
预定义常量
Basics of Japanese multi-byte encodings
Multibyte String


Basics of Japanese multi-byte encodings

Japanese characters can only be represented by multibyte encodings, and multiple encoding standards are used depending on platform and text purpose. To make matters worse, these encoding standards differ slightly from one another. In order to create a web application which would be usable in a Japanese environment, a developer has to keep these complexities in mind to ensure that the proper character encodings are used.

  • Storage for a character can be up to six bytes
  • Most Japanese multibyte characters appear twice as wide as single-byte characters. These characters are called "zen-kaku" in Japanese, which means "full width". Other, narrower, characters are called "han-kaku", which means "half width". The graphical properties of the characters, however, depends upon the type faces used to display them.
  • Some character encodings use shift(escape) sequences defined in ISO-2022 to switch the code map of the specific code area (00h to 7fh).
  • ISO-2022-JP should be used in SMTP/NNTP, and headers and entities should be reencoded as per RFC requirements. Although those are not requisites, it's still a good idea because several popular user agents cannot recognize any other encoding methods.
  • Web pages created for mobile phone services such as » i-mode, » Vodafone live!, or » EZweb are supposed to use Shift_JIS.

Summaries of supported encodings
HTTP Input and Output
Multibyte String


HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Note: In PHP 4.3.2 or earlier versions, there was a limitation in this functionality that mbstring does not perform character encoding conversion in POST data if the enctype attribute in the form element is set to multipart/form-data. So you have to convert the incoming data by yourself in this case if necessary.
Beginning with PHP 4.3.3, if enctype for HTML form is set to multipart/form-data and mbstring.encoding_translation is set to On in php.ini the POST'ed variables and the names of uploaded files will be converted to the internal character encoding as well. However, the conversion isn't applied to the query keys.

  • HTTP Input

    There is no way to control HTTP input character conversion from a PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Example #1 Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
    mbstring.http_input = pass
    ;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
    mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override those settings in each Virtual Host directive in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as the ob_start callback function.

Example #2 php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Example #3 Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>

Basics of Japanese multi-byte encodings
Supported Character Encodings
Multibyte String


Supported Character Encodings

Currently the following character encodings are supported by the mbstring module. Any of those Character encodings can be specified in the encoding parameter of mbstring functions.

The following character encodings are supported in this PHP extension:

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • JIS
  • ISO-8859-1*
  • ISO-8859-2*
  • ISO-8859-3*
  • ISO-8859-4*
  • ISO-8859-5*
  • ISO-8859-6*
  • ISO-8859-7*
  • ISO-8859-8*
  • ISO-8859-9*
  • ISO-8859-10*
  • ISO-8859-13*
  • ISO-8859-14*
  • ISO-8859-15*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (CP949)
  • ISO-2022-KR
  • Windows-1251 (CP1251)
  • Windows-1252 (CP1252)
  • CP866 (IBM866)
  • KOI8-R*

* denotes encodings usable also in regular expressions.

Any php.ini entry which accepts an encoding name can also use the values "auto" and "pass". mbstring functions which accept an encoding name can also use the value "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to the list of encodings defined per the NLS. For instance, if the NLS is set to Japanese, the value is assumed to be "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()

HTTP Input and Output
Function Overloading Feature
Multibyte String


Function Overloading Feature

You might often find it difficult to get an existing PHP application to work in a given multibyte environment. This happens because most PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports a 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.

To use function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if it is set to 7, mail, strings and regular expression functions will be overloaded. The list of overloaded functions are shown below.

Functions to be overloaded
value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Note: It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.

Supported Character Encodings
PHP Character Encoding Requirements
Multibyte String


PHP Character Encoding Requirements

Encodings of the following types are safely used with PHP.

  • A singlebyte encoding,

    • which has ASCII-compatible (ISO646 compatible) mappings for the characters in range of 00h to 7fh.

  • A multibyte encoding,

    • which has ASCII-compatible mappings for the characters in range of 00h to 7fh.
    • which don't use ISO2022 escape sequences.
    • which don't use a value from 00h to 7fh in any of the compounded bytes that represents a single character.

These are examples of character encodings that are unlikely to work with PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Although PHP scripts written in any of those encodings might not work, especially in the case where encoded strings appear as identifiers or literals in the script, you can almost avoid using these encodings by setting up the mbstring's transparent encoding filter function for incoming HTTP queries.

Note: It's highly discouraged to use SJIS, BIG5, CP936, CP949 and GB18030 for the internal encoding unless you are familiar with the parser, the scanner and the character encoding.

Note: If you are connecting to a database with PHP, it is recommended that you use the same character encoding for both the database and the internal encoding for ease of use and better performance.
If you are using PostgreSQL, the character encoding used in the database and the one used in PHP may differ as it supports automatic character set conversion between the backend and the frontend.

Function Overloading Feature
Multibyte String 函数
Multibyte String


Multibyte String 函数

References

Multibyte character encoding schemes and their related issues are fairly complicated, and are beyond the scope of this documentation. Please refer to the following URLs and other resources for further information regarding these topics.

  • Unicode materials

    » http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    » http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Table of Contents

  • mb_check_encoding — Check if the string is valid for the specified encoding
  • mb_convert_case — Perform case folding on a string
  • mb_convert_encoding — Convert character encoding
  • mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
  • mb_convert_variables — Convert character code in variable(s)
  • mb_decode_mimeheader — Decode string in MIME header field
  • mb_decode_numericentity — Decode HTML numeric string reference to character
  • mb_detect_encoding — Detect character encoding
  • mb_detect_order — Set/Get character encoding detection order
  • mb_encode_mimeheader — Encode string for MIME header
  • mb_encode_numericentity — Encode character to HTML numeric string reference
  • mb_ereg_match — Regular expression match for multibyte string
  • mb_ereg_replace — Replace regular expression with multibyte support
  • mb_ereg_search_getpos — Returns start point for next regular expression match
  • mb_ereg_search_getregs — Retrieve the result from the last multibyte regular expression match
  • mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match
  • mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
  • mb_ereg_search_regs — Returns the matched part of a multibyte regular expression
  • mb_ereg_search_setpos — Set start point of next regular expression match
  • mb_ereg_search — Multibyte regular expression match for predefined multibyte string
  • mb_ereg — Regular expression match with multibyte support
  • mb_eregi_replace — Replace regular expression with multibyte support ignoring case
  • mb_eregi — Regular expression match ignoring case with multibyte support
  • mb_get_info — Get internal settings of mbstring
  • mb_http_input — Detect HTTP input character encoding
  • mb_http_output — Set/Get HTTP output character encoding
  • mb_internal_encoding — Set/Get internal character encoding
  • mb_language — Set/Get current language
  • mb_list_encodings — Returns an array of all supported encodings
  • mb_output_handler — Callback function converts character encoding in output buffer
  • mb_parse_str — Parse GET/POST/COOKIE data and set global variable
  • mb_preferred_mime_name — Get MIME charset string
  • mb_regex_encoding — Returns current encoding for multibyte regex as string
  • mb_regex_set_options — Set/Get the default options for mbregex functions
  • mb_send_mail — Send encoded mail
  • mb_split — Split multibyte string using regular expression
  • mb_strcut — Get part of string
  • mb_strimwidth — Get truncated string with specified width
  • mb_stripos — Finds position of first occurrence of a string within another, case insensitive
  • mb_stristr — Finds first occurrence of a string within another, case insensitive
  • mb_strlen — Get string length
  • mb_strpos — Find position of first occurrence of string in a string
  • mb_strrchr — Finds the last occurrence of a character in a string within another
  • mb_strrichr — Finds the last occurrence of a character in a string within another, case insensitive
  • mb_strripos — Finds position of last occurrence of a string within another, case insensitive
  • mb_strrpos — Find position of last occurrence of a string in a string
  • mb_strstr — Finds first occurrence of a string within another
  • mb_strtolower — Make a string lowercase
  • mb_strtoupper — Make a string uppercase
  • mb_strwidth — Return width of string
  • mb_substitute_character — Set/Get substitution character
  • mb_substr_count — Count the number of substring occurrences
  • mb_substr — Get part of string
PHP Character Encoding Requirements
mb_check_encoding
Multibyte String


Check if the string is valid for the specified encoding

Multibyte String 函数
mb_convert_case
Multibyte String 函数
PHP 手册

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)

mb_check_encoding — Check if the string is valid for the specified encoding

说明

bool mb_check_encoding ([ string $var=NULL [, string $encoding=mb_internal_encoding() ]] )

Checks if the specified byte stream is valid for the specified encoding. It is useful to prevent so-called "Invalid Encoding Attack".

参数

var

The byte stream to check. If it is omitted, this function checks all the input from the beginning of the request.

encoding

The expected encoding.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Multibyte String 函数
mb_convert_case
Multibyte String 函数


Perform case folding on a string

mb_check_encoding
mb_convert_encoding
Multibyte String 函数
PHP 手册

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case — Perform case folding on a string

说明

string mb_convert_case ( string $str , int $mode=MB_CASE_UPPER [, string $encoding=mb_internal_encoding() ] )

Performs case folding on a string, converted in the way specified by mode .

参数

str

The string being converted.

mode

The mode of the conversion. It can be one of MB_CASE_UPPER, MB_CASE_LOWER, or MB_CASE_TITLE.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

A case folded version of string converted in the way specified by mode .

Unicode

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

For more information about the Unicode properties, please see » http://www.unicode.org/unicode/reports/tr21/.

范例

Example #1 mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints Mary Had A Little Lamb And She Loved It So
?>

参见

  • mb_strtolower() - Make a string lowercase
  • mb_strtoupper() - Make a string uppercase
  • strtolower() - Make a string lowercase
  • strtoupper() - Make a string uppercase
  • ucfirst() - Make a string's first character uppercase
  • ucwords() - Uppercase the first character of each word in a string

mb_check_encoding
mb_convert_encoding
Multibyte String 函数


Convert character encoding

mb_convert_case
mb_convert_kana
Multibyte String 函数
PHP 手册

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding — Convert character encoding

说明

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )

Converts the character encoding of string str to to_encoding from optionally from_encoding .

参数

str

The string being encoded.

to_encoding

The type of encoding that str is being converted to.

from_encoding

Is specified by character code names before conversion. It is either an array, or a comma separated enumerated list. If from_encoding is not specified, the internal encoding will be used.

"auto" may be used, which expands to "ASCII,JIS,UTF-8,EUC-JP,SJIS".

返回值

The encoded string.

范例

Example #1 mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

参见

  • mb_detect_order() - Set/Get character encoding detection order

mb_convert_case
mb_convert_kana
Multibyte String 函数


Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

mb_convert_encoding
mb_convert_variables
Multibyte String 函数
PHP 手册

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

说明

string mb_convert_kana ( string $str [, string $option [, string $encoding ]] )

Performs a "han-kaku" - "zen-kaku" conversion for string str . This function is only useful for Japanese.

参数

str

The string being converted.

option

The conversion option. The default value is "KV".

Specify with a combination of following options. The default value is KV.

Applicable Conversion Options
Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

The converted string.

范例

Example #1 mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alpha-numeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

mb_convert_encoding
mb_convert_variables
Multibyte String 函数


Convert character code in variable(s)

mb_convert_kana
mb_decode_mimeheader
Multibyte String 函数
PHP 手册

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variables — Convert character code in variable(s)

说明

string mb_convert_variables ( string $to_encoding , mixed $from_encoding , mixed &$vars [, mixed &$... ] )

Converts character encoding of variables vars in encoding from_encoding to encoding to_encoding .

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

参数

to_encoding

The encoding that the string is being converted to.

from_encoding

from_encoding is specified as an array or comma separated string, it tries to detect encoding from from-coding . When from_encoding is omitted, detect_order is used.

vars

vars is the reference to the variable being converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

...

Additional vars .

返回值

The character encoding before conversion for success, or FALSE for failure.

范例

Example #1 mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>

mb_convert_kana
mb_decode_mimeheader
Multibyte String 函数


Decode string in MIME header field

mb_convert_variables
mb_decode_numericentity
Multibyte String 函数
PHP 手册

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheader — Decode string in MIME header field

说明

string mb_decode_mimeheader ( string $str )

Decodes encoded-word string str in MIME header.

参数

str

The string being decoded.

返回值

The decoded string in internal character encoding.

参见

  • mb_encode_mimeheader() - Encode string for MIME header

mb_convert_variables
mb_decode_numericentity
Multibyte String 函数


Decode HTML numeric string reference to character

mb_decode_mimeheader
mb_detect_encoding
Multibyte String 函数
PHP 手册

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentity — Decode HTML numeric string reference to character

说明

string mb_decode_numericentity ( string $str , array $convmap , string $encoding )

Convert numeric string reference of string str in a specified block to character.

参数

str

The string being decoded.

convmap

convmap is an array that specifies the code area to convert.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

The converted string.

范例

Example #1 convmap example

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.

参见

  • mb_encode_numericentity() - Encode character to HTML numeric string reference

mb_decode_mimeheader
mb_detect_encoding
Multibyte String 函数


Detect character encoding

mb_decode_numericentity
mb_detect_order
Multibyte String 函数
PHP 手册

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encoding — Detect character encoding

说明

string mb_detect_encoding ( string $str [, mixed $encoding_list=mb_detect_order() [, bool $strict=false ]] )

Detects character encoding in string str .

参数

str

The string being detected.

encoding_list

encoding_list is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encoding_list is omitted, detect_order is used.

strict

strict specifies whether to use the strict encoding detection or not. Default is FALSE.

返回值

The detected character encoding.

范例

Example #1 mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

参见

  • mb_detect_order() - Set/Get character encoding detection order

mb_decode_numericentity
mb_detect_order
Multibyte String 函数


Set/Get character encoding detection order

mb_detect_encoding
mb_encode_mimeheader
Multibyte String 函数
PHP 手册

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_order — Set/Get character encoding detection order

说明

mixed mb_detect_order ([ mixed $encoding_list ] )

Sets the automatic character encoding detection order to encoding_list .

参数

encoding_list

encoding_list is an array or comma separated list of character encoding. ("auto" is expanded to "ASCII, JIS, UTF-8, EUC-JP, SJIS")

If encoding_list is omitted, it returns the current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

mbstring currently implements the following encoding detection filters. If there is an invalid byte sequence for the following encodings, encoding detection will fail.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Example #1 Useless detect order example

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #2 mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

参见

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_http_input() - Detect HTTP input character encoding
  • mb_http_output() - Set/Get HTTP output character encoding
  • mb_send_mail() - Send encoded mail

mb_detect_encoding
mb_encode_mimeheader
Multibyte String 函数


Encode string for MIME header

mb_detect_order
mb_encode_numericentity
Multibyte String 函数
PHP 手册

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheader — Encode string for MIME header

说明

string mb_encode_mimeheader ( string $str [, string $charset [, string $transfer_encoding [, string $linefeed [, int $indent ]]]] )

Encodes a given string str by the MIME header encoding scheme.

参数

str

The string being encoded.

charset

charset specifies the name of the character set in which str is represented in. The default value is determined by the current NLS setting (mbstring.language). mb_internal_encoding() should be set to same encoding.

transfer_encoding

transfer_encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.

linefeed

linefeed specifies the EOL (end-of-line) marker with which mb_encode_mimeheader() performs line-folding (a » RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to "\r\n" (CRLF) if not given.

indent

Indentation of the first line (number of characters in the header before str ).

返回值

A converted version of the string represented in ASCII.

更新日志

版本 | 说明
5.0.0 | The indent parameter was added.

范例

Example #1 mb_encode_mimeheader() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

注释

Note: This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.

参见

  • mb_decode_mimeheader() - Decode string in MIME header field

mb_detect_order
mb_encode_numericentity
Multibyte String 函数


Encode character to HTML numeric string reference

mb_encode_mimeheader
mb_ereg_match
Multibyte String 函数
PHP 手册

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentity — Encode character to HTML numeric string reference

说明

string mb_encode_numericentity ( string $str , array $convmap , string $encoding )

Converts specified character codes in string str from HTML numeric character reference to character code.

参数

str

The string being encoded.

convmap

convmap is array specifies code area to convert.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

The converted string.

范例

Example #1 convmap example

$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.

范例

Example #2 mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

参见

  • mb_decode_numericentity() - Decode HTML numeric string reference to character

mb_encode_mimeheader
mb_ereg_match
Multibyte String 函数


Regular expression match for multibyte string

mb_encode_numericentity
mb_ereg_replace
Multibyte String 函数
PHP 手册

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_match — Regular expression match for multibyte string

说明

bool mb_ereg_match ( string $pattern , string $string [, string $option="msr" ] )

A regular expression match for a multibyte string

参数

pattern

The regular expression pattern.

string

The string being evaluated.

option

返回值

Returns TRUE if string matches the regular expression pattern , FALSE if not.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg() - Regular expression match with multibyte support

mb_encode_numericentity
mb_ereg_replace
Multibyte String 函数


Replace regular expression with multibyte support

mb_ereg_match
mb_ereg_search_getpos
Multibyte String 函数
PHP 手册

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_replace — Replace regular expression with multibyte support

说明

string mb_ereg_replace ( string $pattern , string $replacement , string $string [, string $option="msr" ] )

Scans string for matches to pattern , then replaces the matched text with replacement

参数

pattern

The regular expression pattern.

Multibyte characters may be used in pattern .

replacement

The replacement text.

string

The string being checked.

option
Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. If e is specified, replacement string will be evaluated as PHP expression.

返回值

The resultant string on success, or FALSE on error.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_eregi_replace() - Replace regular expression with multibyte support ignoring case

mb_ereg_match
mb_ereg_search_getpos
Multibyte String 函数


Returns start point for next regular expression match

mb_ereg_replace
mb_ereg_search_getregs
Multibyte String 函数
PHP 手册

mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_getpos — Returns start point for next regular expression match

说明

int mb_ereg_search_getpos ( void )

Returns the start point for the next regular expression match.

参数

This function has no parameters.

返回值

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_setpos() - Set start point of next regular expression match

mb_ereg_replace
mb_ereg_search_getregs
Multibyte String 函数


Retrieve the result from the last multibyte regular expression match

mb_ereg_search_getpos
mb_ereg_search_init
Multibyte String 函数
PHP 手册

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_getregs — Retrieve the result from the last multibyte regular expression match

说明

array mb_ereg_search_getregs ( void )

Retrieve the result from the last multibyte regular expression match

参数

This function has no parameters.

返回值

An array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some matches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns FALSE on error;

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_getpos
mb_ereg_search_init
Multibyte String 函数


Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_getregs
mb_ereg_search_pos
Multibyte String 函数
PHP 手册

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match

说明

bool mb_ereg_search_init ( string $string [, string $pattern [, string $option="msr" ]] )

mb_ereg_search_init() sets string and pattern for a multibyte regular expression. These values are used for mb_ereg_search(), mb_ereg_search_pos(), and mb_ereg_search_regs().

参数

string

The search string.

pattern

The search pattern.

option

The search option. Defaults to 'ms'.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_regs() - Returns the matched part of a multibyte regular expression

mb_ereg_search_getregs
mb_ereg_search_pos
Multibyte String 函数


Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

mb_ereg_search_init
mb_ereg_search_regs
Multibyte String 函数
PHP 手册

mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

说明

array mb_ereg_search_pos ([ string $pattern [, string $option="ms" ]] )

Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

The string for match is specified by mb_ereg_search_init(). If it is not specified, the previous one will be used.

参数

pattern

The search pattern.

option

The search option. Defaults to 'ms'.

返回值

An array including the position of a matched part for a multibyte regular expression. The first element of the array will be the beginning of matched part, the second element will be length (bytes) of matched part. It returns FALSE on error.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_init
mb_ereg_search_regs
Multibyte String 函数


Returns the matched part of a multibyte regular expression

mb_ereg_search_pos
mb_ereg_search_setpos
Multibyte String 函数
PHP 手册

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_regs — Returns the matched part of a multibyte regular expression

说明

array mb_ereg_search_regs ([ string $pattern [, string $option="ms" ]] )

Returns the matched part of a multibyte regular expression.

参数

pattern

The search pattern.

option

The search option. Defaults to 'ms'.

返回值

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns FALSE on error.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_pos
mb_ereg_search_setpos
Multibyte String 函数


Set start point of next regular expression match

mb_ereg_search_regs
mb_ereg_search
Multibyte String 函数
PHP 手册

mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search_setpos — Set start point of next regular expression match

说明

bool mb_ereg_search_setpos ( int $position )

mb_ereg_search_setpos() sets the starting point of a match for mb_ereg_search().

参数

position

The position to set.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_regs
mb_ereg_search
Multibyte String 函数


Multibyte regular expression match for predefined multibyte string

mb_ereg_search_setpos
mb_ereg
Multibyte String 函数
PHP 手册

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg_search — Multibyte regular expression match for predefined multibyte string

说明

bool mb_ereg_search ([ string $pattern [, string $option="ms" ]] )

Performs a multibyte regular expression match for a predefined multibyte string.

参数

pattern

The search pattern.

option

The search option. Defaults to 'ms'.

返回值

mb_ereg_search() returns TRUE if the multibyte string matches with the regular expression, or FALSE otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_setpos
mb_ereg
Multibyte String 函数


Regular expression match with multibyte support

mb_ereg_search
mb_eregi_replace
Multibyte String 函数
PHP 手册

mb_ereg

(PHP 4 >= 4.2.0, PHP 5)

mb_ereg — Regular expression match with multibyte support

说明

int mb_ereg ( string $pattern , string $string [, array $regs ] )

Executes the regular expression match with multibyte support.

参数

pattern

The search pattern.

string

The search string.

regs

Contains a substring of the matched string.

返回值

Executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional regs parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The function returns 1 if it matches with the empty string. If no matches are found or an error happens, FALSE will be returned.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_eregi() - Regular expression match ignoring case with multibyte support

mb_ereg_search
mb_eregi_replace
Multibyte String 函数


Replace regular expression with multibyte support ignoring case

mb_ereg
mb_eregi
Multibyte String 函数
PHP 手册

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5)

mb_eregi_replace — Replace regular expression with multibyte support ignoring case

说明

string mb_eregi_replace ( string $pattern , string $replace , string $string [, string $option="msri" ] )

Scans string for matches to pattern , then replaces the matched text with replacement .

参数

pattern

The regular expression pattern. Multibyte characters may be used. The case will be ignored.

replace

The replacement text.

string

The searched string.

option
option has the same meaning as in mb_ereg_replace().

返回值

The resultant string or FALSE on error.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg_replace() - Replace regular expression with multibyte support

mb_ereg
mb_eregi
Multibyte String 函数


Regular expression match ignoring case with multibyte support

mb_eregi_replace
mb_get_info
Multibyte String 函数
PHP 手册

mb_eregi

(PHP 4 >= 4.2.0, PHP 5)

mb_eregi — Regular expression match ignoring case with multibyte support

说明

int mb_eregi ( string $pattern , string $string [, array $regs ] )

Executes the case insensitive regular expression match with multibyte support.

参数

pattern

The regular expression pattern.

string

The string being searched.

regs

Contains a substring of the matched string.

返回值

Executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional regs parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The function returns 1 if it matches with the empty string. If no matches are found or an error happens, FALSE will be returned.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg() - Regular expression match with multibyte support

mb_eregi_replace
mb_get_info
Multibyte String 函数


Get internal settings of mbstring

mb_eregi
mb_http_input
Multibyte String 函数
PHP 手册

mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_info — Get internal settings of mbstring

说明

mixed mb_get_info ([ string $type="all" ] )

mb_get_info() returns the internal setting parameters of mbstring.

参数

type

If type isn't specified or is specified to "all", an array having the elements "internal_encoding", "http_output", "http_input", "func_overload", "mail_charset", "mail_header_encoding", "mail_body_encoding" will be returned.

If type is specified as "http_output", "http_input", "internal_encoding", "func_overload", the specified setting parameter will be returned.

返回值

An array of type information if type is not specified, otherwise a specific type .

更新日志

版本 | 说明
5.1.3 | The element types "mail_charset", "mail_header_encoding", and "mail_body_encoding" were made available.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_http_output() - Set/Get HTTP output character encoding

mb_eregi
mb_http_input
Multibyte String 函数


Detect HTTP input character encoding

mb_get_info
mb_http_output
Multibyte String 函数
PHP 手册

mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_input — Detect HTTP input character encoding

说明

mixed mb_http_input ([ string $type="" ] )

Detects the HTTP input character encoding.

参数

type

Input string specifies the input type. "G" for GET, "P" for POST, "C" for COOKIE, "S" for string, "L" for list, and "I" for the whole list (will return array). If type is omitted, it returns the last input type processed.

返回值

The character encoding name, as per the type . If mb_http_input() does not process specified HTTP input, it returns FALSE.

参见

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_http_output() - Set/Get HTTP output character encoding
  • mb_detect_order() - Set/Get character encoding detection order

mb_get_info
mb_http_output
Multibyte String 函数


Set/Get HTTP output character encoding

mb_http_input
mb_internal_encoding
Multibyte String 函数
PHP 手册

mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_output — Set/Get HTTP output character encoding

说明

mixed mb_http_output ([ string $encoding ] )

Set/Get the HTTP output character encoding. Output after this function is converted to encoding .

参数

encoding

If encoding is set, mb_http_output() sets the HTTP output character encoding to encoding .

If encoding is omitted, mb_http_output() returns the current HTTP output character encoding.

返回值

If encoding is omitted, mb_http_output() returns the current HTTP output character encoding. Otherwise, 如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_http_input() - Detect HTTP input character encoding
  • mb_detect_order() - Set/Get character encoding detection order

mb_http_input
mb_internal_encoding
Multibyte String 函数


Set/Get internal character encoding

mb_http_output
mb_language
Multibyte String 函数
PHP 手册

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding — Set/Get internal character encoding

说明

mixed mb_internal_encoding ([ string $encoding=mb_internal_encoding() ] )

Set/Get the internal character encoding

参数

encoding

encoding is the character encoding name used for the HTTP input character encoding conversion, HTTP output character encoding conversion, and the default character encoding for string functions defined by the mbstring module.

返回值

If encoding is set, then 如果成功则返回 TRUE，失败则返回 FALSE。 If encoding is omitted, then the current character encoding name is returned.

范例

Example #1 mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_http_input() - Detect HTTP input character encoding
  • mb_http_output() - Set/Get HTTP output character encoding
  • mb_detect_order() - Set/Get character encoding detection order

mb_http_output
mb_language
Multibyte String 函数


Set/Get current language

mb_internal_encoding
mb_list_encodings
Multibyte String 函数
PHP 手册

mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_language — Set/Get current language

说明

mixed mb_language ([ string $language ] )

Set/Get the current language.

参数

language

Used for encoding e-mail messages. Valid languages are "Japanese", "ja","English","en" and "uni" (UTF-8). mb_send_mail() uses this setting to encode e-mail.

Language and its setting is ISO-2022-JP/Base64 for Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for English.

返回值

If language is set and language is valid, it returns TRUE. Otherwise, it returns FALSE. When language is omitted, it returns the language name as a string. If no language is set previously, it then returns FALSE.

参见

  • mb_send_mail() - Send encoded mail

mb_internal_encoding
mb_list_encodings
Multibyte String 函数


Returns an array of all supported encodings

mb_language
mb_output_handler
Multibyte String 函数
PHP 手册

mb_list_encodings

(PHP 5)

mb_list_encodings — Returns an array of all supported encodings

说明

array mb_list_encodings ( void )

Returns an array containing all supported encodings.

参数

This function has no parameters.

返回值

Returns a numerically indexed array.

错误／异常

This function does not emit any errors.

范例

Example #1 mb_list_encodings() example

<?php

print_r(mb_list_encodings());

?>

上例的输出类似于：

Array
(
    [0] => pass
    [1] => auto
    [2] => wchar
    [3] => byte2be
    [4] => byte2le
    [5] => byte4be
    [6] => byte4le
    [7] => BASE64
    [8] => UUENCODE
    [9] => HTML-ENTITIES
    [10] => Quoted-Printable
    [11] => 7bit
    [12] => 8bit
    [13] => UCS-4
    [14] => UCS-4BE
    [15] => UCS-4LE
    [16] => UCS-2
    [17] => UCS-2BE
    [18] => UCS-2LE
    [19] => UTF-32
    [20] => UTF-32BE
    [21] => UTF-32LE
    [22] => UTF-16
    [23] => UTF-16BE
    [24] => UTF-16LE
    [25] => UTF-8
    [26] => UTF-7
    [27] => UTF7-IMAP
    [28] => ASCII
    [29] => EUC-JP
    [30] => SJIS
    [31] => eucJP-win
    [32] => SJIS-win
    [33] => JIS
    [34] => ISO-2022-JP
    [35] => Windows-1252
    [36] => ISO-8859-1
    [37] => ISO-8859-2
    [38] => ISO-8859-3
    [39] => ISO-8859-4
    [40] => ISO-8859-5
    [41] => ISO-8859-6
    [42] => ISO-8859-7
    [43] => ISO-8859-8
    [44] => ISO-8859-9
    [45] => ISO-8859-10
    [46] => ISO-8859-13
    [47] => ISO-8859-14
    [48] => ISO-8859-15
    [49] => EUC-CN
    [50] => CP936
    [51] => HZ
    [52] => EUC-TW
    [53] => BIG-5
    [54] => EUC-KR
    [55] => UHC
    [56] => ISO-2022-KR
    [57] => Windows-1251
    [58] => CP866
    [59] => KOI8-R
)

mb_language
mb_output_handler
Multibyte String 函数


Callback function converts character encoding in output buffer

mb_list_encodings
mb_parse_str
Multibyte String 函数
PHP 手册

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handler — Callback function converts character encoding in output buffer

说明

string mb_output_handler ( string $contents , int $status )

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in the output buffer from internal character encoding to
HTTP output character encoding.

参数

contents

The contents of the output buffer.

status

The status of the output buffer.

返回值

The converted string.

更新日志

版本 说明
4.1.0

This handler now adds the charset HTTP header when the following conditions are met:

  • Does not set Content-Type, using header().
  • The default MIME type begins with text/.
  • The mbstring.http_input setting is something other than pass.

范例

Example #1 mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

注释

Note: If you want to output some binary data such as image from PHP script with PHP 4.3.0 or later, Content-Type: header must be send using header() before any binary data was send to client (e.g. header("Content-Type: image/png")). If Content-Type: header was send, output character encoding conversion will not be performed.
Note that if 'Content-Type: text/*' was send using header(), the sending data is regarded as text, encoding conversion will be performed using character encoding settings.
If you want to output some binary data such as image from PHP script with PHP 4.2.x or earlier, you must set output encoding to "pass" using mb_http_output().

参见

  • ob_start() - Turn on output buffering

mb_list_encodings
mb_parse_str
Multibyte String 函数


Parse GET/POST/COOKIE data and set global variable

mb_output_handler
mb_preferred_mime_name
Multibyte String 函数
PHP 手册

mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_str — Parse GET/POST/COOKIE data and set global variable

说明

bool mb_parse_str ( string $encoded_string [, array &$result ] )

Parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only be used for GET data for now. It parses URL encoded data, detects encoding, converts coding to internal encoding and set values to the result array or global variables.

参数

encoded_string

The URL encoded data.

result

An array containing decoded and character encoded converted values.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mb_detect_order() - Set/Get character encoding detection order
  • mb_internal_encoding() - Set/Get internal character encoding

mb_output_handler
mb_preferred_mime_name
Multibyte String 函数


Get MIME charset string

mb_parse_str
mb_regex_encoding
Multibyte String 函数
PHP 手册

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_name — Get MIME charset string

说明

string mb_preferred_mime_name ( string $encoding )

Get a MIME charset string for a specific encoding.

参数

encoding

The encoding being checked.

返回值

The MIME charset string for character encoding encoding .

范例

Example #1 mb_preferred_mime_name() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

mb_parse_str
mb_regex_encoding
Multibyte String 函数


Returns current encoding for multibyte regex as string

mb_preferred_mime_name
mb_regex_set_options
Multibyte String 函数
PHP 手册

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5)

mb_regex_encoding — Returns current encoding for multibyte regex as string

说明

mixed mb_regex_encoding ([ string $encoding ] )

Returns the current encoding for a multibyte regex as a string.

参数

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

Returns the character encoding used by multibyte regex functions.

参见

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_ereg() - Regular expression match with multibyte support

mb_preferred_mime_name
mb_regex_set_options
Multibyte String 函数


Set/Get the default options for mbregex functions

mb_regex_encoding
mb_send_mail
Multibyte String 函数
PHP 手册

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5)

mb_regex_set_options — Set/Get the default options for mbregex functions

说明

string mb_regex_set_options ([ string $options="msr" ] )

Sets the default options described by options for multibyte regex functions.

参数

options

The options to set.

返回值

The previous options. If options is omitted, it returns the string that describes the current options.

参见

  • mb_split() - Split multibyte string using regular expression
  • mb_ereg() - Regular expression match with multibyte support
  • mb_eregi() - Regular expression match ignoring case with multibyte support

mb_regex_encoding
mb_send_mail
Multibyte String 函数


Send encoded mail

mb_regex_set_options
mb_split
Multibyte String 函数
PHP 手册

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail — Send encoded mail

说明

bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers=NULL [, string $additional_parameter=NULL ]] )

Sends email. Headers and messages are converted and encoded according to the mb_language() setting. It's a wrapper function for mail(), so see also mail() for details.

参数

to

The mail addresses being sent to. Multiple recipients may be specified by putting a comma between each address in to . This parameter is not automatically encoded.

subject

The subject of the mail.

message

The message of the mail.

additional_headers

additional_headers is inserted at the end of the header. This is typically used to add extra headers. Multiple extra headers are separated with a newline ("\n").

additional_parameter

additional_parameter is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.0.0 | The Content-Type and Content-Transfer-Encoding headers may be redefined as of PHP 5.0.0. Before this time, the values defined by mb_language() are always used.

参见

  • mail() - 发送邮件
  • mb_encode_mimeheader() - Encode string for MIME header
  • mb_language() - Set/Get current language

mb_regex_set_options
mb_split
Multibyte String 函数


Split multibyte string using regular expression

mb_send_mail
mb_strcut
Multibyte String 函数
PHP 手册

mb_split

(PHP 4 >= 4.2.0, PHP 5)

mb_split — Split multibyte string using regular expression

说明

array mb_split ( string $pattern , string $string [, int $limit=-1 ] )

Split a multibyte string using regular expression pattern and returns the result as an array.

参数

pattern

The regular expression pattern.

string

The string being split.

limit
If optional parameter limit is specified, it will be split in limit elements as maximum.

返回值

The result as an array.

注释

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_regex_encoding() - Returns current encoding for multibyte regex as string
  • mb_ereg() - Regular expression match with multibyte support

mb_send_mail
mb_strcut
Multibyte String 函数


Get part of string

mb_split
mb_strimwidth
Multibyte String 函数
PHP 手册

mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcut — Get part of string

说明

string mb_strcut ( string $str , int $start [, int $length [, string $encoding ]] )

mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.

It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

参数

str

The string being cut.

start

The position that begins the cut.

length

The string being decoded.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

mb_strcut() returns the portion of str specified by the start and length parameters.

参见

  • mb_substr() - Get part of string
  • mb_internal_encoding() - Set/Get internal character encoding

mb_split
mb_strimwidth
Multibyte String 函数


Get truncated string with specified width

mb_strcut
mb_stripos
Multibyte String 函数
PHP 手册

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth — Get truncated string with specified width

说明

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

Truncates string str to specified width .

参数

str

The string being decoded.

start

The start position offset. Number of characters from the beginning of string. (First character is 0)

width

The width of the desired trim.

trimmarker

A string that is added to the end of string when string is truncated.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

The truncated string. If trimmarker is set, trimmarker is appended to the return value.

范例

Example #1 mb_strimwidth() example

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

参见

  • mb_strwidth() - Return width of string
  • mb_internal_encoding() - Set/Get internal character encoding

mb_strcut
mb_stripos
Multibyte String 函数


Finds position of first occurrence of a string within another, case insensitive

mb_strimwidth
mb_stristr
Multibyte String 函数
PHP 手册

mb_stripos

(PHP 5 >= 5.2.0)

mb_stripos — Finds position of first occurrence of a string within another, case insensitive

说明

int mb_stripos ( string $haystack , string $needle [, int $offset [, string $encoding ]] )

mb_stripos() returns the numeric position of the first occurrence of needle in the haystack string. Unlike mb_strpos(), mb_stripos() is case-insensitive. If needle is not found, it returns FALSE.

参数

haystack

The string from which to get the position of the first occurrence of needle

needle

The string to find in haystack

offset

The position in haystack to start searching

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

返回值

Return the numeric position of the first occurrence of needle in the haystack string, or FALSE if needle is not found.

参见

  • stripos() - Find position of first occurrence of a case-insensitive string
  • strpos() - Find position of first occurrence of a string
  • mb_strpos() - Find position of first occurrence of string in a string

mb_strimwidth
mb_stristr
Multibyte String 函数


Finds first occurrence of a string within another, case insensitive

mb_stripos
mb_strlen
Multibyte String 函数
PHP 手册

mb_stristr

(PHP 5 >= 5.2.0)

mb_stristr — Finds first occurrence of a string within another, case insensitive

说明

string mb_stristr ( string $haystack , string $needle [, bool $part [, string $encoding ]] )

mb_stristr() finds the first occurrence of needle in haystack and returns the portion of haystack . Unlike mb_strstr(), mb_stristr() is case-insensitive. If needle is not found, it returns FALSE.

参数

haystack

The string from which to get the first occurrence of needle

needle

The string to find in haystack

part

Determines which portion of haystack this function returns. If set to TRUE, it returns all of haystack from the beginning to the first occurrence of needle . If set to FALSE, it returns all of haystack from the first occurrence of needle to the end, Default value is FALSE.

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

返回值

Returns the portion of haystack , or FALSE if needle is not found.

参见

  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string
  • mb_strstr() - Finds first occurrence of a string within another

mb_stripos
mb_strlen
Multibyte String 函数


Get string length

mb_stristr
mb_strpos
Multibyte String 函数
PHP 手册

mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlen — Get string length

说明

int mb_strlen ( string $str [, string $encoding ] )

Gets the length of a string.

参数

str

The string being checked for length.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

Returns the number of characters in string str having character encoding encoding . A multi-byte character is counted as 1.

参见

  • mb_internal_encoding() - Set/Get internal character encoding
  • strlen() - Get string length

mb_stristr
mb_strpos
Multibyte String 函数


Find position of first occurrence of string in a string

mb_strlen
mb_strrchr
Multibyte String 函数
PHP 手册

mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos — Find position of first occurrence of string in a string

说明

int mb_strpos ( string $haystack , string $needle [, int $offset [, string $encoding ]] )

Finds position of the first occurrence of a string in a string.

Performs a multi-byte safe strpos() operation based on number of characters. The first character's position is 0, the second character position is 1, and so on.

参数

haystack

The string being checked.

needle

The position counted from the beginning of haystack .

offset

The search offset. If it is not specified, 0 is used.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

Returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

参见

  • mb_internal_encoding() - Set/Get internal character encoding
  • strpos() - Find position of first occurrence of a string

mb_strlen
mb_strrchr
Multibyte String 函数


Finds the last occurrence of a character in a string within another

mb_strpos
mb_strrichr
Multibyte String 函数
PHP 手册

mb_strrchr

(PHP 5 >= 5.2.0)

mb_strrchr — Finds the last occurrence of a character in a string within another

说明

string mb_strrchr ( string $haystack , string $needle [, bool $part [, string $encoding ]] )

mb_strrchr() finds the last occurrence of needle in haystack and returns the portion of haystack . If needle is not found, it returns FALSE.

参数

haystack

The string from which to get the last occurrence of needle

needle

The string to find in haystack

part

Determines which portion of haystack this function returns. If set to TRUE, it returns all of haystack from the beginning to the last occurrence of needle . If set to FALSE, it returns all of haystack from the last occurrence of needle to the end, Default value is FALSE.

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

返回值

Returns the portion of haystack . or FALSE if needle is not found.

参见

  • strrchr() - Find the last occurrence of a character in a string
  • mb_strstr() - Finds first occurrence of a string within another
  • mb_strrichr() - Finds the last occurrence of a character in a string within another, case insensitive

mb_strpos
mb_strrichr
Multibyte String 函数


Finds the last occurrence of a character in a string within another, case insensitive

mb_strrchr
mb_strripos
Multibyte String 函数
PHP 手册

mb_strrichr

(PHP 5 >= 5.2.0)

mb_strrichr — Finds the last occurrence of a character in a string within another, case insensitive

说明

string mb_strrichr ( string $haystack , string $needle [, bool $part [, string $encoding ]] )

mb_strrichr() finds the last occurrence of needle in haystack and returns the portion of haystack . Unlike mb_strrchr(), mb_strrichr() is case-insensitive. If needle is not found, it returns FALSE.

参数

haystack

The string from which to get the last occurrence of needle

needle

The string to find in haystack

part

Determines which portion of haystack this function returns. If set to TRUE, it returns all of haystack from the beginning to the last occurrence of needle . If set to FALSE, it returns all of haystack from the last occurrence of needle to the end, Default value is FALSE.

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

返回值

Returns the portion of haystack . or FALSE if needle is not found.

参见

  • mb_stristr() - Finds first occurrence of a string within another, case insensitive
  • mb_strrchr() - Finds the last occurrence of a character in a string within another

mb_strrchr
mb_strripos
Multibyte String 函数


Finds position of last occurrence of a string within another, case insensitive

mb_strrichr
mb_strrpos
Multibyte String 函数
PHP 手册

mb_strripos

(PHP 5 >= 5.2.0)

mb_strripos — Finds position of last occurrence of a string within another, case insensitive

说明

int mb_strripos ( string $haystack , string $needle [, int $offset [, string $encoding ]] )

mb_strripos() performs multi-byte safe strripos() operation based on number of characters. needle position is counted from the beginning of haystack . First character's position is 0. Second character position is 1. Unlike mb_strrpos(), mb_strripos() is case-insensitive.

参数

haystack

The string from which to get the position of the last occurrence of needle

needle

The string to find in haystack

offset

The position in haystack to start searching

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

返回值

Return the numeric position of the last occurrence of needle in the haystack string, or FALSE if needle is not found.

参见

  • strripos() - Find position of last occurrence of a case-insensitive string in a string
  • strrpos() - Find position of last occurrence of a char in a string
  • mb_strrpos() - Find position of last occurrence of a string in a string

mb_strrichr
mb_strrpos
Multibyte String 函数


Find position of last occurrence of a string in a string

mb_strripos
mb_strstr
Multibyte String 函数
PHP 手册

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrpos — Find position of last occurrence of a string in a string

说明

int mb_strrpos ( string $haystack , string $needle [, int $offset [, string $encoding ]] )

Performs a multibyte safe strrpos() operation based on the number of characters. needle position is counted from the beginning of haystack . First character's position is 0. Second character position is 1.

参数

haystack

The string being checked, for the last occurrence of needle

needle

The string to find in haystack .

offset
May be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string.
encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

Returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

更新日志

版本 | 说明
5.2.0 | Added the optional parameter offset .

注释

Note: The encoding parameter was moved from the third position to the fourth in PHP 5.2.0. For backward compatibility, encoding can be specified as the third parameter, but doing so is deprecated and will be removed in the future.

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

参见

  • mb_strpos() - Find position of first occurrence of string in a string
  • mb_internal_encoding() - Set/Get internal character encoding
  • strrpos() - Find position of last occurrence of a char in a string

mb_strripos
mb_strstr
Multibyte String 函数


Finds first occurrence of a string within another

mb_strrpos
mb_strtolower
Multibyte String 函数
PHP 手册

mb_strstr

(PHP 5 >= 5.2.0)

mb_strstr — Finds first occurrence of a string within another

说明

string mb_strstr ( string $haystack , string $needle [, bool $part [, string $encoding ]] )

mb_strstr() finds the first occurrence of needle in haystack and returns the portion of haystack . If needle is not found, it returns FALSE.

参数

haystack

The string from which to get the first occurrence of needle

needle

The string to find in haystack

part

Determines which portion of haystack this function returns. If set to TRUE, it returns all of haystack from the beginning to the first occurrence of needle . If set to FALSE, it returns all of haystack from the first occurrence of needle to the end, Default value is FALSE.

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

返回值

Returns the portion of haystack , or FALSE if needle is not found.

参见

  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string
  • mb_stristr() - Finds first occurrence of a string within another, case insensitive

mb_strrpos
mb_strtolower
Multibyte String 函数


Make a string lowercase

mb_strstr
mb_strtoupper
Multibyte String 函数
PHP 手册

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolower — Make a string lowercase

说明

string mb_strtolower ( string $str [, string $encoding=mb_internal_encoding() ] )

Returns str with all alphabetic characters converted to lowercase.

参数

str

The string being lowercased.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

str with all alphabetic characters converted to lowercase.

Unicode

For more information about the Unicode properties, please see » http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

范例

Example #1 mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

参见

  • mb_strtoupper() - Make a string uppercase
  • mb_convert_case() - Perform case folding on a string
  • strtolower() - Make a string lowercase

mb_strstr
mb_strtoupper
Multibyte String 函数


Make a string uppercase

mb_strtolower
mb_strwidth
Multibyte String 函数
PHP 手册

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupper — Make a string uppercase

说明

string mb_strtoupper ( string $str [, string $encoding=mb_internal_encoding() ] )

Returns str with all alphabetic characters converted to uppercase.

参数

str

The string being uppercased.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

str with all alphabetic characters converted to uppercase.

Unicode

For more information about the Unicode properties, please see » http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (ä).

范例

Example #1 mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

参见

  • mb_strtolower() - Make a string lowercase
  • mb_convert_case() - Perform case folding on a string
  • strtoupper() - Make a string uppercase

mb_strtolower
mb_strwidth
Multibyte String 函数


Return width of string

mb_strtoupper
mb_substitute_character
Multibyte String 函数
PHP 手册

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidth — Return width of string

说明

int mb_strwidth ( string $str [, string $encoding ] )

Returns the width of string str .

Multi-byte characters are usually twice the width of single byte characters.

Characters width
Chars | Width
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

参数

str

The string being decoded.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

The width of string str .

参见

  • mb_strimwidth() - Get truncated string with specified width
  • mb_internal_encoding() - Set/Get internal character encoding

mb_strtoupper
mb_substitute_character
Multibyte String 函数


Set/Get substitution character

mb_strwidth
mb_substr_count
Multibyte String 函数
PHP 手册

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_character — Set/Get substitution character

说明

mixed mb_substitute_character ([ mixed $substrchar ] )

Specifies a substitution character when input character encoding is invalid or character code does not exist in output character encoding. Invalid characters may be substituted NULL (no output), string or integer value (Unicode character code value).

This setting affects mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
and mb_send_mail().

参数

substrchar

Specify the Unicode value as an integer, or as one of the following strings:

  • "none" : no output
  • "long" : Output character code value (Example: U+3000,JIS+7E7E)

返回值

If substchar is set, it returns TRUE for success, otherwise returns FALSE. If substchar is not set, it returns the Unicode value, or "none" or "long".

范例

Example #1 mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>

mb_strwidth
mb_substr_count
Multibyte String 函数


Count the number of substring occurrences

mb_substitute_character
mb_substr
Multibyte String 函数
PHP 手册

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_count — Count the number of substring occurrences

说明

int mb_substr_count ( string $haystack , string $needle [, string $encoding ] )

Counts the number of times the needle substring occurs in the haystack string.

参数

haystack

The string being checked.

needle

The string being found.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

The number of times the needle substring occurs in the haystack string.

范例

Example #1 mb_substr_count() example

<?php
echo mb_substr_count("This is a test", "is"); // prints out 2
?>

参见

  • mb_strpos() - Find position of first occurrence of string in a string
  • mb_substr() - Get part of string
  • substr_count() - Count the number of substring occurrences

mb_substitute_character
mb_substr
Multibyte String 函数


Get part of string

mb_substr_count
Pspell
Multibyte String 函数
PHP 手册

mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substr — Get part of string

说明

string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

Performs a multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str . First character's position is 0. Second character position is 1, and so on.

参数

str

The string being checked.

start

The first position used in str .

length

The maximum length of the returned string.

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

返回值

mb_substr() returns the portion of str specified by the start and length parameters.

参见

  • mb_strcut() - Get part of string
  • mb_internal_encoding() - Set/Get internal character encoding

mb_substr_count
Pspell
Multibyte String 函数


Pspell

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Pspell 函数
    • pspell_add_to_personal — Add the word to a personal wordlist
    • pspell_add_to_session — Add the word to the wordlist in the current session
    • pspell_check — Check a word
    • pspell_clear_session — Clear the current session
    • pspell_config_create — Create a config used to open a dictionary
    • pspell_config_data_dir — location of language data files
    • pspell_config_dict_dir — Location of the main word list
    • pspell_config_ignore — Ignore words less than N characters long
    • pspell_config_mode — Change the mode number of suggestions returned
    • pspell_config_personal — Set a file that contains personal wordlist
    • pspell_config_repl — Set a file that contains replacement pairs
    • pspell_config_runtogether — Consider run-together words as valid compounds
    • pspell_config_save_repl — Determine whether to save a replacement pairs list along with the wordlist
    • pspell_new_config — Load a new dictionary with settings based on a given config
    • pspell_new_personal — Load a new dictionary with personal wordlist
    • pspell_new — Load a new dictionary
    • pspell_save_wordlist — Save the personal wordlist to a file
    • pspell_store_replacement — Store a replacement pair for a word
    • pspell_suggest — Suggest spellings of a word
mb_substr
简介
国际化与字符编码支持


简介

These functions allow you to check the spelling of a word and offer suggestions.

Pspell
安装/配置
Pspell


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Pspell


需求

To compile PHP with pspell support, you need the aspell library, available from » http://aspell.sourceforge.net/.

安装/配置
安装
安装/配置


安装

If you have the libraries needed add the --with-pspell[=dir] option when compiling PHP.

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: aspell-15.dll from the bin folder of the aspell installation.
Win32 support is available only in PHP 4.3.3 and later versions. Also, at least aspell version 0.50 is required.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

PSPELL_FAST (integer)
PSPELL_NORMAL (integer)
PSPELL_BAD_SPELLERS (integer)
PSPELL_RUN_TOGETHER (integer)
资源类型
Pspell 函数
Pspell


Pspell 函数

Table of Contents

  • pspell_add_to_personal — Add the word to a personal wordlist
  • pspell_add_to_session — Add the word to the wordlist in the current session
  • pspell_check — Check a word
  • pspell_clear_session — Clear the current session
  • pspell_config_create — Create a config used to open a dictionary
  • pspell_config_data_dir — location of language data files
  • pspell_config_dict_dir — Location of the main word list
  • pspell_config_ignore — Ignore words less than N characters long
  • pspell_config_mode — Change the mode number of suggestions returned
  • pspell_config_personal — Set a file that contains personal wordlist
  • pspell_config_repl — Set a file that contains replacement pairs
  • pspell_config_runtogether — Consider run-together words as valid compounds
  • pspell_config_save_repl — Determine whether to save a replacement pairs list along with the wordlist
  • pspell_new_config — Load a new dictionary with settings based on a given config
  • pspell_new_personal — Load a new dictionary with personal wordlist
  • pspell_new — Load a new dictionary
  • pspell_save_wordlist — Save the personal wordlist to a file
  • pspell_store_replacement — Store a replacement pair for a word
  • pspell_suggest — Suggest spellings of a word
预定义常量
pspell_add_to_personal
Pspell


Add the word to a personal wordlist

Pspell 函数
pspell_add_to_session
Pspell 函数
PHP 手册

pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personal — Add the word to a personal wordlist

说明

bool pspell_add_to_personal ( int $dictionary_link , string $word )

pspell_add_to_personal() adds a word to the personal wordlist. If you used pspell_new_config() with pspell_config_personal() to open the dictionary, you can save the wordlist later with pspell_save_wordlist().

参数

dictionary_link

word

The added word.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

注释

Note: This function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Pspell 函数
pspell_add_to_session
Pspell 函数


Add the word to the wordlist in the current session

pspell_add_to_personal
pspell_check
Pspell 函数
PHP 手册

pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_session — Add the word to the wordlist in the current session

说明

bool pspell_add_to_session ( int $dictionary_link , string $word )

pspell_add_to_session() adds a word to the wordlist associated with the current session. It is very similar to pspell_add_to_personal()

参数

dictionary_link

word

The added word.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

pspell_add_to_personal
pspell_check
Pspell 函数


Check a word

pspell_add_to_session
pspell_clear_session
Pspell 函数
PHP 手册

pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_check — Check a word

说明

bool pspell_check ( int $dictionary_link , string $word )

pspell_check() checks the spelling of a word.

参数

dictionary_link

word

The tested word.

返回值

Returns TRUE if the spelling is correct, FALSE if not.

范例

Example #1 pspell_check() Example

<?php
$pspell_link = pspell_new("en");

if (pspell_check($pspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}
?>

pspell_add_to_session
pspell_clear_session
Pspell 函数


Clear the current session

pspell_check
pspell_config_create
Pspell 函数
PHP 手册

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_session — Clear the current session

说明

bool pspell_clear_session ( int $dictionary_link )

pspell_clear_session() clears the current session. The current wordlist becomes blank, and, for example, if you try to save it with pspell_save_wordlist(), nothing happens.

参数

dictionary_link

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_add_to_personal() Example

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //"Vlad" will not be saved
?>

pspell_check
pspell_config_create
Pspell 函数


Create a config used to open a dictionary

pspell_clear_session
pspell_config_data_dir
Pspell 函数
PHP 手册

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_create — Create a config used to open a dictionary

说明

int pspell_config_create ( string $language [, string $spelling [, string $jargon [, string $encoding ]]] )

Create a config used to open a dictionary.

pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() immediately followed by pspell_new_config() will produce the exact same result. However, after creating a new config, you can also use pspell_config_*() functions before calling pspell_new_config() to take advantage of some advanced functionality.

For more information and examples, check out inline manual pspell website:» http://aspell.net/.

参数

language

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

spelling

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

jargon

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

encoding

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

返回值

Retuns a pspell config identifier, or FALSE on error.

范例

Example #1 pspell_config_create()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "en");
?>

pspell_clear_session
pspell_config_data_dir
Pspell 函数


location of language data files

pspell_config_create
pspell_config_dict_dir
Pspell 函数
PHP 手册

pspell_config_data_dir

(PHP 5)

pspell_config_data_dir — location of language data files

说明

bool pspell_config_data_dir ( int $conf , string $directory )

Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

pspell_config_create
pspell_config_dict_dir
Pspell 函数


Location of the main word list

pspell_config_data_dir
pspell_config_ignore
Pspell 函数
PHP 手册

pspell_config_dict_dir

(PHP 5)

pspell_config_dict_dir — Location of the main word list

说明

bool pspell_config_dict_dir ( int $conf , string $directory )

Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

pspell_config_data_dir
pspell_config_ignore
Pspell 函数


Ignore words less than N characters long

pspell_config_dict_dir
pspell_config_mode
Pspell 函数
PHP 手册

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignore — Ignore words less than N characters long

说明

bool pspell_config_ignore ( int $dictionary_link , int $n )

pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spell checker.

参数

dictionary_link

n

Words less than n characters will be skipped.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    //will not result in an error
?>

pspell_config_dict_dir
pspell_config_mode
Pspell 函数


Change the mode number of suggestions returned

pspell_config_ignore
pspell_config_personal
Pspell 函数
PHP 手册

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_mode — Change the mode number of suggestions returned

说明

bool pspell_config_mode ( int $dictionary_link , int $mode )

pspell_config_mode() should be used on a config before calling pspell_new_config(). This function determines how many suggestions will be returned by pspell_suggest().

参数

dictionary_link

mode

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)
  • PSPELL_NORMAL - Normal mode (more suggestions)
  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_config_mode() Example

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

pspell_config_ignore
pspell_config_personal
Pspell 函数


Set a file that contains personal wordlist

pspell_config_mode
pspell_config_repl
Pspell 函数
PHP 手册

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personal — Set a file that contains personal wordlist

说明

bool pspell_config_personal ( int $dictionary_link , string $file )

Set a file that contains personal wordlist. The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). The file is also the file where pspell_save_wordlist() will save personal wordlist to.

pspell_config_personal() should be used on a config before calling pspell_new_config().

参数

dictionary_link

file

The personal wordlist. If the file does not exist, it will be created. The file should be writable by whoever PHP runs as (e.g. nobody).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

注释

Note: This function will not work unless you have pspell .11.2 and aspell .32.5 or later.

pspell_config_mode
pspell_config_repl
Pspell 函数


Set a file that contains replacement pairs

pspell_config_personal
pspell_config_runtogether
Pspell 函数
PHP 手册

pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_repl — Set a file that contains replacement pairs

说明

bool pspell_config_repl ( int $dictionary_link , string $file )

Set a file that contains replacement pairs.

The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a proper suggestion was not found in the list, pspell_store_replacement() can be used to store a replacement pair and then pspell_save_wordlist() to save the wordlist along with the replacement pairs.

pspell_config_repl() should be used on a config before calling pspell_new_config().

参数

dictionary_link

file

The file should be writable by whoever PHP runs as (e.g. nobody).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

注释

Note: This function will not work unless you have pspell .11.2 and aspell .32.5 or later.

pspell_config_personal
pspell_config_runtogether
Pspell 函数


Consider run-together words as valid compounds

pspell_config_repl
pspell_config_save_repl
Pspell 函数
PHP 手册

pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogether — Consider run-together words as valid compounds

说明

bool pspell_config_runtogether ( int $dictionary_link , bool $flag )

This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

pspell_config_runtogether() should be used on a config before calling pspell_new_config().

参数

dictionary_link

flag

TRUE if run-together words should be treated as legal compounds, FALSE otherwise.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

pspell_config_repl
pspell_config_save_repl
Pspell 函数


Determine whether to save a replacement pairs list along with the wordlist

pspell_config_runtogether
pspell_new_config
Pspell 函数
PHP 手册

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_repl — Determine whether to save a replacement pairs list along with the wordlist

说明

bool pspell_config_save_repl ( int $dictionary_link , bool $flag )

pspell_config_save_repl() determines whether pspell_save_wordlist() will save the replacement pairs along with the wordlist. Usually there is no need to use this function because if pspell_config_repl() is used, the replacement pairs will be saved by pspell_save_wordlist() anyway, and if it is not, the replacement pairs will not be saved.

pspell_config_save_repl() should be used on a config before calling pspell_new_config().

参数

dictionary_link

flag

TRUE if replacement pairs should be saved, FALSE otherwise.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: This function will not work unless you have pspell .11.2 and aspell .32.5 or later.

pspell_config_runtogether
pspell_new_config
Pspell 函数


Load a new dictionary with settings based on a given config

pspell_config_save_repl
pspell_new_personal
Pspell 函数
PHP 手册

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_config — Load a new dictionary with settings based on a given config

说明

int pspell_new_config ( int $config )

pspell_new_config() opens up a new dictionary with settings specified in a config, created with pspell_config_create() and modified with pspell_config_*() functions. This method provides you with the most flexibility and has all the functionality provided by pspell_new() and pspell_new_personal().

参数

config

The config parameter is the one returned by pspell_config_create() when the config was created.

返回值

Returns a dictionary link identifier on success.

范例

Example #1 pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>

pspell_config_save_repl
pspell_new_personal
Pspell 函数


Load a new dictionary with personal wordlist

pspell_new_config
pspell_new
Pspell 函数
PHP 手册

pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personal — Load a new dictionary with personal wordlist

说明

int pspell_new_personal ( string $personal , string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode=0 ]]]] )

pspell_new_personal() opens up a new dictionary with a personal wordlist. The wordlist can be modified and saved with pspell_save_wordlist(), if desired. However, the replacement pairs are not saved. In order to save replacement pairs, you should create a config using pspell_config_create(), set the personal wordlist file with pspell_config_personal(), set the file for replacement pairs with pspell_config_repl(), and open a new dictionary with pspell_new_config().

For more information and examples, check out inline manual pspell website:» http://aspell.net/.

参数

personal

The file where words added to the personal list will be stored. It should be an absolute filename beginning with '/' because otherwise it will be relative to $HOME, which is "/root" for most systems, and is probably not what you want.

language

The language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

spelling

The requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

jargon

Extra information to distinguish two different words lists that have the same language and spelling parameters.

encoding

The encoding that words are expected to be in. Valid values are utf-8, iso8859-*, koi8-r, viscii, cp1252, machine unsigned 16, machine unsigned 32.

mode

The mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)
  • PSPELL_NORMAL - Normal mode (more suggestions)
  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)
  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

返回值

Returns the dictionary link identifier for use in other pspell functions.

范例

Example #1 pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

pspell_new_config
pspell_new
Pspell 函数


Load a new dictionary

pspell_new_personal
pspell_save_wordlist
Pspell 函数
PHP 手册

pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_new — Load a new dictionary

说明

int pspell_new ( string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode=0 ]]]] )

pspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other pspell functions.

For more information and examples, check out inline manual pspell website:» http://aspell.net/.

参数

language

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

spelling

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

jargon

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

encoding

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

mode

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)
  • PSPELL_NORMAL - Normal mode (more suggestions)
  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)
  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

返回值

Returns the dictionary link identifier on success, or FALSE on failure.

范例

Example #1 pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

pspell_new_personal
pspell_save_wordlist
Pspell 函数


Save the personal wordlist to a file

pspell_new
pspell_store_replacement
Pspell 函数
PHP 手册

pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlist — Save the personal wordlist to a file

说明

bool pspell_save_wordlist ( int $dictionary_link )

pspell_save_wordlist() saves the personal wordlist from the current session. The location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl().

参数

dictionary_link

A dictionary link identifier opened with pspell_new_personal().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

注释

Note: This function will not work unless you have pspell .11.2 and aspell .32.5 or later.

pspell_new
pspell_store_replacement
Pspell 函数


Store a replacement pair for a word

pspell_save_wordlist
pspell_suggest
Pspell 函数
PHP 手册

pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacement — Store a replacement pair for a word

说明

bool pspell_store_replacement ( int $dictionary_link , string $misspelled , string $correct )

pspell_store_replacement() stores a replacement pair for a word, so that replacement can be returned by pspell_suggest() later. In order to be able to take advantage of this function, you have to use pspell_new_personal() to open the dictionary. In order to permanently save the replacement pair, you have to use pspell_config_personal() and pspell_config_repl() to set the path where to save your custom wordlists, and then use pspell_save_wordlist() for the changes to be written to disk.

参数

dictionary_link

A dictionary link identifier, opened with pspell_new_personal()

misspelled

The misspelled word.

correct

The fixed spelling for the misspelled word.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

注释

Note: This function will not work unless you have pspell .11.2 and aspell .32.5 or later.

pspell_save_wordlist
pspell_suggest
Pspell 函数


Suggest spellings of a word

pspell_store_replacement
Recode
Pspell 函数
PHP 手册

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggest — Suggest spellings of a word

说明

array pspell_suggest ( int $dictionary_link , string $word )

pspell_suggest() returns an array of possible spellings for the given word.

参数

dictionary_link

word

The tested word.

返回值

Returns an array of possible spellings.

范例

Example #1 pspell_suggest() example

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br />";
    }
}
?>

pspell_store_replacement
Recode
Pspell 函数


GNU Recode

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Recode 函数
    • recode_file — Recode from file to file according to recode request
    • recode_string — Recode a string according to a recode request
    • recode — 别名 recode_string
pspell_suggest
简介
国际化与字符编码支持


简介

This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most » RFC 1345 character sets are supported.

Note: 本扩展模块在 Windows 平台下不可用。

Recode
安装/配置
Recode


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Recode


需求

You must have GNU Recode 3.5 or higher installed on your system. You can download the package from » http://directory.fsf.org/All_GNU_Packages/recode.html.

Warning

The Recode library version 3.6 adds weird characters behind converted strings under certain circumstances. Thus it's safer to use Recode v3.5 or one of the available alternatives like the iconv or mbstring extension.

安装/配置
安装
安装/配置


安装

To be able to use the functions defined in this module you must compile your PHP interpreter using the --with-recode[=DIR] option.

Warning

Crashes and startup problems of PHP may be encountered when loading the recode as extension after loading any extension of mysql or imap. Loading the recode before those extension has proved to fix the problem. This is due a technical problem that both the c-client library used by imap and recode have their own hash_lookup() function and both mysql and recode have their own hash_insert function.

Warning

IMAP，recode，YAZ 和 Cyrus 扩展模块不能同时使用，因为它们共享了相同的内部符号。

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Recode 函数
Recode


Recode 函数

Table of Contents

  • recode_file — Recode from file to file according to recode request
  • recode_string — Recode a string according to a recode request
  • recode — 别名 recode_string
预定义常量
recode_file
Recode


Recode from file to file according to recode request

Recode 函数
recode_string
Recode 函数
PHP 手册

recode_file

(PHP 4, PHP 5)

recode_file — Recode from file to file according to recode request

说明

bool recode_file ( string $request , resource $input , resource $output )

Recode the file referenced by file handle input into the file referenced by file handle output according to the recode request .

参数

request

The desired recode request type

input

A local file handle resource for the input

output

A local file handle resource for the output

返回值

Returns FALSE, if unable to comply, TRUE otherwise.

范例

Example #1 Basic recode_file() example

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

注释

This function does not currently process file handles referencing remote files (URLs). Both file handles must refer to local files.

参见

  • fopen() - 打开文件或者 URL

Recode 函数
recode_string
Recode 函数


Recode a string according to a recode request

recode_file
recode
Recode 函数
PHP 手册

recode_string

(PHP 4, PHP 5)

recode_string — Recode a string according to a recode request

说明

string recode_string ( string $request , string $string )

Recode the string string according to the recode request request .

参数

request

The desired recode request type

string

The string to be recoded

返回值

Returns the recoded string or FALSE, if unable to perform the recode request.

范例

Example #1 Basic recode_string() example

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: &aacute;");
?>

注释

A simple recode request may be "lat1..iso646-de".

参见

  • The GNU Recode documentation of your installation for detailed instructions about recode requests.

recode_file
recode
Recode 函数


别名 recode_string

recode_string
Unicode
Recode 函数
PHP 手册

recode

(PHP 4, PHP 5)

recode — 别名 recode_string()

说明

本函数是该函数的别名： recode_string().

recode_string
Unicode
Recode 函数


Unicode

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Unicode 函数
    • unicode_decode — Convert a binary string into a Unicode string
    • unicode_encode — Convert a unicode string in any encoding
    • unicode_get_error_mode — Get the error mode for strings conversions
    • unicode_get_subst_char — Get the substitution character for string conversion errors
    • unicode_set_error_mode — Set the error mode for strings conversions
    • unicode_set_subst_char — Set the substitution character for string conversion errors
recode
简介
国际化与字符编码支持


简介

Unicode Support.

Warning

This extension is still in development and it isn't available to public yet.

Unicode
安装/配置
Unicode


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Unicode


需求

» ICU 3.4 or later is required.

安装/配置
安装
安装/配置


安装

First you should download and install ICU:

Example #1 install ICU on Unix

./configure --disable-threads --enable-extras --enable-icuio --enable-layout
make && make install

Then checkout latest PHP and configure it --with-icu-dir=<dir> option, where <dir> was the dir to where you installed ICU. You don't need to explicitly use this option if you install ICU to a standard location.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Unicode Configuration Options
Name | Default | Changeable | Changelog
unicode.fallback_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.from_error_mode | "2" | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.from_error_subst_char | "3f" | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.http_input_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.output_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.runtime_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.script_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

unicode.output_encoding string

Default encoding for output.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

constant | value | description
U_INVALID_STOP | 0 | stop at first invalid character
U_INVALID_SKIP | 1 | skip invalid characters
U_INVALID_SUBSTITUTE | 2 | replace invalid characters
U_INVALID_ESCAPE | 3 | escape invalid characters

资源类型
Unicode 函数
Unicode


Unicode 函数

Table of Contents

  • unicode_decode — Convert a binary string into a Unicode string
  • unicode_encode — Convert a unicode string in any encoding
  • unicode_get_error_mode — Get the error mode for strings conversions
  • unicode_get_subst_char — Get the substitution character for string conversion errors
  • unicode_set_error_mode — Set the error mode for strings conversions
  • unicode_set_subst_char — Set the substitution character for string conversion errors
预定义常量
unicode_decode
Unicode


Convert a binary string into a Unicode string

Unicode 函数
unicode_encode
Unicode 函数
PHP 手册

unicode_decode

(PHP 6 >= 6.0.0)

unicode_decode — Convert a binary string into a Unicode string

说明

unicode unicode_decode ( string $input , string $encoding [, int $errmode ] )

Convert a binary string encoded in encoding to a unicode string.

参数

input

Try string that is converted.

encoding

The encoding of input .

errmode

Conversion error mode. This parameter determines the action to take when the converter cannot convert a character. For a list of available modes, refer to unicode_set_error_mode(). If the parameter is not set, the global error mode is used.

返回值

A unicode string or FALSE on failure.

错误／异常

Emits a E_WARNING level error if a converter cannot be created for the desired encoding .

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • unicode_set_error_mode() - Set the error mode for strings conversions
  • unicode_semantics()
  • unicode_encode() - Convert a unicode string in any encoding

Unicode 函数
unicode_encode
Unicode 函数


Convert a unicode string in any encoding

unicode_decode
unicode_get_error_mode
Unicode 函数
PHP 手册

unicode_encode

(PHP 6 >= 6.0.0)

unicode_encode — Convert a unicode string in any encoding

说明

string unicode_encode ( unicode $input , string $encoding [, int $errmode ] )

Takes a unicode string and converts it to a string in the specified encoding .

参数

input

The unicode string that is converted.

encoding

The new encoding for input .

errmode

Conversion error mode. This parameter determines the action to take when the converter cannot convert a character. For a list of available modes, refer to unicode_set_error_mode(). If the parameter is not set, the global error mode is used.

返回值

A string on success, or FALSE on failure.

错误／异常

Emits a E_WARNING level error if a converter cannot be created for the desired encoding .

范例

Example #1 A unicode_encode() example

Note: The characters will be seen instead of entities in the output.

<?php
header ('Content-Type: text/plain; charset=ISO-8859-2');

$encoded = unicode_encode ('\u0150\u0179', 'ISO-8859-2');

echo 'Unicode semantics: ', ini_get ('unicode_semantics'), PHP_EOL;
echo 'The string itself:', $encoded, PHP_EOL;
echo 'The length of the string: ', strlen ($encoded);
?>

上例的输出类似于：

Unicode semantics: 1
The string itself: &#336;&#377;
The length of the string: 2

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • unicode_set_error_mode() - Set the error mode for strings conversions
  • unicode_semantics()
  • unicode_decode() - Convert a binary string into a Unicode string

unicode_decode
unicode_get_error_mode
Unicode 函数


Get the error mode for strings conversions

unicode_encode
unicode_get_subst_char
Unicode 函数
PHP 手册

unicode_get_error_mode

(PHP 6 >= 6.0.0)

unicode_get_error_mode — Get the error mode for strings conversions

说明

int unicode_get_error_mode ( int $direction )

Return the current error mode for string conversions in direction .

参数

direction

Get the error mode for conversion direction . This can either be FROM_UNICODE or TO_UNICODE. See unicode_set_error_mode() for more details.

返回值

This function returns one of the error mode constants or FALSE on failure.

错误／异常

Emits a E_WARNING level error if direction is invalid.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • unicode_set_error_mode() - Set the error mode for strings conversions
  • unicode_encode() - Convert a unicode string in any encoding
  • unicode_decode() - Convert a binary string into a Unicode string

unicode_encode
unicode_get_subst_char
Unicode 函数


Get the substitution character for string conversion errors

unicode_get_error_mode
unicode_set_error_mode
Unicode 函数
PHP 手册

unicode_get_subst_char

(PHP 6 >= 6.0.0)

unicode_get_subst_char — Get the substitution character for string conversion errors

说明

unicode unicode_get_subst_char ( void )

Return the substitution character for string conversion errors set by unicode_set_subst_char().

返回值

The unicode substitution character is returned.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • unicode_set_error_mode() - Set the error mode for strings conversions
  • unicode_set_subst_char() - Set the substitution character for string conversion errors

unicode_get_error_mode
unicode_set_error_mode
Unicode 函数


Set the error mode for strings conversions

unicode_get_subst_char
unicode_set_subst_char
Unicode 函数
PHP 手册

unicode_set_error_mode

(PHP 6 >= 6.0.0)

unicode_set_error_mode — Set the error mode for strings conversions

说明

bool unicode_set_error_mode ( int $direction , int $mode )

This function sets the error mode for string conversions between different encodings. An error can occur during conversion when an illegal character is encountered or if a character cannot be represented into the new encoding. By default, when an error is encountered, the conversion stops.

参数

direction

The direction sets the conversion direction to which the error mode will apply. This can either be FROM_UNICODE, which will set the error mode for conversions from a unicode string to a binary string or TO_UNICODE, which will set the error mode for conversions from a binary string to a unicode string.

mode

mode determines how the conversion errors are handled. It should be one of the following constants:

Available modes
Mode | Description
U_CONV_ERROR_STOP | Stop the conversion. This is the default mode.
U_CONV_ERROR_SKIP | Skip the character.
U_CONV_ERROR_SUBST | Substitute the character. The substituting character can be set with unicode_set_subst_char().
U_CONV_ERROR_ESCAPE_UNICODE | Escape the faulty bytes and represent them in the Unicode character format.
U_CONV_ERROR_ESCAPE_ICU | Escape the faulty bytes and represent them in the ICU character format.
U_CONV_ERROR_ESCAPE_JAVA | Escape the faulty bytes and print them in the Java character format.
U_CONV_ERROR_ESCAPE_XML_DEC | Escape the faulty bytes and represent them in decimal format.
U_CONV_ERROR_ESCAPE_XML_HEX | Escape the faulty bytes and represent them in hexadecimal format.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Emits a E_WARNING level error if the direction or the mode are invalid.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • unicode_encode() - Convert a unicode string in any encoding
  • unicode_decode() - Convert a binary string into a Unicode string

unicode_get_subst_char
unicode_set_subst_char
Unicode 函数


Set the substitution character for string conversion errors

unicode_set_error_mode
图像生成和处理
Unicode 函数
PHP 手册

unicode_set_subst_char

(PHP 6 >= 6.0.0)

unicode_set_subst_char — Set the substitution character for string conversion errors

说明

bool unicode_set_subst_char ( unicode $character )

When converting a string from or to unicode, an invalid or unconvertible character may be encountered. When the conversion error mode is set to U_CONV_ERROR_SUBST, the character that caused the error is substituted by a character set by this function. The default substitution character is ?.

参数

character

The substitution character to use.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Emits a E_WARNING level error if character is invalid.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • unicode_set_error_mode() - Set the error mode for strings conversions
  • unicode_get_error_mode() - Get the error mode for strings conversions
  • unicode_encode() - Convert a unicode string in any encoding
  • unicode_decode() - Convert a binary string into a Unicode string

unicode_set_error_mode
图像生成和处理
Unicode 函数


图像生成和处理

  • Exif — Exchangeable image information
    • 简介
    • 安装/配置
    • 预定义常量
    • Exif 函数
  • GD — Image Processing (GD)
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • GD 函数
  • ImageMagick — Image Processing (ImageMagick)
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • The Imagick class
    • The ImagickDraw class
    • The ImagickPixel class
    • The ImagickPixelIterator class
unicode_set_subst_char
Exif
函数参考


Exchangeable image information

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Exif 函数
    • exif_imagetype — 判断一个图像的类型
    • exif_read_data — 从 JPEG 或 TIFF 文件中读取 EXIF 头信息
    • exif_tagname — Get the header name for an index
    • exif_thumbnail — 取得嵌入在 TIFF 或 JPEG 图像中的缩略图
    • read_exif_data — exif_read_data 的别名
图像生成和处理
简介
图像生成和处理


简介

With the exif extension you are able to work with image meta data. For example, you may use exif functions to read meta data of pictures taken from digital cameras by working with information stored in the headers of the JPEG and TIFF images.

Exif
安装/配置
Exif


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Exif


需求

Your PHP must be compiled in with --enable-exif. PHP does not require any additional library for the exif module. Windows users must also have the mbstring extension enabled.

安装/配置
安装
安装/配置


安装

To enable exif-support configure PHP with --enable-exif

Windows users must enable both the php_mbstring.dll and php_exif.dll DLL's in php.ini. The php_mbstring.dll DLL must be loaded before the php_exif.dll DLL so adjust your php.ini accordingly.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

当 mbstring 模块可用时，exif 支持用户注释中的 Unicode 和 JIS 字符编码的自动转换。这是通过先用指定字符集将注释解码，把结果再用另一个符合你的 HTTP 输出的字符集编码来实现的。

Exif configuration options
名称 | 默认值 | 可修改范围 | 更新记录
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
exif.encode_jis | "" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

exif.encode_unicode string

exif.encode_unicode 定义了 UNICODE 用户注释被处理的字符集。默认为 ISO-8859-15，可用于大多数非亚洲国家。本设置可以为空或者必须为一个 mbstring 所支持的编码。如果为空，则使用当前 mbstring 内部使用的编码。

exif.decode_unicode_motorola string

exif.decode_unicode_motorola 定义了 Unicode 编码的用户注释的图像内部字符集，如果图像是摩托罗拉字节顺序（big-endian）的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 UCS-2BE。

exif.decode_unicode_intel string

exif.decode_unicode_intel 定义了 Unicode 编码的用户注释的图像内部字符集，如果图像是英特尔字节顺序（little-endian）的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 UCS-2LE。

exif.encode_jis string

exif.encode_jis 定义了 JIS 用户注释被处理的字符集。默认为空值，迫使函数使用当前 mbstring 使用的内部编码。

exif.decode_jis_motorola string

exif.decode_jis_motorola 定义了 JIS 编码的用户注释的图像内部字符集，如果图像是摩托罗拉字节顺序（big-endian）的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 JIS。

exif.decode_jis_intel string

exif.decode_jis_intel 定义了 JIS 编码的用户注释的图像内部字符集，如果图像是英特尔字节顺序（litle-endian）的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 JIS。

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

EXIF_USE_MBSTRING (integer)

The exif_imagetype() lists several related built-in constants.

资源类型
Exif 函数
Exif


Exif 函数

Table of Contents

  • exif_imagetype — 判断一个图像的类型
  • exif_read_data — 从 JPEG 或 TIFF 文件中读取 EXIF 头信息
  • exif_tagname — Get the header name for an index
  • exif_thumbnail — 取得嵌入在 TIFF 或 JPEG 图像中的缩略图
  • read_exif_data — exif_read_data 的别名
预定义常量
exif_imagetype
Exif


判断一个图像的类型

Exif 函数
exif_read_data
Exif 函数
PHP 手册

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetype — 判断一个图像的类型

说明

int exif_imagetype ( string $filename )

exif_imagetype() 读取一个图像的第一个字节并检查其签名。

本函数可用来避免调用其它 exif 函数用到了不支持的文件类型上或和 $_SERVER['HTTP_ACCEPT'] 结合使用来检查浏览器是否可以显示某个指定的图像。

参数

filename
被检查的图像文件名。

返回值

如果发现了恰当的签名则返回一个对应的常量，否则返回 FALSE。返回值和 getimagesize() 返回的数组中的索引 2 的值是一样的，但本函数快得多。

更新日志

版本 | 说明
4.3.2 | 支持 JPC，JP2，JPX，JB2，XBM 以及 WBMP
4.3.0 | 支持 SWC

预定义常量

定义有以下常量，并代表了 exif_imagetype() 可能的返回值：

图像类型常量
值 | 常量
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II（Intel 字节顺序）
8 | IMAGETYPE_TIFF_MM（Motorola 字节顺序）
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM

范例

Example #1 exif_imagetype() 例子

<?php

if (exif_imagetype("image.gif") != IMAGETYPE_GIF) {
    echo "The picture is not a gif";
}

?>

参见

  • getimagesize() - 取得图像大小

Exif 函数
exif_read_data
Exif 函数


从 JPEG 或 TIFF 文件中读取 EXIF 头信息

exif_imagetype
exif_tagname
Exif 函数
PHP 手册

exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_data — 从 JPEG 或 TIFF 文件中读取 EXIF 头信息

说明

array exif_read_data ( string $filename [, string $sections [, bool $arrays [, bool $thumbnail ]]] )

exif_read_data() 函数从 JPEG 或 TIFF 图像文件中读取 EXIF 头信息。这样就可以读取数码相机产生的元数据。

Exif 头信息往往存在于数码相机生成的 JPEG/TIFF 图像中，但不幸的是每个数码相机制造商的标记都不同，因此（编写代码时）不能依赖于某个特定的 Exif 头信息。

Height 和 Width 是用和 getimagesize() 一样的方法计算的，因此它们的值不能是任何返回的头信息的部分。此外 html 是一个 height/width 的文本字符串可以用于普通的 HTML 中。

当一个 Exif 头信息包含有一个 Copyright 时注意它本身可以包含两个值。解决方案和 Exif 2.10 标准不一致，COMPUTED 区段会同时返回 Copyright.Photographer 和 Copyright.Editor，但是 IFD0 区段则包含有一个字节数组用 NULL 字符分隔开两个项目。或者只有第一项如果数据类型错误的话（Exif 的正常行为）。COMPUTED 也会包含 Copyright，要么是原始的版权字符串，要么是逗号分隔的摄像与编辑的版权信息。

UserComment 标记和 Copyright 有同样的问题。它也可以存储两个值，第一个是使用的编码方式，第二个是其值本身。如果这样则 IFD0 区段仅包含编码方式或者一个字节数组。COMPUTED 区段将存储两个值到 UserCommentEncoding 和 UserComment。UserComment 在两种情况下都可用因此应该优先使用它而不是 IFD0 区段中的该值。

exif_read_data() 还会根据 EXIF 规范（» http://exif.org/Exif2-2.PDF，第 20 页）来验证 EXIF 数据。

Note: Windows ME/XP 在连接到数码相机时能清除掉 Exif 头信息。更多信息见 » http://www.canon.co.jp/Imaging/NOTICE/011214-e.html。

参数

filename

被读取的图像文件名。不能是 URL。

sections

是需要存在于文件中的逗号分隔的区段列表用来产生结果数组。如果未找到所请求的区段则返回值为 FALSE。

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html，Width，Height，IsColor，可能有更多其它的。Height 和 Width 是用和 getimagesize() 一样的方法计算的，因此它们的值不能是任何返回的头信息的部分。此外 html 是一个 height/width 的文本字符串可以用于普通的 HTML 中。
ANY_TAG | 任何包含有标记的信息，例如 IFD0，EXIF，...
IFD0 | 所有 IFD0 的标记数据。在标准的图像文件中这包含了图像大小及其它。
THUMBNAIL | 如果有第二个 IFD，文件应该包含有缩略图。所有有关嵌入缩略图的标记信息都存储在本区。
COMMENT | JPEG 图像的注释头信息。
EXIF | EXIF 区段是 IFDO 的子区，包含有图像的更多详细信息。大多数内容都是数码相机相关的。

arrays

指定了是否每个区段都成为一个数组。sections COMPUTED，THUMBNAIL 和COMMENT 区段总是成为数组，因为它们里面包含的名字和其它区段冲突。

thumbnail

当设定为 TRUE 时，读取缩略图本身。否则只读取标记数据。

返回值

返回一个关联数组，键名是头信息名，值为与其相应的值。如果没有可供返回的数据，exif_read_data() 将返回 FALSE。

更新日志

版本 | 说明
4.3.0 | 可以读取所有嵌入的 IFD 数据，包括数组（也返回数组）。此外嵌入的缩略图的大小包括在 THUMBNAIL 子数组中并且 exif_read_data() 可以将缩略图按照 TIFF 格式返回。最后，不再有返回值最大长度的限制了（直到达到内存限定）。
4.3.0 | 如果 PHP 有 mbstring 支持，则用户注释可以自动改变编码。此外，如果用户注释使用 Unicode 或 JIS 编码，将会根据 EXIF 在 php.ini 中的 设置被自动改变。
4.3.0 | 如果图像包含任何 IFD0 数据，则 COMPUTED 会包含有一项 ByteOrderMotorola，对于 little-endian (intel) 字节顺序，其值为 0，对于 big-endian (motorola) 字节顺序，其值为 1。此外，COMPUTED 和 UserComment 在数据类型出错时也不再仅包含第一个版权条目。

范例

Example #1 exif_read_data() 例子

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />\n";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

第一个调用失败了，因为图像没有头信息。

上例的输出类似于：

test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

参见

  • exif_thumbnail()
  • getimagesize()

exif_imagetype
exif_tagname
Exif 函数


Get the header name for an index

exif_read_data
exif_thumbnail
Exif 函数
PHP 手册

exif_tagname

(PHP 4 >= 4.2.0, PHP 5)

exif_tagname — Get the header name for an index

说明

string exif_tagname ( int $index )
Warning

本函数暂无文档，仅有参数列表。

参数

index

The image index

返回值

Returns the header name, or FALSE if index is undefined.

参见

  • exif_imagetype() - 判断一个图像的类型

exif_read_data
exif_thumbnail
Exif 函数


取得嵌入在 TIFF 或 JPEG 图像中的缩略图

exif_tagname
read_exif_data
Exif 函数
PHP 手册

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail — 取得嵌入在 TIFF 或 JPEG 图像中的缩略图

说明

string exif_thumbnail ( string $filename [, int $&width [, int $&height [, int $&imagetype ]]] )

exif_thumbnail() 读取 TIFF 或 JPEG 图像中的嵌入缩略图。如果图像不包含缩略图则返回 FALSE。

参数 width ，height 和 imagetype 自 PHP 4.3.0 起可用，返回缩略图的大小和类型。有可能 exif_thumbnail() 不能创建图像但可以测定其大小，此情况下返回值是 FALSE，但是 width 和 height 的值已经传回了。

如果想用此函数发送缩略图，应该用 header() 函数发送 mime 类型信息。下面的例子演示了此方法：

Example #1 exif_thumbnail() 例子

<?php
if (array_key_exists('file',$_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header("Content-type: ".image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // no thumbnail available, handle the error here
    echo "No thumbnail available";
}
?>

自 PHP 4.3.0 起，exif_thumbnail() 函数可以以 TIFF 格式返回缩略图。

Note: 本函数仅在 PHP 编译时使用了 --enable-exif 选项时可用。其功能和行为在 PHP 4.2 改变了。

Note: 本函数不需要 GD 图像库。

参见 exif_read_data() 和 image_type_to_mime_type()。

exif_tagname
read_exif_data
Exif 函数


exif_read_data 的别名

exif_thumbnail
GD
Exif 函数
PHP 手册

read_exif_data

(PHP 4 >= 4.0.1, PHP 5)

read_exif_data — exif_read_data() 的别名

说明

本函数是 exif_read_data() 的别名。

exif_thumbnail
GD
Exif 函数


Image Processing (GD)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • PNG creation with PHP
    • Adding watermarks to images using alpha channels
    • Using imagecopymerge to create a translucent watermark
  • GD 函数
    • gd_info — 取得当前安装的 GD 库的信息
    • getimagesize — 取得图像大小
    • image_type_to_extension — 取得图像类型的文件后缀
    • image_type_to_mime_type — 取得 getimagesize，exif_read_data，exif_thumbnail，exif_imagetype 所返回的图像类型的 MIME 类型
    • image2wbmp — 以 WBMP 格式将图像输出到浏览器或文件
    • imagealphablending — 设定图像的混色模式
    • imageantialias — 是否使用抗锯齿（antialias）功能
    • imagearc — 画椭圆弧
    • imagechar — 水平地画一个字符
    • imagecharup — 垂直地画一个字符
    • imagecolorallocate — 为一幅图像分配颜色
    • imagecolorallocatealpha — 为一幅图像分配颜色 + alpha
    • imagecolorat — 取得某像素的颜色索引值
    • imagecolorclosest — 取得与指定的颜色最接近的颜色的索引值
    • imagecolorclosestalpha — 取得与指定的颜色加透明度最接近的颜色
    • imagecolorclosesthwb — 取得与给定颜色最接近的色度的黑白色的索引
    • imagecolordeallocate — 取消图像颜色的分配
    • imagecolorexact — 取得指定颜色的索引值
    • imagecolorexactalpha — 取得指定的颜色加透明度的索引值
    • imagecolormatch — 使一个图像中调色板版本的颜色与真彩色版本更能匹配
    • imagecolorresolve — 取得指定颜色的索引值或有可能得到的最接近的替代值
    • imagecolorresolvealpha — 取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值
    • imagecolorset — 给指定调色板索引设定颜色
    • imagecolorsforindex — 取得某索引的颜色
    • imagecolorstotal — 取得一幅图像的调色板中颜色的数目
    • imagecolortransparent — 将某个颜色定义为透明色
    • imageconvolution — 用系数 div 和 offset 申请一个 3x3 的卷积矩阵
    • imagecopy — 拷贝图像的一部分
    • imagecopymerge — 拷贝并合并图像的一部分
    • imagecopymergegray — 用灰度拷贝并合并图像的一部分
    • imagecopyresampled — 重采样拷贝部分图像并调整大小
    • imagecopyresized — 拷贝部分图像并调整大小
    • imagecreate — 新建一个基于调色板的图像
    • imagecreatefromgd2 — 从 GD2 文件或 URL 新建一图像
    • imagecreatefromgd2part — 从给定的 GD2 文件或 URL 中的部分新建一图像
    • imagecreatefromgd — 从 GD 文件或 URL 新建一图像
    • imagecreatefromgif — 从 GIF 文件或 URL 新建一图像
    • imagecreatefromjpeg — 从 JPEG 文件或 URL 新建一图像
    • imagecreatefrompng — 从 PNG 文件或 URL 新建一图像
    • imagecreatefromstring — 从字符串中的图像流新建一图像
    • imagecreatefromwbmp — 从 WBMP 文件或 URL 新建一图像
    • imagecreatefromxbm — 从 XBM 文件或 URL 新建一图像
    • imagecreatefromxpm — 从 XPM 文件或 URL 新建一图像
    • imagecreatetruecolor — 新建一个真彩色图像
    • imagedashedline — 画一虚线
    • imagedestroy — 销毁一图像
    • imageellipse — 画一个椭圆
    • imagefill — 区域填充
    • imagefilledarc — 画一椭圆弧且填充
    • imagefilledellipse — 画一椭圆并填充
    • imagefilledpolygon — 画一多边形并填充
    • imagefilledrectangle — 画一矩形并填充
    • imagefilltoborder — 区域填充到指定颜色的边界为止
    • imagefilter — 对图像使用过滤器
    • imagefontheight — 取得字体高度
    • imagefontwidth — 取得字体宽度
    • imageftbbox — 给出一个使用 FreeType 2 字体的文本框
    • imagefttext — 使用 FreeType 2 字体将文本写入图像
    • imagegammacorrect — 对 GD 图像应用 gamma 修正
    • imagegd2 — 将 GD2 图像输出到浏览器或文件
    • imagegd — 将 GD 图像输出到浏览器或文件
    • imagegif — 以 GIF 格式将图像输出到浏览器或文件
    • imagegrabscreen — Captures the whole screen
    • imagegrabwindow — Captures a window
    • imageinterlace — 激活或禁止隔行扫描
    • imageistruecolor — 检查图像是否为真彩色图像
    • imagejpeg — 以 JPEG 格式将图像输出到浏览器或文件
    • imagelayereffect — 设定 alpha 混色标志以使用绑定的 libgd 分层效果
    • imageline — 画一条线段
    • imageloadfont — 载入一新字体
    • imagepalettecopy — 将调色板从一幅图像拷贝到另一幅
    • imagepng — 以 PNG 格式将图像输出到浏览器或文件
    • imagepolygon — 画一个多边形
    • imagepsbbox — 给出一个使用 PostScript Type1 字体的文本方框
    • imagepsencodefont — 改变字体中的字符编码矢量
    • imagepsextendfont — 扩充或精简字体
    • imagepsfreefont — 释放一个 PostScript Type 1 字体所占用的内存
    • imagepsloadfont — 从文件中加载一个 PostScript Type 1 字体
    • imagepsslantfont — 倾斜某字体
    • imagepstext — 用 PostScript Type1 字体把文本字符串画在图像上
    • imagerectangle — 画一个矩形
    • imagerotate — 用给定角度旋转图像
    • imagesavealpha — 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息（与单一透明色相反）
    • imagesetbrush — 设定画线用的画笔图像
    • imagesetpixel — 画一个单一像素
    • imagesetstyle — 设定画线的风格
    • imagesetthickness — 设定画线的宽度
    • imagesettile — 设定用于填充的贴图
    • imagestring — 水平地画一行字符串
    • imagestringup — 垂直地画一行字符串
    • imagesx — 取得图像宽度
    • imagesy — 取得图像高度
    • imagetruecolortopalette — 将真彩色图像转换为调色板图像
    • imagettfbbox — 取得使用 TrueType 字体的文本的范围
    • imagettftext — 用 TrueType 字体向图像写入文本
    • imagetypes — 返回当前 PHP 版本所支持的图像类型
    • imagewbmp — 以 WBMP 格式将图像输出到浏览器或文件
    • imagexbm — 将 XBM 图像输出到浏览器或文件
    • iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中
    • iptcparse — 将二进制 IPTC http://www.iptc.org/ 块解析为单个标记
    • jpeg2wbmp — 将 JPEG 图像文件转换为 WBMP 图像文件
    • png2wbmp — 将 PNG 图像文件转换为 WBMP 图像文件
read_exif_data
简介
图像生成和处理


简介

PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including gif, png, jpg, wbmp, and xpm. Even more convenient, PHP can output image streams directly to a browser. You will need to compile PHP with the GD library of image functions for this to work. GD and PHP may also require other libraries, depending on which image formats you want to work with.

You can use the image functions in PHP to get the size of JPEG, GIF, PNG, SWF, TIFF and JPEG2000 images.

With the exif extension, you are able to work with information stored in headers of JPEG and TIFF images. This way you can read meta data generated by digital cameras. The exif functions do not require the GD library.

Note: Read the requirements section about how to expand image capabilities to read, write and modify images. To read meta data of pictures taken by digital cameras you need the above mentioned exif extension.

GD
安装/配置
GD


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
GD


需求

If you have the GD library (available at » http://www.libgd.org/) you will also be able to create and manipulate images.

The format of images you are able to manipulate depend on the version of GD you install, and any other libraries GD might need to access those image formats. Versions of GD older than gd-1.6 support GIF format images, and do not support PNG, where versions greater than gd-1.6 and less than gd-2.0.28 support PNG, not GIF. GIF support was re-enabled in gd-2.0.28.

Note: Since PHP 4.3 there is a bundled version of the GD lib. This bundled version has some additional features like alpha blending, and should be used in preference to the external library since its codebase is better maintained and more stable.

Note: Support for GD 1.x has been removed as of PHP 6.0.0, which requires GD 2.0.33 or later.

You may wish to enhance GD to handle more image formats.

Supported image formats
Image format | Library to download | Notes
gif |  | Only supported in GD versions older than gd-1.6 and newer than gd-2.0.28. Read-only GIF support is available with PHP 4.3.0 and the bundled GD-library. Write support is available since PHP 4.3.9 and PHP 5.0.1.
jpeg-6b | » ftp://ftp.uu.net/graphics/jpeg/ | When building the jpeg-v6b library (prior to building PHP) you must use the --enable-shared option in the configure step. If you do not, you will receive an error saying libjpeg.(a|so) not found when you get to the configure step of building PHP.
png | » http://www.libpng.org/pub/png/libpng.html | Only supported in GD versions greater than gd-1.6.
xpm | » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | It's likely you have this library already available, if your system has an installed X-Environment.

You may wish to enhance GD to deal with different fonts. The following font libraries are supported:

Supported font libraries
Font library | Download | Notes
FreeType 1.x | » http://www.freetype.org/ | Support removed as of PHP 6.0.0
FreeType 2 | » http://www.freetype.org/ |
T1lib | » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Support for Postscript Type 1 fonts.

安装/配置
安装
安装/配置


安装

要激活 GD 支持，配置 PHP 时加上 --with-gd[=DIR]，DIR 是 GD 的基本安装目录。要使用推荐的绑定的 GD 库版本（首次绑定于 PHP 4.3.0），使用 --with-gd。要编译 GD 库，需要libpng 和 libjpeg。

在 Windows 中，需要将 GD2 的 DLL 文件 php_gd2.dll 作为一个扩展包含在 php.ini 中。GD1 的 DLL 文件 php_gd.dll 在 PHP 4.3.2 中被删除了。此外要注意首选的真彩色图像函数，例如 imagecreatetruecolor()，需要 GD2。

Note: 要在 Windows 下启用 exif，在 php.ini 中 php_mbstring.dll 必须在 php_exif.dll 之前加载。

要在 PHP 3 中禁止 GD 支持，在配置时加上 --without-gd。

要增强 GD 的能力以处理更多的图像格式，在配置 PHP 时指定 --with-XXXX 的配置开关。

所支持的图像格式
图像格式 | 配置开关
jpeg-6b | 要激活 jpeg-6b 的支持，加上 --with-jpeg-dir=DIR.
png | 要激活 png 的支持，加上 --with-png-dir=DIR。注意，libpng 需要 zlib library，因此配置中还要加上 --with-zlib-dir[=DIR]。
xpm | 要激活 xpm 的支持，加上 --with-xpm-dir=DIR。如果配置时提示找不到所需要的库，可以加上到 X11 库的路径。

Note: 当把 PHP 和 libpng 一起编译时，必须使用和 GD 库连接的同一个版本。

要增强 GD 的能力以处理更多的字体，在配置 PHP 时指定 --with-XXXX 的配置开关。

所支持的字库
字库 | 配置开关
FreeType 1.x | 要激活 FreeType 1.x 的支持，加上 --with-ttf[=DIR]。
FreeType 2 | 要激活 FreeType 2 的支持，加上 --with-freetype-dir=DIR。
T1lib | 要激活 T1lib（Type 1 字体），加上 --with-t1lib[=DIR]。
本地 TrueType 字符串函数 | 要激活本地 TrueType 字符串函数的支持，加上 --enable-gd-native-ttf。

需求
运行时配置
安装/配置


运行时配置

没有 image 特定的配置选项。不过可以参考 exif 扩展库配置指令。

安装
资源类型
安装/配置


资源类型

This extension defines two resource types: an image identifier and a font identifier.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

GD_VERSION (string)
The GD version PHP was compiled against. (Available as of PHP 5.2.4)
GD_MAJOR_VERSION (integer)
The GD major version PHP was compiled against. (Available as of PHP 5.2.4)
GD_MINOR_VERSION (integer)
The GD minor version PHP was compiled against. (Available as of PHP 5.2.4)
GD_RELEASE_VERSION (integer)
The GD release version PHP was compiled against. (Available as of PHP 5.2.4)
GD_EXTRA_VERSION (string)
The GD "extra" version (beta/rc..) PHP was compiled against. (Available as of PHP 5.2.4)
GD_BUNDLE (integer)
When the bundled version of GD is used this is 1 otherwise its set to 0.
IMG_GIF (integer)
Used as a return value by imagetypes()
IMG_JPG (integer)
Used as a return value by imagetypes()
IMG_JPEG (integer)
Used as a return value by imagetypes()

Note: This constant has the same value as IMG_JPG

IMG_PNG (integer)
Used as a return value by imagetypes()
IMG_WBMP (integer)
Used as a return value by imagetypes()
IMG_XPM (integer)
Used as a return value by imagetypes()
IMG_COLOR_TILED (integer)
Special color option which can be used in stead of color allocated with imagecolorallocate() or imagecolorallocatealpha()
IMG_COLOR_STYLED (integer)
Special color option which can be used in stead of color allocated with imagecolorallocate() or imagecolorallocatealpha()
IMG_COLOR_BRUSHED (integer)
Special color option which can be used in stead of color allocated with imagecolorallocate() or imagecolorallocatealpha()
IMG_COLOR_STYLEDBRUSHED (integer)
Special color option which can be used in stead of color allocated with imagecolorallocate() or imagecolorallocatealpha()
IMG_COLOR_TRANSPARENT (integer)
Special color option which can be used in stead of color allocated with imagecolorallocate() or imagecolorallocatealpha()
IMG_ARC_ROUNDED (integer)
A style constant used by the imagefilledarc() function.

Note: This constant has the same value as IMG_ARC_PIE

IMG_ARC_PIE (integer)
A style constant used by the imagefilledarc() function.
IMG_ARC_CHORD (integer)
A style constant used by the imagefilledarc() function.
IMG_ARC_NOFILL (integer)
A style constant used by the imagefilledarc() function.
IMG_ARC_EDGED (integer)
A style constant used by the imagefilledarc() function.
IMG_GD2_RAW (integer)
A type constant used by the imagegd2() function.
IMG_GD2_COMPRESSED (integer)
A type constant used by the imagegd2() function.
IMG_EFFECT_REPLACE (integer)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_ALPHABLEND (integer)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_NORMAL (integer)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_OVERLAY (integer)
Alpha blending effect used by the imagelayereffect() function.
IMG_FILTER_NEGATE (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_GRAYSCALE (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_BRIGHTNESS (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_CONTRAST (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_COLORIZE (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_EDGEDETECT (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_GAUSSIAN_BLUR (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_SELECTIVE_BLUR (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_EMBOSS (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_MEAN_REMOVAL (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_SMOOTH (integer)
Special GD filter used by the imagefilter() function.
IMG_FILTER_PIXELATE (integer)
Special GD filter used by the imagefilter() function. (Available as of PHP 5.3.0)
IMAGETYPE_GIF (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPEG (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_PNG (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_SWF (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_PSD (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_BMP (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_WBMP (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_XBM (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_TIFF_II (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_TIFF_MM (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_IFF (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JB2 (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPC (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JP2 (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPX (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_SWC (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_ICO (integer)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions. (Available as of PHP 5.3.0)
PNG_NO_FILTER (integer)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_NONE (integer)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_SUB (integer)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_UP (integer)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_AVG (integer)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_PAETH (integer)
A special PNG filter, used by the imagepng() function.
PNG_ALL_FILTERS (integer)
A special PNG filter, used by the imagepng() function.
资源类型
范例
GD


范例

Table of Contents

  • PNG creation with PHP
  • Adding watermarks to images using alpha channels
  • Using imagecopymerge to create a translucent watermark
预定义常量
PNG creation with PHP
GD


PNG creation with PHP

范例
Adding watermarks to images using alpha channels
范例
PHP 手册

Example #1 PNG creation with PHP

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>

This example would be called from a page with a tag like: <img src="button.php?text=text">. The above button.php script then takes this "text" string and overlays it on top of a base image which in this case is "images/button1.png" and outputs the resulting image. This is a very convenient way to avoid having to draw new button images every time you want to change the text of a button. With this method they are dynamically generated.

范例
Adding watermarks to images using alpha channels
范例


Adding watermarks to images using alpha channels

PNG creation with PHP
Using imagecopymerge to create a translucent watermark
范例
PHP 手册

Example #1 Adding watermarks to images using alpha channels

<?php
// Load the stamp and the photo to apply the watermark to
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('photo.jpeg');

// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Copy the stamp image onto our photo using the margin offsets and the photo
// width to calculate positioning of the stamp.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Output and free memory
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

This example is a common way to add watermarks and stamps to photos and copyrighted images. Note that the presence of an alpha channel in the stamp image as the text is anti-aliased. This is preserved during copying.

PNG creation with PHP
Using imagecopymerge to create a translucent watermark
范例


Using imagecopymerge to create a translucent watermark

Adding watermarks to images using alpha channels
GD 函数
范例
PHP 手册

Example #1 Using imagecopymerge() to create a translucent watermark

<?php
// Load the stamp and the photo to apply the watermark to
$im = imagecreatefromjpeg('photo.jpeg');

// First we create our stamp image manually from GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0,0, 99, 99, 0x0000FF);
imagefilledrectangle($stamp, 9,9, 90,60, 0xFFFFFF);
$im = imagecreatefromjpeg('photo.jpeg');
imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-8', 0x0000FF);

// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Merge the stamp onto our photo with an opacity (transparency) of 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Save the image to file and free memory
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>

This example uses imagecopymerge() to merge the stamp with our original image. Using this we can set the opacity of our stamp - in our example we've set it to 50% opacity (another term for transparency). In practice this would be useful in copyright protection as semi-transparent watermarks are hard to remove yet allow viewers to see the image.

Adding watermarks to images using alpha channels
GD 函数
范例


GD 函数

Table of Contents

  • gd_info — 取得当前安装的 GD 库的信息
  • getimagesize — 取得图像大小
  • image_type_to_extension — 取得图像类型的文件后缀
  • image_type_to_mime_type — 取得 getimagesize，exif_read_data，exif_thumbnail，exif_imagetype 所返回的图像类型的 MIME 类型
  • image2wbmp — 以 WBMP 格式将图像输出到浏览器或文件
  • imagealphablending — 设定图像的混色模式
  • imageantialias — 是否使用抗锯齿（antialias）功能
  • imagearc — 画椭圆弧
  • imagechar — 水平地画一个字符
  • imagecharup — 垂直地画一个字符
  • imagecolorallocate — 为一幅图像分配颜色
  • imagecolorallocatealpha — 为一幅图像分配颜色 + alpha
  • imagecolorat — 取得某像素的颜色索引值
  • imagecolorclosest — 取得与指定的颜色最接近的颜色的索引值
  • imagecolorclosestalpha — 取得与指定的颜色加透明度最接近的颜色
  • imagecolorclosesthwb — 取得与给定颜色最接近的色度的黑白色的索引
  • imagecolordeallocate — 取消图像颜色的分配
  • imagecolorexact — 取得指定颜色的索引值
  • imagecolorexactalpha — 取得指定的颜色加透明度的索引值
  • imagecolormatch — 使一个图像中调色板版本的颜色与真彩色版本更能匹配
  • imagecolorresolve — 取得指定颜色的索引值或有可能得到的最接近的替代值
  • imagecolorresolvealpha — 取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值
  • imagecolorset — 给指定调色板索引设定颜色
  • imagecolorsforindex — 取得某索引的颜色
  • imagecolorstotal — 取得一幅图像的调色板中颜色的数目
  • imagecolortransparent — 将某个颜色定义为透明色
  • imageconvolution — 用系数 div 和 offset 申请一个 3x3 的卷积矩阵
  • imagecopy — 拷贝图像的一部分
  • imagecopymerge — 拷贝并合并图像的一部分
  • imagecopymergegray — 用灰度拷贝并合并图像的一部分
  • imagecopyresampled — 重采样拷贝部分图像并调整大小
  • imagecopyresized — 拷贝部分图像并调整大小
  • imagecreate — 新建一个基于调色板的图像
  • imagecreatefromgd2 — 从 GD2 文件或 URL 新建一图像
  • imagecreatefromgd2part — 从给定的 GD2 文件或 URL 中的部分新建一图像
  • imagecreatefromgd — 从 GD 文件或 URL 新建一图像
  • imagecreatefromgif — 从 GIF 文件或 URL 新建一图像
  • imagecreatefromjpeg — 从 JPEG 文件或 URL 新建一图像
  • imagecreatefrompng — 从 PNG 文件或 URL 新建一图像
  • imagecreatefromstring — 从字符串中的图像流新建一图像
  • imagecreatefromwbmp — 从 WBMP 文件或 URL 新建一图像
  • imagecreatefromxbm — 从 XBM 文件或 URL 新建一图像
  • imagecreatefromxpm — 从 XPM 文件或 URL 新建一图像
  • imagecreatetruecolor — 新建一个真彩色图像
  • imagedashedline — 画一虚线
  • imagedestroy — 销毁一图像
  • imageellipse — 画一个椭圆
  • imagefill — 区域填充
  • imagefilledarc — 画一椭圆弧且填充
  • imagefilledellipse — 画一椭圆并填充
  • imagefilledpolygon — 画一多边形并填充
  • imagefilledrectangle — 画一矩形并填充
  • imagefilltoborder — 区域填充到指定颜色的边界为止
  • imagefilter — 对图像使用过滤器
  • imagefontheight — 取得字体高度
  • imagefontwidth — 取得字体宽度
  • imageftbbox — 给出一个使用 FreeType 2 字体的文本框
  • imagefttext — 使用 FreeType 2 字体将文本写入图像
  • imagegammacorrect — 对 GD 图像应用 gamma 修正
  • imagegd2 — 将 GD2 图像输出到浏览器或文件
  • imagegd — 将 GD 图像输出到浏览器或文件
  • imagegif — 以 GIF 格式将图像输出到浏览器或文件
  • imagegrabscreen — Captures the whole screen
  • imagegrabwindow — Captures a window
  • imageinterlace — 激活或禁止隔行扫描
  • imageistruecolor — 检查图像是否为真彩色图像
  • imagejpeg — 以 JPEG 格式将图像输出到浏览器或文件
  • imagelayereffect — 设定 alpha 混色标志以使用绑定的 libgd 分层效果
  • imageline — 画一条线段
  • imageloadfont — 载入一新字体
  • imagepalettecopy — 将调色板从一幅图像拷贝到另一幅
  • imagepng — 以 PNG 格式将图像输出到浏览器或文件
  • imagepolygon — 画一个多边形
  • imagepsbbox — 给出一个使用 PostScript Type1 字体的文本方框
  • imagepsencodefont — 改变字体中的字符编码矢量
  • imagepsextendfont — 扩充或精简字体
  • imagepsfreefont — 释放一个 PostScript Type 1 字体所占用的内存
  • imagepsloadfont — 从文件中加载一个 PostScript Type 1 字体
  • imagepsslantfont — 倾斜某字体
  • imagepstext — 用 PostScript Type1 字体把文本字符串画在图像上
  • imagerectangle — 画一个矩形
  • imagerotate — 用给定角度旋转图像
  • imagesavealpha — 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息（与单一透明色相反）
  • imagesetbrush — 设定画线用的画笔图像
  • imagesetpixel — 画一个单一像素
  • imagesetstyle — 设定画线的风格
  • imagesetthickness — 设定画线的宽度
  • imagesettile — 设定用于填充的贴图
  • imagestring — 水平地画一行字符串
  • imagestringup — 垂直地画一行字符串
  • imagesx — 取得图像宽度
  • imagesy — 取得图像高度
  • imagetruecolortopalette — 将真彩色图像转换为调色板图像
  • imagettfbbox — 取得使用 TrueType 字体的文本的范围
  • imagettftext — 用 TrueType 字体向图像写入文本
  • imagetypes — 返回当前 PHP 版本所支持的图像类型
  • imagewbmp — 以 WBMP 格式将图像输出到浏览器或文件
  • imagexbm — 将 XBM 图像输出到浏览器或文件
  • iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中
  • iptcparse — 将二进制 IPTC http://www.iptc.org/ 块解析为单个标记
  • jpeg2wbmp — 将 JPEG 图像文件转换为 WBMP 图像文件
  • png2wbmp — 将 PNG 图像文件转换为 WBMP 图像文件
Using imagecopymerge to create a translucent watermark
gd_info
GD


取得当前安装的 GD 库的信息

GD 函数
getimagesize
GD 函数
PHP 手册

gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info — 取得当前安装的 GD 库的信息

说明

array gd_info ( void )

返回一个关联数组描述了安装的 GD 库的版本和性能。

gd_info() 返回的数组的单元
属性 | 含义
GD Version | string 值描述了安装的 libgd 的版本。
Freetype Support | boolean 值。如果安装了 Freetype 支持则为 TRUE。
Freetype Linkage | string 值描述了 Freetype 连接的方法。取值可能为：'with freetype', 'with TTF library' 和 'with unknown library'。本单元仅在 Freetype Support 的值为 TRUE 时有定义。
T1Lib Support | boolean 值。如果包含有 T1Lib 支持则为 TRUE。
GIF Read Support | boolean 值。如果包含有读取 GIF 图像的支持则为 TRUE。
GIF Create Support | boolean 值。如果包含有创建 GIF 图像的支持则为 TRUE。
JPG Support | boolean 值。如果包含有 JPG 支持则为 TRUE。
PNG Support | boolean 值。如果包含有 PNG 支持则为 TRUE。
WBMP Support | boolean 值。如果包含有 WBMP 支持则为 TRUE。
XBM Support | boolean 值。如果包含有 XBM 支持则为 TRUE。

Example #1 使用 gd_info()

<?php
var_dump(gd_info());
?>

典型输出为：

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

参见 imagepng()，imagejpeg()，imagegif()，imagewbmp() 和 imagetypes()。

GD 函数
getimagesize
GD 函数


取得图像大小

gd_info
image_type_to_extension
GD 函数
PHP 手册

getimagesize

(PHP 4, PHP 5)

getimagesize — 取得图像大小

说明

array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize() 函数将测定任何 GIF，JPG，PNG，SWF，SWC，PSD，TIFF，BMP，IFF，JP2，JPX，JB2，JPC，XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。

如果不能访问 filename 指定的图像或者其不是有效的图像，getimagesize() 将返回 FALSE 并产生一条 E_WARNING 级的错误。

Note: 对 JPC，JP2，JPX，JB2，XBM 和 WBMP 的支持自 PHP 4.3.2 起可用。对 SWC 的支持自 PHP 4.3.0 起可用。对 TIFF 的支持是 PHP 4.2.0 添加的。

Note: JPEG 2000 支持是 PHP 4.3.2 添加的。注意 JPC 和 JP2 可以有不同的色彩深度的成分。此情况下，“bits”的值是碰到的最高的位深度。此外，JP2 文件可能包含有多个 JPEG 2000 代码流，此情况下，getimagesize() 返回此文件顶层中碰到的第一个代码流的值。

Note: 本函数不需要 GD 图像库。

返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值，索引 1 包含图像高度的像素值。索引 2 是图像类型的标记：1 = GIF，2 = JPG，3 = PNG，4 = SWF，5 = PSD，6 = BMP，7 = TIFF(intel byte order)，8 = TIFF(motorola byte order)，9 = JPC，10 = JP2，11 = JPX，12 = JB2，13 = SWC，14 = IFF，15 = WBMP，16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串，内容为“height="yyy" width="xxx"”，可直接用于 IMG 标记。

Example #1 getimagesize（文件）

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr>";
?>

URL 支持是 PHP 4.0.5 添加的。

Example #2 getimagesize（URL）

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

对于 JPG 图像，还会多返回两个索引：channels 和 bits。channels 对于 RGB 图像其值为 3，对于 CMYK 图像其值为 4。bits 是每种颜色的位数。

自 PHP 4.3.0 起，bits 和 channels 对于其它图像类型也存在。但是这些值可能会把人搞糊涂。例如，GIF 总是对每个像素使用 3 个 channel，但是对于动画 GIF 来说每个像素的位数无法通过全局颜色表计算出来。

某些格式可能不包含图像或者包含多个图像。此种情况下，getimagesize() 可能不能用来准确测定图像的大小。此时 getimagesize() 将返回零作为宽度和高度。

自 PHP 4.3.0 起，getimagesize() 还会返回额外的参数 mime，符合该图像的 MIME 类型。此信息可以用来在 HTTP Content-type 头信息中发送正确的信息：

Example #3 getimagesize() 和 MIME 类型

<?php
$size = getimagesize($filename);
$fp=fopen($filename, "rb");
if ($size && $fp) {
  header("Content-type: {$size['mime']}");
  fpassthru($fp);
  exit;
} else {
  // error
}
?>

可选的 imageinfo 参数允许从图像文件中提取一些扩展信息。目前，这将以一个关联数组返回不同的 JPG APP 标识。某些程序用这些 APP 标识来在图像中嵌入文本信息。一个非常常见的是 APP13 标识中嵌入的 IPTC » http://www.iptc.org/ 信息。可以用 iptcparse() 函数来将二进制的 APP13 标识解析为可读的信息。

Example #4 getimagesize() 返回 IPTC

<?php
$size = getimagesize("testimg.jpg", &$info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

参见 image_type_to_mime_type()，exif_imagetype()，exif_read_data() 和 exif_thumbnail()。

gd_info
image_type_to_extension
GD 函数


取得图像类型的文件后缀

getimagesize
image_type_to_mime_type
GD 函数
PHP 手册

image_type_to_extension

(PHP 5)

image_type_to_extension — 取得图像类型的文件后缀

说明

string image_type_to_extension ( int $imagetype [, bool $include_dot ] )
Warning

本函数暂无文档，仅有参数列表。

getimagesize
image_type_to_mime_type
GD 函数


取得 getimagesize，exif_read_data，exif_thumbnail，exif_imagetype 所返回的图像类型的 MIME 类型

image_type_to_extension
image2wbmp
GD 函数
PHP 手册

image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_type — 取得 getimagesize，exif_read_data，exif_thumbnail，exif_imagetype 所返回的图像类型的 MIME 类型

说明

string image_type_to_mime_type ( int $imagetype )

image_type_to_mime_type() 函数可以判断一个 IMAGETYPE 常量的 MIME 类型。

Example #1 image_type_to_mime_type (file)

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

返回值如下：

返回值常量
图像类型（imagetype ） | 返回值
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Note: 本函数不需要 GD 库。

参见 getimagesize()，exif_imagetype()，exif_read_data() 和 exif_thumbnail()。

image_type_to_extension
image2wbmp
GD 函数


以 WBMP 格式将图像输出到浏览器或文件

image_type_to_mime_type
imagealphablending
GD 函数
PHP 手册

image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmp — 以 WBMP 格式将图像输出到浏览器或文件

说明

int image2wbmp ( resource $image [, string $filename [, int $threshold ]] )

image2wbmp() 从 image 图像创建一个名为 filename 的 WBMP 文件。image 参数是某个图像创建函数的返回值，例如 imagecreatetruecolor()。

filename 参数是可选项，如果省略，则直接将原图像流输出。通过用 header() 发送 image/vnd.wap.wbmp 的 Content-type，可以创建直接输出 WBMP 图像的 PHP 脚本。

Example #1 image2wbmp() 例子

<?php
$file = 'php.jpg';
$image = imagecreatefrompng($file);
header('Content-type: ' . image_type_to_mime(IMAGETYPE_WBMP));
image2wbmp($file); // output the stream directly
?>

Note: WBMP 支持仅在 PHP 编译时加入了 GD-1.8 或更高版本时可用。

参见 imagewbmp()。

image_type_to_mime_type
imagealphablending
GD 函数


设定图像的混色模式

image2wbmp
imageantialias
GD 函数
PHP 手册

imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending — 设定图像的混色模式

说明

bool imagealphablending ( resource $image , bool $blendmode )

imagealphablending() 允许在真彩色图像上使用两种不同的绘画模式。在混色（blending）模式下，alpha 通道色彩成分提供给所有的绘画函数，例如 imagesetpixel() 决定底层的颜色应在何种程度上被允许照射透过。作为结果，GD 自动将该点现有的颜色和画笔颜色混合，并将结果储存在图像中。结果的像素是不透明的。在非混色模式下，画笔颜色连同其 alpha 通道信息一起被拷贝，替换掉目标像素。混色模式在画调色板图像时不可用。如果 blendmode 为 TRUE，则启用混色模式，否则关闭。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

image2wbmp
imageantialias
GD 函数


是否使用抗锯齿（antialias）功能

imagealphablending
imagearc
GD 函数
PHP 手册

imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialias — 是否使用抗锯齿（antialias）功能

说明

bool imageantialias ( resource $im , bool $on )

对线段和多边形启用快速画图抗锯齿方法。不支持 alpha 部分。使用直接混色操作。仅用于真彩色图像。

不支持线宽和风格。

使用抗锯齿和透明背景色可能出现未预期的结果。混色方法把背景色当成任何其它颜色使用。缺乏 alpha 部分的支持导致不允许基于 alpha 抗锯齿方法。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

参见 imagecreatetruecolor()。

imagealphablending
imagearc
GD 函数


画椭圆弧

imageantialias
imagechar
GD 函数
PHP 手册

imagearc

(PHP 4, PHP 5)

imagearc — 画椭圆弧

说明

bool imagearc ( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color )

imagearc() 以 cx ，cy （图像左上角为 0, 0）为中心在 image 所代表的图像中画一个椭圆弧。w 和 h 分别指定了椭圆的宽度和高度，起始和结束点以 s 和 e 参数以角度指定。0°位于三点钟位置，以顺时针方向绘画。

Example #1 用 imagearc() 画一个圆

<?php
// 创建一个 200X200 的图像
$img = imagecreatetruecolor(200, 200);
// 分配颜色
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
// 画一个黑色的圆
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
// 将图像输出到浏览器
header("Content-type: image/png");
imagepng($img);
// 释放内存
imagedestroy($img);
?>

参见 imageellipse()，imagefilledellipse() 和 imagefilledarc()。

imageantialias
imagechar
GD 函数


水平地画一个字符

imagearc
imagecharup
GD 函数
PHP 手册

imagechar

(PHP 4, PHP 5)

imagechar — 水平地画一个字符

说明

bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )

imagechar() 将字符串 c 的第一个字符画在 image 指定的图像中，其左上角位于 x ，y （图像左上角为 0, 0），颜色为 color 。如果 font 是 1，2，3，4 或 5，则使用内置的字体（更大的数字对应于更大的字体）。

Example #1 imagechar() 例子

<?php

$im = imagecreate(100,100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "P" in the top left corner
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

参见 imagecharup() 和 imageloadfont()。

imagearc
imagecharup
GD 函数


垂直地画一个字符

imagechar
imagecolorallocate
GD 函数
PHP 手册

imagecharup

(PHP 4, PHP 5)

imagecharup — 垂直地画一个字符

说明

bool imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color )

imagecharup() 将字符 c 垂直地画在 image 指定的图像上，位于 x ，y （图像左上角为 0, 0），颜色为 color 。如果 font 为 1，2，3，4 或 5，则使用内置的字体。

Example #1 imagecharup() 例子

<?php

$im = imagecreate(100,100);

$string = 'Note that the first letter is a N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "Z" on a white background
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

参见 imagechar() 和 imageloadfont()。

imagechar
imagecolorallocate
GD 函数


为一幅图像分配颜色

imagecharup
imagecolorallocatealpha
GD 函数
PHP 手册

imagecolorallocate

(PHP 4, PHP 5)

imagecolorallocate — 为一幅图像分配颜色

说明

int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

imagecolorallocate() 返回一个标识符，代表了由给定的 RGB 成分组成的颜色。red ，green 和 blue 分别是所需要的颜色的红，绿，蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。imagecolorallocate() 必须被调用以创建每一种用在 image 所代表的图像中的颜色。

Note: 第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色，即用 imagecreate() 建立的图像。

Example #1 imagecolorallocate() 例子

<?php
$im = imagecreate('example.jpg', 100, 100);
// 背景设为红色
$background = imagecolorallocate($im, 255, 0, 0);
// 设定一些颜色
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
// 十六进制方式
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);
?>

如果分配失败则返回 -1。

参见 imagecolorallocatealpha() 和 imagecolordeallocate()。

imagecharup
imagecolorallocatealpha
GD 函数


为一幅图像分配颜色 + alpha

imagecolorallocate
imagecolorat
GD 函数
PHP 手册

imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealpha — 为一幅图像分配颜色 + alpha

说明

int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorallocatealpha() 的行为和 imagecolorallocate() 相同，但多了一个额外的透明度参数 alpha ，其值从 0 到 127。0 表示完全不透明，127 表示完全透明。

如果分配失败则返回 FALSE。

Example #1 使用 imagecolorallocatealpha() 的例子

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// 用白色背景加黑色边框画个方框
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// 用 alpha 值分配一些颜色
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// 画三个交迭的圆
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// 不要忘记输出正确的 header！
header('Content-type: image/png');

// 最后输出结果
imagepng($image);
imagedestroy($image);
?>

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagecolorallocate() 和 imagecolordeallocate()。

imagecolorallocate
imagecolorat
GD 函数


取得某像素的颜色索引值

imagecolorallocatealpha
imagecolorclosest
GD 函数
PHP 手册

imagecolorat

(PHP 4, PHP 5)

imagecolorat — 取得某像素的颜色索引值

说明

int imagecolorat ( resource $image , int $x , int $y )

返回 image 所指定的图形中指定位置像素的颜色索引值。

如果 PHP 编译时加上了 GD 库 2.0 或更高的版本并且图像是真彩色图像，则本函数以整数返回该点的 RGB 值。用移位加掩码来取得红，绿，蓝各自成分的值：

Example #1 取得各自的 RGB 值

<?php
$im = ImageCreateFromPng("rockym.png");
$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

参见 imagecolorset() 和 imagecolorsforindex()。

imagecolorallocatealpha
imagecolorclosest
GD 函数


取得与指定的颜色最接近的颜色的索引值

imagecolorat
imagecolorclosestalpha
GD 函数
PHP 手册

imagecolorclosest

(PHP 4, PHP 5)

imagecolorclosest — 取得与指定的颜色最接近的颜色的索引值

说明

int imagecolorclosest ( resource $image , int $red , int $green , int $blue )

返回图像调色板中与指定的 RGB 值最“接近”的颜色。

指定的颜色与调色板中的每个颜色的“距离”的计算方法是把 RGB 值当成三维空间中点的坐标。

如果从文件创建了图像，只有图像中使用了的颜色会被辨析。仅出现在调色板中的颜色不会被辨析。

参见 imagecolorexact()。

imagecolorat
imagecolorclosestalpha
GD 函数


取得与指定的颜色加透明度最接近的颜色

imagecolorclosest
imagecolorclosesthwb
GD 函数
PHP 手册

imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalpha — 取得与指定的颜色加透明度最接近的颜色

说明

int imagecolorclosestalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

返回图像调色板中与指定的 RGB 值以及 alpha 深度最“接近”的颜色。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagecolorexactalpha()。

imagecolorclosest
imagecolorclosesthwb
GD 函数


取得与给定颜色最接近的色度的黑白色的索引

imagecolorclosestalpha
imagecolordeallocate
GD 函数
PHP 手册

imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwb — 取得与给定颜色最接近的色度的黑白色的索引

说明

int imagecolorclosesthwb ( resource $image , int $red , int $green , int $blue )

Warning

本函数暂无文档，仅有参数列表。

imagecolorclosestalpha
imagecolordeallocate
GD 函数


取消图像颜色的分配

imagecolorclosesthwb
imagecolorexact
GD 函数
PHP 手册

imagecolordeallocate

(PHP 4, PHP 5)

imagecolordeallocate — 取消图像颜色的分配

说明

bool imagecolordeallocate ( resource $image , int $color )

imagecolordeallocate() 函数取消先前由
imagecolorallocate() 或
imagecolorallocatealpha() 分配的颜色。

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

参见 imagecolorallocate() 和 imagecolorallocatealpha()。

imagecolorclosesthwb
imagecolorexact
GD 函数


取得指定颜色的索引值

imagecolordeallocate
imagecolorexactalpha
GD 函数
PHP 手册

imagecolorexact

(PHP 4, PHP 5)

imagecolorexact — 取得指定颜色的索引值

说明

int imagecolorexact ( resource $image , int $red , int $green , int $blue )

返回图像调色板中指定颜色的索引值。

如果颜色不在图像的调色板中，返回 -1。

如果从文件创建了图像，只有图像中使用了的颜色会被辨析。仅出现在调色板中的颜色不会被辨析。

参见 imagecolorclosest()。

imagecolordeallocate
imagecolorexactalpha
GD 函数


取得指定的颜色加透明度的索引值

imagecolorexact
imagecolormatch
GD 函数
PHP 手册

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalpha — 取得指定的颜色加透明度的索引值

说明

int imagecolorexactalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

返回图像调色板中指定颜色加透明度的索引值。

如果颜色不在图像的调色板中，返回 -1。 returned.

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagecolorclosestalpha()。

imagecolorexact
imagecolormatch
GD 函数


使一个图像中调色板版本的颜色与真彩色版本更能匹配

imagecolorexactalpha
imagecolorresolve
GD 函数
PHP 手册

imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatch — 使一个图像中调色板版本的颜色与真彩色版本更能匹配

说明

bool imagecolormatch ( resource $image1 , resource $image2 )
Warning

本函数暂无文档，仅有参数列表。

image1 必须是真彩色图像，image2 必须是调色板图像，而且 image1 和 image2 的大小必须相同。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagecreatetruecolor()。

imagecolorexactalpha
imagecolorresolve
GD 函数


取得指定颜色的索引值或有可能得到的最接近的替代值

imagecolormatch
imagecolorresolvealpha
GD 函数
PHP 手册

imagecolorresolve

(PHP 4, PHP 5)

imagecolorresolve — 取得指定颜色的索引值或有可能得到的最接近的替代值

说明

int imagecolorresolve ( resource $image , int $red , int $green , int $blue )

本函数可以保证对所请求的颜色返回一个颜色索引，要么是确切值要么是所能得到最接近的替代值。

如果从文件创建了图像，只有图像中使用了的颜色会被辨析。仅出现在调色板中的颜色不会被辨析。

参见 imagecolorclosest()。

imagecolormatch
imagecolorresolvealpha
GD 函数


取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值

imagecolorresolve
imagecolorset
GD 函数
PHP 手册

imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha — 取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值

说明

int imagecolorresolvealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

本函数可以保证对所请求的颜色返回一个颜色索引，要么是确切值要么是所能得到最接近的替代值。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagecolorclosestalpha()。

imagecolorresolve
imagecolorset
GD 函数


给指定调色板索引设定颜色

imagecolorresolvealpha
imagecolorsforindex
GD 函数
PHP 手册

imagecolorset

(PHP 4, PHP 5)

imagecolorset — 给指定调色板索引设定颜色

说明

void imagecolorset ( resource $image , int $index , int $red , int $green , int $blue )

本函数将调色板中指定的索引设定为指定的颜色。对于在调色板图像中创建类似区域填充（flood-fill）的效果很有用，免去了真的去填充的开销。

参见 imagecolorat()。

imagecolorresolvealpha
imagecolorsforindex
GD 函数


取得某索引的颜色

imagecolorset
imagecolorstotal
GD 函数
PHP 手册

imagecolorsforindex

(PHP 4, PHP 5)

imagecolorsforindex — 取得某索引的颜色

说明

array imagecolorsforindex ( resource $image , int $index )

本函数返回一个具有 red，green，blue 和 alpha 的键名的关联数组，包含了指定颜色索引的相应的值。

Example #1 imagecolorsforindex() 例子

<?php

// 打开一幅图像
$im = imagecreatefrompng('nexen.png');

// 取得一点的颜色
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// 使其可读
$color_tran = imagecolorsforindex($im, $color_index);

// 显示该颜色的值
echo '<pre>';
print_r($color_tran);
echo '</pre>';

?>

本例将输出：

Array
(
    [red] => 226
    [green] => 222
    [blue] => 252
    [alpha] => 0
)

参见 imagecolorat() 和 imagecolorexact()。

imagecolorset
imagecolorstotal
GD 函数


取得一幅图像的调色板中颜色的数目

imagecolorsforindex
imagecolortransparent
GD 函数
PHP 手册

imagecolorstotal

(PHP 4, PHP 5)

imagecolorstotal — 取得一幅图像的调色板中颜色的数目

说明

int imagecolorstotal ( resource $image )

本函数返回指定图像的调色板中的颜色数目。

参见 imagecolorat() 和 imagecolorsforindex()。

imagecolorsforindex
imagecolortransparent
GD 函数


将某个颜色定义为透明色

imagecolorstotal
imageconvolution
GD 函数
PHP 手册

imagecolortransparent

(PHP 4, PHP 5)

imagecolortransparent — 将某个颜色定义为透明色

说明

int imagecolortransparent ( resource $image [, int $color ] )

imagecolortransparent() 将 image 图像中的透明色设定为 color 。image 是 imagecreatetruecolor() 返回的图像标识符，color 是 imagecolorallocate() 返回的颜色标识符。

Note: 透明色是图像的一种属性，透明度不是颜色的属性。一旦设定了某个颜色为透明色，图像中之前画为该色的任何区域都成为透明的。

返回新透明色的标识符，如果省略 color 则返回当前透明色的标识符。

Note: 透明度仅能通过 imagecopymerge() 和真彩色图像拷贝，不能用 imagecopy() 或调色板图像。

imagecolorstotal
imageconvolution
GD 函数


用系数 div 和 offset 申请一个 3x3 的卷积矩阵

imagecolortransparent
imagecopy
GD 函数
PHP 手册

imageconvolution

(PHP 5 >= 5.1.0)

imageconvolution — 用系数 div 和 offset 申请一个 3x3 的卷积矩阵

说明

bool imageconvolution ( resource $image , array $matrix3x3 , float $div , float $offset )

如果成功则返回 TRUE，失败则返回 FALSE。

Warning

本函数暂无文档，仅有参数列表。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

imagecolortransparent
imagecopy
GD 函数


拷贝图像的一部分

imageconvolution
imagecopymerge
GD 函数
PHP 手册

imagecopy

(PHP 4, PHP 5)

imagecopy — 拷贝图像的一部分

说明

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

将 src_im 图像中坐标从 src_x ，src_y 开始，宽度为 src_w ，高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

imageconvolution
imagecopymerge
GD 函数


拷贝并合并图像的一部分

imagecopy
imagecopymergegray
GD 函数
PHP 手册

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymerge — 拷贝并合并图像的一部分

说明

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

将 src_im 图像中坐标从 src_x ，src_y 开始，宽度为 src_w ，高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。两图像将根据 pct 来决定合并程度，其值范围从 0 到 100。当 pct = 0 时，实际上什么也没做，当为 100 时对于调色板图像本函数和 imagecopy() 完全一样，它对真彩色图像实现了 alpha 透明。

Note: 本函数是 PHP 4.0.6 新加的。

imagecopy
imagecopymergegray
GD 函数


用灰度拷贝并合并图像的一部分

imagecopymerge
imagecopyresampled
GD 函数
PHP 手册

imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegray — 用灰度拷贝并合并图像的一部分

说明

bool imagecopymergegray ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

将 src_im 图像中坐标从 src_x ，src_y 开始，宽度为 src_w ，高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。两图像将根据 pct 来决定合并程度，其值范围从 0 到 100。当 pct = 0 时，实际上什么也没做，当为 100 时本函数和 imagecopy() 完全一样。

本函数和 imagecopymerge() 完全一样只除了合并时通过在拷贝操作前将目标像素转换为灰度级来保留了原色度。

Note: 本函数添加于 PHP 4.0.6。

imagecopymerge
imagecopyresampled
GD 函数


重采样拷贝部分图像并调整大小

imagecopymergegray
imagecopyresized
GD 函数
PHP 手册

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampled — 重采样拷贝部分图像并调整大小

说明

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中，平滑地插入像素值，因此，尤其是，减小了图像的大小而仍然保持了极大的清晰度。如果成功则返回 TRUE，失败则返回 FALSE。

dst_image 和 src_image 分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同，则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝（如果 dst_image 和 src_image 相同的话）区域，但如果区域交迭的话则结果不可预知。

Note: 因为调色板图像限制（255+1 种颜色）有个问题。重采样或过滤图像通常需要多于 255 种颜色，计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时，如果失败我们选择了计算结果最接近（理论上）的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果，例如空白（或者视觉上是空白）的图像。要跳过这个问题，请使用真彩色图像作为目标图像，例如用 imagecreatetruecolor() 创建的。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

范例

Example #1 简单例子

本例中将把一幅图像重采样为原始大小的一半。

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

Example #2 按比例重采样图像

本例将把一幅图像按最宽或最高 200 像素来显示。

<?php
// The file
$filename = 'test.jpg';

// Set a maximum height and width
$width = 200;
$height = 200;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
    $width = ($height / $height_orig) * $width_orig;
} else {
    $height = ($width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
?>

参见

imagecopyresized()

imagecopymergegray
imagecopyresized
GD 函数


拷贝部分图像并调整大小

imagecopyresampled
imagecreate
GD 函数
PHP 手册

imagecopyresized

(PHP 4, PHP 5)

imagecopyresized — 拷贝部分图像并调整大小

说明

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresized() 将一幅图像中的一块正方形区域拷贝到另一个图像中。dst_image 和 src_image 分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同，则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝（如果 dst_image 和 src_image 相同的话）区域，但如果区域交迭的话则结果不可预知。

Note: 因为调色板图像限制（255+1 种颜色）有个问题。重采样或过滤图像通常需要多于 255 种颜色，计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时，如果失败我们选择了计算结果最接近（理论上）的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果，例如空白（或者视觉上是空白）的图像。要跳过这个问题，请使用真彩色图像作为目标图像，例如用 imagecreatetruecolor() 创建的。

范例

Example #1 调整图像大小

本例将以原来的一半大小显示图像。

<?php
// File and new size
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Output
imagejpeg($thumb);
?>

图像将以一半大小输出，不过可以用 imagecopyresampled() 得到更好的质量。

参见

imagecopyresampled()

imagecopyresampled
imagecreate
GD 函数


新建一个基于调色板的图像

imagecopyresized
imagecreatefromgd2
GD 函数
PHP 手册

imagecreate

(PHP 4, PHP 5)

imagecreate — 新建一个基于调色板的图像

说明

resource imagecreate ( int $x_size , int $y_size )

imagecreate() 返回一个图像标识符，代表了一幅大小为 x_size 和 y_size 的空白图像。

推荐使用 imagecreatetruecolor()。

Example #1 新建一个新的 GD 图像流并输出图像

<?php
header("Content-type: image/png");
$im = @imagecreate(100, 50)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

参见 imagedestroy() 和 imagecreatetruecolor()。

imagecopyresized
imagecreatefromgd2
GD 函数


从 GD2 文件或 URL 新建一图像

imagecreate
imagecreatefromgd2part
GD 函数
PHP 手册

imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5)

imagecreatefromgd2 — 从 GD2 文件或 URL 新建一图像

说明

resource imagecreatefromgd2 ( string $filename )

Warning

本函数暂无文档，仅有参数列表。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreate
imagecreatefromgd2part
GD 函数


从给定的 GD2 文件或 URL 中的部分新建一图像

imagecreatefromgd2
imagecreatefromgd
GD 函数
PHP 手册

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5)

imagecreatefromgd2part — 从给定的 GD2 文件或 URL 中的部分新建一图像

说明

resource imagecreatefromgd2part ( string $filename , int $srcX , int $srcY , int $width , int $height )

Warning

本函数暂无文档，仅有参数列表。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromgd2
imagecreatefromgd
GD 函数


从 GD 文件或 URL 新建一图像

imagecreatefromgd2part
imagecreatefromgif
GD 函数
PHP 手册

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5)

imagecreatefromgd — 从 GD 文件或 URL 新建一图像

说明

resource imagecreatefromgd ( string $filename )

Warning

本函数暂无文档，仅有参数列表。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromgd2part
imagecreatefromgif
GD 函数


从 GIF 文件或 URL 新建一图像

imagecreatefromgd
imagecreatefromjpeg
GD 函数
PHP 手册

imagecreatefromgif

(PHP 4, PHP 5)

imagecreatefromgif — 从 GIF 文件或 URL 新建一图像

说明

resource imagecreatefromgif ( string $filename )

imagecreatefromgif() 返回一图像标识符，代表了从给定的文件名取得的图像。

imagecreatefromgif() 在失败时返回一个空字符串，并且输出一条错误信息，不幸地在浏览器中显示为断链接。为减轻调试工作下面的例子会产生一个错误 GIF：

Example #1 处理创建过程中的错误

<?php
function LoadGif($imgname)
{
    $im = @imagecreatefromgif($imgname); /* Attempt to open */
    if(!$im) { /* See if it failed */
        $im = imagecreatetruecolor(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Note: 自 GD 库 1.6 版起所有的 GIF 支持都移除了，又在 GD 库 2.0.28 版起又加了回来。如果使用二者之间版本的 GD 库时本函数不可用。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromgd
imagecreatefromjpeg
GD 函数


从 JPEG 文件或 URL 新建一图像

imagecreatefromgif
imagecreatefrompng
GD 函数
PHP 手册

imagecreatefromjpeg

(PHP 4, PHP 5)

imagecreatefromjpeg — 从 JPEG 文件或 URL 新建一图像

说明

resource imagecreatefromjpeg ( string $filename )

imagecreatefromjpeg() 返回一图像标识符，代表了从给定的文件名取得的图像。

imagecreatefromjpeg() 在失败时返回一个空字符串，并且输出一条错误信息，不幸地在浏览器中显示为断链接。为减轻调试工作下面的例子会产生一个错误 JPEG：

Example #1 处理创建过程中的错误

<?php
function LoadJpeg($imgname)
{
    $im = @imagecreatefromjpeg($imgname); /* Attempt to open */
    if(!$im) { /* See if it failed */
        $im  = imagecreatetruecolor(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Note: JPEG 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromgif
imagecreatefrompng
GD 函数


从 PNG 文件或 URL 新建一图像

imagecreatefromjpeg
imagecreatefromstring
GD 函数
PHP 手册

imagecreatefrompng

(PHP 4, PHP 5)

imagecreatefrompng — 从 PNG 文件或 URL 新建一图像

说明

resource imagecreatefrompng ( string $filename )

imagecreatefrompng() 返回一图像标识符，代表了从给定的文件名取得的图像。

imagecreatefrompng() 在失败时返回一个空字符串，并且输出一条错误信息，不幸地在浏览器中显示为断链接。为减轻调试工作下面的例子会产生一个错误 PNG：

Example #1 处理创建过程中的错误

<?php
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Attempt to open */
    if(!$im) { /* See if it failed */
        $im  = imagecreatetruecolor(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromjpeg
imagecreatefromstring
GD 函数


从字符串中的图像流新建一图像

imagecreatefrompng
imagecreatefromwbmp
GD 函数
PHP 手册

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring — 从字符串中的图像流新建一图像

说明

resource imagecreatefromstring ( string $image )

imagecreatefromstring() 返回一个图像标识符，其表达了从给定字符串得来的图像。图像格式将自动检测，只要 PHP 支持：JPEG，PNG，GIF，WBMP 和 GD2。

返回值

成功则返回图像资源，如果图像格式不支持，数据不是认可的格式，或者图像已损坏则返回 FALSE。

范例

Example #1 imagecreatefromstring() 例子

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
}
else {
    echo 'An error occured.';
}
?>

参见

  • imagecreatefromjpeg() - 从 JPEG 文件或 URL 新建一图像
  • imagecreatefrompng() - 从 PNG 文件或 URL 新建一图像
  • imagecreatefromgif() - 从 GIF 文件或 URL 新建一图像
  • imagecreatetruecolor() - 新建一个真彩色图像

imagecreatefrompng
imagecreatefromwbmp
GD 函数


从 WBMP 文件或 URL 新建一图像

imagecreatefromstring
imagecreatefromxbm
GD 函数
PHP 手册

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp — 从 WBMP 文件或 URL 新建一图像

说明

resource imagecreatefromwbmp ( string $filename )

imagecreatefromwbmp() 返回一图像标识符，代表了从给定的文件名取得的图像。

imagecreatefromwbmp() 在失败时返回一个空字符串，并且输出一条错误信息，不幸地在浏览器中显示为断链接。为减轻调试工作下面的例子会产生一个错误 WBMP：

Example #1 处理创建过程中的错误

<?php
function LoadWBMP($imgname)
{
    $im = @imagecreatefromwbmp($imgname); /* Attempt to open */
    if(!$im) { /* See if it failed */
        $im  = imagecreatetruecolor(20, 20); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Note: WBMP 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromstring
imagecreatefromxbm
GD 函数


从 XBM 文件或 URL 新建一图像

imagecreatefromwbmp
imagecreatefromxpm
GD 函数
PHP 手册

imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbm — 从 XBM 文件或 URL 新建一图像

说明

resource imagecreatefromxbm ( string $filename )

imagecreatefromxbm() 返回一图像标识符，代表了从给定的文件名取得的图像。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromwbmp
imagecreatefromxpm
GD 函数


从 XPM 文件或 URL 新建一图像

imagecreatefromxbm
imagecreatetruecolor
GD 函数
PHP 手册

imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpm — 从 XPM 文件或 URL 新建一图像

说明

resource imagecreatefromxpm ( string $filename )

imagecreatefromxpm() 返回一图像标识符，代表了从给定的文件名取得的图像。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

Tip

如果“fopen wrappers”已经被激活，则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表：支持的协议／封装协议列表。

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问，即使 allow_url_fopen 选项已被激活。

imagecreatefromxbm
imagecreatetruecolor
GD 函数


新建一个真彩色图像

imagecreatefromxpm
imagedashedline
GD 函数
PHP 手册

imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolor — 新建一个真彩色图像

说明

resource imagecreatetruecolor ( int $x_size , int $y_size )

imagecreatetruecolor() 返回一个图像标识符，代表了一幅大小为 x_size 和 y_size 的黑色图像。

是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在，但是在没有安装 GD2 的时候调用，PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。

Example #1 新建一个新的 GD 图像流并输出图像

<?php
header("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
      or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

Note: 本函数不能用于 GIF 文件格式。

参见 imagedestroy() 和 imagecreate()。

imagecreatefromxpm
imagedashedline
GD 函数


画一虚线

imagecreatetruecolor
imagedestroy
GD 函数
PHP 手册

imagedashedline

(PHP 4, PHP 5)

imagedashedline — 画一虚线

说明

bool imagedashedline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

反对使用本函数。应该用 imagesetstyle() 和 imageline() 的组合替代之。

imagecreatetruecolor
imagedestroy
GD 函数


销毁一图像

imagedashedline
imageellipse
GD 函数
PHP 手册

imagedestroy

(PHP 4, PHP 5)

imagedestroy — 销毁一图像

说明

bool imagedestroy ( resource $image )

imagedestroy() 释放与 image 关联的内存。image 是由图像创建函数返回的图像标识符，例如 imagecreatetruecolor()。

imagedashedline
imageellipse
GD 函数


画一个椭圆

imagedestroy
imagefill
GD 函数
PHP 手册

imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipse — 画一个椭圆

说明

bool imageellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )

imageellipse() 在 image 所代表的图像中画一个中心为 cx ，cy （图像左上角为 0, 0）的椭圆。w 和 h 分别指定了椭圆的宽度和高度，椭圆的颜色由 color 指定。

Note: 本函数添加于 PHP 4.0.6 且需要 GD 2.0.2 或更高版本，可以在 » http://www.libgd.org/ 获得。

Example #1 imageellipse() 例子

<?php

// 新建一个空白图像
$image = imagecreatetruecolor(400, 300);

// 填充背景色
$bg = imagecolorallocate($image, 0, 0, 0);

// 选择椭圆的颜色
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// 画一个椭圆
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// 输出图像
header("Content-type: image/png");
imagepng($image);

?>

参见 imagefilledellipse() 和 imagearc()。

imagedestroy
imagefill
GD 函数


区域填充

imageellipse
imagefilledarc
GD 函数
PHP 手册

imagefill

(PHP 4, PHP 5)

imagefill — 区域填充

说明

bool imagefill ( resource $image , int $x , int $y , int $color )

imagefill() 在 image 图像的坐标 x ，y （图像左上角为 0, 0）处用 color 颜色执行区域填充（即与 x, y 点颜色相同且相邻的点都会被填充）。

Example #1 imagefill() 例子

<?php

$im = imagecreatetruecolor(100, 100);

// 将背景设为红色
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

参见 imagecolorallocate()。

imageellipse
imagefilledarc
GD 函数


画一椭圆弧且填充

imagefill
imagefilledellipse
GD 函数
PHP 手册

imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc — 画一椭圆弧且填充

说明

bool imagefilledarc ( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color , int $style )

imagefilledarc() 在 image 所代表的图像中以 cx ，cy （图像左上角为 0, 0）画一椭圆弧。如果成功则返回 TRUE，失败则返回 FALSE。w 和 h 分别指定了椭圆的宽和高，s 和 e 参数以角度指定了起始和结束点。style 可以是下列值按位或（OR）后的值：

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED

IMG_ARC_PIE 和 IMG_ARC_CHORD 是互斥的；IMG_ARC_CHORD 只是用直线连接了起始和结束点，IMG_ARC_PIE 则产生圆形边界（如果两个都用，IMG_ARC_CHORD 生效）。IMG_ARC_NOFILL 指明弧或弦只有轮廓，不填充。IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连，和 IMG_ARC_NOFILL 一起使用是画饼状图轮廓的好方法（而不用填充）。

Example #1 创建一 3D 效果的饼状图

<?php
// create image
$image = imagecreatetruecolor(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
  imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

imagefill
imagefilledellipse
GD 函数


画一椭圆并填充

imagefilledarc
imagefilledpolygon
GD 函数
PHP 手册

imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipse — 画一椭圆并填充

说明

bool imagefilledellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )

imagefilledellipse() 在 image 所代表的图像中以 cx ，cy （图像左上角为 0, 0）为中心画一个椭圆。w 和 h 分别指定了椭圆的宽和高。椭圆用 color 颜色填充。如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 imagefilledellipse() 例子

<?php

// create a blank image
$image = imagecreatetruecolor(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imageellipse() 和 imagefilledarc()。

imagefilledarc
imagefilledpolygon
GD 函数


画一多边形并填充

imagefilledellipse
imagefilledrectangle
GD 函数
PHP 手册

imagefilledpolygon

(PHP 4, PHP 5)

imagefilledpolygon — 画一多边形并填充

说明

bool imagefilledpolygon ( resource $image , array $points , int $num_points , int $color )

imagefilledpolygon() 在 image 图像中画一个填充了的多边形。

points 参数是一个按顺序包含有多边形各顶点的 x 和 y 坐标的数组。

num_points 参数是顶点的总数，必须大于 3。

Example #1 imagefilledpolygon() 例子

<?php
// 建立多边形各顶点坐标的数组
$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
            );

// 创建图像
$image = imagecreatetruecolor(250, 250);

// 设定颜色
$bg   = imagecolorallocate($image, 200, 200, 200);
$blue = imagecolorallocate($image, 0, 0, 255);

// 画一个多边形
imagefilledpolygon($image, $values, 6, $blue);

// 输出图像
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

imagefilledellipse
imagefilledrectangle
GD 函数


画一矩形并填充

imagefilledpolygon
imagefilltoborder
GD 函数
PHP 手册

imagefilledrectangle

(PHP 4, PHP 5)

imagefilledrectangle — 画一矩形并填充

说明

bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imagefilledrectangle() 在 image 图像中画一个用 color 颜色填充了的矩形，其左上角坐标为 x1 ，y1 ，右下角坐标为 x2 ，y2 。0, 0 是图像的最左上角。

imagefilledpolygon
imagefilltoborder
GD 函数


区域填充到指定颜色的边界为止

imagefilledrectangle
imagefilter
GD 函数
PHP 手册

imagefilltoborder

(PHP 4, PHP 5)

imagefilltoborder — 区域填充到指定颜色的边界为止

说明

bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )

imagefilltoborder() 从 x ，y （图像左上角为 0, 0）点开始用 color 颜色执行区域填充，直到碰到颜色为 border 的边界为止。【注：边界内的所有颜色都会被填充。如果指定的边界色和该点颜色相同，则没有填充。如果图像中没有该边界色，则整幅图像都会被填充。】

imagefilledrectangle
imagefilter
GD 函数


对图像使用过滤器

imagefilltoborder
imagefontheight
GD 函数
PHP 手册

imagefilter

(PHP 5)

imagefilter — 对图像使用过滤器

说明

bool imagefilter ( resource $src_im , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 ]]] )

imagefilter() 把过滤器 filtertype 应用到图像上，在需要时使用 arg1 ，arg2 和 arg3 。

filtertype 可以是下列中的一个：

  • IMG_FILTER_NEGATE ：将图像中所有颜色反转。
  • IMG_FILTER_GRAYSCALE ：将图像转换为灰度的。
  • IMG_FILTER_BRIGHTNESS ：改变图像的亮度。用 arg1 设定亮度级别。
  • IMG_FILTER_CONTRAST ：改变图像的对比度。用 arg1 设定对比度级别。
  • IMG_FILTER_COLORIZE ：与 IMG_FILTER_GRAYSCALE 类似，不过可以指定颜色。用 arg1 ，arg2 和 arg3 分别指定 red ，blue 和 green 。每种颜色范围是 0 到 255。
  • IMG_FILTER_EDGEDETECT ：用边缘检测来突出图像的边缘。
  • IMG_FILTER_EMBOSS ：使图像浮雕化。
  • IMG_FILTER_GAUSSIAN_BLUR ：用高斯算法模糊图像。
  • IMG_FILTER_SELECTIVE_BLUR ：模糊图像。
  • IMG_FILTER_MEAN_REMOVAL ：用平均移除法来达到轮廓效果。
  • IMG_FILTER_SMOOTH ：使图像更柔滑。用 arg1 设定柔滑级别。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 imagefilter() 灰度例子

<?php
$im = imagecreatefrompng('dave.png');
if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {
    echo 'Image converted to grayscale.';
    imagepng($im, 'dave.png');
} else {
    echo 'Conversion to grayscale failed.';
}

imagedestroy($im);
?>

Example #2 imagefilter() 亮度例子

<?php
$im = imagecreatefrompng('sean.png');
if ($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20)) {
    echo 'Image brightness changed.';
    imagepng($im, 'sean.png');
} else {
    echo 'Image brightness change failed.';
}

imagedestroy($im);
?>

Example #3 imagefilter() 上彩例子

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, so 0, 255, 0 is green */
if ($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0)) {
    echo 'Image successfully shaded green.';
    imagepng($im, 'philip.png');
} else {
    echo 'Green shading failed.';
}

imagedestroy($im);
?>

imagefilltoborder
imagefontheight
GD 函数


取得字体高度

imagefilter
imagefontwidth
GD 函数
PHP 手册

imagefontheight

(PHP 4, PHP 5)

imagefontheight — 取得字体高度

说明

int imagefontheight ( int $font )

返回指定字体一个字符高度的像素值。

参见 imagefontwidth() 和 imageloadfont()。

imagefilter
imagefontwidth
GD 函数


取得字体宽度

imagefontheight
imageftbbox
GD 函数
PHP 手册

imagefontwidth

(PHP 4, PHP 5)

imagefontwidth — 取得字体宽度

说明

int imagefontwidth ( int $font )

返回指定字体一个字符宽度的像素值。

参见 imagefontheight() 和 imageloadfont()。

imagefontheight
imageftbbox
GD 函数


给出一个使用 FreeType 2 字体的文本框

imagefontwidth
imagefttext
GD 函数
PHP 手册

imageftbbox

(PHP 4 >= 4.0.7, PHP 5)

imageftbbox — 给出一个使用 FreeType 2 字体的文本框

说明

array imageftbbox ( float $size , float $angle , string $font_file , string $text [, array $extrainfo ] )

Warning

本函数暂无文档，仅有参数列表。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

Note: extrainfo 参数自 PHP 4.3.5 起成为可选项。

imagefontwidth
imagefttext
GD 函数


使用 FreeType 2 字体将文本写入图像

imageftbbox
imagegammacorrect
GD 函数
PHP 手册

imagefttext

(PHP 4 >= 4.0.7, PHP 5)

imagefttext — 使用 FreeType 2 字体将文本写入图像

说明

array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $col , string $font_file , string $text [, array $extrainfo ] )

Warning

本函数暂无文档，仅有参数列表。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

Note: extrainfo 参数自 PHP 4.3.5 起成为可选项。

imageftbbox
imagegammacorrect
GD 函数


对 GD 图像应用 gamma 修正

imagefttext
imagegd2
GD 函数
PHP 手册

imagegammacorrect

(PHP 4, PHP 5)

imagegammacorrect — 对 GD 图像应用 gamma 修正

说明

bool imagegammacorrect ( resource $image , float $inputgamma , float $outputgamma )

imagegammacorrect() 函数用给定的输入 gamma 值 inputgamma 和输出 gamma 值 outputgamma 对一幅 GD 图像流（image ）应用 gamma 修正。

imagefttext
imagegd2
GD 函数


将 GD2 图像输出到浏览器或文件

imagegammacorrect
imagegd
GD 函数
PHP 手册

imagegd2

(PHP 4 >= 4.0.7, PHP 5)

imagegd2 — 将 GD2 图像输出到浏览器或文件

说明

bool imagegd2 ( resource $image [, string $filename [, int $chunk_size [, int $type ]]] )

imagegd2() 将一个 GD 图像输出到 filename 。image 参数是由 imagecreatetruecolor() 函数返回的。

filename 参数为可选项，如果为空，则原始图像流会被直接输出。

可选的 type 参数可以是 IMG_GD2_RAW 或 IMG_GD2_COMPRESSED。默认为 IMG_GD2_RAW。

Note: 可选的 chunk_size 和 type 参数自 PHP 4.3.2 起可用。

Note: GD2 格式一般是用来加载图像中的一部分时更快。注意 GD2 格式只能用于兼容于 GD2 的应用程序。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagegd()。

imagegammacorrect
imagegd
GD 函数


将 GD 图像输出到浏览器或文件

imagegd2
imagegif
GD 函数
PHP 手册

imagegd

(PHP 4 >= 4.0.7, PHP 5)

imagegd — 将 GD 图像输出到浏览器或文件

说明

bool imagegd ( resource $image [, string $filename ] )

imagegd() 将一个 GD 图像输出到 filename 。image 参数是由 imagecreatetruecolor() 函数返回的。

filename 参数为可选项，如果为空，则原始图像流会被直接输出。

Note: GD 格式一般是用来加载图像中的一部分时更快。注意 GD 格式只能用于兼容于 GD 的应用程序。

参见 imagegd2()。

imagegd2
imagegif
GD 函数


以 GIF 格式将图像输出到浏览器或文件

imagegd
imagegrabscreen
GD 函数
PHP 手册

imagegif

(PHP 4, PHP 5)

imagegif — 以 GIF 格式将图像输出到浏览器或文件

说明

bool imagegif ( resource $image [, string $filename ] )

imagegif() 从 image 图像以 filename 为文件名创建一个 GIF 图像。image 参数是 imagecreate() 或 imagecreatefrom* 函数的返回值。

图像格式为 GIF87a。如果用了 imagecolortransparent() 使图像为透明，则其格式为 GIF89a。

filename 参数为可选，如果省略，则原始图像流将被直接输出。通过 header() 发送 Content-type: image/gif 可以使 PHP 脚本直接输出 GIF 图像。

Note: 不过从 GD 库 1.6 起所有的 GIF 支持都移除了，如果使用这些 GD 库时本函数不可用。希望在 2004 年中期能够发布支持 GIF 的 GD 库。更多信息见 » GD Project 站点。
以下代码段通过自动检测 GD 支持的图像类型来写出移植性更好的 PHP 程序。用更灵活的代码替代了原来的 header("Content-type: image/gif"); imagegif($im);：

<?php
if (function_exists("imagegif")) {
    header("Content-type: image/gif");
    imagegif($im);
} elseif (function_exists("imagejpeg")) {
    header("Content-type: image/jpeg");
    imagejpeg($im, "", 0.5);
} elseif (function_exists("imagepng")) {
    header("Content-type: image/png");
    imagepng($im);
} elseif (function_exists("imagewbmp")) {
    header("Content-type: image/vnd.wap.wbmp");
    imagewbmp($im);
} else {
    die("No image support in this PHP server");
}

Note: 自 PHP 3.0.18 和 4.0.2 起可以用 imagetypes() 函数代替 function_exists() 来检查是否支持某种图像格式：

<?php
if (imagetypes() & IMG_GIF) {
    header ("Content-type: image/gif");
    imagegif ($im);
} elseif (imagetypes() & IMG_JPG) {
    /* ... etc. */
}

参见 imagepng()，imagewbmp()，imagejpeg() 和 imagetypes()。

imagegd
imagegrabscreen
GD 函数


Captures the whole screen

imagegif
imagegrabwindow
GD 函数
PHP 手册

imagegrabscreen

(PHP 5 >= 5.2.2)

imagegrabscreen — Captures the whole screen

说明

resource imagegrabscreen ( void )

Grabs a screenshot of the whole screen.

返回值

Returns an image resource identifier on success, FALSE on failure.

范例

Example #1 imagegrabscreen() example

This example demonstrates how to take a screenshot of the current screen and save it as a png image.

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>

注释

Note: This function is only available on Windows.

参见

  • imagegrabwindow() - Captures a window

imagegif
imagegrabwindow
GD 函数


Captures a window

imagegrabscreen
imageinterlace
GD 函数
PHP 手册

imagegrabwindow

(PHP 5 >= 5.2.2)

imagegrabwindow — Captures a window

说明

resource imagegrabwindow ( int $window [, int $client_area=0 ] )

Grabs a window or its client area using a windows handle (HWND property in COM instance)

参数

window

The HWND window ID.

client_area

Include the client area of the application window.

返回值

Returns an image resource identifier on success, FALSE on failure.

错误／异常

E_NOTICE is issued if window_handle is invalid window handle. E_WARNING is issued if the Windows API is too old.

范例

Example #1 imagegrabwindow() example

Capture a window (IE for example)

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Capture a window (IE for example) but with its content

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");

/* Still working? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

注释

Note: This function is only available on Windows.

参见

  • imagegrabscreen() - Captures the whole screen

imagegrabscreen
imageinterlace
GD 函数


激活或禁止隔行扫描

imagegrabwindow
imageistruecolor
GD 函数
PHP 手册

imageinterlace

(PHP 4, PHP 5)

imageinterlace — 激活或禁止隔行扫描

说明

int imageinterlace ( resource $image [, int $interlace ] )

imageinterlace() 打开或关闭隔行扫描的比特标记。如果 interlace 为 1 则图像为隔行扫描的，如果 interlace 为 0 则图像为非隔行扫描的。

如果设定了隔行扫描比特标记而图像使用 JPEG 格式，则图像被创建为渐进式 JPEG。

本函数返回图像中是否设定了隔行扫描比特标记。

imagegrabwindow
imageistruecolor
GD 函数


检查图像是否为真彩色图像

imageinterlace
imagejpeg
GD 函数
PHP 手册

imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolor — 检查图像是否为真彩色图像

说明

bool imageistruecolor ( resource $image )

imageistruecolor() 检查 image 图像是否为真彩色图像。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagecreatetruecolor()。

imageinterlace
imagejpeg
GD 函数


以 JPEG 格式将图像输出到浏览器或文件

imageistruecolor
imagelayereffect
GD 函数
PHP 手册

imagejpeg

(PHP 4, PHP 5)

imagejpeg — 以 JPEG 格式将图像输出到浏览器或文件

说明

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )

imagejpeg() 从 image 图像以 filename 为文件名创建一个 JPEG 图像。image 参数是 imagecreatetruecolor() 函数的返回值。

filename 参数为可选，如果省略，则原始图像流将被直接输出。要省略 filename 参数而提供 quality 参数，使用空字符串（''）。通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。

Note: JPEG 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

quality 为可选项，范围从 0（最差质量，文件更小）到 100（最佳质量，文件最大）。默认为 IJG 默认的质量值（大约 75）。

如果想输出渐进式 JPEG，需要用 imageinterlace() 函数将隔行扫描比特置位。

参见 imagepng()，imagegif()，imagewbmp()，imageinterlace() 和 imagetypes()。

imageistruecolor
imagelayereffect
GD 函数


设定 alpha 混色标志以使用绑定的 libgd 分层效果

imagejpeg
imageline
GD 函数
PHP 手册

imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffect — 设定 alpha 混色标志以使用绑定的 libgd 分层效果

说明

bool imagelayereffect ( resource $image , int $effect )
Warning

本函数暂无文档，仅有参数列表。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

imagejpeg
imageline
GD 函数


画一条线段

imagelayereffect
imageloadfont
GD 函数
PHP 手册

imageline

(PHP 4, PHP 5)

imageline — 画一条线段

说明

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imageline() 用 color 颜色在图像 image 中从坐标 x1 ，y1 到 x2 ，y2 （图像左上角为 0, 0）画一条线段。

Example #1 画一条粗线

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* 下面两行只在线段直角相交时好使
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    if ($thick == 1) {
        return imageline($image, $x1, $y1, $x2, $y2, $color);
    }
    $t = $thick / 2 - 0.5;
    if ($x1 == $x2 || $y1 == $y2) {
        return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
    }
    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
    $a = $t / sqrt(1 + pow($k, 2));
    $points = array(
        round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    imagefilledpolygon($image, $points, 4, $color);
    return imagepolygon($image, $points, 4, $color);
}

?>

参见 imagecreatetruecolor() 和 imagecolorallocate()。

imagelayereffect
imageloadfont
GD 函数


载入一新字体

imageline
imagepalettecopy
GD 函数
PHP 手册

imageloadfont

(PHP 4, PHP 5)

imageloadfont — 载入一新字体

说明

int imageloadfont ( string $file )

imageloadfont() 加载一个用户定义的位图字体并返回该字体的标识符（其值总是大于 5，因此不会和内置字体冲突）。 在产生错误的情况下，该函数返回 FALSE 。

字体文件格式目前是二进制的且和平台有关。这意味着应该用和你运行 PHP 的机器相同类型 CPU 的机器生成字体。

字体文件格式
字节位置 | C 数据类型 | 说明
byte 0-3 | int | 字体中的字符数目
byte 4-7 | int | 字体中第一个字符的值（通常是 32 代表空格）
byte 8-11 | int | 每个字符宽度的像素值
byte 12-15 | int | 每个字符高度的像素值
byte 16- | char | 字符数据的数组，每字符中每像素一字节，一共 (nchars*width*height) 字节。

Example #1 使用 imageloadfont

<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 49, 19, $white);
$font = imageloadfont("04b.gdf");
imagestring($im, $font, 0, 0, "Hello", $black);
imagepng($im);
?>

参见 imagefontwidth() 和 imagefontheight()。

imageline
imagepalettecopy
GD 函数


将调色板从一幅图像拷贝到另一幅

imageloadfont
imagepng
GD 函数
PHP 手册

imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopy — 将调色板从一幅图像拷贝到另一幅

说明

void imagepalettecopy ( resource $destination , resource $source )

imagepalettecopy() 从 source 图像把调色板拷贝到 destination 图像。

imageloadfont
imagepng
GD 函数


以 PNG 格式将图像输出到浏览器或文件

imagepalettecopy
imagepolygon
GD 函数
PHP 手册

imagepng

(PHP 4, PHP 5)

imagepng — 以 PNG 格式将图像输出到浏览器或文件

说明

bool imagepng ( resource $image [, string $filename ] )

imagepng() 将 GD 图像流（image ）以 PNG 格式输出到标准输出（通常为浏览器），或者如果用 filename 给出了文件名则将其输出到该文件。

<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>

参见 imagegif()，imagewbmp()，imagejpeg() 和 imagetypes()。

imagepalettecopy
imagepolygon
GD 函数


画一个多边形

imagepng
imagepsbbox
GD 函数
PHP 手册

imagepolygon

(PHP 4, PHP 5)

imagepolygon — 画一个多边形

说明

bool imagepolygon ( resource $image , array $points , int $num_points , int $color )

imagepolygon() 在图像中创建一个多边形。points 是一个 PHP 数组，包含了多边形的各个顶点坐标，即 points[0] = x0，points[1] = y0，points[2] = x1，points[3] = y1，以此类推。num_points 是顶点的总数。

Example #1 imagepolygon() 例子

<?php
// create a blank image
$image = imagecreatetruecolor(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// draw the polygon
imagepolygon($image,
             array (
                    0, 0,
                    100, 200,
                    300, 200
             ),
             3,
             $col_poly);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

参见 imagecreate() 和 imagecreatetruecolor()。

imagepng
imagepsbbox
GD 函数


给出一个使用 PostScript Type1 字体的文本方框

imagepolygon
imagepsencodefont
GD 函数
PHP 手册

imagepsbbox

(PHP 4, PHP 5)

imagepsbbox — 给出一个使用 PostScript Type1 字体的文本方框

说明

array imagepsbbox ( string $text , int $font , int $size [, int $space ], int $tightness , float $angle )

size 以像素表示。

space 可以用来改变字体中默认间距的值。此值将被加到通常的值上，可以为负值。

tightness 可以控制字符之间的间距。此值将被加到通常字符宽度上，可以为负值。

angle 以角度表示。

space 和 tightness 以字符间距单元表示，1 个单元为 1 em-square 的一千分之一。

space ，tightness 和 angle 参数为可选项。

围绕文本范围的虚拟方框是用从字符度量学中的可用信息来计算的，不幸的是往往和实际上光栅生成的文本的结果有少许不同。如果角度为 0 度，（根据经验）文本在每个方向上都需要多 1 个像素。

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

本函数返回包含有下列单元的数组：

0 | 左下角的 X 坐标
1 | 左下角的 Y 坐标
2 | 右上角的 X 坐标
3 | 右上角的 Y 坐标

参见 imagepstext()。

imagepolygon
imagepsencodefont
GD 函数


改变字体中的字符编码矢量

imagepsbbox
imagepsextendfont
GD 函数
PHP 手册

imagepsencodefont

(PHP 4, PHP 5)

imagepsencodefont — 改变字体中的字符编码矢量

说明

bool imagepsencodefont ( resource $font_index , string $encodingfile )

从文件中加载字符编码矢量并用其替换给定字体的编码矢量。由于 PostScript 字体的默认矢量缺少大多数超过 127 的字符位置，因此如果使用其它非英语的语言的话肯定需要改变它。编码文件的确切格式定义在 T1lib 文档中。T1lib 包含有两个可马上使用的文件，IsoLatin1.enc 和 IsoLatin2.enc。

如果发现自己总是要用本函数，更好的定义编码的做法是在配置文件中将 ps.default_encoding 设定为指向正确的编码文件，这样加载的所有字体就会自动具有正确编码了。

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

imagepsbbox
imagepsextendfont
GD 函数


扩充或精简字体

imagepsencodefont
imagepsfreefont
GD 函数
PHP 手册

imagepsextendfont

(PHP 4, PHP 5)

imagepsextendfont — 扩充或精简字体

说明

bool imagepsextendfont ( int $font_index , float $extend )

扩充或精简某字体（font_index ）。如果 extend 参数的值小于一则是精简该字体。

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

imagepsencodefont
imagepsfreefont
GD 函数


释放一个 PostScript Type 1 字体所占用的内存

imagepsextendfont
imagepsloadfont
GD 函数
PHP 手册

imagepsfreefont

(PHP 4, PHP 5)

imagepsfreefont — 释放一个 PostScript Type 1 字体所占用的内存

说明

bool imagepsfreefont ( resource $fontindex )

imagepsfreefont() 释放一个 PostScript Type 1 字体所占用的内存。

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

参见 imagepsloadfont()。

imagepsextendfont
imagepsloadfont
GD 函数


从文件中加载一个 PostScript Type 1 字体

imagepsfreefont
imagepsslantfont
GD 函数
PHP 手册

imagepsloadfont

(PHP 4, PHP 5)

imagepsloadfont — 从文件中加载一个 PostScript Type 1 字体

说明

resource imagepsloadfont ( string $filename )

如果一切正常，将返回一个合法的字体索引以备使用。否则返回 FALSE 并显示一条信息说明哪里错了，但不能直接读取此信息，因为输出格式是图像。

Example #1 imagepsloadfont() 例子

<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(350, 45);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 349, 44, $white);
$font = imagepsloadfont("bchbi.pfb"); // or locate your .pfb files on your machine
imagepstext($im, "Testing... It worked!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);
imagepng($im);
imagedestroy($im);
?>

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

参见 imagepsfreefont()。

imagepsfreefont
imagepsslantfont
GD 函数


倾斜某字体

imagepsloadfont
imagepstext
GD 函数
PHP 手册

imagepsslantfont

(PHP 4, PHP 5)

imagepsslantfont — 倾斜某字体

说明

bool imagepsslantfont ( resource $font_index , float $slant )

用 slant 参数指定的倾斜值来倾斜 font_index 参数指定的字体。

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

imagepsloadfont
imagepstext
GD 函数


用 PostScript Type1 字体把文本字符串画在图像上

imagepsslantfont
imagerectangle
GD 函数
PHP 手册

imagepstext

(PHP 4, PHP 5)

imagepstext — 用 PostScript Type1 字体把文本字符串画在图像上

说明

array imagepstext ( resource $image , string $text , resource $font , int $size , int $foreground , int $background , int $x , int $y [, int $space ], int $tightness , float $angle , int $antialias_steps )

foreground 是文本的颜色，background 是文本以防锯齿（antialiasing）方式尝试淡入的颜色。以 background 为颜色的像素实际上不会被画上去，所以背景图像不需要是实心的颜色。

以 x ，y 给出的坐标定义了第一个字符的起点（或参考点，基本是字符的左下角）。这和 imagestring() 不同，其 x ，y 坐标定义的是第一个字符的右上角。如果不很理解请参考 PostScript 文档中关于字体及其度量系统的部分。

space 可以用来改变字体中默认间距的值。此值将被加到通常的值上，可以为负值。

tightness 可以控制字符之间的间距。此值将被加到通常字符宽度上，可以为负值。

angle 以角度表示。

size 以像素表示。

antialias_steps 可以控制防混色文本使用的颜色的数目。允许值为 4 和 16。大的数值推荐用于大小小于 20 的文本，对文本质量的效果相当明显。对更大的大小，用 4，计算强度小一些。

space 和 tightness 以字符间距单元表示，1 个单元为 1 em-square 的一千分之一。

space ，tightness ，angle 和 antialias_steps 参数为可选项。

Note: 本函数仅在 PHP 编译时指定了 --enable-t1lib 时可用。

本函数返回一个包含下列单元的数组：

0 | 左下角的 X 坐标
1 | 左下角的 Y 坐标
2 | 右上角的 X 坐标
3 | 右上角的 Y 坐标

参见 imagepsbbox()。

imagepsslantfont
imagerectangle
GD 函数


画一个矩形

imagepstext
imagerotate
GD 函数
PHP 手册

imagerectangle

(PHP 4, PHP 5)

imagerectangle — 画一个矩形

说明

bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col )

imagerectangle() 用 col 颜色在 image 图像中画一个矩形，其左上角坐标为 x1, y1，右下角坐标为 x2, y2。图像的左上角坐标为 0, 0。

imagepstext
imagerotate
GD 函数


用给定角度旋转图像

imagerectangle
imagesavealpha
GD 函数
PHP 手册

imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotate — 用给定角度旋转图像

说明

resource imagerotate ( resource $src_im , float $angle , int $bgd_color [, int $ignore_transparent ] )

将 src_im 图像用给定的 angle 角度旋转。bgd_color 指定了旋转后没有覆盖到的部分的颜色。

旋转的中心是图像的中心，旋转后的图像会按比例缩小以适合目标图像的大小――边缘不会被剪去。

如果 ignore_transparent 被设为非零值，则透明色会被忽略（否则会被保留）。此参数是 PHP 5.1 新加的。

Example #1 将图像旋转 180 度

本例将把一幅图像旋转 180 度――上下颠倒。

// File and rotation
$filename = 'test.jpg';
$degrees = 180;

// Content type
header('Content-type: image/jpeg');

// Load
$source = imagecreatefromjpeg($filename);

// Rotate
$rotate = imagerotate($source, $degrees, 0);

// Output
imagejpeg($rotate);

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

imagerectangle
imagesavealpha
GD 函数


设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息（与单一透明色相反）

imagerotate
imagesetbrush
GD 函数
PHP 手册

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealpha — 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息（与单一透明色相反）

说明

bool imagesavealpha ( resource $image , bool $saveflag )

imagesavealpha() 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息（与单一透明色相反）。

要使用本函数，必须将 alphablending 清位（imagealphablending($im, false)）。

不是所有的浏览器都支持 alpha 通道，如果在你的浏览器上碰到问题，试着用兼容 alpha 通道的浏览器（例如最新版的 Mozilla）重新加载脚本。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

参见 imagealphablending()。

imagerotate
imagesetbrush
GD 函数


设定画线用的画笔图像

imagesavealpha
imagesetpixel
GD 函数
PHP 手册

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrush — 设定画线用的画笔图像

说明

bool imagesetbrush ( resource $image , resource $brush )

当用特殊的颜色 IMG_COLOR_BRUSHED 或 IMG_COLOR_STYLEDBRUSHED 绘画时，imagesetbrush() 设定了所有画线的函数（例如 imageline() 和 imagepolygon()）所使用的画笔图像。【注：使用画笔图像，所画的线是由 brush 所代表的图像构成的。请参考并尝试运行 imagesetstyle() 中的例子以帮助理解。】

Note: 使用完画笔图像后不需要采取什么特殊动作。但如果销毁了画笔图像，在设定一个新的画笔图像之前不能使用 IMG_COLOR_BRUSHED 或 IMG_COLOR_STYLEDBRUSHED！

Note: 本函数是 PHP 4.0.6 添加的。

imagesavealpha
imagesetpixel
GD 函数


画一个单一像素

imagesetbrush
imagesetstyle
GD 函数
PHP 手册

imagesetpixel

(PHP 4, PHP 5)

imagesetpixel — 画一个单一像素

说明

bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel() 在 image 图像中用 color 颜色在 x ，y 坐标（图像左上角为 0，0）上画一个点。

参见 imagecreatetruecolor() 和 imagecolorallocate()。

imagesetbrush
imagesetstyle
GD 函数


设定画线的风格

imagesetpixel
imagesetthickness
GD 函数
PHP 手册

imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyle — 设定画线的风格

说明

bool imagesetstyle ( resource $image , array $style )

imagesetstyle() 设定所有画线的函数（例如
imageline()
和 imagepolygon()）在使用特殊颜色
IMG_COLOR_STYLED 或者用
IMG_COLOR_STYLEDBRUSHED 画一行图像时所使用的风格。如果成功则返回 TRUE，失败则返回 FALSE。

style 参数是像素组成的数组。下面的示例脚本在画布上从左上角到右下角画一行虚线：

Example #1 imagesetstyle() 例子

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* 画一条虚线，5 个红色像素，5 个白色像素 */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* 用 imagesetbrush() 和 imagesetstyle 画一行笑脸 */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

参见 imagesetbrush() 和 imageline()。

Note: 本函数是 PHP 4.0.6 添加的。

imagesetpixel
imagesetthickness
GD 函数


设定画线的宽度

imagesetstyle
imagesettile
GD 函数
PHP 手册

imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthickness — 设定画线的宽度

说明

bool imagesetthickness ( resource $image , int $thickness )

imagesetthickness() 把画矩形，多边形，椭圆等等时所用的线宽设为 thickness 个像素。如果成功则返回 TRUE，失败则返回 FALSE。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

imagesetstyle
imagesettile
GD 函数


设定用于填充的贴图

imagesetthickness
imagestring
GD 函数
PHP 手册

imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettile — 设定用于填充的贴图

说明

bool imagesettile ( resource $image , resource $tile )

imagesettile() 设定所有区域填充函数（例如
imagefill()
和 imagefilledpolygon()）在使用特殊颜色
IMG_COLOR_TILED 填充时所使用的贴图。

贴图是指用重复的样式来填充一块区域所使用的图像。任何 GD 图像都能用作贴图，并且通过使用 imagecolortransparent() 来设定贴图的透明色，贴图可以使底层的特定区域透上来。

Note: 使用完贴图后不需要采取什么特殊动作。但如果销毁了贴图，在设定一个新的贴图之前不能使用 IMG_COLOR_TILED！

imagesetthickness
imagestring
GD 函数


水平地画一行字符串

imagesettile
imagestringup
GD 函数
PHP 手册

imagestring

(PHP 4, PHP 5)

imagestring — 水平地画一行字符串

说明

bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )

imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x ，y 坐标处（这是字符串左上角坐标，整幅图像的左上角为 0，0）。如果 font 是 1，2，3，4 或 5，则使用内置字体。

Example #1 imagestring() 例子

<?php
// 建立一幅 100X30 的图像
$im = imagecreate(100, 30);

// 白色背景和蓝色文本
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// 把字符串写在图像左上角
imagestring($im, 5, 0, 0, "Hello world!", $textcolor);

// 输出图像
header("Content-type: image/png");
imagepng($im);
?>

参见 imageloadfont() 和 imagettftext()。

imagesettile
imagestringup
GD 函数


垂直地画一行字符串

imagestring
imagesx
GD 函数
PHP 手册

imagestringup

(PHP 4, PHP 5)

imagestringup — 垂直地画一行字符串

说明

bool imagestringup ( resource $image , int $font , int $x , int $y , string $s , int $col )

imagestring() 用 col 颜色将字符串 s 垂直地画到 image 所代表的图像的 x , y 座标处（图像的左上角为 0, 0）。如果 font 是 1，2，3，4 或 5，则使用内置字体。

参见 imageloadfont()。

imagestring
imagesx
GD 函数


取得图像宽度

imagestringup
imagesy
GD 函数
PHP 手册

imagesx

(PHP 4, PHP 5)

imagesx — 取得图像宽度

说明

int imagesx ( resource $image )

imagesx() 返回 image 所代表的图像的宽度。

Example #1 使用 imagesx()

<?php

// create a 300*200 image
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

参见 imagecreatetruecolor()，getimagesize() 和 imagesy()。

imagestringup
imagesy
GD 函数


取得图像高度

imagesx
imagetruecolortopalette
GD 函数
PHP 手册

imagesy

(PHP 4, PHP 5)

imagesy — 取得图像高度

说明

int imagesy ( resource $image )

imagesy() 返回 image 所代表的图像的高度。

Example #1 使用 imagesy()

<?php

// create a 300*200 image
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

参见 imagecreatetruecolor()，getimagesize() 和 imagesx()。

imagesx
imagetruecolortopalette
GD 函数


将真彩色图像转换为调色板图像

imagesy
imagettfbbox
GD 函数
PHP 手册

imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopalette — 将真彩色图像转换为调色板图像

说明

bool imagetruecolortopalette ( resource $image , bool $dither , int $ncolors )

imagetruecolortopalette() 将一幅真彩色图像转换为调色板图像。本函数的代码原本是从独立的 JPEG 小组库代码中提取出来的，非常出色。此代码被修改以在结果调色板中保留尽可能多的 alpha 通道信息以及尽可能多的颜色。但并没有达到期望的效果。通常最好生成真彩色图像输出，这样可以保证得到最高的输出质量。

dither 指明图像是否被抖动（dithered），如果为 TRUE 则图像将被抖动使图像中的斑点更多但是颜色更接近。

ncolors 设定调色板中被保留的颜色的最大数目。

Note: 本函数需要 GD 2.0.1 或更高版本（推荐 2.0.28 及更高版本）。

imagesy
imagettfbbox
GD 函数


取得使用 TrueType 字体的文本的范围

imagetruecolortopalette
imagettftext
GD 函数
PHP 手册

imagettfbbox

(PHP 4, PHP 5)

imagettfbbox — 取得使用 TrueType 字体的文本的范围

说明

array imagettfbbox ( float $size , float $angle , string $fontfile , string $text )

本函数计算并返回一个包围着 TrueType 文本范围的虚拟方框的像素大小。

size
像素单位的字体大小。
angle
text 将被度量的角度大小。
fontfile
TrueType 字体文件的文件名（可以是 URL）。根据 PHP 所使用的 GD 库版本，可能尝试搜索那些不是以 '/' 开头的文件名并加上 '.ttf' 的后缀并搜索库定义的字体路径。
text
要度量的字符串。

imagettfbbox() 返回一个含有 8 个单元的数组表示了文本外框的四个角：

0 | 左下角 X 位置
1 | 左下角 Y 位置
2 | 右下角 X 位置
3 | 右下角 Y 位置
4 | 右上角 X 位置
5 | 右上角 Y 位置
6 | 左上角 X 位置
7 | 左上角 Y 位置

这些点是相对于文本的而和角度无关，因此“左上角”指的是以水平方向看文字时其左上角。

本函数同时需要 GD 库和 FreeType 库。

参见 imagettftext()。

imagetruecolortopalette
imagettftext
GD 函数


用 TrueType 字体向图像写入文本

imagettfbbox
imagetypes
GD 函数
PHP 手册

imagettftext

(PHP 4, PHP 5)

imagettftext — 用 TrueType 字体向图像写入文本

说明

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

image
图像资源。见 imagecreatetruecolor()。
size
字体大小。根据 GD 版本不同，应该以像素大小指定（GD1）或点大小（GD2）。
angle
角度制表示的角度，0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
x
由 x ，y 所表示的坐标定义了第一个字符的基本点（大概是字符的左下角）。这和 imagestring() 不同，其 x，y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。
y
Y 坐标。它设定了字体基线的位置，不是字符的最底端。
color
颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 imagecolorallocate()。
fontfile
是想要使用的 TrueType 字体的路径。 根据 PHP 所使用的 GD 库的不同，当 fontfile 没有以 / 开头时则 .ttf 将被加到文件名之后并且会在库定义字体路径中尝试搜索该文件名。 当使用的 GD 库版本低于 2.0.18 时，一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息：Warning: Could not find/open font。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。

很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>

text
文本字符串。 可以包含十进制数字化字符表示（形式为：&#8364;）来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。 如果字符串中使用的某个字符不被字体支持，一个空心矩形将替换该字符。

imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角，顺序为坐下角，右下角，右上角，左上角。这些点是相对于文本的而和角度无关，因此“左上角”指的是以水平方向看文字时其左上角。

Example #1 imagettftext() 例子

本例中的脚本将生成一个白色的 400x30 像素 PNG 图像，其中有黑色（带灰色阴影）Arial 字体写的“Testing...”。

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>

本函数同时需要 GD 库和 » FreeType 库。

参见 imagettfbbox()。

imagettfbbox
imagetypes
GD 函数


返回当前 PHP 版本所支持的图像类型

imagettftext
imagewbmp
GD 函数
PHP 手册

imagetypes

(PHP 4 >= 4.0.2, PHP 5)

imagetypes — 返回当前 PHP 版本所支持的图像类型

说明

int imagetypes ( void )

本函数以比特字段方式返回与当前 PHP 版本关联的 GD 库所支持的图像格式。将返回以下结果，IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP| IMG_XPM。 例如要检查是否支持 PNG，这样做：

Example #1 imagetypes() 例子

<?php
if (imagetypes() & IMG_PNG) {
    echo "PNG Support is enabled";
}
?>

imagettftext
imagewbmp
GD 函数


以 WBMP 格式将图像输出到浏览器或文件

imagetypes
imagexbm
GD 函数
PHP 手册

imagewbmp

(PHP 4 >= 4.0.1, PHP 5)

imagewbmp — 以 WBMP 格式将图像输出到浏览器或文件

说明

bool imagewbmp ( resource $image [, string $filename [, int $foreground ]] )

imagewbmp() 从 image 图像创建一个名为 filename 的 WBMP 文件。image 参数是 imagecreatetruecolor() 的返回值。

filename 参数是可选项，如果省略，则直接将原图像流输出。通过用 header() 发送 image/vnd.wap.wbmp 的 Content-type，可以创建直接输出 WBMP 图像的 PHP 脚本。

Note: WBMP 支持仅能用于 PHP 编译时加入了 GD-1.8 或更高版本时。

用可选的 foreground 参数可以设定前景色，用 imagecolorallocate() 函数返回的颜色标识符。默认前景色是黑色。

参见 image2wbmp()，imagepng()，imagegif()，imagejpeg() 和 imagetypes()。

imagetypes
imagexbm
GD 函数


将 XBM 图像输出到浏览器或文件

imagewbmp
iptcembed
GD 函数
PHP 手册

imagexbm

(PHP 5)

imagexbm — 将 XBM 图像输出到浏览器或文件

说明

bool imagexbm ( resource $image , string $filename [, int $foreground ] )
Warning

本函数暂无文档，仅有参数列表。

Note: 本函数仅在 PHP 与其捆绑的 GD 库一起编译时可用。

imagewbmp
iptcembed
GD 函数


将二进制 IPTC 数据嵌入到一幅 JPEG 图像中

imagexbm
iptcparse
GD 函数
PHP 手册

iptcembed

(PHP 4, PHP 5)

iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中

说明

mixed iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool ] )

Warning

本函数暂无文档，仅有参数列表。

imagexbm
iptcparse
GD 函数


将二进制 IPTC http://www.iptc.org/ 块解析为单个标记

iptcembed
jpeg2wbmp
GD 函数
PHP 手册

iptcparse

(PHP 4, PHP 5)

iptcparse — 将二进制 IPTC » http://www.iptc.org/ 块解析为单个标记

说明

array iptcparse ( string $iptcblock )

本函数将一个二进制的 IPTC 块解析为单个的标记。返回一个数组，用 tagmarker 作为索引，以其值为值。如果出错或未发现 IPTC 数据则返回 FALSE。例子见 getimagesize()。

iptcembed
jpeg2wbmp
GD 函数


将 JPEG 图像文件转换为 WBMP 图像文件

iptcparse
png2wbmp
GD 函数
PHP 手册

jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmp — 将 JPEG 图像文件转换为 WBMP 图像文件

说明

int jpeg2wbmp ( string $jpegname , string $wbmpname , int $d_height , int $d_width , int $threshold )

将名为 jpegname 的 JPEG 文件转换为 WBMP 格式，并存为 wbmpname 。用 d_height 和 d_width 指定目标图像的高度和宽度。

Note: JPEG 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

Note: WBMP 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

参见 png2wbmp()。

iptcparse
png2wbmp
GD 函数


将 PNG 图像文件转换为 WBMP 图像文件

jpeg2wbmp
ImageMagick
GD 函数
PHP 手册

png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmp — 将 PNG 图像文件转换为 WBMP 图像文件

说明

int png2wbmp ( string $pngname , string $wbmpname , int $d_height , int $d_width , int $threshold )

将名为 pngname 的 PNG 文件转换为 WBMP 格式，并存为 wbmpname 。用 d_height 和 d_width 指定目标图像的高度和宽度。

Note: WBMP 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

参见 jpeg2wbmp()。

jpeg2wbmp
ImageMagick
GD 函数


Image Processing (ImageMagick)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • 范例
  • The Imagick class
    • Imagick::adaptiveBlurImage — Adds adaptive blur filter to image
    • Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation
    • Imagick::adaptiveSharpenImage — Adaptively sharpen the image
    • Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity
    • Imagick::addImage — Adds new image to Imagick object image list
    • Imagick::addNoiseImage — Adds random noise to the image
    • Imagick::affineTransformImage — Transforms an image
    • Imagick::annotateImage — Annotates an image with text
    • Imagick::appendImages — Append a set of images
    • Imagick::averageImages — Average a set of images
    • Imagick::blackThresholdImage — Forces all pixels below the threshold into black
    • Imagick::blurImage — Adds blur filter to image
    • Imagick::borderImage — Surrounds the image with a border
    • Imagick::charcoalImage — Simulates a charcoal drawing
    • Imagick::chopImage — Removes a region of an image and trims
    • Imagick::clear — Clears all resources associated to Imagick object
    • Imagick::clipImage — Clips along the first path from the 8BIM profile
    • Imagick::clipPathImage — Clips along the named paths from the 8BIM profile
    • Imagick::clone — Makes an exact copy of the Imagick object
    • Imagick::clutImage — Replaces colors in the image from a color lookup table
    • Imagick::coalesceImages — Composites a set of images
    • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::colorizeImage — Blends the fill color with the image
    • Imagick::combineImages — Combines one or more images into a single image
    • Imagick::commentImage — Adds a comment to your image
    • Imagick::compareImageChannels — Returns the difference in one or more images
    • Imagick::compareImageLayers — Returns the maximum bounding region between images
    • Imagick::compareImages — Compares an image to a reconstructed image
    • Imagick::compositeImage — Composite one image onto another
    • Imagick::__construct — The Imagick constructor
    • Imagick::contrastImage — Change the contrast of the image
    • Imagick::contrastStretchImage — Enhances the contrast of a color image
    • Imagick::convolveImage — Applies a custom convolution kernel to the image
    • Imagick::cropImage — Extracts a region of the image
    • Imagick::cropThumbnailImage — Creates a crop thumbnail
    • Imagick::current — Returns a reference to the current Imagick object
    • Imagick::cycleColormapImage — Displaces an image's colormap
    • Imagick::deconstructImages — Returns certain pixel differences between images
    • Imagick::despeckleImage — Reduces the speckle noise in an image
    • Imagick::destroy — Destroys the Imagick object
    • Imagick::displayImage — Displays an image
    • Imagick::displayImages — Displays an image or image sequence
    • Imagick::distortImage — Distorts an image using various distortion methods
    • Imagick::drawImage — Renders the ImagickDraw object on the current image
    • Imagick::edgeImage — Enhance edges within the image
    • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
    • Imagick::enhanceImage — Improves the quality of a noisy image
    • Imagick::equalizeImage — Equalizes the image histogram
    • Imagick::evaluateImage — Applies an expression to an image
    • Imagick::flattenImages — Merges a sequence of images
    • Imagick::flipImage — Creates a vertical mirror image
    • Imagick::flopImage — Creates a horizontal mirror image
    • Imagick::frameImage — Adds a simulated three-dimensional border
    • Imagick::fxImage — Evaluate expression for each pixel in the image
    • Imagick::gammaImage — Gamma-corrects an image
    • Imagick::gaussianBlurImage — Blurs an image
    • Imagick::getCompression — Gets the object compression type
    • Imagick::getCompressionQuality — Gets the object compression quality
    • Imagick::getCopyright — Returns the ImageMagick API copyright as a string
    • Imagick::getFilename — The filename associated with an image sequence
    • Imagick::getFormat — Returns the format of the Imagick object
    • Imagick::getHomeURL — Returns the ImageMagick home URL
    • Imagick::getImage — Returns a new Imagick object
    • Imagick::getImageBackgroundColor — Returns the image background color
    • Imagick::getImageBlob — Returns the image sequence as a blob
    • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor — Returns the image border color
    • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
    • Imagick::getImageChannelMean — Gets the mean and standard deviation
    • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
    • Imagick::getImageColormapColor — Returns the color of the specified colormap index
    • Imagick::getImageColors — Gets the number of unique colors in the image
    • Imagick::getImageColorspace — Gets the image colorspace
    • Imagick::getImageCompose — Returns the composite operator associated with the image
    • Imagick::getImageDelay — Gets the image delay
    • Imagick::getImageDepth — Gets the image depth
    • Imagick::getImageDispose — Gets the image disposal method
    • Imagick::getImageDistortion — Compares an image to a reconstructed image
    • Imagick::getImageExtrema — Gets the extrema for the image
    • Imagick::getImageFilename — Returns the filename of a particular image in a sequence
    • Imagick::getImageFormat — Returns the format of a particular image in a sequence
    • Imagick::getImageGamma — Gets the image gamma
    • Imagick::getImageGeometry — Gets the width and height as an associative array
    • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
    • Imagick::getImageHeight — Returns the image height
    • Imagick::getImageHistogram — Gets the image histogram
    • Imagick::getImageIndex — Gets the index of the current active image
    • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod — Returns the interpolation method
    • Imagick::getImageIterations — Gets the image iterations
    • Imagick::getImageLength — Returns the image length in bytes
    • Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license
    • Imagick::getImageMatte — Return if the image has a matte channel
    • Imagick::getImageMatteColor — Returns the image matte color
    • Imagick::getImageOrientation — Gets the image orientation.
    • Imagick::getImagePage — Returns the page geometry
    • Imagick::getImagePixelColor — Returns the color of the specified pixel
    • Imagick::getImageProfile — Returns the named image profile
    • Imagick::getImageProfiles — Returns the image profiles
    • Imagick::getImageProperties — Returns the image properties
    • Imagick::getImageProperty — Returns the named image property
    • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
    • Imagick::getImageRegion — Extracts a region of the image
    • Imagick::getImageRenderingIntent — Gets the image rendering intent
    • Imagick::getImageResolution — Gets the image X and Y resolution
    • Imagick::getImagesBlob — Returns all image sequences as a blob
    • Imagick::getImageScene — Gets the image scene
    • Imagick::getImageSignature — Generates an SHA-256 message digest
    • Imagick::getImageSize — Returns the image length in bytes
    • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity — Gets the image total ink density
    • Imagick::getImageType — Gets the potential image type
    • Imagick::getImageUnits — Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
    • Imagick::getImageWhitePoint — Returns the chromaticity white point
    • Imagick::getImageWidth — Returns the image width
    • Imagick::getInterlaceScheme — Gets the object interlace scheme
    • Imagick::getIteratorIndex — Gets the index of the current active image
    • Imagick::getNumberImages — Returns the number of images in the object
    • Imagick::getOption — Returns a value associated with the specified key
    • Imagick::getPackageName — Returns the ImageMagick package name
    • Imagick::getPage — Returns the page geometry
    • Imagick::getPixelIterator — Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section
    • Imagick::getQuantumDepth — Gets the quantum depth
    • Imagick::getQuantumRange — Returns the Imagick quantum range
    • Imagick::getReleaseDate — Returns the ImageMagick release date
    • Imagick::getResource — Returns the specified resource's memory usage
    • Imagick::getResourceLimit — Returns the specified resource limit
    • Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor
    • Imagick::getSize — Returns the size associated with the Imagick object
    • Imagick::getSizeOffset — Returns the size offset
    • Imagick::getVersion — Returns the ImageMagick API version
    • Imagick::hasNextImage — Checks if the object has more images
    • Imagick::hasPreviousImage — Checks if the object has a previous image
    • Imagick::identifyImage — Identifies an image and fetches attributes
    • Imagick::implodeImage — Creates a new image as a copy
    • Imagick::labelImage — Adds a label to an image
    • Imagick::levelImage — Adjusts the levels of an image
    • Imagick::linearStretchImage — Stretches with saturation the image intensity
    • Imagick::magnifyImage — Scales an image proportionally 2x
    • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image.
    • Imagick::matteFloodfillImage — Changes the transparency value of a color
    • Imagick::medianFilterImage — Applies a digital filter
    • Imagick::minifyImage — Scales an image proportionally to half its size
    • Imagick::modulateImage — Control the brightness, saturation, and hue
    • Imagick::montageImage — Creates a composite image
    • Imagick::morphImages — Method morphs a set of images
    • Imagick::mosaicImages — Forms a mosaic from images
    • Imagick::motionBlurImage — Simulates motion blur
    • Imagick::negateImage — Negates the colors in the reference image
    • Imagick::newImage — Creates a new image
    • Imagick::newPseudoImage — Creates a new image
    • Imagick::nextImage — Moves to the next image
    • Imagick::normalizeImage — Enhances the contrast of a color image
    • Imagick::oilPaintImage — Simulates an oil painting
    • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage — Performs an ordered dither
    • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage — Change any pixel that matches color
    • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage — Fetch basic attributes about the image
    • Imagick::pingImageBlob — Quickly fetch attributes
    • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage — Simulates a Polaroid picture
    • Imagick::posterizeImage — Reduces the image to a limited number of color level
    • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage — Move to the previous image in the object
    • Imagick::profileImage — Adds or removes a profile from an image
    • Imagick::quantizeImage — Analyzes the colors within a reference image
    • Imagick::quantizeImages — Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics — Returns an array representing the font metrics
    • Imagick::queryFonts — Returns the configured fonts
    • Imagick::queryFormats — Returns formats supported by Imagick
    • Imagick::radialBlurImage — Radial blurs an image
    • Imagick::raiseImage — Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
    • Imagick::readImage — Reads image from filename
    • Imagick::readImageBlob — Reads image from a binary string
    • Imagick::readImageFile — Reads image from open filehandle
    • Imagick::reduceNoiseImage — Smooths the contours of an image
    • Imagick::removeImage — Removes an image from the image list
    • Imagick::removeImageProfile — Removes the named image profile and returns it
    • Imagick::render — Renders all preceding drawing commands
    • Imagick::resampleImage — Resample image to desired resolution
    • Imagick::resizeImage — Scales an image
    • Imagick::rollImage — Offsets an image
    • Imagick::rotateImage — Rotates an image
    • Imagick::roundCorners — Rounds image corners
    • Imagick::sampleImage — Scales an image with pixel sampling
    • Imagick::scaleImage — Scales the size of an image
    • Imagick::separateImageChannel — Separates a channel from the image
    • Imagick::sepiaToneImage — Sepia tones an image
    • Imagick::setBackgroundColor — Sets the object's default background color
    • Imagick::setCompression — Sets the object's default compression type
    • Imagick::setCompressionQuality — Sets the object's default compression quality
    • Imagick::setFilename — Sets the filename before you read or write the image
    • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
    • Imagick::setFont — Sets the image bias for any method that convolves an image
    • Imagick::setFormat — Sets the format of the Imagick object
    • Imagick::setImage — Replaces image in the object
    • Imagick::setImageBackgroundColor — Sets the image background color
    • Imagick::setImageBias — Sets the image bias for any method that convolves an image
    • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor — Sets the image border color
    • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
    • Imagick::setImageColormapColor — Sets the color of the specified colormap index
    • Imagick::setImageColorspace — Sets the image colorspace
    • Imagick::setImageCompose — Sets the image composite operator
    • Imagick::setImageCompression — Sets the image compression
    • Imagick::setImageDelay — Sets the image delay
    • Imagick::setImageDepth — Sets the image depth
    • Imagick::setImageDispose — Sets the image disposal method
    • Imagick::setImageExtent — Sets the image size
    • Imagick::setImageFilename — Sets the filename of a particular image
    • Imagick::setImageFormat — Sets the format of a particular image
    • Imagick::setImageGamma — Sets the image gamma
    • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
    • Imagick::setImageIndex — Set the iterator position
    • Imagick::setImageInterlaceScheme — Sets the image compression
    • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
    • Imagick::setImageIterations — Sets the image iterations
    • Imagick::setImageMatte — Sets the image matte channel
    • Imagick::setImageMatteColor — Sets the image matte color
    • Imagick::setImageOpacity — Sets the image opacity level
    • Imagick::setImageOrientation — Sets the image orientation.
    • Imagick::setImagePage — Sets the page geometry of the image
    • Imagick::setImageProfile — Adds a named profile to the Imagick object
    • Imagick::setImageProperty — Sets an image property
    • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent — Sets the image rendering intent
    • Imagick::setImageResolution — Sets the image resolution
    • Imagick::setImageScene — Sets the image scene
    • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
    • Imagick::setImageType — Sets the image type
    • Imagick::setImageUnits — Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
    • Imagick::setImageWhitePoint — Sets the image chromaticity white point
    • Imagick::setInterlaceScheme — Sets the image compression
    • Imagick::setIteratorIndex — Set the iterator position
    • Imagick::setLastIterator — Sets the Imagick iterator to the last image
    • Imagick::setOption — Set an option
    • Imagick::setPage — Sets the page geometry of the Imagick object
    • Imagick::setResolution — Sets the image resolution
    • Imagick::setResourceLimit — Sets the limit for a particular resource in megabytes
    • Imagick::setSamplingFactors — Sets the image sampling factors
    • Imagick::setSize — Sets the size of the Imagick object
    • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
    • Imagick::setType — Sets the image type attribute
    • Imagick::shadeImage — Creates a 3D effect
    • Imagick::shadowImage — Simulates an image shadow
    • Imagick::sharpenImage — Sharpens an image
    • Imagick::shaveImage — Shaves pixels from the image edges
    • Imagick::shearImage — Creating a parallelogram
    • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
    • Imagick::sketchImage — Simulates a pencil sketch
    • Imagick::solarizeImage — Applies a solarizing effect to the image
    • Imagick::spliceImage — Splices a solid color into the image
    • Imagick::spreadImage — Randomly displaces each pixel in a block
    • Imagick::steganoImage — Hides a digital watermark within the image
    • Imagick::stereoImage — Composites two images
    • Imagick::stripImage — Strips an image of all profiles and comments
    • Imagick::swirlImage — Swirls the pixels about the center of the image
    • Imagick::textureImage — Repeatedly tiles the texture image
    • Imagick::thresholdImage — Changes the value of individual pixels based on a threshold
    • Imagick::thumbnailImage — Changes the size of an image
    • Imagick::tintImage — Applies a color vector to each pixel in the image
    • Imagick::transformImage — Convenience method for setting crop size and the image geometry
    • Imagick::transposeImage — Creates a vertical mirror image
    • Imagick::transverseImage — Creates a horizontal mirror image
    • Imagick::trimImage — Remove edges from the image
    • Imagick::uniqueImageColors — Discards all but one of any pixel color
    • Imagick::unsharpMaskImage — Sharpens an image
    • Imagick::valid — Checks if the current item is valid
    • Imagick::vignetteImage — Adds vignette filter to the image
    • Imagick::waveImage — Applies wave filter to the image
    • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
    • Imagick::writeImage — Writes an image to the specified filename
    • Imagick::writeImages — Writes an image or image sequence
  • The ImagickDraw class
    • ImagickDraw::affine — Adjusts the current affine transformation matrix
    • ImagickDraw::annotation — Draws text on the image
    • ImagickDraw::arc — Draws an arc
    • ImagickDraw::bezier — Draws a bezier curve
    • ImagickDraw::circle — Draws a circle
    • ImagickDraw::clear — Clears the ImagickDraw
    • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color — Draws color on image
    • ImagickDraw::comment — Adds a comment
    • ImagickDraw::composite — Composites an image onto the current image
    • ImagickDraw::__construct — The ImagickDraw constructor
    • ImagickDraw::destroy — Frees all associated resources
    • ImagickDraw::ellipse — Draws an ellipse on the image
    • ImagickDraw::getClipPath — Obtains the current clipping path ID
    • ImagickDraw::getClipRule — Returns the current polygon fill rule
    • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
    • ImagickDraw::getFillColor — Returns the fill color
    • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
    • ImagickDraw::getFillRule — Returns the fill rule
    • ImagickDraw::getFont — Returns the font
    • ImagickDraw::getFontFamily — Returns the font family
    • ImagickDraw::getFontSize — Returns the font pointsize
    • ImagickDraw::getFontStyle — Returns the font style
    • ImagickDraw::getFontWeight — Returns the font weight
    • ImagickDraw::getGravity — Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment — Returns the text alignment
    • ImagickDraw::getTextAntialias — Returns the current text antialias setting
    • ImagickDraw::getTextDecoration — Returns the text decoration
    • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
    • ImagickDraw::getTextUnderColor — Returns the text under color
    • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
    • ImagickDraw::line — Draws a line
    • ImagickDraw::matte — Paints on the image's opacity channel
    • ImagickDraw::pathClose — Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
    • ImagickDraw::pathFinish — Terminates the current path
    • ImagickDraw::pathLineToAbsolute — Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
    • ImagickDraw::pathLineToRelative — Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
    • ImagickDraw::pathMoveToRelative — Starts a new sub-path
    • ImagickDraw::pathStart — Declares the start of a path drawing list
    • ImagickDraw::point — Draws a point
    • ImagickDraw::polygon — Draws a polygon
    • ImagickDraw::polyline — Draws a polyline
    • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath — Terminates a clip path definition
    • ImagickDraw::popDefs — Terminates a definition list
    • ImagickDraw::popPattern — Terminates a pattern definition
    • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath — Starts a clip path definition
    • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle — Draws a rectangle
    • ImagickDraw::render — Renders all preceding drawing commands onto the image
    • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle — Draws a rounded rectangle
    • ImagickDraw::scale — Adjusts the scaling factor
    • ImagickDraw::setClipPath — Associates a named clipping path with the image
    • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight — Sets the font weight
    • ImagickDraw::setGravity — Sets the text placement gravity
    • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
    • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment — Specifies a text alignment
    • ImagickDraw::setTextAntialias — Controls whether text is antialiased
    • ImagickDraw::setTextDecoration — Specifies a decoration
    • ImagickDraw::setTextEncoding — Specifies specifies the text code set
    • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics — Sets the vector graphics
    • ImagickDraw::setViewbox — Sets the overall canvas size
    • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate — Applies a translation to the current coordinate system
  • The ImagickPixel class
    • ImagickPixel::clear — Clears resources associated with this object
    • ImagickPixel::__construct — The ImagickPixel constructor
    • ImagickPixel::destroy — Deallocates resources associated with this object
    • ImagickPixel::getColor — Returns the color
    • ImagickPixel::getColorAsString — Returns the color as a string
    • ImagickPixel::getColorCount — Returns the color count associated with this color
    • ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
    • ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object
    • ImagickPixel::isSimilar — Check the distance between this color and another
    • ImagickPixel::setColor — Sets the color
    • ImagickPixel::setColorValue — Sets the normalized value of one of the channels
    • ImagickPixel::setHSL — Sets the normalized HSL color
  • The ImagickPixelIterator class
    • ImagickPixelIterator::clear — Clear resources associated with a PixelIterator
    • ImagickPixelIterator::__construct — The ImagickPixelIterator constructor
    • ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects
    • ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row
    • ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator
    • ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row
    • ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator
    • ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator
    • ImagickPixelIterator::resetIterator — Resets the pixel iterator
    • ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row
    • ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row
    • ImagickPixelIterator::setIteratorRow — Set the pixel iterator row
    • ImagickPixelIterator::syncIterator — Syncs the pixel iterator
png2wbmp
简介
图像生成和处理


简介

Imagick is a native php extension to create and modify images using the ImageMagick API.

ImageMagick® is a software suite to create, edit, and compose bitmap images.. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF.

Copyright 1999-2007 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.

ImageMagick
安装/配置
ImageMagick


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
ImageMagick


需求

Installation requirements on Windows

Version information does not differ from that above. There are binaries available from http://imagemagick.org/ so that you can load this extension on Windows without need for a compiler.

Installation requirements on other platforms

PHP >= 5.1.3 and ImageMagick >= 6.2.4 is required. The amount of formats supported is by Imagick is entirely dependent upon the amount of formats supported by your ImageMagick installation. For example, Imagemagick requires ghostscript to conduct PDF operations.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/imagick.

Note: The official name of this extension is imagick.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Colortype constants
imagick::COLOR_BLACK (integer)
imagick::COLOR_BLUE (integer)
imagick::COLOR_CYAN (integer)
Cyan
imagick::COLOR_GREEN (integer)
Green
imagick::COLOR_RED (integer)
Red
imagick::COLOR_YELLOW (integer)
Yellow
imagick::COLOR_MAGENTA (integer)
Magenta
imagick::COLOR_OPACITY (integer)
Opacity
imagick::COLOR_ALPHA (integer)
Alpha
imagick::COLOR_FUZZ (integer)
Fuzz
Dispose type constants
imagick::DISPOSE_UNRECOGNIZED (integer)
Unrecognized
imagick::DISPOSE_UNRECOGNIZED (integer)
Unrecognized
imagick::DISPOSE_UNDEFINED (integer)
Undefined
imagick::DISPOSE_NONE (integer)
None
imagick::DISPOSE_BACKGROUND (integer)
Background
imagick::DISPOSE_PREVIOUS (integer)
Previous
Composite Operator Constants
imagick::COMPOSITE_DEFAULT (integer)
The default composite operator
imagick::COMPOSITE_UNDEFINED (integer)
Undefined composite operator
imagick::COMPOSITE_NO (integer)
No composite operator defined
imagick::COMPOSITE_ADD (integer)
The result of image + image
imagick::COMPOSITE_ATOP (integer)
The result is the same shape as image, with composite image obscuring image where the image shapes overlap
imagick::COMPOSITE_BLEND (integer)
Blends the image
imagick::COMPOSITE_BUMPMAP (integer)
The same as COMPOSITE_MULTIPLY, except the source is converted to grayscale first.
imagick::COMPOSITE_CLEAR (integer)
Makes the target image transparent
imagick::COMPOSITE_COLORBURN (integer)
Darkens the destination image to reflect the source image
imagick::COMPOSITE_COLORDODGE (integer)
Brightens the destination image to reflect the source image
imagick::COMPOSITE_COLORIZE (integer)
Colorizes the target image using the composite image
imagick::COMPOSITE_COPYBLACK (integer)
Copies black from the source to target
imagick::COMPOSITE_COPYBLUE (integer)
Copies blue from the source to target
imagick::COMPOSITE_COPY (integer)
Copies the source image on the target image
imagick::COMPOSITE_COPYCYAN (integer)
Copies cyan from the source to target
imagick::COMPOSITE_COPYGREEN (integer)
Copies green from the source to target
imagick::COMPOSITE_COPYMAGENTA (integer)
Copies magenta from the source to target
imagick::COMPOSITE_COPYOPACITY (integer)
Copies opacity from the source to target
imagick::COMPOSITE_COPYRED (integer)
Copies red from the source to target
imagick::COMPOSITE_COPYYELLOW (integer)
Copies yellow from the source to target
imagick::COMPOSITE_DARKEN (integer)
Darkens the target image
imagick::COMPOSITE_DSTATOP (integer)
The part of the destination lying inside of the source is composited over the source and replaces the destination
imagick::COMPOSITE_DST (integer)
The target is left untouched
imagick::COMPOSITE_DSTIN (integer)
The parts inside the source replace the target
imagick::COMPOSITE_DSTOUT (integer)
The parts outside the source replace the target
imagick::COMPOSITE_DSTOVER (integer)
Target replaces the source
imagick::COMPOSITE_DIFFERENCE (integer)
Subtracts the darker of the two constituent colors from the lighter
imagick::COMPOSITE_DISPLACE (integer)
Shifts target image pixels as defined by the source
imagick::COMPOSITE_DISSOLVE (integer)
Dissolves the source in to the target
imagick::COMPOSITE_EXCLUSION (integer)
Produces an effect similar to that of imagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
imagick::COMPOSITE_HARDLIGHT (integer)
Multiplies or screens the colors, dependent on the source color value
imagick::COMPOSITE_HUE (integer)
Modifies the hue of the target as defined by source
imagick::COMPOSITE_IN (integer)
Composites source into the target
imagick::COMPOSITE_LIGHTEN (integer)
Lightens the target as defined by source
imagick::COMPOSITE_LUMINIZE (integer)
Luminizes the target as defined by source
imagick::COMPOSITE_MINUS (integer)
Substracts the source from the target
imagick::COMPOSITE_MODULATE (integer)
Modulates the target brightness, saturation and hue as defined by source
imagick::COMPOSITE_MULTIPLY (integer)
Multiplies the target to the source
imagick::COMPOSITE_OUT (integer)
Composites outer parts of the source on the target
imagick::COMPOSITE_OVER (integer)
Composites source over the target
imagick::COMPOSITE_OVERLAY (integer)
Overlays the source on the target
imagick::COMPOSITE_PLUS (integer)
Adds the source to the target
imagick::COMPOSITE_REPLACE (integer)
Replaces the target with the source
imagick::COMPOSITE_SATURATE (integer)
Saturates the target as defined by the source
imagick::COMPOSITE_SCREEN (integer)
The source and destination are complemented and then multiplied and then replace the destination
imagick::COMPOSITE_SOFTLIGHT (integer)
Darkens or lightens the colors, dependent on the source
imagick::COMPOSITE_SRCATOP (integer)
The part of the source lying inside of the destination is composited onto the destination
imagick::COMPOSITE_SRC (integer)
The source is copied to the destination
imagick::COMPOSITE_SRCIN (integer)
The part of the source lying inside of the destination replaces the destination
imagick::COMPOSITE_SRCOUT (integer)
The part of the source lying outside of the destination replaces the destination
imagick::COMPOSITE_SRCOVER (integer)
The source replaces the destination
imagick::COMPOSITE_SUBTRACT (integer)
Subtract the colors in the source image from the destination image
imagick::COMPOSITE_THRESHOLD (integer)
The source is composited on the target as defined by source threshold
imagick::COMPOSITE_XOR (integer)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
Montage Mode constants
imagick::MONTAGEMODE_FRAME (integer)
imagick::MONTAGEMODE_UNFRAME (integer)
imagick::MONTAGEMODE_CONCATENATE (integer)
Style constants
imagick::STYLE_NORMAL (integer)
imagick::STYLE_ITALIC (integer)
imagick::STYLE_OBLIQUE (integer)
imagick::STYLE_ANY (integer)
Filter constants
imagick::FILTER_UNDEFINED (integer)
imagick::FILTER_POINT (integer)
imagick::FILTER_BOX (integer)
imagick::FILTER_TRIANGLE (integer)
imagick::FILTER_HERMITE (integer)
imagick::FILTER_HANNING (integer)
imagick::FILTER_HAMMING (integer)
imagick::FILTER_BLACKMAN (integer)
imagick::FILTER_GAUSSIAN (integer)
imagick::FILTER_QUADRATIC (integer)
imagick::FILTER_CUBIC (integer)
imagick::FILTER_CATROM (integer)
imagick::FILTER_MITCHELL (integer)
imagick::FILTER_LANCZOS (integer)
imagick::FILTER_BESSEL (integer)
imagick::FILTER_SINC (integer)
Image type constants
imagick::IMGTYPE_UNDEFINED (integer)
imagick::IMGTYPE_BILEVEL (integer)
imagick::IMGTYPE_GRAYSCALE (integer)
imagick::IMGTYPE_GRAYSCALEMATTE (integer)
imagick::IMGTYPE_PALETTE (integer)
imagick::IMGTYPE_PALETTEMATTE (integer)
imagick::IMGTYPE_TRUECOLOR (integer)
imagick::IMGTYPE_TRUECOLORMATTE (integer)
imagick::IMGTYPE_COLORSEPARATION (integer)
imagick::IMGTYPE_COLORSEPARATIONMATTE (integer)
imagick::IMGTYPE_OPTIMIZE (integer)
Resolution constants
imagick::RESOLUTION_UNDEFINED (integer)
imagick::RESOLUTION_PIXELSPERINCH (integer)
imagick::RESOLUTION_PIXELSPERCENTIMETER (integer)
Compression constants
imagick::COMPRESSION_UNDEFINED (integer)
imagick::COMPRESSION_NO (integer)
imagick::COMPRESSION_BZIP (integer)
imagick::COMPRESSION_FAX (integer)
imagick::COMPRESSION_GROUP4 (integer)
imagick::COMPRESSION_JPEG (integer)
imagick::COMPRESSION_JPEG2000 (integer)
imagick::COMPRESSION_LOSSLESSJPEG (integer)
imagick::COMPRESSION_LZW (integer)
imagick::COMPRESSION_RLE (integer)
imagick::COMPRESSION_ZIP (integer)
Paint constants
imagick::PAINT_POINT (integer)
imagick::PAINT_REPLACE (integer)
imagick::PAINT_FLOODFILL (integer)
imagick::PAINT_FILLTOBORDER (integer)
imagick::PAINT_RESET (integer)
Gravity constants
imagick::GRAVITY_NORTHWEST (integer)
imagick::GRAVITY_NORTH (integer)
imagick::GRAVITY_NORTHEAST (integer)
imagick::GRAVITY_WEST (integer)
imagick::GRAVITY_CENTER (integer)
imagick::GRAVITY_EAST (integer)
imagick::GRAVITY_SOUTHWEST (integer)
imagick::GRAVITY_SOUTH (integer)
imagick::GRAVITY_SOUTHEAST (integer)
Stretch constants
imagick::STRETCH_NORMAL (integer)
imagick::STRETCH_ULTRACONDENSED (integer)
imagick::STRETCH_CONDENSED (integer)
imagick::STRETCH_SEMICONDENSED (integer)
imagick::STRETCH_SEMIEXPANDED (integer)
imagick::STRETCH_EXPANDED (integer)
imagick::STRETCH_EXTRAEXPANDED (integer)
imagick::STRETCH_ULTRAEXPANDED (integer)
imagick::STRETCH_ANY (integer)
Align constants
imagick::ALIGN_UNDEFINED (integer)
imagick::ALIGN_LEFT (integer)
imagick::ALIGN_CENTER (integer)
imagick::ALIGN_RIGHT (integer)
Decoration constants
imagick::DECORATION_NO (integer)
imagick::DECORATION_UNDERLINE (integer)
imagick::DECORATION_OVERLINE (integer)
imagick::DECORATION_LINETROUGH (integer)
Noise constants
imagick::NOISE_UNIFORM (integer)
imagick::NOISE_GAUSSIAN (integer)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
imagick::NOISE_IMPULSE (integer)
imagick::NOISE_LAPLACIAN (integer)
imagick::NOISE_POISSON (integer)
Channel constants
imagick::CHANNEL_UNDEFINED (integer)
imagick::CHANNEL_RED (integer)
imagick::CHANNEL_GRAY (integer)
imagick::CHANNEL_CYAN (integer)
imagick::CHANNEL_GREEN (integer)
imagick::CHANNEL_MAGENTA (integer)
imagick::CHANNEL_BLUE (integer)
imagick::CHANNEL_YELLOW (integer)
imagick::CHANNEL_ALPHA (integer)
imagick::CHANNEL_OPACITY (integer)
imagick::CHANNEL_MATTE (integer)
imagick::CHANNEL_BLACK (integer)
imagick::CHANNEL_INDEX (integer)
imagick::CHANNEL_ALL (integer)
Metric constants
imagick::METRIC_UNDEFINED (integer)
imagick::METRIC_MEANABSOLUTEERROR (integer)
imagick::METRIC_MEANSQUAREERROR (integer)
imagick::METRIC_PEAKABSOLUTEERROR (integer)
imagick::METRIC_PEAKSIGNALTONOISERATIO (integer)
imagick::METRIC_ROOTMEANSQUAREDERROR (integer)
Pixel constants
imagick::PIXEL_CHAR (integer)
imagick::PIXEL_DOUBLE (integer)
imagick::PIXEL_FLOAT (integer)
imagick::PIXEL_INTEGER (integer)
imagick::PIXEL_LONG (integer)
imagick::PIXEL_QUANTUM (integer)
imagick::PIXEL_SHORT (integer)
Evaluate Operator constants
imagick::EVALUATE_UNDEFINED (integer)
imagick::EVALUATE_ADD (integer)
imagick::EVALUATE_AND (integer)
imagick::EVALUATE_DIVIDE (integer)
imagick::EVALUATE_LEFTSHIFT (integer)
imagick::EVALUATE_MAX (integer)
imagick::EVALUATE_MIN (integer)
imagick::EVALUATE_MULTIPLY (integer)
imagick::EVALUATE_OR (integer)
imagick::EVALUATE_RIGHTSHIFT (integer)
imagick::EVALUATE_SET (integer)
imagick::EVALUATE_SUBTRACT (integer)
imagick::EVALUATE_XOR (integer)
Colorspace constants
imagick::COLORSPACE_UNDEFINED (integer)
imagick::COLORSPACE_RGB (integer)
imagick::COLORSPACE_GRAY (integer)
imagick::COLORSPACE_TRANSPARENT (integer)
imagick::COLORSPACE_OHTA (integer)
imagick::COLORSPACE_LAB (integer)
imagick::COLORSPACE_XYZ (integer)
imagick::COLORSPACE_YCBCR (integer)
imagick::COLORSPACE_YCC (integer)
imagick::COLORSPACE_YIQ (integer)
imagick::COLORSPACE_YPBPR (integer)
imagick::COLORSPACE_YUV (integer)
imagick::COLORSPACE_CMYK (integer)
imagick::COLORSPACE_SRGB (integer)
imagick::COLORSPACE_HSB (integer)
imagick::COLORSPACE_HSL (integer)
imagick::COLORSPACE_HWB (integer)
imagick::COLORSPACE_REC601LUMA (integer)
imagick::COLORSPACE_REC709LUMA (integer)
imagick::COLORSPACE_LOG (integer)
Virtual Pixel Method constants
imagick::VIRTUALPIXELMETHOD_UNDEFINED (integer)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (integer)
imagick::VIRTUALPIXELMETHOD_CONSTANT (integer)
imagick::VIRTUALPIXELMETHOD_EDGE (integer)
imagick::VIRTUALPIXELMETHOD_MIRROR (integer)
imagick::VIRTUALPIXELMETHOD_TILE (integer)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (integer)
Preview constants
imagick::PREVIEW_UNDEFINED (integer)
imagick::PREVIEW_ROTATE (integer)
imagick::PREVIEW_SHEAR (integer)
imagick::PREVIEW_ROLL (integer)
imagick::PREVIEW_HUE (integer)
imagick::PREVIEW_SATURATION (integer)
imagick::PREVIEW_BRIGHTNESS (integer)
imagick::PREVIEW_GAMMA (integer)
imagick::PREVIEW_SPIFF (integer)
imagick::PREVIEW_DULL (integer)
imagick::PREVIEW_GRAYSCALE (integer)
imagick::PREVIEW_QUANTIZE (integer)
imagick::PREVIEW_DESPECKLE (integer)
imagick::PREVIEW_REDUCENOISE (integer)
imagick::PREVIEW_ADDNOISE (integer)
imagick::PREVIEW_SHARPEN (integer)
imagick::PREVIEW_BLUR (integer)
imagick::PREVIEW_THRESHOLD (integer)
imagick::PREVIEW_EDGEDETECT (integer)
imagick::PREVIEW_SPREAD (integer)
imagick::PREVIEW_SOLARIZE (integer)
imagick::PREVIEW_SHADE (integer)
imagick::PREVIEW_RAISE (integer)
imagick::PREVIEW_SEGMENT (integer)
imagick::PREVIEW_SWIRL (integer)
imagick::PREVIEW_IMPLODE (integer)
imagick::PREVIEW_WAVE (integer)
imagick::PREVIEW_OILPAINT (integer)
imagick::PREVIEW_CHARCOALDRAWING (integer)
imagick::PREVIEW_JPEG (integer)
Rendering Intent constants
imagick::RENDERINGINTENT_UNDEFINED (integer)
imagick::RENDERINGINTENT_SATURATION (integer)
imagick::RENDERINGINTENT_PERCEPTUAL (integer)
imagick::RENDERINGINTENT_ABSOLUTE (integer)
imagick::RENDERINGINTENT_RELATIVE (integer)
Interlace constants

imagick::INTERLACE_GIF, imagick::INTERLACE_JPEG, imagick::INTERLACE_PNG are only available if Imagick is compiled against Imagemagick 6.3.5 or newer.

imagick::INTERLACE_UNDEFINED (integer)
imagick::INTERLACE_NO (integer)
imagick::INTERLACE_LINE (integer)
imagick::INTERLACE_PLANE (integer)
imagick::INTERLACE_PARTITION (integer)
imagick::INTERLACE_JPEG (integer)
imagick::INTERLACE_GIF (integer)
imagick::INTERLACE_PNG (integer)
Fillrule constants
imagick::FILLRULE_UNDEFINED (integer)
imagick::FILLRULE_EVENODD (integer)
imagick::FILLRULE_NONZERO (integer)
Pathunit constants
imagick::PATHUNITS_UNDEFINED (integer)
imagick::PATHUNITS_USERSPACE (integer)
imagick::PATHUNITS_USERSPACEONUSE (integer)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (integer)
Linecap constants
imagick::LINECAP_UNDEFINED (integer)
imagick::LINECAP_BUTT (integer)
imagick::LINECAP_ROUND (integer)
imagick::LINECAP_SQUARE (integer)
Line Join constants
imagick::LINEJOIN_UNDEFINED (integer)
imagick::LINEJOIN_MITER (integer)
imagick::LINEJOIN_ROUND (integer)
imagick::LINEJOIN_BEVEL (integer)
Resourcetype constants
imagick::RESOURCETYPE_UNDEFINED (integer)
imagick::RESOURCETYPE_AREA (integer)
imagick::RESOURCETYPE_DISK (integer)
imagick::RESOURCETYPE_FILE (integer)
imagick::RESOURCETYPE_MAP (integer)
imagick::RESOURCETYPE_MEMORY (integer)
Layer Method constants

In Imagick version 2.2.2 and below layer method constants were only available if Imagick is compiled against ImageMagick 6.3.4 or later. After Imagick 2.2.2 they are available if Imagick is compiled against ImageMagick 6.2.9 or greater.

imagick::LAYERMETHOD_UNDEFINED (integer)
imagick::LAYERMETHOD_COALESCE (integer)
imagick::LAYERMETHOD_COMPAREANY (integer)
imagick::LAYERMETHOD_COMPARECLEAR (integer)
imagick::LAYERMETHOD_COMPAREOVERLAY (integer)
imagick::LAYERMETHOD_DISPOSE (integer)
imagick::LAYERMETHOD_OPTIMIZE (integer)
imagick::LAYERMETHOD_OPTIMIZEIMAGE (integer)
imagick::LAYERMETHOD_OPTIMIZEPLUS (integer)
imagick::LAYERMETHOD_OPTIMIZETRANS (integer)
imagick::LAYERMETHOD_REMOVEDUPS (integer)
imagick::LAYERMETHOD_REMOVEZERO (integer)
imagick::LAYERMETHOD_COMPOSITE (integer)
Orientation constants

In Imagick version 2.2.2 and below layer method constants were only available if Imagick is compiled against ImageMagick 6.3.4 or later. After Imagick 2.2.2 they are available if Imagick is compiled against ImageMagick 6.2.9 or greater.

imagick::ORIENTATION_UNDEFINED (integer)
imagick::ORIENTATION_TOPLEFT (integer)
imagick::ORIENTATION_TOPRIGHT (integer)
imagick::ORIENTATION_BOTTOMRIGHT (integer)
imagick::ORIENTATION_BOTTOMLEFT (integer)
imagick::ORIENTATION_LEFTTOP (integer)
imagick::ORIENTATION_RIGHTTOP (integer)
imagick::ORIENTATION_RIGHTBOTTOM (integer)
imagick::ORIENTATION_LEFTBOTTOM (integer)
Distortion constants

Available if compiled against ImageMagick 6.3.6 or later.

imagick::DISTORTION_UNDEFINED (integer)
imagick::DISTORTION_AFFINE (integer)
imagick::DISTORTION_AFFINEPROJECTION (integer)
imagick::DISTORTION_ARC (integer)
imagick::DISTORTION_BILINEAR (integer)
imagick::DISTORTION_PERSPECTIVE (integer)
imagick::DISTORTION_PERSPECTIVEPROJECTION (integer)
imagick::DISTORTION_SCALEROTATETRANSLATE (integer)
资源类型
范例
ImageMagick


范例
ImageMagick
PHP 手册

范例

Table of Contents

  • 范例
预定义常量
范例
ImageMagick


范例
The Imagick class
范例
PHP 手册

范例

Imagick makes image manipulation in PHP extremely easy through an OO interface. Here is a quick example on how to make a thumbnail:

Example #1 Creating a thumbnail in Imagick

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// If 0 is provided as a width or height parameter,
// aspect ratio is maintained
$image->thumbnailImage(100, 0);

echo $image;

?>

Using SPL and other OO features supported in Imagick, it can be simple to resize all files in a directory (useful for batch resizing large digital camera images to be web viewable). Here we use resize, as we might want to retain certain meta-data:

Example #2 Make a thumbnail of all JPG files in a directory

<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

    // Providing 0 forces thumbnailImage to maintain aspect ratio
    $image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

This is an example of creating a reflection of an image. The reflection is created by flipping the image and overlaying a gradient on it. Then both, the original image and the reflection is overlayed on a canvas.

Example #3 Creating a reflection of an image

<?php
/* Read the image */
$im = new Imagick("test.png");

/* Thumbnail the image */
$im->thumbnailImage(200, null);

/* Create a border for the image */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Clone the image and flip it */
$reflection = $im->clone();
$reflection->flipImage();

/* Create gradient. It will be overlayd on the reflection */
$gradient = new Imagick();

/* Gradient needs to be large enough for the image and the borders */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Composite the gradient on the reflection */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Add some opacity. Requires ImageMagick 6.2.9 or later */
$reflection->setImageOpacity( 0.3 );

/* Create an empty canvas */
$canvas = new Imagick();

/* Canvas needs to be large enough to hold the both images */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Composite the original image and the reflection on the canvas */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Output the image*/
header("Content-Type: image/png");
echo $canvas;
?>

上例的输出类似于：

This example illustrates how to use fill patterns during drawing.

Example #4 Filling text with gradient

<?php

/* Create a new imagick object */
$im = new Imagick();

/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */
$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */
$draw->popPattern();

/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */
$draw->setFontSize(52);

/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);

/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */
$canvas->setImageFormat('png');

/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

上例的输出类似于：

范例
The Imagick class
范例
PHP 手册


The Imagick class

Class synopsis

Imagick
Imagick implements Iterator , Traversable {
bool adaptiveBlurImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
bool adaptiveResizeImage ( int $columns , int $rows [, bool $fit=false ] )
bool adaptiveSharpenImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
bool adaptiveThresholdImage ( int $width , int $height , int $offset )
bool addImage ( Imagick $source )
bool addNoiseImage ( int $noise_type [, int $channel=Imagick::CHANNEL_ALL ] )
bool affineTransformImage ( ImagickDraw $matrix )
bool annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )
Imagick appendImages ( bool $stack )
Imagick averageImages ( void )
bool blackThresholdImage ( mixed $threshold )
bool blurImage ( float $radius , float $sigma [, int $channel ] )
bool borderImage ( mixed $bordercolor , int $width , int $height )
bool charcoalImage ( float $radius , float $sigma )
bool chopImage ( int $width , int $height , int $x , int $y )
bool clear ( void )
bool clipImage ( void )
bool clipPathImage ( string $pathname , bool $inside )
Imagick clone ( void )
bool clutImage ( Imagick $lookup_table [, float $channel=Imagick::CHANNEL_ALL ] )
Imagick coalesceImages ( void )
bool colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )
bool colorizeImage ( mixed $colorize , mixed $opacity )
Imagick combineImages ( int $channelType )
bool commentImage ( string $comment )
array compareImageChannels ( Imagick $image , int $channelType , int $metricType )
Imagick compareImageLayers ( int $method )
array compareImages ( Imagick $compare , int $metric )
bool compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel=Imagick::CHANNEL_ALL ] )
Imagick __construct ([ mixed $files ] )
bool contrastImage ( bool $sharpen )
bool contrastStretchImage ( float $black_point , float $white_point [, int $channel=Imagick::CHANNEL_ALL ] )
bool convolveImage ( array $kernel [, int $channel=Imagick::CHANNEL_ALL ] )
bool cropImage ( int $width , int $height , int $x , int $y )
bool cropThumbnailImage ( int $width , int $height )
Imagick current ( void )
bool cycleColormapImage ( int $displace )
bool deconstructImages ( void )
bool despeckleImage ( void )
bool destroy ( void )
bool displayImage ( string $servername )
bool displayImages ( string $servername )
bool distortImage ( int $method , array $arguments , bool $bestfit )
bool drawImage ( ImagickDraw $draw )
bool edgeImage ( float $radius )
bool embossImage ( float $radius , float $sigma )
bool enhanceImage ( void )
bool equalizeImage ( void )
bool evaluateImage ( int $op , float $constant [, int $channel=Imagick::CHANNEL_ALL ] )
Imagick flattenImages ( void )
bool flipImage ( void )
bool flopImage ( void )
bool frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )
Imagick fxImage ( string $expression [, int $channel=Imagick::CHANNEL_ALL ] )
bool gammaImage ( float $gamma [, int $channel=Imagick::CHANNEL_ALL ] )
bool gaussianBlurImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
int getCompression ( void )
int getCompressionQuality ( void )
string getCopyright ( void )
string getFilename ( void )
string getFormat ( void )
string getHomeURL ( void )
Imagick getImage ( void )
ImagickPixel getImageBackgroundColor ( void )
string getImageBlob ( void )
array getImageBluePrimary ( float $x , float $y )
ImagickPixel getImageBorderColor ( void )
int getImageChannelDepth ( int $channelType )
float getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )
array getImageChannelExtrema ( int $channel )
array getImageChannelMean ( int $channel )
array getImageChannelStatistics ( void )
ImagickPixel getImageColormapColor ( int $index )
int getImageColors ( void )
int getImageColorspace ( void )
int getImageCompose ( void )
int getImageDelay ( void )
int getImageDepth ( void )
int getImageDispose ( void )
float getImageDistortion ( MagickWand $reference , int $metric )
array getImageExtrema ( void )
string getImageFilename ( void )
string getImageFormat ( void )
float getImageGamma ( void )
array getImageGeometry ( void )
array getImageGreenPrimary ( void )
int getImageHeight ( void )
array getImageHistogram ( void )
int getImageIndex ( void )
int getImageInterlaceScheme ( void )
int getImageInterpolateMethod ( void )
int getImageIterations ( void )
int getImageLength ( void )
string getImageMagickLicense ( void )
int getImageMatte ( void )
ImagickPixel getImageMatteColor ( void )
int getImageOrientation ( void )
array getImagePage ( void )
ImagickPixel getImagePixelColor ( int $x , int $y )
string getImageProfile ( string $name )
array getImageProfiles ([ string $pattern="*" [, bool $only_names=true ]] )
array getImageProperties ([ string $pattern="*" [, bool $only_names=true ]] )
string getImageProperty ( string $name )
array getImageRedPrimary ( void )
Imagick getImageRegion ( int $width , int $height , int $x , int $y )
int getImageRenderingIntent ( void )
array getImageResolution ( void )
string getImagesBlob ( void )
int getImageScene ( void )
string getImageSignature ( void )
int getImageSize ( void )
int getImageTicksPerSecond ( void )
float getImageTotalInkDensity ( void )
int getImageType ( void )
int getImageUnits ( void )
int getImageVirtualPixelMethod ( void )
array getImageWhitePoint ( void )
int getImageWidth ( void )
int getInterlaceScheme ( void )
int getIteratorIndex ( void )
int getNumberImages ( void )
string getOption ( string $key )
string getPackageName ( void )
array getPage ( void )
ImagickPixelIterator getPixelIterator ( void )
ImagickPixelIterator getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
array getQuantumDepth ( void )
array getQuantumRange ( void )
string getReleaseDate ( void )
int getResource ( int $type )
int getResourceLimit ( int $type )
array getSamplingFactors ( void )
array getSize ( void )
int getSizeOffset ( void )
array getVersion ( void )
bool hasNextImage ( void )
bool hasPreviousImage ( void )
array identifyImage ([ bool $appendRawOutput=false ] )
bool implodeImage ( float $radius )
bool labelImage ( string $label )
bool levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel=Imagick::CHANNEL_ALL ] )
bool linearStretchImage ( float $blackPoint , float $whitePoint )
bool magnifyImage ( void )
bool mapImage ( Imagick $map , bool $dither )
bool matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )
bool medianFilterImage ( float $radius )
bool minifyImage ( void )
bool modulateImage ( float $brightness , float $saturation , float $hue )
Imagick montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )
Imagick morphImages ( int $number_frames )
Imagick mosaicImages ( void )
bool motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel=Imagick::CHANNEL_DEFAULT ] )
bool negateImage ( bool $gray [, int $channel=Imagick::CHANNEL_ALL ] )
bool newImage ( int $cols , int $rows , mixed $background [, string $format ] )
bool newPseudoImage ( int $columns , int $rows , string $pseudoString )
bool nextImage ( void )
bool normalizeImage ([ int $channel ] )
bool oilPaintImage ( float $radius )
bool optimizeImageLayers ( void )
bool orderedPosterizeImage ( string $threshold_map [, int $channel=Imagick::CHANNEL_ALL ] )
bool paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel=Imagick::CHANNEL_ALL ] )
bool paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel=Imagick::CHANNEL_ALL ] )
bool paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
bool pingImage ( string $filename )
bool pingImageBlob ( string $image )
bool pingImageFile ( resource $filehandle [, string $fileName ] )
bool polaroidImage ( ImagickDraw $properties , float $angle )
bool posterizeImage ( int $levels , bool $dither )
bool previewImages ( int $preview )
bool previousImage ( void )
bool profileImage ( string $name , string $profile )
bool quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
bool quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
array queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )
array queryFonts ([ string $pattern="*" ] )
array queryFormats ([ string $pattern="*" ] )
bool radialBlurImage ( float $angle [, int $channel=Imagick::CHANNEL_ALL ] )
bool raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
bool randomThresholdImage ( float $low , float $high [, int $channel=Imagick::CHANNEL_ALL ] )
bool readImage ( string $filename )
bool readImageBlob ( string $image [, string $filename ] )
bool readImageFile ( resource $filehandle [, string $fileName ] )
bool reduceNoiseImage ( float $radius )
bool removeImage ( void )
string removeImageProfile ( string $name )
bool render ( void )
bool resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )
bool resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $fit=false ] )
bool rollImage ( int $x , int $y )
bool rotateImage ( mixed $background , float $degrees )
bool roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width=10 [, float $displace=5 [, float $size_correction=-6 ]]] )
bool sampleImage ( int $columns , int $rows )
bool scaleImage ( int $cols , int $rows [, bool $fit=false ] )
bool separateImageChannel ( int $channel )
bool sepiaToneImage ( float $threshold )
bool setBackgroundColor ( mixed $background )
bool setCompression ( int $compression )
bool setCompressionQuality ( int $quality )
bool setFilename ( string $filename )
bool setFirstIterator ( void )
bool setFont ( string $font )
bool setFormat ( string $format )
bool setImage ( Imagick $replace )
bool setImageBackgroundColor ( mixed $background )
bool setImageBias ( float $bias )
bool setImageBluePrimary ( float $x , float $y )
bool setImageBorderColor ( mixed $border )
bool setImageChannelDepth ( int $channel , int $depth )
bool setImageColormapColor ( int $index , ImagickPixel $color )
bool setImageColorspace ( int $colorspace )
bool setImageCompose ( int $compose )
bool setImageCompression ( int $compression )
bool setImageDelay ( int $delay )
bool setImageDepth ( int $depth )
bool setImageDispose ( int $dispose )
bool setImageExtent ( int $columns , int $rows )
bool setImageFilename ( string $filename )
bool setImageFormat ( string $format )
bool setImageGamma ( float $gamma )
bool setImageGreenPrimary ( float $x , float $y )
bool setImageIndex ( int $index )
bool setImageInterlaceScheme ( int $interlace_scheme )
bool setImageInterpolateMethod ( int $method )
bool setImageIterations ( int $iterations )
bool setImageMatte ( bool $matte )
bool setImageMatteColor ( mixed $matte )
bool setImageOpacity ( float $opacity )
bool setImageOrientation ( int $orientation )
bool setImagePage ( int $width , int $height , int $x , int $y )
bool setImageProfile ( string $name , string $profile )
bool setImageProperty ( string $name , string $value )
bool setImageRedPrimary ( float $x , float $y )
bool setImageRenderingIntent ( int $rendering_intent )
bool setImageResolution ( float $x_resolution , float $y_resolution )
bool setImageScene ( int $scene )
bool setImageTicksPerSecond ( int $ticks_per-second )
bool setImageType ( int $image_type )
bool setImageUnits ( int $units )
bool setImageVirtualPixelMethod ( int $method )
bool setImageWhitePoint ( float $x , float $y )
bool setInterlaceScheme ( int $interlace_scheme )
bool setIteratorIndex ( int $index )
bool setLastIterator ( void )
bool setOption ( string $key , string $value )
bool setPage ( int $width , int $height , int $x , int $y )
bool setResolution ( float $x_resolution , float $y_resolution )
bool setResourceLimit ( int $type , int $limit )
bool setSamplingFactors ( array $factors )
bool setSize ( int $columns , int $rows )
bool setSizeOffset ( int $columns , int $rows , int $offset )
bool setType ( int $image_type )
bool shadeImage ( bool $gray , float $azimuth , float $elevation )
bool shadowImage ( float $opacity , float $sigma , int $x , int $y )
bool sharpenImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
bool shaveImage ( int $columns , int $rows )
bool shearImage ( mixed $background , float $x_shear , float $y_shear )
bool sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel=Imagick::CHANNEL_ALL ] )
bool sketchImage ( float $radius , float $sigma , float $angle )
bool solarizeImage ( int $threshold )
bool spliceImage ( int $width , int $height , int $x , int $y )
bool spreadImage ( float $radius )
Imagick steganoImage ( Imagick $watermark_wand , int $offset )
bool stereoImage ( Imagick $offset_wand )
bool stripImage ( void )
bool swirlImage ( float $degrees )
bool textureImage ( Imagick $texture_wand )
bool thresholdImage ( float $threshold [, int $channel=Imagick::CHANNEL_ALL ] )
bool thumbnailImage ( int $columns , int $rows [, bool $fit=false ] )
bool tintImage ( mixed $tint , mixed $opacity )
Imagick transformImage ( string $crop , string $geometry )
bool transposeImage ( void )
bool transverseImage ( void )
bool trimImage ( float $fuzz )
bool uniqueImageColors ( void )
bool unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel=Imagick::CHANNEL_ALL ] )
bool valid ( void )
bool vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )
bool waveImage ( float $amplitude , float $length )
bool whiteThresholdImage ( mixed $threshold )
bool writeImage ([ string $filename ] )
bool writeImages ( string $filename , bool $adjoin )
}

Image methods and global methods

The Imagick class has the ability to hold and operate on multiple images simultaneously. This is achieved through an internal stack. There is always an internal pointer that points at the current image. Some functions operate on all images in the Imagick class, but most operate only on the current image in the internal stack. As a convention, method names can contain the word Image to denote they affect only the current image in the stack.

Class Methods

Because there are so many methods, here is a handy list of methods, somewhat reduced to their general purpose:

Class methods by purpose
Image effects | Get methods | Set methods | Read/write images | Other
adaptiveBlurImage | getCompression | setBackgroundColor | __construct | clear
adaptiveResizeImage | getFilename | setCompressionQuality | addImage | clone
adaptiveSharpenImage | getFormat | setCompression | appendImages | current
adaptiveTresholdImage | getImageBackgroundColor | setFilename | getFilename | destroy
addNoiseImage | getImageBlob | getImagesBlob | setFormat | getFormat | getCopyright
affinetransformimage | getImageBluePrimary | setImageBackgroundColor | getImageFilename | getHomeURL
annotateImage | getImageBorderColor | setFirstIterator | getImageFormat | commentImage
averageImages | getImageChannelDepth | setImageBias | getImage | getNumberImages
blackThresholdImage | getImageChannelDistortion | setImageBluePrimary | setImageFilename | getReleaseDate
blurImage | getImageChannelExtrema | setImageBorderColor | setImageFormat | getVersion
borderImage | getImageChannelMean | setImageChannelDepth | readImageFile | hasNextImage
charcoalImage | getImageChannelStatistics | setImageColormapColor | readImage | hasPreviousImage
chopImage | getImageColormapColor | setImageColorSpace | writeImages | labelImage
clipImage | getImageColorspace | setImageCompose | writeImage | newImage
clipPathImage | getImageColors | setImageCompression |  | newPseudoImage
coalesceImages | getImageCompose | setImageDelay |  | nextImage
colorFloodFillImage | getImageDelay | setImageDepth |  | pingImageBlob
colorizeImage | getImageDepth | setImageDispose |  | pingImageFile
combineImages | getImageDispose | setImageDispose |  | pingImage
compareImageChannels | getImageDistortion | setImageExtent |  | previousImage
compareImageLayers | getImageExtrema | setImageFilename |  | profileImage
compositeImage | getImageFilename | setImageFormat |  | queryFormats
contrastImage | getImageFormat | setImageGamma |  | removeImageProfile
constrastStretchImage | getImageGamma | setImageGreenPrimary |  | removeImage
convolveImage | getImageGeometry | setImageIndex |  | setFirstIterator
cropImage | getImageGreenPrimary | setImageInterpolateMethod |  | setImageIndex
cycleColormapImage | getImageHeight | setImageIterations |  | valid
deconstructImages | getImageHistogram | setImageMatteColor |  |
drawImage | getImageIndex | setImageMatte |  |
edgeImage | getImageInterlaceScheme | setImagePage |  |
embossImage | getImageInterpolateMethod | setImageProfile |  |
enhanceImage | getImageIterations | setImageProperty |  |
equalizeImage | getImageMatteColor | setImageRedPrimary |  |
evaluateImage | getImageMatte | setImageRenderingIntent |  |
flattenImages | getImagePage | setImageResolution |  |
flipImage | getImagePixelColor | setImageScene |  |
flopImage | getImageProfile | setImageTicksPerSecond |  |
imageImage | getImageProperty | setImageType |  |
fxImage | getImageRedPrimary | setImageUnits |  |
gammaImage | getImageRegion | setImageVirtualPixelMethod |  |
gaussianBlurImage | getImageRenderingIntent | setImageWhitepoint |  |
implodeImage | getImageResolution | setInterlaceScheme |  |
levelImage | getImageScene | setOption |  |
linearStretchImage | getImageSignature | setPage |  |
magnifyImage | getImageTicksPerSecond | setResolution |  |
matteFloodFilleImage | getImageTotalInkDensity | setResourceLimit |  |
medianFilterImage | getImageType | setSamplingFactors |  |
minifyImage | getImageUnits | setSizeOffset |  |
modulateImage | getImageVirtualPixelMethod | setSize |  |
montageImage | getImageWhitepoint | setType |  |
morphImages | getImageWidth |  |  |
mosaicImages | getImage |  |  |
motionBlurImage | getInterlaceScheme |  |  |
negateImage | getNumberImages |  |  |
normalizeImage | getOption |  |  |
oilPaintImage | getPackageName |  |  |
optimizeImageLayers | getPage |  |  |
paintOpaqueImage | getPixelIterator |  |  |
paintTransparentImage | getPixelRegionIterator |  |  |
posterizeImage | getQuantumDepth |  |  |
radialBlurImage | getQuantumRange |  |  |
raiseImage | getResourceLimit |  |  |
randomThresholdImage | getResource |  |  |
reduceNoiseImage | getSamplingFactors |  |  |
render | getSizeOffset |  |  |
resampleImage | getSize |  |  |
resizeImage | identifyImage |  |  |
rollImage | getImageSize |  |  |
rotateImage |  |  |  |
sampleImage |  |  |  |
scaleImage |  |  |  |
separateImageChannel |  |  |  |
sepiaToneImage |  |  |  |
shadeImage |  |  |  |
shadowImage |  |  |  |
sharpenImage |  |  |  |
shaveImage |  |  |  |
shearImage |  |  |  |
sigmoidalContrastImage |  |  |  |
sketchImage |  |  |  |
solarizeImage |  |  |  |
spliceImage |  |  |  |
spreadImage |  |  |  |
steganoImage |  |  |  |
stereoImage |  |  |  |
stripImage |  |  |  |
swirlImage |  |  |  |
textureImage |  |  |  |
thresholdImage |  |  |  |
thumbnailImage |  |  |  |
tintImage |  |  |  |
transverseImage |  |  |  |
trimImage |  |  |  |
uniqueImageColors |  |  |  |
unsharpMaskImage |  |  |  |
vignetteImage |  |  |  |
waveImage |  |  |  |
whiteThresholdImage |  |  |  |

Table of Contents

  • Imagick::adaptiveBlurImage — Adds adaptive blur filter to image
  • Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation
  • Imagick::adaptiveSharpenImage — Adaptively sharpen the image
  • Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity
  • Imagick::addImage — Adds new image to Imagick object image list
  • Imagick::addNoiseImage — Adds random noise to the image
  • Imagick::affineTransformImage — Transforms an image
  • Imagick::annotateImage — Annotates an image with text
  • Imagick::appendImages — Append a set of images
  • Imagick::averageImages — Average a set of images
  • Imagick::blackThresholdImage — Forces all pixels below the threshold into black
  • Imagick::blurImage — Adds blur filter to image
  • Imagick::borderImage — Surrounds the image with a border
  • Imagick::charcoalImage — Simulates a charcoal drawing
  • Imagick::chopImage — Removes a region of an image and trims
  • Imagick::clear — Clears all resources associated to Imagick object
  • Imagick::clipImage — Clips along the first path from the 8BIM profile
  • Imagick::clipPathImage — Clips along the named paths from the 8BIM profile
  • Imagick::clone — Makes an exact copy of the Imagick object
  • Imagick::clutImage — Replaces colors in the image from a color lookup table
  • Imagick::coalesceImages — Composites a set of images
  • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::colorizeImage — Blends the fill color with the image
  • Imagick::combineImages — Combines one or more images into a single image
  • Imagick::commentImage — Adds a comment to your image
  • Imagick::compareImageChannels — Returns the difference in one or more images
  • Imagick::compareImageLayers — Returns the maximum bounding region between images
  • Imagick::compareImages — Compares an image to a reconstructed image
  • Imagick::compositeImage — Composite one image onto another
  • Imagick::__construct — The Imagick constructor
  • Imagick::contrastImage — Change the contrast of the image
  • Imagick::contrastStretchImage — Enhances the contrast of a color image
  • Imagick::convolveImage — Applies a custom convolution kernel to the image
  • Imagick::cropImage — Extracts a region of the image
  • Imagick::cropThumbnailImage — Creates a crop thumbnail
  • Imagick::current — Returns a reference to the current Imagick object
  • Imagick::cycleColormapImage — Displaces an image's colormap
  • Imagick::deconstructImages — Returns certain pixel differences between images
  • Imagick::despeckleImage — Reduces the speckle noise in an image
  • Imagick::destroy — Destroys the Imagick object
  • Imagick::displayImage — Displays an image
  • Imagick::displayImages — Displays an image or image sequence
  • Imagick::distortImage — Distorts an image using various distortion methods
  • Imagick::drawImage — Renders the ImagickDraw object on the current image
  • Imagick::edgeImage — Enhance edges within the image
  • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
  • Imagick::enhanceImage — Improves the quality of a noisy image
  • Imagick::equalizeImage — Equalizes the image histogram
  • Imagick::evaluateImage — Applies an expression to an image
  • Imagick::flattenImages — Merges a sequence of images
  • Imagick::flipImage — Creates a vertical mirror image
  • Imagick::flopImage — Creates a horizontal mirror image
  • Imagick::frameImage — Adds a simulated three-dimensional border
  • Imagick::fxImage — Evaluate expression for each pixel in the image
  • Imagick::gammaImage — Gamma-corrects an image
  • Imagick::gaussianBlurImage — Blurs an image
  • Imagick::getCompression — Gets the object compression type
  • Imagick::getCompressionQuality — Gets the object compression quality
  • Imagick::getCopyright — Returns the ImageMagick API copyright as a string
  • Imagick::getFilename — The filename associated with an image sequence
  • Imagick::getFormat — Returns the format of the Imagick object
  • Imagick::getHomeURL — Returns the ImageMagick home URL
  • Imagick::getImage — Returns a new Imagick object
  • Imagick::getImageBackgroundColor — Returns the image background color
  • Imagick::getImageBlob — Returns the image sequence as a blob
  • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
  • Imagick::getImageBorderColor — Returns the image border color
  • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
  • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
  • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
  • Imagick::getImageChannelMean — Gets the mean and standard deviation
  • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
  • Imagick::getImageColormapColor — Returns the color of the specified colormap index
  • Imagick::getImageColors — Gets the number of unique colors in the image
  • Imagick::getImageColorspace — Gets the image colorspace
  • Imagick::getImageCompose — Returns the composite operator associated with the image
  • Imagick::getImageDelay — Gets the image delay
  • Imagick::getImageDepth — Gets the image depth
  • Imagick::getImageDispose — Gets the image disposal method
  • Imagick::getImageDistortion — Compares an image to a reconstructed image
  • Imagick::getImageExtrema — Gets the extrema for the image
  • Imagick::getImageFilename — Returns the filename of a particular image in a sequence
  • Imagick::getImageFormat — Returns the format of a particular image in a sequence
  • Imagick::getImageGamma — Gets the image gamma
  • Imagick::getImageGeometry — Gets the width and height as an associative array
  • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
  • Imagick::getImageHeight — Returns the image height
  • Imagick::getImageHistogram — Gets the image histogram
  • Imagick::getImageIndex — Gets the index of the current active image
  • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
  • Imagick::getImageInterpolateMethod — Returns the interpolation method
  • Imagick::getImageIterations — Gets the image iterations
  • Imagick::getImageLength — Returns the image length in bytes
  • Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license
  • Imagick::getImageMatte — Return if the image has a matte channel
  • Imagick::getImageMatteColor — Returns the image matte color
  • Imagick::getImageOrientation — Gets the image orientation.
  • Imagick::getImagePage — Returns the page geometry
  • Imagick::getImagePixelColor — Returns the color of the specified pixel
  • Imagick::getImageProfile — Returns the named image profile
  • Imagick::getImageProfiles — Returns the image profiles
  • Imagick::getImageProperties — Returns the image properties
  • Imagick::getImageProperty — Returns the named image property
  • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
  • Imagick::getImageRegion — Extracts a region of the image
  • Imagick::getImageRenderingIntent — Gets the image rendering intent
  • Imagick::getImageResolution — Gets the image X and Y resolution
  • Imagick::getImagesBlob — Returns all image sequences as a blob
  • Imagick::getImageScene — Gets the image scene
  • Imagick::getImageSignature — Generates an SHA-256 message digest
  • Imagick::getImageSize — Returns the image length in bytes
  • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
  • Imagick::getImageTotalInkDensity — Gets the image total ink density
  • Imagick::getImageType — Gets the potential image type
  • Imagick::getImageUnits — Gets the image units of resolution
  • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
  • Imagick::getImageWhitePoint — Returns the chromaticity white point
  • Imagick::getImageWidth — Returns the image width
  • Imagick::getInterlaceScheme — Gets the object interlace scheme
  • Imagick::getIteratorIndex — Gets the index of the current active image
  • Imagick::getNumberImages — Returns the number of images in the object
  • Imagick::getOption — Returns a value associated with the specified key
  • Imagick::getPackageName — Returns the ImageMagick package name
  • Imagick::getPage — Returns the page geometry
  • Imagick::getPixelIterator — Returns a MagickPixelIterator
  • Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section
  • Imagick::getQuantumDepth — Gets the quantum depth
  • Imagick::getQuantumRange — Returns the Imagick quantum range
  • Imagick::getReleaseDate — Returns the ImageMagick release date
  • Imagick::getResource — Returns the specified resource's memory usage
  • Imagick::getResourceLimit — Returns the specified resource limit
  • Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor
  • Imagick::getSize — Returns the size associated with the Imagick object
  • Imagick::getSizeOffset — Returns the size offset
  • Imagick::getVersion — Returns the ImageMagick API version
  • Imagick::hasNextImage — Checks if the object has more images
  • Imagick::hasPreviousImage — Checks if the object has a previous image
  • Imagick::identifyImage — Identifies an image and fetches attributes
  • Imagick::implodeImage — Creates a new image as a copy
  • Imagick::labelImage — Adds a label to an image
  • Imagick::levelImage — Adjusts the levels of an image
  • Imagick::linearStretchImage — Stretches with saturation the image intensity
  • Imagick::magnifyImage — Scales an image proportionally 2x
  • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image.
  • Imagick::matteFloodfillImage — Changes the transparency value of a color
  • Imagick::medianFilterImage — Applies a digital filter
  • Imagick::minifyImage — Scales an image proportionally to half its size
  • Imagick::modulateImage — Control the brightness, saturation, and hue
  • Imagick::montageImage — Creates a composite image
  • Imagick::morphImages — Method morphs a set of images
  • Imagick::mosaicImages — Forms a mosaic from images
  • Imagick::motionBlurImage — Simulates motion blur
  • Imagick::negateImage — Negates the colors in the reference image
  • Imagick::newImage — Creates a new image
  • Imagick::newPseudoImage — Creates a new image
  • Imagick::nextImage — Moves to the next image
  • Imagick::normalizeImage — Enhances the contrast of a color image
  • Imagick::oilPaintImage — Simulates an oil painting
  • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
  • Imagick::orderedPosterizeImage — Performs an ordered dither
  • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::paintOpaqueImage — Change any pixel that matches color
  • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
  • Imagick::pingImage — Fetch basic attributes about the image
  • Imagick::pingImageBlob — Quickly fetch attributes
  • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
  • Imagick::polaroidImage — Simulates a Polaroid picture
  • Imagick::posterizeImage — Reduces the image to a limited number of color level
  • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
  • Imagick::previousImage — Move to the previous image in the object
  • Imagick::profileImage — Adds or removes a profile from an image
  • Imagick::quantizeImage — Analyzes the colors within a reference image
  • Imagick::quantizeImages — Analyzes the colors within a sequence of images
  • Imagick::queryFontMetrics — Returns an array representing the font metrics
  • Imagick::queryFonts — Returns the configured fonts
  • Imagick::queryFormats — Returns formats supported by Imagick
  • Imagick::radialBlurImage — Radial blurs an image
  • Imagick::raiseImage — Creates a simulated 3d button-like effect
  • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
  • Imagick::readImage — Reads image from filename
  • Imagick::readImageBlob — Reads image from a binary string
  • Imagick::readImageFile — Reads image from open filehandle
  • Imagick::reduceNoiseImage — Smooths the contours of an image
  • Imagick::removeImage — Removes an image from the image list
  • Imagick::removeImageProfile — Removes the named image profile and returns it
  • Imagick::render — Renders all preceding drawing commands
  • Imagick::resampleImage — Resample image to desired resolution
  • Imagick::resizeImage — Scales an image
  • Imagick::rollImage — Offsets an image
  • Imagick::rotateImage — Rotates an image
  • Imagick::roundCorners — Rounds image corners
  • Imagick::sampleImage — Scales an image with pixel sampling
  • Imagick::scaleImage — Scales the size of an image
  • Imagick::separateImageChannel — Separates a channel from the image
  • Imagick::sepiaToneImage — Sepia tones an image
  • Imagick::setBackgroundColor — Sets the object's default background color
  • Imagick::setCompression — Sets the object's default compression type
  • Imagick::setCompressionQuality — Sets the object's default compression quality
  • Imagick::setFilename — Sets the filename before you read or write the image
  • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
  • Imagick::setFont — Sets the image bias for any method that convolves an image
  • Imagick::setFormat — Sets the format of the Imagick object
  • Imagick::setImage — Replaces image in the object
  • Imagick::setImageBackgroundColor — Sets the image background color
  • Imagick::setImageBias — Sets the image bias for any method that convolves an image
  • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
  • Imagick::setImageBorderColor — Sets the image border color
  • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
  • Imagick::setImageColormapColor — Sets the color of the specified colormap index
  • Imagick::setImageColorspace — Sets the image colorspace
  • Imagick::setImageCompose — Sets the image composite operator
  • Imagick::setImageCompression — Sets the image compression
  • Imagick::setImageDelay — Sets the image delay
  • Imagick::setImageDepth — Sets the image depth
  • Imagick::setImageDispose — Sets the image disposal method
  • Imagick::setImageExtent — Sets the image size
  • Imagick::setImageFilename — Sets the filename of a particular image
  • Imagick::setImageFormat — Sets the format of a particular image
  • Imagick::setImageGamma — Sets the image gamma
  • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
  • Imagick::setImageIndex — Set the iterator position
  • Imagick::setImageInterlaceScheme — Sets the image compression
  • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
  • Imagick::setImageIterations — Sets the image iterations
  • Imagick::setImageMatte — Sets the image matte channel
  • Imagick::setImageMatteColor — Sets the image matte color
  • Imagick::setImageOpacity — Sets the image opacity level
  • Imagick::setImageOrientation — Sets the image orientation.
  • Imagick::setImagePage — Sets the page geometry of the image
  • Imagick::setImageProfile — Adds a named profile to the Imagick object
  • Imagick::setImageProperty — Sets an image property
  • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
  • Imagick::setImageRenderingIntent — Sets the image rendering intent
  • Imagick::setImageResolution — Sets the image resolution
  • Imagick::setImageScene — Sets the image scene
  • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
  • Imagick::setImageType — Sets the image type
  • Imagick::setImageUnits — Sets the image units of resolution
  • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
  • Imagick::setImageWhitePoint — Sets the image chromaticity white point
  • Imagick::setInterlaceScheme — Sets the image compression
  • Imagick::setIteratorIndex — Set the iterator position
  • Imagick::setLastIterator — Sets the Imagick iterator to the last image
  • Imagick::setOption — Set an option
  • Imagick::setPage — Sets the page geometry of the Imagick object
  • Imagick::setResolution — Sets the image resolution
  • Imagick::setResourceLimit — Sets the limit for a particular resource in megabytes
  • Imagick::setSamplingFactors — Sets the image sampling factors
  • Imagick::setSize — Sets the size of the Imagick object
  • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
  • Imagick::setType — Sets the image type attribute
  • Imagick::shadeImage — Creates a 3D effect
  • Imagick::shadowImage — Simulates an image shadow
  • Imagick::sharpenImage — Sharpens an image
  • Imagick::shaveImage — Shaves pixels from the image edges
  • Imagick::shearImage — Creating a parallelogram
  • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
  • Imagick::sketchImage — Simulates a pencil sketch
  • Imagick::solarizeImage — Applies a solarizing effect to the image
  • Imagick::spliceImage — Splices a solid color into the image
  • Imagick::spreadImage — Randomly displaces each pixel in a block
  • Imagick::steganoImage — Hides a digital watermark within the image
  • Imagick::stereoImage — Composites two images
  • Imagick::stripImage — Strips an image of all profiles and comments
  • Imagick::swirlImage — Swirls the pixels about the center of the image
  • Imagick::textureImage — Repeatedly tiles the texture image
  • Imagick::thresholdImage — Changes the value of individual pixels based on a threshold
  • Imagick::thumbnailImage — Changes the size of an image
  • Imagick::tintImage — Applies a color vector to each pixel in the image
  • Imagick::transformImage — Convenience method for setting crop size and the image geometry
  • Imagick::transposeImage — Creates a vertical mirror image
  • Imagick::transverseImage — Creates a horizontal mirror image
  • Imagick::trimImage — Remove edges from the image
  • Imagick::uniqueImageColors — Discards all but one of any pixel color
  • Imagick::unsharpMaskImage — Sharpens an image
  • Imagick::valid — Checks if the current item is valid
  • Imagick::vignetteImage — Adds vignette filter to the image
  • Imagick::waveImage — Applies wave filter to the image
  • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
  • Imagick::writeImage — Writes an image to the specified filename
  • Imagick::writeImages — Writes an image or image sequence
范例
Imagick::adaptiveBlurImage
ImageMagick


Adds adaptive blur filter to image

The Imagick class
Imagick::adaptiveResizeImage
The Imagick class
PHP 手册

Imagick::adaptiveBlurImage

(PECL imagick 2.0.0)

Imagick::adaptiveBlurImage — Adds adaptive blur filter to image

说明

bool Imagick::adaptiveBlurImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )

Adds an adaptive blur filter to image. The intensity of an adaptive blur depends is dramatically decreased at edge of the image, whereas a standard blur is uniform across the image.

参数

radius

The radius of the Gaussian, in pixels, not counting the center pixel. Provide a value of 0 and the radius will be chosen automagically.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::adaptiveBlurImage():

Adaptively blur an image, then display to the browser.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo $image;

?>

参见

  • Imagick::blurImage() - Adds blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image

The Imagick class
Imagick::adaptiveResizeImage
The Imagick class


Adaptively resize image with data dependent triangulation

Imagick::adaptiveBlurImage
Imagick::adaptiveSharpenImage
The Imagick class
PHP 手册

Imagick::adaptiveResizeImage

(PECL imagick 2.0.0)

Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation

说明

bool Imagick::adaptiveResizeImage ( int $columns , int $rows [, bool $fit=false ] )

Adaptively resize image with data-dependent triangulation. Avoids blurring across sharp color changes. Most useful when used to shrink images slightly to a slightly smaller "web size"; may not look good when a full-sized image is adaptively resized to a thumbnail. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

columns

The number of columns in the scaled image.

rows

The number of rows in the scaled image.

fit

Whether to fit the image inside a bounding box.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Added optional fit parameter.
2.1.0 | This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

范例

Example #1 Using Imagick::adaptiveResizeImage()

Resize an image to a standard size for the web. This method works best when resizing to a size only slightly smaller than the previous image size.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

参见

  • Imagick::chopImage() - Removes a region of an image and trims
  • Imagick::cropImage() - Extracts a region of the image
  • Imagick::magnifyImage() - Scales an image proportionally 2x
  • Imagick::minifyImage() - Scales an image proportionally to half its size
  • Imagick::resizeImage() - Scales an image
  • Imagick::scaleImage() - Scales the size of an image
  • Imagick::shaveImage() - Shaves pixels from the image edges
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::trimImage() - Remove edges from the image

Imagick::adaptiveBlurImage
Imagick::adaptiveSharpenImage
The Imagick class


Adaptively sharpen the image

Imagick::adaptiveResizeImage
Imagick::adaptiveThresholdImage
The Imagick class
PHP 手册

Imagick::adaptiveSharpenImage

(PECL imagick 2.0.0)

Imagick::adaptiveSharpenImage — Adaptively sharpen the image

说明

bool Imagick::adaptiveSharpenImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Adaptively sharpen the image by sharpening more intensely near image edges and less intensely far from edges.

参数

radius

The radius of the Gaussian, in pixels, not counting the center pixel. Use 0 for auto-select.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

范例

Example #1 A Imagick::adaptiveSharpenImage() example

Adaptively sharpen the image with radius 2 and sigma 1.

<?php
try {
    $image = new Imagick('image.png');
    $image->adaptiveSharpenImage(2,1);
} catch(ImagickException $e) {
    echo 'Error: ' , $e->getMessage();
    die();
}
header('Content-type: image/png');
echo $image;
?>

参见

  • Imagick::sharpenImage() - Sharpens an image

Imagick::adaptiveResizeImage
Imagick::adaptiveThresholdImage
The Imagick class


Selects a threshold for each pixel based on a range of intensity

Imagick::adaptiveSharpenImage
Imagick::addImage
The Imagick class
PHP 手册

Imagick::adaptiveThresholdImage

(PECL imagick 2.0.0)

Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity

说明

bool Imagick::adaptiveThresholdImage ( int $width , int $height , int $offset )

Selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood. This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.

参数

width

Width of the local neighborhood.

height

Height of the local neighborhood.

offset

The mean offset

返回值

Returns TRUE on success.

Imagick::adaptiveSharpenImage
Imagick::addImage
The Imagick class


Adds new image to Imagick object image list

Imagick::adaptiveThresholdImage
Imagick::addNoiseImage
The Imagick class
PHP 手册

Imagick::addImage

(PECL imagick 2.0.0)

Imagick::addImage — Adds new image to Imagick object image list

说明

bool Imagick::addImage ( Imagick $source )
Warning

本函数暂无文档，仅有参数列表。

Adds new image to Imagick object from the current position of the source object. After the operation iterator position is moved at the end of the list.

参数

source

The source Imagick object

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::adaptiveThresholdImage
Imagick::addNoiseImage
The Imagick class


Adds random noise to the image

Imagick::addImage
Imagick::affineTransformImage
The Imagick class
PHP 手册

Imagick::addNoiseImage

(PECL imagick 2.0.0)

Imagick::addNoiseImage — Adds random noise to the image

说明

bool Imagick::addNoiseImage ( int $noise_type [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Adds random noise to the image.

参数

noise_type

The type of the noise. Refer to this list of noise constants.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

Imagick::addImage
Imagick::affineTransformImage
The Imagick class


Transforms an image

Imagick::addNoiseImage
Imagick::annotateImage
The Imagick class
PHP 手册

Imagick::affineTransformImage

(PECL imagick 2.0.0)

Imagick::affineTransformImage — Transforms an image

说明

bool Imagick::affineTransformImage ( ImagickDraw $matrix )
Warning

本函数暂无文档，仅有参数列表。

Transforms an image as dictated by the affine matrix.

参数

matrix

The affine matrix

返回值

Returns TRUE on success.

Imagick::addNoiseImage
Imagick::annotateImage
The Imagick class


Annotates an image with text

Imagick::affineTransformImage
Imagick::appendImages
The Imagick class
PHP 手册

Imagick::annotateImage

(PECL imagick 2.0.0)

Imagick::annotateImage — Annotates an image with text

说明

bool Imagick::annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )
Warning

本函数暂无文档，仅有参数列表。

Annotates an image with text.

参数

draw_settings

The ImagickDraw object that contains settings for drawing the text

x

Horizontal offset in pixels to the left of text

y

Vertical offset in pixels to the baseline of text

angle

The angle at which to write the text

text

The string to draw

返回值

Returns TRUE on success.

范例

Example #1 Using Imagick::annotateImage():

Annotate text on an empty image

<?php
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(800, 75, $pixel);

/* Black text */
$pixel->setColor('black');

/* Font properties */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Create text */
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;

?>

参见

  • ImagickDraw::annotation() - Draws text on the image
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text

Imagick::affineTransformImage
Imagick::appendImages
The Imagick class


Append a set of images

Imagick::annotateImage
Imagick::averageImages
The Imagick class
PHP 手册

Imagick::appendImages

(PECL imagick 2.0.0)

Imagick::appendImages — Append a set of images

说明

Imagick Imagick::appendImages ( bool $stack )
Warning

本函数暂无文档，仅有参数列表。

Append a set of images.

参数

stack

The direction of the stack (top to bottom or bottom to top)

返回值

Returns Imagick instance on success, throws ImagickException on failure.

Imagick::annotateImage
Imagick::averageImages
The Imagick class


Average a set of images

Imagick::appendImages
Imagick::blackThresholdImage
The Imagick class
PHP 手册

Imagick::averageImages

(PECL imagick 2.0.0)

Imagick::averageImages — Average a set of images

说明

Imagick Imagick::averageImages ( void )
Warning

本函数暂无文档，仅有参数列表。

Average a set of images.

返回值

Returns a new Imagick object on success, throws ImagickException on failure.

Imagick::appendImages
Imagick::blackThresholdImage
The Imagick class


Forces all pixels below the threshold into black

Imagick::averageImages
Imagick::blurImage
The Imagick class
PHP 手册

Imagick::blackThresholdImage

(PECL imagick 2.0.0)

Imagick::blackThresholdImage — Forces all pixels below the threshold into black

说明

bool Imagick::blackThresholdImage ( mixed $threshold )
Warning

本函数暂无文档，仅有参数列表。

Is like Imagick::thresholdImage() but forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.

参数

threshold

The threshold below which everything turns black

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Imagick::averageImages
Imagick::blurImage
The Imagick class


Adds blur filter to image

Imagick::blackThresholdImage
Imagick::borderImage
The Imagick class
PHP 手册

Imagick::blurImage

(PECL imagick 2.0.0)

Imagick::blurImage — Adds blur filter to image

说明

bool Imagick::blurImage ( float $radius , float $sigma [, int $channel ] )
Warning

本函数暂无文档，仅有参数列表。

Adds blur filter to image. Optional third parameter to blur a specific channel.

参数

radius

Blur radius

sigma

Standard deviation

channel

The Channeltype constant. When not supplied, all channels are blurred.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::blurImage():

Blur an image, then display to the browser.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

参见

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image

Imagick::blackThresholdImage
Imagick::borderImage
The Imagick class


Surrounds the image with a border

Imagick::blurImage
Imagick::charcoalImage
The Imagick class
PHP 手册

Imagick::borderImage

(PECL imagick 2.0.0)

Imagick::borderImage — Surrounds the image with a border

说明

bool Imagick::borderImage ( mixed $bordercolor , int $width , int $height )
Warning

本函数暂无文档，仅有参数列表。

Surrounds the image with a border of the color defined by the bordercolor ImagickPixel object.

参数

bordercolor

ImagickPixel object or a string containing the border color

width

Border width

height

Border height

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Imagick::blurImage
Imagick::charcoalImage
The Imagick class


Simulates a charcoal drawing

Imagick::borderImage
Imagick::chopImage
The Imagick class
PHP 手册

Imagick::charcoalImage

(PECL imagick 2.0.0)

Imagick::charcoalImage — Simulates a charcoal drawing

说明

bool Imagick::charcoalImage ( float $radius , float $sigma )
Warning

本函数暂无文档，仅有参数列表。

Simulates a charcoal drawing.

参数

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels

返回值

Returns TRUE on success.

Imagick::borderImage
Imagick::chopImage
The Imagick class


Removes a region of an image and trims

Imagick::charcoalImage
Imagick::clear
The Imagick class
PHP 手册

Imagick::chopImage

(PECL imagick 2.0.0)

Imagick::chopImage — Removes a region of an image and trims

说明

bool Imagick::chopImage ( int $width , int $height , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Removes a region of an image and collapses the image to occupy the removed portion.

参数

width

Width of the chopped area

height

Height of the chopped area

x

X origo of the chopped area

y

Y origo of the chopped area

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::chopImage():

Example of using Imagick::chopImage

<?php
/* Create some objects */
$image = new Imagick();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(400, 200, $pixel);

/* Chop image */
$image->chopImage(200, 200, 0, 0);

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;

?>

参见

  • Imagick::cropImage() - Extracts a region of the image

Imagick::charcoalImage
Imagick::clear
The Imagick class


Clears all resources associated to Imagick object

Imagick::chopImage
Imagick::clipImage
The Imagick class
PHP 手册

Imagick::clear

(PECL imagick 2.0.0)

Imagick::clear — Clears all resources associated to Imagick object

说明

bool Imagick::clear ( void )
Warning

本函数暂无文档，仅有参数列表。

Clears all resources associated to Imagick object

返回值

Returns TRUE on success.

Imagick::chopImage
Imagick::clipImage
The Imagick class


Clips along the first path from the 8BIM profile

Imagick::clear
Imagick::clipPathImage
The Imagick class
PHP 手册

Imagick::clipImage

(PECL imagick 2.0.0)

Imagick::clipImage — Clips along the first path from the 8BIM profile

说明

bool Imagick::clipImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Clips along the first path from the 8BIM profile, if present.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::clear
Imagick::clipPathImage
The Imagick class


Clips along the named paths from the 8BIM profile

Imagick::clipImage
Imagick::clone
The Imagick class
PHP 手册

Imagick::clipPathImage

(PECL imagick 2.0.0)

Imagick::clipPathImage — Clips along the named paths from the 8BIM profile

说明

bool Imagick::clipPathImage ( string $pathname , bool $inside )
Warning

本函数暂无文档，仅有参数列表。

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. It may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

参数

pathname

The name of the path

inside

If TRUE later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::clipImage
Imagick::clone
The Imagick class


Makes an exact copy of the Imagick object

Imagick::clipPathImage
Imagick::clutImage
The Imagick class
PHP 手册

Imagick::clone

(PECL imagick 2.0.0)

Imagick::clone — Makes an exact copy of the Imagick object

说明

Imagick Imagick::clone ( void )
Warning

本函数暂无文档，仅有参数列表。

Makes an exact copy of the Imagick object.

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

Imagick::clipPathImage
Imagick::clutImage
The Imagick class


Replaces colors in the image from a color lookup table

Imagick::clone
Imagick::coalesceImages
The Imagick class
PHP 手册

Imagick::clutImage

(PECL imagick 2.0.0)

Imagick::clutImage — Replaces colors in the image from a color lookup table

说明

bool Imagick::clutImage ( Imagick $lookup_table [, float $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Replaces colors in the image from a color lookup table. Optional second parameter to replace colors in a specific channel. This method is available if Imagick is compiled against ImageMagick 6.3.5-7 or newer.

参数

lookup_table

Imagick object containing the color lookup table

channel

The Channeltype constant. When not supplied, all channels are replaced.

返回值

Returns TRUE on success.

范例

Example #1 Using Imagick::clutImage():

Replace colors in the image from a color lookup table.

<?php
$image = new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('black'));
$image->clutImage( $clut );
$image->writeImage( 'test_out.jpg' );
?>

参见

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image

Imagick::clone
Imagick::coalesceImages
The Imagick class


Composites a set of images

Imagick::clutImage
Imagick::colorFloodfillImage
The Imagick class
PHP 手册

Imagick::coalesceImages

(PECL imagick 2.0.0)

Imagick::coalesceImages — Composites a set of images

说明

Imagick Imagick::coalesceImages ( void )
Warning

本函数暂无文档，仅有参数列表。

Composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. Returns a new Imagick object where each image in the sequence is the same size as the first and composited with the next image in the sequence.

返回值

Returns a new Imagick object on success, throws ImagickException on failure.

错误／异常

Throws ImagickException on error.

Imagick::clutImage
Imagick::colorFloodfillImage
The Imagick class


Changes the color value of any pixel that matches target

Imagick::coalesceImages
Imagick::colorizeImage
The Imagick class
PHP 手册

Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target

说明

bool Imagick::colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Changes the color value of any pixel that matches target and is an immediate neighbor.

参数

fill

ImagickPixel object containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as first and third parameter. Previous versions allow only an ImagickPixel object.

Imagick::coalesceImages
Imagick::colorizeImage
The Imagick class


Blends the fill color with the image

Imagick::colorFloodfillImage
Imagick::combineImages
The Imagick class
PHP 手册

Imagick::colorizeImage

(PECL imagick 2.0.0)

Imagick::colorizeImage — Blends the fill color with the image

说明

bool Imagick::colorizeImage ( mixed $colorize , mixed $opacity )
Warning

本函数暂无文档，仅有参数列表。

Blends the fill color with each pixel in the image.

参数

colorize

ImagickPixel object or a string containing the colorize color

opacity

ImagickPixel object or an float containing the opacity value. 1.0 is fully opaque and 0.0 is fully transparent.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Imagick::colorFloodfillImage
Imagick::combineImages
The Imagick class


Combines one or more images into a single image

Imagick::colorizeImage
Imagick::commentImage
The Imagick class
PHP 手册

Imagick::combineImages

(PECL imagick 2.0.0)

Imagick::combineImages — Combines one or more images into a single image

说明

Imagick Imagick::combineImages ( int $channelType )
Warning

本函数暂无文档，仅有参数列表。

Combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

参数

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::colorizeImage
Imagick::commentImage
The Imagick class


Adds a comment to your image

Imagick::combineImages
Imagick::compareImageChannels
The Imagick class
PHP 手册

Imagick::commentImage

(PECL imagick 2.0.0)

Imagick::commentImage — Adds a comment to your image

说明

bool Imagick::commentImage ( string $comment )
Warning

本函数暂无文档，仅有参数列表。

Adds a comment to your image.

参数

comment

The comment to add

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::commentImage():

Commenting an image and retrieving the comment:

<?php

/* Create new Imagick object */
$im = new imagick();

/* Create an empty image */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Add comment to the image */
$im->commentImage("Hello World!");

/* Display the comment */
echo $im->getImageProperty("comment");

?>

Imagick::combineImages
Imagick::compareImageChannels
The Imagick class


Returns the difference in one or more images

Imagick::commentImage
Imagick::compareImageLayers
The Imagick class
PHP 手册

Imagick::compareImageChannels

(PECL imagick 2.0.0)

Imagick::compareImageChannels — Returns the difference in one or more images

说明

array Imagick::compareImageChannels ( Imagick $image , int $channelType , int $metricType )
Warning

本函数暂无文档，仅有参数列表。

Compares one or more images and returns the difference image.

参数

image

Imagick object containing the image to compare.

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

metricType

One of the metric type constants.

返回值

Array consisting of new_wand and distortion.

错误／异常

Throws ImagickException on error.

Imagick::commentImage
Imagick::compareImageLayers
The Imagick class


Returns the maximum bounding region between images

Imagick::compareImageChannels
Imagick::compareImages
The Imagick class
PHP 手册

Imagick::compareImageLayers

(PECL imagick 2.0.0)

Imagick::compareImageLayers — Returns the maximum bounding region between images

说明

Imagick Imagick::compareImageLayers ( int $method )

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

method

One of the layer method constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::compareImageLayers()

Comparing image layers

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* work on the $result */
?>

参见

  • Imagick::optimizeImageLayers() - Removes repeated portions of images to optimize
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImagesFile()

Imagick::compareImageChannels
Imagick::compareImages
The Imagick class


Compares an image to a reconstructed image

Imagick::compareImageLayers
Imagick::compositeImage
The Imagick class
PHP 手册

Imagick::compareImages

(PECL imagick 2.0.0)

Imagick::compareImages — Compares an image to a reconstructed image

说明

array Imagick::compareImages ( Imagick $compare , int $metric )
Warning

本函数暂无文档，仅有参数列表。

Returns an array containing a reconstructed image and the difference between images.

参数

compare

An image to compare to.

metric

Provide a valid metric type constant. Refer to this list of metric constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::compareImages():

Compare images and display the reconstructed image

<?php

$image1 = new imagick("image1.png");
$image2 = new imagick("image2.png");

$result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo $result[0];

?>

Imagick::compareImageLayers
Imagick::compositeImage
The Imagick class


Composite one image onto another

Imagick::compareImages
Imagick::__construct
The Imagick class
PHP 手册

Imagick::compositeImage

(PECL imagick 2.0.0)

Imagick::compositeImage — Composite one image onto another

说明

bool Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Composite one image onto another at the specified offset.

参数

composite_object

Imagick object which holds the composite image

compose

Composite operator. See Composite Operator Constants

x

The column offset of the composited image

y

The row offset of the composited image

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

Imagick::compareImages
Imagick::__construct
The Imagick class


The Imagick constructor

Imagick::compositeImage
Imagick::contrastImage
The Imagick class
PHP 手册

Imagick::__construct

(PECL imagick 2.0.0)

Imagick::__construct — The Imagick constructor

说明

Imagick Imagick::__construct ([ mixed $files ] )
Warning

本函数暂无文档，仅有参数列表。

The Imagick constructor

参数

files

The path to an image to load or array of paths

返回值

Returns a new Imagick object on success, throws ImagickException on failure.

Imagick::compositeImage
Imagick::contrastImage
The Imagick class


Change the contrast of the image

Imagick::__construct
Imagick::contrastStretchImage
The Imagick class
PHP 手册

Imagick::contrastImage

(PECL imagick 2.0.0)

Imagick::contrastImage — Change the contrast of the image

说明

bool Imagick::contrastImage ( bool $sharpen )
Warning

本函数暂无文档，仅有参数列表。

Enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

参数

sharpen

The sharpen value

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::__construct
Imagick::contrastStretchImage
The Imagick class


Enhances the contrast of a color image

Imagick::contrastImage
Imagick::convolveImage
The Imagick class
PHP 手册

Imagick::contrastStretchImage

(PECL imagick 2.0.0)

Imagick::contrastStretchImage — Enhances the contrast of a color image

说明

bool Imagick::contrastStretchImage ( float $black_point , float $white_point [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available

参数

black_point

The black point.

white_point

The white point.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

Imagick::contrastImage
Imagick::convolveImage
The Imagick class


Applies a custom convolution kernel to the image

Imagick::contrastStretchImage
Imagick::cropImage
The Imagick class
PHP 手册

Imagick::convolveImage

(PECL imagick 2.0.0)

Imagick::convolveImage — Applies a custom convolution kernel to the image

说明

bool Imagick::convolveImage ( array $kernel [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Applies a custom convolution kernel to the image.

参数

kernel

The convolution kernel

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::contrastStretchImage
Imagick::cropImage
The Imagick class


Extracts a region of the image

Imagick::convolveImage
Imagick::cropThumbnailImage
The Imagick class
PHP 手册

Imagick::cropImage

(PECL imagick 2.0.0)

Imagick::cropImage — Extracts a region of the image

说明

bool Imagick::cropImage ( int $width , int $height , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Extracts a region of the image.

参数

width

The width of the crop

height

The height of the crop

x

The X coordinate of the cropped region's top left corner

y

The Y coordinate of the cropped region's top left corner

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::convolveImage
Imagick::cropThumbnailImage
The Imagick class


Creates a crop thumbnail

Imagick::cropImage
Imagick::current
The Imagick class
PHP 手册

Imagick::cropThumbnailImage

(PECL imagick 2.0.0)

Imagick::cropThumbnailImage — Creates a crop thumbnail

说明

bool Imagick::cropThumbnailImage ( int $width , int $height )
Warning

本函数暂无文档，仅有参数列表。

Creates a fixed size thumbnail by first scaling the image down and cropping a specified area from the center.

参数

width

The width of the thumbnail

height

The Height of the thumbnail

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::cropImage
Imagick::current
The Imagick class


Returns a reference to the current Imagick object

Imagick::cropThumbnailImage
Imagick::cycleColormapImage
The Imagick class
PHP 手册

Imagick::current

(PECL imagick 2.0.0)

Imagick::current — Returns a reference to the current Imagick object

说明

Imagick Imagick::current ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns reference to the current imagick object with image pointer at the correct sequence.

返回值

Returns self on success, throws ImagickException on failure.

Imagick::cropThumbnailImage
Imagick::cycleColormapImage
The Imagick class


Displaces an image's colormap

Imagick::current
Imagick::deconstructImages
The Imagick class
PHP 手册

Imagick::cycleColormapImage

(PECL imagick 2.0.0)

Imagick::cycleColormapImage — Displaces an image's colormap

说明

bool Imagick::cycleColormapImage ( int $displace )
Warning

本函数暂无文档，仅有参数列表。

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

参数

displace

The amount to displace the colormap.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::current
Imagick::deconstructImages
The Imagick class


Returns certain pixel differences between images

Imagick::cycleColormapImage
Imagick::despeckleImage
The Imagick class
PHP 手册

Imagick::deconstructImages

(PECL imagick 2.0.0)

Imagick::deconstructImages — Returns certain pixel differences between images

说明

bool Imagick::deconstructImages ( void )
Warning

本函数暂无文档，仅有参数列表。

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::cycleColormapImage
Imagick::despeckleImage
The Imagick class


Reduces the speckle noise in an image

Imagick::deconstructImages
Imagick::destroy
The Imagick class
PHP 手册

Imagick::despeckleImage

(PECL imagick 2.0.0)

Imagick::despeckleImage — Reduces the speckle noise in an image

说明

bool Imagick::despeckleImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Reduces the speckle noise in an image while preserving the edges of the original image.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::deconstructImages
Imagick::destroy
The Imagick class


Destroys the Imagick object

Imagick::despeckleImage
Imagick::displayImage
The Imagick class
PHP 手册

Imagick::destroy

(PECL imagick 2.0.0)

Imagick::destroy — Destroys the Imagick object

说明

bool Imagick::destroy ( void )
Warning

本函数暂无文档，仅有参数列表。

Destroys the Imagick object and frees all resources associated with it.

返回值

Returns TRUE on success.

Imagick::despeckleImage
Imagick::displayImage
The Imagick class


Displays an image

Imagick::destroy
Imagick::displayImages
The Imagick class
PHP 手册

Imagick::displayImage

(PECL imagick 2.0.0)

Imagick::displayImage — Displays an image

说明

bool Imagick::displayImage ( string $servername )
Warning

本函数暂无文档，仅有参数列表。

This method displays an image on a X server.

参数

servername

The X server name

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::destroy
Imagick::displayImages
The Imagick class


Displays an image or image sequence

Imagick::displayImage
Imagick::distortImage
The Imagick class
PHP 手册

Imagick::displayImages

(PECL imagick 2.0.0)

Imagick::displayImages — Displays an image or image sequence

说明

bool Imagick::displayImages ( string $servername )
Warning

本函数暂无文档，仅有参数列表。

Displays an image or image sequence on a X server.

参数

servername

The X server name

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::displayImage
Imagick::distortImage
The Imagick class


Distorts an image using various distortion methods

Imagick::displayImages
Imagick::drawImage
The Imagick class
PHP 手册

Imagick::distortImage

(PECL imagick 2.0.1)

Imagick::distortImage — Distorts an image using various distortion methods

说明

bool Imagick::distortImage ( int $method , array $arguments , bool $bestfit )

Distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to TRUE.

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

This functionality is present if Imagick is compiled against ImageMagick 6.3.6 or later.

参数

method

The method of image distortion. See distortion constants

arguments

The arguments for this distortion method

bestfit

Attempt to resize destination to fit distorted source

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::distortImage():

Distort an image and write it to the disk.

<?php
/* Create new object */
$im = new Imagick();

/* Create new checkerboard pattern */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Set the image format to png */
$im->setImageFormat('png');

/* Fill new visible areas with transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Activate matte */
$im->setImageMatte(true);

/* Control points for the distortion */
$controlPoints = array( 10, 10,
                        10, 5,

                        10, $im->getImageHeight() - 20,
                        10, $im->getImageHeight() - 5,

                        $im->getImageWidth() - 10, 10,
                        $im->getImageWidth() - 10, 20,

                        $im->getImageWidth() - 10, $im->getImageHeight() - 10,
                        $im->getImageWidth() - 10, $im->getImageHeight() - 30);

/* Perform the distortion */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Ouput the image */
header("Content-Type: image/png");
echo $im;
?>

参见

  • Imagick::blurImage() - Adds blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image

Imagick::displayImages
Imagick::drawImage
The Imagick class


Renders the ImagickDraw object on the current image

Imagick::distortImage
Imagick::edgeImage
The Imagick class
PHP 手册

Imagick::drawImage

(PECL imagick 2.0.0)

Imagick::drawImage — Renders the ImagickDraw object on the current image

说明

bool Imagick::drawImage ( ImagickDraw $draw )
Warning

本函数暂无文档，仅有参数列表。

Renders the ImagickDraw object on the current image.

参数

draw

The drawing operations to render on the image.

返回值

Returns TRUE on success.

Imagick::distortImage
Imagick::edgeImage
The Imagick class


Enhance edges within the image

Imagick::drawImage
Imagick::embossImage
The Imagick class
PHP 手册

Imagick::edgeImage

(PECL imagick 2.0.0)

Imagick::edgeImage — Enhance edges within the image

说明

bool Imagick::edgeImage ( float $radius )
Warning

本函数暂无文档，仅有参数列表。

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

参数

radius

The radius of the operation.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::drawImage
Imagick::embossImage
The Imagick class


Returns a grayscale image with a three-dimensional effect

Imagick::edgeImage
Imagick::enhanceImage
The Imagick class
PHP 手册

Imagick::embossImage

(PECL imagick 2.0.0)

Imagick::embossImage — Returns a grayscale image with a three-dimensional effect

说明

bool Imagick::embossImage ( float $radius , float $sigma )
Warning

本函数暂无文档，仅有参数列表。

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

参数

radius

The radius of the effect

sigma

The sigma of the effect

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::edgeImage
Imagick::enhanceImage
The Imagick class


Improves the quality of a noisy image

Imagick::embossImage
Imagick::equalizeImage
The Imagick class
PHP 手册

Imagick::enhanceImage

(PECL imagick 2.0.0)

Imagick::enhanceImage — Improves the quality of a noisy image

说明

bool Imagick::enhanceImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Applies a digital filter that improves the quality of a noisy image.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::embossImage
Imagick::equalizeImage
The Imagick class


Equalizes the image histogram

Imagick::enhanceImage
Imagick::evaluateImage
The Imagick class
PHP 手册

Imagick::equalizeImage

(PECL imagick 2.0.0)

Imagick::equalizeImage — Equalizes the image histogram

说明

bool Imagick::equalizeImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Equalizes the image histogram.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::enhanceImage
Imagick::evaluateImage
The Imagick class


Applies an expression to an image

Imagick::equalizeImage
Imagick::flattenImages
The Imagick class
PHP 手册

Imagick::evaluateImage

(PECL imagick 2.0.0)

Imagick::evaluateImage — Applies an expression to an image

说明

bool Imagick::evaluateImage ( int $op , float $constant [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

参数

op

The operator

constant

The value of the operator

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::equalizeImage
Imagick::flattenImages
The Imagick class


Merges a sequence of images

Imagick::evaluateImage
Imagick::flipImage
The Imagick class
PHP 手册

Imagick::flattenImages

(PECL imagick 2.0.0)

Imagick::flattenImages — Merges a sequence of images

说明

Imagick Imagick::flattenImages ( void )
Warning

本函数暂无文档，仅有参数列表。

Merges a sequence of images. This is useful for combining Photoshop layers into a single image.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::evaluateImage
Imagick::flipImage
The Imagick class


Creates a vertical mirror image

Imagick::flattenImages
Imagick::flopImage
The Imagick class
PHP 手册

Imagick::flipImage

(PECL imagick 2.0.0)

Imagick::flipImage — Creates a vertical mirror image

说明

bool Imagick::flipImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::flattenImages
Imagick::flopImage
The Imagick class


Creates a horizontal mirror image

Imagick::flipImage
Imagick::frameImage
The Imagick class
PHP 手册

Imagick::flopImage

(PECL imagick 2.0.0)

Imagick::flopImage — Creates a horizontal mirror image

说明

bool Imagick::flopImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Creates a horizontal mirror image by reflecting the pixels around the central y-axis.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::flipImage
Imagick::frameImage
The Imagick class


Adds a simulated three-dimensional border

Imagick::flopImage
Imagick::fxImage
The Imagick class
PHP 手册

Imagick::frameImage

(PECL imagick 2.0.0)

Imagick::frameImage — Adds a simulated three-dimensional border

说明

bool Imagick::frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )
Warning

本函数暂无文档，仅有参数列表。

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

参数

matte_color

ImagickPixel object or a string representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Imagick::flopImage
Imagick::fxImage
The Imagick class


Evaluate expression for each pixel in the image

Imagick::frameImage
Imagick::gammaImage
The Imagick class
PHP 手册

Imagick::fxImage

(PECL imagick 2.0.0)

Imagick::fxImage — Evaluate expression for each pixel in the image

说明

Imagick Imagick::fxImage ( string $expression [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Evaluate expression for each pixel in the image. Consult » The Fx Special Effects Image Operator for more information.

参数

expression

The expression.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::frameImage
Imagick::gammaImage
The Imagick class


Gamma-corrects an image

Imagick::fxImage
Imagick::gaussianBlurImage
The Imagick class
PHP 手册

Imagick::gammaImage

(PECL imagick 2.0.0)

Imagick::gammaImage — Gamma-corrects an image

说明

bool Imagick::gammaImage ( float $gamma [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

参数

gamma

The amount of gamma-correction.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::fxImage
Imagick::gaussianBlurImage
The Imagick class


Blurs an image

Imagick::gammaImage
Imagick::getCompression
The Imagick class
PHP 手册

Imagick::gaussianBlurImage

(PECL imagick 2.0.0)

Imagick::gaussianBlurImage — Blurs an image

说明

bool Imagick::gaussianBlurImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and selects a suitable radius for you.

参数

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::gammaImage
Imagick::getCompression
The Imagick class


Gets the object compression type

Imagick::gaussianBlurImage
Imagick::getCompressionQuality
The Imagick class
PHP 手册

Imagick::getCompression

(PECL imagick 2.0.0)

Imagick::getCompression — Gets the object compression type

说明

int Imagick::getCompression ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the object compression type.

返回值

Returns TRUE on success.

Imagick::gaussianBlurImage
Imagick::getCompressionQuality
The Imagick class


Gets the object compression quality

Imagick::getCompression
Imagick::getCopyright
The Imagick class
PHP 手册

Imagick::getCompressionQuality

(PECL imagick 2.0.0)

Imagick::getCompressionQuality — Gets the object compression quality

说明

int Imagick::getCompressionQuality ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the object compression quality.

返回值

Returns TRUE on success.

Imagick::getCompression
Imagick::getCopyright
The Imagick class


Returns the ImageMagick API copyright as a string

Imagick::getCompressionQuality
Imagick::getFilename
The Imagick class
PHP 手册

Imagick::getCopyright

(PECL imagick 2.0.0)

Imagick::getCopyright — Returns the ImageMagick API copyright as a string

说明

string Imagick::getCopyright ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the ImageMagick API copyright as a string.

返回值

Returns a string containing the copyright notice of Imagemagick and Magickwand C API.

Imagick::getCompressionQuality
Imagick::getFilename
The Imagick class


The filename associated with an image sequence

Imagick::getCopyright
Imagick::getFormat
The Imagick class
PHP 手册

Imagick::getFilename

(PECL imagick 2.0.0)

Imagick::getFilename — The filename associated with an image sequence

说明

string Imagick::getFilename ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the filename associated with an image sequence.

返回值

Returns a string on success, throws ImagickException on failure.

Imagick::getCopyright
Imagick::getFormat
The Imagick class


Returns the format of the Imagick object

Imagick::getFilename
Imagick::getHomeURL
The Imagick class
PHP 手册

Imagick::getFormat

(PECL imagick 2.0.0)

Imagick::getFormat — Returns the format of the Imagick object

说明

string Imagick::getFormat ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the format of the Imagick object.

返回值

Returns the format of the image and throws an ImagickException on failure.

Imagick::getFilename
Imagick::getHomeURL
The Imagick class


Returns the ImageMagick home URL

Imagick::getFormat
Imagick::getImage
The Imagick class
PHP 手册

Imagick::getHomeURL

(PECL imagick 2.0.0)

Imagick::getHomeURL — Returns the ImageMagick home URL

说明

string Imagick::getHomeURL ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the ImageMagick home URL.

返回值

Returns a link to the imagemagick homepage.

Imagick::getFormat
Imagick::getImage
The Imagick class


Returns a new Imagick object

Imagick::getHomeURL
Imagick::getImageBackgroundColor
The Imagick class
PHP 手册

Imagick::getImage

(PECL imagick 2.0.0)

Imagick::getImage — Returns a new Imagick object

说明

Imagick Imagick::getImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns a new Imagick object with the current image sequence.

返回值

Returns a new Imagick object with the current image sequence, throwing ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::getHomeURL
Imagick::getImageBackgroundColor
The Imagick class


Returns the image background color

Imagick::getImage
Imagick::getImageBlob
The Imagick class
PHP 手册

Imagick::getImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::getImageBackgroundColor — Returns the image background color

说明

ImagickPixel Imagick::getImageBackgroundColor ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image background color.

返回值

Returns an ImagickPixel set to the background color of the image, throws ImagickException on failure.

错误／异常

Throws ImagickException on error.

Imagick::getImage
Imagick::getImageBlob
The Imagick class


Returns the image sequence as a blob

Imagick::getImageBackgroundColor
Imagick::getImageBluePrimary
The Imagick class
PHP 手册

Imagick::getImageBlob

(PECL imagick 2.0.0)

Imagick::getImageBlob — Returns the image sequence as a blob

说明

string Imagick::getImageBlob ( void )
Warning

本函数暂无文档，仅有参数列表。

Implements direct to memory image formats. It returns the image sequence as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

返回值

Returns a string containing the image. On failure, throws ImagickException.

Imagick::getImageBackgroundColor
Imagick::getImageBluePrimary
The Imagick class


Returns the chromaticy blue primary point

Imagick::getImageBlob
Imagick::getImageBorderColor
The Imagick class
PHP 手册

Imagick::getImageBluePrimary

(PECL imagick 2.0.0)

Imagick::getImageBluePrimary — Returns the chromaticy blue primary point

说明

array Imagick::getImageBluePrimary ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Returns the chromaticity blue primary point for the image.

参数

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary x-point.

返回值

Array consisting of "x" and "y" coordinates of point.

错误／异常

Throws ImagickException on error.

Imagick::getImageBlob
Imagick::getImageBorderColor
The Imagick class


Returns the image border color

Imagick::getImageBluePrimary
Imagick::getImageChannelDepth
The Imagick class
PHP 手册

Imagick::getImageBorderColor

(PECL imagick 2.0.0)

Imagick::getImageBorderColor — Returns the image border color

说明

ImagickPixel Imagick::getImageBorderColor ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image border color.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::getImageBluePrimary
Imagick::getImageChannelDepth
The Imagick class


Gets the depth for a particular image channel

Imagick::getImageBorderColor
Imagick::getImageChannelDistortion
The Imagick class
PHP 手册

Imagick::getImageChannelDepth

(PECL imagick 2.0.0)

Imagick::getImageChannelDepth — Gets the depth for a particular image channel

说明

int Imagick::getImageChannelDepth ( int $channelType )
Warning

本函数暂无文档，仅有参数列表。

Gets the depth for a particular image channel.

参数

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

Imagick::getImageBorderColor
Imagick::getImageChannelDistortion
The Imagick class


Compares image channels of an image to a reconstructed image

Imagick::getImageChannelDepth
Imagick::getImageChannelExtrema
The Imagick class
PHP 手册

Imagick::getImageChannelDistortion

(PECL imagick 2.0.0)

Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image

说明

float Imagick::getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )
Warning

本函数暂无文档，仅有参数列表。

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.

参数

reference

Imagick object to compare to.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

metric

One of the metric type constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::getImageChannelDepth
Imagick::getImageChannelExtrema
The Imagick class


Gets the extrema for one or more image channels

Imagick::getImageChannelDistortion
Imagick::getImageChannelMean
The Imagick class
PHP 手册

Imagick::getImageChannelExtrema

(PECL imagick 2.0.0)

Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels

说明

array Imagick::getImageChannelExtrema ( int $channel )
Warning

本函数暂无文档，仅有参数列表。

Gets the extrema for one or more image channels. Return value is an associative array with the keys "minima" and "maxima".

参数

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::getImageChannelDistortion
Imagick::getImageChannelMean
The Imagick class


Gets the mean and standard deviation

Imagick::getImageChannelExtrema
Imagick::getImageChannelStatistics
The Imagick class
PHP 手册

Imagick::getImageChannelMean

(PECL imagick 2.0.0)

Imagick::getImageChannelMean — Gets the mean and standard deviation

说明

array Imagick::getImageChannelMean ( int $channel )
Warning

本函数暂无文档，仅有参数列表。

Gets the mean and standard deviation of one or more image channels. Return value is an associative array with the keys "mean" and "standardDeviation".

参数

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::getImageChannelExtrema
Imagick::getImageChannelStatistics
The Imagick class


Returns statistics for each channel in the image

Imagick::getImageChannelMean
Imagick::getImageColormapColor
The Imagick class
PHP 手册

Imagick::getImageChannelStatistics

(PECL imagick 2.0.0)

Imagick::getImageChannelStatistics — Returns statistics for each channel in the image

说明

array Imagick::getImageChannelStatistics ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, and the standard deviation. You can access the red channel mean, for example, like this:

返回值

Returns TRUE on success.

Imagick::getImageChannelMean
Imagick::getImageColormapColor
The Imagick class


Returns the color of the specified colormap index

Imagick::getImageChannelStatistics
Imagick::getImageColors
The Imagick class
PHP 手册

Imagick::getImageColormapColor

(PECL imagick 2.0.0)

Imagick::getImageColormapColor — Returns the color of the specified colormap index

说明

ImagickPixel Imagick::getImageColormapColor ( int $index )
Warning

本函数暂无文档，仅有参数列表。

Returns the color of the specified colormap index.

参数

index

The offset into the image colormap.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::getImageChannelStatistics
Imagick::getImageColors
The Imagick class


Gets the number of unique colors in the image

Imagick::getImageColormapColor
Imagick::getImageColorspace
The Imagick class
PHP 手册

Imagick::getImageColors

(PECL imagick 2.0.0)

Imagick::getImageColors — Gets the number of unique colors in the image

说明

int Imagick::getImageColors ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the number of unique colors in the image.

返回值

Returns TRUE on success.

Imagick::getImageColormapColor
Imagick::getImageColorspace
The Imagick class


Gets the image colorspace

Imagick::getImageColors
Imagick::getImageCompose
The Imagick class
PHP 手册

Imagick::getImageColorspace

(PECL imagick 2.0.0)

Imagick::getImageColorspace — Gets the image colorspace

说明

int Imagick::getImageColorspace ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image colorspace.

返回值

Returns TRUE on success.

Imagick::getImageColors
Imagick::getImageCompose
The Imagick class


Returns the composite operator associated with the image

Imagick::getImageColorspace
Imagick::getImageDelay
The Imagick class
PHP 手册

Imagick::getImageCompose

(PECL imagick 2.0.0)

Imagick::getImageCompose — Returns the composite operator associated with the image

说明

int Imagick::getImageCompose ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the composite operator associated with the image.

返回值

Returns TRUE on success.

Imagick::getImageColorspace
Imagick::getImageDelay
The Imagick class


Gets the image delay

Imagick::getImageCompose
Imagick::getImageDepth
The Imagick class
PHP 手册

Imagick::getImageDelay

(PECL imagick 2.0.0)

Imagick::getImageDelay — Gets the image delay

说明

int Imagick::getImageDelay ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image delay.

返回值

Returns the image delay and throws ImagickException on failure.

Imagick::getImageCompose
Imagick::getImageDepth
The Imagick class


Gets the image depth

Imagick::getImageDelay
Imagick::getImageDispose
The Imagick class
PHP 手册

Imagick::getImageDepth

(PECL imagick 0.9.1-0.9.9)

Imagick::getImageDepth — Gets the image depth

说明

int Imagick::getImageDepth ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image depth.

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

Imagick::getImageDelay
Imagick::getImageDispose
The Imagick class


Gets the image disposal method

Imagick::getImageDepth
Imagick::getImageDistortion
The Imagick class
PHP 手册

Imagick::getImageDispose

(PECL imagick 2.0.0)

Imagick::getImageDispose — Gets the image disposal method

说明

int Imagick::getImageDispose ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image disposal method.

返回值

Returns the dispose method on success, throws an ImagickException on failure.

Imagick::getImageDepth
Imagick::getImageDistortion
The Imagick class


Compares an image to a reconstructed image

Imagick::getImageDispose
Imagick::getImageExtrema
The Imagick class
PHP 手册

Imagick::getImageDistortion

(PECL imagick 2.0.0)

Imagick::getImageDistortion — Compares an image to a reconstructed image

说明

float Imagick::getImageDistortion ( MagickWand $reference , int $metric )
Warning

本函数暂无文档，仅有参数列表。

Compares an image to a reconstructed image and returns the specified distortion metric.

参数

reference

Imagick object to compare to.

metric

One of the metric type constants.

返回值

Returns the distortion metric used on the image (or the best guess thereof). Throws an exception on error.

错误／异常

Throws ImagickException on error.

Imagick::getImageDispose
Imagick::getImageExtrema
The Imagick class


Gets the extrema for the image

Imagick::getImageDistortion
Imagick::getImageFilename
The Imagick class
PHP 手册

Imagick::getImageExtrema

(PECL imagick 2.0.0)

Imagick::getImageExtrema — Gets the extrema for the image

说明

array Imagick::getImageExtrema ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the extrema for the image. Returns an associative array with the keys "min" and "max".

返回值

Returns an associative array with the keys "min" and "max". Throws ImagickException on failure.

错误／异常

Throws ImagickException on error.

Imagick::getImageDistortion
Imagick::getImageFilename
The Imagick class


Returns the filename of a particular image in a sequence

Imagick::getImageExtrema
Imagick::getImageFormat
The Imagick class
PHP 手册

Imagick::getImageFilename

(PECL imagick 2.0.0)

Imagick::getImageFilename — Returns the filename of a particular image in a sequence

说明

string Imagick::getImageFilename ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the filename of a particular image in a sequence.

返回值

Returns a string with the filename of the image. Throws an ImagickException on failure.

Imagick::getImageExtrema
Imagick::getImageFormat
The Imagick class


Returns the format of a particular image in a sequence

Imagick::getImageFilename
Imagick::getImageGamma
The Imagick class
PHP 手册

Imagick::getImageFormat

(PECL imagick 2.0.0)

Imagick::getImageFormat — Returns the format of a particular image in a sequence

说明

string Imagick::getImageFormat ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the format of a particular image in a sequence.

返回值

Returns a string containing the image format on success, throws ImagickException on failure.

Imagick::getImageFilename
Imagick::getImageGamma
The Imagick class


Gets the image gamma

Imagick::getImageFormat
Imagick::getImageGeometry
The Imagick class
PHP 手册

Imagick::getImageGamma

(PECL imagick 2.0.0)

Imagick::getImageGamma — Gets the image gamma

说明

float Imagick::getImageGamma ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image gamma.

返回值

Returns the image gamma on success, throws ImagickException on failure.

Imagick::getImageFormat
Imagick::getImageGeometry
The Imagick class


Gets the width and height as an associative array

Imagick::getImageGamma
Imagick::getImageGreenPrimary
The Imagick class
PHP 手册

Imagick::getImageGeometry

(PECL imagick 2.0.0)

Imagick::getImageGeometry — Gets the width and height as an associative array

说明

array Imagick::getImageGeometry ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the width and height as an associative array.

返回值

Returns an array with the width/height of the image, throws ImagickException on error.

Imagick::getImageGamma
Imagick::getImageGreenPrimary
The Imagick class


Returns the chromaticy green primary point

Imagick::getImageGeometry
Imagick::getImageHeight
The Imagick class
PHP 手册

Imagick::getImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::getImageGreenPrimary — Returns the chromaticy green primary point

说明

array Imagick::getImageGreenPrimary ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

返回值

Returns an array with the keys "x" and "y" on success, throws an ImagickException on failure.

错误／异常

Throws ImagickException on error.

Imagick::getImageGeometry
Imagick::getImageHeight
The Imagick class


Returns the image height

Imagick::getImageGreenPrimary
Imagick::getImageHistogram
The Imagick class
PHP 手册

Imagick::getImageHeight

(PECL imagick 2.0.0)

Imagick::getImageHeight — Returns the image height

说明

int Imagick::getImageHeight ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image height.

返回值

Returns the image height in pixels, throws ImagickException on error.

Imagick::getImageGreenPrimary
Imagick::getImageHistogram
The Imagick class


Gets the image histogram

Imagick::getImageHeight
Imagick::getImageIndex
The Imagick class
PHP 手册

Imagick::getImageHistogram

(PECL imagick 2.0.0)

Imagick::getImageHistogram — Gets the image histogram

说明

array Imagick::getImageHistogram ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image histogram as an array of ImagickPixel objects.

返回值

Returns the image histogram as an array of ImagickPixel objects, throwing ImagickException on error.

Imagick::getImageHeight
Imagick::getImageIndex
The Imagick class


Gets the index of the current active image

Imagick::getImageHistogram
Imagick::getImageInterlaceScheme
The Imagick class
PHP 手册

Imagick::getImageIndex

(PECL imagick 2.0.0)

Imagick::getImageIndex — Gets the index of the current active image

说明

int Imagick::getImageIndex ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the index of the current active image within the Imagick object. This method has been deprecated. See Imagick::getIteratorIndex

返回值

Returns an integer containing the index of the image in the stack, throwing ImagickException on error.

Imagick::getImageHistogram
Imagick::getImageInterlaceScheme
The Imagick class


Gets the image interlace scheme

Imagick::getImageIndex
Imagick::getImageInterpolateMethod
The Imagick class
PHP 手册

Imagick::getImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getImageInterlaceScheme — Gets the image interlace scheme

说明

int Imagick::getImageInterlaceScheme ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image interlace scheme.

返回值

Returns the interlace scheme as an integer on success, throwing ImagickException on failure.

Imagick::getImageIndex
Imagick::getImageInterpolateMethod
The Imagick class


Returns the interpolation method

Imagick::getImageInterlaceScheme
Imagick::getImageIterations
The Imagick class
PHP 手册

Imagick::getImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::getImageInterpolateMethod — Returns the interpolation method

说明

int Imagick::getImageInterpolateMethod ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the interpolation method for the specified image.

返回值

Returns the interpolate method on success, throws ImagickException on error.

Imagick::getImageInterlaceScheme
Imagick::getImageIterations
The Imagick class


Gets the image iterations

Imagick::getImageInterpolateMethod
Imagick::getImageLength
The Imagick class
PHP 手册

Imagick::getImageIterations

(PECL imagick 2.0.0)

Imagick::getImageIterations — Gets the image iterations

说明

int Imagick::getImageIterations ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image iterations.

返回值

Returns the image iterations as an integer, throws ImagickException on failure.

Imagick::getImageInterpolateMethod
Imagick::getImageLength
The Imagick class


Returns the image length in bytes

Imagick::getImageIterations
Imagick::getImageMagickLicense
The Imagick class
PHP 手册

Imagick::getImageLength

(PECL imagick 2.0.0)

Imagick::getImageLength — Returns the image length in bytes

说明

int Imagick::getImageLength ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image length in bytes

返回值

Returns an int containing the current image size.

Imagick::getImageIterations
Imagick::getImageMagickLicense
The Imagick class


Returns a string containing the ImageMagick license

Imagick::getImageLength
Imagick::getImageMatte
The Imagick class
PHP 手册

Imagick::getImageMagickLicense

(PECL imagick 2.0.0)

Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license

说明

string Imagick::getImageMagickLicense ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns a string containing the ImageMagick license

返回值

Returns a string containing the ImageMagick license.

Imagick::getImageLength
Imagick::getImageMatte
The Imagick class


Return if the image has a matte channel

Imagick::getImageMagickLicense
Imagick::getImageMatteColor
The Imagick class
PHP 手册

Imagick::getImageMatte

(PECL imagick 2.0.0)

Imagick::getImageMatte — Return if the image has a matte channel

说明

int Imagick::getImageMatte ( void )

Returns TRUE if the image has a matte channel otherwise false. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Imagick::getImageMagickLicense
Imagick::getImageMatteColor
The Imagick class


Returns the image matte color

Imagick::getImageMatte
Imagick::getImageOrientation
The Imagick class
PHP 手册

Imagick::getImageMatteColor

(PECL imagick 2.0.0)

Imagick::getImageMatteColor — Returns the image matte color

说明

ImagickPixel Imagick::getImageMatteColor ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image matte color.

返回值

Returns ImagickPixel object on success and throws ImagickException on failure.

错误／异常

Throws ImagickException on error.

Imagick::getImageMatte
Imagick::getImageOrientation
The Imagick class


Gets the image orientation.

Imagick::getImageMatteColor
Imagick::getImagePage
The Imagick class
PHP 手册

Imagick::getImageOrientation

(PECL imagick 2.0.0)

Imagick::getImageOrientation — Gets the image orientation.

说明

int Imagick::getImageOrientation ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image orientation. The return value is one of the orientation constants.

返回值

Returns an int on success, throws ImagickException on failure.

Imagick::getImageMatteColor
Imagick::getImagePage
The Imagick class


Returns the page geometry

Imagick::getImageOrientation
Imagick::getImagePixelColor
The Imagick class
PHP 手册

Imagick::getImagePage

(PECL imagick 2.0.0)

Imagick::getImagePage — Returns the page geometry

说明

array Imagick::getImagePage ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

返回值

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

错误／异常

Throws ImagickException on error.

Imagick::getImageOrientation
Imagick::getImagePixelColor
The Imagick class


Returns the color of the specified pixel

Imagick::getImagePage
Imagick::getImageProfile
The Imagick class
PHP 手册

Imagick::getImagePixelColor

(PECL imagick 2.0.0)

Imagick::getImagePixelColor — Returns the color of the specified pixel

说明

ImagickPixel Imagick::getImagePixelColor ( int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Returns the color of the specified pixel.

参数

x

The x-coordinate of the pixel

y

The y-coordinate of the pixel

返回值

Returns an ImagickPixel instance for the color at the coordinates given, throws ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::getImagePage
Imagick::getImageProfile
The Imagick class


Returns the named image profile

Imagick::getImagePixelColor
Imagick::getImageProfiles
The Imagick class
PHP 手册

Imagick::getImageProfile

(PECL imagick 2.0.0)

Imagick::getImageProfile — Returns the named image profile

说明

string Imagick::getImageProfile ( string $name )
Warning

本函数暂无文档，仅有参数列表。

Returns the named image profile.

参数

name

The name of the profile to return.

返回值

Returns a string containing the image profile, throws ImagickException on error.

Imagick::getImagePixelColor
Imagick::getImageProfiles
The Imagick class


Returns the image profiles

Imagick::getImageProfile
Imagick::getImageProperties
The Imagick class
PHP 手册

Imagick::getImageProfiles

(PECL imagick 2.0.0)

Imagick::getImageProfiles — Returns the image profiles

说明

array Imagick::getImageProfiles ([ string $pattern="*" [, bool $only_names=true ]] )
Warning

本函数暂无文档，仅有参数列表。

Returns all associated profiles that match the pattern. If TRUE is passed as second parameter only the profile names are returned. This method is present if Imagick is compiled against ImageMagick 6.3.5-9 or later.

参数

pattern

The pattern for profile names. Defaults to "*"

only_names

Whether to return only profile names

返回值

Returns an array containing the image profiles or profile names.

Imagick::getImageProfile
Imagick::getImageProperties
The Imagick class


Returns the image properties

Imagick::getImageProfiles
Imagick::getImageProperty
The Imagick class
PHP 手册

Imagick::getImageProperties

(PECL imagick 2.0.0)

Imagick::getImageProperties — Returns the image properties

说明

array Imagick::getImageProperties ([ string $pattern="*" [, bool $only_names=true ]] )
Warning

本函数暂无文档，仅有参数列表。

Returns all associated properties that match the pattern. If TRUE is passed as second parameter only the property names are returned. This method is present if Imagick is compiled against ImageMagick 6.3.5-9 or later.

参数

pattern

The pattern for property names. Defaults to "*"

only_names

Whether to return only property names

返回值

Returns an array containing the image properties or property names.

范例

Example #1 Using Imagick::getImageProperties():

An example of extracting EXIF information.

<?php

/* Create the object */
$im = new imagick("/path/to/example.jpg");

/* Get the EXIF information */
$exifArray = $im->getImageProperties("exif:*");

/* Loop trough the exif properties */
foreach ($exifArray as $name => $property)
{
    echo "{$name} => {$property}<br />\n";
}

?>

Imagick::getImageProfiles
Imagick::getImageProperty
The Imagick class


Returns the named image property

Imagick::getImageProperties
Imagick::getImageRedPrimary
The Imagick class
PHP 手册

Imagick::getImageProperty

(PECL imagick 2.0.0)

Imagick::getImageProperty — Returns the named image property

说明

string Imagick::getImageProperty ( string $name )
Warning

本函数暂无文档，仅有参数列表。

Returns the named image profile.

参数

name

name of the property (for example Exif:DateTime)

返回值

Returns a string containing the image property, false if a property with the given name does not exist.

Imagick::getImageProperties
Imagick::getImageRedPrimary
The Imagick class


Returns the chromaticity red primary point

Imagick::getImageProperty
Imagick::getImageRegion
The Imagick class
PHP 手册

Imagick::getImageRedPrimary

(PECL imagick 2.0.0)

Imagick::getImageRedPrimary — Returns the chromaticity red primary point

说明

array Imagick::getImageRedPrimary ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the chromaticity red primary point as an array with the keys "x" and "y".

返回值

Returns the chromaticity red primary point as an array with the keys "x" and "y", throwing ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::getImageProperty
Imagick::getImageRegion
The Imagick class


Extracts a region of the image

Imagick::getImageRedPrimary
Imagick::getImageRenderingIntent
The Imagick class
PHP 手册

Imagick::getImageRegion

(PECL imagick 2.0.0)

Imagick::getImageRegion — Extracts a region of the image

说明

Imagick Imagick::getImageRegion ( int $width , int $height , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Extracts a region of the image and returns it as a a new Imagick object.

参数

width

The width of the extracted region.

height

The height of the extracted region.

x

X-coordinate of the top-left corner of the extracted region.

y

Y-coordinate of the top-left corner of the extracted region.

返回值

Extracts a region of the image and returns it as a a new wand, throwing ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::getImageRedPrimary
Imagick::getImageRenderingIntent
The Imagick class


Gets the image rendering intent

Imagick::getImageRegion
Imagick::getImageResolution
The Imagick class
PHP 手册

Imagick::getImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::getImageRenderingIntent — Gets the image rendering intent

说明

int Imagick::getImageRenderingIntent ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image rendering intent.

返回值

Returns the image rendering intent, throwing ImagickException on error.

Imagick::getImageRegion
Imagick::getImageResolution
The Imagick class


Gets the image X and Y resolution

Imagick::getImageRenderingIntent
Imagick::getImagesBlob
The Imagick class
PHP 手册

Imagick::getImageResolution

(PECL imagick 2.0.0)

Imagick::getImageResolution — Gets the image X and Y resolution

说明

array Imagick::getImageResolution ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image X and Y resolution.

返回值

Returns the resolution as an array and throws ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::getImageRenderingIntent
Imagick::getImagesBlob
The Imagick class


Returns all image sequences as a blob

Imagick::getImageResolution
Imagick::getImageScene
The Imagick class
PHP 手册

Imagick::getImagesBlob

(PECL imagick 2.0.0)

Imagick::getImagesBlob — Returns all image sequences as a blob

说明

string Imagick::getImagesBlob ( void )
Warning

本函数暂无文档，仅有参数列表。

Implements direct to memory image formats. It returns all image sequences as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

返回值

Returns a string containing the images. On failure, throws ImagickException.

Imagick::getImageResolution
Imagick::getImageScene
The Imagick class


Gets the image scene

Imagick::getImagesBlob
Imagick::getImageSignature
The Imagick class
PHP 手册

Imagick::getImageScene

(PECL imagick 2.0.0)

Imagick::getImageScene — Gets the image scene

说明

int Imagick::getImageScene ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image scene.

返回值

Returns the image scene, throwing ImagickException on error.

Imagick::getImagesBlob
Imagick::getImageSignature
The Imagick class


Generates an SHA-256 message digest

Imagick::getImageScene
Imagick::getImageSize
The Imagick class
PHP 手册

Imagick::getImageSignature

(PECL imagick 2.0.0)

Imagick::getImageSignature — Generates an SHA-256 message digest

说明

string Imagick::getImageSignature ( void )
Warning

本函数暂无文档，仅有参数列表。

Generates an SHA-256 message digest for the image pixel stream.

返回值

Returns a string containing the SHA-256 hash of the file, throwing an ImagickException on error.

Imagick::getImageScene
Imagick::getImageSize
The Imagick class


Returns the image length in bytes

Imagick::getImageSignature
Imagick::getImageTicksPerSecond
The Imagick class
PHP 手册

Imagick::getImageSize

(PECL imagick 2.0.0)

Imagick::getImageSize — Returns the image length in bytes

说明

int Imagick::getImageSize ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image length in bytes

返回值

Returns an int containing the current image size.

Imagick::getImageSignature
Imagick::getImageTicksPerSecond
The Imagick class


Gets the image ticks-per-second

Imagick::getImageSize
Imagick::getImageTotalInkDensity
The Imagick class
PHP 手册

Imagick::getImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::getImageTicksPerSecond — Gets the image ticks-per-second

说明

int Imagick::getImageTicksPerSecond ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image ticks-per-second.

返回值

Returns the image ticks-per-second, throwing ImagickException on error.

Imagick::getImageSize
Imagick::getImageTotalInkDensity
The Imagick class


Gets the image total ink density

Imagick::getImageTicksPerSecond
Imagick::getImageType
The Imagick class
PHP 手册

Imagick::getImageTotalInkDensity

(PECL imagick 2.0.0)

Imagick::getImageTotalInkDensity — Gets the image total ink density

说明

float Imagick::getImageTotalInkDensity ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image total ink density.

返回值

Returns the image total ink density of the image, throwing ImagickException on error.

Imagick::getImageTicksPerSecond
Imagick::getImageType
The Imagick class


Gets the potential image type

Imagick::getImageTotalInkDensity
Imagick::getImageUnits
The Imagick class
PHP 手册

Imagick::getImageType

(PECL imagick 0.9.10-0.9.9)

Imagick::getImageType — Gets the potential image type

说明

int Imagick::getImageType ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the potential image type.

返回值

Retruns the potential image type, throwing ImagickException on error.

Imagick::getImageTotalInkDensity
Imagick::getImageUnits
The Imagick class


Gets the image units of resolution

Imagick::getImageType
Imagick::getImageVirtualPixelMethod
The Imagick class
PHP 手册

Imagick::getImageUnits

(PECL imagick 2.0.0)

Imagick::getImageUnits — Gets the image units of resolution

说明

int Imagick::getImageUnits ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the image units of resolution.

返回值

Returns the image units of resolution, throwing ImagickException on failure.

Imagick::getImageType
Imagick::getImageVirtualPixelMethod
The Imagick class


Returns the virtual pixel method

Imagick::getImageUnits
Imagick::getImageWhitePoint
The Imagick class
PHP 手册

Imagick::getImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method

说明

int Imagick::getImageVirtualPixelMethod ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the virtual pixel method for the specified image.

返回值

Returns the virtual pixel method on success, ImagickException on failure.

Imagick::getImageUnits
Imagick::getImageWhitePoint
The Imagick class


Returns the chromaticity white point

Imagick::getImageVirtualPixelMethod
Imagick::getImageWidth
The Imagick class
PHP 手册

Imagick::getImageWhitePoint

(PECL imagick 2.0.0)

Imagick::getImageWhitePoint — Returns the chromaticity white point

说明

array Imagick::getImageWhitePoint ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the chromaticity white point as an associative array with the keys "x" and "y".

返回值

Returns the chromaticity white point as an associative array with the keys "x" and "y", throws ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::getImageVirtualPixelMethod
Imagick::getImageWidth
The Imagick class


Returns the image width

Imagick::getImageWhitePoint
Imagick::getInterlaceScheme
The Imagick class
PHP 手册

Imagick::getImageWidth

(PECL imagick 2.0.0)

Imagick::getImageWidth — Returns the image width

说明

int Imagick::getImageWidth ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the image width.

返回值

Returns the image width, throwing ImagickException on error.

Imagick::getImageWhitePoint
Imagick::getInterlaceScheme
The Imagick class


Gets the object interlace scheme

Imagick::getImageWidth
Imagick::getIteratorIndex
The Imagick class
PHP 手册

Imagick::getInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getInterlaceScheme — Gets the object interlace scheme

说明

int Imagick::getInterlaceScheme ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the object interlace scheme.

返回值

Gets the wand interlace scheme, throwing ImagickException on error.

Imagick::getImageWidth
Imagick::getIteratorIndex
The Imagick class


Gets the index of the current active image

Imagick::getInterlaceScheme
Imagick::getNumberImages
The Imagick class
PHP 手册

Imagick::getIteratorIndex

(PECL imagick 2.0.0)

Imagick::getIteratorIndex — Gets the index of the current active image

说明

int Imagick::getIteratorIndex ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the index of the current active image within the Imagick object.

返回值

Returns an integer containing the index of the image in the stack, throwing ImagickException on error.

Imagick::getInterlaceScheme
Imagick::getNumberImages
The Imagick class


Returns the number of images in the object

Imagick::getIteratorIndex
Imagick::getOption
The Imagick class
PHP 手册

Imagick::getNumberImages

(PECL imagick 2.0.0)

Imagick::getNumberImages — Returns the number of images in the object

说明

int Imagick::getNumberImages ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the number of images associated with Imagick object.

返回值

Returns the number of images associated with Imagick object, throwing ImagickException on failure.

Imagick::getIteratorIndex
Imagick::getOption
The Imagick class


Returns a value associated with the specified key

Imagick::getNumberImages
Imagick::getPackageName
The Imagick class
PHP 手册

Imagick::getOption

(PECL imagick 2.0.0)

Imagick::getOption — Returns a value associated with the specified key

说明

string Imagick::getOption ( string $key )
Warning

本函数暂无文档，仅有参数列表。

Returns a value associated within the object for the specified key.

参数

key

The name of the option

返回值

Returns a value associated with a wand and the specified key, throwing ImagickException on error.

Imagick::getNumberImages
Imagick::getPackageName
The Imagick class


Returns the ImageMagick package name

Imagick::getOption
Imagick::getPage
The Imagick class
PHP 手册

Imagick::getPackageName

(PECL imagick 2.0.0)

Imagick::getPackageName — Returns the ImageMagick package name

说明

string Imagick::getPackageName ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the ImageMagick package name.

返回值

Returns the ImageMagick package name as a string, throwing ImagickException on error.

Imagick::getOption
Imagick::getPage
The Imagick class


Returns the page geometry

Imagick::getPackageName
Imagick::getPixelIterator
The Imagick class
PHP 手册

Imagick::getPage

(PECL imagick 2.0.0)

Imagick::getPage — Returns the page geometry

说明

array Imagick::getPage ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y".

返回值

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y", throwing ImagickException on error.

Imagick::getPackageName
Imagick::getPixelIterator
The Imagick class


Returns a MagickPixelIterator

Imagick::getPage
Imagick::getPixelRegionIterator
The Imagick class
PHP 手册

Imagick::getPixelIterator

(PECL imagick 2.0.0)

Imagick::getPixelIterator — Returns a MagickPixelIterator

说明

ImagickPixelIterator Imagick::getPixelIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns a MagickPixelIterator.

返回值

Returns an ImagickPixelIterator on success, throwing ImagickException on failure.

Imagick::getPage
Imagick::getPixelRegionIterator
The Imagick class


Get an ImagickPixelIterator for an image section

Imagick::getPixelIterator
Imagick::getQuantumDepth
The Imagick class
PHP 手册

Imagick::getPixelRegionIterator

(PECL imagick 2.0.0)

Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section

说明

ImagickPixelIterator Imagick::getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
Warning

本函数暂无文档，仅有参数列表。

Get an ImagickPixelIterator for an image section.

参数

x

The x-coordinate of the region.

y

The y-coordinate of the region.

columns

The width of the region.

rows

The height of the region.

返回值

Returns an ImagickPixelIterator for an image section, throwing ImagickException on error.

Imagick::getPixelIterator
Imagick::getQuantumDepth
The Imagick class


Gets the quantum depth

Imagick::getPixelRegionIterator
Imagick::getQuantumRange
The Imagick class
PHP 手册

Imagick::getQuantumDepth

(PECL imagick 2.0.0)

Imagick::getQuantumDepth — Gets the quantum depth

说明

array Imagick::getQuantumDepth ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the Imagick quantum depth as a string.

返回值

Returns the Imagick quantum depth as a string, throwing ImagickException on error.

Imagick::getPixelRegionIterator
Imagick::getQuantumRange
The Imagick class


Returns the Imagick quantum range

Imagick::getQuantumDepth
Imagick::getReleaseDate
The Imagick class
PHP 手册

Imagick::getQuantumRange

(PECL imagick 2.0.0)

Imagick::getQuantumRange — Returns the Imagick quantum range

说明

array Imagick::getQuantumRange ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the Imagick quantum range as a string.

返回值

Returns the Imagick quantum range as a string, throwing ImagickException on error.

Imagick::getQuantumDepth
Imagick::getReleaseDate
The Imagick class


Returns the ImageMagick release date

Imagick::getQuantumRange
Imagick::getResource
The Imagick class
PHP 手册

Imagick::getReleaseDate

(PECL imagick 2.0.0)

Imagick::getReleaseDate — Returns the ImageMagick release date

说明

string Imagick::getReleaseDate ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the ImageMagick release date as a string.

返回值

Returns the ImageMagick release date as a string, throwing ImagickException on error.

Imagick::getQuantumRange
Imagick::getResource
The Imagick class


Returns the specified resource's memory usage

Imagick::getReleaseDate
Imagick::getResourceLimit
The Imagick class
PHP 手册

Imagick::getResource

(PECL imagick 2.0.0)

Imagick::getResource — Returns the specified resource's memory usage

说明

int Imagick::getResource ( int $type )
Warning

本函数暂无文档，仅有参数列表。

Returns the specified resource's memory usage in megabytes.

参数

type

Refer to the list of resourcetype constants.

返回值

Returns the specified resource's memory usage in megabytes, throwing ImagickException on error.

Imagick::getReleaseDate
Imagick::getResourceLimit
The Imagick class


Returns the specified resource limit

Imagick::getResource
Imagick::getSamplingFactors
The Imagick class
PHP 手册

Imagick::getResourceLimit

(PECL imagick 2.0.0)

Imagick::getResourceLimit — Returns the specified resource limit

说明

int Imagick::getResourceLimit ( int $type )
Warning

本函数暂无文档，仅有参数列表。

Returns the specified resource limit in megabytes.

参数

type

Refer to the list of resourcetype constants.

返回值

Returns the specified resource limit in megabytes, throwing ImagickException on error.

Imagick::getResource
Imagick::getSamplingFactors
The Imagick class


Gets the horizontal and vertical sampling factor

Imagick::getResourceLimit
Imagick::getSize
The Imagick class
PHP 手册

Imagick::getSamplingFactors

(PECL imagick 2.0.0)

Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor

说明

array Imagick::getSamplingFactors ( void )
Warning

本函数暂无文档，仅有参数列表。

Gets the horizontal and vertical sampling factor.

返回值

Returns an associative array with the horizontal and vertical sampling factors of the image. Throws ImagickException on error.

Imagick::getResourceLimit
Imagick::getSize
The Imagick class


Returns the size associated with the Imagick object

Imagick::getSamplingFactors
Imagick::getSizeOffset
The Imagick class
PHP 手册

Imagick::getSize

(PECL imagick 2.0.0)

Imagick::getSize — Returns the size associated with the Imagick object

说明

array Imagick::getSize ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the size associated with the Imagick object as an array with the keys "columns" and "rows".

返回值

Returns the size associated with the Imagick object as an array with the keys "columns" and "rows".

Imagick::getSamplingFactors
Imagick::getSizeOffset
The Imagick class


Returns the size offset

Imagick::getSize
Imagick::getVersion
The Imagick class
PHP 手册

Imagick::getSizeOffset

(PECL imagick 2.0.0)

Imagick::getSizeOffset — Returns the size offset

说明

int Imagick::getSizeOffset ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the size offset associated with the Imagick object.

返回值

Returns the size offset associated with the Imagick object, throwing ImagickException on error.

Imagick::getSize
Imagick::getVersion
The Imagick class


Returns the ImageMagick API version

Imagick::getSizeOffset
Imagick::hasNextImage
The Imagick class
PHP 手册

Imagick::getVersion

(PECL imagick 2.0.0)

Imagick::getVersion — Returns the ImageMagick API version

说明

array Imagick::getVersion ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the ImageMagick API version as a string and as a number.

返回值

Returns the ImageMagick API version as a string and as a number, throwing ImagickException on error.

Imagick::getSizeOffset
Imagick::hasNextImage
The Imagick class


Checks if the object has more images

Imagick::getVersion
Imagick::hasPreviousImage
The Imagick class
PHP 手册

Imagick::hasNextImage

(PECL imagick 2.0.0)

Imagick::hasNextImage — Checks if the object has more images

说明

bool Imagick::hasNextImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns TRUE if the object has more images when traversing the list in the forward direction.

返回值

Returns TRUE if the object has more images when traversing the list in the forward direction, returns FALSE if there are none.

Imagick::getVersion
Imagick::hasPreviousImage
The Imagick class


Checks if the object has a previous image

Imagick::hasNextImage
Imagick::identifyImage
The Imagick class
PHP 手册

Imagick::hasPreviousImage

(PECL imagick 2.0.0)

Imagick::hasPreviousImage — Checks if the object has a previous image

说明

bool Imagick::hasPreviousImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns TRUE if the object has more images when traversing the list in the reverse direction

返回值

Returns TRUE if the object has more images when traversing the list in the reverse direction, returns FALSE if there are none.

Imagick::hasNextImage
Imagick::identifyImage
The Imagick class


Identifies an image and fetches attributes

Imagick::hasPreviousImage
Imagick::implodeImage
The Imagick class
PHP 手册

Imagick::identifyImage

(PECL imagick 2.0.0)

Imagick::identifyImage — Identifies an image and fetches attributes

说明

array Imagick::identifyImage ([ bool $appendRawOutput=false ] )
Warning

本函数暂无文档，仅有参数列表。

Identifies an image and returns the attributes. Attributes include the image width, height, size, and others.

参数

appendRawOutput

返回值

Identifies an image and returns the attributes. Attributes include the image width, height, size, and others. Throws ImagickException on error.

错误／异常

Throws ImagickException on error.

Imagick::hasPreviousImage
Imagick::implodeImage
The Imagick class


Creates a new image as a copy

Imagick::identifyImage
Imagick::labelImage
The Imagick class
PHP 手册

Imagick::implodeImage

(PECL imagick 2.0.0)

Imagick::implodeImage — Creates a new image as a copy

说明

bool Imagick::implodeImage ( float $radius )
Warning

本函数暂无文档，仅有参数列表。

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

参数

radius

The radius of the implode

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::identifyImage
Imagick::labelImage
The Imagick class


Adds a label to an image

Imagick::implodeImage
Imagick::levelImage
The Imagick class
PHP 手册

Imagick::labelImage

(PECL imagick 2.0.0)

Imagick::labelImage — Adds a label to an image

说明

bool Imagick::labelImage ( string $label )
Warning

本函数暂无文档，仅有参数列表。

Adds a label to an image.

参数

label

The label to add

返回值

Returns TRUE on success.

Imagick::implodeImage
Imagick::levelImage
The Imagick class


Adjusts the levels of an image

Imagick::labelImage
Imagick::linearStretchImage
The Imagick class
PHP 手册

Imagick::levelImage

(PECL imagick 2.0.0)

Imagick::levelImage — Adjusts the levels of an image

说明

bool Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

参数

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::labelImage
Imagick::linearStretchImage
The Imagick class


Stretches with saturation the image intensity

Imagick::levelImage
Imagick::magnifyImage
The Imagick class
PHP 手册

Imagick::linearStretchImage

(PECL imagick 2.0.0)

Imagick::linearStretchImage — Stretches with saturation the image intensity

说明

bool Imagick::linearStretchImage ( float $blackPoint , float $whitePoint )
Warning

本函数暂无文档，仅有参数列表。

Stretches with saturation the image intensity.

参数

blackPoint

The image black point

whitePoint

The image white point

返回值

Returns TRUE on success.

Imagick::levelImage
Imagick::magnifyImage
The Imagick class


Scales an image proportionally 2x

Imagick::linearStretchImage
Imagick::mapImage
The Imagick class
PHP 手册

Imagick::magnifyImage

(PECL imagick 2.0.0)

Imagick::magnifyImage — Scales an image proportionally 2x

说明

bool Imagick::magnifyImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Is a convenience method that scales an image proportionally to twice its original size.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::linearStretchImage
Imagick::mapImage
The Imagick class


Replaces the colors of an image with the closest color from a reference image.

Imagick::magnifyImage
Imagick::matteFloodfillImage
The Imagick class
PHP 手册

Imagick::mapImage

(PECL imagick 2.0.0)

Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image.

说明

bool Imagick::mapImage ( Imagick $map , bool $dither )
Warning

本函数暂无文档，仅有参数列表。

参数

map

dither

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::magnifyImage
Imagick::matteFloodfillImage
The Imagick class


Changes the transparency value of a color

Imagick::mapImage
Imagick::medianFilterImage
The Imagick class
PHP 手册

Imagick::matteFloodfillImage

(PECL imagick 2.0.0)

Imagick::matteFloodfillImage — Changes the transparency value of a color

说明

bool Imagick::matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

参数

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

bordercolor

An ImagickPixel object or string representing the border color.

x

The starting x coordinate of the operation.

y

The starting y coordinate of the operation.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

Imagick::mapImage
Imagick::medianFilterImage
The Imagick class


Applies a digital filter

Imagick::matteFloodfillImage
Imagick::minifyImage
The Imagick class
PHP 手册

Imagick::medianFilterImage

(PECL imagick 2.0.0)

Imagick::medianFilterImage — Applies a digital filter

说明

bool Imagick::medianFilterImage ( float $radius )
Warning

本函数暂无文档，仅有参数列表。

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

参数

radius

The radius of the pixel neighborhood.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::matteFloodfillImage
Imagick::minifyImage
The Imagick class


Scales an image proportionally to half its size

Imagick::medianFilterImage
Imagick::modulateImage
The Imagick class
PHP 手册

Imagick::minifyImage

(PECL imagick 2.0.0)

Imagick::minifyImage — Scales an image proportionally to half its size

说明

bool Imagick::minifyImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Is a convenience method that scales an image proportionally to one-half its original size

返回值

Returns TRUE on success.

Imagick::medianFilterImage
Imagick::modulateImage
The Imagick class


Control the brightness, saturation, and hue

Imagick::minifyImage
Imagick::montageImage
The Imagick class
PHP 手册

Imagick::modulateImage

(PECL imagick 2.0.0)

Imagick::modulateImage — Control the brightness, saturation, and hue

说明

bool Imagick::modulateImage ( float $brightness , float $saturation , float $hue )
Warning

本函数暂无文档，仅有参数列表。

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

参数

brightness

saturation

hue

返回值

Returns TRUE on success.

Imagick::minifyImage
Imagick::montageImage
The Imagick class


Creates a composite image

Imagick::modulateImage
Imagick::morphImages
The Imagick class
PHP 手册

Imagick::montageImage

(PECL imagick 2.0.0)

Imagick::montageImage — Creates a composite image

说明

Imagick Imagick::montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )
Warning

本函数暂无文档，仅有参数列表。

Creates a composite image by combining several separate images. he images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

参数

draw

The font name, size, and color are obtained from this object.

tile_geometry

The number of tiles per row and page (e.g. 6x4+0+0).

thumbnail_geometry

Preferred image size and border size of each thumbnail (e.g. 120x120+4+3>).

mode

Thumbnail framing mode, see Montage Mode constants.

frame

Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.

返回值

Returns TRUE on success.

Imagick::modulateImage
Imagick::morphImages
The Imagick class


Method morphs a set of images

Imagick::montageImage
Imagick::mosaicImages
The Imagick class
PHP 手册

Imagick::morphImages

(PECL imagick 2.0.0)

Imagick::morphImages — Method morphs a set of images

说明

Imagick Imagick::morphImages ( int $number_frames )
Warning

本函数暂无文档，仅有参数列表。

Method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

参数

number_frames

The number of in-between images to generate.

返回值

This method returns a new Imagick object on success and throws an ImagickException on error.

Imagick::montageImage
Imagick::mosaicImages
The Imagick class


Forms a mosaic from images

Imagick::morphImages
Imagick::motionBlurImage
The Imagick class
PHP 手册

Imagick::mosaicImages

(PECL imagick 2.0.0)

Imagick::mosaicImages — Forms a mosaic from images

说明

Imagick Imagick::mosaicImages ( void )
Warning

本函数暂无文档，仅有参数列表。

Inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

返回值

Returns TRUE on success.

Imagick::morphImages
Imagick::motionBlurImage
The Imagick class


Simulates motion blur

Imagick::mosaicImages
Imagick::negateImage
The Imagick class
PHP 手册

Imagick::motionBlurImage

(PECL imagick 2.0.0)

Imagick::motionBlurImage — Simulates motion blur

说明

bool Imagick::motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel=Imagick::CHANNEL_DEFAULT ] )
Warning

本函数暂无文档，仅有参数列表。

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

参数

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants. The channel argument affects only if Imagick is compiled against ImageMagick version 6.4.4 or greater.

返回值

Returns TRUE on success.

Imagick::mosaicImages
Imagick::negateImage
The Imagick class


Negates the colors in the reference image

Imagick::motionBlurImage
Imagick::newImage
The Imagick class
PHP 手册

Imagick::negateImage

(PECL imagick 2.0.0)

Imagick::negateImage — Negates the colors in the reference image

说明

bool Imagick::negateImage ( bool $gray [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

参数

gray

Whether to only negate grayscale pixels within the image.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::motionBlurImage
Imagick::newImage
The Imagick class


Creates a new image

Imagick::negateImage
Imagick::newPseudoImage
The Imagick class
PHP 手册

Imagick::newImage

(PECL imagick 2.0.0)

Imagick::newImage — Creates a new image

说明

bool Imagick::newImage ( int $cols , int $rows , mixed $background [, string $format ] )
Warning

本函数暂无文档，仅有参数列表。

Creates a new image and associates ImagickPixel value as background color

参数

cols

Columns in the new image

rows

Rows in the new image

background

The background color used for this image

format

Image format. This parameter was added in Imagick version 2.0.1.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

范例

Example #1 Using Imagick::newImage():

Create a new image and display it.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>

Imagick::negateImage
Imagick::newPseudoImage
The Imagick class


Creates a new image

Imagick::newImage
Imagick::nextImage
The Imagick class
PHP 手册

Imagick::newPseudoImage

(PECL imagick 2.0.0)

Imagick::newPseudoImage — Creates a new image

说明

bool Imagick::newPseudoImage ( int $columns , int $rows , string $pseudoString )
Warning

本函数暂无文档，仅有参数列表。

Creates a new image using ImageMagick pseudo-formats.

参数

columns

columns in the new image

rows

rows in the new image

pseudoString

string containing pseudo image definition.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::newImage
Imagick::nextImage
The Imagick class


Moves to the next image

Imagick::newPseudoImage
Imagick::normalizeImage
The Imagick class
PHP 手册

Imagick::nextImage

(PECL imagick 2.0.0)

Imagick::nextImage — Moves to the next image

说明

bool Imagick::nextImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Associates the next image in the image list with an Imagick object.

返回值

Returns TRUE on success.

Imagick::newPseudoImage
Imagick::normalizeImage
The Imagick class


Enhances the contrast of a color image

Imagick::nextImage
Imagick::oilPaintImage
The Imagick class
PHP 手册

Imagick::normalizeImage

(PECL imagick 2.0.0)

Imagick::normalizeImage — Enhances the contrast of a color image

说明

bool Imagick::normalizeImage ([ int $channel ] )
Warning

本函数暂无文档，仅有参数列表。

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

参数

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

Imagick::nextImage
Imagick::oilPaintImage
The Imagick class


Simulates an oil painting

Imagick::normalizeImage
Imagick::optimizeImageLayers
The Imagick class
PHP 手册

Imagick::oilPaintImage

(PECL imagick 2.0.0)

Imagick::oilPaintImage — Simulates an oil painting

说明

bool Imagick::oilPaintImage ( float $radius )
Warning

本函数暂无文档，仅有参数列表。

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

参数

radius

The radius of the circular neighborhood.

返回值

Returns TRUE on success.

Imagick::normalizeImage
Imagick::optimizeImageLayers
The Imagick class


Removes repeated portions of images to optimize

Imagick::oilPaintImage
Imagick::orderedPosterizeImage
The Imagick class
PHP 手册

Imagick::optimizeImageLayers

(PECL imagick 2.0.0)

Imagick::optimizeImageLayers — Removes repeated portions of images to optimize

说明

bool Imagick::optimizeImageLayers ( void )

Compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::optimizeImageLayers()

Reading, optimizing and writing a GIF image

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$im->optimizeImageLayers();

/* write the image back */
$im->writeImages("test_optimized.gif", true);
?>

参见

  • Imagick::compareImageLayers() - Returns the maximum bounding region between images
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImagesFile()

Imagick::oilPaintImage
Imagick::orderedPosterizeImage
The Imagick class


Performs an ordered dither

Imagick::optimizeImageLayers
Imagick::colorFloodfillImage
The Imagick class
PHP 手册

Imagick::orderedPosterizeImage

(PECL imagick 2.2.2)

Imagick::orderedPosterizeImage — Performs an ordered dither

说明

bool Imagick::orderedPosterizeImage ( string $threshold_map [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments.

参数

threshold_map

A string containing the name of the threshold dither map to use

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::optimizeImageLayers
Imagick::colorFloodfillImage
The Imagick class


Changes the color value of any pixel that matches target

Imagick::orderedPosterizeImage
Imagick::paintOpaqueImage
The Imagick class
PHP 手册

Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target

说明

bool Imagick::paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Changes the color value of any pixel that matches target and is an immediate neighbor.

参数

fill

ImagickPixel object or a string containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object or a string containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

Imagick::orderedPosterizeImage
Imagick::paintOpaqueImage
The Imagick class


Change any pixel that matches color

Imagick::colorFloodfillImage
Imagick::paintTransparentImage
The Imagick class
PHP 手册

Imagick::paintOpaqueImage

(PECL imagick 2.0.0)

Imagick::paintOpaqueImage — Change any pixel that matches color

说明

bool Imagick::paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Changes any pixel that matches color with the color defined by fill.

参数

target

Change this target color to the fill color within the image. An ImagickPixel object or a string representing the target color.

fill

An ImagickPixel object or a string representing the fill color.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Defaults to Imagick::CHANNEL_ALL. Refer to this list of channel constants.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as first and second parameter. Previous versions allow only an ImagickPixel object.

Imagick::colorFloodfillImage
Imagick::paintTransparentImage
The Imagick class


Changes any pixel that matches color with the color defined by fill

Imagick::paintOpaqueImage
Imagick::pingImage
The Imagick class
PHP 手册

Imagick::paintTransparentImage

(PECL imagick 2.0.0)

Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill

说明

bool Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
Warning

本函数暂无文档，仅有参数列表。

Changes any pixel that matches color with the color defined by fill.

参数

target

Change this target color to specified opacity value within the image.

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Imagick::paintOpaqueImage
Imagick::pingImage
The Imagick class


Fetch basic attributes about the image

Imagick::paintTransparentImage
Imagick::pingImageBlob
The Imagick class
PHP 手册

Imagick::pingImage

(PECL imagick 2.0.0)

Imagick::pingImage — Fetch basic attributes about the image

说明

bool Imagick::pingImage ( string $filename )
Warning

本函数暂无文档，仅有参数列表。

This method can be used to query image width, height, size, and format without reading the whole image in to memory.

参数

filename

The filename to read the information from.

返回值

Returns TRUE on success.

Imagick::paintTransparentImage
Imagick::pingImageBlob
The Imagick class


Quickly fetch attributes

Imagick::pingImage
Imagick::pingImageFile
The Imagick class
PHP 手册

Imagick::pingImageBlob

(PECL imagick 2.0.0)

Imagick::pingImageBlob — Quickly fetch attributes

说明

bool Imagick::pingImageBlob ( string $image )

This method can be used to query image width, height, size, and format without reading the whole image to memory. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

image

A string containing the image.

返回值

Returns TRUE on success.

范例

Example #1 Using Imagick::pingImageBlob()

Pinging an image from a string

<?php
/* read image contents */
$image = file_get_contents("test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the string to the imagick object */
$im->pingImageBlob($image);

/* output image width and height */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

参见

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageFile() - Get basic image attributes in a lightweight manner
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle

Imagick::pingImage
Imagick::pingImageFile
The Imagick class


Get basic image attributes in a lightweight manner

Imagick::pingImageBlob
Imagick::polaroidImage
The Imagick class
PHP 手册

Imagick::pingImageFile

(PECL imagick 2.0.0)

Imagick::pingImageFile — Get basic image attributes in a lightweight manner

说明

bool Imagick::pingImageFile ( resource $filehandle [, string $fileName ] )

This method can be used to query image width, height, size, and format without reading the whole image to memory. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

filehandle

An open filehandle to the image.

fileName

Optional filename for this image.

返回值

Returns TRUE on success.

范例

Example #1 Using Imagick::pingImageFile()

Opening a remote location

<?php
/* fopen a remote location */
$fp = fopen("http://example.com/test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the handle to imagick */
$im->pingImageFile($fp);
?>

参见

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageBlob() - Quickly fetch attributes
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle

Imagick::pingImageBlob
Imagick::polaroidImage
The Imagick class


Simulates a Polaroid picture

Imagick::pingImageFile
Imagick::posterizeImage
The Imagick class
PHP 手册

Imagick::polaroidImage

(PECL imagick 2.0.0)

Imagick::polaroidImage — Simulates a Polaroid picture

说明

bool Imagick::polaroidImage ( ImagickDraw $properties , float $angle )
Warning

本函数暂无文档，仅有参数列表。

Simulates a Polaroid picture. This method is available if you compile Imagick against ImageMagick 6.3.2 or later.

参数

properties

The polaroid properties

angle

The polaroid angle

返回值

Returns TRUE on success.

Imagick::pingImageFile
Imagick::posterizeImage
The Imagick class


Reduces the image to a limited number of color level

Imagick::polaroidImage
Imagick::previewImages
The Imagick class
PHP 手册

Imagick::posterizeImage

(PECL imagick 2.0.0)

Imagick::posterizeImage — Reduces the image to a limited number of color level

说明

bool Imagick::posterizeImage ( int $levels , bool $dither )
Warning

本函数暂无文档，仅有参数列表。

Reduces the image to a limited number of color level.

参数

levels

dither

返回值

Returns TRUE on success.

Imagick::polaroidImage
Imagick::previewImages
The Imagick class


Quickly pin-point appropriate parameters for image processing

Imagick::posterizeImage
Imagick::previousImage
The Imagick class
PHP 手册

Imagick::previewImages

(PECL imagick 2.0.0)

Imagick::previewImages — Quickly pin-point appropriate parameters for image processing

说明

bool Imagick::previewImages ( int $preview )
Warning

本函数暂无文档，仅有参数列表。

Tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This is helpful to quickly pin-point an appropriate parameter for an image processing operation.

参数

preview

Preview type. See Preview type constants

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::posterizeImage
Imagick::previousImage
The Imagick class


Move to the previous image in the object

Imagick::previewImages
Imagick::profileImage
The Imagick class
PHP 手册

Imagick::previousImage

(PECL imagick 2.0.0)

Imagick::previousImage — Move to the previous image in the object

说明

bool Imagick::previousImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Assocates the previous image in an image list with the Imagick object.

返回值

Returns TRUE on success.

Imagick::previewImages
Imagick::profileImage
The Imagick class


Adds or removes a profile from an image

Imagick::previousImage
Imagick::quantizeImage
The Imagick class
PHP 手册

Imagick::profileImage

(PECL imagick 2.0.0)

Imagick::profileImage — Adds or removes a profile from an image

说明

bool Imagick::profileImage ( string $name , string $profile )
Warning

本函数暂无文档，仅有参数列表。

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

参数

name

profile

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::previousImage
Imagick::quantizeImage
The Imagick class


Analyzes the colors within a reference image

Imagick::profileImage
Imagick::quantizeImages
The Imagick class
PHP 手册

Imagick::quantizeImage

(PECL imagick 2.0.0)

Imagick::quantizeImage — Analyzes the colors within a reference image

说明

bool Imagick::quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
Warning

本函数暂无文档，仅有参数列表。

参数

numberColors

colorspace

treedepth

dither

measureError

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::profileImage
Imagick::quantizeImages
The Imagick class


Analyzes the colors within a sequence of images

Imagick::quantizeImage
Imagick::queryFontMetrics
The Imagick class
PHP 手册

Imagick::quantizeImages

(PECL imagick 2.0.0)

Imagick::quantizeImages — Analyzes the colors within a sequence of images

说明

bool Imagick::quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
Warning

本函数暂无文档，仅有参数列表。

参数

numberColors

colorspace

treedepth

dither

measureError

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::quantizeImage
Imagick::queryFontMetrics
The Imagick class


Returns an array representing the font metrics

Imagick::quantizeImages
Imagick::queryFonts
The Imagick class
PHP 手册

Imagick::queryFontMetrics

(PECL imagick 2.0.0)

Imagick::queryFontMetrics — Returns an array representing the font metrics

说明

array Imagick::queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )
Warning

本函数暂无文档，仅有参数列表。

Returns a multi-dimensional array representing the font metrics.

参数

properties

ImagickDraw object containing font properties

text

The text

multiline

Multiline parameter. If left empty it is autodetected

返回值

Returns an array containing the formats supported by Imagick, throws ImagickException on error.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::queryFontMetrics():

Query the metrics for the text and dump the results on the screen.

<?php
/* Create a new Imagick object */
$im = new Imagick();

/* Create an ImagickDraw object */
$draw = new ImagickDraw();

/* Set the font */
$draw->setFont('/path/to/font.ttf');

/* Dump the font metrics, autodetect multiline */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>

Imagick::quantizeImages
Imagick::queryFonts
The Imagick class


Returns the configured fonts

Imagick::queryFontMetrics
Imagick::queryFormats
The Imagick class
PHP 手册

Imagick::queryFonts

(PECL imagick 2.0.0)

Imagick::queryFonts — Returns the configured fonts

说明

array Imagick::queryFonts ([ string $pattern="*" ] )
Warning

本函数暂无文档，仅有参数列表。

Returns formats supported by Imagick.

参数

pattern

The query pattern

返回值

Returns an array containing the configured fonts, throws ImagickException on error.

Imagick::queryFontMetrics
Imagick::queryFormats
The Imagick class


Returns formats supported by Imagick

Imagick::queryFonts
Imagick::radialBlurImage
The Imagick class
PHP 手册

Imagick::queryFormats

(PECL imagick 2.0.0)

Imagick::queryFormats — Returns formats supported by Imagick

说明

array Imagick::queryFormats ([ string $pattern="*" ] )
Warning

本函数暂无文档，仅有参数列表。

Returns formats supported by Imagick.

参数

pattern

返回值

Returns an array containing the formats supported by Imagick, throws ImagickException on error.

Imagick::queryFonts
Imagick::radialBlurImage
The Imagick class


Radial blurs an image

Imagick::queryFormats
Imagick::raiseImage
The Imagick class
PHP 手册

Imagick::radialBlurImage

(PECL imagick 2.0.0)

Imagick::radialBlurImage — Radial blurs an image

说明

bool Imagick::radialBlurImage ( float $angle [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Radial blurs an image.

参数

angle

channel

返回值

Returns TRUE on success.

Imagick::queryFormats
Imagick::raiseImage
The Imagick class


Creates a simulated 3d button-like effect

Imagick::radialBlurImage
Imagick::randomThresholdImage
The Imagick class
PHP 手册

Imagick::raiseImage

(PECL imagick 2.0.0)

Imagick::raiseImage — Creates a simulated 3d button-like effect

说明

bool Imagick::raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
Warning

本函数暂无文档，仅有参数列表。

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

参数

width

height

x

y

raise

返回值

Returns TRUE on success.

Imagick::radialBlurImage
Imagick::randomThresholdImage
The Imagick class


Creates a high-contrast, two-color image

Imagick::raiseImage
Imagick::readImage
The Imagick class
PHP 手册

Imagick::randomThresholdImage

(PECL imagick 2.0.0)

Imagick::randomThresholdImage — Creates a high-contrast, two-color image

说明

bool Imagick::randomThresholdImage ( float $low , float $high [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

参数

low

high

channel

返回值

Returns TRUE on success.

Imagick::raiseImage
Imagick::readImage
The Imagick class


Reads image from filename

Imagick::randomThresholdImage
Imagick::readImageBlob
The Imagick class
PHP 手册

Imagick::readImage

(PECL imagick 0.9.0-0.9.9)

Imagick::readImage — Reads image from filename

说明

bool Imagick::readImage ( string $filename )
Warning

本函数暂无文档，仅有参数列表。

Reads image from filename

参数

filename

返回值

Returns TRUE on success.

Imagick::randomThresholdImage
Imagick::readImageBlob
The Imagick class


Reads image from a binary string

Imagick::readImage
Imagick::readImageFile
The Imagick class
PHP 手册

Imagick::readImageBlob

(PECL imagick 2.0.0)

Imagick::readImageBlob — Reads image from a binary string

说明

bool Imagick::readImageBlob ( string $image [, string $filename ] )
Warning

本函数暂无文档，仅有参数列表。

Reads image from a binary string

参数

image

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::readImage
Imagick::readImageFile
The Imagick class


Reads image from open filehandle

Imagick::readImageBlob
Imagick::reduceNoiseImage
The Imagick class
PHP 手册

Imagick::readImageFile

(PECL imagick 2.0.0)

Imagick::readImageFile — Reads image from open filehandle

说明

bool Imagick::readImageFile ( resource $filehandle [, string $fileName ] )
Warning

本函数暂无文档，仅有参数列表。

Reads image from open filehandle

参数

filehandle

fileName

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::readImageBlob
Imagick::reduceNoiseImage
The Imagick class


Smooths the contours of an image

Imagick::readImageFile
Imagick::removeImage
The Imagick class
PHP 手册

Imagick::reduceNoiseImage

(PECL imagick 2.0.0)

Imagick::reduceNoiseImage — Smooths the contours of an image

说明

bool Imagick::reduceNoiseImage ( float $radius )
Warning

本函数暂无文档，仅有参数列表。

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Imagick::reduceNoiseImage() selects a suitable radius for you.

参数

radius

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::readImageFile
Imagick::removeImage
The Imagick class


Removes an image from the image list

Imagick::reduceNoiseImage
Imagick::removeImageProfile
The Imagick class
PHP 手册

Imagick::removeImage

(PECL imagick 2.0.0)

Imagick::removeImage — Removes an image from the image list

说明

bool Imagick::removeImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Removes an image from the image list.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::reduceNoiseImage
Imagick::removeImageProfile
The Imagick class


Removes the named image profile and returns it

Imagick::removeImage
Imagick::render
The Imagick class
PHP 手册

Imagick::removeImageProfile

(PECL imagick 2.0.0)

Imagick::removeImageProfile — Removes the named image profile and returns it

说明

string Imagick::removeImageProfile ( string $name )
Warning

本函数暂无文档，仅有参数列表。

Removes the named image profile and returns it.

参数

name

返回值

Returns a string containing the profile of the image, throwing ImagickException on error.

Imagick::removeImage
Imagick::render
The Imagick class


Renders all preceding drawing commands

Imagick::removeImageProfile
Imagick::resampleImage
The Imagick class
PHP 手册

Imagick::render

(PECL imagick 2.0.0)

Imagick::render — Renders all preceding drawing commands

说明

bool Imagick::render ( void )
Warning

本函数暂无文档，仅有参数列表。

Renders all preceding drawing commands.

返回值

Returns TRUE on success.

Imagick::removeImageProfile
Imagick::resampleImage
The Imagick class


Resample image to desired resolution

Imagick::render
Imagick::resizeImage
The Imagick class
PHP 手册

Imagick::resampleImage

(PECL imagick 2.0.0)

Imagick::resampleImage — Resample image to desired resolution

说明

bool Imagick::resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )
Warning

本函数暂无文档，仅有参数列表。

Resample image to desired resolution.

参数

x_resolution

y_resolution

filter

blur

返回值

Returns TRUE on success.

Imagick::render
Imagick::resizeImage
The Imagick class


Scales an image

Imagick::resampleImage
Imagick::rollImage
The Imagick class
PHP 手册

Imagick::resizeImage

(PECL imagick 2.0.0)

Imagick::resizeImage — Scales an image

说明

bool Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $fit=false ] )
Warning

本函数暂无文档，仅有参数列表。

Scales an image to the desired dimensions with a filter.

参数

columns

Width of the image

rows

Height of the image

filter

Refer to the list of filter constants.

blur

The blur factor where > 1 is blurry, < 1 is sharp.

fit

Optional fit parameter. Defaults to false.

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Imagick::resampleImage
Imagick::rollImage
The Imagick class


Offsets an image

Imagick::resizeImage
Imagick::rotateImage
The Imagick class
PHP 手册

Imagick::rollImage

(PECL imagick 2.0.0)

Imagick::rollImage — Offsets an image

说明

bool Imagick::rollImage ( int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Offsets an image as defined by x and y.

参数

x

The X offset.

y

The Y offset.

返回值

Returns TRUE on success.

Imagick::resizeImage
Imagick::rotateImage
The Imagick class


Rotates an image

Imagick::rollImage
Imagick::roundCorners
The Imagick class
PHP 手册

Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImage — Rotates an image

说明

bool Imagick::rotateImage ( mixed $background , float $degrees )
Warning

本函数暂无文档，仅有参数列表。

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

参数

background

The background color

degrees

The number of degrees to rotate the image

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Imagick::rollImage
Imagick::roundCorners
The Imagick class


Rounds image corners

Imagick::rotateImage
Imagick::sampleImage
The Imagick class
PHP 手册

Imagick::roundCorners

(PECL imagick 2.0.0)

Imagick::roundCorners — Rounds image corners

说明

bool Imagick::roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width=10 [, float $displace=5 [, float $size_correction=-6 ]]] )
Warning

本函数暂无文档，仅有参数列表。

Rounds image corners. Three last parameters are optional and rarely needed.

参数

x_rounding

x rounding

y_rounding

y rounding

stroke_width

stroke width

displace

image displace

size_correction

size correction

返回值

Returns TRUE on success.

Imagick::rotateImage
Imagick::sampleImage
The Imagick class


Scales an image with pixel sampling

Imagick::roundCorners
Imagick::scaleImage
The Imagick class
PHP 手册

Imagick::sampleImage

(PECL imagick 2.0.0)

Imagick::sampleImage — Scales an image with pixel sampling

说明

bool Imagick::sampleImage ( int $columns , int $rows )
Warning

本函数暂无文档，仅有参数列表。

Scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

参数

columns

rows

返回值

Returns TRUE on success.

Imagick::roundCorners
Imagick::scaleImage
The Imagick class


Scales the size of an image

Imagick::sampleImage
Imagick::separateImageChannel
The Imagick class
PHP 手册

Imagick::scaleImage

(PECL imagick 2.0.0)

Imagick::scaleImage — Scales the size of an image

说明

bool Imagick::scaleImage ( int $cols , int $rows [, bool $fit=false ] )
Warning

本函数暂无文档，仅有参数列表。

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

参数

cols

rows

fit

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Imagick::sampleImage
Imagick::separateImageChannel
The Imagick class


Separates a channel from the image

Imagick::scaleImage
Imagick::sepiaToneImage
The Imagick class
PHP 手册

Imagick::separateImageChannel

(PECL imagick 2.0.0)

Imagick::separateImageChannel — Separates a channel from the image

说明

bool Imagick::separateImageChannel ( int $channel )
Warning

本函数暂无文档，仅有参数列表。

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

参数

channel

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::scaleImage
Imagick::sepiaToneImage
The Imagick class


Sepia tones an image

Imagick::separateImageChannel
Imagick::setBackgroundColor
The Imagick class
PHP 手册

Imagick::sepiaToneImage

(PECL imagick 2.0.0)

Imagick::sepiaToneImage — Sepia tones an image

说明

bool Imagick::sepiaToneImage ( float $threshold )
Warning

本函数暂无文档，仅有参数列表。

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

参数

threshold

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::separateImageChannel
Imagick::setBackgroundColor
The Imagick class


Sets the object's default background color

Imagick::sepiaToneImage
Imagick::setCompression
The Imagick class
PHP 手册

Imagick::setBackgroundColor

(PECL imagick 2.0.0)

Imagick::setBackgroundColor — Sets the object's default background color

说明

bool Imagick::setBackgroundColor ( mixed $background )
Warning

本函数暂无文档，仅有参数列表。

Sets the object's default background color.

参数

background

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Imagick::sepiaToneImage
Imagick::setCompression
The Imagick class


Sets the object's default compression type

Imagick::setBackgroundColor
Imagick::setCompressionQuality
The Imagick class
PHP 手册

Imagick::setCompression

(PECL imagick 2.0.0)

Imagick::setCompression — Sets the object's default compression type

说明

bool Imagick::setCompression ( int $compression )
Warning

本函数暂无文档，仅有参数列表。

Sets the object's default compression type

参数

compression

返回值

Returns TRUE on success.

Imagick::setBackgroundColor
Imagick::setCompressionQuality
The Imagick class


Sets the object's default compression quality

Imagick::setCompression
Imagick::setFilename
The Imagick class
PHP 手册

Imagick::setCompressionQuality

(PECL imagick 0.9.10-0.9.9)

Imagick::setCompressionQuality — Sets the object's default compression quality

说明

bool Imagick::setCompressionQuality ( int $quality )
Warning

本函数暂无文档，仅有参数列表。

Sets the object's default compression quality.

参数

quality

返回值

Returns TRUE on success.

Imagick::setCompression
Imagick::setFilename
The Imagick class


Sets the filename before you read or write the image

Imagick::setCompressionQuality
Imagick::setFirstIterator
The Imagick class
PHP 手册

Imagick::setFilename

(PECL imagick 2.0.0)

Imagick::setFilename — Sets the filename before you read or write the image

说明

bool Imagick::setFilename ( string $filename )
Warning

本函数暂无文档，仅有参数列表。

Sets the filename before you read or write an image file.

参数

filename

返回值

Returns TRUE on success.

Imagick::setCompressionQuality
Imagick::setFirstIterator
The Imagick class


Sets the Imagick iterator to the first image

Imagick::setFilename
Imagick::setFont
The Imagick class
PHP 手册

Imagick::setFirstIterator

(PECL imagick 2.0.0)

Imagick::setFirstIterator — Sets the Imagick iterator to the first image

说明

bool Imagick::setFirstIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Sets the Imagick iterator to the first image.

返回值

Returns TRUE on success.

Imagick::setFilename
Imagick::setFont
The Imagick class


Sets the image bias for any method that convolves an image

Imagick::setFirstIterator
Imagick::setFormat
The Imagick class
PHP 手册

Imagick::setFont

(PECL imagick 2.1.0)

Imagick::setFont — Sets the image bias for any method that convolves an image

说明

bool Imagick::setFont ( string $font )
Warning

本函数暂无文档，仅有参数列表。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets object's font property. This method can be used for example to set font for caption: pseudo-format. This method is available if Imagick is compile against at least version 6.3.6-4 of ImageMagick.

参数

font

Font name or a filename

返回值

Returns TRUE on success.

范例

Example #1 A Imagick::setFont() example

Example of using Imagick::setFont

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>

Imagick::setFirstIterator
Imagick::setFormat
The Imagick class


Sets the format of the Imagick object

Imagick::setFont
Imagick::setImage
The Imagick class
PHP 手册

Imagick::setFormat

(PECL imagick 2.0.0)

Imagick::setFormat — Sets the format of the Imagick object

说明

bool Imagick::setFormat ( string $format )
Warning

本函数暂无文档，仅有参数列表。

Sets the format of the Imagick object.

参数

format

返回值

Returns TRUE on success.

Imagick::setFont
Imagick::setImage
The Imagick class


Replaces image in the object

Imagick::setFormat
Imagick::setImageBackgroundColor
The Imagick class
PHP 手册

Imagick::setImage

(PECL imagick 2.0.0)

Imagick::setImage — Replaces image in the object

说明

bool Imagick::setImage ( Imagick $replace )
Warning

本函数暂无文档，仅有参数列表。

Replaces the current image sequence with the image from replace object.

参数

replace

The replace Imagick object

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 A Imagick::setImage() example

An example of using Imagick::setImage()

<?php
/* Create the objects */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg is replaced with replace.jpg */
$image->setImage($replace);

/* output the image */
header('Content-type: image/jpeg');
echo $image;

?>

Imagick::setFormat
Imagick::setImageBackgroundColor
The Imagick class


Sets the image background color

Imagick::setImage
Imagick::setImageBias
The Imagick class
PHP 手册

Imagick::setImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::setImageBackgroundColor — Sets the image background color

说明

bool Imagick::setImageBackgroundColor ( mixed $background )
Warning

本函数暂无文档，仅有参数列表。

Sets the image background color.

参数

background

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.

Imagick::setImage
Imagick::setImageBias
The Imagick class


Sets the image bias for any method that convolves an image

Imagick::setImageBackgroundColor
Imagick::setImageBluePrimary
The Imagick class
PHP 手册

Imagick::setImageBias

(PECL imagick 2.0.0)

Imagick::setImageBias — Sets the image bias for any method that convolves an image

说明

bool Imagick::setImageBias ( float $bias )
Warning

本函数暂无文档，仅有参数列表。

Sets the image bias for any method that convolves an image (e.g. Imagick::ConvolveImage()).

参数

bias

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageBackgroundColor
Imagick::setImageBluePrimary
The Imagick class


Sets the image chromaticity blue primary point

Imagick::setImageBias
Imagick::setImageBorderColor
The Imagick class
PHP 手册

Imagick::setImageBluePrimary

(PECL imagick 2.0.0)

Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point

说明

bool Imagick::setImageBluePrimary ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Sets the image chromaticity blue primary point.

参数

x

y

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageBias
Imagick::setImageBorderColor
The Imagick class


Sets the image border color

Imagick::setImageBluePrimary
Imagick::setImageChannelDepth
The Imagick class
PHP 手册

Imagick::setImageBorderColor

(PECL imagick 2.0.0)

Imagick::setImageBorderColor — Sets the image border color

说明

bool Imagick::setImageBorderColor ( mixed $border )
Warning

本函数暂无文档，仅有参数列表。

Sets the image border color.

参数

border

The border color

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Imagick::setImageBluePrimary
Imagick::setImageChannelDepth
The Imagick class


Sets the depth of a particular image channel

Imagick::setImageBorderColor
Imagick::setImageColormapColor
The Imagick class
PHP 手册

Imagick::setImageChannelDepth

(PECL imagick 2.0.0)

Imagick::setImageChannelDepth — Sets the depth of a particular image channel

说明

bool Imagick::setImageChannelDepth ( int $channel , int $depth )
Warning

本函数暂无文档，仅有参数列表。

Sets the depth of a particular image channel.

参数

channel

depth

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageBorderColor
Imagick::setImageColormapColor
The Imagick class


Sets the color of the specified colormap index

Imagick::setImageChannelDepth
Imagick::setImageColorspace
The Imagick class
PHP 手册

Imagick::setImageColormapColor

(PECL imagick 2.0.0)

Imagick::setImageColormapColor — Sets the color of the specified colormap index

说明

bool Imagick::setImageColormapColor ( int $index , ImagickPixel $color )
Warning

本函数暂无文档，仅有参数列表。

Sets the color of the specified colormap index.

参数

index

color

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageChannelDepth
Imagick::setImageColorspace
The Imagick class


Sets the image colorspace

Imagick::setImageColormapColor
Imagick::setImageCompose
The Imagick class
PHP 手册

Imagick::setImageColorspace

(PECL imagick 2.0.0)

Imagick::setImageColorspace — Sets the image colorspace

说明

bool Imagick::setImageColorspace ( int $colorspace )
Warning

本函数暂无文档，仅有参数列表。

Sets the image colorspace.

参数

colorspace

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageColormapColor
Imagick::setImageCompose
The Imagick class


Sets the image composite operator

Imagick::setImageColorspace
Imagick::setImageCompression
The Imagick class
PHP 手册

Imagick::setImageCompose

(PECL imagick 2.0.0)

Imagick::setImageCompose — Sets the image composite operator

说明

bool Imagick::setImageCompose ( int $compose )
Warning

本函数暂无文档，仅有参数列表。

Sets the image composite operator, useful for specifying how to composite the image thumbnail when using the Imagick::montageImage() method.

参数

compose

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageColorspace
Imagick::setImageCompression
The Imagick class


Sets the image compression

Imagick::setImageCompose
Imagick::setImageDelay
The Imagick class
PHP 手册

Imagick::setImageCompression

(PECL imagick 2.0.0)

Imagick::setImageCompression — Sets the image compression

说明

bool Imagick::setImageCompression ( int $compression )
Warning

本函数暂无文档，仅有参数列表。

Sets the image compression.

参数

compression

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageCompose
Imagick::setImageDelay
The Imagick class


Sets the image delay

Imagick::setImageCompression
Imagick::setImageDepth
The Imagick class
PHP 手册

Imagick::setImageDelay

(PECL imagick 2.0.0)

Imagick::setImageDelay — Sets the image delay

说明

bool Imagick::setImageDelay ( int $delay )
Warning

本函数暂无文档，仅有参数列表。

Sets the image delay.

参数

delay

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageCompression
Imagick::setImageDepth
The Imagick class


Sets the image depth

Imagick::setImageDelay
Imagick::setImageDispose
The Imagick class
PHP 手册

Imagick::setImageDepth

(PECL imagick 2.0.0)

Imagick::setImageDepth — Sets the image depth

说明

bool Imagick::setImageDepth ( int $depth )
Warning

本函数暂无文档，仅有参数列表。

Sets the image depth.

参数

depth

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageDelay
Imagick::setImageDispose
The Imagick class


Sets the image disposal method

Imagick::setImageDepth
Imagick::setImageExtent
The Imagick class
PHP 手册

Imagick::setImageDispose

(PECL imagick 2.0.0)

Imagick::setImageDispose — Sets the image disposal method

说明

bool Imagick::setImageDispose ( int $dispose )
Warning

本函数暂无文档，仅有参数列表。

Sets the image disposal method.

参数

dispose

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageDepth
Imagick::setImageExtent
The Imagick class


Sets the image size

Imagick::setImageDispose
Imagick::setImageFilename
The Imagick class
PHP 手册

Imagick::setImageExtent

(PECL imagick 2.0.0)

Imagick::setImageExtent — Sets the image size

说明

bool Imagick::setImageExtent ( int $columns , int $rows )
Warning

本函数暂无文档，仅有参数列表。

Sets the image size (i.e. columns & rows).

参数

columns

rows

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageDispose
Imagick::setImageFilename
The Imagick class


Sets the filename of a particular image

Imagick::setImageExtent
Imagick::setImageFormat
The Imagick class
PHP 手册

Imagick::setImageFilename

(PECL imagick 2.0.0)

Imagick::setImageFilename — Sets the filename of a particular image

说明

bool Imagick::setImageFilename ( string $filename )
Warning

本函数暂无文档，仅有参数列表。

Sets the filename of a particular image in a sequence.

参数

filename

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageExtent
Imagick::setImageFormat
The Imagick class


Sets the format of a particular image

Imagick::setImageFilename
Imagick::setImageGamma
The Imagick class
PHP 手册

Imagick::setImageFormat

(PECL imagick 2.0.0)

Imagick::setImageFormat — Sets the format of a particular image

说明

bool Imagick::setImageFormat ( string $format )
Warning

本函数暂无文档，仅有参数列表。

Sets the format of a particular image in a sequence.

参数

format

String presentation of the image format. Format support depends on the ImageMagick installation.

返回值

Returns TRUE on success.

Imagick::setImageFilename
Imagick::setImageGamma
The Imagick class


Sets the image gamma

Imagick::setImageFormat
Imagick::setImageGreenPrimary
The Imagick class
PHP 手册

Imagick::setImageGamma

(PECL imagick 2.0.0)

Imagick::setImageGamma — Sets the image gamma

说明

bool Imagick::setImageGamma ( float $gamma )
Warning

本函数暂无文档，仅有参数列表。

Sets the image gamma.

参数

gamma

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageFormat
Imagick::setImageGreenPrimary
The Imagick class


Sets the image chromaticity green primary point

Imagick::setImageGamma
Imagick::setImageIndex
The Imagick class
PHP 手册

Imagick::setImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point

说明

bool Imagick::setImageGreenPrimary ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Sets the image chromaticity green primary point.

参数

x

y

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageGamma
Imagick::setImageIndex
The Imagick class


Set the iterator position

Imagick::setImageGreenPrimary
Imagick::setImageInterlaceScheme
The Imagick class
PHP 手册

Imagick::setImageIndex

(PECL imagick 2.0.0)

Imagick::setImageIndex — Set the iterator position

说明

bool Imagick::setImageIndex ( int $index )
Warning

本函数暂无文档，仅有参数列表。

Set the iterator to the position in the image list specified with the index parameter.

This method has been deprecated. See Imagick::setIteratorIndex

参数

index

The position to set the iterator to

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageGreenPrimary
Imagick::setImageInterlaceScheme
The Imagick class


Sets the image compression

Imagick::setImageIndex
Imagick::setImageInterpolateMethod
The Imagick class
PHP 手册

Imagick::setImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setImageInterlaceScheme — Sets the image compression

说明

bool Imagick::setImageInterlaceScheme ( int $interlace_scheme )
Warning

本函数暂无文档，仅有参数列表。

Sets the image compression.

参数

interlace_scheme

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageIndex
Imagick::setImageInterpolateMethod
The Imagick class


Sets the image interpolate pixel method

Imagick::setImageInterlaceScheme
Imagick::setImageIterations
The Imagick class
PHP 手册

Imagick::setImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method

说明

bool Imagick::setImageInterpolateMethod ( int $method )
Warning

本函数暂无文档，仅有参数列表。

Sets the image interpolate pixel method.

参数

method

返回值

Returns TRUE on success.

Imagick::setImageInterlaceScheme
Imagick::setImageIterations
The Imagick class


Sets the image iterations

Imagick::setImageInterpolateMethod
Imagick::setImageMatte
The Imagick class
PHP 手册

Imagick::setImageIterations

(PECL imagick 2.0.0)

Imagick::setImageIterations — Sets the image iterations

说明

bool Imagick::setImageIterations ( int $iterations )
Warning

本函数暂无文档，仅有参数列表。

Sets the image iterations.

参数

iterations

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageInterpolateMethod
Imagick::setImageMatte
The Imagick class


Sets the image matte channel

Imagick::setImageIterations
Imagick::setImageMatteColor
The Imagick class
PHP 手册

Imagick::setImageMatte

(PECL imagick 2.0.0)

Imagick::setImageMatte — Sets the image matte channel

说明

bool Imagick::setImageMatte ( bool $matte )

Sets the image matte channel. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

matte

True activates the matte channel and false disables it.

返回值

Returns TRUE on success.

Imagick::setImageIterations
Imagick::setImageMatteColor
The Imagick class


Sets the image matte color

Imagick::setImageMatte
Imagick::setImageOpacity
The Imagick class
PHP 手册

Imagick::setImageMatteColor

(PECL imagick 2.0.0)

Imagick::setImageMatteColor — Sets the image matte color

说明

bool Imagick::setImageMatteColor ( mixed $matte )
Warning

本函数暂无文档，仅有参数列表。

Sets the image matte color.

参数

matte

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.

Imagick::setImageMatte
Imagick::setImageOpacity
The Imagick class


Sets the image opacity level

Imagick::setImageMatteColor
Imagick::setImageOrientation
The Imagick class
PHP 手册

Imagick::setImageOpacity

(PECL imagick 2.0.0)

Imagick::setImageOpacity — Sets the image opacity level

说明

bool Imagick::setImageOpacity ( float $opacity )
Warning

本函数暂无文档，仅有参数列表。

Sets the image to the specified opacity level. This method is present if Imagick is compiled against ImageMagick 6.3.1 or later.

参数

opacity

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

返回值

Returns TRUE on success.

范例

Example #1 A Imagick::setImageOpacity() example

An example of using Imagick::setImageOpacity()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->setImageOpacity(0.7);

/* output the image */
header('Content-type: image/png');
echo $image;

?>

Imagick::setImageMatteColor
Imagick::setImageOrientation
The Imagick class


Sets the image orientation.

Imagick::setImageOpacity
Imagick::setImagePage
The Imagick class
PHP 手册

Imagick::setImageOrientation

(PECL imagick 2.0.0)

Imagick::setImageOrientation — Sets the image orientation.

说明

bool Imagick::setImageOrientation ( int $orientation )
Warning

本函数暂无文档，仅有参数列表。

Sets the image orientation.

参数

orientation

One of the orientation constants

返回值

Returns TRUE on success.

Imagick::setImageOpacity
Imagick::setImagePage
The Imagick class


Sets the page geometry of the image

Imagick::setImageOrientation
Imagick::setImageProfile
The Imagick class
PHP 手册

Imagick::setImagePage

(PECL imagick 2.0.0)

Imagick::setImagePage — Sets the page geometry of the image

说明

bool Imagick::setImagePage ( int $width , int $height , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Sets the page geometry of the image.

参数

width

height

x

y

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageOrientation
Imagick::setImageProfile
The Imagick class


Adds a named profile to the Imagick object

Imagick::setImagePage
Imagick::setImageProperty
The Imagick class
PHP 手册

Imagick::setImageProfile

(PECL imagick 2.0.0)

Imagick::setImageProfile — Adds a named profile to the Imagick object

说明

bool Imagick::setImageProfile ( string $name , string $profile )
Warning

本函数暂无文档，仅有参数列表。

Adds a named profile to the Imagick object. If a profile with the same name already exists, it is replaced. This method differs from the Imagick::ProfileImage() method in that it does not apply any CMS color profiles.

参数

name

profile

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImagePage
Imagick::setImageProperty
The Imagick class


Sets an image property

Imagick::setImageProfile
Imagick::setImageRedPrimary
The Imagick class
PHP 手册

Imagick::setImageProperty

(PECL imagick 2.0.0)

Imagick::setImageProperty — Sets an image property

说明

bool Imagick::setImageProperty ( string $name , string $value )
Warning

本函数暂无文档，仅有参数列表。

Sets a named property to the image.

参数

name

value

返回值

Returns TRUE on success.

Imagick::setImageProfile
Imagick::setImageRedPrimary
The Imagick class


Sets the image chromaticity red primary point

Imagick::setImageProperty
Imagick::setImageRenderingIntent
The Imagick class
PHP 手册

Imagick::setImageRedPrimary

(PECL imagick 2.0.0)

Imagick::setImageRedPrimary — Sets the image chromaticity red primary point

说明

bool Imagick::setImageRedPrimary ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Sets the image chromaticity red primary point.

参数

x

y

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageProperty
Imagick::setImageRenderingIntent
The Imagick class


Sets the image rendering intent

Imagick::setImageRedPrimary
Imagick::setImageResolution
The Imagick class
PHP 手册

Imagick::setImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::setImageRenderingIntent — Sets the image rendering intent

说明

bool Imagick::setImageRenderingIntent ( int $rendering_intent )
Warning

本函数暂无文档，仅有参数列表。

Sets the image rendering intent.

参数

rendering_intent

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageRedPrimary
Imagick::setImageResolution
The Imagick class


Sets the image resolution

Imagick::setImageRenderingIntent
Imagick::setImageScene
The Imagick class
PHP 手册

Imagick::setImageResolution

(PECL imagick 2.0.0)

Imagick::setImageResolution — Sets the image resolution

说明

bool Imagick::setImageResolution ( float $x_resolution , float $y_resolution )
Warning

本函数暂无文档，仅有参数列表。

Sets the image resolution.

参数

x_resolution

y_resolution

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageRenderingIntent
Imagick::setImageScene
The Imagick class


Sets the image scene

Imagick::setImageResolution
Imagick::setImageTicksPerSecond
The Imagick class
PHP 手册

Imagick::setImageScene

(PECL imagick 2.0.0)

Imagick::setImageScene — Sets the image scene

说明

bool Imagick::setImageScene ( int $scene )
Warning

本函数暂无文档，仅有参数列表。

Sets the image scene.

参数

scene

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageResolution
Imagick::setImageTicksPerSecond
The Imagick class


Sets the image ticks-per-second

Imagick::setImageScene
Imagick::setImageType
The Imagick class
PHP 手册

Imagick::setImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::setImageTicksPerSecond — Sets the image ticks-per-second

说明

bool Imagick::setImageTicksPerSecond ( int $ticks_per-second )
Warning

本函数暂无文档，仅有参数列表。

Sets the image ticks-per-second.

参数

ticks_per-second

返回值

Returns TRUE on success.

Imagick::setImageScene
Imagick::setImageType
The Imagick class


Sets the image type

Imagick::setImageTicksPerSecond
Imagick::setImageUnits
The Imagick class
PHP 手册

Imagick::setImageType

(PECL imagick 2.0.0)

Imagick::setImageType — Sets the image type

说明

bool Imagick::setImageType ( int $image_type )
Warning

本函数暂无文档，仅有参数列表。

Sets the image type.

参数

image_type

返回值

Returns TRUE on success.

Imagick::setImageTicksPerSecond
Imagick::setImageUnits
The Imagick class


Sets the image units of resolution

Imagick::setImageType
Imagick::setImageVirtualPixelMethod
The Imagick class
PHP 手册

Imagick::setImageUnits

(PECL imagick 2.0.0)

Imagick::setImageUnits — Sets the image units of resolution

说明

bool Imagick::setImageUnits ( int $units )
Warning

本函数暂无文档，仅有参数列表。

Sets the image units of resolution.

参数

units

返回值

Returns TRUE on success.

Imagick::setImageType
Imagick::setImageVirtualPixelMethod
The Imagick class


Sets the image virtual pixel method

Imagick::setImageUnits
Imagick::setImageWhitePoint
The Imagick class
PHP 手册

Imagick::setImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method

说明

bool Imagick::setImageVirtualPixelMethod ( int $method )
Warning

本函数暂无文档，仅有参数列表。

Sets the image virtual pixel method.

参数

method

返回值

Returns TRUE on success.

Imagick::setImageUnits
Imagick::setImageWhitePoint
The Imagick class


Sets the image chromaticity white point

Imagick::setImageVirtualPixelMethod
Imagick::setInterlaceScheme
The Imagick class
PHP 手册

Imagick::setImageWhitePoint

(PECL imagick 2.0.0)

Imagick::setImageWhitePoint — Sets the image chromaticity white point

说明

bool Imagick::setImageWhitePoint ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Sets the image chromaticity white point.

参数

x

y

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::setImageVirtualPixelMethod
Imagick::setInterlaceScheme
The Imagick class


Sets the image compression

Imagick::setImageWhitePoint
Imagick::setIteratorIndex
The Imagick class
PHP 手册

Imagick::setInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setInterlaceScheme — Sets the image compression

说明

bool Imagick::setInterlaceScheme ( int $interlace_scheme )
Warning

本函数暂无文档，仅有参数列表。

Sets the image compression.

参数

interlace_scheme

返回值

Returns TRUE on success.

Imagick::setImageWhitePoint
Imagick::setIteratorIndex
The Imagick class


Set the iterator position

Imagick::setInterlaceScheme
Imagick::setLastIterator
The Imagick class
PHP 手册

Imagick::setIteratorIndex

(PECL imagick 2.0.0)

Imagick::setIteratorIndex — Set the iterator position

说明

bool Imagick::setIteratorIndex ( int $index )
Warning

本函数暂无文档，仅有参数列表。

Set the iterator to the position in the image list specified with the index parameter

参数

index

The position to set the iterator to

返回值

Returns TRUE on success.

Imagick::setInterlaceScheme
Imagick::setLastIterator
The Imagick class


Sets the Imagick iterator to the last image

Imagick::setIteratorIndex
Imagick::setOption
The Imagick class
PHP 手册

Imagick::setLastIterator

(PECL imagick 2.0.1)

Imagick::setLastIterator — Sets the Imagick iterator to the last image

说明

bool Imagick::setLastIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Sets the Imagick iterator to the last image.

返回值

Returns TRUE on success.

Imagick::setIteratorIndex
Imagick::setOption
The Imagick class


Set an option

Imagick::setLastIterator
Imagick::setPage
The Imagick class
PHP 手册

Imagick::setOption

(PECL imagick 2.0.0)

Imagick::setOption — Set an option

说明

bool Imagick::setOption ( string $key , string $value )
Warning

本函数暂无文档，仅有参数列表。

Associates one or options with the wand.

参数

key

value

返回值

Returns TRUE on success.

Imagick::setLastIterator
Imagick::setPage
The Imagick class


Sets the page geometry of the Imagick object

Imagick::setOption
Imagick::setResolution
The Imagick class
PHP 手册

Imagick::setPage

(PECL imagick 2.0.0)

Imagick::setPage — Sets the page geometry of the Imagick object

说明

bool Imagick::setPage ( int $width , int $height , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Sets the page geometry of the Imagick object.

参数

width

height

x

y

返回值

Returns TRUE on success.

Imagick::setOption
Imagick::setResolution
The Imagick class


Sets the image resolution

Imagick::setPage
Imagick::setResourceLimit
The Imagick class
PHP 手册

Imagick::setResolution

(PECL imagick 2.0.0)

Imagick::setResolution — Sets the image resolution

说明

bool Imagick::setResolution ( float $x_resolution , float $y_resolution )
Warning

本函数暂无文档，仅有参数列表。

Sets the image resolution.

参数

x_resolution

y_resolution

返回值

Returns TRUE on success.

Imagick::setPage
Imagick::setResourceLimit
The Imagick class


Sets the limit for a particular resource in megabytes

Imagick::setResolution
Imagick::setSamplingFactors
The Imagick class
PHP 手册

Imagick::setResourceLimit

(PECL imagick 2.0.0)

Imagick::setResourceLimit — Sets the limit for a particular resource in megabytes

说明

bool Imagick::setResourceLimit ( int $type , int $limit )
Warning

本函数暂无文档，仅有参数列表。

Sets the limit for a particular resource in megabytes.

参数

type

limit

返回值

Returns TRUE on success.

Imagick::setResolution
Imagick::setSamplingFactors
The Imagick class


Sets the image sampling factors

Imagick::setResourceLimit
Imagick::setSize
The Imagick class
PHP 手册

Imagick::setSamplingFactors

(PECL imagick 2.0.0)

Imagick::setSamplingFactors — Sets the image sampling factors

说明

bool Imagick::setSamplingFactors ( array $factors )
Warning

本函数暂无文档，仅有参数列表。

Sets the image sampling factors.

参数

factors

返回值

Returns TRUE on success.

Imagick::setResourceLimit
Imagick::setSize
The Imagick class


Sets the size of the Imagick object

Imagick::setSamplingFactors
Imagick::setSizeOffset
The Imagick class
PHP 手册

Imagick::setSize

(PECL imagick 2.0.0)

Imagick::setSize — Sets the size of the Imagick object

说明

bool Imagick::setSize ( int $columns , int $rows )
Warning

本函数暂无文档，仅有参数列表。

Sets the size of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

参数

columns

rows

返回值

Returns TRUE on success.

Imagick::setSamplingFactors
Imagick::setSizeOffset
The Imagick class


Sets the size and offset of the Imagick object

Imagick::setSize
Imagick::setType
The Imagick class
PHP 手册

Imagick::setSizeOffset

(PECL imagick 2.0.0)

Imagick::setSizeOffset — Sets the size and offset of the Imagick object

说明

bool Imagick::setSizeOffset ( int $columns , int $rows , int $offset )
Warning

本函数暂无文档，仅有参数列表。

Sets the size and offset of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

参数

columns

rows

offset

返回值

Returns TRUE on success.

Imagick::setSize
Imagick::setType
The Imagick class


Sets the image type attribute

Imagick::setSizeOffset
Imagick::shadeImage
The Imagick class
PHP 手册

Imagick::setType

(PECL imagick 2.0.0)

Imagick::setType — Sets the image type attribute

说明

bool Imagick::setType ( int $image_type )
Warning

本函数暂无文档，仅有参数列表。

Sets the image type attribute.

参数

image_type

返回值

Returns TRUE on success.

Imagick::setSizeOffset
Imagick::shadeImage
The Imagick class


Creates a 3D effect

Imagick::setType
Imagick::shadowImage
The Imagick class
PHP 手册

Imagick::shadeImage

(PECL imagick 2.0.0)

Imagick::shadeImage — Creates a 3D effect

说明

bool Imagick::shadeImage ( bool $gray , float $azimuth , float $elevation )
Warning

本函数暂无文档，仅有参数列表。

Shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.

参数

gray

azimuth

elevation

返回值

Returns TRUE on success.

Imagick::setType
Imagick::shadowImage
The Imagick class


Simulates an image shadow

Imagick::shadeImage
Imagick::sharpenImage
The Imagick class
PHP 手册

Imagick::shadowImage

(PECL imagick 2.0.0)

Imagick::shadowImage — Simulates an image shadow

说明

bool Imagick::shadowImage ( float $opacity , float $sigma , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Simulates an image shadow.

参数

opacity

sigma

x

y

返回值

Returns TRUE on success.

Imagick::shadeImage
Imagick::sharpenImage
The Imagick class


Sharpens an image

Imagick::shadowImage
Imagick::shaveImage
The Imagick class
PHP 手册

Imagick::sharpenImage

(PECL imagick 2.0.0)

Imagick::sharpenImage — Sharpens an image

说明

bool Imagick::sharpenImage ( float $radius , float $sigma [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and selects a suitable radius for you.

参数

radius

sigma

channel

返回值

Returns TRUE on success.

Imagick::shadowImage
Imagick::shaveImage
The Imagick class


Shaves pixels from the image edges

Imagick::sharpenImage
Imagick::shearImage
The Imagick class
PHP 手册

Imagick::shaveImage

(PECL imagick 2.0.0)

Imagick::shaveImage — Shaves pixels from the image edges

说明

bool Imagick::shaveImage ( int $columns , int $rows )
Warning

本函数暂无文档，仅有参数列表。

Shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

参数

columns

rows

返回值

Returns TRUE on success.

Imagick::sharpenImage
Imagick::shearImage
The Imagick class


Creating a parallelogram

Imagick::shaveImage
Imagick::sigmoidalContrastImage
The Imagick class
PHP 手册

Imagick::shearImage

(PECL imagick 2.0.0)

Imagick::shearImage — Creating a parallelogram

说明

bool Imagick::shearImage ( mixed $background , float $x_shear , float $y_shear )
Warning

本函数暂无文档，仅有参数列表。

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

参数

background

The background color

x_shear

The number of degrees to shear on the x axis

y_shear

The number of degrees to shear on the y axis

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Imagick::shaveImage
Imagick::sigmoidalContrastImage
The Imagick class


Adjusts the contrast of an image

Imagick::shearImage
Imagick::sketchImage
The Imagick class
PHP 手册

Imagick::sigmoidalContrastImage

(PECL imagick 2.0.0)

Imagick::sigmoidalContrastImage — Adjusts the contrast of an image

说明

bool Imagick::sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to TRUE to increase the image contrast otherwise the contrast is reduced.

参数

sharpen

alpha

beta

channel

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::shearImage
Imagick::sketchImage
The Imagick class


Simulates a pencil sketch

Imagick::sigmoidalContrastImage
Imagick::solarizeImage
The Imagick class
PHP 手册

Imagick::sketchImage

(PECL imagick 2.0.0)

Imagick::sketchImage — Simulates a pencil sketch

说明

bool Imagick::sketchImage ( float $radius , float $sigma , float $angle )
Warning

本函数暂无文档，仅有参数列表。

Simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::sketchImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

参数

radius

sigma

angle

返回值

Returns TRUE on success.

Imagick::sigmoidalContrastImage
Imagick::solarizeImage
The Imagick class


Applies a solarizing effect to the image

Imagick::sketchImage
Imagick::spliceImage
The Imagick class
PHP 手册

Imagick::solarizeImage

(PECL imagick 2.0.0)

Imagick::solarizeImage — Applies a solarizing effect to the image

说明

bool Imagick::solarizeImage ( int $threshold )
Warning

本函数暂无文档，仅有参数列表。

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

参数

threshold

返回值

Returns TRUE on success.

Imagick::sketchImage
Imagick::spliceImage
The Imagick class


Splices a solid color into the image

Imagick::solarizeImage
Imagick::spreadImage
The Imagick class
PHP 手册

Imagick::spliceImage

(PECL imagick 2.0.0)

Imagick::spliceImage — Splices a solid color into the image

说明

bool Imagick::spliceImage ( int $width , int $height , int $x , int $y )
Warning

本函数暂无文档，仅有参数列表。

Splices a solid color into the image.

参数

width

height

x

y

返回值

Returns TRUE on success.

Imagick::solarizeImage
Imagick::spreadImage
The Imagick class


Randomly displaces each pixel in a block

Imagick::spliceImage
Imagick::steganoImage
The Imagick class
PHP 手册

Imagick::spreadImage

(PECL imagick 2.0.0)

Imagick::spreadImage — Randomly displaces each pixel in a block

说明

bool Imagick::spreadImage ( float $radius )
Warning

本函数暂无文档，仅有参数列表。

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

参数

radius

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::spliceImage
Imagick::steganoImage
The Imagick class


Hides a digital watermark within the image

Imagick::spreadImage
Imagick::stereoImage
The Imagick class
PHP 手册

Imagick::steganoImage

(PECL imagick 2.0.0)

Imagick::steganoImage — Hides a digital watermark within the image

说明

Imagick Imagick::steganoImage ( Imagick $watermark_wand , int $offset )
Warning

本函数暂无文档，仅有参数列表。

Hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

参数

watermark_wand

offset

返回值

Returns TRUE on success.

Imagick::spreadImage
Imagick::stereoImage
The Imagick class


Composites two images

Imagick::steganoImage
Imagick::stripImage
The Imagick class
PHP 手册

Imagick::stereoImage

(PECL imagick 2.0.0)

Imagick::stereoImage — Composites two images

说明

bool Imagick::stereoImage ( Imagick $offset_wand )
Warning

本函数暂无文档，仅有参数列表。

Composites two images and produces a single image that is the composite of a left and right image of a stereo pair.

参数

offset_wand

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::steganoImage
Imagick::stripImage
The Imagick class


Strips an image of all profiles and comments

Imagick::stereoImage
Imagick::swirlImage
The Imagick class
PHP 手册

Imagick::stripImage

(PECL imagick 2.0.0)

Imagick::stripImage — Strips an image of all profiles and comments

说明

bool Imagick::stripImage ( void )
Warning

本函数暂无文档，仅有参数列表。

Strips an image of all profiles and comments.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::stereoImage
Imagick::swirlImage
The Imagick class


Swirls the pixels about the center of the image

Imagick::stripImage
Imagick::textureImage
The Imagick class
PHP 手册

Imagick::swirlImage

(PECL imagick 2.0.0)

Imagick::swirlImage — Swirls the pixels about the center of the image

说明

bool Imagick::swirlImage ( float $degrees )
Warning

本函数暂无文档，仅有参数列表。

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

参数

degrees

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::stripImage
Imagick::textureImage
The Imagick class


Repeatedly tiles the texture image

Imagick::swirlImage
Imagick::thresholdImage
The Imagick class
PHP 手册

Imagick::textureImage

(PECL imagick 2.0.0)

Imagick::textureImage — Repeatedly tiles the texture image

说明

bool Imagick::textureImage ( Imagick $texture_wand )
Warning

本函数暂无文档，仅有参数列表。

Repeatedly tiles the texture image across and down the image canvas.

参数

texture_wand

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::swirlImage
Imagick::thresholdImage
The Imagick class


Changes the value of individual pixels based on a threshold

Imagick::textureImage
Imagick::thumbnailImage
The Imagick class
PHP 手册

Imagick::thresholdImage

(PECL imagick 2.0.0)

Imagick::thresholdImage — Changes the value of individual pixels based on a threshold

说明

bool Imagick::thresholdImage ( float $threshold [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

参数

threshold

channel

返回值

Returns TRUE on success.

Imagick::textureImage
Imagick::thumbnailImage
The Imagick class


Changes the size of an image

Imagick::thresholdImage
Imagick::tintImage
The Imagick class
PHP 手册

Imagick::thumbnailImage

(PECL imagick 2.0.0)

Imagick::thumbnailImage — Changes the size of an image

说明

bool Imagick::thumbnailImage ( int $columns , int $rows [, bool $fit=false ] )
Warning

本函数暂无文档，仅有参数列表。

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web. If TRUE is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until the match or are smaller than the parameter given for the side.

参数

columns

Image width

rows

Image height

fit

Whether to force maximum values

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::thresholdImage
Imagick::tintImage
The Imagick class


Applies a color vector to each pixel in the image

Imagick::thumbnailImage
Imagick::transformImage
The Imagick class
PHP 手册

Imagick::tintImage

(PECL imagick 2.0.0)

Imagick::tintImage — Applies a color vector to each pixel in the image

说明

bool Imagick::tintImage ( mixed $tint , mixed $opacity )
Warning

本函数暂无文档，仅有参数列表。

Applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighing function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

参数

tint

opacity

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Imagick::thumbnailImage
Imagick::transformImage
The Imagick class


Convenience method for setting crop size and the image geometry

Imagick::tintImage
Imagick::transposeImage
The Imagick class
PHP 手册

Imagick::transformImage

(PECL imagick 2.0.0)

Imagick::transformImage — Convenience method for setting crop size and the image geometry

说明

Imagick Imagick::transformImage ( string $crop , string $geometry )
Warning

本函数暂无文档，仅有参数列表。

A convenience method for setting crop size and the image geometry from strings

参数

crop

A crop geometry string. This geometry defines a subregion of the image to crop.

geometry

An image geometry string. This geometry defines the final size of the image.

返回值

Returns TRUE on success.

范例

Example #1 Using Imagick::transformImage():

The example creates a 100x100 black image.

<?php
$image = new Imagick();
$image->newImage( 300, 200, "black" );
$new_image = $image->transformImage( "100x100", "100x100" );
$new_image->writeImage('test_out.jpg');
?>

参见

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image

Imagick::tintImage
Imagick::transposeImage
The Imagick class


Creates a vertical mirror image

Imagick::transformImage
Imagick::transverseImage
The Imagick class
PHP 手册

Imagick::transposeImage

(PECL imagick 2.0.0)

Imagick::transposeImage — Creates a vertical mirror image

说明

bool Imagick::transposeImage ( void )

Creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

返回值

Returns TRUE on success.

参见

  • Imagick::transverseImage() - Creates a horizontal mirror image

Imagick::transformImage
Imagick::transverseImage
The Imagick class


Creates a horizontal mirror image

Imagick::transposeImage
Imagick::trimImage
The Imagick class
PHP 手册

Imagick::transverseImage

(PECL imagick 2.0.0)

Imagick::transverseImage — Creates a horizontal mirror image

说明

bool Imagick::transverseImage ( void )

Creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

返回值

Returns TRUE on success.

参见

  • Imagick::transposeImage() - Creates a vertical mirror image

Imagick::transposeImage
Imagick::trimImage
The Imagick class


Remove edges from the image

Imagick::transverseImage
Imagick::uniqueImageColors
The Imagick class
PHP 手册

Imagick::trimImage

(PECL imagick 2.0.0)

Imagick::trimImage — Remove edges from the image

说明

bool Imagick::trimImage ( float $fuzz )

Remove edges that are the background color from the image. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

范例

Example #1 Using Imagick::trimImage():

Trim an image, then display to the browser.

<?php
/* Create the object and read the image in */
$im = new Imagick("image.jpg");

/* Trim the image. */
$im->trimImage(0);

/* Ouput the image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

参见

  • Imagick::getQuantumDepth() - Gets the quantum depth
  • Imagick::getQuantumRange() - Returns the Imagick quantum range

Imagick::transverseImage
Imagick::uniqueImageColors
The Imagick class


Discards all but one of any pixel color

Imagick::trimImage
Imagick::unsharpMaskImage
The Imagick class
PHP 手册

Imagick::uniqueImageColors

(PECL imagick 2.0.0)

Imagick::uniqueImageColors — Discards all but one of any pixel color

说明

bool Imagick::uniqueImageColors ( void )

Discards all but one of any pixel color. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

返回值

Returns TRUE on success.

Imagick::trimImage
Imagick::unsharpMaskImage
The Imagick class


Sharpens an image

Imagick::uniqueImageColors
Imagick::valid
The Imagick class
PHP 手册

Imagick::unsharpMaskImage

(PECL imagick 2.0.0)

Imagick::unsharpMaskImage — Sharpens an image

说明

bool Imagick::unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel=Imagick::CHANNEL_ALL ] )
Warning

本函数暂无文档，仅有参数列表。

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::UnsharpMaskImage() selects a suitable radius for you.

参数

radius

sigma

amount

threshold

channel

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

Imagick::uniqueImageColors
Imagick::valid
The Imagick class


Checks if the current item is valid

Imagick::unsharpMaskImage
Imagick::vignetteImage
The Imagick class
PHP 手册

Imagick::valid

(PECL imagick 2.0.0)

Imagick::valid — Checks if the current item is valid

说明

bool Imagick::valid ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks if the current item is valid.

返回值

Returns TRUE on success.

Imagick::unsharpMaskImage
Imagick::vignetteImage
The Imagick class


Adds vignette filter to the image

Imagick::valid
Imagick::waveImage
The Imagick class
PHP 手册

Imagick::vignetteImage

(PECL imagick 2.0.0)

Imagick::vignetteImage — Adds vignette filter to the image

说明

bool Imagick::vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )

Softens the edges of the image in vignette style. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

blackPoint

The black point.

whitePoint

The white point

x

X offset of the ellipse

y

Y offset of the ellipse

返回值

Returns TRUE on success.

参见

  • Imagick::waveImage() - Applies wave filter to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Imagick::valid
Imagick::waveImage
The Imagick class


Applies wave filter to the image

Imagick::vignetteImage
Imagick::whiteThresholdImage
The Imagick class
PHP 手册

Imagick::waveImage

(PECL imagick 2.0.0)

Imagick::waveImage — Applies wave filter to the image

说明

bool Imagick::waveImage ( float $amplitude , float $length )

Applies wave filter to the image. This method is available if Imagick has been compiled against ImageMagick version 6.2.9 or newer.

参数

amplitude

The amplitude of the wave.

length

The lenght of the wave.

返回值

Returns TRUE on success.

错误／异常

Throws ImagickException on error.

参见

  • Imagick::solarizeImage() - Applies a solarizing effect to the image
  • Imagick::oilpaintImage() - Simulates an oil painting
  • Imagick::embossImage() - Returns a grayscale image with a three-dimensional effect
  • Imagick::addNoiseImage() - Adds random noise to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Imagick::vignetteImage
Imagick::whiteThresholdImage
The Imagick class


Force all pixels above the threshold into white

Imagick::waveImage
Imagick::writeImage
The Imagick class
PHP 手册

Imagick::whiteThresholdImage

(PECL imagick 2.0.0)

Imagick::whiteThresholdImage — Force all pixels above the threshold into white

说明

bool Imagick::whiteThresholdImage ( mixed $threshold )
Warning

本函数暂无文档，仅有参数列表。

Is like Imagick::ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

参数

threshold

返回值

Returns TRUE on success.

更新日志

版本 | 说明
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Imagick::waveImage
Imagick::writeImage
The Imagick class


Writes an image to the specified filename

Imagick::whiteThresholdImage
Imagick::writeImages
The Imagick class
PHP 手册

Imagick::writeImage

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImage — Writes an image to the specified filename

说明

bool Imagick::writeImage ([ string $filename ] )
Warning

本函数暂无文档，仅有参数列表。

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Imagick::ReadImage() or Imagick::SetImageFilename().

参数

filename

返回值

Returns TRUE on success.

Imagick::whiteThresholdImage
Imagick::writeImages
The Imagick class


Writes an image or image sequence

Imagick::writeImage
The ImagickDraw class
The Imagick class
PHP 手册

Imagick::writeImages

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImages — Writes an image or image sequence

说明

bool Imagick::writeImages ( string $filename , bool $adjoin )
Warning

本函数暂无文档，仅有参数列表。

Writes an image or image sequence.

参数

filename

adjoin

返回值

Returns TRUE on success.

Imagick::writeImage
The ImagickDraw class
The Imagick class


The ImagickDraw class

Class synopsis

ImagickDraw
ImagickDraw {
bool affine ( array $affine )
bool annotation ( float $x , float $y , string $text )
bool arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
bool bezier ( array $coordinates )
bool circle ( float $ox , float $oy , float $px , float $py )
bool clear ( void )
ImagickDraw clone ( void )
bool color ( float $x , float $y , int $paintMethod )
bool comment ( string $comment )
bool composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
ImagickDraw __construct ( void )
bool destroy ( void )
bool ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
string getClipPath ( void )
int getClipRule ( void )
int getClipUnits ( void )
ImagickPixel getFillColor ( void )
float getFillOpacity ( void )
int getFillRule ( void )
string getFont ( void )
string getFontFamily ( void )
float getFontSize ( void )
int getFontStyle ( void )
int getFontWeight ( void )
int getGravity ( void )
bool getStrokeAntialias ( void )
ImagickPixel getStrokeColor ( ImagickPixel $stroke_color )
array getStrokeDashArray ( void )
float getStrokeDashOffset ( void )
int getStrokeLineCap ( void )
int getStrokeLineJoin ( void )
int getStrokeMiterLimit ( void )
float getStrokeOpacity ( void )
float getStrokeWidth ( void )
int getTextAlignment ( void )
bool getTextAntialias ( void )
int getTextDecoration ( void )
string getTextEncoding ( void )
ImagickPixel getTextUnderColor ( void )
string getVectorGraphics ( void )
bool line ( float $sx , float $sy , float $ex , float $ey )
bool matte ( float $x , float $y , int $paintMethod )
bool pathClose ( void )
bool pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )
bool pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
bool pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
bool pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathFinish ( void )
bool pathLineToAbsolute ( float $x , float $y )
bool pathLineToHorizontalAbsolute ( float $x )
bool pathLineToHorizontalRelative ( float $x )
bool pathLineToRelative ( float $x , float $y )
bool pathLineToVerticalAbsolute ( float $y )
bool pathLineToVerticalRelative ( float $y )
bool pathMoveToAbsolute ( float $x , float $y )
bool pathMoveToRelative ( float $x , float $y )
bool pathStart ( void )
bool point ( float $x , float $y )
bool polygon ( array $coordinates )
bool polyline ( array $coordinates )
bool pop ( void )
bool popClipPath ( void )
bool popDefs ( void )
bool popPattern ( void )
bool push ( void )
bool pushClipPath ( string $clip_mask_id )
bool pushDefs ( void )
bool pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
bool rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
bool render ( void )
bool rotate ( float $degrees )
bool roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
bool scale ( float $x , float $y )
bool setClipPath ( string $clip_mask )
bool setClipRule ( int $fill_rule )
bool setClipUnits ( int $clip_units )
bool setFillAlpha ( float $opacity )
bool setFillColor ( ImagickPixel $fill_pixel )
bool setFillOpacity ( float $fillOpacity )
bool setFillPatternURL ( string $fill_url )
bool setFillRule ( int $fill_rule )
bool setFont ( string $font_name )
bool setFontFamily ( string $font_family )
bool setFontSize ( float $pointsize )
bool setFontStretch ( int $fontStretch )
bool setFontStyle ( int $style )
bool setFontWeight ( int $font_weight )
bool setGravity ( int $gravity )
bool setStrokeAlpha ( float $opacity )
bool setStrokeAntialias ( bool $stroke_antialias )
bool setStrokeColor ( ImagickPixel $stroke_pixel )
bool setStrokeDashArray ( array $dashArray )
bool setStrokeDashOffset ( float $dash_offset )
bool setStrokeLineCap ( int $linecap )
bool setStrokeLineJoin ( int $linejoin )
bool setStrokeMiterLimit ( int $miterlimit )
bool setStrokeOpacity ( float $stroke_opacity )
bool setStrokePatternURL ( string $stroke_url )
bool setStrokeWidth ( float $stroke_width )
bool setTextAlignment ( int $alignment )
bool setTextAntialias ( bool $antiAlias )
bool setTextDecoration ( int $decoration )
bool setTextEncoding ( string $encoding )
bool setTextUnderColor ( ImagickPixel $under_color )
bool setVectorGraphics ( string $xml )
bool setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
bool skewX ( float $degrees )
bool skewY ( float $degrees )
bool translate ( float $x , float $y )
}

Table of Contents

  • ImagickDraw::affine — Adjusts the current affine transformation matrix
  • ImagickDraw::annotation — Draws text on the image
  • ImagickDraw::arc — Draws an arc
  • ImagickDraw::bezier — Draws a bezier curve
  • ImagickDraw::circle — Draws a circle
  • ImagickDraw::clear — Clears the ImagickDraw
  • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
  • ImagickDraw::color — Draws color on image
  • ImagickDraw::comment — Adds a comment
  • ImagickDraw::composite — Composites an image onto the current image
  • ImagickDraw::__construct — The ImagickDraw constructor
  • ImagickDraw::destroy — Frees all associated resources
  • ImagickDraw::ellipse — Draws an ellipse on the image
  • ImagickDraw::getClipPath — Obtains the current clipping path ID
  • ImagickDraw::getClipRule — Returns the current polygon fill rule
  • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
  • ImagickDraw::getFillColor — Returns the fill color
  • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
  • ImagickDraw::getFillRule — Returns the fill rule
  • ImagickDraw::getFont — Returns the font
  • ImagickDraw::getFontFamily — Returns the font family
  • ImagickDraw::getFontSize — Returns the font pointsize
  • ImagickDraw::getFontStyle — Returns the font style
  • ImagickDraw::getFontWeight — Returns the font weight
  • ImagickDraw::getGravity — Returns the text placement gravity
  • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
  • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
  • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
  • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
  • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
  • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
  • ImagickDraw::getTextAlignment — Returns the text alignment
  • ImagickDraw::getTextAntialias — Returns the current text antialias setting
  • ImagickDraw::getTextDecoration — Returns the text decoration
  • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
  • ImagickDraw::getTextUnderColor — Returns the text under color
  • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
  • ImagickDraw::line — Draws a line
  • ImagickDraw::matte — Paints on the image's opacity channel
  • ImagickDraw::pathClose — Adds a path element to the current path
  • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
  • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
  • ImagickDraw::pathFinish — Terminates the current path
  • ImagickDraw::pathLineToAbsolute — Draws a line path
  • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
  • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
  • ImagickDraw::pathLineToRelative — Draws a line path
  • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
  • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
  • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
  • ImagickDraw::pathMoveToRelative — Starts a new sub-path
  • ImagickDraw::pathStart — Declares the start of a path drawing list
  • ImagickDraw::point — Draws a point
  • ImagickDraw::polygon — Draws a polygon
  • ImagickDraw::polyline — Draws a polyline
  • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
  • ImagickDraw::popClipPath — Terminates a clip path definition
  • ImagickDraw::popDefs — Terminates a definition list
  • ImagickDraw::popPattern — Terminates a pattern definition
  • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
  • ImagickDraw::pushClipPath — Starts a clip path definition
  • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
  • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
  • ImagickDraw::rectangle — Draws a rectangle
  • ImagickDraw::render — Renders all preceding drawing commands onto the image
  • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • ImagickDraw::roundRectangle — Draws a rounded rectangle
  • ImagickDraw::scale — Adjusts the scaling factor
  • ImagickDraw::setClipPath — Associates a named clipping path with the image
  • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
  • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
  • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
  • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
  • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
  • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
  • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
  • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
  • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
  • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
  • ImagickDraw::setFontWeight — Sets the font weight
  • ImagickDraw::setGravity — Sets the text placement gravity
  • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
  • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
  • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
  • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
  • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
  • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
  • ImagickDraw::setTextAlignment — Specifies a text alignment
  • ImagickDraw::setTextAntialias — Controls whether text is antialiased
  • ImagickDraw::setTextDecoration — Specifies a decoration
  • ImagickDraw::setTextEncoding — Specifies specifies the text code set
  • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
  • ImagickDraw::setVectorGraphics — Sets the vector graphics
  • ImagickDraw::setViewbox — Sets the overall canvas size
  • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
  • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
  • ImagickDraw::translate — Applies a translation to the current coordinate system
Imagick::writeImages
ImagickDraw::affine
ImageMagick


Adjusts the current affine transformation matrix

The ImagickDraw class
ImagickDraw::annotation
The ImagickDraw class
PHP 手册

ImagickDraw::affine

(PECL imagick 2.0.0)

ImagickDraw::affine — Adjusts the current affine transformation matrix

说明

bool ImagickDraw::affine ( array $affine )
Warning

本函数暂无文档，仅有参数列表。

Adjusts the current affine transformation matrix with the specified affine transformation matrix.

参数

affine

Affine matrix parameters

返回值

无返回值。

The ImagickDraw class
ImagickDraw::annotation
The ImagickDraw class


Draws text on the image

ImagickDraw::affine
ImagickDraw::arc
The ImagickDraw class
PHP 手册

ImagickDraw::annotation

(PECL imagick 2.0.0)

ImagickDraw::annotation — Draws text on the image

说明

bool ImagickDraw::annotation ( float $x , float $y , string $text )
Warning

本函数暂无文档，仅有参数列表。

Draws text on the image.

参数

x

The x coordinate where text is drawn

y

The y coordinate where text is drawn

text

The text to draw on the image

返回值

无返回值。

ImagickDraw::affine
ImagickDraw::arc
The ImagickDraw class


Draws an arc

ImagickDraw::annotation
ImagickDraw::bezier
The ImagickDraw class
PHP 手册

ImagickDraw::arc

(PECL imagick 2.0.0)

ImagickDraw::arc — Draws an arc

说明

bool ImagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
Warning

本函数暂无文档，仅有参数列表。

Draws an arc falling within a specified bounding rectangle on the image.

参数

sx

Starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

返回值

无返回值。

ImagickDraw::annotation
ImagickDraw::bezier
The ImagickDraw class


Draws a bezier curve

ImagickDraw::arc
ImagickDraw::circle
The ImagickDraw class
PHP 手册

ImagickDraw::bezier

(PECL imagick 2.0.0)

ImagickDraw::bezier — Draws a bezier curve

说明

bool ImagickDraw::bezier ( array $coordinates )
Warning

本函数暂无文档，仅有参数列表。

Draws a bezier curve through a set of points on the image.

参数

coordinates

Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

返回值

无返回值。

ImagickDraw::arc
ImagickDraw::circle
The ImagickDraw class


Draws a circle

ImagickDraw::bezier
ImagickDraw::clear
The ImagickDraw class
PHP 手册

ImagickDraw::circle

(PECL imagick 2.0.0)

ImagickDraw::circle — Draws a circle

说明

bool ImagickDraw::circle ( float $ox , float $oy , float $px , float $py )
Warning

本函数暂无文档，仅有参数列表。

Draws a circle on the image.

参数

ox

origin x coordinate

oy

origin y coordinate

px

perimeter x coordinate

py

perimeter y coordinate

返回值

无返回值。

ImagickDraw::bezier
ImagickDraw::clear
The ImagickDraw class


Clears the ImagickDraw

ImagickDraw::circle
ImagickDraw::clone
The ImagickDraw class
PHP 手册

ImagickDraw::clear

(PECL imagick 2.0.0)

ImagickDraw::clear — Clears the ImagickDraw

说明

bool ImagickDraw::clear ( void )
Warning

本函数暂无文档，仅有参数列表。

Clears the ImagickDraw object of any accumulated commands, and resets the settings it contains to their defaults.

返回值

Returns an ImagickDraw object.

ImagickDraw::circle
ImagickDraw::clone
The ImagickDraw class


Makes an exact copy of the specified ImagickDraw object

ImagickDraw::clear
ImagickDraw::color
The ImagickDraw class
PHP 手册

ImagickDraw::clone

(PECL imagick 2.0.0)

ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object

说明

ImagickDraw ImagickDraw::clone ( void )
Warning

本函数暂无文档，仅有参数列表。

Makes an exact copy of the specified ImagickDraw object.

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

ImagickDraw::clear
ImagickDraw::color
The ImagickDraw class


Draws color on image

ImagickDraw::clone
ImagickDraw::comment
The ImagickDraw class
PHP 手册

ImagickDraw::color

(PECL imagick 2.0.0)

ImagickDraw::color — Draws color on image

说明

bool ImagickDraw::color ( float $x , float $y , int $paintMethod )
Warning

本函数暂无文档，仅有参数列表。

Draws color on image using the current fill color, starting at specified position, and using specified paint method.

参数

x

x coordinate of the paint

y

y coordinate of the paint

paintMethod

one of the PAINT_ constants

返回值

无返回值。

ImagickDraw::clone
ImagickDraw::comment
The ImagickDraw class


Adds a comment

ImagickDraw::color
ImagickDraw::composite
The ImagickDraw class
PHP 手册

ImagickDraw::comment

(PECL imagick 2.0.0)

ImagickDraw::comment — Adds a comment

说明

bool ImagickDraw::comment ( string $comment )
Warning

本函数暂无文档，仅有参数列表。

Adds a comment to a vector output stream.

参数

comment

The comment string to add to vector output stream

返回值

无返回值。

ImagickDraw::color
ImagickDraw::composite
The ImagickDraw class


Composites an image onto the current image

ImagickDraw::comment
ImagickDraw::__construct
The ImagickDraw class
PHP 手册

ImagickDraw::composite

(PECL imagick 2.0.0)

ImagickDraw::composite — Composites an image onto the current image

说明

bool ImagickDraw::composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
Warning

本函数暂无文档，仅有参数列表。

Composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

参数

compose

composition operator. One of COMPOSITE_ constants

x

x coordinate of the top left corner

y

y coordinate of the top left corner

width

width of the composition image

height

height of the composition image

compositeWand

the Imagick object where composition image is taken from

返回值

Returns TRUE on success.

ImagickDraw::comment
ImagickDraw::__construct
The ImagickDraw class


The ImagickDraw constructor

ImagickDraw::composite
ImagickDraw::destroy
The ImagickDraw class
PHP 手册

ImagickDraw::__construct

(PECL imagick 2.0.0)

ImagickDraw::__construct — The ImagickDraw constructor

说明

ImagickDraw ImagickDraw::__construct ( void )
Warning

本函数暂无文档，仅有参数列表。

The ImagickDraw constructor

返回值

无返回值。

ImagickDraw::composite
ImagickDraw::destroy
The ImagickDraw class


Frees all associated resources

ImagickDraw::__construct
ImagickDraw::ellipse
The ImagickDraw class
PHP 手册

ImagickDraw::destroy

(PECL imagick 2.0.0)

ImagickDraw::destroy — Frees all associated resources

说明

bool ImagickDraw::destroy ( void )
Warning

本函数暂无文档，仅有参数列表。

Frees all resources associated with the ImagickDraw object.

返回值

无返回值。

ImagickDraw::__construct
ImagickDraw::ellipse
The ImagickDraw class


Draws an ellipse on the image

ImagickDraw::destroy
ImagickDraw::getClipPath
The ImagickDraw class
PHP 手册

ImagickDraw::ellipse

(PECL imagick 2.0.0)

ImagickDraw::ellipse — Draws an ellipse on the image

说明

bool ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
Warning

本函数暂无文档，仅有参数列表。

Draws an ellipse on the image.

参数

ox

oy

rx

ry

start

end

返回值

无返回值。

ImagickDraw::destroy
ImagickDraw::getClipPath
The ImagickDraw class


Obtains the current clipping path ID

ImagickDraw::ellipse
ImagickDraw::getClipRule
The ImagickDraw class
PHP 手册

ImagickDraw::getClipPath

(PECL imagick 2.0.0)

ImagickDraw::getClipPath — Obtains the current clipping path ID

说明

string ImagickDraw::getClipPath ( void )
Warning

本函数暂无文档，仅有参数列表。

Obtains the current clipping path ID.

返回值

Returns a string containing the clip path ID or false if no clip path exists.

ImagickDraw::ellipse
ImagickDraw::getClipRule
The ImagickDraw class


Returns the current polygon fill rule

ImagickDraw::getClipPath
ImagickDraw::getClipUnits
The ImagickDraw class
PHP 手册

ImagickDraw::getClipRule

(PECL imagick 2.0.0)

ImagickDraw::getClipRule — Returns the current polygon fill rule

说明

int ImagickDraw::getClipRule ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the current polygon fill rule to be used by the clipping path.

返回值

Returns one of the FILLRULE_ constants.

ImagickDraw::getClipPath
ImagickDraw::getClipUnits
The ImagickDraw class


Returns the interpretation of clip path units

ImagickDraw::getClipRule
ImagickDraw::getFillColor
The ImagickDraw class
PHP 手册

ImagickDraw::getClipUnits

(PECL imagick 2.0.0)

ImagickDraw::getClipUnits — Returns the interpretation of clip path units

说明

int ImagickDraw::getClipUnits ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the interpretation of clip path units.

返回值

Returns an int on success.

ImagickDraw::getClipRule
ImagickDraw::getFillColor
The ImagickDraw class


Returns the fill color

ImagickDraw::getClipUnits
ImagickDraw::getFillOpacity
The ImagickDraw class
PHP 手册

ImagickDraw::getFillColor

(PECL imagick 2.0.0)

ImagickDraw::getFillColor — Returns the fill color

说明

ImagickPixel ImagickDraw::getFillColor ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the fill color used for drawing filled objects.

返回值

Returns an ImagickPixel object.

ImagickDraw::getClipUnits
ImagickDraw::getFillOpacity
The ImagickDraw class


Returns the opacity used when drawing

ImagickDraw::getFillColor
ImagickDraw::getFillRule
The ImagickDraw class
PHP 手册

ImagickDraw::getFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::getFillOpacity — Returns the opacity used when drawing

说明

float ImagickDraw::getFillOpacity ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

ImagickDraw::getFillColor
ImagickDraw::getFillRule
The ImagickDraw class


Returns the fill rule

ImagickDraw::getFillOpacity
ImagickDraw::getFont
The ImagickDraw class
PHP 手册

ImagickDraw::getFillRule

(PECL imagick 2.0.0)

ImagickDraw::getFillRule — Returns the fill rule

说明

int ImagickDraw::getFillRule ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the fill rule used while drawing polygons.

返回值

Returns a FILLRULE_ constant

ImagickDraw::getFillOpacity
ImagickDraw::getFont
The ImagickDraw class


Returns the font

ImagickDraw::getFillRule
ImagickDraw::getFontFamily
The ImagickDraw class
PHP 手册

ImagickDraw::getFont

(PECL imagick 2.0.0)

ImagickDraw::getFont — Returns the font

说明

string ImagickDraw::getFont ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns a string specifying the font used when annotating with text.

返回值

Returns a string on success and false if no font is set.

ImagickDraw::getFillRule
ImagickDraw::getFontFamily
The ImagickDraw class


Returns the font family

ImagickDraw::getFont
ImagickDraw::getFontSize
The ImagickDraw class
PHP 手册

ImagickDraw::getFontFamily

(PECL imagick 2.0.0)

ImagickDraw::getFontFamily — Returns the font family

说明

string ImagickDraw::getFontFamily ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the font family to use when annotating with text.

返回值

Returns the font family currently selected or false if font family is not set.

ImagickDraw::getFont
ImagickDraw::getFontSize
The ImagickDraw class


Returns the font pointsize

ImagickDraw::getFontFamily
ImagickDraw::getFontStyle
The ImagickDraw class
PHP 手册

ImagickDraw::getFontSize

(PECL imagick 2.0.0)

ImagickDraw::getFontSize — Returns the font pointsize

说明

float ImagickDraw::getFontSize ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the font pointsize used when annotating with text.

返回值

Returns the font size associated with the current ImagickDraw object.

ImagickDraw::getFontFamily
ImagickDraw::getFontStyle
The ImagickDraw class


Returns the font style

ImagickDraw::getFontSize
ImagickDraw::getFontWeight
The ImagickDraw class
PHP 手册

ImagickDraw::getFontStyle

(PECL imagick 2.0.0)

ImagickDraw::getFontStyle — Returns the font style

说明

int ImagickDraw::getFontStyle ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the font style used when annotating with text.

返回值

Returns the font style constant (STYLE_) associated with the ImagickDraw object or 0 if no style is set.

ImagickDraw::getFontSize
ImagickDraw::getFontWeight
The ImagickDraw class


Returns the font weight

ImagickDraw::getFontStyle
ImagickDraw::getGravity
The ImagickDraw class
PHP 手册

ImagickDraw::getFontWeight

(PECL imagick 2.0.0)

ImagickDraw::getFontWeight — Returns the font weight

说明

int ImagickDraw::getFontWeight ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the font weight used when annotating with text.

返回值

Returns an int on success and 0 if no weight is set.

ImagickDraw::getFontStyle
ImagickDraw::getGravity
The ImagickDraw class


Returns the text placement gravity

ImagickDraw::getFontWeight
ImagickDraw::getStrokeAntialias
The ImagickDraw class
PHP 手册

ImagickDraw::getGravity

(PECL imagick 2.0.0)

ImagickDraw::getGravity — Returns the text placement gravity

说明

int ImagickDraw::getGravity ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the text placement gravity used when annotating with text.

返回值

Returns a GRAVITY_ constant on success and 0 if no gravity is set.

ImagickDraw::getFontWeight
ImagickDraw::getStrokeAntialias
The ImagickDraw class


Returns the current stroke antialias setting

ImagickDraw::getGravity
ImagickDraw::getStrokeColor
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting

说明

bool ImagickDraw::getStrokeAntialias ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

返回值

Returns TRUE if antialiasing is on and false if it is off.

ImagickDraw::getGravity
ImagickDraw::getStrokeColor
The ImagickDraw class


Returns the color used for stroking object outlines

ImagickDraw::getStrokeAntialias
ImagickDraw::getStrokeDashArray
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines

说明

ImagickPixel ImagickDraw::getStrokeColor ( ImagickPixel $stroke_color )
Warning

本函数暂无文档，仅有参数列表。

Returns the color used for stroking object outlines.

参数

stroke_color

返回值

Returns an ImagickPixel object which describes the color.

ImagickDraw::getStrokeAntialias
ImagickDraw::getStrokeDashArray
The ImagickDraw class


Returns an array representing the pattern of dashes and gaps used to stroke paths

ImagickDraw::getStrokeColor
ImagickDraw::getStrokeDashOffset
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths

说明

array ImagickDraw::getStrokeDashArray ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns an array representing the pattern of dashes and gaps used to stroke paths.

返回值

Returns an array on success and empty array if not set.

ImagickDraw::getStrokeColor
ImagickDraw::getStrokeDashOffset
The ImagickDraw class


Returns the offset into the dash pattern to start the dash

ImagickDraw::getStrokeDashArray
ImagickDraw::getStrokeLineCap
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash

说明

float ImagickDraw::getStrokeDashOffset ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the offset into the dash pattern to start the dash.

返回值

Returns a float representing the offset and 0 if it's not set.

ImagickDraw::getStrokeDashArray
ImagickDraw::getStrokeLineCap
The ImagickDraw class


Returns the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::getStrokeDashOffset
ImagickDraw::getStrokeLineJoin
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked

说明

int ImagickDraw::getStrokeLineCap ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the shape to be used at the end of open subpaths when they are stroked.

返回值

Returns one of the LINECAP_ constants or 0 if stroke linecap is not set.

ImagickDraw::getStrokeDashOffset
ImagickDraw::getStrokeLineJoin
The ImagickDraw class


Returns the shape to be used at the corners of paths when they are stroked

ImagickDraw::getStrokeLineCap
ImagickDraw::getStrokeMiterLimit
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked

说明

int ImagickDraw::getStrokeLineJoin ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

返回值

Returns one of the LINEJOIN_ constants or 0 if stroke line join is not set.

ImagickDraw::getStrokeLineCap
ImagickDraw::getStrokeMiterLimit
The ImagickDraw class


Returns the stroke miter limit

ImagickDraw::getStrokeLineJoin
ImagickDraw::getStrokeOpacity
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit

说明

int ImagickDraw::getStrokeMiterLimit ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

返回值

Returns an int describing the miter limit and 0 if no miter limit is set.

ImagickDraw::getStrokeLineJoin
ImagickDraw::getStrokeOpacity
The ImagickDraw class


Returns the opacity of stroked object outlines

ImagickDraw::getStrokeMiterLimit
ImagickDraw::getStrokeWidth
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines

说明

float ImagickDraw::getStrokeOpacity ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the opacity of stroked object outlines.

返回值

Returns a double describing the opacity.

ImagickDraw::getStrokeMiterLimit
ImagickDraw::getStrokeWidth
The ImagickDraw class


Returns the width of the stroke used to draw object outlines

ImagickDraw::getStrokeOpacity
ImagickDraw::getTextAlignment
The ImagickDraw class
PHP 手册

ImagickDraw::getStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines

说明

float ImagickDraw::getStrokeWidth ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the width of the stroke used to draw object outlines.

返回值

Returns a double describing the stroke width.

ImagickDraw::getStrokeOpacity
ImagickDraw::getTextAlignment
The ImagickDraw class


Returns the text alignment

ImagickDraw::getStrokeWidth
ImagickDraw::getTextAntialias
The ImagickDraw class
PHP 手册

ImagickDraw::getTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::getTextAlignment — Returns the text alignment

说明

int ImagickDraw::getTextAlignment ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the alignment applied when annotating with text.

返回值

Returns one of the ALIGN_ constants and 0 if no align is set.

ImagickDraw::getStrokeWidth
ImagickDraw::getTextAntialias
The ImagickDraw class


Returns the current text antialias setting

ImagickDraw::getTextAlignment
ImagickDraw::getTextDecoration
The ImagickDraw class
PHP 手册

ImagickDraw::getTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::getTextAntialias — Returns the current text antialias setting

说明

bool ImagickDraw::getTextAntialias ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

返回值

Returns TRUE if text is antialiased and false if not.

ImagickDraw::getTextAlignment
ImagickDraw::getTextDecoration
The ImagickDraw class


Returns the text decoration

ImagickDraw::getTextAntialias
ImagickDraw::getTextEncoding
The ImagickDraw class
PHP 手册

ImagickDraw::getTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::getTextDecoration — Returns the text decoration

说明

int ImagickDraw::getTextDecoration ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the decoration applied when annotating with text.

返回值

Returns one of the DECORATION_ constants and 0 if no decoration is set.

ImagickDraw::getTextAntialias
ImagickDraw::getTextEncoding
The ImagickDraw class


Returns the code set used for text annotations

ImagickDraw::getTextDecoration
ImagickDraw::getTextUnderColor
The ImagickDraw class
PHP 手册

ImagickDraw::getTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::getTextEncoding — Returns the code set used for text annotations

说明

string ImagickDraw::getTextEncoding ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns a string which specifies the code set used for text annotations.

返回值

Returns a string specifying the code set or false if text encoding is not set.

ImagickDraw::getTextDecoration
ImagickDraw::getTextUnderColor
The ImagickDraw class


Returns the text under color

ImagickDraw::getTextEncoding
ImagickDraw::getVectorGraphics
The ImagickDraw class
PHP 手册

ImagickDraw::getTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::getTextUnderColor — Returns the text under color

说明

ImagickPixel ImagickDraw::getTextUnderColor ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the color of a background rectangle to place under text annotations.

返回值

Returns an ImagickPixel object describing the color.

ImagickDraw::getTextEncoding
ImagickDraw::getVectorGraphics
The ImagickDraw class


Returns a string containing vector graphics

ImagickDraw::getTextUnderColor
ImagickDraw::line
The ImagickDraw class
PHP 手册

ImagickDraw::getVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::getVectorGraphics — Returns a string containing vector graphics

说明

string ImagickDraw::getVectorGraphics ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns a string which specifies the vector graphics generated by any graphics calls made since the ImagickDraw object was instantiated.

返回值

Returns a string containing the vector graphics.

ImagickDraw::getTextUnderColor
ImagickDraw::line
The ImagickDraw class


Draws a line

ImagickDraw::getVectorGraphics
ImagickDraw::matte
The ImagickDraw class
PHP 手册

ImagickDraw::line

(PECL imagick 2.0.0)

ImagickDraw::line — Draws a line

说明

bool ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey )
Warning

本函数暂无文档，仅有参数列表。

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

参数

sx

starting x coordinate

sy

starting y coordinate

ex

ending x coordinate

ey

ending y coordinate

返回值

无返回值。

ImagickDraw::getVectorGraphics
ImagickDraw::matte
The ImagickDraw class


Paints on the image's opacity channel

ImagickDraw::line
ImagickDraw::pathClose
The ImagickDraw class
PHP 手册

ImagickDraw::matte

(PECL imagick 2.0.0)

ImagickDraw::matte — Paints on the image's opacity channel

说明

bool ImagickDraw::matte ( float $x , float $y , int $paintMethod )
Warning

本函数暂无文档，仅有参数列表。

Paints on the image's opacity channel in order to set effected pixels to transparent. to influence the opacity of pixels.

参数

x

x coordinate of the matte

y

y coordinate of the matte

paintMethod

PAINT_ constant

返回值

What the function returns, first on success, then on failure. See also the &return.success; entity

ImagickDraw::line
ImagickDraw::pathClose
The ImagickDraw class


Adds a path element to the current path

ImagickDraw::matte
ImagickDraw::pathCurveToAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathClose

(PECL imagick 2.0.0)

ImagickDraw::pathClose — Adds a path element to the current path

说明

bool ImagickDraw::pathClose ( void )
Warning

本函数暂无文档，仅有参数列表。

Adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

返回值

无返回值。

ImagickDraw::matte
ImagickDraw::pathCurveToAbsolute
The ImagickDraw class


Draws a cubic Bezier curve

ImagickDraw::pathClose
ImagickDraw::pathCurveToQuadraticBezierAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve

说明

bool ImagickDraw::pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x1

x coordinate of the first control point

y1

y coordinate of the first control point

x2

x coordinate of the second control point

y2

y coordinate of the first control point

x

x coordinate of the curve end

y

y coordinate of the curve end

返回值

无返回值。

ImagickDraw::pathClose
ImagickDraw::pathCurveToQuadraticBezierAbsolute
The ImagickDraw class


Draws a quadratic Bezier curve

ImagickDraw::pathCurveToAbsolute
ImagickDraw::pathCurveToQuadraticBezierRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve

说明

bool ImagickDraw::pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x1

x coordinate of the control point

y1

y coordinate of the control point

x

x coordinate of the end point

y

y coordinate of the end point

返回值

无返回值。

ImagickDraw::pathCurveToAbsolute
ImagickDraw::pathCurveToQuadraticBezierRelative
The ImagickDraw class


Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierAbsolute
ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve

说明

bool ImagickDraw::pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x1

starting x coordinate

y1

starting y coordinate

x

ending x coordinate

y

ending y coordinate

返回值

无返回值。

ImagickDraw::pathCurveToQuadraticBezierAbsolute
ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
The ImagickDraw class


Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierRelative
ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve

说明

bool ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a quadratic Bezier curve (using relative coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x

ending x coordinate

y

ending y coordinate

返回值

无返回值。

ImagickDraw::pathCurveToQuadraticBezierRelative
ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
The ImagickDraw class


Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
ImagickDraw::pathCurveToRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve

说明

bool ImagickDraw::pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a quadratic Bezier curve (using relative coordinates) from the current point to (x, y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point). At the end of the command, the new current point becomes the final (x, y) coordinate pair used in the polybezier.

参数

x

ending x coordinate

y

ending y coordinate

返回值

无返回值。

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
ImagickDraw::pathCurveToRelative
The ImagickDraw class


Draws a cubic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
ImagickDraw::pathCurveToSmoothAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve

说明

bool ImagickDraw::pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x1

x coordinate of starting control point

y1

y coordinate of starting control point

x2

x coordinate of ending control point

y2

y coordinate of ending control point

x

ending x coordinate

y

ending y coordinate

返回值

无返回值。

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
ImagickDraw::pathCurveToSmoothAbsolute
The ImagickDraw class


Draws a cubic Bezier curve

ImagickDraw::pathCurveToRelative
ImagickDraw::pathCurveToSmoothRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve

说明

bool ImagickDraw::pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

返回值

无返回值。

ImagickDraw::pathCurveToRelative
ImagickDraw::pathCurveToSmoothRelative
The ImagickDraw class


Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothAbsolute
ImagickDraw::pathEllipticArcAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve

说明

bool ImagickDraw::pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

参数

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

返回值

无返回值。

ImagickDraw::pathCurveToSmoothAbsolute
ImagickDraw::pathEllipticArcAbsolute
The ImagickDraw class


Draws an elliptical arc

ImagickDraw::pathCurveToSmoothRelative
ImagickDraw::pathEllipticArcRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc

说明

bool ImagickDraw::pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is TRUE then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

参数

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

返回值

无返回值。

ImagickDraw::pathCurveToSmoothRelative
ImagickDraw::pathEllipticArcRelative
The ImagickDraw class


Draws an elliptical arc

ImagickDraw::pathEllipticArcAbsolute
ImagickDraw::pathFinish
The ImagickDraw class
PHP 手册

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc

说明

bool ImagickDraw::pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is TRUE then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

参数

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

返回值

无返回值。

ImagickDraw::pathEllipticArcAbsolute
ImagickDraw::pathFinish
The ImagickDraw class


Terminates the current path

ImagickDraw::pathEllipticArcRelative
ImagickDraw::pathLineToAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathFinish

(PECL imagick 2.0.0)

ImagickDraw::pathFinish — Terminates the current path

说明

bool ImagickDraw::pathFinish ( void )
Warning

本函数暂无文档，仅有参数列表。

Terminates the current path.

返回值

无返回值。

ImagickDraw::pathEllipticArcRelative
ImagickDraw::pathLineToAbsolute
The ImagickDraw class


Draws a line path

ImagickDraw::pathFinish
ImagickDraw::pathLineToHorizontalAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathLineToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToAbsolute — Draws a line path

说明

bool ImagickDraw::pathLineToAbsolute ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

参数

x

starting x coordinate

y

ending x coordinate

返回值

无返回值。

ImagickDraw::pathFinish
ImagickDraw::pathLineToHorizontalAbsolute
The ImagickDraw class


Draws a horizontal line path

ImagickDraw::pathLineToAbsolute
ImagickDraw::pathLineToHorizontalRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path

说明

bool ImagickDraw::pathLineToHorizontalAbsolute ( float $x )
Warning

本函数暂无文档，仅有参数列表。

Draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

参数

x

x coordinate

返回值

无返回值。

ImagickDraw::pathLineToAbsolute
ImagickDraw::pathLineToHorizontalRelative
The ImagickDraw class


Draws a horizontal line

ImagickDraw::pathLineToHorizontalAbsolute
ImagickDraw::pathLineToRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line

说明

bool ImagickDraw::pathLineToHorizontalRelative ( float $x )
Warning

本函数暂无文档，仅有参数列表。

Draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

参数

x

x coordinate

返回值

无返回值。

ImagickDraw::pathLineToHorizontalAbsolute
ImagickDraw::pathLineToRelative
The ImagickDraw class


Draws a line path

ImagickDraw::pathLineToHorizontalRelative
ImagickDraw::pathLineToVerticalAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathLineToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToRelative — Draws a line path

说明

bool ImagickDraw::pathLineToRelative ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

参数

x

starting x coordinate

y

starting y coordinate

返回值

无返回值。

ImagickDraw::pathLineToHorizontalRelative
ImagickDraw::pathLineToVerticalAbsolute
The ImagickDraw class


Draws a vertical line

ImagickDraw::pathLineToRelative
ImagickDraw::pathLineToVerticalRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line

说明

bool ImagickDraw::pathLineToVerticalAbsolute ( float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

参数

y

y coordinate

返回值

无返回值。

ImagickDraw::pathLineToRelative
ImagickDraw::pathLineToVerticalRelative
The ImagickDraw class


Draws a vertical line path

ImagickDraw::pathLineToVerticalAbsolute
ImagickDraw::pathMoveToAbsolute
The ImagickDraw class
PHP 手册

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path

说明

bool ImagickDraw::pathLineToVerticalRelative ( float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

参数

y

y coordinate

返回值

无返回值。

ImagickDraw::pathLineToVerticalAbsolute
ImagickDraw::pathMoveToAbsolute
The ImagickDraw class


Starts a new sub-path

ImagickDraw::pathLineToVerticalRelative
ImagickDraw::pathMoveToRelative
The ImagickDraw class
PHP 手册

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToAbsolute — Starts a new sub-path

说明

bool ImagickDraw::pathMoveToAbsolute ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

参数

x

x coordinate of the starting point

y

y coordinate of the starting point

返回值

无返回值。

ImagickDraw::pathLineToVerticalRelative
ImagickDraw::pathMoveToRelative
The ImagickDraw class


Starts a new sub-path

ImagickDraw::pathMoveToAbsolute
ImagickDraw::pathStart
The ImagickDraw class
PHP 手册

ImagickDraw::pathMoveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToRelative — Starts a new sub-path

说明

bool ImagickDraw::pathMoveToRelative ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

参数

x

target x coordinate

y

target y coordinate

返回值

无返回值。

ImagickDraw::pathMoveToAbsolute
ImagickDraw::pathStart
The ImagickDraw class


Declares the start of a path drawing list

ImagickDraw::pathMoveToRelative
ImagickDraw::point
The ImagickDraw class
PHP 手册

ImagickDraw::pathStart

(PECL imagick 2.0.0)

ImagickDraw::pathStart — Declares the start of a path drawing list

说明

bool ImagickDraw::pathStart ( void )
Warning

本函数暂无文档，仅有参数列表。

Declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

返回值

无返回值。

ImagickDraw::pathMoveToRelative
ImagickDraw::point
The ImagickDraw class


Draws a point

ImagickDraw::pathStart
ImagickDraw::polygon
The ImagickDraw class
PHP 手册

ImagickDraw::point

(PECL imagick 2.0.0)

ImagickDraw::point — Draws a point

说明

bool ImagickDraw::point ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

参数

x

point's x coordinate

y

point's y coordinate

返回值

无返回值。

ImagickDraw::pathStart
ImagickDraw::polygon
The ImagickDraw class


Draws a polygon

ImagickDraw::point
ImagickDraw::polyline
The ImagickDraw class
PHP 手册

ImagickDraw::polygon

(PECL imagick 2.0.0)

ImagickDraw::polygon — Draws a polygon

说明

bool ImagickDraw::polygon ( array $coordinates )
Warning

本函数暂无文档，仅有参数列表。

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

参数

coordinates

multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

返回值

Returns TRUE on success.

ImagickDraw::point
ImagickDraw::polyline
The ImagickDraw class


Draws a polyline

ImagickDraw::polygon
ImagickDraw::pop
The ImagickDraw class
PHP 手册

ImagickDraw::polyline

(PECL imagick 2.0.0)

ImagickDraw::polyline — Draws a polyline

说明

bool ImagickDraw::polyline ( array $coordinates )
Warning

本函数暂无文档，仅有参数列表。

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

参数

coordinates

array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

返回值

Returns TRUE on success.

ImagickDraw::polygon
ImagickDraw::pop
The ImagickDraw class


Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

ImagickDraw::polyline
ImagickDraw::popClipPath
The ImagickDraw class
PHP 手册

ImagickDraw::pop

(PECL imagick 2.0.0)

ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

说明

bool ImagickDraw::pop ( void )
Warning

本函数暂无文档，仅有参数列表。

Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw. Multiple ImagickDraws may exist. It is an error to attempt to pop more ImagickDraws than have been pushed, and it is proper form to pop all ImagickDraws which have been pushed.

返回值

Returns TRUE on success and false on failure.

ImagickDraw::polyline
ImagickDraw::popClipPath
The ImagickDraw class


Terminates a clip path definition

ImagickDraw::pop
ImagickDraw::popDefs
The ImagickDraw class
PHP 手册

ImagickDraw::popClipPath

(PECL imagick 2.0.0)

ImagickDraw::popClipPath — Terminates a clip path definition

说明

bool ImagickDraw::popClipPath ( void )
Warning

本函数暂无文档，仅有参数列表。

Terminates a clip path definition.

返回值

无返回值。

ImagickDraw::pop
ImagickDraw::popDefs
The ImagickDraw class


Terminates a definition list

ImagickDraw::popClipPath
ImagickDraw::popPattern
The ImagickDraw class
PHP 手册

ImagickDraw::popDefs

(PECL imagick 2.0.0)

ImagickDraw::popDefs — Terminates a definition list

说明

bool ImagickDraw::popDefs ( void )
Warning

本函数暂无文档，仅有参数列表。

Terminates a definition list.

返回值

无返回值。

ImagickDraw::popClipPath
ImagickDraw::popPattern
The ImagickDraw class


Terminates a pattern definition

ImagickDraw::popDefs
ImagickDraw::push
The ImagickDraw class
PHP 手册

ImagickDraw::popPattern

(PECL imagick 2.0.0)

ImagickDraw::popPattern — Terminates a pattern definition

说明

bool ImagickDraw::popPattern ( void )
Warning

本函数暂无文档，仅有参数列表。

Terminates a pattern definition.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ImagickDraw::popDefs
ImagickDraw::push
The ImagickDraw class


Clones the current ImagickDraw and pushes it to the stack

ImagickDraw::popPattern
ImagickDraw::pushClipPath
The ImagickDraw class
PHP 手册

ImagickDraw::push

(PECL imagick 2.0.0)

ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack

说明

bool ImagickDraw::push ( void )
Warning

本函数暂无文档，仅有参数列表。

Clones the current ImagickDraw to create a new ImagickDraw, which is then added to the ImagickDraw stack. The original drawing ImagickDraw(s) may be returned to by invoking pop(). The ImagickDraws are stored on a ImagickDraw stack. For every Pop there must have already been an equivalent Push.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ImagickDraw::popPattern
ImagickDraw::pushClipPath
The ImagickDraw class


Starts a clip path definition

ImagickDraw::push
ImagickDraw::pushDefs
The ImagickDraw class
PHP 手册

ImagickDraw::pushClipPath

(PECL imagick 2.0.0)

ImagickDraw::pushClipPath — Starts a clip path definition

说明

bool ImagickDraw::pushClipPath ( string $clip_mask_id )
Warning

本函数暂无文档，仅有参数列表。

Starts a clip path definition which is comprised of any number of drawing commands and terminated by a ImagickDraw::popClipPath() command.

参数

clip_mask_id

Clip mask Id

返回值

无返回值。

ImagickDraw::push
ImagickDraw::pushDefs
The ImagickDraw class


Indicates that following commands create named elements for early processing

ImagickDraw::pushClipPath
ImagickDraw::pushPattern
The ImagickDraw class
PHP 手册

ImagickDraw::pushDefs

(PECL imagick 2.0.0)

ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing

说明

bool ImagickDraw::pushDefs ( void )
Warning

本函数暂无文档，仅有参数列表。

Indicates that commands up to a terminating ImagickDraw::popDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

返回值

无返回值。

ImagickDraw::pushClipPath
ImagickDraw::pushPattern
The ImagickDraw class


Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

ImagickDraw::pushDefs
ImagickDraw::rectangle
The ImagickDraw class
PHP 手册

ImagickDraw::pushPattern

(PECL imagick 2.0.0)

ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

说明

bool ImagickDraw::pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
Warning

本函数暂无文档，仅有参数列表。

Indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

参数

pattern_id

the pattern Id

x

x coordinate of the top-left corner

y

y coordinate of the top-left corner

width

width of the pattern

height

height of the pattern

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ImagickDraw::pushDefs
ImagickDraw::rectangle
The ImagickDraw class


Draws a rectangle

ImagickDraw::pushPattern
ImagickDraw::render
The ImagickDraw class
PHP 手册

ImagickDraw::rectangle

(PECL imagick 2.0.0)

ImagickDraw::rectangle — Draws a rectangle

说明

bool ImagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
Warning

本函数暂无文档，仅有参数列表。

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

参数

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right corner

y2

y coordinate of the bottom right corner

返回值

无返回值。

ImagickDraw::pushPattern
ImagickDraw::render
The ImagickDraw class


Renders all preceding drawing commands onto the image

ImagickDraw::rectangle
ImagickDraw::rotate
The ImagickDraw class
PHP 手册

ImagickDraw::render

(PECL imagick 2.0.0)

ImagickDraw::render — Renders all preceding drawing commands onto the image

说明

bool ImagickDraw::render ( void )
Warning

本函数暂无文档，仅有参数列表。

Renders all preceding drawing commands onto the image.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ImagickDraw::rectangle
ImagickDraw::rotate
The ImagickDraw class


Applies the specified rotation to the current coordinate space

ImagickDraw::render
ImagickDraw::roundRectangle
The ImagickDraw class
PHP 手册

ImagickDraw::rotate

(PECL imagick 2.0.0)

ImagickDraw::rotate — Applies the specified rotation to the current coordinate space

说明

bool ImagickDraw::rotate ( float $degrees )
Warning

本函数暂无文档，仅有参数列表。

Applies the specified rotation to the current coordinate space.

参数

degrees

degrees to rotate

返回值

无返回值。

ImagickDraw::render
ImagickDraw::roundRectangle
The ImagickDraw class


Draws a rounded rectangle

ImagickDraw::rotate
ImagickDraw::scale
The ImagickDraw class
PHP 手册

ImagickDraw::roundRectangle

(PECL imagick 2.0.0)

ImagickDraw::roundRectangle — Draws a rounded rectangle

说明

bool ImagickDraw::roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
Warning

本函数暂无文档，仅有参数列表。

Draws a rounded rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

参数

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right

y2

y coordinate of the bottom right

rx

x rounding

ry

y rounding

返回值

无返回值。

ImagickDraw::rotate
ImagickDraw::scale
The ImagickDraw class


Adjusts the scaling factor

ImagickDraw::roundRectangle
ImagickDraw::setClipPath
The ImagickDraw class
PHP 手册

ImagickDraw::scale

(PECL imagick 2.0.0)

ImagickDraw::scale — Adjusts the scaling factor

说明

bool ImagickDraw::scale ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

参数

x

horizontal factor

y

vertical factor

返回值

无返回值。

ImagickDraw::roundRectangle
ImagickDraw::setClipPath
The ImagickDraw class


Associates a named clipping path with the image

ImagickDraw::scale
ImagickDraw::setClipRule
The ImagickDraw class
PHP 手册

ImagickDraw::setClipPath

(PECL imagick 2.0.0)

ImagickDraw::setClipPath — Associates a named clipping path with the image

说明

bool ImagickDraw::setClipPath ( string $clip_mask )
Warning

本函数暂无文档，仅有参数列表。

Associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as long as it remains in effect.

参数

clip_mask

the clipping path name

返回值

无返回值。

ImagickDraw::scale
ImagickDraw::setClipRule
The ImagickDraw class


Set the polygon fill rule to be used by the clipping path

ImagickDraw::setClipPath
ImagickDraw::setClipUnits
The ImagickDraw class
PHP 手册

ImagickDraw::setClipRule

(PECL imagick 2.0.0)

ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path

说明

bool ImagickDraw::setClipRule ( int $fill_rule )
Warning

本函数暂无文档，仅有参数列表。

Set the polygon fill rule to be used by the clipping path.

参数

fill_rule

FILLRULE_ constant

返回值

无返回值。

ImagickDraw::setClipPath
ImagickDraw::setClipUnits
The ImagickDraw class


Sets the interpretation of clip path units

ImagickDraw::setClipRule
ImagickDraw::setFillAlpha
The ImagickDraw class
PHP 手册

ImagickDraw::setClipUnits

(PECL imagick 2.0.0)

ImagickDraw::setClipUnits — Sets the interpretation of clip path units

说明

bool ImagickDraw::setClipUnits ( int $clip_units )
Warning

本函数暂无文档，仅有参数列表。

Sets the interpretation of clip path units.

参数

clip_units

the number of clip units

返回值

无返回值。

ImagickDraw::setClipRule
ImagickDraw::setFillAlpha
The ImagickDraw class


Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setClipUnits
ImagickDraw::setFillColor
The ImagickDraw class
PHP 手册

ImagickDraw::setFillAlpha

(PECL imagick 2.0.0)

ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture

说明

bool ImagickDraw::setFillAlpha ( float $opacity )
Warning

本函数暂无文档，仅有参数列表。

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

参数

opacity

fill alpha

返回值

无返回值。

ImagickDraw::setClipUnits
ImagickDraw::setFillColor
The ImagickDraw class


Sets the fill color to be used for drawing filled objects

ImagickDraw::setFillAlpha
ImagickDraw::setFillOpacity
The ImagickDraw class
PHP 手册

ImagickDraw::setFillColor

(PECL imagick 2.0.0)

ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects

说明

bool ImagickDraw::setFillColor ( ImagickPixel $fill_pixel )
Warning

本函数暂无文档，仅有参数列表。

Sets the fill color to be used for drawing filled objects.

参数

fill_pixel

ImagickPixel to use to set the color

返回值

无返回值。

ImagickDraw::setFillAlpha
ImagickDraw::setFillOpacity
The ImagickDraw class


Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillColor
ImagickDraw::setFillPatternURL
The ImagickDraw class
PHP 手册

ImagickDraw::setFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture

说明

bool ImagickDraw::setFillOpacity ( float $fillOpacity )
Warning

本函数暂无文档，仅有参数列表。

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

参数

fillOpacity

the fill opacity

返回值

无返回值。

ImagickDraw::setFillColor
ImagickDraw::setFillPatternURL
The ImagickDraw class


Sets the URL to use as a fill pattern for filling objects

ImagickDraw::setFillOpacity
ImagickDraw::setFillRule
The ImagickDraw class
PHP 手册

ImagickDraw::setFillPatternURL

(PECL imagick 2.0.0)

ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects

说明

bool ImagickDraw::setFillPatternURL ( string $fill_url )
Warning

本函数暂无文档，仅有参数列表。

Sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

参数

fill_url

URL to use to obtain fill pattern.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ImagickDraw::setFillOpacity
ImagickDraw::setFillRule
The ImagickDraw class


Sets the fill rule to use while drawing polygons

ImagickDraw::setFillPatternURL
ImagickDraw::setFont
The ImagickDraw class
PHP 手册

ImagickDraw::setFillRule

(PECL imagick 2.0.0)

ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons

说明

bool ImagickDraw::setFillRule ( int $fill_rule )
Warning

本函数暂无文档，仅有参数列表。

Sets the fill rule to use while drawing polygons.

参数

fill_rule

FILLRULE_ constant

返回值

无返回值。

ImagickDraw::setFillPatternURL
ImagickDraw::setFont
The ImagickDraw class


Sets the fully-specified font to use when annotating with text

ImagickDraw::setFillRule
ImagickDraw::setFontFamily
The ImagickDraw class
PHP 手册

ImagickDraw::setFont

(PECL imagick 2.0.0)

ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text

说明

bool ImagickDraw::setFont ( string $font_name )
Warning

本函数暂无文档，仅有参数列表。

Sets the fully-specified font to use when annotating with text.

参数

font_name

返回值

Returns TRUE on success.

ImagickDraw::setFillRule
ImagickDraw::setFontFamily
The ImagickDraw class


Sets the font family to use when annotating with text

ImagickDraw::setFont
ImagickDraw::setFontSize
The ImagickDraw class
PHP 手册

ImagickDraw::setFontFamily

(PECL imagick 2.0.0)

ImagickDraw::setFontFamily — Sets the font family to use when annotating with text

说明

bool ImagickDraw::setFontFamily ( string $font_family )
Warning

本函数暂无文档，仅有参数列表。

Sets the font family to use when annotating with text.

参数

font_family

the font family

返回值

Returns TRUE on success.

ImagickDraw::setFont
ImagickDraw::setFontSize
The ImagickDraw class


Sets the font pointsize to use when annotating with text

ImagickDraw::setFontFamily
ImagickDraw::setFontStretch
The ImagickDraw class
PHP 手册

ImagickDraw::setFontSize

(PECL imagick 2.0.0)

ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text

说明

bool ImagickDraw::setFontSize ( float $pointsize )
Warning

本函数暂无文档，仅有参数列表。

Sets the font pointsize to use when annotating with text.

参数

pointsize

the point size

返回值

无返回值。

ImagickDraw::setFontFamily
ImagickDraw::setFontStretch
The ImagickDraw class


Sets the font stretch to use when annotating with text

ImagickDraw::setFontSize
ImagickDraw::setFontStyle
The ImagickDraw class
PHP 手册

ImagickDraw::setFontStretch

(PECL imagick 2.0.0)

ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text

说明

bool ImagickDraw::setFontStretch ( int $fontStretch )
Warning

本函数暂无文档，仅有参数列表。

Sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

参数

fontStretch

STRETCH_ constant

返回值

无返回值。

ImagickDraw::setFontSize
ImagickDraw::setFontStyle
The ImagickDraw class


Sets the font style to use when annotating with text

ImagickDraw::setFontStretch
ImagickDraw::setFontWeight
The ImagickDraw class
PHP 手册

ImagickDraw::setFontStyle

(PECL imagick 2.0.0)

ImagickDraw::setFontStyle — Sets the font style to use when annotating with text

说明

bool ImagickDraw::setFontStyle ( int $style )
Warning

本函数暂无文档，仅有参数列表。

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

参数

style

STYLETYPE_ constant

返回值

无返回值。

ImagickDraw::setFontStretch
ImagickDraw::setFontWeight
The ImagickDraw class


Sets the font weight

ImagickDraw::setFontStyle
ImagickDraw::setGravity
The ImagickDraw class
PHP 手册

ImagickDraw::setFontWeight

(PECL imagick 2.0.0)

ImagickDraw::setFontWeight — Sets the font weight

说明

bool ImagickDraw::setFontWeight ( int $font_weight )
Warning

本函数暂无文档，仅有参数列表。

Sets the font weight to use when annotating with text.

参数

font_weight

返回值

ImagickDraw::setFontStyle
ImagickDraw::setGravity
The ImagickDraw class


Sets the text placement gravity

ImagickDraw::setFontWeight
ImagickDraw::setStrokeAlpha
The ImagickDraw class
PHP 手册

ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravity — Sets the text placement gravity

说明

bool ImagickDraw::setGravity ( int $gravity )
Warning

本函数暂无文档，仅有参数列表。

Sets the text placement gravity to use when annotating with text.

参数

gravity

GRAVITY_ constant

返回值

无返回值。

ImagickDraw::setFontWeight
ImagickDraw::setStrokeAlpha
The ImagickDraw class


Specifies the opacity of stroked object outlines

ImagickDraw::setGravity
ImagickDraw::setStrokeAntialias
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeAlpha

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines

说明

bool ImagickDraw::setStrokeAlpha ( float $opacity )
Warning

本函数暂无文档，仅有参数列表。

Specifies the opacity of stroked object outlines.

参数

opacity

opacity

返回值

无返回值。

ImagickDraw::setGravity
ImagickDraw::setStrokeAntialias
The ImagickDraw class


Controls whether stroked outlines are antialiased

ImagickDraw::setStrokeAlpha
ImagickDraw::setStrokeColor
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased

说明

bool ImagickDraw::setStrokeAntialias ( bool $stroke_antialias )
Warning

本函数暂无文档，仅有参数列表。

Controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

参数

stroke_antialias

the antialias setting

返回值

无返回值。

ImagickDraw::setStrokeAlpha
ImagickDraw::setStrokeColor
The ImagickDraw class


Sets the color used for stroking object outlines

ImagickDraw::setStrokeAntialias
ImagickDraw::setStrokeDashArray
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines

说明

bool ImagickDraw::setStrokeColor ( ImagickPixel $stroke_pixel )
Warning

本函数暂无文档，仅有参数列表。

Sets the color used for stroking object outlines.

参数

stroke_pixel

the stroke color

返回值

无返回值。

ImagickDraw::setStrokeAntialias
ImagickDraw::setStrokeDashArray
The ImagickDraw class


Specifies the pattern of dashes and gaps used to stroke paths

ImagickDraw::setStrokeColor
ImagickDraw::setStrokeDashOffset
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths

说明

bool ImagickDraw::setStrokeDashArray ( array $dashArray )
Warning

本函数暂无文档，仅有参数列表。

Specifies the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dash_array. A typical strokeDashArray_ array might contain the members 5 3 2.

参数

dashArray

array of floats

返回值

Returns TRUE on success.

ImagickDraw::setStrokeColor
ImagickDraw::setStrokeDashOffset
The ImagickDraw class


Specifies the offset into the dash pattern to start the dash

ImagickDraw::setStrokeDashArray
ImagickDraw::setStrokeLineCap
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash

说明

bool ImagickDraw::setStrokeDashOffset ( float $dash_offset )
Warning

本函数暂无文档，仅有参数列表。

Specifies the offset into the dash pattern to start the dash.

参数

dash_offset

dash offset

返回值

无返回值。

ImagickDraw::setStrokeDashArray
ImagickDraw::setStrokeLineCap
The ImagickDraw class


Specifies the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::setStrokeDashOffset
ImagickDraw::setStrokeLineJoin
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked

说明

bool ImagickDraw::setStrokeLineCap ( int $linecap )
Warning

本函数暂无文档，仅有参数列表。

Specifies the shape to be used at the end of open subpaths when they are stroked.

参数

linecap

LINECAP_ constant

返回值

无返回值。

ImagickDraw::setStrokeDashOffset
ImagickDraw::setStrokeLineJoin
The ImagickDraw class


Specifies the shape to be used at the corners of paths when they are stroked

ImagickDraw::setStrokeLineCap
ImagickDraw::setStrokeMiterLimit
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked

说明

bool ImagickDraw::setStrokeLineJoin ( int $linejoin )
Warning

本函数暂无文档，仅有参数列表。

Specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

参数

linejoin

LINEJOIN_ constant

返回值

无返回值。

ImagickDraw::setStrokeLineCap
ImagickDraw::setStrokeMiterLimit
The ImagickDraw class


Specifies the miter limit

ImagickDraw::setStrokeLineJoin
ImagickDraw::setStrokeOpacity
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::setStrokeMiterLimit — Specifies the miter limit

说明

bool ImagickDraw::setStrokeMiterLimit ( int $miterlimit )
Warning

本函数暂无文档，仅有参数列表。

Specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

参数

miterlimit

the miter limit

返回值

无返回值。

ImagickDraw::setStrokeLineJoin
ImagickDraw::setStrokeOpacity
The ImagickDraw class


Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeMiterLimit
ImagickDraw::setStrokePatternURL
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines

说明

bool ImagickDraw::setStrokeOpacity ( float $stroke_opacity )
Warning

本函数暂无文档，仅有参数列表。

Specifies the opacity of stroked object outlines.

参数

stroke_opacity

stroke opacity. 1.0 is fully opaque

返回值

无返回值。

ImagickDraw::setStrokeMiterLimit
ImagickDraw::setStrokePatternURL
The ImagickDraw class


Sets the pattern used for stroking object outlines

ImagickDraw::setStrokeOpacity
ImagickDraw::setStrokeWidth
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokePatternURL

(PECL imagick 2.0.0)

ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines

说明

bool ImagickDraw::setStrokePatternURL ( string $stroke_url )
Warning

本函数暂无文档，仅有参数列表。

Sets the pattern used for stroking object outlines.

参数

stroke_url

stroke URL

返回值

imagick.imagickdraw.return.success;

ImagickDraw::setStrokeOpacity
ImagickDraw::setStrokeWidth
The ImagickDraw class


Sets the width of the stroke used to draw object outlines

ImagickDraw::setStrokePatternURL
ImagickDraw::setTextAlignment
The ImagickDraw class
PHP 手册

ImagickDraw::setStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines

说明

bool ImagickDraw::setStrokeWidth ( float $stroke_width )
Warning

本函数暂无文档，仅有参数列表。

Sets the width of the stroke used to draw object outlines.

参数

stroke_width

stroke width

返回值

无返回值。

ImagickDraw::setStrokePatternURL
ImagickDraw::setTextAlignment
The ImagickDraw class


Specifies a text alignment

ImagickDraw::setStrokeWidth
ImagickDraw::setTextAntialias
The ImagickDraw class
PHP 手册

ImagickDraw::setTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::setTextAlignment — Specifies a text alignment

说明

bool ImagickDraw::setTextAlignment ( int $alignment )
Warning

本函数暂无文档，仅有参数列表。

Specifies a text alignment to be applied when annotating with text.

参数

alignment

ALIGN_ constant

返回值

无返回值。

ImagickDraw::setStrokeWidth
ImagickDraw::setTextAntialias
The ImagickDraw class


Controls whether text is antialiased

ImagickDraw::setTextAlignment
ImagickDraw::setTextDecoration
The ImagickDraw class
PHP 手册

ImagickDraw::setTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::setTextAntialias — Controls whether text is antialiased

说明

bool ImagickDraw::setTextAntialias ( bool $antiAlias )
Warning

本函数暂无文档，仅有参数列表。

Controls whether text is antialiased. Text is antialiased by default.

参数

antiAlias

返回值

无返回值。

ImagickDraw::setTextAlignment
ImagickDraw::setTextDecoration
The ImagickDraw class


Specifies a decoration

ImagickDraw::setTextAntialias
ImagickDraw::setTextEncoding
The ImagickDraw class
PHP 手册

ImagickDraw::setTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::setTextDecoration — Specifies a decoration

说明

bool ImagickDraw::setTextDecoration ( int $decoration )
Warning

本函数暂无文档，仅有参数列表。

Specifies a decoration to be applied when annotating with text.

参数

decoration

DECORATION_ constant

返回值

无返回值。

ImagickDraw::setTextAntialias
ImagickDraw::setTextEncoding
The ImagickDraw class


Specifies specifies the text code set

ImagickDraw::setTextDecoration
ImagickDraw::setTextUnderColor
The ImagickDraw class
PHP 手册

ImagickDraw::setTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::setTextEncoding — Specifies specifies the text code set

说明

bool ImagickDraw::setTextEncoding ( string $encoding )
Warning

本函数暂无文档，仅有参数列表。

Specifies specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

参数

encoding

the encoding name

返回值

无返回值。

ImagickDraw::setTextDecoration
ImagickDraw::setTextUnderColor
The ImagickDraw class


Specifies the color of a background rectangle

ImagickDraw::setTextEncoding
ImagickDraw::setVectorGraphics
The ImagickDraw class
PHP 手册

ImagickDraw::setTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle

说明

bool ImagickDraw::setTextUnderColor ( ImagickPixel $under_color )
Warning

本函数暂无文档，仅有参数列表。

Specifies the color of a background rectangle to place under text annotations.

参数

under_color

the under color

返回值

无返回值。

ImagickDraw::setTextEncoding
ImagickDraw::setVectorGraphics
The ImagickDraw class


Sets the vector graphics

ImagickDraw::setTextUnderColor
ImagickDraw::setViewbox
The ImagickDraw class
PHP 手册

ImagickDraw::setVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::setVectorGraphics — Sets the vector graphics

说明

bool ImagickDraw::setVectorGraphics ( string $xml )
Warning

本函数暂无文档，仅有参数列表。

Sets the vector graphics associated with the specified ImagickDraw object. Use this method with ImagickDraw::getVectorGraphics() as a method to persist the vector graphics state.

参数

xml

xml containing the vector graphics

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ImagickDraw::setTextUnderColor
ImagickDraw::setViewbox
The ImagickDraw class


Sets the overall canvas size

ImagickDraw::setVectorGraphics
ImagickDraw::skewX
The ImagickDraw class
PHP 手册

ImagickDraw::setViewbox

(PECL imagick 2.0.0)

ImagickDraw::setViewbox — Sets the overall canvas size

说明

bool ImagickDraw::setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
Warning

本函数暂无文档，仅有参数列表。

Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

参数

x1

left x coordinate

y1

left y coordinate

x2

right x coordinate

y2

right y coordinate

返回值

无返回值。

ImagickDraw::setVectorGraphics
ImagickDraw::skewX
The ImagickDraw class


Skews the current coordinate system in the horizontal direction

ImagickDraw::setViewbox
ImagickDraw::skewY
The ImagickDraw class
PHP 手册

ImagickDraw::skewX

(PECL imagick 2.0.0)

ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction

说明

bool ImagickDraw::skewX ( float $degrees )
Warning

本函数暂无文档，仅有参数列表。

Skews the current coordinate system in the horizontal direction.

参数

degrees

degrees to skew

返回值

无返回值。

ImagickDraw::setViewbox
ImagickDraw::skewY
The ImagickDraw class


Skews the current coordinate system in the vertical direction

ImagickDraw::skewX
ImagickDraw::translate
The ImagickDraw class
PHP 手册

ImagickDraw::skewY

(PECL imagick 2.0.0)

ImagickDraw::skewY — Skews the current coordinate system in the vertical direction

说明

bool ImagickDraw::skewY ( float $degrees )
Warning

本函数暂无文档，仅有参数列表。

Skews the current coordinate system in the vertical direction.

参数

degrees

degrees to skew

返回值

无返回值。

ImagickDraw::skewX
ImagickDraw::translate
The ImagickDraw class


Applies a translation to the current coordinate system

ImagickDraw::skewY
The ImagickPixel class
The ImagickDraw class
PHP 手册

ImagickDraw::translate

(PECL imagick 2.0.0)

ImagickDraw::translate — Applies a translation to the current coordinate system

说明

bool ImagickDraw::translate ( float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

Applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

参数

x

horizontal translation

y

vertical translation

返回值

无返回值。

ImagickDraw::skewY
The ImagickPixel class
The ImagickDraw class


The ImagickPixel class

Class synopsis

ImagickPixel
ImagickPixel {
bool clear ( void )
ImagickPixel __construct ([ string $color ] )
bool destroy ( void )
array getColor ([ bool $normalized=false ] )
string getColorAsString ( void )
int getColorCount ( void )
float getColorValue ( int $color )
array getHSL ( void )
bool isSimilar ( ImagickPixel $color , float $fuzz )
bool setColor ( string $color )
bool setColorValue ( int $color , float $value )
bool setHSL ( float $hue , float $saturation , float $luminosity )
}

Table of Contents

  • ImagickPixel::clear — Clears resources associated with this object
  • ImagickPixel::__construct — The ImagickPixel constructor
  • ImagickPixel::destroy — Deallocates resources associated with this object
  • ImagickPixel::getColor — Returns the color
  • ImagickPixel::getColorAsString — Returns the color as a string
  • ImagickPixel::getColorCount — Returns the color count associated with this color
  • ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
  • ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object
  • ImagickPixel::isSimilar — Check the distance between this color and another
  • ImagickPixel::setColor — Sets the color
  • ImagickPixel::setColorValue — Sets the normalized value of one of the channels
  • ImagickPixel::setHSL — Sets the normalized HSL color
ImagickDraw::translate
ImagickPixel::clear
ImageMagick


Clears resources associated with this object

The ImagickPixel class
ImagickPixel::__construct
The ImagickPixel class
PHP 手册

ImagickPixel::clear

(PECL imagick 2.0.0)

ImagickPixel::clear — Clears resources associated with this object

说明

bool ImagickPixel::clear ( void )
Warning

本函数暂无文档，仅有参数列表。

Clears the ImagickPixel object, leaving it in a fresh state. This also unsets any color associated with the object.

返回值

Returns TRUE on success.

The ImagickPixel class
ImagickPixel::__construct
The ImagickPixel class


The ImagickPixel constructor

ImagickPixel::clear
ImagickPixel::destroy
The ImagickPixel class
PHP 手册

ImagickPixel::__construct

(PECL imagick 2.0.0)

ImagickPixel::__construct — The ImagickPixel constructor

说明

ImagickPixel ImagickPixel::__construct ([ string $color ] )
Warning

本函数暂无文档，仅有参数列表。

Constructs an ImagickPixel object. If a color is specified, the object is constructed and then initialised with that color before being returned.

参数

color

The optional color string to use as the initial value of this object.

返回值

Returns an ImagickPixel object on success, throwing ImagickPixelException on failure.

ImagickPixel::clear
ImagickPixel::destroy
The ImagickPixel class


Deallocates resources associated with this object

ImagickPixel::__construct
ImagickPixel::getColor
The ImagickPixel class
PHP 手册

ImagickPixel::destroy

(PECL imagick 2.0.0)

ImagickPixel::destroy — Deallocates resources associated with this object

说明

bool ImagickPixel::destroy ( void )
Warning

本函数暂无文档，仅有参数列表。

Deallocates any resources used by the ImagickPixel object, and unsets any associated color. The object should not be used after the destroy function has been called.

返回值

Returns TRUE on success.

ImagickPixel::__construct
ImagickPixel::getColor
The ImagickPixel class


Returns the color

ImagickPixel::destroy
ImagickPixel::getColorAsString
The ImagickPixel class
PHP 手册

ImagickPixel::getColor

(PECL imagick 2.0.0)

ImagickPixel::getColor — Returns the color

说明

array ImagickPixel::getColor ([ bool $normalized=false ] )
Warning

本函数暂无文档，仅有参数列表。

Returns the color described by the ImagickPixel object, as an array. If the color has an opacity channel set, this is provided as a fourth value in the list.

参数

normalized

Normalize the color values

返回值

An array of channel values, each normalized if TRUE is given as param. Throws ImagickPixelException on error.

ImagickPixel::destroy
ImagickPixel::getColorAsString
The ImagickPixel class


Returns the color as a string

ImagickPixel::getColor
ImagickPixel::getColorCount
The ImagickPixel class
PHP 手册

ImagickPixel::getColorAsString

(PECL imagick 2.1.0)

ImagickPixel::getColorAsString — Returns the color as a string

说明

string ImagickPixel::getColorAsString ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the color of the ImagickPixel object as a string.

参数

返回值

Returns the color of the ImagickPixel object as a string.

ImagickPixel::getColor
ImagickPixel::getColorCount
The ImagickPixel class


Returns the color count associated with this color

ImagickPixel::getColorAsString
ImagickPixel::getColorValue
The ImagickPixel class
PHP 手册

ImagickPixel::getColorCount

(PECL imagick 2.0.0)

ImagickPixel::getColorCount — Returns the color count associated with this color

说明

int ImagickPixel::getColorCount ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the color count associated with this color.

返回值

Returns the color count as an integer on success, throws ImagickPixelException on failure.

ImagickPixel::getColorAsString
ImagickPixel::getColorValue
The ImagickPixel class


Gets the normalized value of the provided color channel

ImagickPixel::getColorCount
ImagickPixel::getHSL
The ImagickPixel class
PHP 手册

ImagickPixel::getColorValue

(PECL imagick 2.0.0)

ImagickPixel::getColorValue — Gets the normalized value of the provided color channel

说明

float ImagickPixel::getColorValue ( int $color )
Warning

本函数暂无文档，仅有参数列表。

Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.

参数

color

The channel to check, specified as one of the Imagick channel constants.

返回值

The value of the channel, as a normalized floating-point number, throwing ImagickPixelException on error.

ImagickPixel::getColorCount
ImagickPixel::getHSL
The ImagickPixel class


Returns the normalized HSL color of the ImagickPixel object

ImagickPixel::getColorValue
ImagickPixel::isSimilar
The ImagickPixel class
PHP 手册

ImagickPixel::getHSL

(PECL imagick 2.0.0)

ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object

说明

array ImagickPixel::getHSL ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the normalized HSL color described by the ImagickPixel object, with each of the three values as floating point numbers between 0.0 and 1.0.

返回值

Returns the HSL value in an array with the keys "hue", "saturation", and "luminosity". Throws ImagickPixelException on failure.

ImagickPixel::getColorValue
ImagickPixel::isSimilar
The ImagickPixel class


Check the distance between this color and another

ImagickPixel::getHSL
ImagickPixel::setColor
The ImagickPixel class
PHP 手册

ImagickPixel::isSimilar

(PECL imagick 2.0.0)

ImagickPixel::isSimilar — Check the distance between this color and another

说明

bool ImagickPixel::isSimilar ( ImagickPixel $color , float $fuzz )
Warning

本函数暂无文档，仅有参数列表。

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar.

参数

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

返回值

Returns TRUE on success.

ImagickPixel::getHSL
ImagickPixel::setColor
The ImagickPixel class


Sets the color

ImagickPixel::isSimilar
ImagickPixel::setColorValue
The ImagickPixel class
PHP 手册

ImagickPixel::setColor

(PECL imagick 2.0.0)

ImagickPixel::setColor — Sets the color

说明

bool ImagickPixel::setColor ( string $color )
Warning

本函数暂无文档，仅有参数列表。

Sets the color described by the ImagickPixel object, with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

参数

color

The color definition to use in order to initialise the ImagickPixel object.

返回值

Returns TRUE if the specified color was set, FALSE otherwise.

ImagickPixel::isSimilar
ImagickPixel::setColorValue
The ImagickPixel class


Sets the normalized value of one of the channels

ImagickPixel::setColor
ImagickPixel::setHSL
The ImagickPixel class
PHP 手册

ImagickPixel::setColorValue

(PECL imagick 2.0.0)

ImagickPixel::setColorValue — Sets the normalized value of one of the channels

说明

bool ImagickPixel::setColorValue ( int $color , float $value )
Warning

本函数暂无文档，仅有参数列表。

Sets the value of the specified channel of this object to the provided value, which should be between 0 and 1. This function can be used to provide an opacity channel to an ImagickPixel object.

参数

color

One of the Imagick channel color constants.

value

The value to set this channel to, ranging from 0 to 1.

返回值

Returns TRUE on success.

ImagickPixel::setColor
ImagickPixel::setHSL
The ImagickPixel class


Sets the normalized HSL color

ImagickPixel::setColorValue
The ImagickPixelIterator class
The ImagickPixel class
PHP 手册

ImagickPixel::setHSL

(PECL imagick 2.0.0)

ImagickPixel::setHSL — Sets the normalized HSL color

说明

bool ImagickPixel::setHSL ( float $hue , float $saturation , float $luminosity )
Warning

本函数暂无文档，仅有参数列表。

Sets the color described by the ImagickPixel object using normalized values for hue, saturation and luminosity.

参数

hue

The normalized value for hue, described as a fractional arc (between 0 and 1) of the hue circle, where the zero value is red.

saturation

The normalized value for saturation, with 1 as full saturation.

luminosity

The normalized value for luminosity, on a scale from black at 0 to white at 1, with the full HS value at 0.5 luminosity.

返回值

Returns TRUE on success.

ImagickPixel::setColorValue
The ImagickPixelIterator class
The ImagickPixel class


The ImagickPixelIterator class

Class synopsis

ImagickPixelIterator
ImagickPixelIterator {
bool clear ( void )
ImagickPixelIterator __construct ( Imagick $wand )
bool destroy ( void )
array getCurrentIteratorRow ( void )
int getIteratorRow ( void )
array getNextIteratorRow ( void )
array getPreviousIteratorRow ( void )
bool newPixelIterator ( Imagick $wand )
bool newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
bool resetIterator ( void )
bool setIteratorFirstRow ( void )
bool setIteratorLastRow ( void )
bool setIteratorRow ( int $row )
bool syncIterator ( void )
}

Table of Contents

  • ImagickPixelIterator::clear — Clear resources associated with a PixelIterator
  • ImagickPixelIterator::__construct — The ImagickPixelIterator constructor
  • ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator
  • ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects
  • ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row
  • ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator
  • ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row
  • ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator
  • ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator
  • ImagickPixelIterator::resetIterator — Resets the pixel iterator
  • ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row
  • ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row
  • ImagickPixelIterator::setIteratorRow — Set the pixel iterator row
  • ImagickPixelIterator::syncIterator — Syncs the pixel iterator
ImagickPixel::setHSL
ImagickPixelIterator::clear
ImageMagick


Clear resources associated with a PixelIterator

The ImagickPixelIterator class
ImagickPixelIterator::__construct
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::clear

(PECL imagick 2.0.0)

ImagickPixelIterator::clear — Clear resources associated with a PixelIterator

说明

bool ImagickPixelIterator::clear ( void )
Warning

本函数暂无文档，仅有参数列表。

Clear resources associated with a PixelIterator.

返回值

Returns TRUE on success.

The ImagickPixelIterator class
ImagickPixelIterator::__construct
The ImagickPixelIterator class


The ImagickPixelIterator constructor

ImagickPixelIterator::clear
ImagickPixelIterator::destroy
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::__construct

(PECL imagick 2.0.0)

ImagickPixelIterator::__construct — The ImagickPixelIterator constructor

说明

ImagickPixelIterator ImagickPixelIterator::__construct ( Imagick $wand )
Warning

本函数暂无文档，仅有参数列表。

The ImagickPixelIterator constructor

返回值

Returns TRUE on success.

ImagickPixelIterator::clear
ImagickPixelIterator::destroy
The ImagickPixelIterator class


Deallocates resources associated with a PixelIterator

ImagickPixelIterator::__construct
ImagickPixelIterator::getCurrentIteratorRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::destroy

(PECL imagick 2.0.0)

ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator

说明

bool ImagickPixelIterator::destroy ( void )
Warning

本函数暂无文档，仅有参数列表。

Deallocates resources associated with a PixelIterator.

返回值

Returns TRUE on success.

ImagickPixelIterator::__construct
ImagickPixelIterator::getCurrentIteratorRow
The ImagickPixelIterator class


Returns the current row of ImagickPixel objects

ImagickPixelIterator::destroy
ImagickPixelIterator::getIteratorRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects

说明

array ImagickPixelIterator::getCurrentIteratorRow ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the current row as an array of ImagickPixel objects from the pixel iterator.

返回值

Returns a row as an array of ImagickPixel objects that can themselves be iterated.

ImagickPixelIterator::destroy
ImagickPixelIterator::getIteratorRow
The ImagickPixelIterator class


Returns the current pixel iterator row

ImagickPixelIterator::getCurrentIteratorRow
ImagickPixelIterator::getNextIteratorRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::getIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row

说明

int ImagickPixelIterator::getIteratorRow ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the current pixel iterator row.

返回值

Returns the integer offset of the row, throwing ImagickPixelIteratorException on error.

ImagickPixelIterator::getCurrentIteratorRow
ImagickPixelIterator::getNextIteratorRow
The ImagickPixelIterator class


Returns the next row of the pixel iterator

ImagickPixelIterator::getIteratorRow
ImagickPixelIterator::getPreviousIteratorRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator

说明

array ImagickPixelIterator::getNextIteratorRow ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the next row as an array of pixel wands from the pixel iterator.

返回值

Returns ana row as an array of ImagickPixel objects, throwing ImagickPixelIteratorException on error.

ImagickPixelIterator::getIteratorRow
ImagickPixelIterator::getPreviousIteratorRow
The ImagickPixelIterator class


Returns the previous row

ImagickPixelIterator::getNextIteratorRow
ImagickPixelIterator::newPixelIterator
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row

说明

array ImagickPixelIterator::getPreviousIteratorRow ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the previous row as an array of pixel wands from the pixel iterator.

返回值

Returns the previous row as an array of ImagickPixelWand objects from the ImagickPixelIterator, throwing ImagickPixelIteratorException on error.

ImagickPixelIterator::getNextIteratorRow
ImagickPixelIterator::newPixelIterator
The ImagickPixelIterator class


Returns a new pixel iterator

ImagickPixelIterator::getPreviousIteratorRow
ImagickPixelIterator::newPixelRegionIterator
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::newPixelIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator

说明

bool ImagickPixelIterator::newPixelIterator ( Imagick $wand )
Warning

本函数暂无文档，仅有参数列表。

Returns a new pixel iterator.

返回值

Returns TRUE on success. Throwing ImagickPixelIteratorException.

ImagickPixelIterator::getPreviousIteratorRow
ImagickPixelIterator::newPixelRegionIterator
The ImagickPixelIterator class


Returns a new pixel iterator

ImagickPixelIterator::newPixelIterator
ImagickPixelIterator::resetIterator
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator

说明

bool ImagickPixelIterator::newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
Warning

本函数暂无文档，仅有参数列表。

Returns a new pixel iterator.

参数

wand

x

y

columns

rows

返回值

Returns a new ImagickPixelIterator on success; on failure, throws ImagickPixelIteratorException.

ImagickPixelIterator::newPixelIterator
ImagickPixelIterator::resetIterator
The ImagickPixelIterator class


Resets the pixel iterator

ImagickPixelIterator::newPixelRegionIterator
ImagickPixelIterator::setIteratorFirstRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::resetIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::resetIterator — Resets the pixel iterator

说明

bool ImagickPixelIterator::resetIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Resets the pixel iterator. Use it in conjunction with ImagickPixelIterator::getNextIteratorRow() to iterate over all the pixels in a pixel container.

返回值

Returns TRUE on success.

ImagickPixelIterator::newPixelRegionIterator
ImagickPixelIterator::setIteratorFirstRow
The ImagickPixelIterator class


Sets the pixel iterator to the first pixel row

ImagickPixelIterator::resetIterator
ImagickPixelIterator::setIteratorLastRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row

说明

bool ImagickPixelIterator::setIteratorFirstRow ( void )
Warning

本函数暂无文档，仅有参数列表。

Sets the pixel iterator to the first pixel row.

返回值

Returns TRUE on success.

ImagickPixelIterator::resetIterator
ImagickPixelIterator::setIteratorLastRow
The ImagickPixelIterator class


Sets the pixel iterator to the last pixel row

ImagickPixelIterator::setIteratorFirstRow
ImagickPixelIterator::setIteratorRow
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row

说明

bool ImagickPixelIterator::setIteratorLastRow ( void )
Warning

本函数暂无文档，仅有参数列表。

Sets the pixel iterator to the last pixel row.

返回值

Returns TRUE on success.

ImagickPixelIterator::setIteratorFirstRow
ImagickPixelIterator::setIteratorRow
The ImagickPixelIterator class


Set the pixel iterator row

ImagickPixelIterator::setIteratorLastRow
ImagickPixelIterator::syncIterator
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::setIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorRow — Set the pixel iterator row

说明

bool ImagickPixelIterator::setIteratorRow ( int $row )
Warning

本函数暂无文档，仅有参数列表。

Set the pixel iterator row.

参数

row

返回值

Returns TRUE on success.

ImagickPixelIterator::setIteratorLastRow
ImagickPixelIterator::syncIterator
The ImagickPixelIterator class


Syncs the pixel iterator

ImagickPixelIterator::setIteratorRow
邮件相关扩展
The ImagickPixelIterator class
PHP 手册

ImagickPixelIterator::syncIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::syncIterator — Syncs the pixel iterator

说明

bool ImagickPixelIterator::syncIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Syncs the pixel iterator.

返回值

Returns TRUE on success.

ImagickPixelIterator::setIteratorRow
邮件相关扩展
The ImagickPixelIterator class


邮件相关扩展

  • Cyrus — Cyrus IMAP administration
    • 简介
    • 安装/配置
    • 预定义常量
    • Cyrus 函数
  • IMAP — IMAP, POP3 and NNTP
    • 简介
    • 安装/配置
    • 预定义常量
    • IMAP 函数
  • Mail
    • 简介
    • 安装/配置
    • 预定义常量
    • Mail 函数
  • Mailparse
    • 简介
    • 安装/配置
    • 预定义常量
    • Mailparse 函数
  • vpopmail
    • 简介
    • 安装/配置
    • 预定义常量
    • vpopmail 函数
ImagickPixelIterator::syncIterator
Cyrus
函数参考


Cyrus IMAP administration

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Cyrus 函数
    • cyrus_authenticate — Authenticate against a Cyrus IMAP server
    • cyrus_bind — Bind callbacks to a Cyrus IMAP connection
    • cyrus_close — Close connection to a Cyrus IMAP server
    • cyrus_connect — Connect to a Cyrus IMAP server
    • cyrus_query — Send a query to a Cyrus IMAP server
    • cyrus_unbind — Unbind ...
邮件相关扩展
简介
邮件相关扩展


简介

Note: 本扩展模块在 Windows 平台下不可用。

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

Cyrus
安装/配置
Cyrus


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Cyrus


安装

To enable Cyrus IMAP support and to use these functions you have to compile PHP with the --with-cyrus option.

Warning

IMAP，recode，YAZ 和 Cyrus 扩展模块不能同时使用，因为它们共享了相同的内部符号。

需求
运行时配置
安装/配置


资源类型

This extension defines a Cyrus IMAP connection identifier returned by cyrus_connect().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

CYRUS_CONN_NONSYNCLITERAL (integer)
CYRUS_CONN_INITIALRESPONSE (integer)
CYRUS_CALLBACK_NUMBERED (integer)
CYRUS_CALLBACK_NOLITERAL (integer)
资源类型
Cyrus 函数
Cyrus


Cyrus 函数

Table of Contents

  • cyrus_authenticate — Authenticate against a Cyrus IMAP server
  • cyrus_bind — Bind callbacks to a Cyrus IMAP connection
  • cyrus_close — Close connection to a Cyrus IMAP server
  • cyrus_connect — Connect to a Cyrus IMAP server
  • cyrus_query — Send a query to a Cyrus IMAP server
  • cyrus_unbind — Unbind ...
预定义常量
cyrus_authenticate
Cyrus


Authenticate against a Cyrus IMAP server

Cyrus 函数
cyrus_bind
Cyrus 函数
PHP 手册

cyrus_authenticate

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_authenticate — Authenticate against a Cyrus IMAP server

说明

void cyrus_authenticate ( resource $connection [, string $mechlist [, string $service [, string $user [, int $minssf [, int $maxssf [, string $authname [, string $password ]]]]]]] )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

Cyrus 函数
cyrus_bind
Cyrus 函数


Bind callbacks to a Cyrus IMAP connection

cyrus_authenticate
cyrus_close
Cyrus 函数
PHP 手册

cyrus_bind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_bind — Bind callbacks to a Cyrus IMAP connection

说明

bool cyrus_bind ( resource $connection , array $callbacks )

Binds callbacks to a Cyrus IMAP connection.

参数

connection

The connection handle.

callbacks

An array of callbacks.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

cyrus_authenticate
cyrus_close
Cyrus 函数


Close connection to a Cyrus IMAP server

cyrus_bind
cyrus_connect
Cyrus 函数
PHP 手册

cyrus_close

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_close — Close connection to a Cyrus IMAP server

说明

bool cyrus_close ( resource $connection )

Closes the connection to a Cyrus IMAP server.

参数

connection

The connection handle.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

cyrus_bind
cyrus_connect
Cyrus 函数


Connect to a Cyrus IMAP server

cyrus_close
cyrus_query
Cyrus 函数
PHP 手册

cyrus_connect

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_connect — Connect to a Cyrus IMAP server

说明

resource cyrus_connect ([ string $host [, string $port [, int $flags ]]] )

Connects to a Cyrus IMAP server.

参数

host

The Cyrus IMAP host name.

port

The port number.

flags

返回值

Returns a connection handler on success, or FALSE on failure.

cyrus_close
cyrus_query
Cyrus 函数


Send a query to a Cyrus IMAP server

cyrus_connect
cyrus_unbind
Cyrus 函数
PHP 手册

cyrus_query

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_query — Send a query to a Cyrus IMAP server

说明

array cyrus_query ( resource $connection , string $query )

Sends a query to a Cyrus IMAP server.

参数

connection

The connection handle.

query

The query string.

返回值

Returns an associative array with the following keys: text, msgno, and keyword.

cyrus_connect
cyrus_unbind
Cyrus 函数


Unbind ...

cyrus_query
IMAP
Cyrus 函数
PHP 手册

cyrus_unbind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_unbind — Unbind ...

说明

bool cyrus_unbind ( resource $connection , string $trigger_name )
Warning

本函数暂无文档，仅有参数列表。

参数

connection

The connection handle.

trigger_name

The trigger name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

cyrus_query
IMAP
Cyrus 函数


IMAP, POP3 and NNTP

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • IMAP 函数
    • imap_8bit — Convert an 8bit string to a quoted-printable string
    • imap_alerts — Returns all IMAP alert messages that have occurred
    • imap_append — Append a string message to a specified mailbox
    • imap_base64 — Decode BASE64 encoded text
    • imap_binary — Convert an 8bit string to a base64 string
    • imap_body — Read the message body
    • imap_bodystruct — Read the structure of a specified body section of a specific message
    • imap_check — Check current mailbox
    • imap_clearflag_full — Clears flags on messages
    • imap_close — Close an IMAP stream
    • imap_createmailbox — Create a new mailbox
    • imap_delete — Mark a message for deletion from current mailbox
    • imap_deletemailbox — Delete a mailbox
    • imap_errors — Returns all of the IMAP errors that have occured
    • imap_expunge — Delete all messages marked for deletion
    • imap_fetch_overview — Read an overview of the information in the headers of the given message
    • imap_fetchbody — Fetch a particular section of the body of the message
    • imap_fetchheader — Returns header for a message
    • imap_fetchstructure — Read the structure of a particular message
    • imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox
    • imap_get_quotaroot — Retrieve the quota settings per user
    • imap_getacl — Gets the ACL for a given mailbox
    • imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one
    • imap_getsubscribed — List all the subscribed mailboxes
    • imap_header — 别名 imap_headerinfo
    • imap_headerinfo — Read the header of the message
    • imap_headers — Returns headers for all messages in a mailbox
    • imap_last_error — Gets the last IMAP error that occurred during this page request
    • imap_list — Read the list of mailboxes
    • imap_listmailbox — 别名 imap_list
    • imap_listscan — Returns the list of mailboxes that matches the given text
    • imap_listsubscribed — 别名 imap_lsub
    • imap_lsub — List all the subscribed mailboxes
    • imap_mail_compose — Create a MIME message based on given envelope and body sections
    • imap_mail_copy — Copy specified messages to a mailbox
    • imap_mail_move — Move specified messages to a mailbox
    • imap_mail — Send an email message
    • imap_mailboxmsginfo — Get information about the current mailbox
    • imap_mime_header_decode — Decode MIME header elements
    • imap_msgno — Gets the message sequence number for the given UID
    • imap_num_msg — Gets the number of messages in the current mailbox
    • imap_num_recent — Gets the number of recent messages in current mailbox
    • imap_open — Open an IMAP stream to a mailbox
    • imap_ping — Check if the IMAP stream is still active
    • imap_qprint — Convert a quoted-printable string to an 8 bit string
    • imap_renamemailbox — Rename an old mailbox to new mailbox
    • imap_reopen — Reopen IMAP stream to new mailbox
    • imap_rfc822_parse_adrlist — Parses an address string
    • imap_rfc822_parse_headers — Parse mail headers from a string
    • imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info
    • imap_savebody — Save a specific body section to a file
    • imap_scanmailbox — 别名 imap_listscan
    • imap_search — This function returns an array of messages matching the given search criteria
    • imap_set_quota — Sets a quota for a given mailbox
    • imap_setacl — Sets the ACL for a giving mailbox
    • imap_setflag_full — Sets flags on messages
    • imap_sort — Gets and sort messages
    • imap_status — Returns status information on a mailbox
    • imap_subscribe — Subscribe to a mailbox
    • imap_thread — Returns a tree of threaded message
    • imap_timeout — Set or fetch imap timeout
    • imap_uid — This function returns the UID for the given message sequence number
    • imap_undelete — Unmark the message which is marked deleted
    • imap_unsubscribe — Unsubscribe from a mailbox
    • imap_utf7_decode — Decodes a modified UTF-7 encoded string
    • imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
    • imap_utf8 — Converts MIME-encoded text to UTF-8
cyrus_unbind
简介
邮件相关扩展


简介

These functions enable you to operate with the IMAP protocol, as well as the NNTP, POP3 and local mailbox access methods.

Be warned however, that some of IMAP functions will not work correctly with the POP protocol.

IMAP
安装/配置
IMAP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
IMAP


需求

This extension requires the c-client library to be installed. Grab the latest version from » ftp://ftp.cac.washington.edu/imap/ and compile it.

It's important that you do not copy the IMAP source files directly into the system include directory as there may be conflicts. Instead, create a new directory inside the system include directory, such as /usr/local/imap-2000b/ (location and name depend on your setup and IMAP version), and inside this new directory create additional directories named lib/ and include/. From the c-client directory from your IMAP source tree, copy all the *.h files into include/ and all the *.c files into lib/. Additionally when you compiled IMAP, a file named c-client.a was created. Also put this in the lib/ directory but rename it as libc-client.a.

Note: To build the c-client library with SSL or/and Kerberos support read the docs supplied with the package.

Note: In Mandrake Linux, the IMAP library (libc-client.a) is compiled without Kerberos support. A separate version with SSL (client-PHP4.a) is installed. The library must be recompiled in order to add Kerberos support.

安装/配置
安装
安装/配置


安装

To get these functions to work, you have to compile PHP with --with-imap[=DIR], where DIR is the c-client install prefix. From our example above, you would use --with-imap=/usr/local/imap-2000b. This location depends on where you created this directory according to the description above. Windows users may include the php_imap.dll DLL in php.ini. IMAP is not supported on systems earlier that Windows 2000. This is because it uses encryption functions in order to enable SSL connections to the mail servers.

Note: Depending how the c-client was configured, you might also need to add --with-imap-ssl=/path/to/openssl/ and/or --with-kerberos=/path/to/kerberos into the PHP configure line.

Warning

IMAP，recode，YAZ 和 Cyrus 扩展模块不能同时使用，因为它们共享了相同的内部符号。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

NIL (integer)
OP_DEBUG (integer)
OP_READONLY (integer)
Open mailbox read-only
OP_ANONYMOUS (integer)
Don't use or update a .newsrc for news (NNTP only)
OP_SHORTCACHE (integer)
OP_SILENT (integer)
OP_PROTOTYPE (integer)
OP_HALFOPEN (integer)
For IMAP and NNTP names, open a connection but don't open a mailbox.
OP_EXPUNGE (integer)
OP_SECURE (integer)
CL_EXPUNGE (integer)
silently expunge the mailbox before closing when calling imap_close()
FT_UID (integer)
The parameter is a UID
FT_PEEK (integer)
Do not set the \Seen flag if not already set
FT_NOT (integer)
FT_INTERNAL (integer)
The return string is in internal format, will not canonicalize to CRLF.
FT_PREFETCHTEXT (integer)
ST_UID (integer)
The sequence argument contains UIDs instead of sequence numbers
ST_SILENT (integer)
ST_SET (integer)
CP_UID (integer)
the sequence numbers contain UIDS
CP_MOVE (integer)
Delete the messages from the current mailbox after copying with imap_mail_copy()
SE_UID (integer)
Return UIDs instead of sequence numbers
SE_FREE (integer)
SE_NOPREFETCH (integer)
Don't prefetch searched messages
SO_FREE (integer)
SO_NOSERVER (integer)
SA_MESSAGES (integer)
SA_RECENT (integer)
SA_UNSEEN (integer)
SA_UIDNEXT (integer)
SA_UIDVALIDITY (integer)
SA_ALL (integer)
LATT_NOINFERIORS (integer)
This mailbox has no "children" (there are no mailboxes below this one).
LATT_NOSELECT (integer)
This is only a container, not a mailbox - you cannot open it.
LATT_MARKED (integer)
This mailbox is marked. Only used by UW-IMAPD.
LATT_UNMARKED (integer)
This mailbox is not marked. Only used by UW-IMAPD.
SORTDATE (integer)
Sort criteria for imap_sort(): message Date
SORTARRIVAL (integer)
Sort criteria for imap_sort(): arrival date
SORTFROM (integer)
Sort criteria for imap_sort(): mailbox in first From address
SORTSUBJECT (integer)
Sort criteria for imap_sort(): message subject
SORTTO (integer)
Sort criteria for imap_sort(): mailbox in first To address
SORTCC (integer)
Sort criteria for imap_sort(): mailbox in first cc address
SORTSIZE (integer)
Sort criteria for imap_sort(): size of message in octets
TYPETEXT (integer)
TYPEMULTIPART (integer)
TYPEMESSAGE (integer)
TYPEAPPLICATION (integer)
TYPEAUDIO (integer)
TYPEIMAGE (integer)
TYPEVIDEO (integer)
TYPEOTHER (integer)
ENC7BIT (integer)
ENC8BIT (integer)
ENCBINARY (integer)
ENCBASE64 (integer)
ENCQUOTEDPRINTABLE (integer)
ENCOTHER (integer)
IMAP_OPENTIMEOUT (integer)
IMAP_READTIMEOUT (integer)
IMAP_WRITETIMEOUT (integer)
IMAP_CLOSETIMEOUT (integer)
LATT_REFERRAL (integer)
LATT_HASCHILDREN (integer)
LATT_HASNOCHILDREN (integer)
TYPEMODEL (integer)
资源类型
IMAP 函数
IMAP


IMAP 函数

参见

This document can't go into detail on all the topics touched by the provided functions. Further information is provided by the documentation of the c-client library source (docs/internal.txt). and the following RFC documents:

  • » RFC2821: Simple Mail Transfer Protocol (SMTP).
  • » RFC2822: Standard for ARPA internet text messages.
  • » RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.
  • » RFC1939: Post Office Protocol Version 3 (POP3).
  • » RFC977: Network News Transfer Protocol (NNTP).
  • » RFC2076: Common Internet Message Headers.
  • » RFC2045 , » RFC2046 , » RFC2047 , » RFC2048 & » RFC2049: Multipurpose Internet Mail Extensions (MIME).

A detailed overview is also available in the books » Programming Internet Email by David Wood and » Managing IMAP by Dianna Mullet & Kevin Mullet.

Table of Contents

  • imap_8bit — Convert an 8bit string to a quoted-printable string
  • imap_alerts — Returns all IMAP alert messages that have occurred
  • imap_append — Append a string message to a specified mailbox
  • imap_base64 — Decode BASE64 encoded text
  • imap_binary — Convert an 8bit string to a base64 string
  • imap_body — Read the message body
  • imap_bodystruct — Read the structure of a specified body section of a specific message
  • imap_check — Check current mailbox
  • imap_clearflag_full — Clears flags on messages
  • imap_close — Close an IMAP stream
  • imap_createmailbox — Create a new mailbox
  • imap_delete — Mark a message for deletion from current mailbox
  • imap_deletemailbox — Delete a mailbox
  • imap_errors — Returns all of the IMAP errors that have occured
  • imap_expunge — Delete all messages marked for deletion
  • imap_fetch_overview — Read an overview of the information in the headers of the given message
  • imap_fetchbody — Fetch a particular section of the body of the message
  • imap_fetchheader — Returns header for a message
  • imap_fetchstructure — Read the structure of a particular message
  • imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox
  • imap_get_quotaroot — Retrieve the quota settings per user
  • imap_getacl — Gets the ACL for a given mailbox
  • imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one
  • imap_getsubscribed — List all the subscribed mailboxes
  • imap_header — 别名 imap_headerinfo
  • imap_headerinfo — Read the header of the message
  • imap_headers — Returns headers for all messages in a mailbox
  • imap_last_error — Gets the last IMAP error that occurred during this page request
  • imap_list — Read the list of mailboxes
  • imap_listmailbox — 别名 imap_list
  • imap_listscan — Returns the list of mailboxes that matches the given text
  • imap_listsubscribed — 别名 imap_lsub
  • imap_lsub — List all the subscribed mailboxes
  • imap_mail_compose — Create a MIME message based on given envelope and body sections
  • imap_mail_copy — Copy specified messages to a mailbox
  • imap_mail_move — Move specified messages to a mailbox
  • imap_mail — Send an email message
  • imap_mailboxmsginfo — Get information about the current mailbox
  • imap_mime_header_decode — Decode MIME header elements
  • imap_msgno — Gets the message sequence number for the given UID
  • imap_num_msg — Gets the number of messages in the current mailbox
  • imap_num_recent — Gets the number of recent messages in current mailbox
  • imap_open — Open an IMAP stream to a mailbox
  • imap_ping — Check if the IMAP stream is still active
  • imap_qprint — Convert a quoted-printable string to an 8 bit string
  • imap_renamemailbox — Rename an old mailbox to new mailbox
  • imap_reopen — Reopen IMAP stream to new mailbox
  • imap_rfc822_parse_adrlist — Parses an address string
  • imap_rfc822_parse_headers — Parse mail headers from a string
  • imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info
  • imap_savebody — Save a specific body section to a file
  • imap_scanmailbox — 别名 imap_listscan
  • imap_search — This function returns an array of messages matching the given search criteria
  • imap_set_quota — Sets a quota for a given mailbox
  • imap_setacl — Sets the ACL for a giving mailbox
  • imap_setflag_full — Sets flags on messages
  • imap_sort — Gets and sort messages
  • imap_status — Returns status information on a mailbox
  • imap_subscribe — Subscribe to a mailbox
  • imap_thread — Returns a tree of threaded message
  • imap_timeout — Set or fetch imap timeout
  • imap_uid — This function returns the UID for the given message sequence number
  • imap_undelete — Unmark the message which is marked deleted
  • imap_unsubscribe — Unsubscribe from a mailbox
  • imap_utf7_decode — Decodes a modified UTF-7 encoded string
  • imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
  • imap_utf8 — Converts MIME-encoded text to UTF-8
预定义常量
imap_8bit
IMAP


Convert an 8bit string to a quoted-printable string

IMAP 函数
imap_alerts
IMAP 函数
PHP 手册

imap_8bit

(PHP 4, PHP 5)

imap_8bit — Convert an 8bit string to a quoted-printable string

说明

string imap_8bit ( string $string )

Convert an 8bit string to a quoted-printable string (according to » RFC2045, section 6.7).

参数

string

The 8bit string to convert

返回值

Returns a quoted-printable string.

参见

  • imap_qprint() - Convert a quoted-printable string to an 8 bit string

IMAP 函数
imap_alerts
IMAP 函数


Returns all IMAP alert messages that have occurred

imap_8bit
imap_append
IMAP 函数
PHP 手册

imap_alerts

(PHP 4, PHP 5)

imap_alerts — Returns all IMAP alert messages that have occurred

说明

array imap_alerts ( void )

Returns all of the IMAP alert messages generated since the last imap_alerts() call, or the beginning of the page.

When imap_alerts() is called, the alert stack is subsequently cleared. The IMAP specification requires that these messages be passed to the user.

返回值

Returns an array of all of the IMAP alert messages generated or FALSE if no alert messages are available.

参见

  • imap_errors() - Returns all of the IMAP errors that have occured

imap_8bit
imap_append
IMAP 函数


Append a string message to a specified mailbox

imap_alerts
imap_base64
IMAP 函数
PHP 手册

imap_append

(PHP 4, PHP 5)

imap_append — Append a string message to a specified mailbox

说明

bool imap_append ( resource $imap_stream , string $mailbox , string $message [, string $options=NULL ] )

Appends a string message to the specified mailbox .

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

message

The message to be append, as a string

When talking to the Cyrus IMAP server, you must use "\r\n" as your end-of-line terminator instead of "\n" or the operation will fail

options

If provided, the options will also be written to the mailbox

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 imap_append() example

<?php
$stream = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.example.org}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "this is a test message, please ignore\r\n"
                   );

$check = imap_check($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);
?>

imap_alerts
imap_base64
IMAP 函数


Decode BASE64 encoded text

imap_append
imap_binary
IMAP 函数
PHP 手册

imap_base64

(PHP 4, PHP 5)

imap_base64 — Decode BASE64 encoded text

说明

string imap_base64 ( string $text )

Decodes the given BASE-64 encoded text .

参数

text

The encoded text

返回值

Returns the decoded message as a string.

参见

  • imap_binary() - Convert an 8bit string to a base64 string
  • base64_encode() - 使用 MIME base64 对数据进行编码
  • base64_decode() - 对使用 MIME base64 编码的数据进行解码
  • » RFC2045, Section 6.8

imap_append
imap_binary
IMAP 函数


Convert an 8bit string to a base64 string

imap_base64
imap_body
IMAP 函数
PHP 手册

imap_binary

(PHP 4, PHP 5)

imap_binary — Convert an 8bit string to a base64 string

说明

string imap_binary ( string $string )

Convert an 8bit string to a base64 string according to » RFC2045, Section 6.8.

参数

string

The 8bit string

返回值

Returns a base64 encoded string.

参见

  • imap_base64() - Decode BASE64 encoded text

imap_base64
imap_body
IMAP 函数


Read the message body

imap_binary
imap_bodystruct
IMAP 函数
PHP 手册

imap_body

(PHP 4, PHP 5)

imap_body — Read the message body

说明

string imap_body ( resource $imap_stream , int $msg_number [, int $options=0 ] )

imap_body() returns the body of the message, numbered msg_number in the current mailbox.

imap_body() will only return a verbatim copy of the message body. To extract single parts of a multipart MIME-encoded message you have to use imap_fetchstructure() to analyze its structure and imap_fetchbody() to extract a copy of a single body component.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

options

The optional options are a bit mask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

返回值

Returns the body of the specified message, as a string.

imap_binary
imap_bodystruct
IMAP 函数


Read the structure of a specified body section of a specific message

imap_body
imap_check
IMAP 函数
PHP 手册

imap_bodystruct

(PHP 4, PHP 5)

imap_bodystruct — Read the structure of a specified body section of a specific message

说明

object imap_bodystruct ( resource $imap_stream , int $msg_number , string $section )

Read the structure of a specified body section of a specific message.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

section

The body section to read

返回值

Returns the information in an object, for a detailed description of the object structure and properties see imap_fetchstructure().

参见

  • imap_fetchstructure() - Read the structure of a particular message

imap_body
imap_check
IMAP 函数


Check current mailbox

imap_bodystruct
imap_clearflag_full
IMAP 函数
PHP 手册

imap_check

(PHP 4, PHP 5)

imap_check — Check current mailbox

说明

object imap_check ( resource $imap_stream )

Checks information about the current mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Returns the information in an object with following properties:

  • Date - current system time formatted according to » RFC2822
  • Driver - protocol used to access this mailbox: POP3, IMAP, NNTP
  • Mailbox - the mailbox name
  • Nmsgs - number of messages in the mailbox
  • Recent - number of recent messages in the mailbox

Returns FALSE on failure.

范例

Example #1 imap_check() example

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

上例的输出类似于：

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}

imap_bodystruct
imap_clearflag_full
IMAP 函数


Clears flags on messages

imap_check
imap_close
IMAP 函数
PHP 手册

imap_clearflag_full

(PHP 4, PHP 5)

imap_clearflag_full — Clears flags on messages

说明

bool imap_clearflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options=0 ] )

This function causes a store to delete the specified flag to the flags set for the messages in the specified sequence .

参数

imap_stream

An IMAP stream returned by imap_open().

sequence

A sequence of message numbers. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flag

The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by » RFC2060)

options

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_setflag_full() - Sets flags on messages

imap_check
imap_close
IMAP 函数


Close an IMAP stream

imap_clearflag_full
imap_createmailbox
IMAP 函数
PHP 手册

imap_close

(PHP 4, PHP 5)

imap_close — Close an IMAP stream

说明

bool imap_close ( resource $imap_stream [, int $flag=0 ] )

Closes the imap stream.

参数

imap_stream

An IMAP stream returned by imap_open().

flag

If set to CL_EXPUNGE, the function will silently expunge the mailbox before closing, removing all messages marked for deletion. You can achieve the same thing by using imap_expunge()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_open() - Open an IMAP stream to a mailbox

imap_clearflag_full
imap_createmailbox
IMAP 函数


Create a new mailbox

imap_close
imap_delete
IMAP 函数
PHP 手册

imap_createmailbox

(PHP 4, PHP 5)

imap_createmailbox — Create a new mailbox

说明

bool imap_createmailbox ( resource $imap_stream , string $mailbox )

Creates a new mailbox specified by mailbox .

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information. Names containing international characters should be encoded by imap_utf7_encode()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 imap_createmailbox() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
     or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewb&ouml;x");

$newname = $name1;

echo "Newname will be '$name1'<br />\n";

// we will now create a new mailbox "phptestbox" in your inbox folder,
// check its status after creation and finaly remove it to restore
// your inbox to its initial state

if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "your new mailbox '$name1' has the following status:<br />\n";
        echo "Messages:   " . $status->messages    . "<br />\n";
        echo "Recent:     " . $status->recent      . "<br />\n";
        echo "Unseen:     " . $status->unseen      . "<br />\n";
        echo "UIDnext:    " . $status->uidnext     . "<br />\n";
        echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
            echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
        echo "new mailbox removed to restore initial state<br />\n";
    } else {
        echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

参见

  • imap_renamemailbox() - Rename an old mailbox to new mailbox
  • imap_deletemailbox() - Delete a mailbox

imap_close
imap_delete
IMAP 函数


Mark a message for deletion from current mailbox

imap_createmailbox
imap_deletemailbox
IMAP 函数
PHP 手册

imap_delete

(PHP 4, PHP 5)

imap_delete — Mark a message for deletion from current mailbox

说明

bool imap_delete ( resource $imap_stream , int $msg_number [, int $options=0 ] )

Marks messages listed in msg_number for deletion. Messages marked for deletion will stay in the mailbox until either imap_expunge() is called or imap_close() is called with the optional parameter CL_EXPUNGE.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

options

You can set the FT_UID which tells the function to treat the msg_number argument as an UID.

返回值

Returns TRUE.

范例

Example #1 imap_delete() example

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

注释

Note: POP3 mailboxes do not have their message flags saved between connections, so imap_expunge() must be called during the same connection in order for messages marked for deletion to actually be purged.

参见

  • imap_undelete() - Unmark the message which is marked deleted
  • imap_expunge() - Delete all messages marked for deletion
  • imap_close() - Close an IMAP stream

imap_createmailbox
imap_deletemailbox
IMAP 函数


Delete a mailbox

imap_delete
imap_errors
IMAP 函数
PHP 手册

imap_deletemailbox

(PHP 4, PHP 5)

imap_deletemailbox — Delete a mailbox

说明

bool imap_deletemailbox ( resource $imap_stream , string $mailbox )

Deletes the specified mailbox .

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_createmailbox() - Create a new mailbox
  • imap_renamemailbox() - Rename an old mailbox to new mailbox
  • imap_open() - Open an IMAP stream to a mailbox for the format of mbox

imap_delete
imap_errors
IMAP 函数


Returns all of the IMAP errors that have occured

imap_deletemailbox
imap_expunge
IMAP 函数
PHP 手册

imap_errors

(PHP 4, PHP 5)

imap_errors — Returns all of the IMAP errors that have occured

说明

array imap_errors ( void )

Gets all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.

When imap_errors() is called, the error stack is subsequently cleared.

返回值

This function returns an array of all of the IMAP error messages generated since the last imap_errors() call, or the beginning of the page. Returns FALSE if no error messages are available.

参见

  • imap_last_error() - Gets the last IMAP error that occurred during this page request
  • imap_alerts() - Returns all IMAP alert messages that have occurred

imap_deletemailbox
imap_expunge
IMAP 函数


Delete all messages marked for deletion

imap_errors
imap_fetch_overview
IMAP 函数
PHP 手册

imap_expunge

(PHP 4, PHP 5)

imap_expunge — Delete all messages marked for deletion

说明

bool imap_expunge ( resource $imap_stream )

Deletes all the messages marked for deletion by imap_delete(), imap_mail_move(), or imap_setflag_full().

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Returns TRUE.

imap_errors
imap_fetch_overview
IMAP 函数


Read an overview of the information in the headers of the given message

imap_expunge
imap_fetchbody
IMAP 函数
PHP 手册

imap_fetch_overview

(PHP 4, PHP 5)

imap_fetch_overview — Read an overview of the information in the headers of the given message

说明

array imap_fetch_overview ( resource $imap_stream , string $sequence [, int $options=0 ] )

This function fetches mail headers for the given sequence and returns an overview of their contents.

参数

imap_stream

An IMAP stream returned by imap_open().

sequence

A message sequence description. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

options

sequence will contain a sequence of message indices or UIDs, if this parameter is set to FT_UID.

返回值

Returns an array of objects describing one message header each. The object will only define a property if it exists. The possible properties are:

  • subject - the messages subject
  • from - who sent it
  • to - recipient
  • date - when was it sent
  • message_id - Message-ID
  • references - is a reference to this message id
  • in_reply_to - is a reply to this message id
  • size - size in bytes
  • uid - UID the message has in the mailbox
  • msgno - message sequence number in the mailbox
  • recent - this message is flagged as recent
  • flagged - this message is flagged
  • answered - this message is flagged as answered
  • deleted - this message is flagged for deletion
  • seen - this message is flagged as already read
  • draft - this message is flagged as being a draft

范例

Example #1 imap_fetch_overview() example

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
     or die("can't connect: " . imap_last_error());

$MC = imap_check($mbox);

// Fetch an overview for all messages in INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    {$overview->subject}\n";
}
imap_close($mbox);
?>

参见

  • imap_fetchheader() - Returns header for a message

imap_expunge
imap_fetchbody
IMAP 函数


Fetch a particular section of the body of the message

imap_fetch_overview
imap_fetchheader
IMAP 函数
PHP 手册

imap_fetchbody

(PHP 4, PHP 5)

imap_fetchbody — Fetch a particular section of the body of the message

说明

string imap_fetchbody ( resource $imap_stream , int $msg_number , string $section [, int $options=0 ] )

Fetch of a particular section of the body of the specified messages. Body parts are not decoded by this function.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

options

A bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

返回值

Returns a particular section of the body of the specified messages as a text string.

参见

  • imap_savebody() - Save a specific body section to a file
  • imap_fetchstructure() - Read the structure of a particular message

imap_fetch_overview
imap_fetchheader
IMAP 函数


Returns header for a message

imap_fetchbody
imap_fetchstructure
IMAP 函数
PHP 手册

imap_fetchheader

(PHP 4, PHP 5)

imap_fetchheader — Returns header for a message

说明

string imap_fetchheader ( resource $imap_stream , int $msg_number [, int $options=0 ] )

This function causes a fetch of the complete, unfiltered » RFC2822 format header of the specified message.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

options

The possible options are:

  • FT_UID - The msgno argument is a UID
  • FT_INTERNAL - The return string is in "internal" format, without any attempt to canonicalize to CRLF newlines
  • FT_PREFETCHTEXT - The RFC822.TEXT should be pre-fetched at the same time. This avoids an extra RTT on an IMAP connection if a full message text is desired (e.g. in a "save to local file" operation)

返回值

Returns the header of the specified message as a text string.

参见

  • imap_fetch_overview() - Read an overview of the information in the headers of the given message

imap_fetchbody
imap_fetchstructure
IMAP 函数


Read the structure of a particular message

imap_fetchheader
imap_get_quota
IMAP 函数
PHP 手册

imap_fetchstructure

(PHP 4, PHP 5)

imap_fetchstructure — Read the structure of a particular message

说明

object imap_fetchstructure ( resource $imap_stream , int $msg_number [, int $options=0 ] )

Fetches all the structured information for a given message.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

options

This optional parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID.

返回值

Returns an object includes the envelope, internal date, size, flags and body structure along with a similar object for each mime attachment. The structure of the returned objects is as follows:

Returned Objects for imap_fetchstructure()
type | Primary body type
encoding | Body transfer encoding
ifsubtype | TRUE if there is a subtype string
subtype | MIME subtype
ifdescription | TRUE if there is a description string
description | Content description string
ifid | TRUE if there is an identification string
id | Identification string
lines | Number of lines
bytes | Number of bytes
ifdisposition | TRUE if there is a disposition string
disposition | Disposition string
ifdparameters | TRUE if the dparameters array exists
dparameters | An array of objects where each object has an "attribute" and a "value" property corresponding to the parameters on the Content-disposition MIMEheader.
ifparameters | TRUE if the parameters array exists
parameters | An array of objects where each object has an "attribute" and a "value" property.
parts | An array of objects identical in structure to the top-level object, each of which corresponds to a MIME body part.

Primary body type
0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Transfer encodings
0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

参见

  • imap_fetchbody() - Fetch a particular section of the body of the message
  • imap_bodystruct() - Read the structure of a specified body section of a specific message

imap_fetchheader
imap_get_quota
IMAP 函数


Retrieve the quota level settings, and usage statics per mailbox

imap_fetchstructure
imap_get_quotaroot
IMAP 函数
PHP 手册

imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox

说明

array imap_get_quota ( resource $imap_stream , string $quota_root )

Retrieve the quota level settings, and usage statics per mailbox.

For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

参数

imap_stream

An IMAP stream returned by imap_open().

quota_root

quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

返回值

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

As of PHP 4.3, the function more properly reflects the functionality as dictated by the » RFC2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it.

For backwards compatibility reasons, the original access methods are still available for use, although it is suggested to update.

范例

Example #1 imap_get_quota() example

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

Example #2 imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

注释

This function is currently only available to users of the c-client2000 or greater library.

The given imap_stream must be opened as the mail administrator, otherwise this function will fail.

参见

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_set_quota() - Sets a quota for a given mailbox
  • imap_get_quotaroot() - Retrieve the quota settings per user

imap_fetchstructure
imap_get_quotaroot
IMAP 函数


Retrieve the quota settings per user

imap_get_quota
imap_getacl
IMAP 函数
PHP 手册

imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotaroot — Retrieve the quota settings per user

说明

array imap_get_quotaroot ( resource $imap_stream , string $quota_root )

Retrieve the quota settings per user. The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity.

参数

imap_stream

An IMAP stream returned by imap_open().

quota_root

quota_root should normally be in the form of which mailbox (i.e. INBOX).

返回值

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

范例

Example #1 imap_get_quotaroot() example

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

注释

This function is currently only available to users of the c-client2000 or greater library.

The imap_stream should be opened as the user whose mailbox you wish to check.

参见

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_set_quota() - Sets a quota for a given mailbox
  • imap_get_quota() - Retrieve the quota level settings, and usage statics per mailbox

imap_get_quota
imap_getacl
IMAP 函数


Gets the ACL for a given mailbox

imap_get_quotaroot
imap_getmailboxes
IMAP 函数
PHP 手册

imap_getacl

(PHP 5)

imap_getacl — Gets the ACL for a given mailbox

说明

array imap_getacl ( resource $imap_stream , string $mailbox )

Gets the ACL for a given mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

返回值

Returns an associative array of "folder" => "acl" pairs.

范例

Example #1 imap_getacl() example

<?php

print_r(imap_getacl($conn_id, 'user.joecool'));

?>

上例的输出类似于：

Array
(
    [asubfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

注释

This function is currently only available to users of the c-client2000 or greater library.

参见

  • imap_setacl() - Sets the ACL for a giving mailbox

imap_get_quotaroot
imap_getmailboxes
IMAP 函数


Read the list of mailboxes, returning detailed information on each one

imap_getacl
imap_getsubscribed
IMAP 函数
PHP 手册

imap_getmailboxes

(PHP 4, PHP 5)

imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one

说明

array imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern )

Gets information on the mailboxes.

参数

imap_stream

An IMAP stream returned by imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Specifies where in the mailbox hierarchy to start searching.

There are two special characters you can pass as part of the pattern : '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

返回值

Returns an array of objects containing mailbox information. Each object has the attributes name , specifying the full name of the mailbox; delimiter , which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes . Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox contains, and may not contain any "children" (there are no mailboxes below this one). Calling imap_createmailbox() will not work on this mailbox.

  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.

  • LATT_MARKED - This mailbox is marked. This means that it may contain new messages since the last time it was checked. Not provided by all IMAP servers.

  • LATT_UNMARKED - This mailbox is not marked, does not contain new messages. If either MARKED or UNMARKED is provided, you can assume the IMAP server supports this feature for this mailbox.

范例

Example #1 imap_getmailboxes() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $key => $val) {
        echo "($key) ";
        echo imap_utf7_decode($val->name) . ",";
        echo "'" . $val->delimiter . "',";
        echo $val->attributes . "<br />\n";
    }
} else {
    echo "imap_getmailboxes failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

参见

  • imap_getsubscribed() - List all the subscribed mailboxes

imap_getacl
imap_getsubscribed
IMAP 函数


List all the subscribed mailboxes

imap_getmailboxes
imap_header
IMAP 函数
PHP 手册

imap_getsubscribed

(PHP 4, PHP 5)

imap_getsubscribed — List all the subscribed mailboxes

说明

array imap_getsubscribed ( resource $imap_stream , string $ref , string $pattern )

Gets information about the subscribed mailboxes.

Identical to imap_getmailboxes(), except that it only returns mailboxes that the user is subscribed to.

参数

imap_stream

An IMAP stream returned by imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Specifies where in the mailbox hierarchy to start searching.

There are two special characters you can pass as part of the pattern : '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

返回值

Returns an array of objects containing mailbox information. Each object has the attributes name , specifying the full name of the mailbox; delimiter , which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes . Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox has no "children" (there are no mailboxes below this one).
  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.
  • LATT_MARKED - This mailbox is marked. Only used by UW-IMAPD.
  • LATT_UNMARKED - This mailbox is not marked. Only used by UW-IMAPD.

imap_getmailboxes
imap_header
IMAP 函数


别名 imap_headerinfo

imap_getsubscribed
imap_headerinfo
IMAP 函数
PHP 手册

imap_header

(PHP 4, PHP 5)

imap_header — 别名 imap_headerinfo()

说明

本函数是该函数的别名： imap_headerinfo().

imap_getsubscribed
imap_headerinfo
IMAP 函数


Read the header of the message

imap_header
imap_headers
IMAP 函数
PHP 手册

imap_headerinfo

(PHP 4, PHP 5)

imap_headerinfo — Read the header of the message

说明

object imap_headerinfo ( resource $imap_stream , int $msg_number [, int $fromlength=0 [, int $subjectlength=0 [, string $defaulthost=NULL ]]] )

Gets information about the given message number by reading its headers.

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

fromlength

Number of characters for the fetchfrom property. Must be greater than or equal to zero.

subjectlength

Number of characters for the fetchsubject property Must be greater than or equal to zero.

defaulthost

返回值

Returns the information in an object with following properties:

  • toaddress - full to: line, up to 1024 characters
  • to - an array of objects from the To: line, with the following properties: personal, adl, mailbox, and host
  • fromaddress - full from: line, up to 1024 characters
  • from - an array of objects from the From: line, with the following properties: personal, adl, mailbox, and host
  • ccaddress - full cc: line, up to 1024 characters
  • cc - an array of objects from the Cc: line, with the following properties: personal, adl, mailbox, and host
  • bccaddress - full bcc: line, up to 1024 characters
  • bcc - an array of objects from the Bcc: line, with the following properties: personal, adl, mailbox, and host
  • reply_toaddress - full Reply-To: line, up to 1024 characters
  • reply_to - an array of objects from the Reply-To: line, with the following properties: personal, adl, mailbox, and host
  • senderaddress - full sender: line, up to 1024 characters
  • sender - an array of objects from the Sender: line, with the following properties: personal, adl, mailbox, and host
  • return_pathaddress - full Return-Path: line, up to 1024 characters
  • return_path - an array of objects from the Return-Path: line, with the following properties: personal, adl, mailbox, and host
  • remail -
  • date - The message date as found in its headers
  • Date - Same as date
  • subject - The message subject
  • Subject - Same a subject
  • in_reply_to -
  • message_id -
  • newsgroups -
  • followup_to -
  • references -
  • Recent - R if recent and seen, N if recent and not seen, ' ' if not recent.
  • Unseen - U if not seen AND not recent, ' ' if seen OR not seen and recent
  • Flagged - F if flagged, ' ' if not flagged
  • Answered - A if answered, ' ' if unanswered
  • Deleted - D if deleted, ' ' if not deleted
  • Draft - X if draft, ' ' if not draft
  • Msgno - The message number
  • MailDate -
  • Size - The message size
  • udate - mail message date in Unix time
  • fetchfrom - from line formatted to fit fromlength characters
  • fetchsubject - subject line formatted to fit subjectlength characters

参见

  • imap_fetch_overview() - Read an overview of the information in the headers of the given message

imap_header
imap_headers
IMAP 函数


Returns headers for all messages in a mailbox

imap_headerinfo
imap_last_error
IMAP 函数
PHP 手册

imap_headers

(PHP 4, PHP 5)

imap_headers — Returns headers for all messages in a mailbox

说明

array imap_headers ( resource $imap_stream )

Returns headers for all messages in a mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Returns an array of string formatted with header info. One element per mail message.

imap_headerinfo
imap_last_error
IMAP 函数


Gets the last IMAP error that occurred during this page request

imap_headers
imap_list
IMAP 函数
PHP 手册

imap_last_error

(PHP 4, PHP 5)

imap_last_error — Gets the last IMAP error that occurred during this page request

说明

string imap_last_error ( void )

Gets the full text of the last IMAP error message that occurred on the current page. The error stack is untouched; calling imap_last_error() subsequently, with no intervening errors, will return the same error.

返回值

Returns the full text of the last IMAP error message that occurred on the current page. Returns FALSE if no error messages are available.

参见

  • imap_errors() - Returns all of the IMAP errors that have occured

imap_headers
imap_list
IMAP 函数


Read the list of mailboxes

imap_last_error
imap_listmailbox
IMAP 函数
PHP 手册

imap_list

(PHP 4, PHP 5)

imap_list — Read the list of mailboxes

说明

array imap_list ( resource $imap_stream , string $ref , string $pattern )

Read the list of mailboxes.

参数

imap_stream

An IMAP stream returned by imap_open().

ref

ref should normally be just the server specification as described in imap_open().

pattern

Specifies where in the mailbox hierarchy to start searching.

There are two special characters you can pass as part of the pattern : '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

返回值

Returns an array containing the names of the mailboxes.

范例

Example #1 imap_list() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . "\n";
    }
} else {
    echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

参见

  • imap_getmailboxes() - Read the list of mailboxes, returning detailed information on each one
  • imap_lsub() - List all the subscribed mailboxes

imap_last_error
imap_listmailbox
IMAP 函数


别名 imap_list

imap_list
imap_listscan
IMAP 函数
PHP 手册

imap_listmailbox

(PHP 4, PHP 5)

imap_listmailbox — 别名 imap_list()

说明

本函数是该函数的别名： imap_list().

imap_list
imap_listscan
IMAP 函数


Returns the list of mailboxes that matches the given text

imap_listmailbox
imap_listsubscribed
IMAP 函数
PHP 手册

imap_listscan

(PHP 4, PHP 5)

imap_listscan — Returns the list of mailboxes that matches the given text

说明

array imap_listscan ( resource $imap_stream , string $ref , string $pattern , string $content )

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data.

参数

imap_stream

An IMAP stream returned by imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Specifies where in the mailbox hierarchy to start searching.

There are two special characters you can pass as part of the pattern : '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory

content

The searched string

返回值

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

参见

  • imap_listmailbox() - 别名 imap_list
  • imap_search() - This function returns an array of messages matching the given search criteria

imap_listmailbox
imap_listsubscribed
IMAP 函数


别名 imap_lsub

imap_listscan
imap_lsub
IMAP 函数
PHP 手册

imap_listsubscribed

(PHP 4, PHP 5)

imap_listsubscribed — 别名 imap_lsub()

说明

本函数是该函数的别名： imap_lsub().

imap_listscan
imap_lsub
IMAP 函数


List all the subscribed mailboxes

imap_listsubscribed
imap_mail_compose
IMAP 函数
PHP 手册

imap_lsub

(PHP 4, PHP 5)

imap_lsub — List all the subscribed mailboxes

说明

array imap_lsub ( resource $imap_stream , string $ref , string $pattern )

Gets an array of all the mailboxes that you have subscribed.

参数

imap_stream

An IMAP stream returned by imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Specifies where in the mailbox hierarchy to start searching.

There are two special characters you can pass as part of the pattern : '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

返回值

Returns an array of all the subscribed mailboxes.

参见

  • imap_list() - Read the list of mailboxes
  • imap_getmailboxes() - Read the list of mailboxes, returning detailed information on each one

imap_listsubscribed
imap_mail_compose
IMAP 函数


Create a MIME message based on given envelope and body sections

imap_lsub
imap_mail_copy
IMAP 函数
PHP 手册

imap_mail_compose

(PHP 4, PHP 5)

imap_mail_compose — Create a MIME message based on given envelope and body sections

说明

string imap_mail_compose ( array $envelope , array $body )

Create a MIME message based on the given envelope and body sections.

参数

envelope

An associative array of headers fields

body

An indexed array of bodies

A body is an associative array which can consist of the following keys: "type", "encoding", "subtype", "description" and "contents.data"

返回值

Returns the MIME message.

范例

Example #1 imap_mail_compose() example

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>

imap_lsub
imap_mail_copy
IMAP 函数


Copy specified messages to a mailbox

imap_mail_compose
imap_mail_move
IMAP 函数
PHP 手册

imap_mail_copy

(PHP 4, PHP 5)

imap_mail_copy — Copy specified messages to a mailbox

说明

bool imap_mail_copy ( resource $imap_stream , string $msglist , string $mailbox [, int $options=0 ] )

Copies mail messages specified by msglist to specified mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

msglist

msglist is a range not just message numbers (as described in » RFC2060).

mailbox

The mailbox name, see imap_open() for more information

options

options is a bitmask of one or more of

  • CP_UID - the sequence numbers contain UIDS
  • CP_MOVE - Delete the messages from the current mailbox after copying

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_mail_move() - Move specified messages to a mailbox

imap_mail_compose
imap_mail_move
IMAP 函数


Move specified messages to a mailbox

imap_mail_copy
imap_mail
IMAP 函数
PHP 手册

imap_mail_move

(PHP 4, PHP 5)

imap_mail_move — Move specified messages to a mailbox

说明

bool imap_mail_move ( resource $imap_stream , string $msglist , string $mailbox [, int $options=0 ] )

Moves mail messages specified by msglist to the specified mailbox .

参数

imap_stream

An IMAP stream returned by imap_open().

msglist

msglist is a range not just message numbers (as described in » RFC2060).

mailbox

The mailbox name, see imap_open() for more information

options

options is a bitmask and may contain the single option:

  • CP_UID - the sequence numbers contain UIDS

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_mail_copy() - Copy specified messages to a mailbox

imap_mail_copy
imap_mail
IMAP 函数


Send an email message

imap_mail_move
imap_mailboxmsginfo
IMAP 函数
PHP 手册

imap_mail

(PHP 4, PHP 5)

imap_mail — Send an email message

说明

bool imap_mail ( string $to , string $subject , string $message [, string $additional_headers=NULL [, string $cc=NULL [, string $bcc=NULL [, string $rpath=NULL ]]]] )

This function allows sending of emails with correct handling of Cc and Bcc receivers.

The parameters to , cc and bcc are all strings and are all parsed as » RFC822 address lists.

参数

to

The receiver

subject

The mail subject

message

The mail body

additional_headers

As string with additional headers to be set on the mail

cc

bcc

The receivers specified in bcc will get the mail, but are excluded from the headers.

rpath

Use this parameter to specify return path upon mail delivery failure. This is useful when using PHP as a mail client for multiple users.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mail() - 发送邮件

imap_mail_move
imap_mailboxmsginfo
IMAP 函数


Get information about the current mailbox

imap_mail
imap_mime_header_decode
IMAP 函数
PHP 手册

imap_mailboxmsginfo

(PHP 4, PHP 5)

imap_mailboxmsginfo — Get information about the current mailbox

说明

object imap_mailboxmsginfo ( resource $imap_stream )

Checks the current mailbox status on the server. It is similar to imap_status(), but will additionally sum up the size of all messages in the mailbox, which will take some additional time to execute.

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Returns the information in an object with following properties:

Mailbox properties
Date | date of last change (current datetime)
Driver | driver
Mailbox | name of the mailbox
Nmsgs | number of messages
Recent | number of recent messages
Unread | number of unread messages
Deleted | number of deleted messages
Size | mailbox size

Returns FALSE on failure.

范例

Example #1 imap_mailboxmsginfo() example

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
      or die("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date: "     . $check->Date    . "<br />\n" ;
    echo "Driver: "   . $check->Driver  . "<br />\n" ;
    echo "Mailbox: "  . $check->Mailbox . "<br />\n" ;
    echo "Messages: " . $check->Nmsgs   . "<br />\n" ;
    echo "Recent: "   . $check->Recent  . "<br />\n" ;
    echo "Unread: "   . $check->Unread  . "<br />\n" ;
    echo "Deleted: "  . $check->Deleted . "<br />\n" ;
    echo "Size: "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_check() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>

imap_mail
imap_mime_header_decode
IMAP 函数


Decode MIME header elements

imap_mailboxmsginfo
imap_msgno
IMAP 函数
PHP 手册

imap_mime_header_decode

(PHP 4, PHP 5)

imap_mime_header_decode — Decode MIME header elements

说明

array imap_mime_header_decode ( string $text )

Decodes MIME message header extensions that are non ASCII text (see » RFC2047).

参数

text

The MIME text

返回值

The decoded elements are returned in an array of objects, where each object has two properties, charset and text.

If the element hasn't been encoded, and in other words is in plain US-ASCII, the charset property of that element is set to default.

范例

Example #1 imap_mime_header_decode() example

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
?>

上例将输出：

Charset: ISO-8859-1
Text: Keld Jørn Simonsen

Charset: default
Text:  <keld@example.com>

In the above example we would have two elements, whereas the first element had previously been encoded with ISO-8859-1, and the second element would be plain US-ASCII.

参见

  • imap_utf8() - Converts MIME-encoded text to UTF-8

imap_mailboxmsginfo
imap_msgno
IMAP 函数


Gets the message sequence number for the given UID

imap_mime_header_decode
imap_num_msg
IMAP 函数
PHP 手册

imap_msgno

(PHP 4, PHP 5)

imap_msgno — Gets the message sequence number for the given UID

说明

int imap_msgno ( resource $imap_stream , int $uid )

Returns the message sequence number for the given uid .

This function is the inverse of imap_uid().

参数

imap_stream

An IMAP stream returned by imap_open().

uid

The message UID

返回值

Returns the message sequence number for the given uid .

参见

  • imap_uid() - This function returns the UID for the given message sequence number

imap_mime_header_decode
imap_num_msg
IMAP 函数


Gets the number of messages in the current mailbox

imap_msgno
imap_num_recent
IMAP 函数
PHP 手册

imap_num_msg

(PHP 4, PHP 5)

imap_num_msg — Gets the number of messages in the current mailbox

说明

int imap_num_msg ( resource $imap_stream )

Gets the number of messages in the current mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Return the number of messages in the current mailbox, as an integer.

参见

  • imap_num_recent() - Gets the number of recent messages in current mailbox
  • imap_status() - Returns status information on a mailbox

imap_msgno
imap_num_recent
IMAP 函数


Gets the number of recent messages in current mailbox

imap_num_msg
imap_open
IMAP 函数
PHP 手册

imap_num_recent

(PHP 4, PHP 5)

imap_num_recent — Gets the number of recent messages in current mailbox

说明

int imap_num_recent ( resource $imap_stream )

Gets the number of recent messages in the current mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Returns the number of recent messages in the current mailbox, as an integer.

参见

  • imap_num_msg() - Gets the number of messages in the current mailbox
  • imap_status() - Returns status information on a mailbox

imap_num_msg
imap_open
IMAP 函数


Open an IMAP stream to a mailbox

imap_num_recent
imap_ping
IMAP 函数
PHP 手册

imap_open

(PHP 4, PHP 5)

imap_open — Open an IMAP stream to a mailbox

说明

resource imap_open ( string $mailbox , string $username , string $password [, int $options=NIL [, int $n_retries=0 ]] )

Opens an IMAP stream to a mailbox .

This function can also be used to open streams to POP3 and NNTP servers, but some functions and features are only available on IMAP servers.

参数

mailbox

A mailbox name consists of a server and a mailbox path on this server. The special name INBOX stands for the current users personal mailbox. Mailbox names that contain international characters besides those in the printable ASCII space have to be encoded width imap_utf7_encode().

The server part, which is enclosed in '{' and '}', consists of the servers name or ip address, an optional port (prefixed by ':'), and an optional protocol specification (prefixed by '/').

The server part is mandatory in all mailbox parameters.

All names which start with { are remote names, and are in the form "{" remote_system_name [":" port] [flags] "}" [mailbox_name] where:

  • remote_system_name - Internet domain name or bracketed IP address of server.
  • port - optional TCP port number, default is the default port for that service
  • flags - optional flags, see following table.
  • mailbox_name - remote mailbox name, default is INBOX

Optional flags for names
Flag | Description
/service=service | mailbox access service, default is "imap"
/user=user | remote user name for login on the server
/authuser=user | remote authentication user; if specified this is the user name whose password is used (e.g. administrator)
/anonymous | remote access as anonymous user
/debug | record protocol telemetry in application's debug log
/secure | do not transmit a plaintext password over the network
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | equivalent to /service=imap
/pop3 | equivalent to /service=pop3
/nntp | equivalent to /service=nntp
/norsh | do not use rsh or ssh to establish a preauthenticated IMAP session
/ssl | use the Secure Socket Layer to encrypt the session
/validate-cert | validate certificates from TLS/SSL server (this is the default behavior)
/novalidate-cert | do not validate certificates from TLS/SSL server, needed if server uses self-signed certificates
/tls | force use of start-TLS to encrypt the session, and reject connection to servers that do not support it
/notls | do not do start-TLS to encrypt the session, even with servers that support it
/readonly | request read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3)

username

The user name

password

The password associated with the username

options

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())
  • OP_DEBUG - Debug protocol negotiations
  • OP_SHORTCACHE - Short (elt-only) caching
  • OP_SILENT - Don't pass up events (internal use)
  • OP_PROTOTYPE - Return driver prototype
  • OP_SECURE - Don't do non-secure authentication

n_retries

Number of maximum connect attempts

返回值

Returns an IMAP stream on success or FALSE on error.

更新日志

版本 | 说明
5.2.0 | n_retries added

范例

Example #1 Different use of imap_open()

<?php
// To connect to an IMAP server running on port 143 on the local machine,
// do the following:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// To connect to a POP3 server on port 110 on the local server, use:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server, add /ssl after the protocol
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server with a self-signed certificate,
// add /ssl/novalidate-cert after the protocol specification:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// To connect to an NNTP server on port 119 on the local server, use:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// To connect to a remote server replace "localhost" with the name or the
// IP address of the server you want to connect to.
?>

Example #2 imap_open() example

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

参见

  • imap_close() - Close an IMAP stream

imap_num_recent
imap_ping
IMAP 函数


Check if the IMAP stream is still active

imap_open
imap_qprint
IMAP 函数
PHP 手册

imap_ping

(PHP 4, PHP 5)

imap_ping — Check if the IMAP stream is still active

说明

bool imap_ping ( resource $imap_stream )

imap_ping() pings the stream to see if it's still active. It may discover new mail; this is the preferred method for a periodic "new mail check" as well as a "keep alive" for servers which have inactivity timeout.

参数

imap_stream

An IMAP stream returned by imap_open().

返回值

Returns TRUE if the stream is still alive, FALSE otherwise.

范例

Example #1 imap_ping() Example

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// after some sleeping
if (!imap_ping($imap)) {
    // do some stuff to reconnect
}

?>

imap_open
imap_qprint
IMAP 函数


Convert a quoted-printable string to an 8 bit string

imap_ping
imap_renamemailbox
IMAP 函数
PHP 手册

imap_qprint

(PHP 4, PHP 5)

imap_qprint — Convert a quoted-printable string to an 8 bit string

说明

string imap_qprint ( string $string )

Convert a quoted-printable string to an 8 bit string according to » RFC2045, section 6.7.

参数

string

A quoted-printable string

返回值

Returns an 8 bits string.

参见

  • imap_8bit() - Convert an 8bit string to a quoted-printable string

imap_ping
imap_renamemailbox
IMAP 函数


Rename an old mailbox to new mailbox

imap_qprint
imap_reopen
IMAP 函数
PHP 手册

imap_renamemailbox

(PHP 4, PHP 5)

imap_renamemailbox — Rename an old mailbox to new mailbox

说明

bool imap_renamemailbox ( resource $imap_stream , string $old_mbox , string $new_mbox )

This function renames on old mailbox to new mailbox (see imap_open() for the format of mbox names).

参数

imap_stream

An IMAP stream returned by imap_open().

old_mbox

The old mailbox name, see imap_open() for more information

new_mbox

The new mailbox name, see imap_open() for more information

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_createmailbox() - Create a new mailbox
  • imap_deletemailbox() - Delete a mailbox

imap_qprint
imap_reopen
IMAP 函数


Reopen IMAP stream to new mailbox

imap_renamemailbox
imap_rfc822_parse_adrlist
IMAP 函数
PHP 手册

imap_reopen

(PHP 4, PHP 5)

imap_reopen — Reopen IMAP stream to new mailbox

说明

bool imap_reopen ( resource $imap_stream , string $mailbox [, int $options=0 [, int $n_retries=0 ]] )

Reopens the specified stream to a new mailbox on an IMAP or NNTP server.

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

options

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • OP_EXPUNGE - Silently expunge recycle stream
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

n_retries

Number of maximum connect attempts

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.2.0 | n_retries added

范例

Example #1 imap_reopen() example

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
// ...
imap_reopen($mbox, "{imap.example.org:143}INBOX.Sent") or die(implode(", ", imap_errors()));
// ..
?>

imap_renamemailbox
imap_rfc822_parse_adrlist
IMAP 函数


Parses an address string

imap_reopen
imap_rfc822_parse_headers
IMAP 函数
PHP 手册

imap_rfc822_parse_adrlist

(PHP 4, PHP 5)

imap_rfc822_parse_adrlist — Parses an address string

说明

array imap_rfc822_parse_adrlist ( string $address , string $default_host )

Parses the address string as defined in » RFC2822 and for each address.

参数

address

A string containing addresses

default_host

The default host name

返回值

Returns an array of objects. The objects properties are:

  • mailbox - the mailbox name (username)
  • host - the host name
  • personal - the personal name
  • adl - at domain source route

范例

Example #1 imap_rfc822_parse_adrlist() example

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("something is wrong\n");
}

foreach ($address_array as $id => $val) {
    echo "# $id\n";
    echo "  mailbox : " . $val->mailbox . "\n";
    echo "  host    : " . $val->host . "\n";
    echo "  personal: " . $val->personal . "\n";
    echo "  adl     : " . $val->adl . "\n";
}
?>

上例将输出：

# 0
  mailbox : doe
  host    : example.com
  personal: Joe Doe
  adl     :
# 1
  mailbox : postmaster
  host    : example.com
  personal:
  adl     :
# 2
  mailbox : root
  host    : example.com
  personal:
  adl     :

参见

  • imap_rfc822_parse_headers() - Parse mail headers from a string

imap_reopen
imap_rfc822_parse_headers
IMAP 函数


Parse mail headers from a string

imap_rfc822_parse_adrlist
imap_rfc822_write_address
IMAP 函数
PHP 手册

imap_rfc822_parse_headers

(PHP 4, PHP 5)

imap_rfc822_parse_headers — Parse mail headers from a string

说明

object imap_rfc822_parse_headers ( string $headers [, string $defaulthost="UNKNOWN" ] )

Gets an object of various header elements, similar to imap_header().

参数

headers

The parsed headers data

defaulthost

The default host name

返回值

Returns an object similar to the one returned by imap_header(), except for the flags and other properties that come from the IMAP server.

参见

  • imap_rfc822_parse_adrlist() - Parses an address string

imap_rfc822_parse_adrlist
imap_rfc822_write_address
IMAP 函数


Returns a properly formatted email address given the mailbox, host, and personal info

imap_rfc822_parse_headers
imap_savebody
IMAP 函数
PHP 手册

imap_rfc822_write_address

(PHP 4, PHP 5)

imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info

说明

string imap_rfc822_write_address ( string $mailbox , string $host , string $personal )

Returns a properly formatted email address as defined in » RFC2822 given the needed information.

参数

mailbox

The mailbox name, see imap_open() for more information

host

The email host part

personal

The name of the account owner

返回值

Returns a string properly formatted email address as defined in » RFC2822.

范例

Example #1 imap_rfc822_write_address() example

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

上例将输出：

Hartmut Holzgraefe <hartmut@example.com>

imap_rfc822_parse_headers
imap_savebody
IMAP 函数


Save a specific body section to a file

imap_rfc822_write_address
imap_scanmailbox
IMAP 函数
PHP 手册

imap_savebody

(PHP 5 >= 5.1.3)

imap_savebody — Save a specific body section to a file

说明

bool imap_savebody ( resource $imap_stream , mixed $file , int $msg_number [, string $part_number="" [, int $options=0 ]] )

Saves a part or the whole body of the specified message.

参数

imap_stream

An IMAP stream returned by imap_open().

file

The path to the saved file as a string, or a valid file descriptor returned by fopen().

msg_number

The message number

part_number

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

options

A bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_fetchbody() - Fetch a particular section of the body of the message

imap_rfc822_write_address
imap_scanmailbox
IMAP 函数


别名 imap_listscan

imap_savebody
imap_search
IMAP 函数
PHP 手册

imap_scanmailbox

(PHP 4, PHP 5)

imap_scanmailbox — 别名 imap_listscan()

说明

本函数是该函数的别名： imap_listscan().

imap_savebody
imap_search
IMAP 函数


This function returns an array of messages matching the given search criteria

imap_scanmailbox
imap_set_quota
IMAP 函数
PHP 手册

imap_search

(PHP 4, PHP 5)

imap_search — This function returns an array of messages matching the given search criteria

说明

array imap_search ( resource $imap_stream , string $criteria [, int $options=SE_FREE [, string $charset=NIL ]] )

This function performs a search on the mailbox currently opened in the given imap stream.

For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom". Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client source code and may be incomplete or inaccurate (see also » RFC2060, section 6.4.4).

参数

imap_stream

An IMAP stream returned by imap_open().

criteria

A string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted.

  • ALL - return all messages matching the rest of the criteria
  • ANSWERED - match messages with the \\ANSWERED flag set
  • BCC "string" - match messages with "string" in the Bcc: field
  • BEFORE "date" - match messages with Date: before "date"
  • BODY "string" - match messages with "string" in the body of the message
  • CC "string" - match messages with "string" in the Cc: field
  • DELETED - match deleted messages
  • FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set
  • FROM "string" - match messages with "string" in the From: field
  • KEYWORD "string" - match messages with "string" as a keyword
  • NEW - match new messages
  • OLD - match old messages
  • ON "date" - match messages with Date: matching "date"
  • RECENT - match messages with the \\RECENT flag set
  • SEEN - match messages that have been read (the \\SEEN flag is set)
  • SINCE "date" - match messages with Date: after "date"
  • SUBJECT "string" - match messages with "string" in the Subject:
  • TEXT "string" - match messages with text "string"
  • TO "string" - match messages with "string" in the To:
  • UNANSWERED - match messages that have not been answered
  • UNDELETED - match messages that are not deleted
  • UNFLAGGED - match messages that are not flagged
  • UNKEYWORD "string" - match messages that do not have the keyword "string"
  • UNSEEN - match messages which have not been read yet

options

Valid values for options are SE_UID, which causes the returned array to contain UIDs instead of messages sequence numbers.

charset

返回值

Returns an array of message numbers or UIDs.

Return FALSE if it does not understand the search criteria or no messages have been found.

更新日志

版本 | 说明
4.3.3 | The charset parameter was added

参见

  • imap_listscan() - Returns the list of mailboxes that matches the given text

imap_scanmailbox
imap_set_quota
IMAP 函数


Sets a quota for a given mailbox

imap_search
imap_setacl
IMAP 函数
PHP 手册

imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quota — Sets a quota for a given mailbox

说明

bool imap_set_quota ( resource $imap_stream , string $quota_root , int $quota_limit )

Sets an upper limit quota on a per mailbox basis.

参数

imap_stream

An IMAP stream returned by imap_open().

quota_root

The mailbox to have a quota set. This should follow the IMAP standard format for a mailbox: user.name.

quota_limit

The maximum size (in KB) for the quota_root

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 imap_set_quota() example

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

注释

This function is currently only available to users of the c-client2000 or greater library.

The given imap_stream must be opened as the mail administrator, other wise this function will fail.

参见

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_get_quota() - Retrieve the quota level settings, and usage statics per mailbox

imap_search
imap_setacl
IMAP 函数


Sets the ACL for a giving mailbox

imap_set_quota
imap_setflag_full
IMAP 函数
PHP 手册

imap_setacl

(PHP 4 >= 4.0.7, PHP 5)

imap_setacl — Sets the ACL for a giving mailbox

说明

bool imap_setacl ( resource $imap_stream , string $mailbox , string $id , string $rights )

Sets the ACL for a giving mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

id

The user to give the rights to.

rights

The rights to give to the user. Passing an empty string will delete acl.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

This function is currently only available to users of the c-client2000 or greater library.

参见

  • imap_getacl() - Gets the ACL for a given mailbox

imap_set_quota
imap_setflag_full
IMAP 函数


Sets flags on messages

imap_setacl
imap_sort
IMAP 函数
PHP 手册

imap_setflag_full

(PHP 4, PHP 5)

imap_setflag_full — Sets flags on messages

说明

bool imap_setflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options=NIL ] )

Causes a store to add the specified flag to the flags set for the messages in the specified sequence .

参数

imap_stream

An IMAP stream returned by imap_open().

sequence

A sequence of message numbers. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flag

The flags which you can set are \Seen, \Answered, \Flagged, \Deleted, and \Draft as defined by » RFC2060.

options

A bit mask that may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 imap_setflag_full() example

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

参见

  • imap_clearflag_full() - Clears flags on messages

imap_setacl
imap_sort
IMAP 函数


Gets and sort messages

imap_setflag_full
imap_status
IMAP 函数
PHP 手册

imap_sort

(PHP 4, PHP 5)

imap_sort — Gets and sort messages

说明

array imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options=0 [, string $search_criteria=NULL [, string $charset=NIL ]]] )

Gets and sorts message numbers by the given parameters.

参数

imap_stream

An IMAP stream returned by imap_open().

criteria

Criteria can be one (and only one) of the following:

  • SORTDATE - message Date
  • SORTARRIVAL - arrival date
  • SORTFROM - mailbox in first From address
  • SORTSUBJECT - message subject
  • SORTTO - mailbox in first To address
  • SORTCC - mailbox in first cc address
  • SORTSIZE - size of message in octets

reverse

Set this to 1 for reverse sorting

options

The options are a bitmask of one or more of the following:

  • SE_UID - Return UIDs instead of sequence numbers
  • SE_NOPREFETCH - Don't prefetch searched messages

search_criteria

charset

返回值

Returns an array of message numbers sorted by the given parameters.

更新日志

版本 | 说明
4.3.3 | The charset parameter was added

imap_setflag_full
imap_status
IMAP 函数


Returns status information on a mailbox

imap_sort
imap_subscribe
IMAP 函数
PHP 手册

imap_status

(PHP 4, PHP 5)

imap_status — Returns status information on a mailbox

说明

object imap_status ( resource $imap_stream , string $mailbox , int $options )

Gets status information about the given mailbox .

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

options

Valid flags are:

  • SA_MESSAGES - set status->messages to the number of messages in the mailbox
  • SA_RECENT - set status->recent to the number of recent messages in the mailbox
  • SA_UNSEEN - set status->unseen to the number of unseen (new) messages in the mailbox
  • SA_UIDNEXT - set status->uidnext to the next uid to be used in the mailbox
  • SA_UIDVALIDITY - set status->uidvalidity to a constant that changes when uids for the mailbox may no longer be valid
  • SA_ALL - set all of the above

返回值

This function returns an object containing status information. The object has the following properties: messages, recent, unseen, uidnext, and uidvalidity.

flags is also set, which contains a bitmask which can be checked against any of the above constants.

范例

Example #1 imap_status() example

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
  echo "Messages:   " . $status->messages    . "<br />\n";
  echo "Recent:     " . $status->recent      . "<br />\n";
  echo "Unseen:     " . $status->unseen      . "<br />\n";
  echo "UIDnext:    " . $status->uidnext     . "<br />\n";
  echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

imap_sort
imap_subscribe
IMAP 函数


Subscribe to a mailbox

imap_status
imap_thread
IMAP 函数
PHP 手册

imap_subscribe

(PHP 4, PHP 5)

imap_subscribe — Subscribe to a mailbox

说明

bool imap_subscribe ( resource $imap_stream , string $mailbox )

Subscribe to a new mailbox.

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_unsubscribe() - Unsubscribe from a mailbox

imap_status
imap_thread
IMAP 函数


Returns a tree of threaded message

imap_subscribe
imap_timeout
IMAP 函数
PHP 手册

imap_thread

(PHP 4 >= 4.0.7, PHP 5)

imap_thread — Returns a tree of threaded message

说明

array imap_thread ( resource $imap_stream [, int $options=SE_FREE ] )

Gets a tree of a threaded message.

参数

imap_stream

An IMAP stream returned by imap_open().

options

返回值

imap_thread() returns an associative array containing a tree of messages threaded by REFERENCES, or FALSE on error.

Every message in the current mailbox will be represented by three entries in the resulting array:

  • $thread["XX.num"] - current message number

  • $thread["XX.next"]

  • $thread["XX.branch"]

范例

Example #1 imap_thread() Example

<?php

// Here we're outputting the threads of a newsgroup, in HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
  $tree = explode('.', $key);
  if ($tree[1] == 'num') {
    $header = imap_headerinfo($nntp, $val);
    echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
  } elseif ($tree[1] == 'branch') {
    echo "\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>

imap_subscribe
imap_timeout
IMAP 函数


Set or fetch imap timeout

imap_thread
imap_uid
IMAP 函数
PHP 手册

imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeout — Set or fetch imap timeout

说明

mixed imap_timeout ( int $timeout_type [, int $timeout=-1 ] )

Sets or fetches the imap timeout.

参数

timeout_type

One of the following: IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT, or IMAP_CLOSETIMEOUT.

timeout

The timeout, in seconds.

返回值

If the timeout parameter is set, this function returns TRUE on success and FALSE on failure.

If timeout is not provided or evaluates to -1, the current timeout value of timeout_type is returned as an integer.

范例

Example #1 imap_timeout() example

<?php

echo "The current read timeout is " . imap_timeout(IMAP_READTIMEOUT) . "\n";

?>

imap_thread
imap_uid
IMAP 函数


This function returns the UID for the given message sequence number

imap_timeout
imap_undelete
IMAP 函数
PHP 手册

imap_uid

(PHP 4, PHP 5)

imap_uid — This function returns the UID for the given message sequence number

说明

int imap_uid ( resource $imap_stream , int $msg_number )

This function returns the UID for the given message sequence number. An UID is a unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes.

This function is the inverse of imap_msgno().

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number.

返回值

The UID of the given message.

注释

Note: This function is not supported by POP3 mailboxes.

参见

  • imap_msgno() - Gets the message sequence number for the given UID

imap_timeout
imap_undelete
IMAP 函数


Unmark the message which is marked deleted

imap_uid
imap_unsubscribe
IMAP 函数
PHP 手册

imap_undelete

(PHP 4, PHP 5)

imap_undelete — Unmark the message which is marked deleted

说明

bool imap_undelete ( resource $imap_stream , int $msg_number [, int $flags=0 ] )

Removes the deletion flag for a specified message, which is set by imap_delete() or imap_mail_move().

参数

imap_stream

An IMAP stream returned by imap_open().

msg_number

The message number

flags

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_delete() - Mark a message for deletion from current mailbox
  • imap_mail_move() - Move specified messages to a mailbox

imap_uid
imap_unsubscribe
IMAP 函数


Unsubscribe from a mailbox

imap_undelete
imap_utf7_decode
IMAP 函数
PHP 手册

imap_unsubscribe

(PHP 4, PHP 5)

imap_unsubscribe — Unsubscribe from a mailbox

说明

bool imap_unsubscribe ( resource $imap_stream , string $mailbox )

Unsubscribe from the specified mailbox .

参数

imap_stream

An IMAP stream returned by imap_open().

mailbox

The mailbox name, see imap_open() for more information

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • imap_subscribe() - Subscribe to a mailbox

imap_undelete
imap_utf7_decode
IMAP 函数


Decodes a modified UTF-7 encoded string

imap_unsubscribe
imap_utf7_encode
IMAP 函数
PHP 手册

imap_utf7_decode

(PHP 4, PHP 5)

imap_utf7_decode — Decodes a modified UTF-7 encoded string

说明

string imap_utf7_decode ( string $text )

Decodes modified UTF-7 text into ISO-8859-1 string.

This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.

参数

text

A modified UTF-7 encoding string, as defined in » RFC 2060, section 5.1.3 (original UTF-7 was defined in » RFC1642).

返回值

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text , or FALSE if text contains invalid modified UTF-7 sequence or text contains a character that is not part of ISO-8859-1 character set.

参见

  • imap_utf7_encode() - Converts ISO-8859-1 string to modified UTF-7 text

imap_unsubscribe
imap_utf7_encode
IMAP 函数


Converts ISO-8859-1 string to modified UTF-7 text

imap_utf7_decode
imap_utf8
IMAP 函数
PHP 手册

imap_utf7_encode

(PHP 4, PHP 5)

imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text

说明

string imap_utf7_encode ( string $data )

Converts data to modified UTF-7 text.

This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.

参数

data

An ISO-8859-1 string.

返回值

Returns data encoded with the modified UTF-7 encoding as defined in » RFC 2060, section 5.1.3 (original UTF-7 was defined in » RFC1642).

参见

  • imap_utf7_decode() - Decodes a modified UTF-7 encoded string

imap_utf7_decode
imap_utf8
IMAP 函数


Converts MIME-encoded text to UTF-8

imap_utf7_encode
Mail
IMAP 函数
PHP 手册

imap_utf8

(PHP 4, PHP 5)

imap_utf8 — Converts MIME-encoded text to UTF-8

说明

string imap_utf8 ( string $mime_encoded_text )

Converts the given mime_encoded_text to UTF-8.

参数

mime_encoded_text

A MIME encoded string. MIME encoding method and the UTF-8 specification are described in » RFC2047 and » RFC2044 respectively.

返回值

Returns an UTF-8 encoded string.

参见

  • imap_mime_header_decode() - Decode MIME header elements

imap_utf7_encode
Mail
IMAP 函数


Mail

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Mail 函数
    • ezmlm_hash — 计算 EZMLM 所需的散列值
    • mail — 发送邮件
imap_utf8
简介
邮件相关扩展


简介

The mail() function allows you to send mail.

Mail
安装/配置
Mail


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Mail


需求

For the Mail functions to be available, PHP must have access to the sendmail binary on your system during compile time. If you use another mail program, such as qmail or postfix, be sure to use the appropriate sendmail wrappers that come with them. PHP will first look for sendmail in your PATH, and then in the following: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. It's highly recommended to have sendmail available from your PATH. Also, the user that compiled PHP must have permission to access the sendmail binary.

安装/配置
安装
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Mail 配置选项
名称 | 默认值 | 可修改范围 | 更新记录
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | 自 PHP 4.3.0 起可用
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

SMTP string

仅用于 Windows：PHP 在 mail() 函数中用来发送邮件的 SMTP 服务器的主机名称或者 IP 地址。

smtp_port int

仅用于 Windows：SMTP 服务器的端口号，默认为 25。自 PHP 4.3.0 起可用。

sendmail_from string

在 Windows 下用 PHP 发送邮件时的“From:”邮件地址的值。该选项同时设置了 “Return-Path:”头。

sendmail_path string

sendmail 程序的路径，通常为 /usr/sbin/sendmail 或 /usr/lib/sendmail。configure 脚本会尝试找到该程序并设定为默认值，但是如果失败的话，可以在这里设定。

不使用 sendmail 的系统应将此指令设定为其邮件系统提供的 sendmail 替代程序，如果有的话。例如，» Qmail 用户通常可以设为 /var/qmail/bin/sendmail 或 /var/qmail/bin/qmail-inject。

qmail-inject 不需要任何选项就能正确处理邮件。

此指令也可用于 Windows。如果设定，smtp，smtp_port 和 sendmail_from 都被忽略并运行指定的命令。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Mail 函数
Mail


Mail 函数

Table of Contents

  • ezmlm_hash — 计算 EZMLM 所需的散列值
  • mail — 发送邮件
预定义常量
ezmlm_hash
Mail


计算 EZMLM 所需的散列值

Mail 函数
mail
Mail 函数
PHP 手册

ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5)

ezmlm_hash — 计算 EZMLM 所需的散列值

说明

int ezmlm_hash ( string $addr )

ezmlm_hash() 计算用于在 MySQL 数据库中保存 EZMLM 邮件列表的散列值。

参数

addr

要进行散列算法的电子邮件地址。

返回值

addr 的散列值。

范例

Example #1 计算散列值并订阅一个用户

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // using PHPLIB db interface

?>

Mail 函数
mail
Mail 函数


发送邮件

ezmlm_hash
Mailparse
Mail 函数
PHP 手册

mail

(PHP 4, PHP 5)

mail — 发送邮件

说明

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

发送一封电子邮件。

参数

to

电子邮件收件人，或收件人列表。

本字符串的格式必须符合 » RFC 2822。例如：

  • user@example.com
  • user@example.com, anotheruser@example.com
  • User <user@example.com>
  • User <user@example.com>, Another User <anotheruser@example.com>

subject

电子邮件的主题。

Caution

本项不能包含任何换行符，否则邮件可能无法正确发送。

message

所要发送的消息。

行之间必须以一个 LF（\n）分隔。每行不能超过 70 个字符。

Caution

（Windows 下）当 PHP 直接连接到 SMTP 服务器时，如果在一行开头发现一个句号，则会被删掉。要避免此问题，将单个句号替换成两个句号。

<?php
$text = str_replace("\n.", "\n..", $text);
?>

additional_headers （可选项）

String to be inserted at the end of the email header.

This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n).

Note: When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.
Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing.

Note: If messages are not received, try using a LF (\n) only. Some poor quality Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822.

additional_parameters (optional)

The additional_parameters parameter can be used to pass an additional parameter to the program configured to use when sending mail using the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option.

The user that the webserver runs as should be added as a trusted user to the sendmail configuration to prevent a 'X-Warning' header from being added to the message when the envelope sender (-f) is set using this method. For sendmail users, this file is /etc/mail/trusted-users.

返回值

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

更新日志

版本 | 说明
4.3.0 (Windows only) | All custom headers (like From, Cc, Bcc and Date) are supported, and are not case-sensitive. (As custom headers are not interpreted by the MTA in the first place, but are parsed by PHP, PHP < 4.3 only supported the Cc header element and was case-sensitive).
4.2.3 | The additional_parameters parameter is disabled in safe_mode and the mail() function will expose a warning message and return FALSE when used.
4.0.5 | The additional_parameters parameter was added.

范例

Example #1 Sending mail.

Using mail() to send a simple email:

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('caffinated@example.com', 'My Subject', $message);
?>

Example #2 Sending mail with extra headers.

The addition of basic headers, telling the MUA the From and Reply-To addresses:

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Example #3 Sending mail with an additional command line parameter.

The additional_parameters parameter can be used to pass an additional parameter to the program configured to use when sending mail using the sendmail_path.

<?php
mail('nobody@example.com', 'the subject', 'the message', null,
   '-fwebmaster@example.com');
?>

Example #4 Sending HTML email

It is also possible to send HTML email with mail().

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

Note: If intending to send HTML or otherwise Complex mails, it is recommended to use the PEAR package » PEAR::Mail.

注释

Note: The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).
Second, the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA in the first place, but are parsed by PHP.
As such, the to parameter should not be an address in the form of "Something <someone@example.com>". The mail command may not parse this properly while talking with the MTA.

Note: Email with attachments and special types of content (e.g. HTML) can be sent using this function. This is accomplished via MIME-encoding - for more information, see this » Zend article or the » PEAR Mime Classes.

Note: It is worth noting that the mail() function is not suitable for larger volumes of email in a loop. This function opens and closes an SMTP socket for each email, which is not very efficient.
For the sending of large amounts of email, see the » PEAR::Mail, and » PEAR::Mail_Queue packages.

Note: The following RFCs may be useful: » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049, and » RFC 2822.

参见

  • imap_mail() - Send an email message
  • » PEAR::Mail
  • » PEAR::Mail_Mime

ezmlm_hash
Mailparse
Mail 函数


Mailparse

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Mailparse 函数
    • mailparse_determine_best_xfer_encoding — Gets the best way of encoding
    • mailparse_msg_create — Create a mime mail resource
    • mailparse_msg_extract_part_file — Extracts/decodes a message section
    • mailparse_msg_extract_part — Extracts/decodes a message section
    • mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding
    • mailparse_msg_free — Frees a MIME resource
    • mailparse_msg_get_part_data — Returns an associative array of info about the message
    • mailparse_msg_get_part — Returns a handle on a given section in a mimemessage
    • mailparse_msg_get_structure — Returns an array of mime section names in the supplied message
    • mailparse_msg_parse_file — Parses a file
    • mailparse_msg_parse — Incrementally parse data into buffer
    • mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses
    • mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp
    • mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file
mail
简介
邮件相关扩展


简介

Mailparse is an extension for parsing and working with email messages. It can deal with » RFC 822 and » RFC 2045 (MIME) compliant messages.

Mailparse is stream based, which means that it does not keep in-memory copies of the files it processes - so it is very resource efficient when dealing with large messages.

Note: Mailparse requires the mbstring extension, and mbstring must be loaded before mailparse.

本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：4.2.0.

Mailparse
安装/配置
Mailparse


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Mailparse


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/mailparse.

In order to use these functions you must compile PHP with mailparse support by using the --enable-mailparse configure option.

Windows users will enable php_mailparse.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Mailparse configuration options
Name | Default | Changeable | Changelog
mailparse.def_charset | "us-ascii" | PHP_INI_ALL | Available since PHP 4.1.0. Removed in PHP 4.2.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

MAILPARSE_EXTRACT_OUTPUT (integer)
MAILPARSE_EXTRACT_STREAM (integer)
MAILPARSE_EXTRACT_RETURN (integer)
资源类型
Mailparse 函数
Mailparse


Mailparse 函数

Table of Contents

  • mailparse_determine_best_xfer_encoding — Gets the best way of encoding
  • mailparse_msg_create — Create a mime mail resource
  • mailparse_msg_extract_part_file — Extracts/decodes a message section
  • mailparse_msg_extract_part — Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding
  • mailparse_msg_free — Frees a MIME resource
  • mailparse_msg_get_part_data — Returns an associative array of info about the message
  • mailparse_msg_get_part — Returns a handle on a given section in a mimemessage
  • mailparse_msg_get_structure — Returns an array of mime section names in the supplied message
  • mailparse_msg_parse_file — Parses a file
  • mailparse_msg_parse — Incrementally parse data into buffer
  • mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses
  • mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp
  • mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file
预定义常量
mailparse_determine_best_xfer_encoding
Mailparse


Gets the best way of encoding

Mailparse 函数
mailparse_msg_create
Mailparse 函数
PHP 手册

mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encoding — Gets the best way of encoding

说明

string mailparse_determine_best_xfer_encoding ( resource $fp )

Figures out the best way of encoding the content read from the given file pointer.

参数

fp

A valid file pointer, which must be seek-able.

返回值

Returns one of the character encodings supported by the mbstring module.

范例

Example #1 mailparse_determine_best_xfer_encoding() example

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Best encoding: ' . mailparse_determine_best_xfer_encoding($fp);

?>

上例的输出类似于：

Best encoding: 7bit

Mailparse 函数
mailparse_msg_create
Mailparse 函数


Create a mime mail resource

mailparse_determine_best_xfer_encoding
mailparse_msg_extract_part_file
Mailparse 函数
PHP 手册

mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_create — Create a mime mail resource

说明

resource mailparse_msg_create ( void )

Create a MIME mail resource.

返回值

Returns a handle that can be used to parse a message.

参见

  • mailparse_msg_free() - Frees a MIME resource
  • mailparse_msg_parse_file() - Parses a file

mailparse_determine_best_xfer_encoding
mailparse_msg_extract_part_file
Mailparse 函数


Extracts/decodes a message section

mailparse_msg_create
mailparse_msg_extract_part
Mailparse 函数
PHP 手册

mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_file — Extracts/decodes a message section

说明

string mailparse_msg_extract_part_file ( resource $mimemail , mixed $filename [, callback $callbackfunc ] )

Extracts/decodes a message section from the supplied filename.

The contents of the section will be decoded according to their transfer encoding - base64, quoted-printable and uuencoded text are supported.

参数

mimemail

A valid MIME resource, created with mailparse_msg_create().

filename

Can be a file name or a valid stream resource.

callbackfunc

If set, this must be either a valid callback that will be passed the extracted section, or NULL to make this function return the extracted section.

If not specified, the contents will be sent to "stdout".

返回值

If callbackfunc is not NULL returns TRUE on success.

If callbackfunc is set to NULL, returns the extracted section as a string.

Returns FALSE on error.

参见

  • mailparse_msg_extract_part() - Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file() - Extracts a message section including headers without decoding the transfer encoding

mailparse_msg_create
mailparse_msg_extract_part
Mailparse 函数


Extracts/decodes a message section

mailparse_msg_extract_part_file
mailparse_msg_extract_whole_part_file
Mailparse 函数
PHP 手册

mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part — Extracts/decodes a message section

说明

void mailparse_msg_extract_part ( resource $mimemail , string $msgbody [, callback $callbackfunc ] )
Warning

本函数暂无文档，仅有参数列表。

参数

mimemail

A valid MIME resource.

msgbody

callbackfunc

返回值

无返回值。

参见

  • mailparse_msg_extract_part_file() - Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file() - Extracts a message section including headers without decoding the transfer encoding

mailparse_msg_extract_part_file
mailparse_msg_extract_whole_part_file
Mailparse 函数


Extracts a message section including headers without decoding the transfer encoding

mailparse_msg_extract_part
mailparse_msg_free
Mailparse 函数
PHP 手册

mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding

说明

string mailparse_msg_extract_whole_part_file ( resource $mimemail , string $filename [, callback $callbackfunc ] )
Warning

本函数暂无文档，仅有参数列表。

参数

mimemail

A valid MIME resource.

filename

callbackfunc

返回值

参见

  • mailparse_msg_extract_part() - Extracts/decodes a message section
  • mailparse_msg_extract_part_file() - Extracts/decodes a message section

mailparse_msg_extract_part
mailparse_msg_free
Mailparse 函数


Frees a MIME resource

mailparse_msg_extract_whole_part_file
mailparse_msg_get_part_data
Mailparse 函数
PHP 手册

mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_free — Frees a MIME resource

说明

bool mailparse_msg_free ( resource $mimemail )

Frees a MIME resource.

参数

mimemail

A valid MIME resource allocated by mailparse_msg_create() or mailparse_msg_parse_file().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • mailparse_msg_create() - Create a mime mail resource
  • mailparse_msg_parse_file() - Parses a file

mailparse_msg_extract_whole_part_file
mailparse_msg_get_part_data
Mailparse 函数


Returns an associative array of info about the message

mailparse_msg_free
mailparse_msg_get_part
Mailparse 函数
PHP 手册

mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_data — Returns an associative array of info about the message

说明

array mailparse_msg_get_part_data ( resource $mimemail )
Warning

本函数暂无文档，仅有参数列表。

参数

mimemail

A valid MIME resource.

mailparse_msg_free
mailparse_msg_get_part
Mailparse 函数


Returns a handle on a given section in a mimemessage

mailparse_msg_get_part_data
mailparse_msg_get_structure
Mailparse 函数
PHP 手册

mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part — Returns a handle on a given section in a mimemessage

说明

resource mailparse_msg_get_part ( resource $mimemail , string $mimesection )
Warning

本函数暂无文档，仅有参数列表。

参数

mimemail

A valid MIME resource.

mimesection

mailparse_msg_get_part_data
mailparse_msg_get_structure
Mailparse 函数


Returns an array of mime section names in the supplied message

mailparse_msg_get_part
mailparse_msg_parse_file
Mailparse 函数
PHP 手册

mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structure — Returns an array of mime section names in the supplied message

说明

array mailparse_msg_get_structure ( resource $mimemail )
Warning

本函数暂无文档，仅有参数列表。

参数

mimemail

A valid MIME resource.

mailparse_msg_get_part
mailparse_msg_parse_file
Mailparse 函数


Parses a file

mailparse_msg_get_structure
mailparse_msg_parse
Mailparse 函数
PHP 手册

mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_file — Parses a file

说明

resource mailparse_msg_parse_file ( string $filename )

Parses a file. This is the optimal way of parsing a mail file that you have on disk.

参数

filename

Path to the file holding the message. The file is opened and streamed through the parser.

返回值

Returns a MIME resource representing the structure, or FALSE on error.

参见

  • mailparse_msg_free() - Frees a MIME resource
  • mailparse_msg_create() - Create a mime mail resource

mailparse_msg_get_structure
mailparse_msg_parse
Mailparse 函数


Incrementally parse data into buffer

mailparse_msg_parse_file
mailparse_rfc822_parse_addresses
Mailparse 函数
PHP 手册

mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parse — Incrementally parse data into buffer

说明

bool mailparse_msg_parse ( resource $mimemail , string $data )

Incrementally parse data into the supplied mime mail resource.

This function allow you to stream portions of a file at a time, rather than read and parse the whole thing.

参数

mimemail

A valid MIME resource.

data

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

mailparse_msg_parse_file
mailparse_rfc822_parse_addresses
Mailparse 函数


Parse RFC 822 compliant addresses

mailparse_msg_parse
mailparse_stream_encode
Mailparse 函数
PHP 手册

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses

说明

array mailparse_rfc822_parse_addresses ( string $addresses )

Parses a » RFC 822 compliant recipient list, such as that found in the To: header.

参数

addresses

A string containing addresses, like in: Wez Furlong <wez@example.com>, doe@example.com

Note: This string must not include the header name.

返回值

Returns an array of associative arrays with the following keys for each recipient:

display | The recipient name, for display purpose. If this part is not set for a recipient, this key will hold the same value as address.
address | The email address
is_group | TRUE if the recipient is a newsgroup, FALSE otherwise.

范例

Example #1 mailparse_rfc822_parse_addresses() example

<?php

$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

上例将输出：

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}

mailparse_msg_parse
mailparse_stream_encode
Mailparse 函数


Streams data from source file pointer, apply encoding and write to destfp

mailparse_rfc822_parse_addresses
mailparse_uudecode_all
Mailparse 函数
PHP 手册

mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp

说明

bool mailparse_stream_encode ( resource $sourcefp , resource $destfp , string $encoding )

Streams data from the source file pointer, apply encoding and write to the destination file pointer.

参数

sourcefp

A valid file handle. The file is streamed through the parser.

destfp

The destination file handle in which the encoded data will be written.

encoding

One of the character encodings supported by the mbstring module.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 mailparse_stream_encode() example

<?php

// email.eml contents: hello, this is some text=hello.
$fp = fopen('email.eml', 'r');

$dest = tmpfile();

mailparse_stream_encode($fp, $dest, "quoted-printable");

rewind($dest);

// Display new file contents
fpassthru($dest);

?>

上例将输出：

hello, this is some text=3Dhello.

mailparse_rfc822_parse_addresses
mailparse_uudecode_all
Mailparse 函数


Scans the data from fp and extract each embedded uuencoded file

mailparse_stream_encode
vpopmail
Mailparse 函数
PHP 手册

mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file

说明

array mailparse_uudecode_all ( resource $fp )

Scans the data from the given file pointer and extract each embedded uuencoded file into a temporary file.

参数

fp

A valid file pointer.

返回值

Returns an array of associative arrays listing filename information.

filename | Path to the temporary file name created
origfilename | The original filename, for uuencoded parts only

The first filename entry is the message body. The next entries are the decoded uuencoded files.

范例

Example #1 mailparse_uudecode_all() example

<?php

$text = <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp = tmpfile();
fwrite($fp, $text);

$data = mailparse_uudecode_all($fp);

echo "BODY\n";
readfile($data[0]["filename"]);
echo "UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Clean up
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

上例将输出：

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test

mailparse_stream_encode
vpopmail
Mailparse 函数


vpopmail

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • vpopmail 函数
    • vpopmail_add_alias_domain_ex — Add alias to an existing virtual domain
    • vpopmail_add_alias_domain — Add an alias for a virtual domain
    • vpopmail_add_domain_ex — Add a new virtual domain
    • vpopmail_add_domain — Add a new virtual domain
    • vpopmail_add_user — Add a new user to the specified virtual domain
    • vpopmail_alias_add — Insert a virtual alias
    • vpopmail_alias_del_domain — Deletes all virtual aliases of a domain
    • vpopmail_alias_del — Deletes all virtual aliases of a user
    • vpopmail_alias_get_all — Get all lines of an alias for a domain
    • vpopmail_alias_get — Get all lines of an alias for a domain
    • vpopmail_auth_user — Attempt to validate a username/domain/password
    • vpopmail_del_domain_ex — Delete a virtual domain
    • vpopmail_del_domain — Delete a virtual domain
    • vpopmail_del_user — Delete a user from a virtual domain
    • vpopmail_error — Get text message for last vpopmail error
    • vpopmail_passwd — Change a virtual user's password
    • vpopmail_set_user_quota — Sets a virtual user's quota
mailparse_uudecode_all
简介
邮件相关扩展


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

This extension has been moved from PHP as of PHP 4.3.0 and now vpopmail lives in » PECL.

vpopmail
安装/配置
vpopmail


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
vpopmail


安装

As of PHP 4, these functions are only available if PHP was configured with --with-vpopmail[=DIR].

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
vpopmail 函数
vpopmail


vpopmail 函数

Table of Contents

  • vpopmail_add_alias_domain_ex — Add alias to an existing virtual domain
  • vpopmail_add_alias_domain — Add an alias for a virtual domain
  • vpopmail_add_domain_ex — Add a new virtual domain
  • vpopmail_add_domain — Add a new virtual domain
  • vpopmail_add_user — Add a new user to the specified virtual domain
  • vpopmail_alias_add — Insert a virtual alias
  • vpopmail_alias_del_domain — Deletes all virtual aliases of a domain
  • vpopmail_alias_del — Deletes all virtual aliases of a user
  • vpopmail_alias_get_all — Get all lines of an alias for a domain
  • vpopmail_alias_get — Get all lines of an alias for a domain
  • vpopmail_auth_user — Attempt to validate a username/domain/password
  • vpopmail_del_domain_ex — Delete a virtual domain
  • vpopmail_del_domain — Delete a virtual domain
  • vpopmail_del_user — Delete a user from a virtual domain
  • vpopmail_error — Get text message for last vpopmail error
  • vpopmail_passwd — Change a virtual user's password
  • vpopmail_set_user_quota — Sets a virtual user's quota
预定义常量
vpopmail_add_alias_domain_ex
vpopmail


Add alias to an existing virtual domain

vpopmail 函数
vpopmail_add_alias_domain
vpopmail 函数
PHP 手册

vpopmail_add_alias_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain_ex — Add alias to an existing virtual domain

说明

bool vpopmail_add_alias_domain_ex ( string $olddomain , string $newdomain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail 函数
vpopmail_add_alias_domain
vpopmail 函数


Add an alias for a virtual domain

vpopmail_add_alias_domain_ex
vpopmail_add_domain_ex
vpopmail 函数
PHP 手册

vpopmail_add_alias_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain — Add an alias for a virtual domain

说明

bool vpopmail_add_alias_domain ( string $domain , string $aliasdomain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_add_alias_domain_ex
vpopmail_add_domain_ex
vpopmail 函数


Add a new virtual domain

vpopmail_add_alias_domain
vpopmail_add_domain
vpopmail 函数
PHP 手册

vpopmail_add_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain_ex — Add a new virtual domain

说明

bool vpopmail_add_domain_ex ( string $domain , string $passwd [, string $quota [, string $bounce [, bool $apop ]]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_add_alias_domain
vpopmail_add_domain
vpopmail 函数


Add a new virtual domain

vpopmail_add_domain_ex
vpopmail_add_user
vpopmail 函数
PHP 手册

vpopmail_add_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain — Add a new virtual domain

说明

bool vpopmail_add_domain ( string $domain , string $dir , int $uid , int $gid )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_add_domain_ex
vpopmail_add_user
vpopmail 函数


Add a new user to the specified virtual domain

vpopmail_add_domain
vpopmail_alias_add
vpopmail 函数
PHP 手册

vpopmail_add_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_user — Add a new user to the specified virtual domain

说明

bool vpopmail_add_user ( string $user , string $domain , string $password [, string $gecos [, bool $apop ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_add_domain
vpopmail_alias_add
vpopmail 函数


Insert a virtual alias

vpopmail_add_user
vpopmail_alias_del_domain
vpopmail 函数
PHP 手册

vpopmail_alias_add

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_add — Insert a virtual alias

说明

bool vpopmail_alias_add ( string $user , string $domain , string $alias )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_add_user
vpopmail_alias_del_domain
vpopmail 函数


Deletes all virtual aliases of a domain

vpopmail_alias_add
vpopmail_alias_del
vpopmail 函数
PHP 手册

vpopmail_alias_del_domain

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del_domain — Deletes all virtual aliases of a domain

说明

bool vpopmail_alias_del_domain ( string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_alias_add
vpopmail_alias_del
vpopmail 函数


Deletes all virtual aliases of a user

vpopmail_alias_del_domain
vpopmail_alias_get_all
vpopmail 函数
PHP 手册

vpopmail_alias_del

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del — Deletes all virtual aliases of a user

说明

bool vpopmail_alias_del ( string $user , string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_alias_del_domain
vpopmail_alias_get_all
vpopmail 函数


Get all lines of an alias for a domain

vpopmail_alias_del
vpopmail_alias_get
vpopmail 函数
PHP 手册

vpopmail_alias_get_all

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get_all — Get all lines of an alias for a domain

说明

array vpopmail_alias_get_all ( string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_alias_del
vpopmail_alias_get
vpopmail 函数


Get all lines of an alias for a domain

vpopmail_alias_get_all
vpopmail_auth_user
vpopmail 函数
PHP 手册

vpopmail_alias_get

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get — Get all lines of an alias for a domain

说明

array vpopmail_alias_get ( string $alias , string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_alias_get_all
vpopmail_auth_user
vpopmail 函数


Attempt to validate a username/domain/password

vpopmail_alias_get
vpopmail_del_domain_ex
vpopmail 函数
PHP 手册

vpopmail_auth_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_auth_user — Attempt to validate a username/domain/password

说明

bool vpopmail_auth_user ( string $user , string $domain , string $password [, string $apop ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_alias_get
vpopmail_del_domain_ex
vpopmail 函数


Delete a virtual domain

vpopmail_auth_user
vpopmail_del_domain
vpopmail 函数
PHP 手册

vpopmail_del_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain_ex — Delete a virtual domain

说明

bool vpopmail_del_domain_ex ( string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_auth_user
vpopmail_del_domain
vpopmail 函数


Delete a virtual domain

vpopmail_del_domain_ex
vpopmail_del_user
vpopmail 函数
PHP 手册

vpopmail_del_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain — Delete a virtual domain

说明

bool vpopmail_del_domain ( string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_del_domain_ex
vpopmail_del_user
vpopmail 函数


Delete a user from a virtual domain

vpopmail_del_domain
vpopmail_error
vpopmail 函数
PHP 手册

vpopmail_del_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_user — Delete a user from a virtual domain

说明

bool vpopmail_del_user ( string $user , string $domain )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_del_domain
vpopmail_error
vpopmail 函数


Get text message for last vpopmail error

vpopmail_del_user
vpopmail_passwd
vpopmail 函数
PHP 手册

vpopmail_error

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_error — Get text message for last vpopmail error

说明

string vpopmail_error ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_del_user
vpopmail_passwd
vpopmail 函数


Change a virtual user's password

vpopmail_error
vpopmail_set_user_quota
vpopmail 函数
PHP 手册

vpopmail_passwd

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_passwd — Change a virtual user's password

说明

bool vpopmail_passwd ( string $user , string $domain , string $password [, bool $apop ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_error
vpopmail_set_user_quota
vpopmail 函数


Sets a virtual user's quota

vpopmail_passwd
数学扩展
vpopmail 函数
PHP 手册

vpopmail_set_user_quota

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_set_user_quota — Sets a virtual user's quota

说明

bool vpopmail_set_user_quota ( string $user , string $domain , string $quota )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

vpopmail_passwd
数学扩展
vpopmail 函数


数学扩展

  • BC Math — BCMath Arbitrary Precision Mathematics
    • 简介
    • 安装/配置
    • 预定义常量
    • BC Math 函数
  • GMP — GNU Multiple Precision
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • GMP 函数
  • Math — Mathematical Functions
    • 简介
    • 安装/配置
    • 预定义常量
    • Math 函数
  • Statistics
    • 简介
    • 安装/配置
    • 预定义常量
    • Statistic 函数
vpopmail_set_user_quota
BC Math
函数参考


BCMath Arbitrary Precision Mathematics

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • BC Math 函数
    • bcadd — Add two arbitrary precision numbers
    • bccomp — Compare two arbitrary precision numbers
    • bcdiv — Divide two arbitrary precision numbers
    • bcmod — Get modulus of an arbitrary precision number
    • bcmul — Multiply two arbitrary precision number
    • bcpow — Raise an arbitrary precision number to another
    • bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus
    • bcscale — Set default scale parameter for all bc math functions
    • bcsqrt — Get the square root of an arbitrary precision number
    • bcsub — Subtract one arbitrary precision number from another
数学扩展
简介
数学扩展


简介

For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision, represented as strings.

BC Math
安装/配置
BC Math


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
BC Math


需求

Since PHP 4.0.4, libbcmath is bundled with PHP. You don't need any external libraries for this extension.

安装/配置
安装
安装/配置


安装

本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用。在 PHP 3 中，本类函数仅在 PHP 编译时没有配置 --disable-bcmath 时可用。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

BC 数学库配置选项
名称 | 默认值 | 可修改范围 | 更新记录
bcmath.scale | "0" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

bcmath.scale integer

所有 bcmath 函数中十进制数字的数目。参见 bcscale()。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
BC Math 函数
BC Math


BC Math 函数

Table of Contents

  • bcadd — Add two arbitrary precision numbers
  • bccomp — Compare two arbitrary precision numbers
  • bcdiv — Divide two arbitrary precision numbers
  • bcmod — Get modulus of an arbitrary precision number
  • bcmul — Multiply two arbitrary precision number
  • bcpow — Raise an arbitrary precision number to another
  • bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus
  • bcscale — Set default scale parameter for all bc math functions
  • bcsqrt — Get the square root of an arbitrary precision number
  • bcsub — Subtract one arbitrary precision number from another
预定义常量
bcadd
BC Math


Add two arbitrary precision numbers

BC Math 函数
bccomp
BC Math 函数
PHP 手册

bcadd

(PHP 4, PHP 5)

bcadd — Add two arbitrary precision numbers

说明

string bcadd ( string $left_operand , string $right_operand [, int $scale ] )

Sums left_operand and right_operand .

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

The sum of the two operands, as a string.

范例

Example #1 bcadd() example

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

参见

  • bcsub() - Subtract one arbitrary precision number from another

BC Math 函数
bccomp
BC Math 函数


Compare two arbitrary precision numbers

bcadd
bcdiv
BC Math 函数
PHP 手册

bccomp

(PHP 4, PHP 5)

bccomp — Compare two arbitrary precision numbers

说明

int bccomp ( string $left_operand , string $right_operand [, int $scale ] )

Compares the left_operand to the right_operand and returns the result as an integer.

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

The optional scale parameter is used to set the number of digits after the decimal place which will be used in the comparison.

返回值

Returns 0 if the two operands are equal, 1 if the left_operand is larger than the right_operand , -1 otherwise.

范例

Example #1 bccomp() example

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>
bcadd
bcdiv
BC Math 函数


Divide two arbitrary precision numbers

bccomp
bcmod
BC Math 函数
PHP 手册

bcdiv

(PHP 4, PHP 5)

bcdiv — Divide two arbitrary precision numbers

说明

string bcdiv ( string $left_operand , string $right_operand [, int $scale ] )

Divides the left_operand by the right_operand .

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

Returns the result of the division as a string, or NULL if right_operand is 0.

范例

Example #1 bcdiv() example

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

参见

  • bcmul() - Multiply two arbitrary precision number

bccomp
bcmod
BC Math 函数


Get modulus of an arbitrary precision number

bcdiv
bcmul
BC Math 函数
PHP 手册

bcmod

(PHP 4, PHP 5)

bcmod — Get modulus of an arbitrary precision number

说明

string bcmod ( string $left_operand , string $modulus )

Get the modulus of the left_operand using modulus .

参数

left_operand

The left operand, as a string.

modulus

The modulus, as a string.

返回值

Returns the modulus as a string, or NULL if modulus is 0.

范例

Example #1 bcmod() example

<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>

参见

  • bcdiv() - Divide two arbitrary precision numbers

bcdiv
bcmul
BC Math 函数


Multiply two arbitrary precision number

bcmod
bcpow
BC Math 函数
PHP 手册

bcmul

(PHP 4, PHP 5)

bcmul — Multiply two arbitrary precision number

说明

string bcmul ( string $left_operand , string $right_operand [, int $scale ] )

Multiply the left_operand by the right_operand .

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

Returns the result as a string.

范例

Example #1 bcmul() example

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

参见

  • bcdiv() - Divide two arbitrary precision numbers

bcmod
bcpow
BC Math 函数


Raise an arbitrary precision number to another

bcmul
bcpowmod
BC Math 函数
PHP 手册

bcpow

(PHP 4, PHP 5)

bcpow — Raise an arbitrary precision number to another

说明

string bcpow ( string $left_operand , string $right_operand [, int $scale ] )

Raise left_operand to the power right_operand .

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

Returns the result as a string.

范例

Example #1 bcpow() example

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

参见

  • bcpowmod() - Raise an arbitrary precision number to another, reduced by a specified modulus
  • bcsqrt() - Get the square root of an arbitrary precision number

bcmul
bcpowmod
BC Math 函数


Raise an arbitrary precision number to another, reduced by a specified modulus

bcpow
bcscale
BC Math 函数
PHP 手册

bcpowmod

(PHP 5)

bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus

说明

string bcpowmod ( string $left_operand , string $right_operand , string $modulus [, int $scale ] )

Use the fast-exponentiation method to raise left_operand to the power right_operand with respect to the modulus modulus .

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

modulus

The modulus, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

Returns the result as a string, or NULL if modulus is 0.

注释

Note: Because this method uses the modulus operation, non-natural numbers may give unexpected results. A natural number is any positive non-zero integer.

范例

The following two statements are functionally identical. The bcpowmod() version however, executes in less time and can accept larger parameters.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a and $b are equal to each other.

?>

参见

  • bcpow() - Raise an arbitrary precision number to another
  • bcmod() - Get modulus of an arbitrary precision number

bcpow
bcscale
BC Math 函数


Set default scale parameter for all bc math functions

bcpowmod
bcsqrt
BC Math 函数
PHP 手册

bcscale

(PHP 4, PHP 5)

bcscale — Set default scale parameter for all bc math functions

说明

bool bcscale ( int $scale )

Sets the default scale parameter for all subsequent bc math functions that do not explicitly specify a scale parameter.

参数

scale

The scale factor.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bcscale() example

<?php

// default scale : 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// this is the same without bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>

bcpowmod
bcsqrt
BC Math 函数


Get the square root of an arbitrary precision number

bcscale
bcsub
BC Math 函数
PHP 手册

bcsqrt

(PHP 4, PHP 5)

bcsqrt — Get the square root of an arbitrary precision number

说明

string bcsqrt ( string $operand [, int $scale ] )

Return the square root of the operand .

参数

operand

The operand, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

Returns the square root as a string, or NULL if operand is negative.

范例

Example #1 bcsqrt() example

<?php

echo bcsqrt('2', 3); // 1.414

?>

参见

  • bcpow() - Raise an arbitrary precision number to another

bcscale
bcsub
BC Math 函数


Subtract one arbitrary precision number from another

bcsqrt
GMP
BC Math 函数
PHP 手册

bcsub

(PHP 4, PHP 5)

bcsub — Subtract one arbitrary precision number from another

说明

string bcsub ( string $left_operand , string $right_operand [, int $scale ] )

Subtracts the right_operand from the left_operand .

参数

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

This optional parameter is used to set the number of digits after the decimal place in the result. You can also set the global default scale for all functions by using bcscale().

返回值

The result of the subtraction, as a string.

范例

Example #1 bcsub() example

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

参见

  • bcadd() - Add two arbitrary precision numbers

bcsqrt
GMP
BC Math 函数


GNU Multiple Precision

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • GMP 函数
    • gmp_abs — Absolute value
    • gmp_add — Add numbers
    • gmp_and — Bitwise AND
    • gmp_clrbit — Clear bit
    • gmp_cmp — Compare numbers
    • gmp_com — Calculates one's complement
    • gmp_div_q — Divide numbers
    • gmp_div_qr — Divide numbers and get quotient and remainder
    • gmp_div_r — Remainder of the division of numbers
    • gmp_div — 别名 gmp_div_q
    • gmp_divexact — Exact division of numbers
    • gmp_fact — Factorial
    • gmp_gcd — Calculate GCD
    • gmp_gcdext — Calculate GCD and multipliers
    • gmp_hamdist — Hamming distance
    • gmp_init — Create GMP number
    • gmp_intval — Convert GMP number to integer
    • gmp_invert — Inverse by modulo
    • gmp_jacobi — Jacobi symbol
    • gmp_legendre — Legendre symbol
    • gmp_mod — Modulo operation
    • gmp_mul — Multiply numbers
    • gmp_neg — Negate number
    • gmp_nextprime — Find next prime number
    • gmp_or — Bitwise OR
    • gmp_perfect_square — Perfect square check
    • gmp_popcount — Population count
    • gmp_pow — Raise number into power
    • gmp_powm — Raise number into power with modulo
    • gmp_prob_prime — Check if number is "probably prime"
    • gmp_random — Random number
    • gmp_scan0 — Scan for 0
    • gmp_scan1 — Scan for 1
    • gmp_setbit — Set bit
    • gmp_sign — Sign of number
    • gmp_sqrt — Calculate square root
    • gmp_sqrtrem — Square root with remainder
    • gmp_strval — Convert GMP number to string
    • gmp_sub — Subtract numbers
    • gmp_testbit — Tests if a bit is set
    • gmp_xor — Bitwise XOR
bcsub
简介
数学扩展


简介

These functions allow you to work with arbitrary-length integers using the GNU MP library.

These functions have been added in PHP 4.0.4.

Note: Most GMP functions accept GMP number arguments, defined as resource below. However, most of these functions will also accept numeric and string arguments, given that it is possible to convert the latter to a number. Also, if there is a faster function that can operate on integer arguments, it would be used instead of the slower function when the supplied arguments are integers. This is done transparently, so the bottom line is that you can use integers in every function that expects GMP number. See also the gmp_init() function.

Warning

If you want to explicitly specify a large integer, specify it as a string. If you don't do that, PHP will interpret the integer-literal first, possibly resulting in loss of precision, even before GMP comes into play.

Note: This extension is available on Windows platforms since PHP 5.1.0.

GMP
安装/配置
GMP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
GMP


需求

You can download the GMP library from » http://gmplib.org/#DOWNLOAD. This site also has the GMP manual available.

You will need GMP version 2 or better to use these functions. Some functions may require more recent version of the GMP library.

安装/配置
安装
安装/配置


安装

In order to have these functions available, you must compile PHP with GMP support by using the --with-gmp option.

需求
运行时配置
安装/配置


资源类型

Most GPM functions operate on or return GMP number resources.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

GMP_ROUND_ZERO (integer)
GMP_ROUND_PLUSINF (integer)
GMP_ROUND_MINUSINF (integer)
GMP_VERSION (string)
The GMP library version
资源类型
范例
GMP


范例

Example #1 Factorial function using GMP

<?php
function fact($x)
{
    $return = 1;
    for ($i=2; $i < $x; $i++) {
        $return = gmp_mul($return, $i);
    }
    return $return;
}

echo gmp_strval(fact(1000)) . "\n";
?>

This will calculate factorial of 1000 (pretty big number) very fast.

预定义常量
GMP 函数
GMP


GMP 函数

参见

More mathematical functions can be found in the 数学扩展 section

Table of Contents

  • gmp_abs — Absolute value
  • gmp_add — Add numbers
  • gmp_and — Bitwise AND
  • gmp_clrbit — Clear bit
  • gmp_cmp — Compare numbers
  • gmp_com — Calculates one's complement
  • gmp_div_q — Divide numbers
  • gmp_div_qr — Divide numbers and get quotient and remainder
  • gmp_div_r — Remainder of the division of numbers
  • gmp_div — 别名 gmp_div_q
  • gmp_divexact — Exact division of numbers
  • gmp_fact — Factorial
  • gmp_gcd — Calculate GCD
  • gmp_gcdext — Calculate GCD and multipliers
  • gmp_hamdist — Hamming distance
  • gmp_init — Create GMP number
  • gmp_intval — Convert GMP number to integer
  • gmp_invert — Inverse by modulo
  • gmp_jacobi — Jacobi symbol
  • gmp_legendre — Legendre symbol
  • gmp_mod — Modulo operation
  • gmp_mul — Multiply numbers
  • gmp_neg — Negate number
  • gmp_nextprime — Find next prime number
  • gmp_or — Bitwise OR
  • gmp_perfect_square — Perfect square check
  • gmp_popcount — Population count
  • gmp_pow — Raise number into power
  • gmp_powm — Raise number into power with modulo
  • gmp_prob_prime — Check if number is "probably prime"
  • gmp_random — Random number
  • gmp_scan0 — Scan for 0
  • gmp_scan1 — Scan for 1
  • gmp_setbit — Set bit
  • gmp_sign — Sign of number
  • gmp_sqrt — Calculate square root
  • gmp_sqrtrem — Square root with remainder
  • gmp_strval — Convert GMP number to string
  • gmp_sub — Subtract numbers
  • gmp_testbit — Tests if a bit is set
  • gmp_xor — Bitwise XOR
范例
gmp_abs
GMP


Absolute value

GMP 函数
gmp_add
GMP 函数
PHP 手册

gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_abs — Absolute value

说明

resource gmp_abs ( resource $a )

Get the absolute value of a number.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns the absolute value of a , as a GMP number.

范例

Example #1 gmp_abs() example

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

上例将输出：

274982683358
274982683358

GMP 函数
gmp_add
GMP 函数


Add numbers

gmp_abs
gmp_and
GMP 函数
PHP 手册

gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_add — Add numbers

说明

resource gmp_add ( resource $a , resource $b )

Add two numbers.

参数

a

A number that will be added.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

A number that will be added.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number representing the sum of the arguments.

范例

Example #1 gmp_add() example

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

上例将输出：

200000000000000

gmp_abs
gmp_and
GMP 函数


Bitwise AND

gmp_add
gmp_clrbit
GMP 函数
PHP 手册

gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_and — Bitwise AND

说明

resource gmp_and ( resource $a , resource $b )

Calculates bitwise AND of two GMP numbers.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number representing the bitwise AND comparison.

范例

Example #1 gmp_and() example

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

上例将输出：

4
0
gmp_add
gmp_clrbit
GMP 函数


Clear bit

gmp_and
gmp_cmp
GMP 函数
PHP 手册

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbit — Clear bit

说明

void gmp_clrbit ( resource &$a , int $index )

Clears (sets to 0) bit index in a . The index starts at 0.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

index

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_clrbit() example

<?php
$a = gmp_init("0xff");
gmp_clrbit($a, 0); // index starts at 0, least significant bit
echo gmp_strval($a) . "\n";
?>

上例将输出：

254

注释

Note: Unlike most of the other GMP functions, gmp_clrbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

参见

  • gmp_setbit() - Set bit
  • gmp_testbit() - Tests if a bit is set

gmp_and
gmp_cmp
GMP 函数


Compare numbers

gmp_clrbit
gmp_com
GMP 函数
PHP 手册

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmp — Compare numbers

说明

int gmp_cmp ( resource $a , resource $b )

Compares two numbers.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns a positive value if a > b, zero if a = b and a negative value if a < b.

范例

Example #1 gmp_cmp() example

<?php
$cmp1 = gmp_cmp("1234", "1000"); // greater than
$cmp2 = gmp_cmp("1000", "1234"); // less than
$cmp3 = gmp_cmp("1234", "1234"); // equal to

echo "$cmp1 $cmp2 $cmp3\n";
?>

上例将输出：

1 -1 0
gmp_clrbit
gmp_com
GMP 函数


Calculates one's complement

gmp_cmp
gmp_div_q
GMP 函数
PHP 手册

gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_com — Calculates one's complement

说明

resource gmp_com ( resource $a )

Returns the one's complement of a .

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns the one's complement of a , as a GMP number.

范例

Example #1 gmp_com() example

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

上例将输出：

-1235
gmp_cmp
gmp_div_q
GMP 函数


Divide numbers

gmp_com
gmp_div_qr
GMP 函数
PHP 手册

gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_q — Divide numbers

说明

resource gmp_div_q ( resource $a , resource $b [, int $round=GMP_ROUND_ZERO ] )

Divides a by b and returns the integer result.

参数

a

The number being divided.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

The number that a is being divided by.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

round

The result rounding is defined by the round , which can have the following values:

  • GMP_ROUND_ZERO: The result is truncated towards 0.
  • GMP_ROUND_PLUSINF: The result is rounded towards +infinity.
  • GMP_ROUND_MINUSINF: The result is rounded towards -infinity.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_div_q() example

<?php
$div1 = gmp_div_q("100", "5");
echo gmp_strval($div1) . "\n";

$div2 = gmp_div_q("1", "3");
echo gmp_strval($div2) . "\n";

$div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
echo gmp_strval($div3) . "\n";

$div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
echo gmp_strval($div4) . "\n";

$div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
echo gmp_strval($div5) . "\n";
?>

上例将输出：

20
0
1
0
-1

注释

Note: This function can also be called as gmp_div().

参见

  • gmp_div_r() - Remainder of the division of numbers
  • gmp_div_qr() - Divide numbers and get quotient and remainder

gmp_com
gmp_div_qr
GMP 函数


Divide numbers and get quotient and remainder

gmp_div_q
gmp_div_r
GMP 函数
PHP 手册

gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qr — Divide numbers and get quotient and remainder

说明

array gmp_div_qr ( resource $n , resource $d [, int $round=GMP_ROUND_ZERO ] )

The function divides n by d .

参数

n

The number being divided.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

d

The number that n is being divided by.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

round

See the gmp_div_q() function for description of the round argument.

返回值

Returns an array, with the first element being [n/d] (the integer result of the division) and the second being (n - [n/d] * d) (the remainder of the division).

范例

Example #1 Division of GMP numbers

<?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Result is: q - %s, r - %s",
       gmp_strval($res[0]), gmp_strval($res[1]));
?>

参见

  • gmp_div_q() - Divide numbers
  • gmp_div_r() - Remainder of the division of numbers

gmp_div_q
gmp_div_r
GMP 函数


Remainder of the division of numbers

gmp_div_qr
gmp_div
GMP 函数
PHP 手册

gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_r — Remainder of the division of numbers

说明

resource gmp_div_r ( resource $n , resource $d [, int $round=GMP_ROUND_ZERO ] )

Calculates remainder of the integer division of n by d . The remainder has the sign of the n argument, if not zero.

参数

n

The number being divided.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

d

The number that n is being divided by.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

round

See the gmp_div_q() function for description of the round argument.

返回值

The remainder, as a GMP number.

范例

Example #1 gmp_div_r() example

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

上例将输出：

5

参见

  • gmp_div_q() - Divide numbers
  • gmp_div_qr() - Divide numbers and get quotient and remainder

gmp_div_qr
gmp_div
GMP 函数


别名 gmp_div_q

gmp_div_r
gmp_divexact
GMP 函数
PHP 手册

gmp_div

(PHP 4 >= 4.0.4, PHP 5)

gmp_div — 别名 gmp_div_q()

说明

本函数是该函数的别名： gmp_div_q().

gmp_div_r
gmp_divexact
GMP 函数


Exact division of numbers

gmp_div
gmp_fact
GMP 函数
PHP 手册

gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexact — Exact division of numbers

说明

resource gmp_divexact ( resource $n , resource $d )

Divides n by d , using fast "exact division" algorithm. This function produces correct results only when it is known in advance that d divides n .

参数

n

The number being divided.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

d

The number that a is being divided by.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_divexact() example

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // bogus result
echo gmp_strval($div2) . "\n";
?>

上例将输出：

5
2863311534

gmp_div
gmp_fact
GMP 函数


Factorial

gmp_divexact
gmp_gcd
GMP 函数
PHP 手册

gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_fact — Factorial

说明

resource gmp_fact ( int $a )

Calculates factorial (a!) of a .

参数

a

The factorial number.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_fact() example

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

上例将输出：

120
30414093201713378043612608166064768844377641568960512000000000000

gmp_divexact
gmp_gcd
GMP 函数


Calculate GCD

gmp_fact
gmp_gcdext
GMP 函数
PHP 手册

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcd — Calculate GCD

说明

resource gmp_gcd ( resource $a , resource $b )

Calculate greatest common divisor of a and b . The result is always positive even if either of, or both, input operands are negative.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A positive GMP number that divides into both a and b .

范例

Example #1 gmp_gcd() example

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

上例将输出：

3

gmp_fact
gmp_gcdext
GMP 函数


Calculate GCD and multipliers

gmp_gcd
gmp_hamdist
GMP 函数
PHP 手册

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext — Calculate GCD and multipliers

说明

array gmp_gcdext ( resource $a , resource $b )

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the » "Diophantine Equation" page at MathWorld

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

An array of GMP numbers.

范例

Example #1 Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Error while solving the equation\n";
}

// output: Solution: 12*2 + 21*-1 = 3
?>

gmp_gcd
gmp_hamdist
GMP 函数


Hamming distance

gmp_gcdext
gmp_init
GMP 函数
PHP 手册

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdist — Hamming distance

说明

int gmp_hamdist ( resource $a , resource $b )

Returns the hamming distance between a and b . Both operands should be non-negative.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

It should be positive.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

It should be positive.

返回值

A GMP number resource.

范例

Example #1 gmp_hamdist() example

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist is equivilent to: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

上例将输出：

6
6

参见

  • gmp_popcount() - Population count
  • gmp_xor() - Bitwise XOR

gmp_gcdext
gmp_init
GMP 函数


Create GMP number

gmp_hamdist
gmp_intval
GMP 函数
PHP 手册

gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_init — Create GMP number

说明

resource gmp_init ( mixed $number [, int $base=0 ] )

Creates a GMP number from an integer or string.

参数

number

An integer or a string. The string representation can be decimal, hexadecimal or octal.

base

The base. Defaults to 0.

The base may vary from 2 to 36. If base is 0 (default value), the actual base is determined from the leading characters: if the first two characters are 0x or 0X, hexadecimal is assumed, otherwise if the first character is "0", octal is assumed, otherwise decimal is assumed.

返回值

A GMP number resource.

更新日志

版本 | 说明
4.1.0 | The optional base parameter was added.

范例

Example #1 Creating GMP number

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

注释

Note: It is not necessary to call this function if you want to use integer or string in place of GMP number in GMP functions, like gmp_add(). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().

gmp_hamdist
gmp_intval
GMP 函数


Convert GMP number to integer

gmp_init
gmp_invert
GMP 函数
PHP 手册

gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intval — Convert GMP number to integer

说明

int gmp_intval ( resource $gmpnumber )

This function allows to convert GMP number to integer.

参数

gmpnumber

A GMP number.

返回值

An integer value of gmpnumber .

范例

Example #1 gmp_intval() example

<?php
// displays correct result
echo gmp_intval("2147483647") . "\n";

// displays wrong result, above PHP integer limit
echo gmp_intval("2147483648") . "\n";

// displays correct result
echo gmp_strval("2147483648") . "\n";
?>

上例将输出：

2147483647
2147483647
2147483648

注释

Warning

This function returns a useful result only if the number actually fits the PHP integer (i.e., signed long type). If you want just to print the GMP number, use gmp_strval().

gmp_init
gmp_invert
GMP 函数


Inverse by modulo

gmp_intval
gmp_jacobi
GMP 函数
PHP 手册

gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invert — Inverse by modulo

说明

resource gmp_invert ( resource $a , resource $b )

Computes the inverse of a modulo b .

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number on success or FALSE if an inverse does not exist.

范例

Example #1 gmp_invert() example

<?php
echo gmp_invert("5", "10"); // no inverse, outputs nothing, result is FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

上例将输出：

9

gmp_intval
gmp_jacobi
GMP 函数


Jacobi symbol

gmp_invert
gmp_legendre
GMP 函数
PHP 手册

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobi — Jacobi symbol

说明

int gmp_jacobi ( resource $a , resource $p )

Computes » Jacobi symbol of a and p . p should be odd and must be positive.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

p

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

Should be odd and must be positive.

返回值

A GMP number resource.

范例

Example #1 gmp_jacobi() example

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

上例将输出：

1
0

gmp_invert
gmp_legendre
GMP 函数


Legendre symbol

gmp_jacobi
gmp_mod
GMP 函数
PHP 手册

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendre — Legendre symbol

说明

int gmp_legendre ( resource $a , resource $p )

Compute the » Legendre symbol of a and p . p should be odd and must be positive.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

p

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

Should be odd and must be positive.

返回值

A GMP number resource.

范例

Example #1 gmp_legendre() example

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

上例将输出：

1
0

gmp_jacobi
gmp_mod
GMP 函数


Modulo operation

gmp_legendre
gmp_mul
GMP 函数
PHP 手册

gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_mod — Modulo operation

说明

resource gmp_mod ( resource $n , resource $d )

Calculates n modulo d . The result is always non-negative, the sign of d is ignored.

参数

n

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

d

The modulo that is being evaluated.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_mod() example

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

上例将输出：

2

gmp_legendre
gmp_mul
GMP 函数


Multiply numbers

gmp_mod
gmp_neg
GMP 函数
PHP 手册

gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mul — Multiply numbers

说明

resource gmp_mul ( resource $a , resource $b )

Multiplies a by b and returns the result.

参数

a

A number that will be multiplied by b .

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

A number that will be multiplied by a .

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_mul() example

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

上例将输出：

24691356000

gmp_mod
gmp_neg
GMP 函数


Negate number

gmp_mul
gmp_nextprime
GMP 函数
PHP 手册

gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_neg — Negate number

说明

resource gmp_neg ( resource $a )

Returns the negative value of a number.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns -a , as a GMP number.

范例

Example #1 gmp_neg() example

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

上例将输出：

-1
1

gmp_mul
gmp_nextprime
GMP 函数


Find next prime number

gmp_neg
gmp_or
GMP 函数
PHP 手册

gmp_nextprime

(PHP 5 >= 5.2.0)

gmp_nextprime — Find next prime number

说明

resource gmp_nextprime ( int $a )

Find next prime number

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Return the next prime number greater than a , as a GMP number.

范例

Example #1 gmp_nextprime() example

<?php
$prime1 = gmp_nextprime(10); // next prime number greater than 10
$prime2 = gmp_nextprime(-1000); // next prime number greater than -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

上例将输出：

11
-997

注释

Note: This function uses a probabilistic algorithm to identify primes and chances to get a composite number are extremely small.

gmp_neg
gmp_or
GMP 函数


Bitwise OR

gmp_nextprime
gmp_perfect_square
GMP 函数
PHP 手册

gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_or — Bitwise OR

说明

resource gmp_or ( resource $a , resource $b )

Calculates bitwise inclusive OR of two GMP numbers.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_or() example

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

上例将输出：

fffffff6
fffffff2

gmp_nextprime
gmp_perfect_square
GMP 函数


Perfect square check

gmp_or
gmp_popcount
GMP 函数
PHP 手册

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_square — Perfect square check

说明

bool gmp_perfect_square ( resource $a )

Check if a number is a perfect square.

参数

a

The number being checked as a perfect square.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns TRUE if a is a perfect square, FALSE otherwise.

范例

Example #1 gmp_perfect_square() example

<?php
// 3 * 3, perfect square
var_dump(gmp_perfect_square("9"));

// not a perfect square
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, perfect square
var_dump(gmp_perfect_square("1524157875019052100"));
?>

上例将输出：

bool(true)
bool(false)
bool(true)

参见

  • gmp_sqrt() - Calculate square root
  • gmp_sqrtrem() - Square root with remainder

gmp_or
gmp_popcount
GMP 函数


Population count

gmp_perfect_square
gmp_pow
GMP 函数
PHP 手册

gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcount — Population count

说明

int gmp_popcount ( resource $a )

Get the population count.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

The population count of a , as an integer.

范例

Example #1 gmp_popcount() example

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

上例将输出：

3
7

gmp_perfect_square
gmp_pow
GMP 函数


Raise number into power

gmp_popcount
gmp_powm
GMP 函数
PHP 手册

gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_pow — Raise number into power

说明

resource gmp_pow ( resource $base , int $exp )

Raise base into power exp .

参数

base

The base number.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

exp

The positive power to raise the base .

返回值

The new (raised) number, as a GMP number. The case of 0^0 yields 1.

范例

Example #1 gmp_pow() example

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Negative exp, generates warning
echo gmp_strval($pow3) . "\n";
?>

上例将输出：

2147483648
1

gmp_popcount
gmp_powm
GMP 函数


Raise number into power with modulo

gmp_pow
gmp_prob_prime
GMP 函数
PHP 手册

gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powm — Raise number into power with modulo

说明

resource gmp_powm ( resource $base , resource $exp , resource $mod )

Calculate (base raised into power exp ) modulo mod . If exp is negative, result is undefined.

参数

base

The base number.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

exp

The positive power to raise the base .

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

mod

The modulo.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

The new (raised) number, as a GMP number.

范例

Example #1 gmp_powm() example

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

上例将输出：

2147483648

gmp_pow
gmp_prob_prime
GMP 函数


Check if number is "probably prime"

gmp_powm
gmp_random
GMP 函数
PHP 手册

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_prime — Check if number is "probably prime"

说明

int gmp_prob_prime ( resource $a [, int $reps=10 ] )

The function uses Miller-Rabin's probabilistic test to check if a number is a prime.

参数

a

The number being checked as a prime.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

reps

Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime.

范例

Example #1 gmp_prob_prime() example

<?php
// definitely not a prime
echo gmp_prob_prime("6") . "\n";

// probably a prime
echo gmp_prob_prime("1111111111111111111") . "\n";

// definitely a prime
echo gmp_prob_prime("11") . "\n";
?>

上例将输出：

0
1
2

gmp_powm
gmp_random
GMP 函数


Random number

gmp_prob_prime
gmp_scan0
GMP 函数
PHP 手册

gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_random — Random number

说明

resource gmp_random ([ int $limiter=20 ] )

Generate a random number. The number will be between zero and the number of bits per limb multiplied by limiter . If limiter is negative, negative numbers are generated.

A limb is an internal GMP mechanism. The number of bits in a limb is not static, and can vary from system to system. Generally, the number of bits in a limb is either 16 or 32, but this is not guaranteed.

参数

limiter

The limiter. Defaults to 20.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A random GMP number.

范例

Example #1 gmp_random() example

<?php
$rand1 = gmp_random(1); // random number from 0 to 1 * bits per limb
$rand2 = gmp_random(2); // random number from 0 to 2 * bits per limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

上例将输出：

1915834968
8642564075890328087

gmp_prob_prime
gmp_scan0
GMP 函数


Scan for 0

gmp_random
gmp_scan1
GMP 函数
PHP 手册

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0 — Scan for 0

说明

int gmp_scan0 ( resource $a , int $start )

Scans a , starting with bit start , towards more significant bits, until the first clear bit is found.

参数

a

The number to scan.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

start

The starting bit.

返回值

Returns the index of the found bit, as an integer. The index starts from 0.

范例

Example #1 gmp_scan0() example

<?php
// "0" bit is found at position 3. index starts at 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" bit is found at position 7. index starts at 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

上例将输出：

3
7

gmp_random
gmp_scan1
GMP 函数


Scan for 1

gmp_scan0
gmp_setbit
GMP 函数
PHP 手册

gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1 — Scan for 1

说明

int gmp_scan1 ( resource $a , int $start )

Scans a , starting with bit start , towards more significant bits, until the first set bit is found.

参数

a

The number to scan.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

start

The starting bit.

返回值

Returns the index of the found bit, as an integer. If no set bit is found, -1 is returned.

范例

Example #1 gmp_scan1() example

<?php
// "1" bit is found at position 3. index starts at 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit is found at position 9. index starts at 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

上例将输出：

3
9

gmp_scan0
gmp_setbit
GMP 函数


Set bit

gmp_scan1
gmp_sign
GMP 函数
PHP 手册

gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbit — Set bit

说明

void gmp_setbit ( resource &$a , int $index [, bool $set_clear=true ] )

Sets bit index in a .

参数

a

The number being set to.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

index

The set bit.

set_clear

Defines if the bit is set to 0 or 1. By default the bit is set to 1. Index starts at 0.

返回值

A GMP number resource.

范例

Example #1 gmp_setbit() example

<?php
$a = gmp_init("0xfd");
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a) . "\n";
?>

上例将输出：

255

注释

Note: Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

参见

  • gmp_clrbit() - Clear bit
  • gmp_testbit() - Tests if a bit is set

gmp_scan1
gmp_sign
GMP 函数


Sign of number

gmp_setbit
gmp_sqrt
GMP 函数
PHP 手册

gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign — Sign of number

说明

int gmp_sign ( resource $a )

Checks the sign of a number.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns 1 if a is positive, -1 if a is negative, and 0 if a is zero.

范例

Example #1 gmp_sign() example

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

上例将输出：

1
-1
0

gmp_setbit
gmp_sqrt
GMP 函数


Calculate square root

gmp_sign
gmp_sqrtrem
GMP 函数
PHP 手册

gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrt — Calculate square root

说明

resource gmp_sqrt ( resource $a )

Calculates square root of a .

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

The integer portion of the square root, as a GMP number.

范例

Example #1 gmp_sqrt() example

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

上例将输出：

3
2
1234567890

gmp_sign
gmp_sqrtrem
GMP 函数


Square root with remainder

gmp_sqrt
gmp_strval
GMP 函数
PHP 手册

gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtrem — Square root with remainder

说明

array gmp_sqrtrem ( resource $a )

Calculate the square root of a number, with remainder.

参数

a

The number being square rooted.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

Returns array where first element is the integer square root of a and the second is the remainder (i.e., the difference between a and the first element squared).

范例

Example #1 gmp_sqrtrem() example

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

上例将输出：

3, 0
2, 3
1024, 0

gmp_sqrt
gmp_strval
GMP 函数


Convert GMP number to string

gmp_sqrtrem
gmp_sub
GMP 函数
PHP 手册

gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval — Convert GMP number to string

说明

string gmp_strval ( resource $gmpnumber [, int $base ] )

Convert GMP number to string representation in base base . The default base is 10.

参数

gmpnumber

The GMP number that will be converted to a string.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

base

The base of the returned number. The default base is 10. Allowed values for the base are from 2 to 36.

返回值

The number, as a string.

范例

Example #1 Converting a GMP number to a string

<?php
$a = gmp_init("0x41682179fbf5");
printf("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>

gmp_sqrtrem
gmp_sub
GMP 函数


Subtract numbers

gmp_strval
gmp_testbit
GMP 函数
PHP 手册

gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_sub — Subtract numbers

说明

resource gmp_sub ( resource $a , resource $b )

Subtracts b from a and returns the result.

参数

a

The number being subtracted from.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

The number subtracted from a .

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_sub() example

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

上例将输出：

281470681743360

gmp_strval
gmp_testbit
GMP 函数


Tests if a bit is set

gmp_sub
gmp_xor
GMP 函数
PHP 手册

gmp_testbit

(PHP 5 >= 5.3.0)

gmp_testbit — Tests if a bit is set

说明

bool gmp_testbit ( resource $a , int $index )

Tests if the specified bit is set.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

index

The bit to test

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

E_WARNING is issued when index is less than zero.

范例

Example #1 gmp_testbit() example

<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>

上例将输出：

bool(false)
bool(true)

参见

  • gmp_setbit() - Set bit
  • gmp_clrbit() - Clear bit

gmp_sub
gmp_xor
GMP 函数


Bitwise XOR

gmp_testbit
Math
GMP 函数
PHP 手册

gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xor — Bitwise XOR

说明

resource gmp_xor ( resource $a , resource $b )

Calculates bitwise exclusive OR (XOR) of two GMP numbers.

参数

a

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

b

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

返回值

A GMP number resource.

范例

Example #1 gmp_xor() example

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

上例将输出：

1011110111000100

gmp_testbit
Math
GMP 函数


Mathematical Functions

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Math 函数
    • abs — 绝对值
    • acos — 反余弦
    • acosh — 反双曲余弦
    • asin — 反正弦
    • asinh — 反双曲正弦
    • atan2 — 两个参数的反正切
    • atan — 反正切
    • atanh — 反双曲正切
    • base_convert — 在任意进制之间转换数字
    • bindec — 二进制转换为十进制
    • ceil — 进一法取整
    • cos — 余弦
    • cosh — 双曲余弦
    • decbin — 十进制转换为二进制
    • dechex — 十进制转换为十六进制
    • decoct — 十进制转换为八进制
    • deg2rad — 将角度转换为弧度
    • exp — 计算 e 的指数
    • expm1 — 返回 exp(number) - 1，甚至当 number 的值接近零也能计算出准确结果
    • floor — 舍去法取整
    • fmod — 返回除法的浮点数余数
    • getrandmax — 显示随机数最大的可能值
    • hexdec — 十六进制转换为十进制
    • hypot — 计算一直角三角形的斜边长度
    • is_finite — 判断是否为有限值
    • is_infinite — 判断是否为无限值
    • is_nan — 判断是否为合法数值
    • lcg_value — 组合线性同余发生器
    • log10 — 以 10 为底的对数
    • log1p — 返回 log(1 + number)，甚至当 number 的值接近零也能计算出准确结果
    • log — 自然对数
    • max — 找出最大值
    • min — 找出最小值
    • mt_getrandmax — 显示随机数的最大可能值
    • mt_rand — 生成更好的随机数
    • mt_srand — 播下一个更好的随机数发生器种子
    • octdec — 八进制转换为十进制
    • pi — 得到圆周率值
    • pow — 指数表达式
    • rad2deg — 将弧度数转换为相应的角度数
    • rand — 产生一个随机整数
    • round — 对浮点数进行四舍五入
    • sin — 正弦
    • sinh — 双曲正弦
    • sqrt — 平方根
    • srand — 播下随机数发生器种子
    • tan — 正切
    • tanh — 双曲正切
gmp_xor
简介
数学扩展


简介

These math functions will only handle values within the range of the integer and float types on your computer (this corresponds currently to the C types long resp. double). If you need to handle bigger numbers, take a look at the arbitrary precision math functions.

See also the manual page on arithmetic operators.

Math
安装/配置
Math


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Math


预定义常量

以下常量作为 PHP 核心的一部分一直有效。

数学常量
常量名 | 常量值 | 描述
M_PI | 3.14159265358979323846 | Pi
M_E | 2.7182818284590452354 | e
M_LOG2E | 1.4426950408889634074 | log_2 e
M_LOG10E | 0.43429448190325182765 | log_10 e
M_LN2 | 0.69314718055994530942 | log_e 2
M_LN10 | 2.30258509299404568402 | log_e 10
M_PI_2 | 1.57079632679489661923 | pi/2
M_PI_4 | 0.78539816339744830962 | pi/4
M_1_PI | 0.31830988618379067154 | 1/pi
M_2_PI | 0.63661977236758134308 | 2/pi
M_SQRTPI | 1.77245385090551602729 | sqrt(pi) [5.2.0]
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi)
M_SQRT2 | 1.41421356237309504880 | sqrt(2)
M_SQRT3 | 1.73205080756887729352 | sqrt(3) [5.2.0]
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2)
M_LNPI | 1.14472988584940017414 | log_e(pi) [5.2.0]
M_EULER | 0.57721566490153286061 | Euler constant [5.2.0]

只有常量 M_PI 在 PHP 4.0.0 之前就存在，其它所有常量从 PHP 4.0.0 起开始存在。用 [5.2.0] 标记的常量是在 PHP 5.2.0 中增加的。

资源类型
Math 函数
Math


Math 函数

Table of Contents

  • abs — 绝对值
  • acos — 反余弦
  • acosh — 反双曲余弦
  • asin — 反正弦
  • asinh — 反双曲正弦
  • atan2 — 两个参数的反正切
  • atan — 反正切
  • atanh — 反双曲正切
  • base_convert — 在任意进制之间转换数字
  • bindec — 二进制转换为十进制
  • ceil — 进一法取整
  • cos — 余弦
  • cosh — 双曲余弦
  • decbin — 十进制转换为二进制
  • dechex — 十进制转换为十六进制
  • decoct — 十进制转换为八进制
  • deg2rad — 将角度转换为弧度
  • exp — 计算 e 的指数
  • expm1 — 返回 exp(number) - 1，甚至当 number 的值接近零也能计算出准确结果
  • floor — 舍去法取整
  • fmod — 返回除法的浮点数余数
  • getrandmax — 显示随机数最大的可能值
  • hexdec — 十六进制转换为十进制
  • hypot — 计算一直角三角形的斜边长度
  • is_finite — 判断是否为有限值
  • is_infinite — 判断是否为无限值
  • is_nan — 判断是否为合法数值
  • lcg_value — 组合线性同余发生器
  • log10 — 以 10 为底的对数
  • log1p — 返回 log(1 + number)，甚至当 number 的值接近零也能计算出准确结果
  • log — 自然对数
  • max — 找出最大值
  • min — 找出最小值
  • mt_getrandmax — 显示随机数的最大可能值
  • mt_rand — 生成更好的随机数
  • mt_srand — 播下一个更好的随机数发生器种子
  • octdec — 八进制转换为十进制
  • pi — 得到圆周率值
  • pow — 指数表达式
  • rad2deg — 将弧度数转换为相应的角度数
  • rand — 产生一个随机整数
  • round — 对浮点数进行四舍五入
  • sin — 正弦
  • sinh — 双曲正弦
  • sqrt — 平方根
  • srand — 播下随机数发生器种子
  • tan — 正切
  • tanh — 双曲正切
预定义常量
abs
Math


绝对值

Math 函数
acos
Math 函数
PHP 手册

abs

(PHP 4, PHP 5)

abs — 绝对值

说明

number abs ( mixed $number )

返回参数 number 的绝对值。如果参数 number 是 float，则返回的类型也是 float，否则返回 integer（因为 float 通常比 integer 有更大的取值范围）。

Example #1 abs()

<?php
$abs = abs(-4.2); // $abs = 4.2; (double/float)
$abs2 = abs(5);   // $abs2 = 5; (integer)
$abs3 = abs(-5);  // $abs3 = 5; (integer)
?>
Math 函数
acos
Math 函数


反余弦

abs
acosh
Math 函数
PHP 手册

acos

(PHP 4, PHP 5)

acos — 反余弦

说明

float acos ( float $arg )

    返回 arg
的反余弦值，单位是弧度。acos()
    是 cos() 的反函数，它的意思是在
    acos() 范围里的每个值都是
    a==cos(acos(a)) 。

参见
acosh(),
asin() 和
atan()。

abs
acosh
Math 函数


反双曲余弦

acos
asin
Math 函数
PHP 手册

acosh

(PHP 4 >= 4.1.0, PHP 5)

acosh — 反双曲余弦

说明

float acosh ( float $arg )

返回 arg 的反双曲余弦值，即，其双曲余弦为 arg 的那个值。

Note: 本函数未在 Windows 平台下实现。

参见
acos()，
asinh(), 和
atanh()。

acos
asin
Math 函数


反正弦

acosh
asinh
Math 函数
PHP 手册

asin

(PHP 4, PHP 5)

asin — 反正弦

说明

float asin ( float $arg )

    返回 arg
的反正弦值，单位是弧度。asin()
    是 sin() 的反函数，它的意思是在
    asin() 范围里的每个值都是
    a==sin(asin(a)) 。

参见
asinh(),
acos() 和
atan()。

acosh
asinh
Math 函数


反双曲正弦

asin
atan2
Math 函数
PHP 手册

asinh

(PHP 4 >= 4.1.0, PHP 5)

asinh — 反双曲正弦

说明

float asinh ( float $arg )

返回 arg 的反双曲正弦值，即，其双曲正弦为 arg 的那个值。

Note: 本函数未在 Windows 平台下实现。

参见：
asin()，
acosh()，和
atanh()。

asin
atan2
Math 函数


两个参数的反正切

asinh
atan
Math 函数
PHP 手册

atan2

(PHP 4, PHP 5)

atan2 — 两个参数的反正切

说明

float atan2 ( float $y , float $x )

本函数计算两个变量 x 和 y 的反正切值。和计算 y / x 的反正切相似，只除了两个参数的符号是用来确定结果的象限之外。

本函数的结果为弧度，其值在 -PI 和 PI 之间（包括 -PI 和 PI）。

参见 acos() 和 atan()。

asinh
atan
Math 函数


反正切

atan2
atanh
Math 函数
PHP 手册

atan

(PHP 4, PHP 5)

atan — 反正切

说明

float atan ( float $arg )

    返回 arg
的反正切值，单位是弧度。atan() 是
    tan() 的反函数，它的意思是在
    atan() 范围里的每个值都是
    a==tan(atan(a))。

参见:
atanh()、
asin() 和
acos()。

atan2
atanh
Math 函数


反双曲正切

atan
base_convert
Math 函数
PHP 手册

atanh

(PHP 4 >= 4.1.0, PHP 5)

atanh — 反双曲正切

说明

float atanh ( float $arg )

返回 arg 的反双曲正切值，即，其双曲正切为 arg 的那个值。

Note: 本函数未在 Windows 平台下实现。

参见：
atan()、
asinh()和
acosh()。

atan
base_convert
Math 函数


在任意进制之间转换数字

atanh
bindec
Math 函数
PHP 手册

base_convert

(PHP 4, PHP 5)

base_convert — 在任意进制之间转换数字

说明

string base_convert ( string $number , int $frombase , int $tobase )

返回一字符串，包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间（包括 2 和 36）。高于十进制的数字用字母 a-z 表示，例如 a 表示 10，b 表示 11 以及 z 表示 35。

Example #1 base_convert() 范例

<?php
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);
?>

输出为：

101000110111001100110100

Warning

由于使用内部的 "double" 或 "float" 类型，base_convert() 的操作可能会导致大数值中的精度丢失。请参见本手册的 浮点数 章节以便获得更多详细信息。

参见 intval()。

atanh
bindec
Math 函数


二进制转换为十进制

base_convert
ceil
Math 函数
PHP 手册

bindec

(PHP 4, PHP 5)

bindec — 二进制转换为十进制

说明

number bindec ( string $binary_string )

返回 binary_string 参数所表示的二进制数的十进制等价值。

bindec() 将一个二进制数转换成 integer。可转换的最大的数为 31 位 1 或者说十进制的 2147483647。PHP 4.1.0 开始，该函数可以处理大数值，这种情况下，它会返回 float 类型。

Example #1 bindec() 范例

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

上例将输出：

51
51
7

参见 decbin()，octdec()，hexdec() 和 base_convert()。

base_convert
ceil
Math 函数


进一法取整

bindec
cos
Math 函数
PHP 手册

ceil

(PHP 4, PHP 5)

ceil — 进一法取整

说明

float ceil ( float $value )

返回不小于 value 的下一个整数，value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float，因为 float 值的范围通常比 integer 要大。

Example #1 ceil() 例子

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
?>

参见 floor() 和 round()。

bindec
cos
Math 函数


余弦

ceil
cosh
Math 函数
PHP 手册

cos

(PHP 4, PHP 5)

cos — 余弦

说明

float cos ( float $arg )

cos() 返回参数 arg 的余弦值。参数 arg 的单位为弧度。

Example #1 cos()

<?php

echo cos(M_PI); // -1

?>

参见：
acos()、
sin()、
tan() 和
deg2rad()。

ceil
cosh
Math 函数


双曲余弦

cos
decbin
Math 函数
PHP 手册

cosh

(PHP 4 >= 4.1.0, PHP 5)

cosh — 双曲余弦

说明

float cosh ( float $arg )

返回 arg 的双曲余弦值，定义为 (exp(arg) + exp(-arg))/2。

参见：
cos()、
acosh()、
sin()和
tan()。

cos
decbin
Math 函数


十进制转换为二进制

cosh
dechex
Math 函数
PHP 手册

decbin

(PHP 4, PHP 5)

decbin — 十进制转换为二进制

说明

string decbin ( int $number )

返回一字符串，包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295，其结果为 32 个 1 的字符串。

Example #1 decbin() 范例

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

上例将输出：

1100
11010

参见 bindec()，decoct()，dechex() 和 base_convert()。

cosh
dechex
Math 函数


十进制转换为十六进制

decbin
decoct
Math 函数
PHP 手册

dechex

(PHP 4, PHP 5)

dechex — 十进制转换为十六进制

说明

string dechex ( int $number )

返回一字符串，包含有给定 number 参数的十六进制表示。所能转换的最大数值为十进制的 4294967295，其结果为 "ffffffff"。

Example #1 dechex() 范例

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

上例将输出：

a
2f

参见 hexdec()，decbin()，decoct() 和 base_convert().。

decbin
decoct
Math 函数


十进制转换为八进制

dechex
deg2rad
Math 函数
PHP 手册

decoct

(PHP 4, PHP 5)

decoct — 十进制转换为八进制

说明

string decoct ( int $number )

返回一字符串，包含有给定 number 参数的八进制表示。所能转换的最大数值为十进制的 4294967295，其结果为 "37777777777"。

Example #1 decoct() 范例

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

上例将输出：

17
410

参见 octdec()。

dechex
deg2rad
Math 函数


将角度转换为弧度

decoct
exp
Math 函数
PHP 手册

deg2rad

(PHP 4, PHP 5)

deg2rad — 将角度转换为弧度

说明

float deg2rad ( float $number )

本函数把 number 从角度转换成弧度。

Example #1 deg2rad()

<?php

    echo deg2rad(45); // 0.785398163397
    var_dump(deg2rad(45) === M_PI_4); // bool(true)

    ?>

参见 rad2deg()。

decoct
exp
Math 函数


计算 e 的指数

deg2rad
expm1
Math 函数
PHP 手册

exp

(PHP 4, PHP 5)

exp — 计算 e 的指数

说明

float exp ( float $arg )

返回 e 的 arg 次方值。

Note: 用 'e' 作为自然对数的底 2.718282.

Example #1 exp() 范例

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

上例将输出：

1.6275E+005
298.87

参见 log() 和 pow()。

deg2rad
expm1
Math 函数


返回 exp(number) - 1，甚至当 number 的值接近零也能计算出准确结果

exp
floor
Math 函数
PHP 手册

expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 — 返回 exp(number) - 1，甚至当 number 的值接近零也能计算出准确结果

说明

float expm1 ( float $number )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

expm1() 返回 'exp(number ) - 1'，甚至当 number 的值接近零也能计算出准确结果。但是当两个数值趋近于相等的时候， 'exp (number ) - 1' 就会变得不太准确。

Note: 本函数未在 Windows 平台下实现。

参见 log1p() 和 exp()。

exp
floor
Math 函数


舍去法取整

expm1
fmod
Math 函数
PHP 手册

floor

(PHP 4, PHP 5)

floor — 舍去法取整

说明

float floor ( float $value )

返回不大于 value 的下一个整数，将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float，因为 float 值的范围通常比 integer 要大。

Example #1 floor() 例子

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
?>

参见 ceil() 和 round()。

expm1
fmod
Math 函数


返回除法的浮点数余数

floor
getrandmax
Math 函数
PHP 手册

fmod

(PHP 4 >= 4.2.0, PHP 5)

fmod — 返回除法的浮点数余数

说明

float fmod ( float $x , float $y )

返回被除数（x ）除以除数（y ）所得的浮点数余数。余数（r）的定义是：x = i * y + r，其中 i 是整数。如果 y 是非零值，则 r 和 x 的符号相同并且其数量值小于 y 。

Example #1 使用 fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7
?>

floor
getrandmax
Math 函数


显示随机数最大的可能值

fmod
hexdec
Math 函数
PHP 手册

getrandmax

(PHP 4, PHP 5)

getrandmax — 显示随机数最大的可能值

说明

int getrandmax ( void )

返回调用 rand() 可能返回的最大值。

参见 rand()，srand() 和 mt_getrandmax()。

fmod
hexdec
Math 函数


十六进制转换为十进制

getrandmax
hypot
Math 函数
PHP 手册

hexdec

(PHP 4, PHP 5)

hexdec — 十六进制转换为十进制

说明

number hexdec ( string $hex_string )

返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff，即十进制的 2147483647。PHP 4.1.0 开始，该函数可以处理大数字，这种情况下，它会返回 float 类型。

hexdec() 会忽略所有非十六进制字符。

Example #1 hexdec() 例子

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that")); // print "int(10)"
var_dump(hexdec("a0")); // print "int(160)"
?>

参见 dechex()，bindec()，octdec() 和base_convert()。

getrandmax
hypot
Math 函数


计算一直角三角形的斜边长度

hexdec
is_finite
Math 函数
PHP 手册

hypot

(PHP 4 >= 4.1.0, PHP 5)

hypot — 计算一直角三角形的斜边长度

说明

float hypot ( float $x , float $y )

hypot() 函数将会跟据直角三角形的两直解边长度 x 和 y 计算其斜边的长度。或者是从标点 (x , y ) 到原点的距离。该函数的算法等同于 sqrt(x*x + y*y)。

hexdec
is_finite
Math 函数


判断是否为有限值

hypot
is_infinite
Math 函数
PHP 手册

is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finite — 判断是否为有限值

说明

bool is_finite ( float $val )

如果 val 是本机平台上 PHP 浮点数所允许范围中的一个合法的有限值，则返回 TRUE。

参见 is_infinite() 和 is_nan()。

hypot
is_infinite
Math 函数


判断是否为无限值

is_finite
is_nan
Math 函数
PHP 手册

is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinite — 判断是否为无限值

说明

bool is_infinite ( float $val )

如果 val 为无穷大（正的或负的），例如 log(0) 的结果或者任何超出本平台的浮点数范围的值，则返回 TRUE。

参见 is_finite() 和 is_nan()。

is_finite
is_nan
Math 函数


判断是否为合法数值

is_infinite
lcg_value
Math 函数
PHP 手册

is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nan — 判断是否为合法数值

说明

bool is_nan ( float $val )

如果 val 为“非数值”，例如 acos(1.01) 的结果，则返回 TRUE。

参见 is_finite() 和 is_infinite()。

is_infinite
lcg_value
Math 函数


组合线性同余发生器

is_nan
log10
Math 函数
PHP 手册

lcg_value

(PHP 4, PHP 5)

lcg_value — 组合线性同余发生器

说明

float lcg_value ( void )

lcg_value() 返回范围为 (0, 1) 的一个伪随机数。本函数组合了周期为 2^31 - 85 和 2^31 - 249 的两个同余发生器。本函数的周期等于这两个素数的乘积。

is_nan
log10
Math 函数


以 10 为底的对数

lcg_value
log1p
Math 函数
PHP 手册

log10

(PHP 4, PHP 5)

log10 — 以 10 为底的对数

说明

float log10 ( float $arg )

返回参数 arg 以 10 为底的对数。

参见 log()。

lcg_value
log1p
Math 函数


返回 log(1 + number)，甚至当 number 的值接近零也能计算出准确结果

log10
log
Math 函数
PHP 手册

log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p — 返回 log(1 + number)，甚至当 number 的值接近零也能计算出准确结果

说明

float log1p ( float $number )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

log1p() 返回 log(1 + number )，甚至当 number 的值接近零也能计算出准确结果

Note: 本函数未在 Windows 平台下实现。

参见 expm1() 和 log()。

log10
log
Math 函数


自然对数

log1p
max
Math 函数
PHP 手册

log

(PHP 4, PHP 5)

log — 自然对数

说明

float log ( float $arg [, float $base ] )

如果指定了可选的参数 base ，log() 返回 logbase arg ，否则 log() 返回参数 arg 的自然对数。

Note: 参数 base 自 PHP 4.3.0 开始可用。
你可以计算任意以 b 为底 n 的对数，但其实使用的是数学等式：logb(n) = log(n)/log(b)，其中 log 是自然对数。

参见 exp()。

log1p
max
Math 函数


找出最大值

log
min
Math 函数
PHP 手册

max

(PHP 4, PHP 5)

max — 找出最大值

说明

mixed max ( number $arg1 , number $arg2 )
mixed max ( array $numbers [, array $... ] )

max() 返回参数中数值最大的值。

如果仅有一个参数且为数组，max() 返回该数组中最大的值。如果第一个参数是整数、字符串或浮点数，则至少需要两个参数而 max() 会返回这些值中最大的一个。可以比较无限多个值。

Note: PHP 会将非数值的 string 当成 0，但如果这个正是最大的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最大值，max() 会返回其中数值的 0，如果参数中没有数值的 0，则返回按字母表顺序最大的字符串。

Example #1 使用 max() 的例子

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5
echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello
echo max(-1, 'hello');    // hello

// 对多个数组，max 从左向右比较。
// 因此在本例中：2 == 2，但 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// 如果同时给出数组和非数组作为参数，则总是将数组视为
// 最大值返回
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)
?>

参见 min() 和 count()。

log
min
Math 函数


找出最小值

max
mt_getrandmax
Math 函数
PHP 手册

min

(PHP 4, PHP 5)

min — 找出最小值

说明

mixed min ( number $arg1 , number $arg2 )
mixed min ( array $numbers [, array $... ] )

min() 返回参数中数值最小的。

如果仅有一个参数且为数组，min() 返回该数组中最小的值。如果第一个参数是整数、字符串或浮点数，则至少需要两个参数而 min() 会返回这些值中最小的一个。可以比较无限多个值。

Note: PHP 会将非数值的 string 当成 0，但如果这个正是最小的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最小值，min() 会返回按字母表顺序最小的字符串，如果其中没有字符串的话，则返回数值的 0。

Example #1 使用 min() 的例子

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2
echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello
echo min('hello', -1);    // -1

// 对多个数组，min 从左向右比较。
// 因此在本例中：2 == 2，但 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// 如果同时给出数组和非数组作为参数，则不可能返回数组，因为
// 数组被视为最大的
$val = min('string', array(2, 5, 7), 42);   // string
?>

参见 max() 和 count()。

max
mt_getrandmax
Math 函数


显示随机数的最大可能值

min
mt_rand
Math 函数
PHP 手册

mt_getrandmax

(PHP 4, PHP 5)

mt_getrandmax — 显示随机数的最大可能值

说明

int mt_getrandmax ( void )

返回调用 mt_rand() 所能返回的最大的随机数。

参见：
mt_rand()、
mt_srand()和
getrandmax()。

min
mt_rand
Math 函数


生成更好的随机数

mt_getrandmax
mt_srand
Math 函数
PHP 手册

mt_rand

(PHP 4, PHP 5)

mt_rand — 生成更好的随机数

说明

int mt_rand ([ int $min ], int $max )

很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 » Mersenne Twister 中已知的特性作为随机数发生器，它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。

如果没有提供可选参数 min 和 max ，mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15（包括 5 和 15）之间的随机数，用 mt_rand(5, 15)。

Example #1 mt_rand() 范例

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

上例的输出类似于：

1604716014
1478613278
6

Note: 自 PHP 4.2.0 起，不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种，现已自动完成。

Note: 在 3.0.7 之前的版本中，max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数，简短的例子是 mt_rand (5, 11)。

参见 mt_srand()，mt_getrandmax() 和 rand()。

mt_getrandmax
mt_srand
Math 函数


播下一个更好的随机数发生器种子

mt_rand
octdec
Math 函数
PHP 手册

mt_srand

(PHP 4, PHP 5)

mt_srand — 播下一个更好的随机数发生器种子

说明

void mt_srand ( int $seed )

用 seed 来给随机数发生器播种。从 PHP 4.2.0 版开始，seed 参数变为可选项，当该项为空时，会被设为随时数。

Example #1 mt_srand() 范例

<?php
// seed with microseconds
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Note: 自 PHP 4.2.0 起，不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种，现已自动完成。

参见 mt_rand()，mt_getrandmax() 和 srand()。

mt_rand
octdec
Math 函数


八进制转换为十进制

mt_srand
pi
Math 函数
PHP 手册

octdec

(PHP 4, PHP 5)

octdec — 八进制转换为十进制

说明

number octdec ( string $octal_string )

返回 octal_string 参数所表示的八进制数的十进制等值。可转换的最大的数值为 17777777777 或十进制的 2147483647。PHP 4.1.0 开始，该函数可以处理大数字，这种情况下，它会返回 float 类型。

Example #1 octdec() 范例

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

上例将输出：

63
45

参见 decoct() bindec()，hexdec() 和 base_convert().。

mt_srand
pi
Math 函数


得到圆周率值

octdec
pow
Math 函数
PHP 手册

pi

(PHP 4, PHP 5)

pi — 得到圆周率值

说明

float pi ( void )

返回圆周率的近似值。返回值的 float 精度是由 php.ini 中的 precision 指令确定。默认值是 14。你也可以使用 M_PI 常量，该常量产生与 pi() 完全相同的结果。

Example #1 pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>

octdec
pow
Math 函数


指数表达式

pi
rad2deg
Math 函数
PHP 手册

pow

(PHP 4, PHP 5)

pow — 指数表达式

说明

number pow ( number $base , number $exp )

返回 base 的 exp 次方的幂。如果可能，本函数会返回 integer。

如果不能计算幂，将发出一条警告，pow() 将返回 FALSE。PHP 4.2.0 版开始 pow() 不要产生任何的警告。

Note: PHP 不能处理负数的 base 。

Example #1 pow() 例子

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1

echo pow(-1, 5.5); // error

?>
Warning

在 PHP 4.0.6 及之前版本中，pow() 总是返回 float，并且不产生警告。

参见 exp()，sqrt()，bcpow() gmp_pow() 和。

pi
rad2deg
Math 函数


将弧度数转换为相应的角度数

pow
rand
Math 函数
PHP 手册

rad2deg

(PHP 4, PHP 5)

rad2deg — 将弧度数转换为相应的角度数

说明

float rad2deg ( float $number )

本函数将 number 从弧度转换为角度。

Example #1 rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

参见 deg2rad()。

pow
rand
Math 函数


产生一个随机整数

rad2deg
round
Math 函数
PHP 手册

rand

(PHP 4, PHP 5)

rand — 产生一个随机整数

说明

int rand ([ int $min ], int $max )

如果没有提供可选参数 min 和 max ，rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如想要 5 到 15（包括 5 和 15）之间的随机数，用 rand(5, 15)。

Example #1 rand() example

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

上例的输出类似于：

7771
22264
11

Note: 在某些平台下（例如 Windows）RAND_MAX 只有 32768。如果需要的范围大于 32768，那么指定 min 和 max 参数就可以生成大于 RAND_MAX的数了，或者考虑用 mt_rand() 来替代之。

Note: 自 PHP 4.2.0 起，不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种，现已自动完成。

Note: 在 3.0.7 之前的版本中，max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数，简短的例子是 rand (5, 11)。

参见 srand()，getrandmax() 和 mt_rand()。

rad2deg
round
Math 函数


对浮点数进行四舍五入

rand
sin
Math 函数
PHP 手册

round

(PHP 4, PHP 5)

round — 对浮点数进行四舍五入

说明

float round ( float $val [, int $precision ] )

返回将 val 根据指定精度 precision （十进制小数点后数字的数目）进行四舍五入的结果。precision 也可以是负数或零（默认值）。

Example #1 round() 例子

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

Note: PHP 默认不能正确处理类似 "12,300.2" 的字符串。见字符串转换为数值。

Note: precision 参数是在 PHP 4 中被引入的。

参见 ceil()，floor() 和 number_format()。

rand
sin
Math 函数


正弦

round
sinh
Math 函数
PHP 手册

sin

(PHP 4, PHP 5)

sin — 正弦

说明

float sin ( float $arg )

sin() 返回参数 arg 的正弦值。参数 arg 的单位为弧度。

Example #1 sin()

<?php

// 返回值的精度由 &php.ini; 中的 precision 指示确定
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

参见：
asin()、
cos()、
tan()和
deg2rad()。

round
sinh
Math 函数


双曲正弦

sin
sqrt
Math 函数
PHP 手册

sinh

(PHP 4 >= 4.1.0, PHP 5)

sinh — 双曲正弦

说明

float sinh ( float $arg )

返回 arg 的双曲正弦值，定义为 (exp(arg) - exp(-arg))/2。

参见：
sin()、
asinh()、
cos()和
tan()。

sin
sqrt
Math 函数


平方根

sinh
srand
Math 函数
PHP 手册

sqrt

(PHP 4, PHP 5)

sqrt — 平方根

说明

float sqrt ( float $arg )

返回 arg 的平方根。

Example #1 sqrt()

<?php
// Precision depends on your precision directive
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

参见 pow()。

sinh
srand
Math 函数


播下随机数发生器种子

sqrt
tan
Math 函数
PHP 手册

srand

(PHP 4, PHP 5)

srand — 播下随机数发生器种子

说明

void srand ([ int $seed ] )

用 seed 播下随机数发生器种子。从 PHP 4.2.0 版开始，seed 参数变为可选项，当该项为空时，会被设为随时数。

Example #1 srand() 范例

<?php
// seed with microseconds
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$randval = rand();
?>

Note: 自 PHP 4.2.0 起，不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种，现已自动完成。

参见 rand()，getrandmax() 和 mt_srand()。

sqrt
tan
Math 函数


正切

srand
tanh
Math 函数
PHP 手册

tan

(PHP 4, PHP 5)

tan — 正切

说明

float tan ( float $arg )

tan() 返回参数 arg 的正切值。参数 arg 的单位为弧度。

Example #1 tan()

<?php

echo tan(M_PI_4); // 1

?>

参见：
atan()、
sin()、
cos()和
deg2rad()。

srand
tanh
Math 函数


双曲正切

tan
Statistics
Math 函数
PHP 手册

tanh

(PHP 4 >= 4.1.0, PHP 5)

tanh — 双曲正切

说明

float tanh ( float $arg )

返回 arg 的双曲正切值，定义为 sinh(arg)/cosh(arg)。

参见：
tan()、
atanh()、
sin()和
cos()。

tan
Statistics
Math 函数


Statistics

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Statistic 函数
    • stats_absolute_deviation — Returns the absolute deviation of an array of values
    • stats_cdf_beta — CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.
    • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others.
    • stats_cdf_cauchy — Not documented
    • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others.
    • stats_cdf_exponential — Not documented
    • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others.
    • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others.
    • stats_cdf_laplace — Not documented
    • stats_cdf_logistic — Not documented
    • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others.
    • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others.
    • stats_cdf_noncentral_f — Calculates any one parameter of the Non-central F distribution given values for the others.
    • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others.
    • stats_cdf_t — Calculates any one parameter of the T distribution given values for the others.
    • stats_cdf_uniform — Not documented
    • stats_cdf_weibull — Not documented
    • stats_covariance — Computes the covariance of two data sets
    • stats_den_uniform — Not documented
    • stats_dens_beta — Not documented
    • stats_dens_cauchy — Not documented
    • stats_dens_chisquare — Not documented
    • stats_dens_exponential — Not documented
    • stats_dens_f — 说明
    • stats_dens_gamma — Not documented
    • stats_dens_laplace — Not documented
    • stats_dens_logistic — Not documented
    • stats_dens_negative_binomial — Not documented
    • stats_dens_normal — Not documented
    • stats_dens_pmf_binomial — Not documented
    • stats_dens_pmf_hypergeometric — 说明
    • stats_dens_pmf_poisson — Not documented
    • stats_dens_t — Not documented
    • stats_dens_weibull — Not documented
    • stats_harmonic_mean — Returns the harmonic mean of an array of values
    • stats_kurtosis — Computes the kurtosis of the data in the array
    • stats_rand_gen_beta — Generates beta random deviate
    • stats_rand_gen_chisquare — Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.
    • stats_rand_gen_exponential — Generates a single random deviate from an exponential distribution with mean "av"
    • stats_rand_gen_f — Generates a random deviate
    • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma — Generates random deviates from a gamma distribution
    • stats_rand_gen_ibinomial_negative — Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).
    • stats_rand_gen_ibinomial — Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE
    • stats_rand_gen_int — Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).
    • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncenral_chisquare — Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0
    • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.
    • stats_rand_gen_noncentral_t — Generates a single random deviate from a noncentral T distribution
    • stats_rand_gen_normal — Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.
    • stats_rand_gen_t — Generates a single random deviate from a T distribution
    • stats_rand_get_seeds — Not documented
    • stats_rand_phrase_to_seeds — generate two seeds for the RGN random number generator
    • stats_rand_ranf — Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator
    • stats_rand_setall — Not documented
    • stats_skew — Computes the skewness of the data in the array
    • stats_standard_deviation — Returns the standard deviation
    • stats_stat_binomial_coef — Not documented
    • stats_stat_correlation — Not documented
    • stats_stat_gennch — Not documented
    • stats_stat_independent_t — Not documented
    • stats_stat_innerproduct — 说明
    • stats_stat_noncentral_t — Calculates any one parameter of the noncentral t distribution give values for the others.
    • stats_stat_paired_t — Not documented
    • stats_stat_percentile — Not documented
    • stats_stat_powersum — Not documented
    • stats_variance — Returns the population variance
tanh
简介
数学扩展


简介

This is the statistics extension. It contains few dozens of functions useful for statistical computations. It is a wrapper around 2 scientific libraries, namely DCDFLIB (Library of C routines for Cumulative Distributions Functions, Inverses, and Other parameters) by B. Brown & J. Lavato and RANDLIB by Barry Brown, James Lavato & Kathy Russell. Includes CD and PD functions.

Statistics
安装/配置
Statistics


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Statistics


需求

No external libraries are needed. The extension comes bundled with the libraries used.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/stats.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Statistic 函数
Statistics


Statistic 函数

Table of Contents

  • stats_absolute_deviation — Returns the absolute deviation of an array of values
  • stats_cdf_beta — CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.
  • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others.
  • stats_cdf_cauchy — Not documented
  • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others.
  • stats_cdf_exponential — Not documented
  • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others.
  • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others.
  • stats_cdf_laplace — Not documented
  • stats_cdf_logistic — Not documented
  • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others.
  • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others.
  • stats_cdf_noncentral_f — Calculates any one parameter of the Non-central F distribution given values for the others.
  • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others.
  • stats_cdf_t — Calculates any one parameter of the T distribution given values for the others.
  • stats_cdf_uniform — Not documented
  • stats_cdf_weibull — Not documented
  • stats_covariance — Computes the covariance of two data sets
  • stats_den_uniform — Not documented
  • stats_dens_beta — Not documented
  • stats_dens_cauchy — Not documented
  • stats_dens_chisquare — Not documented
  • stats_dens_exponential — Not documented
  • stats_dens_f — 说明
  • stats_dens_gamma — Not documented
  • stats_dens_laplace — Not documented
  • stats_dens_logistic — Not documented
  • stats_dens_negative_binomial — Not documented
  • stats_dens_normal — Not documented
  • stats_dens_pmf_binomial — Not documented
  • stats_dens_pmf_hypergeometric — 说明
  • stats_dens_pmf_poisson — Not documented
  • stats_dens_t — Not documented
  • stats_dens_weibull — Not documented
  • stats_harmonic_mean — Returns the harmonic mean of an array of values
  • stats_kurtosis — Computes the kurtosis of the data in the array
  • stats_rand_gen_beta — Generates beta random deviate
  • stats_rand_gen_chisquare — Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.
  • stats_rand_gen_exponential — Generates a single random deviate from an exponential distribution with mean "av"
  • stats_rand_gen_f — Generates a random deviate
  • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
  • stats_rand_gen_gamma — Generates random deviates from a gamma distribution
  • stats_rand_gen_ibinomial_negative — Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).
  • stats_rand_gen_ibinomial — Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE
  • stats_rand_gen_int — Generates random integer between 1 and 2147483562
  • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).
  • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
  • stats_rand_gen_noncenral_chisquare — Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0
  • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.
  • stats_rand_gen_noncentral_t — Generates a single random deviate from a noncentral T distribution
  • stats_rand_gen_normal — Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.
  • stats_rand_gen_t — Generates a single random deviate from a T distribution
  • stats_rand_get_seeds — Not documented
  • stats_rand_phrase_to_seeds — generate two seeds for the RGN random number generator
  • stats_rand_ranf — Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator
  • stats_rand_setall — Not documented
  • stats_skew — Computes the skewness of the data in the array
  • stats_standard_deviation — Returns the standard deviation
  • stats_stat_binomial_coef — Not documented
  • stats_stat_correlation — Not documented
  • stats_stat_gennch — Not documented
  • stats_stat_independent_t — Not documented
  • stats_stat_innerproduct — 说明
  • stats_stat_noncentral_t — Calculates any one parameter of the noncentral t distribution give values for the others.
  • stats_stat_paired_t — Not documented
  • stats_stat_percentile — Not documented
  • stats_stat_powersum — Not documented
  • stats_variance — Returns the population variance
预定义常量
stats_absolute_deviation
Statistics


Returns the absolute deviation of an array of values

Statistic 函数
stats_cdf_beta
Statistic 函数
PHP 手册

stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviation — Returns the absolute deviation of an array of values

说明

float stats_absolute_deviation ( array $a )
Warning

本函数暂无文档，仅有参数列表。

参数

a

返回值

Statistic 函数
stats_cdf_beta
Statistic 函数


CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.

stats_absolute_deviation
stats_cdf_binomial
Statistic 函数
PHP 手册

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.

说明

float stats_cdf_beta ( float $par1 , float $par2 , float $par3 , int $which )

Method Cumulative distribution function (P) is calculated directly by code associated with the following reference. DiDinato, A. R. and Morris, A. H. Algorithm 708: Significant Digit Computation of the Incomplete Beta Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373. Computation of other parameters involve a search for a value that produces the desired value of P. The search relies on the monotonicity of P with the other parameter. Note The beta density is proportional to t^(A-1) * (1-t)^(B-1) Arguments P -- The integral from 0 to X of the chi-square distribution. Input range: [0, 1]. Q -- 1-P. Input range: [0, 1]. P + Q = 1.0. X -- Upper limit of integration of beta density. Input range: [0,1]. Search range: [0,1] Y -- 1-X. Input range: [0,1]. Search range: [0,1] X + Y = 1.0. A -- The first parameter of the beta density. Input range: (0, +infinity). Search range: [1D-100,1D100] B -- The second parameter of the beta density. Input range: (0, +infinity). Search range: [1D-100,1D100] STATUS -- 0 if calculation completed correctly -I if input parameter number I is out of range 1 if answer appears to be lower than lowest search bound 2 if answer appears to be higher than greatest search bound 3 if P + Q .ne. 1 4 if X + Y .ne. 1 BOUND -- Undefined if STATUS is 0 Bound exceeded by parameter number I if STATUS is negative. Lower search bound if STATUS is 1. Upper search bound if STATUS is 2.

参数

par1

par2

par3

which

Integer indicating which of the next four argument values is to be calculated from the others. Legal range: 1..4 which = 1 : Calculate P and Q from X,Y,A and B which = 2 : Calculate X and Y from P,Q,A and B which = 3 : Calculate A from P,Q,X,Y and B which = 4 : Calculate B from P,Q,X,Y and A

返回值

STATUS -- 0 if calculation completed correctly -I if input parameter number I is out of range 1 if answer appears to be lower than lowest search bound 2 if answer appears to be higher than greatest search bound 3 if P + Q .ne. 1 4 if X + Y .ne. 1

stats_absolute_deviation
stats_cdf_binomial
Statistic 函数


Calculates any one parameter of the binomial distribution given values for the others.

stats_cdf_beta
stats_cdf_cauchy
Statistic 函数
PHP 手册

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others.

说明

float stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_beta
stats_cdf_cauchy
Statistic 函数


Not documented

stats_cdf_binomial
stats_cdf_chisquare
Statistic 函数
PHP 手册

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Not documented

说明

float stats_cdf_cauchy ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_binomial
stats_cdf_chisquare
Statistic 函数


Calculates any one parameter of the chi-square distribution given values for the others.

stats_cdf_cauchy
stats_cdf_exponential
Statistic 函数
PHP 手册

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others.

说明

float stats_cdf_chisquare ( float $par1 , float $par2 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

which

返回值

stats_cdf_cauchy
stats_cdf_exponential
Statistic 函数


Not documented

stats_cdf_chisquare
stats_cdf_f
Statistic 函数
PHP 手册

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Not documented

说明

float stats_cdf_exponential ( float $par1 , float $par2 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

which

返回值

stats_cdf_chisquare
stats_cdf_f
Statistic 函数


Calculates any one parameter of the F distribution given values for the others.

stats_cdf_exponential
stats_cdf_gamma
Statistic 函数
PHP 手册

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Calculates any one parameter of the F distribution given values for the others.

说明

float stats_cdf_f ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_exponential
stats_cdf_gamma
Statistic 函数


Calculates any one parameter of the gamma distribution given values for the others.

stats_cdf_f
stats_cdf_laplace
Statistic 函数
PHP 手册

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others.

说明

float stats_cdf_gamma ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_f
stats_cdf_laplace
Statistic 函数


Not documented

stats_cdf_gamma
stats_cdf_logistic
Statistic 函数
PHP 手册

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Not documented

说明

float stats_cdf_laplace ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_gamma
stats_cdf_logistic
Statistic 函数


Not documented

stats_cdf_laplace
stats_cdf_negative_binomial
Statistic 函数
PHP 手册

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Not documented

说明

float stats_cdf_logistic ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_laplace
stats_cdf_negative_binomial
Statistic 函数


Calculates any one parameter of the negative binomial distribution given values for the others.

stats_cdf_logistic
stats_cdf_noncentral_chisquare
Statistic 函数
PHP 手册

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others.

说明

float stats_cdf_negative_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_logistic
stats_cdf_noncentral_chisquare
Statistic 函数


Calculates any one parameter of the non-central chi-square distribution given values for the others.

stats_cdf_negative_binomial
stats_cdf_noncentral_f
Statistic 函数
PHP 手册

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others.

说明

float stats_cdf_noncentral_chisquare ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_negative_binomial
stats_cdf_noncentral_f
Statistic 函数


Calculates any one parameter of the Non-central F distribution given values for the others.

stats_cdf_noncentral_chisquare
stats_cdf_poisson
Statistic 函数
PHP 手册

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Calculates any one parameter of the Non-central F distribution given values for the others.

说明

float stats_cdf_noncentral_f ( float $par1 , float $par2 , float $par3 , float $par4 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

par4

which

返回值

stats_cdf_noncentral_chisquare
stats_cdf_poisson
Statistic 函数


Calculates any one parameter of the Poisson distribution given values for the others.

stats_cdf_noncentral_f
stats_cdf_t
Statistic 函数
PHP 手册

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others.

说明

float stats_cdf_poisson ( float $par1 , float $par2 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

which

返回值

stats_cdf_noncentral_f
stats_cdf_t
Statistic 函数


Calculates any one parameter of the T distribution given values for the others.

stats_cdf_poisson
stats_cdf_uniform
Statistic 函数
PHP 手册

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Calculates any one parameter of the T distribution given values for the others.

说明

float stats_cdf_t ( float $par1 , float $par2 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

which

返回值

stats_cdf_poisson
stats_cdf_uniform
Statistic 函数


Not documented

stats_cdf_t
stats_cdf_weibull
Statistic 函数
PHP 手册

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Not documented

说明

float stats_cdf_uniform ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_t
stats_cdf_weibull
Statistic 函数


Not documented

stats_cdf_uniform
stats_covariance
Statistic 函数
PHP 手册

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Not documented

说明

float stats_cdf_weibull ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_cdf_uniform
stats_covariance
Statistic 函数


Computes the covariance of two data sets

stats_cdf_weibull
stats_den_uniform
Statistic 函数
PHP 手册

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Computes the covariance of two data sets

说明

float stats_covariance ( array $a , array $b )
Warning

本函数暂无文档，仅有参数列表。

参数

a

b

返回值

stats_cdf_weibull
stats_den_uniform
Statistic 函数


Not documented

stats_covariance
stats_dens_beta
Statistic 函数
PHP 手册

stats_den_uniform

(PECL stats >= 1.0.0)

stats_den_uniform — Not documented

说明

float stats_den_uniform ( float $x , float $a , float $b )
Warning

本函数暂无文档，仅有参数列表。

参数

x

a

b

返回值

stats_covariance
stats_dens_beta
Statistic 函数


Not documented

stats_den_uniform
stats_dens_cauchy
Statistic 函数
PHP 手册

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Not documented

说明

float stats_dens_beta ( float $x , float $a , float $b )
Warning

本函数暂无文档，仅有参数列表。

参数

x

a

b

返回值

stats_den_uniform
stats_dens_cauchy
Statistic 函数


Not documented

stats_dens_beta
stats_dens_chisquare
Statistic 函数
PHP 手册

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Not documented

说明

float stats_dens_cauchy ( float $x , float $ave , float $stdev )
Warning

本函数暂无文档，仅有参数列表。

参数

x

ave

stdev

返回值

stats_dens_beta
stats_dens_chisquare
Statistic 函数


Not documented

stats_dens_cauchy
stats_dens_exponential
Statistic 函数
PHP 手册

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Not documented

说明

float stats_dens_chisquare ( float $x , float $dfr )
Warning

本函数暂无文档，仅有参数列表。

参数

x

dfr

返回值

stats_dens_cauchy
stats_dens_exponential
Statistic 函数


Not documented

stats_dens_chisquare
stats_dens_f
Statistic 函数
PHP 手册

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Not documented

说明

float stats_dens_exponential ( float $x , float $scale )
Warning

本函数暂无文档，仅有参数列表。

参数

x

scale

返回值

stats_dens_chisquare
stats_dens_f
Statistic 函数


stats_dens_exponential
stats_dens_gamma
Statistic 函数
PHP 手册

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f —

说明

float stats_dens_f ( float $x , float $dfr1 , float $dfr2 )
Warning

本函数暂无文档，仅有参数列表。

参数

x

dfr1

dfr2

返回值

stats_dens_exponential
stats_dens_gamma
Statistic 函数


Not documented

stats_dens_f
stats_dens_laplace
Statistic 函数
PHP 手册

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Not documented

说明

float stats_dens_gamma ( float $x , float $shape , float $scale )
Warning

本函数暂无文档，仅有参数列表。

参数

x

shape

scale

返回值

stats_dens_f
stats_dens_laplace
Statistic 函数


Not documented

stats_dens_gamma
stats_dens_logistic
Statistic 函数
PHP 手册

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Not documented

说明

float stats_dens_laplace ( float $x , float $ave , float $stdev )
Warning

本函数暂无文档，仅有参数列表。

参数

x

ave

stdev

返回值

stats_dens_gamma
stats_dens_logistic
Statistic 函数


Not documented

stats_dens_laplace
stats_dens_negative_binomial
Statistic 函数
PHP 手册

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Not documented

说明

float stats_dens_logistic ( float $x , float $ave , float $stdev )
Warning

本函数暂无文档，仅有参数列表。

参数

x

ave

stdev

返回值

stats_dens_laplace
stats_dens_negative_binomial
Statistic 函数


Not documented

stats_dens_logistic
stats_dens_normal
Statistic 函数
PHP 手册

stats_dens_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_negative_binomial — Not documented

说明

float stats_dens_negative_binomial ( float $x , float $n , float $pi )
Warning

本函数暂无文档，仅有参数列表。

参数

x

n

pi

返回值

stats_dens_logistic
stats_dens_normal
Statistic 函数


Not documented

stats_dens_negative_binomial
stats_dens_pmf_binomial
Statistic 函数
PHP 手册

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Not documented

说明

float stats_dens_normal ( float $x , float $ave , float $stdev )
Warning

本函数暂无文档，仅有参数列表。

参数

x

ave

stdev

返回值

stats_dens_negative_binomial
stats_dens_pmf_binomial
Statistic 函数


Not documented

stats_dens_normal
stats_dens_pmf_hypergeometric
Statistic 函数
PHP 手册

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Not documented

说明

float stats_dens_pmf_binomial ( float $x , float $n , float $pi )
Warning

本函数暂无文档，仅有参数列表。

参数

x

n

pi

返回值

stats_dens_normal
stats_dens_pmf_hypergeometric
Statistic 函数


stats_dens_pmf_binomial
stats_dens_pmf_poisson
Statistic 函数
PHP 手册

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric —

说明

float stats_dens_pmf_hypergeometric ( float $n1 , float $n2 , float $N1 , float $N2 )
Warning

本函数暂无文档，仅有参数列表。

参数

n1

n2

N1

N2

返回值

stats_dens_pmf_binomial
stats_dens_pmf_poisson
Statistic 函数


Not documented

stats_dens_pmf_hypergeometric
stats_dens_t
Statistic 函数
PHP 手册

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Not documented

说明

float stats_dens_pmf_poisson ( float $x , float $lb )
Warning

本函数暂无文档，仅有参数列表。

参数

x

lb

返回值

stats_dens_pmf_hypergeometric
stats_dens_t
Statistic 函数


Not documented

stats_dens_pmf_poisson
stats_dens_weibull
Statistic 函数
PHP 手册

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Not documented

说明

float stats_dens_t ( float $x , float $dfr )
Warning

本函数暂无文档，仅有参数列表。

参数

x

dfr

返回值

stats_dens_pmf_poisson
stats_dens_weibull
Statistic 函数


Not documented

stats_dens_t
stats_harmonic_mean
Statistic 函数
PHP 手册

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Not documented

说明

float stats_dens_weibull ( float $x , float $a , float $b )
Warning

本函数暂无文档，仅有参数列表。

参数

x

a

b

返回值

stats_dens_t
stats_harmonic_mean
Statistic 函数


Returns the harmonic mean of an array of values

stats_dens_weibull
stats_kurtosis
Statistic 函数
PHP 手册

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Returns the harmonic mean of an array of values

说明

number stats_harmonic_mean ( array $a )
Warning

本函数暂无文档，仅有参数列表。

参数

a

返回值

stats_dens_weibull
stats_kurtosis
Statistic 函数


Computes the kurtosis of the data in the array

stats_harmonic_mean
stats_rand_gen_beta
Statistic 函数
PHP 手册

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Computes the kurtosis of the data in the array

说明

float stats_kurtosis ( array $a )
Warning

本函数暂无文档，仅有参数列表。

参数

a

返回值

stats_harmonic_mean
stats_rand_gen_beta
Statistic 函数


Generates beta random deviate

stats_kurtosis
stats_rand_gen_chisquare
Statistic 函数
PHP 手册

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Generates beta random deviate

说明

float stats_rand_gen_beta ( float $a , float $b )

Returns a random deviate from the beta distribution with parameters A and B. The density of the beta is x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x <. Method R. C. H. Cheng.

参数

a

b

返回值

stats_kurtosis
stats_rand_gen_chisquare
Statistic 函数


Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.

stats_rand_gen_beta
stats_rand_gen_exponential
Statistic 函数
PHP 手册

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.

说明

float stats_rand_gen_chisquare ( float $df )
Warning

本函数暂无文档，仅有参数列表。

参数

df

返回值

stats_rand_gen_beta
stats_rand_gen_exponential
Statistic 函数


Generates a single random deviate from an exponential distribution with mean "av"

stats_rand_gen_chisquare
stats_rand_gen_f
Statistic 函数
PHP 手册

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Generates a single random deviate from an exponential distribution with mean "av"

说明

float stats_rand_gen_exponential ( float $av )
Warning

本函数暂无文档，仅有参数列表。

参数

av

返回值

stats_rand_gen_chisquare
stats_rand_gen_f
Statistic 函数


Generates a random deviate

stats_rand_gen_exponential
stats_rand_gen_funiform
Statistic 函数
PHP 手册

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Generates a random deviate

说明

float stats_rand_gen_f ( float $dfn , float $dfd )

Generates a random deviate from the F (variance ratio) distribution with "dfn" degrees of freedom in the numerator and "dfd" degrees of freedom in the denominator. Method : directly generates ratio of chisquare variates.

参数

dfn

dfd

返回值

stats_rand_gen_exponential
stats_rand_gen_funiform
Statistic 函数


Generates uniform float between low (exclusive) and high (exclusive)

stats_rand_gen_f
stats_rand_gen_gamma
Statistic 函数
PHP 手册

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)

说明

float stats_rand_gen_funiform ( float $low , float $high )
Warning

本函数暂无文档，仅有参数列表。

参数

low

high

返回值

stats_rand_gen_f
stats_rand_gen_gamma
Statistic 函数


Generates random deviates from a gamma distribution

stats_rand_gen_funiform
stats_rand_gen_ibinomial_negative
Statistic 函数
PHP 手册

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Generates random deviates from a gamma distribution

说明

float stats_rand_gen_gamma ( float $a , float $r )

Generates random deviates from the gamma distribution whose density is (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

参数

a

location parameter of Gamma distribution (a > 0).

r

shape parameter of Gamma distribution (r > 0).

返回值

stats_rand_gen_funiform
stats_rand_gen_ibinomial_negative
Statistic 函数


Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0

stats_rand_gen_gamma
stats_rand_gen_ibinomial
Statistic 函数
PHP 手册

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).

说明

int stats_rand_gen_ibinomial_negative ( int $n , float $p )
Warning

本函数暂无文档，仅有参数列表。

参数

n

p

返回值

stats_rand_gen_gamma
stats_rand_gen_ibinomial
Statistic 函数


Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE

stats_rand_gen_ibinomial_negative
stats_rand_gen_int
Statistic 函数
PHP 手册

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE

说明

int stats_rand_gen_ibinomial ( int $n , float $pp )
Warning

本函数暂无文档，仅有参数列表。

参数

n

pp

返回值

stats_rand_gen_ibinomial_negative
stats_rand_gen_int
Statistic 函数


Generates random integer between 1 and 2147483562

stats_rand_gen_ibinomial
stats_rand_gen_ipoisson
Statistic 函数
PHP 手册

stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_int — Generates random integer between 1 and 2147483562

说明

int stats_rand_gen_int ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

stats_rand_gen_ibinomial
stats_rand_gen_ipoisson
Statistic 函数


Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).

stats_rand_gen_int
stats_rand_gen_iuniform
Statistic 函数
PHP 手册

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).

说明

int stats_rand_gen_ipoisson ( float $mu )
Warning

本函数暂无文档，仅有参数列表。

参数

mu

返回值

stats_rand_gen_int
stats_rand_gen_iuniform
Statistic 函数


Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

stats_rand_gen_ipoisson
stats_rand_gen_noncenral_chisquare
Statistic 函数
PHP 手册

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

说明

int stats_rand_gen_iuniform ( int $low , int $high )
Warning

本函数暂无文档，仅有参数列表。

参数

low

high

返回值

stats_rand_gen_ipoisson
stats_rand_gen_noncenral_chisquare
Statistic 函数


Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0

stats_rand_gen_iuniform
stats_rand_gen_noncentral_f
Statistic 函数
PHP 手册

stats_rand_gen_noncenral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncenral_chisquare — Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0

说明

float stats_rand_gen_noncenral_chisquare ( float $df , float $xnonc )
Warning

本函数暂无文档，仅有参数列表。

参数

df

xnonc

返回值

stats_rand_gen_iuniform
stats_rand_gen_noncentral_f
Statistic 函数


Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central 

stats_rand_gen_noncenral_chisquare
stats_rand_gen_noncentral_t
Statistic 函数
PHP 手册

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.

说明

float stats_rand_gen_noncentral_f ( float $dfn , float $dfd , float $xnonc )
Warning

本函数暂无文档，仅有参数列表。

参数

dfn

dfd

xnonc

返回值

stats_rand_gen_noncenral_chisquare
stats_rand_gen_noncentral_t
Statistic 函数


Generates a single random deviate from a noncentral T distribution

stats_rand_gen_noncentral_f
stats_rand_gen_normal
Statistic 函数
PHP 手册

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Generates a single random deviate from a noncentral T distribution

说明

float stats_rand_gen_noncentral_t ( float $df , float $xnonc )
Warning

本函数暂无文档，仅有参数列表。

参数

df

xnonc

返回值

stats_rand_gen_noncentral_f
stats_rand_gen_normal
Statistic 函数


Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.

stats_rand_gen_noncentral_t
stats_rand_gen_t
Statistic 函数
PHP 手册

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.

说明

float stats_rand_gen_normal ( float $av , float $sd )
Warning

本函数暂无文档，仅有参数列表。

参数

av

sd

返回值

stats_rand_gen_noncentral_t
stats_rand_gen_t
Statistic 函数


Generates a single random deviate from a T distribution

stats_rand_gen_normal
stats_rand_get_seeds
Statistic 函数
PHP 手册

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Generates a single random deviate from a T distribution

说明

float stats_rand_gen_t ( float $df )
Warning

本函数暂无文档，仅有参数列表。

参数

df

返回值

stats_rand_gen_normal
stats_rand_get_seeds
Statistic 函数


Not documented

stats_rand_gen_t
stats_rand_phrase_to_seeds
Statistic 函数
PHP 手册

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Not documented

说明

array stats_rand_get_seeds ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

stats_rand_gen_t
stats_rand_phrase_to_seeds
Statistic 函数


generate two seeds for the RGN random number generator

stats_rand_get_seeds
stats_rand_ranf
Statistic 函数
PHP 手册

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — generate two seeds for the RGN random number generator

说明

array stats_rand_phrase_to_seeds ( string $phrase )
Warning

本函数暂无文档，仅有参数列表。

参数

phrase

返回值

stats_rand_get_seeds
stats_rand_ranf
Statistic 函数


Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator

stats_rand_phrase_to_seeds
stats_rand_setall
Statistic 函数
PHP 手册

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator

说明

float stats_rand_ranf ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

返回值

stats_rand_phrase_to_seeds
stats_rand_setall
Statistic 函数


Not documented

stats_rand_ranf
stats_skew
Statistic 函数
PHP 手册

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Not documented

说明

void stats_rand_setall ( int $iseed1 , int $iseed2 )
Warning

本函数暂无文档，仅有参数列表。

参数

iseed1

iseed2

返回值

stats_rand_ranf
stats_skew
Statistic 函数


Computes the skewness of the data in the array

stats_rand_setall
stats_standard_deviation
Statistic 函数
PHP 手册

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Computes the skewness of the data in the array

说明

float stats_skew ( array $a )
Warning

本函数暂无文档，仅有参数列表。

参数

a

返回值

stats_rand_setall
stats_standard_deviation
Statistic 函数


Returns the standard deviation

stats_skew
stats_stat_binomial_coef
Statistic 函数
PHP 手册

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Returns the standard deviation

说明

float stats_standard_deviation ( array $a [, bool $sample=false ] )
Warning

本函数暂无文档，仅有参数列表。

参数

a

sample

返回值

stats_skew
stats_stat_binomial_coef
Statistic 函数


Not documented

stats_standard_deviation
stats_stat_correlation
Statistic 函数
PHP 手册

stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coef — Not documented

说明

float stats_stat_binomial_coef ( int $x , int $n )
Warning

本函数暂无文档，仅有参数列表。

参数

x

n

返回值

stats_standard_deviation
stats_stat_correlation
Statistic 函数


Not documented

stats_stat_binomial_coef
stats_stat_gennch
Statistic 函数
PHP 手册

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Not documented

说明

float stats_stat_correlation ( array $arr1 , array $arr2 )
Warning

本函数暂无文档，仅有参数列表。

参数

arr1

arr2

返回值

stats_stat_binomial_coef
stats_stat_gennch
Statistic 函数


Not documented

stats_stat_correlation
stats_stat_independent_t
Statistic 函数
PHP 手册

stats_stat_gennch

(PECL stats >= 1.0.0)

stats_stat_gennch — Not documented

说明

float stats_stat_gennch ( int $n )
Warning

本函数暂无文档，仅有参数列表。

参数

n

返回值

stats_stat_correlation
stats_stat_independent_t
Statistic 函数


Not documented

stats_stat_gennch
stats_stat_innerproduct
Statistic 函数
PHP 手册

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Not documented

说明

float stats_stat_independent_t ( array $arr1 , array $arr2 )
Warning

本函数暂无文档，仅有参数列表。

参数

arr1

arr2

返回值

stats_stat_gennch
stats_stat_innerproduct
Statistic 函数


stats_stat_independent_t
stats_stat_noncentral_t
Statistic 函数
PHP 手册

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct —

说明

float stats_stat_innerproduct ( array $arr1 , array $arr2 )
Warning

本函数暂无文档，仅有参数列表。

参数

arr1

arr2

返回值

stats_stat_independent_t
stats_stat_noncentral_t
Statistic 函数


Calculates any one parameter of the noncentral t distribution give values for the others.

stats_stat_innerproduct
stats_stat_paired_t
Statistic 函数
PHP 手册

stats_stat_noncentral_t

(PECL stats >= 1.0.0)

stats_stat_noncentral_t — Calculates any one parameter of the noncentral t distribution give values for the others.

说明

float stats_stat_noncentral_t ( float $par1 , float $par2 , float $par3 , int $which )
Warning

本函数暂无文档，仅有参数列表。

参数

par1

par2

par3

which

返回值

stats_stat_innerproduct
stats_stat_paired_t
Statistic 函数


Not documented

stats_stat_noncentral_t
stats_stat_percentile
Statistic 函数
PHP 手册

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Not documented

说明

float stats_stat_paired_t ( array $arr1 , array $arr2 )
Warning

本函数暂无文档，仅有参数列表。

参数

arr1

arr2

返回值

stats_stat_noncentral_t
stats_stat_percentile
Statistic 函数


Not documented

stats_stat_paired_t
stats_stat_powersum
Statistic 函数
PHP 手册

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Not documented

说明

float stats_stat_percentile ( float $df , float $xnonc )
Warning

本函数暂无文档，仅有参数列表。

参数

df

xnonc

返回值

stats_stat_paired_t
stats_stat_powersum
Statistic 函数


Not documented

stats_stat_percentile
stats_variance
Statistic 函数
PHP 手册

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Not documented

说明

float stats_stat_powersum ( array $arr , float $power )
Warning

本函数暂无文档，仅有参数列表。

参数

arr

power

返回值

stats_stat_percentile
stats_variance
Statistic 函数


Returns the population variance

stats_stat_powersum
非文本内容的MIME输出
Statistic 函数
PHP 手册

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Returns the population variance

说明

float stats_variance ( array $a [, bool $sample=false ] )
Warning

本函数暂无文档，仅有参数列表。

参数

a

sample

返回值

stats_stat_powersum
非文本内容的MIME输出
Statistic 函数


非文本内容的MIME输出

  • FDF — Forms Data Format
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • FDF 函数
  • GnuPG — GNU Privacy Guard
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • GnuPG 函数
  • haru — Haru PDF
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Builtin Fonts And Encodings
    • HaruException — The HaruException class
    • HaruDoc — The HaruDoc class
    • HaruPage — The HaruPage class
    • HaruFont — The HaruFont class
    • HaruImage — The HaruImage class
    • HaruEncoder — The HaruEncoder class
    • HaruOutline — The HaruOutline class
    • HaruAnnotation — The HaruAnnotation class
    • HaruDestination — The HaruDestination class
  • Ming — Ming (flash)
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Ming 函数
    • SWFAction — The SWFAction class
    • SWFBitmap — The SWFBitmap class
    • SWFButton — The SWFButton class
    • SWFDisplayItem — The SWFDisplayItem class
    • SWFFill — The SWFFill class
    • SWFFont — The SWFFont class
    • SWFFontChar — The SWFFontChar class
    • SWFGradient — The SWFGradient class
    • SWFMorph — The SWFMorph class
    • SWFMovie — The SWFMovie class
    • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFShape — The SWFShape class
    • SWFSound — The SWFSound class
    • SWFSoundInstance — The SWFSoundInstance class
    • SWFSprite — The SWFSprite class
    • SWFText — The SWFText class
    • SWFTextField — The SWFTextField class
    • SWFVideoStream — The SWFVideoStream class
  • PDF
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • PDF 函数
  • PS — PostScript document creation
    • 简介
    • 安装/配置
    • 预定义常量
    • PS 函数
  • RPM Reader — RPM Header Reading
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • RPM Reader 函数
  • SWF — Shockwave Flash
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • SWF 函数
stats_variance
FDF
函数参考


Forms Data Format

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • FDF 函数
    • fdf_add_doc_javascript — Adds javascript code to the FDF document
    • fdf_add_template — Adds a template into the FDF document
    • fdf_close — Close an FDF document
    • fdf_create — Create a new FDF document
    • fdf_enum_values — Call a user defined function for each document value
    • fdf_errno — Return error code for last fdf operation
    • fdf_error — Return error description for FDF error code
    • fdf_get_ap — Get the appearance of a field
    • fdf_get_attachment — Extracts uploaded file embedded in the FDF
    • fdf_get_encoding — Get the value of the /Encoding key
    • fdf_get_file — Get the value of the /F key
    • fdf_get_flags — Gets the flags of a field
    • fdf_get_opt — Gets a value from the opt array of a field
    • fdf_get_status — Get the value of the /STATUS key
    • fdf_get_value — Get the value of a field
    • fdf_get_version — Gets version number for FDF API or file
    • fdf_header — Sets FDF-specific output headers
    • fdf_next_field_name — Get the next field name
    • fdf_open_string — Read a FDF document from a string
    • fdf_open — Open a FDF document
    • fdf_remove_item — Sets target frame for form
    • fdf_save_string — Returns the FDF document as a string
    • fdf_save — Save a FDF document
    • fdf_set_ap — Set the appearance of a field
    • fdf_set_encoding — Sets FDF character encoding
    • fdf_set_file — Set PDF document to display FDF data in
    • fdf_set_flags — Sets a flag of a field
    • fdf_set_javascript_action — Sets an javascript action of a field
    • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt — Sets an option of a field
    • fdf_set_status — Set the value of the /STATUS key
    • fdf_set_submit_form_action — Sets a submit form action of a field
    • fdf_set_target_frame — Set target frame for form display
    • fdf_set_value — Set the value of a field
    • fdf_set_version — Sets version number for a FDF file
非文本内容的MIME输出
简介
非文本内容的MIME输出


简介

Forms Data Format (FDF) is a format for handling forms within PDF documents. You should read the documentation at » http://partners.adobe.com/asn/acrobat/forms.jsp for more information on what FDF is and how it is used in general.

The general idea of FDF is similar to HTML forms. The difference is basically the format how data is transmitted to the server when the submit button is pressed (this is actually the Form Data Format) and the format of the form itself (which is the Portable Document Format, PDF). Processing the FDF data is one of the features provided by the fdf functions. But there is more. One may as well take an existing PDF form and populated the input fields with data without modifying the form itself. In such a case one would create a FDF document (fdf_create()) set the values of each input field (fdf_set_value()) and associate it with a PDF form (fdf_set_file()). Finally it has to be sent to the browser with MimeType application/vnd.fdf. The Acrobat reader plugin of your browser recognizes the MimeType, reads the associated PDF form and fills in the data from the FDF document.

If you look at an FDF-document with a text editor you will find a catalogue object with the name FDF. Such an object may contain a number of entries like Fields, F, Status etc.. The most commonly used entries are Fields which points to a list of input fields, and F which contains the filename of the PDF-document this data belongs to. Those entries are referred to in the FDF documentation as /F-Key or /Status-Key. Modifying this entries is done by functions like fdf_set_file() and fdf_set_status(). Fields are modified with fdf_set_value(), fdf_set_opt() etc..

FDF
安装/配置
FDF


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
FDF


需求

You need the FDF toolkit SDK available from » http://partners.adobe.com/asn/acrobat/forms.jsp. As of PHP 4.3.0 you need at least SDK version 5.0. The FDF toolkit library is available in binary form only, platforms supported by Adobe are Win32, Linux, Solaris and AIX.

安装/配置
安装
安装/配置


安装

You must compile PHP with --with-fdftk[=DIR].

Note: If you run into problems configuring PHP with fdftk support, check whether the header file fdftk.h and the library libfdftk.so are at the right place. The configure script supports both the directory structure of the FDF SDK distribution and the usual DIR/include / DIR/lib layout, so you can point it either directly to the unpacked distribution directory or put the header file and the appropriate library for your platform into e.g. /usr/local/include and /usr/local/lib and configure with --with-fdftk=/usr/local.

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: fdftk.dll

需求
运行时配置
安装/配置


资源类型

Most fdf functions require a fdf resource as their first parameter. A fdf resource is a handle to an opened fdf file. fdf resources may be obtained using fdf_create(), fdf_open() and fdf_open_string().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FDFValue (integer)
FDFStatus (integer)
FDFFile (integer)
FDFID (integer)
FDFFf (integer)
FDFSetFf (integer)
FDFClearFf (integer)
FDFFlags (integer)
FDFSetF (integer)
FDFClrF (integer)
FDFAP (integer)
FDFAS (integer)
FDFAction (integer)
FDFAA (integer)
FDFAPRef (integer)
FDFIF (integer)
FDFEnter (integer)
FDFExit (integer)
FDFDown (integer)
FDFUp (integer)
FDFFormat (integer)
FDFValidate (integer)
FDFKeystroke (integer)
FDFCalculate (integer)
FDFNormalAP (integer)
FDFRolloverAP (integer)
FDFDownAP (integer)
资源类型
范例
FDF


范例

The following examples shows just the evaluation of form data.

Example #1 Evaluating a FDF document

<?php
// Open fdf from input string provided by the extension
// The pdf form contained several input text fields with the names
// volume, date, comment, publisher, preparer, and two checkboxes
// show_publisher and show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo "The volume field has the value '<b>$volume</b>'<br />";

$date = fdf_get_value($fdf, "date");
echo "The date field has the value '<b>$date</b>'<br />";

$comment = fdf_get_value($fdf, "comment");
echo "The comment field has the value '<b>$comment</b>'<br />";

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "The publisher field has the value '<b>$publisher</b>'<br />";
} else
  echo "Publisher shall not be shown.<br />";

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "The preparer field has the value '<b>$preparer</b>'<br />";
} else
  echo "Preparer shall not be shown.<br />";
fdf_close($fdf);
?>

预定义常量
FDF 函数
FDF


FDF 函数

Table of Contents

  • fdf_add_doc_javascript — Adds javascript code to the FDF document
  • fdf_add_template — Adds a template into the FDF document
  • fdf_close — Close an FDF document
  • fdf_create — Create a new FDF document
  • fdf_enum_values — Call a user defined function for each document value
  • fdf_errno — Return error code for last fdf operation
  • fdf_error — Return error description for FDF error code
  • fdf_get_ap — Get the appearance of a field
  • fdf_get_attachment — Extracts uploaded file embedded in the FDF
  • fdf_get_encoding — Get the value of the /Encoding key
  • fdf_get_file — Get the value of the /F key
  • fdf_get_flags — Gets the flags of a field
  • fdf_get_opt — Gets a value from the opt array of a field
  • fdf_get_status — Get the value of the /STATUS key
  • fdf_get_value — Get the value of a field
  • fdf_get_version — Gets version number for FDF API or file
  • fdf_header — Sets FDF-specific output headers
  • fdf_next_field_name — Get the next field name
  • fdf_open_string — Read a FDF document from a string
  • fdf_open — Open a FDF document
  • fdf_remove_item — Sets target frame for form
  • fdf_save_string — Returns the FDF document as a string
  • fdf_save — Save a FDF document
  • fdf_set_ap — Set the appearance of a field
  • fdf_set_encoding — Sets FDF character encoding
  • fdf_set_file — Set PDF document to display FDF data in
  • fdf_set_flags — Sets a flag of a field
  • fdf_set_javascript_action — Sets an javascript action of a field
  • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
  • fdf_set_opt — Sets an option of a field
  • fdf_set_status — Set the value of the /STATUS key
  • fdf_set_submit_form_action — Sets a submit form action of a field
  • fdf_set_target_frame — Set target frame for form display
  • fdf_set_value — Set the value of a field
  • fdf_set_version — Sets version number for a FDF file
范例
fdf_add_doc_javascript
FDF


Adds javascript code to the FDF document

FDF 函数
fdf_add_template
FDF 函数
PHP 手册

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascript — Adds javascript code to the FDF document

说明

bool fdf_add_doc_javascript ( resource $fdf_document , string $script_name , string $script_code )

Adds a script to the FDF, which Acrobat then adds to the doc-level scripts of a document, once the FDF is imported into it.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

script_name

The script name.

script_code

The script code. It is strongly suggested to use \r for linebreaks within the script code.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Adding JavaScript code to a FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

will create a FDF like this:

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

FDF 函数
fdf_add_template
FDF 函数


Adds a template into the FDF document

fdf_add_doc_javascript
fdf_close
FDF 函数
PHP 手册

fdf_add_template

(PHP 4, PHP 5)

fdf_add_template — Adds a template into the FDF document

说明

bool fdf_add_template ( resource $fdf_document , int $newpage , string $filename , string $template , int $rename )
Warning

本函数暂无文档，仅有参数列表。

fdf_add_doc_javascript
fdf_close
FDF 函数


Close an FDF document

fdf_add_template
fdf_create
FDF 函数
PHP 手册

fdf_close

(PHP 4, PHP 5)

fdf_close — Close an FDF document

说明

void fdf_close ( resource $fdf_document )

Closes the FDF document.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

返回值

无返回值。

参见

  • fdf_open() - Open a FDF document

fdf_add_template
fdf_create
FDF 函数


Create a new FDF document

fdf_close
fdf_enum_values
FDF 函数
PHP 手册

fdf_create

(PHP 4, PHP 5)

fdf_create — Create a new FDF document

说明

resource fdf_create ( void )

Creates a new FDF document.

This function is needed if one would like to populate input fields in a PDF document with data.

返回值

Returns a FDF document handle, or FALSE on error.

范例

Example #1 Populating a PDF document

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

参见

  • fdf_close() - Close an FDF document
  • fdf_save() - Save a FDF document
  • fdf_open() - Open a FDF document

fdf_close
fdf_enum_values
FDF 函数


Call a user defined function for each document value

fdf_create
fdf_errno
FDF 函数
PHP 手册

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_values — Call a user defined function for each document value

说明

bool fdf_enum_values ( resource $fdf_document , callback $function [, mixed $userdata ] )
Warning

本函数暂无文档，仅有参数列表。

fdf_create
fdf_errno
FDF 函数


Return error code for last fdf operation

fdf_enum_values
fdf_error
FDF 函数
PHP 手册

fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errno — Return error code for last fdf operation

说明

int fdf_errno ( void )

Gets the error code set by the last FDF function call.

A textual description of the error may be obtained using with fdf_error().

返回值

Returns the error code as an integer, or zero if there was no errors.

参见

  • fdf_error() - Return error description for FDF error code

fdf_enum_values
fdf_error
FDF 函数


Return error description for FDF error code

fdf_errno
fdf_get_ap
FDF 函数
PHP 手册

fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_error — Return error description for FDF error code

说明

string fdf_error ([ int $error_code ] )

Gets a textual description for the FDF error code given in error_code .

参数

error_code

An error code obtained with fdf_errno(). If not provided, this function uses the internal error code set by the last operation.

返回值

Returns the error message as a string, or the string no error if nothing went wrong.

参见

  • fdf_errno() - Return error code for last fdf operation

fdf_errno
fdf_get_ap
FDF 函数


Get the appearance of a field

fdf_error
fdf_get_attachment
FDF 函数
PHP 手册

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_ap — Get the appearance of a field

说明

bool fdf_get_ap ( resource $fdf_document , string $field , int $face , string $filename )

Gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field

face

The possible values are FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

The appearance will be stored in this parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

fdf_error
fdf_get_attachment
FDF 函数


Extracts uploaded file embedded in the FDF

fdf_get_ap
fdf_get_encoding
FDF 函数
PHP 手册

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachment — Extracts uploaded file embedded in the FDF

说明

array fdf_get_attachment ( resource $fdf_document , string $fieldname , string $savepath )

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath .

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

savepath

May be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Note: There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

返回值

The returned array contains the following fields:

  • path - path were the file got stored
  • size - size of the stored file in bytes
  • type - mimetype if given in the FDF

范例

Example #1 Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>

fdf_get_ap
fdf_get_encoding
FDF 函数


Get the value of the /Encoding key

fdf_get_attachment
fdf_get_file
FDF 函数
PHP 手册

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encoding — Get the value of the /Encoding key

说明

string fdf_get_encoding ( resource $fdf_document )

Gets the value of the /Encoding key.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

返回值

Returns the encoding as a string. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

参见

  • fdf_set_encoding() - Sets FDF character encoding

fdf_get_attachment
fdf_get_file
FDF 函数


Get the value of the /F key

fdf_get_encoding
fdf_get_flags
FDF 函数
PHP 手册

fdf_get_file

(PHP 4, PHP 5)

fdf_get_file — Get the value of the /F key

说明

string fdf_get_file ( resource $fdf_document )

Gets the value of the /F key.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

返回值

Returns the key value, as a string.

参见

  • fdf_set_file() - Set PDF document to display FDF data in

fdf_get_encoding
fdf_get_flags
FDF 函数


Gets the flags of a field

fdf_get_file
fdf_get_opt
FDF 函数
PHP 手册

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flags — Gets the flags of a field

说明

int fdf_get_flags ( resource $fdf_document , string $fieldname , int $whichflags )
Warning

本函数暂无文档，仅有参数列表。

fdf_get_file
fdf_get_opt
FDF 函数


Gets a value from the opt array of a field

fdf_get_flags
fdf_get_status
FDF 函数
PHP 手册

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_opt — Gets a value from the opt array of a field

说明

mixed fdf_get_opt ( resource $fdf_document , string $fieldname [, int $element ] )
Warning

本函数暂无文档，仅有参数列表。

fdf_get_flags
fdf_get_status
FDF 函数


Get the value of the /STATUS key

fdf_get_opt
fdf_get_value
FDF 函数
PHP 手册

fdf_get_status

(PHP 4, PHP 5)

fdf_get_status — Get the value of the /STATUS key

说明

string fdf_get_status ( resource $fdf_document )

Gets the value of the /STATUS key.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

返回值

Returns the key value, as a string.

参见

  • fdf_set_status() - Set the value of the /STATUS key

fdf_get_opt
fdf_get_value
FDF 函数


Get the value of a field

fdf_get_status
fdf_get_version
FDF 函数
PHP 手册

fdf_get_value

(PHP 4, PHP 5)

fdf_get_value — Get the value of a field

说明

mixed fdf_get_value ( resource $fdf_document , string $fieldname [, int $which ] )

Gets the value for the requested field.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

which

Elements of an array field can be retrieved by passing this optional parameter, starting at zero. For non-array fields, this parameter will be ignored.

返回值

Returns the field value.

更新日志

版本 | 说明
4.3.0 | Support for arrays and the which parameter were added.

参见

  • fdf_set_value() - Set the value of a field

fdf_get_status
fdf_get_version
FDF 函数


Gets version number for FDF API or file

fdf_get_value
fdf_header
FDF 函数
PHP 手册

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_version — Gets version number for FDF API or file

说明

string fdf_get_version ([ resource $fdf_document ] )

Return the FDF version for the given document, or the toolkit API version number if no parameter is given.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

返回值

Returns the version as a string. For the current FDF toolkit 5.0 the API version number is 5.0 and the document version number is either 1.2, 1.3 or 1.4.

参见

  • fdf_set_version() - Sets version number for a FDF file

fdf_get_value
fdf_header
FDF 函数


Sets FDF-specific output headers

fdf_get_version
fdf_next_field_name
FDF 函数
PHP 手册

fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_header — Sets FDF-specific output headers

说明

void fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

返回值

无返回值。

fdf_get_version
fdf_next_field_name
FDF 函数


Get the next field name

fdf_header
fdf_open_string
FDF 函数
PHP 手册

fdf_next_field_name

(PHP 4, PHP 5)

fdf_next_field_name — Get the next field name

说明

string fdf_next_field_name ( resource $fdf_document [, string $fieldname ] )

Gets the name of the field after the given field. This name can be used with several functions.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string. If not given, the first field will be assumed.

返回值

Returns the field name as a string.

范例

Example #1 Detecting all fieldnames in a FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
    echo "field: $field\n";
}
?>

参见

  • fdf_get_value() - Get the value of a field

fdf_header
fdf_open_string
FDF 函数


Read a FDF document from a string

fdf_next_field_name
fdf_open
FDF 函数
PHP 手册

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_string — Read a FDF document from a string

说明

resource fdf_open_string ( string $fdf_data )

Reads form data from a string.

You can use fdf_open_string() together with $HTTP_FDF_DATA to process FDF form input from a remote client.

参数

fdf_data

The data as returned from a PDF form or created using fdf_create() and fdf_save_string().

返回值

Returns a FDF document handle, or FALSE on error.

范例

Example #1 Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

参见

  • fdf_open() - Open a FDF document
  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string

fdf_next_field_name
fdf_open
FDF 函数


Open a FDF document

fdf_open_string
fdf_remove_item
FDF 函数
PHP 手册

fdf_open

(PHP 4, PHP 5)

fdf_open — Open a FDF document

说明

resource fdf_open ( string $filename )

Opens a file with form data.

You can also use fdf_open_string() to process the results of a PDF form POST request.

参数

filename

Path to the FDF file. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

返回值

Returns a FDF document handle, or FALSE on error.

范例

Example #1 Accessing the form data

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

参见

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document

fdf_open_string
fdf_remove_item
FDF 函数


Sets target frame for form

fdf_open
fdf_save_string
FDF 函数
PHP 手册

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_item — Sets target frame for form

说明

bool fdf_remove_item ( resource $fdf_document , string $fieldname , int $item )
Warning

本函数暂无文档，仅有参数列表。

fdf_open
fdf_save_string
FDF 函数


Returns the FDF document as a string

fdf_remove_item
fdf_save
FDF 函数
PHP 手册

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_string — Returns the FDF document as a string

说明

string fdf_save_string ( resource $fdf_document )

Returns the FDF document as a string.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

返回值

Returns the document as a string, or FALSE on error.

范例

Example #1 Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

上例将输出：

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

参见

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document

fdf_remove_item
fdf_save
FDF 函数


Save a FDF document

fdf_save_string
fdf_set_ap
FDF 函数
PHP 手册

fdf_save

(PHP 4, PHP 5)

fdf_save — Save a FDF document

说明

bool fdf_save ( resource $fdf_document [, string $filename ] )

Saves a FDF document.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

filename

If provided, the resulting FDF will be written in this parameter. Otherwise, this function will write the FDF to the default PHP output stream.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string

fdf_save_string
fdf_set_ap
FDF 函数


Set the appearance of a field

fdf_save
fdf_set_encoding
FDF 函数
PHP 手册

fdf_set_ap

(PHP 4, PHP 5)

fdf_set_ap — Set the appearance of a field

说明

bool fdf_set_ap ( resource $fdf_document , string $field_name , int $face , string $filename , int $page_number )

Sets the appearance of a field (i.e. the value of the /AP key).

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field_name

face

The possible values FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

page_number

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

fdf_save
fdf_set_encoding
FDF 函数


Sets FDF character encoding

fdf_set_ap
fdf_set_file
FDF 函数
PHP 手册

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5)

fdf_set_encoding — Sets FDF character encoding

说明

bool fdf_set_encoding ( resource $fdf_document , string $encoding )

Sets the character encoding for the FDF document.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

encoding

The encoding name. The following values are supported: "Shift-JIS", "UHC", "GBK" and "BigFive".

An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

fdf_set_ap
fdf_set_file
FDF 函数


Set PDF document to display FDF data in

fdf_set_encoding
fdf_set_flags
FDF 函数
PHP 手册

fdf_set_file

(PHP 4, PHP 5)

fdf_set_file — Set PDF document to display FDF data in

说明

bool fdf_set_file ( resource $fdf_document , string $url [, string $target_frame ] )

Selects a different PDF document to display the form results in then the form it originated from.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

url

Should be given as an absolute URL.

target_frame

Use this parameter to specify the frame in which the document will be displayed. You can also set the default value for this parameter using fdf_set_target_frame().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Passing FDF data to a second form

<?php
  /* set content type for Adobe FDF */
  fdf_header();

  /* start new fdf */
  $fdf = fdf_create();

  /* set field "foo" to value "bar" */
  fdf_set_value($fdf, "foo", "bar");

  /* tell client to display FDF data using "fdf_form.pdf" */
  fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

  /* output fdf */
  fdf_save($fdf);

  /* clean up */
  fdf_close($fdf);
?>

参见

  • fdf_get_file() - Get the value of the /F key
  • fdf_set_target_frame() - Set target frame for form display

fdf_set_encoding
fdf_set_flags
FDF 函数


Sets a flag of a field

fdf_set_file
fdf_set_javascript_action
FDF 函数
PHP 手册

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flags — Sets a flag of a field

说明

bool fdf_set_flags ( resource $fdf_document , string $fieldname , int $whichFlags , int $newFlags )

Sets certain flags of the given field.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

whichFlags

newFlags

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_set_opt() - Sets an option of a field

fdf_set_file
fdf_set_javascript_action
FDF 函数


Sets an javascript action of a field

fdf_set_flags
fdf_set_on_import_javascript
FDF 函数
PHP 手册

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_action — Sets an javascript action of a field

说明

bool fdf_set_javascript_action ( resource $fdf_document , string $fieldname , int $trigger , string $script )

Sets a javascript action for the given field.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_set_submit_form_action() - Sets a submit form action of a field

fdf_set_flags
fdf_set_on_import_javascript
FDF 函数


Adds javascript code to be executed when Acrobat opens the FDF

fdf_set_javascript_action
fdf_set_opt
FDF 函数
PHP 手册

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF

说明

bool fdf_set_on_import_javascript ( resource $fdf_document , string $script , bool $before_data_import )
Warning

本函数暂无文档，仅有参数列表。

参见

  • fdf_add_doc_javascript() - Adds javascript code to the FDF document
  • fdf_set_javascript_action() - Sets an javascript action of a field

fdf_set_javascript_action
fdf_set_opt
FDF 函数


Sets an option of a field

fdf_set_on_import_javascript
fdf_set_status
FDF 函数
PHP 手册

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_opt — Sets an option of a field

说明

bool fdf_set_opt ( resource $fdf_document , string $fieldname , int $element , string $str1 , string $str2 )

Sets options of the given field.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

element

str1

str2

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_set_flags() - Sets a flag of a field

fdf_set_on_import_javascript
fdf_set_status
FDF 函数


Set the value of the /STATUS key

fdf_set_opt
fdf_set_submit_form_action
FDF 函数
PHP 手册

fdf_set_status

(PHP 4, PHP 5)

fdf_set_status — Set the value of the /STATUS key

说明

bool fdf_set_status ( resource $fdf_document , string $status )

Sets the value of the /STATUS key. When a client receives a FDF with a status set it will present the value in an alert box.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

status

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_get_status() - Get the value of the /STATUS key

fdf_set_opt
fdf_set_submit_form_action
FDF 函数


Sets a submit form action of a field

fdf_set_status
fdf_set_target_frame
FDF 函数
PHP 手册

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_action — Sets a submit form action of a field

说明

bool fdf_set_submit_form_action ( resource $fdf_document , string $fieldname , int $trigger , string $script , int $flags )

Sets a submit form action for the given field.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

flags

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_set_javascript_action() - Sets an javascript action of a field

fdf_set_status
fdf_set_target_frame
FDF 函数


Set target frame for form display

fdf_set_submit_form_action
fdf_set_value
FDF 函数
PHP 手册

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frame — Set target frame for form display

说明

bool fdf_set_target_frame ( resource $fdf_document , string $frame_name )

Sets the target frame to display a result PDF defined with fdf_save_file() in.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

frame_name

The frame name, as a string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_save_file()

fdf_set_submit_form_action
fdf_set_value
FDF 函数


Set the value of a field

fdf_set_target_frame
fdf_set_version
FDF 函数
PHP 手册

fdf_set_value

(PHP 4, PHP 5)

fdf_set_value — Set the value of a field

说明

bool fdf_set_value ( resource $fdf_document , string $fieldname , mixed $value [, int $isName ] )

Sets the value for the given field.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

value

This parameter will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

isName

Note: In older versions of the FDF toolkit last parameter determined if the field value was to be converted to a PDF Name (= 1) or set to a PDF String (= 0).
The value is no longer used in the current toolkit version 5.0. For compatibility reasons it is still supported as an optional parameter beginning with PHP 4.3, but ignored internally.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
4.3.0 | Support for arrays in the value parameter was added.

参见

  • fdf_get_value() - Get the value of a field
  • fdf_remove_item() - Sets target frame for form

fdf_set_target_frame
fdf_set_version
FDF 函数


Sets version number for a FDF file

fdf_set_value
GnuPG
FDF 函数
PHP 手册

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_version — Sets version number for a FDF file

说明

bool fdf_set_version ( resource $fdf_document , string $version )

Sets the FDF version for the given document.

Some features supported by this extension are only available in newer FDF versions.

参数

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

version

The version number. For the current FDF toolkit 5.0, this may be either 1.2, 1.3 or 1.4.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fdf_get_version() - Gets version number for FDF API or file

fdf_set_value
GnuPG
FDF 函数


GNU Privacy Guard

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Clearsign text
  • GnuPG 函数
    • gnupg_adddecryptkey — Add a key for decryption
    • gnupg_addencryptkey — Add a key for encryption
    • gnupg_addsignkey — Add a key for signing
    • gnupg_cleardecryptkeys — Removes all keys which were set for decryption before
    • gnupg_clearencryptkeys — Removes all keys which were set for encryption before
    • gnupg_clearsignkeys — Removes all keys which were set for signing before
    • gnupg_decrypt — Decrypts a given text
    • gnupg_decryptverify — Decrypts and verifies a given text
    • gnupg_encrypt — Encrypts a given text
    • gnupg_encryptsign — Encrypts and signs a given text
    • gnupg_export — Exports a key
    • gnupg_geterror — Returns the errortext, if a function fails
    • gnupg_getprotocol — Returns the currently active protocol for all operations
    • gnupg_import — Imports a key
    • gnupg_init — Initialize a connection
    • gnupg_keyinfo — Returns an array with information about all keys that matches the given pattern
    • gnupg_setarmor — Toggle armored output
    • gnupg_seterrormode — Sets the mode for error_reporting
    • gnupg_setsignmode — Sets the mode for signing
    • gnupg_sign — Signs a given text
    • gnupg_verify — Verifies a signed text
fdf_set_version
简介
非文本内容的MIME输出


简介

This module allows you to interact with » gnupg.

GnuPG
安装/配置
GnuPG


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
GnuPG


需求

The gnupg extension requires PHP 4.3. To use this extension in an OO style, PHP 5 is required.

This extension requires the » gpgme library

安装/配置
安装
安装/配置


安装

The gnupg-extension is not bundled with PHP. It is a » PECL extension and can be located here: » http://pecl.php.net/package/gnupg.

需求
运行时配置
安装/配置


预定义常量

GNUPG_SIG_MODE_NORMAL (integer)
GNUPG_SIG_MODE_DETACH (integer)
GNUPG_SIG_MODE_CLEAR (integer)
GNUPG_VALIDITY_UNKNOWN (integer)
GNUPG_VALIDITY_UNDEFINED (integer)
GNUPG_VALIDITY_NEVER (integer)
GNUPG_VALIDITY_MARGINAL (integer)
GNUPG_VALIDITY_FULL (integer)
GNUPG_VALIDITY_ULTIMATE (integer)
GNUPG_PROTOCOL_OpenPGP (integer)
GNUPG_PROTOCOL_CMS (integer)
GNUPG_SIGSUM_VALID (integer)
GNUPG_SIGSUM_GREEN (integer)
GNUPG_SIGSUM_RED (integer)
GNUPG_SIGSUM_KEY_REVOKED (integer)
GNUPG_SIGSUM_KEY_EXPIRED (integer)
GNUPG_SIGSUM_KEY_MISSING (integer)
GNUPG_SIGSUM_SIG_EXPIRED (integer)
GNUPG_SIGSUM_CRL_MISSING (integer)
GNUPG_SIGSUM_CRL_TOO_OLD (integer)
GNUPG_SIGSUM_BAD_POLICY (integer)
GNUPG_SIGSUM_SYS_ERROR (integer)
GNUPG_ERROR_WARNING (integer)
GNUPG_ERROR_EXCEPTION (integer)
GNUPG_ERROR_SILENT (integer)
资源类型
范例
GnuPG


范例

Table of Contents

  • Clearsign text
预定义常量
Clearsign text
GnuPG


Clearsign text

This example will clearsign a given text.

Example #1 gnupg clearsign example (procedural)

<?php
// init gnupg
$res = gnupg_init();
// not really needed. Clearsign is default
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = gnupg_sign($res,"just a test");
echo $signed;
?>

Example #2 gnupg clearsign example (OO)

<?php
// new class
$gnupg = new gnupg();
// not really needed. Clearsign is default
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = $gnupg->sign("just a test");
echo $signed;
?>

Example #3 keylistiterator

This extension also comes with an Iterator for your keyring.

<?php
// create a new iterator for listing all public keys that matches 'example'
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>
范例
GnuPG 函数
范例


GnuPG 函数

注释

This extension makes use of the keyring of the current user. This keyring is normally located in ~./.gnupg/. To specify a custom location, store the path to the keyring in the environment variable GNUPGHOME. See putenv for more information how to do this.

Some functions require the specification of a key. This specification can be anything that refers to a unique key (userid, key-id, fingerprint, ...). This documentation uses the fingerprint in all examples.

Table of Contents

  • gnupg_adddecryptkey — Add a key for decryption
  • gnupg_addencryptkey — Add a key for encryption
  • gnupg_addsignkey — Add a key for signing
  • gnupg_cleardecryptkeys — Removes all keys which were set for decryption before
  • gnupg_clearencryptkeys — Removes all keys which were set for encryption before
  • gnupg_clearsignkeys — Removes all keys which were set for signing before
  • gnupg_decrypt — Decrypts a given text
  • gnupg_decryptverify — Decrypts and verifies a given text
  • gnupg_encrypt — Encrypts a given text
  • gnupg_encryptsign — Encrypts and signs a given text
  • gnupg_export — Exports a key
  • gnupg_geterror — Returns the errortext, if a function fails
  • gnupg_getprotocol — Returns the currently active protocol for all operations
  • gnupg_import — Imports a key
  • gnupg_init — Initialize a connection
  • gnupg_keyinfo — Returns an array with information about all keys that matches the given pattern
  • gnupg_setarmor — Toggle armored output
  • gnupg_seterrormode — Sets the mode for error_reporting
  • gnupg_setsignmode — Sets the mode for signing
  • gnupg_sign — Signs a given text
  • gnupg_verify — Verifies a signed text
Clearsign text
gnupg_adddecryptkey
GnuPG


Add a key for decryption

GnuPG 函数
gnupg_addencryptkey
GnuPG 函数
PHP 手册

gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkey — Add a key for decryption

说明

bool gnupg_adddecryptkey ( resource $identifier , string $fingerprint , string $passphrase )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

fingerprint

The fingerprint key.

passphrase

The pass phrase.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_adddecryptkey() example

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Example #2 OO gnupg_adddecryptkey() example

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

GnuPG 函数
gnupg_addencryptkey
GnuPG 函数


Add a key for encryption

gnupg_adddecryptkey
gnupg_addsignkey
GnuPG 函数
PHP 手册

gnupg_addencryptkey

(PECL gnupg >= 0.5)

gnupg_addencryptkey — Add a key for encryption

说明

bool gnupg_addencryptkey ( resource $identifier , string $fingerprint )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

fingerprint

The fingerprint key.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_addencryptkey() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
?>

Example #2 OO gnupg_addencryptkey() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>

gnupg_adddecryptkey
gnupg_addsignkey
GnuPG 函数


Add a key for signing

gnupg_addencryptkey
gnupg_cleardecryptkeys
GnuPG 函数
PHP 手册

gnupg_addsignkey

(PECL gnupg >= 0.5)

gnupg_addsignkey — Add a key for signing

说明

bool gnupg_addsignkey ( resource $identifier , string $fingerprint [, string $passphrase ] )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

fingerprint

The fingerprint key.

passphrase

The pass phrase.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_addsignkey() example

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Example #2 OO gnupg_addsignkey() example

<?php
$gpg = new gnupg();
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

gnupg_addencryptkey
gnupg_cleardecryptkeys
GnuPG 函数


Removes all keys which were set for decryption before

gnupg_addsignkey
gnupg_clearencryptkeys
GnuPG 函数
PHP 手册

gnupg_cleardecryptkeys

(PECL gnupg >= 0.5)

gnupg_cleardecryptkeys — Removes all keys which were set for decryption before

说明

bool gnupg_cleardecryptkeys ( resource $identifier )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_cleardecryptkeys() example

<?php
$res = gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Example #2 OO gnupg_cleardecryptkeys() example

<?php
$gpg = new gnupg();
$gpg -> cleardecryptkeys();
?>

gnupg_addsignkey
gnupg_clearencryptkeys
GnuPG 函数


Removes all keys which were set for encryption before

gnupg_cleardecryptkeys
gnupg_clearsignkeys
GnuPG 函数
PHP 手册

gnupg_clearencryptkeys

(PECL gnupg >= 0.5)

gnupg_clearencryptkeys — Removes all keys which were set for encryption before

说明

bool gnupg_clearencryptkeys ( resource $identifier )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_clearencryptkeys() example

<?php
$res = gnupg_init();
gnupg_clearencryptkeys($res);
?>

Example #2 OO gnupg_clearencryptkeys() example

<?php
$gpg = new gnupg();
$gpg -> clearencryptkeys();
?>

gnupg_cleardecryptkeys
gnupg_clearsignkeys
GnuPG 函数


Removes all keys which were set for signing before

gnupg_clearencryptkeys
gnupg_decrypt
GnuPG 函数
PHP 手册

gnupg_clearsignkeys

(PECL gnupg >= 0.5)

gnupg_clearsignkeys — Removes all keys which were set for signing before

说明

bool gnupg_clearsignkeys ( resource $identifier )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_clearsignkeys() example

<?php
$res = gnupg_init();
gnupg_clearsignkeys($res);
?>

Example #2 OO gnupg_clearsignkeys() example

<?php
$gpg = new gnupg();
$gpg -> clearsignkeys();
?>

gnupg_clearencryptkeys
gnupg_decrypt
GnuPG 函数


Decrypts a given text

gnupg_clearsignkeys
gnupg_decryptverify
GnuPG 函数
PHP 手册

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decrypt — Decrypts a given text

说明

string gnupg_decrypt ( resource $identifier , string $text )

Decrypts the given text with the keys, which were set with gnupg_adddecryptkey before.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

text

The text being decrypted.

返回值

On success, this function returns the decrypted text. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_decrypt() example

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Example #2 OO gnupg_encrypt() example

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>

gnupg_clearsignkeys
gnupg_decryptverify
GnuPG 函数


Decrypts and verifies a given text

gnupg_decrypt
gnupg_encrypt
GnuPG 函数
PHP 手册

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Decrypts and verifies a given text

说明

array gnupg_decryptverify ( resource $identifier , string $text , string &$plaintext )

Decrypts and verifies a given text and returns information about the signature.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

text

The text being decrypted.

plaintext

The parameter plaintext gets filled with the decrypted text.

返回值

On success, this function returns information about the signature and fills the plaintext parameter with the decrypted text. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_decryptverify() example

<?php
$plaintext = "";
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = gnupg_decryptverify($res,$text,$plaintext);
print_r($info);
?>

Example #2 OO gnupg_decryptverify() example

<?php
$plaintext = "";
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = $gpg -> decryptverify($text,$plaintext);
print_r($info);
?>

gnupg_decrypt
gnupg_encrypt
GnuPG 函数


Encrypts a given text

gnupg_decryptverify
gnupg_encryptsign
GnuPG 函数
PHP 手册

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Encrypts a given text

说明

string gnupg_encrypt ( resource $identifier , string $plaintext )

Encrypts the given plaintext with the keys, which were set with gnupg_addencryptkey before and returns the encrypted text.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

plaintext

The text being encrypted.

返回值

On success, this function returns the encrypted text. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_encrypt() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>

Example #2 OO gnupg_encrypt() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>

gnupg_decryptverify
gnupg_encryptsign
GnuPG 函数


Encrypts and signs a given text

gnupg_encrypt
gnupg_export
GnuPG 函数
PHP 手册

gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsign — Encrypts and signs a given text

说明

string gnupg_encryptsign ( resource $identifier , string $plaintext )

Encrypts and signs the given plaintext with the keys, which were set with gnupg_addsignkey and gnupg_addencryptkey before and returns the encrypted and signed text.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

plaintext

The text being encrypted.

返回值

On success, this function returns the encrypted and signed text. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_encryptsign() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = gnupg_encryptsign($res, "just a test");
echo $enc;
?>

Example #2 OO gnupg_encryptsign() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = $gpg -> encryptsign("just a test");
echo $enc;
?>

gnupg_encrypt
gnupg_export
GnuPG 函数


Exports a key

gnupg_encryptsign
gnupg_geterror
GnuPG 函数
PHP 手册

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Exports a key

说明

string gnupg_export ( resource $identifier , string $fingerprint )

Exports the key fingerprint .

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

fingerprint

The fingerprint key.

返回值

On success, this function returns the keydata. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_export() example

<?php
$res = gnupg_init();
$export = gnupg_export($res,"8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Example #2 OO gnupg_export() example

<?php
$gpg = new gnupg();
$export = $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>

gnupg_encryptsign
gnupg_geterror
GnuPG 函数


Returns the errortext, if a function fails

gnupg_export
gnupg_getprotocol
GnuPG 函数
PHP 手册

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Returns the errortext, if a function fails

说明

string gnupg_geterror ( resource $identifier )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

返回值

Returns an errortext, if an error has occurred, otherwise FALSE.

范例

Example #1 Procedural gnupg_geterror() example

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Example #2 OO gnupg_geterror() example

<?php
$gpg = new gnupg();
echo $gpg -> geterror();
?>

gnupg_export
gnupg_getprotocol
GnuPG 函数


Returns the currently active protocol for all operations

gnupg_geterror
gnupg_import
GnuPG 函数
PHP 手册

gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocol — Returns the currently active protocol for all operations

说明

int gnupg_getprotocol ( resource $identifier )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

返回值

Returns the currently active protocol, which can be one of GNUPG_PROTOCOL_OpenPGP or GNUPG_PROTOCOL_CMS.

范例

Example #1 Procedural gnupg_getprotocol() example

<?php
$res = gnupg_init();
echo gnupg_getprotocol($res);
?>

Example #2 OO gnupg_getprotocol() example

<?php
$gpg = new gnupg();
echo $gpg -> getprotocol();
?>

gnupg_geterror
gnupg_import
GnuPG 函数


Imports a key

gnupg_getprotocol
gnupg_init
GnuPG 函数
PHP 手册

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Imports a key

说明

array gnupg_import ( resource $identifier , string $keydata )

Imports the key keydata and returns an array with information about the importprocess.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

keydata

The data key that is being imported.

返回值

On success, this function returns and info-array about the importprocess. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_import() example

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Example #2 OO gnupg_import() example

<?php
$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>

gnupg_getprotocol
gnupg_init
GnuPG 函数


Initialize a connection

gnupg_import
gnupg_keyinfo
GnuPG 函数
PHP 手册

gnupg_init

(PECL gnupg >= 0.4)

gnupg_init — Initialize a connection

说明

resource gnupg_init ( void )

参数

This function has no parameters.

返回值

A GnuPG resource connection used by other GnuPG functions.

范例

Example #1 Procedural gnupg_init() example

<?php
$res = gnupg_init();
?>

Example #2 OO gnupg initializer example

<?php
$gpg = new gnupg();
?>

gnupg_import
gnupg_keyinfo
GnuPG 函数


Returns an array with information about all keys that matches the given pattern

gnupg_init
gnupg_setarmor
GnuPG 函数
PHP 手册

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Returns an array with information about all keys that matches the given pattern

说明

array gnupg_keyinfo ( resource $identifier , string $pattern )

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

pattern

The pattern being checked against the keys.

返回值

Returns an array with information about all keys that matches the given pattern or FALSE, if an error has occurred.

范例

Example #1 Procedural gnupg_keyinfo() example

<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>

Example #2 OO gnupg_keyinfo() example

<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo("test");
print_r($info);
?>

gnupg_init
gnupg_setarmor
GnuPG 函数


Toggle armored output

gnupg_keyinfo
gnupg_seterrormode
GnuPG 函数
PHP 手册

gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmor — Toggle armored output

说明

bool gnupg_setarmor ( resource $identifier , int $armor )

Toggle the armored output.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

armor

Pass a non-zero integer-value to this function to enable armored-output (default). Pass 0 to disable armored output.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_setarmor() example

<?php
$res = gnupg_init();
gnupg_setarmor($res,1); // enable armored output;
gnupg_setarmor($res,0); // disable armored output;
?>

Example #2 OO gnupg_setarmor() example

<?php
$gpg = new gnupg();
$gpg -> setarmor(1); // enable armored output;
$gpg -> setarmor(0); // disable armored output;
?>

gnupg_keyinfo
gnupg_seterrormode
GnuPG 函数


Sets the mode for error_reporting

gnupg_setarmor
gnupg_setsignmode
GnuPG 函数
PHP 手册

gnupg_seterrormode

(PECL gnupg >= 0.6)

gnupg_seterrormode — Sets the mode for error_reporting

说明

void gnupg_seterrormode ( resource $identifier , int $errormode )

Sets the mode for error_reporting.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

errormode

The error mode.

errormode takes a constant indicating what type of error_reporting should be used. The possible values are GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION and GNUPG_ERROR_SILENT. By default GNUPG_ERROR_SILENT is used.

返回值

无返回值。

范例

Example #1 Procedural gnupg_seterrormode() example

<?php
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING); // raise a PHP-Warning in case of an error
?>

Example #2 OO gnupg_seterrormode() example

<?php
$gpg = new gnupg();
$gpg -> seterrormode(gnupg::ERROR_EXCEPTION); // throw an exception in case of an error
?>

gnupg_setarmor
gnupg_setsignmode
GnuPG 函数


Sets the mode for signing

gnupg_seterrormode
gnupg_sign
GnuPG 函数
PHP 手册

gnupg_setsignmode

(PECL gnupg >= 0.1)

gnupg_setsignmode — Sets the mode for signing

说明

bool gnupg_setsignmode ( resource $identifier , int $signmode )

Sets the mode for signing.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

sigmode

The mode for signing.

signmode takes a constant indicating what type of signature should be produced. The possible values are GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH and GNUPG_SIG_MODE_CLEAR. By default GNUPG_SIG_MODE_CLEAR is used.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Procedural gnupg_setsignmode() example

<?php
$res = gnupg_init();
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH); // produce a detached signature
?>

Example #2 OO gnupg_setsignmode() example

<?php
$gpg = new gnupg();
$gpg -> setsignmode(gnupg::SIG_MODE_DETACH); // produce a detached signature
?>

gnupg_seterrormode
gnupg_sign
GnuPG 函数


Signs a given text

gnupg_setsignmode
gnupg_verify
GnuPG 函数
PHP 手册

gnupg_sign

(PECL gnupg >= 0.1)

gnupg_sign — Signs a given text

说明

string gnupg_sign ( resource $identifier , string $plaintext )

Signs the given plaintext with the keys, which were set with gnupg_addsignkey before and returns the signed text or the signature, depending on what was set with gnupg_setsignmode.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

plaintext

The plain text being signed.

返回值

On success, this function returns the signed text or the signature. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_sign() example

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = gnupg_sign($res, "just a test");
echo $signed;
?>

Example #2 OO gnupg_sign() example

<?php
$gpg = new gnupg();
$gpg -> setsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg -> sign("just a test");
echo $signed;
?>

gnupg_setsignmode
gnupg_verify
GnuPG 函数


Verifies a signed text

gnupg_sign
haru
GnuPG 函数
PHP 手册

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Verifies a signed text

说明

array gnupg_verify ( resource $identifier , string $signed_text , string $signature [, string &$plaintext ] )

Verifies the given signed_text and returns information about the signature.

参数

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

signed_text

The signed text.

signature

The signature. To verify a clearsigned text, set signature to FALSE.

plaintext

The plain text. If this optional parameter is passed, it is filled with the plain text.

返回值

On success, this function returns information about the signature. On failure, this function returns FALSE.

范例

Example #1 Procedural gnupg_verify() example

<?php
$plaintext = "";
$res = gnupg_init();
// clearsigned
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

Example #2 OO gnupg_verify() example

<?php
$plaintext = "";
$gpg = new gnupg();
// clearsigned
$info = $gpg -> verify($signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = $gpg -> verify($signed_text,$signature);
print_r($info);
?>

gnupg_sign
haru
GnuPG 函数


Haru PDF

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic PECL/haru example
  • Builtin Fonts And Encodings
    • Builtin Fonts
    • Builtin Encodings
  • HaruException — The HaruException class
  • HaruDoc — The HaruDoc class
    • HaruDoc::addPage — Add new page to the document
    • HaruDoc::addPageLabel — Set the numbering style for the specified range of pages
    • HaruDoc::__construct — Construct new HaruDoc instance
    • HaruDoc::createOutline — Create a HaruOutline instance
    • HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document
    • HaruDoc::getCurrentPage — Return current page of the document
    • HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding
    • HaruDoc::getFont — Get HaruFont instance
    • HaruDoc::getInfoAttr — Get current value of the specified document attribute
    • HaruDoc::getPageLayout — Get current page layout
    • HaruDoc::getPageMode — Get current page mode
    • HaruDoc::getStreamSize — Get the size of the temporary stream
    • HaruDoc::insertPage — Insert new page just before the specified page
    • HaruDoc::loadJPEG — Load a JPEG image
    • HaruDoc::loadPNG — Load PNG image and return HaruImage instance
    • HaruDoc::loadRaw — Load a RAW image
    • HaruDoc::loadTTC — Load the font with the specified index from TTC file
    • HaruDoc::loadTTF — Load TTF font file
    • HaruDoc::loadType1 — Load Type1 font
    • HaruDoc::output — Write the document data to the output buffer
    • HaruDoc::readFromStream — Read data from the temporary stream
    • HaruDoc::resetError — Reset error state of the document handle
    • HaruDoc::resetStream — Rewind the temporary stream
    • HaruDoc::save — Save the document into the specified file
    • HaruDoc::saveToStream — Save the document into a temporary stream
    • HaruDoc::setCompressionMode — Set compression mode for the document
    • HaruDoc::setCurrentEncoder — Set the current encoder for the document
    • HaruDoc::setEncryptionMode — Set encryption mode for the document
    • HaruDoc::setInfoAttr — Set the info attribute of the document
    • HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document
    • HaruDoc::setOpenAction — Define which page is shown when the document is opened
    • HaruDoc::setPageLayout — Set how pages should be displayed
    • HaruDoc::setPageMode — Set how the document should be displayed
    • HaruDoc::setPagesConfiguration — Set the number of pages per set of pages
    • HaruDoc::setPassword — Set owner and user passwords for the document
    • HaruDoc::setPermission — Set permissions for the document
    • HaruDoc::useCNSEncodings — Enable Chinese simplified encodings
    • HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts
    • HaruDoc::useCNTEncodings — Enable Chinese traditional encodings
    • HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts
    • HaruDoc::useJPEncodings — Enable Japanese encodings
    • HaruDoc::useJPFonts — Enable builtin Japanese fonts
    • HaruDoc::useKREncodings — Enable Korean encodings
    • HaruDoc::useKRFonts — Enable builtin Korean fonts
  • HaruPage — The HaruPage class
    • HaruPage::arc — Append an arc to the current path
    • HaruPage::beginText — Begin a text object and set the current text position to (0,0)
    • HaruPage::circle — Append a circle to the current path
    • HaruPage::closePath — Append a straight line from the current point to the start point of the path
    • HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix
    • HaruPage::createDestination — Create new HaruDestination instance
    • HaruPage::createLinkAnnotation — Create new HaruAnnotation instance
    • HaruPage::createTextAnnotation — Create new HaruAnnotation instance
    • HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance
    • HaruPage::curveTo2 — Append a Bezier curve to the current path
    • HaruPage::curveTo3 — Append a Bezier curve to the current path
    • HaruPage::curveTo — Append a Bezier curve to the current path
    • HaruPage::drawImage — Show image at the page
    • HaruPage::ellipse — Append an ellipse to the current path
    • HaruPage::endPath — End current path object without filling and painting operations
    • HaruPage::endText — End current text object
    • HaruPage::eofill — Fill current path using even-odd rule
    • HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path
    • HaruPage::fill — Fill current path using nonzero winding number rule
    • HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path
    • HaruPage::getCharSpace — Get the current value of character spacing
    • HaruPage::getCMYKFill — Get the current filling color
    • HaruPage::getCMYKStroke — Get the current stroking color
    • HaruPage::getCurrentFont — Get the currently used font
    • HaruPage::getCurrentFontSize — Get the current font size
    • HaruPage::getCurrentPos — Get the current position for path painting
    • HaruPage::getCurrentTextPos — Get the current position for text printing
    • HaruPage::getDash — Get the current dash pattern
    • HaruPage::getFillingColorSpace — Get the current filling color space
    • HaruPage::getFlatness — Get the flatness of the page
    • HaruPage::getGMode — Get the current graphics mode
    • HaruPage::getGrayFill — Get the current filling color
    • HaruPage::getGrayStroke — Get the current stroking color
    • HaruPage::getHeight — Get the height of the page
    • HaruPage::getHorizontalScaling — Get the current value of horizontal scaling
    • HaruPage::getLineCap — Get the current line cap style
    • HaruPage::getLineJoin — Get the current line join style
    • HaruPage::getLineWidth — Get the current line width
    • HaruPage::getMiterLimit — Get the value of miter limit
    • HaruPage::getRGBFill — Get the current filling color
    • HaruPage::getRGBStroke — Get the current stroking color
    • HaruPage::getStrokingColorSpace — Get the current stroking color space
    • HaruPage::getTextLeading — Get the current value of line spacing
    • HaruPage::getTextMatrix — Get the current text transformation matrix of the page
    • HaruPage::getTextRenderingMode — Get the current text rendering mode
    • HaruPage::getTextRise — Get the current value of text rising
    • HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing
    • HaruPage::getTransMatrix — Get the current transformation matrix of the page
    • HaruPage::getWidth — Get the width of the page
    • HaruPage::getWordSpace — Get the current value of word spacing
    • HaruPage::lineTo — Draw a line from the current point to the specified point
    • HaruPage::measureText — Calculate the number of characters which can be included within the specified width
    • HaruPage::moveTextPos — Move text position to the specified offset
    • HaruPage::moveTo — Set starting point for new drawing path
    • HaruPage::moveToNextLine — Move text position to the start of the next line
    • HaruPage::rectangle — Append a rectangle to the current path
    • HaruPage::setCharSpace — Set character spacing for the page
    • HaruPage::setCMYKFill — Set filling color for the page
    • HaruPage::setCMYKStroke — Set stroking color for the page
    • HaruPage::setDash — Set the dash pattern for the page
    • HaruPage::setFlatness — Set flatness for the page
    • HaruPage::setFontAndSize — Set font and fontsize for the page
    • HaruPage::setGrayFill — Set filling color for the page
    • HaruPage::setGrayStroke — Sets stroking color for the page
    • HaruPage::setHeight — Set height of the page
    • HaruPage::setHorizontalScaling — Set horizontal scaling for the page
    • HaruPage::setLineCap — Set the shape to be used at the ends of lines
    • HaruPage::setLineJoin — Set line join style for the page
    • HaruPage::setLineWidth — Set line width for the page
    • HaruPage::setMiterLimit — Set the current value of the miter limit of the page
    • HaruPage::setRGBFill — Set filling color for the page
    • HaruPage::setRGBStroke — Set stroking color for the page
    • HaruPage::setRotate — Set rotation angle of the page
    • HaruPage::setSize — Set size and direction of the page
    • HaruPage::setSlideShow — Set transition style for the page
    • HaruPage::setTextLeading — Set text leading (line spacing) for the page
    • HaruPage::setTextMatrix — Set the current text transformation matrix of the page
    • HaruPage::setTextRenderingMode — Set text rendering mode for the page
    • HaruPage::setTextRise — Set the current value of text rising
    • HaruPage::setWidth — Set width of the page
    • HaruPage::setWordSpace — Set word spacing for the page
    • HaruPage::showText — Print text at the current position of the page
    • HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text
    • HaruPage::stroke — Paint current path
    • HaruPage::textOut — Print the text on the specified position
    • HaruPage::textRect — Print the text inside the specified region
  • HaruFont — The HaruFont class
    • HaruFont::getAscent — Get the vertical ascent of the font
    • HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters
    • HaruFont::getDescent — Get the vertical descent of the font
    • HaruFont::getEncodingName — Get the name of the encoding
    • HaruFont::getFontName — Get the name of the font
    • HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces
    • HaruFont::getUnicodeWidth — Get the width of the character in the font
    • HaruFont::getXHeight — Get the distance from the baseline of lowercase letters
    • HaruFont::measureText — Calculate the number of characters which can be included within the specified width
  • HaruImage — The HaruImage class
    • HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image
    • HaruImage::getColorSpace — Get the name of the color space
    • HaruImage::getHeight — Get the height of the image
    • HaruImage::getSize — Get size of the image
    • HaruImage::getWidth — Get the width of the image
    • HaruImage::setColorMask — Set the color mask of the image
    • HaruImage::setMaskImage — Set the image mask
  • HaruEncoder — The HaruEncoder class
    • HaruEncoder::getByteType — Get the type of the byte in the text
    • HaruEncoder::getType — Get the type of the encoder
    • HaruEncoder::getUnicode — Convert the specified character to unicode
    • HaruEncoder::getWritingMode — Get the writing mode of the encoder
  • HaruOutline — The HaruOutline class
    • HaruOutline::setDestination — Set the destination for the outline
    • HaruOutline::setOpened — Set the initial state of the outline
  • HaruAnnotation — The HaruAnnotation class
    • HaruAnnotation::setBorderStyle — Set the border style of the annotation
    • HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation
    • HaruAnnotation::setIcon — Set the icon style of the annotation
    • HaruAnnotation::setOpened — Set the initial state of the annotation
  • HaruDestination — The HaruDestination class
    • HaruDestination::setFit — Set the appearance of the page to fit the window
    • HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window
    • HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box
    • HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box
    • HaruDestination::setFitH — Set the appearance of the page to fit the window width
    • HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle
    • HaruDestination::setFitV — Set the appearance of the page to fit the window height
    • HaruDestination::setXYZ — Set the appearance of the page
gnupg_verify
简介
非文本内容的MIME输出


简介

The PECL/haru extension provides bindings to the libHaru library. libHaru is a free, cross platform, and Open Source library for generating PDF files.

The Haru library (libHaru) may be found here: » http://libharu.org.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

haru
安装/配置
haru


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
haru


需求

You need to install libharu first to be able to use PECL/haru. PECL/haru is tested with libharu 2.0.8, older versions might or might not work for you. PECL/haru also requires PHP 5.1.3 or newer.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/haru.

The latest PECL/haru Win32 DLL can be downloaded here: » php_haru.dll.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
haru


范例

Table of Contents

  • Basic PECL/haru example
预定义常量
Basic PECL/haru example
haru


Basic PECL/haru example

Example #1 Fancy "Hello world"

<?php

$doc = new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* show thumbnails */

$page = $doc->addPage(); /* add page to the document */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* set the page to use A4 landscape format */

$courier = $doc->getFont("Courier-Bold"); /* we'll use the bundled font a few lines below */

$page->setRGBStroke(0, 0, 0); /* set colors */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* draw a rectangle */

$page->fillStroke(); /* fill and stroke it */

$page->setDash(array(3, 3), 0); /* set dash style for lines at this page */
$page->setFontAndSize($courier, 60); /* set font and size */

$page->setRGBStroke(0.5, 0.5, 0.1); /* set line color */
$page->setRGBFill(1, 1, 1); /* set filling color */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* fill and stroke text */

/* print the text */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* save the document into a file */

?>

Open the result document in your favourite PDF viewer and you should see a light-blue rectangle and white "Hello World!" on it.

范例
Builtin Fonts And Encodings
范例


Builtin Fonts And Encodings

Table of Contents

  • Builtin Fonts
  • Builtin Encodings
Basic PECL/haru example
Builtin Fonts
haru


Builtin Fonts

These Base14 fonts are built-in into PDF and all viewers can display them. Using these fonts may decrease the size of the result file and make the processing faster, avoiding loading external fonts. However the fonts support only latin1 character set and you have to load external fonts if you need to use an other character set.

The Base14 fonts:

  • Courier

  • Courier-Bold

  • Courier-Oblique

  • Courier-BoldOblique

  • Helvetica

  • Helvetica-Bold

  • Helvetica-Oblique

  • Helvetica-BoldOblique

  • Times-Roman

  • Times-Bold

  • Times-Italic

  • Times-BoldItalic

  • Symbol

  • ZapfDingbats

Builtin Fonts And Encodings
Builtin Encodings
Builtin Fonts And Encodings


Builtin Encodings

Single-byte character set encodings
Name | Description
StandardEncoding | The default encoding of PDF.
MacRomanEncoding | The standard encoding of Mac OS.
WinAnsiEncoding | The standard encoding of Windows.
FontSpecific | The font built-in encoding.
ISO8859-2 | Latin2 (East European)
ISO8859-3 | Latin3 (South European)
ISO8859-4 | Latin4 (North European)
ISO8859-5 | Cyrillic
ISO8859-6 | Arabic
ISO8859-7 | Greek
ISO8859-8 | Hebrew
ISO8859-9 | Latin5 (Turkish)
ISO8859-10 | Latin6 (Nordic)
ISO8859-11 | Thai
ISO8859-13 | Latin7 (Baltic Rim)
ISO8859-14 | Latin8 (Celtic)
ISO8859-15 | Latin9
ISO8859-16 | Latin10
CP1250 | MS Windows Codepage 1250.
CP1251 | MS Windows Codepage 1251.
CP1252 | MS Windows Codepage 1252.
CP1253 | MS Windows Codepage 1253.
CP1254 | MS Windows Codepage 1254.
CP1255 | MS Windows Codepage 1255.
CP1256 | MS Windows Codepage 1256.
CP1257 | MS Windows Codepage 1257.
CP1258 | MS Windows Codepage 1258.
KOI8-R | Cyrillic character set.
Multi-byte character set encodings
Name | Description
GB-EUC-H | EUC-CN encoding.
GB-EUC-V | Vertical writing version of GB-EUC-H.
GBK-EUC-H | Microsoft Code Page 936 (lfCharSet 0x86) GBK encoding.
GBK-EUC-V | Vertical writing version of GBK-EUC-H.
ETen-B5-H | Microsoft Code Page 950 (lfCharSet 0x88) Big Five character set with ETen extensions.
ETen-B5-V | Vertical writing version of ETen-B5-H.
90ms-RKSJ-H | Microsoft Code Page 932, JIS X 0208 character.
90ms-RKSJ-V | Vertical writing version of 90ms-RKSJ-V.
90msp-RKSJ-H | Microsoft Code Page 932, JIS X 0208 character (proportional).
EUC-H | JIS X 0208 character set, EUC-JP encoding.
EUC-V | Vertical writing version of EUC-H.
KSC-EUC-H | KS X 1001:1992 character set, EUC-KR encoding.
KSC-EUC-V | Vertical writing version of KSC-EUC-V.
KSCms-UHC-H | Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 8822 additional hangul, Unified Hangul Code (UHC) encoding (proportional).
KSCms-UHC-HW-H | Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 8822 additional hangul, Unified Hangul Code (UHC) encoding (fixed width).
KSCms-UHC-HW-V | Vertical writing version of KSCms-UHC-HW-H.
Builtin Fonts
HaruException
Builtin Fonts And Encodings


The HaruException class

简介

Haru PDF Exception Class.

Class synopsis

HaruException
HaruException extends Exception {
/* Inherits */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
Builtin Encodings
HaruDoc
haru


The HaruDoc class

简介

Haru PDF Document Class.

Class synopsis

HaruDoc
HaruDoc {
/* Methods */
object addPage ( void )
bool addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix ] )
void __construct ( void )
object createOutline ( string $title [, object $parent_outline [, object $encoder ]] )
object getCurrentEncoder ( void )
object getCurrentPage ( void )
object getEncoder ( string $encoding )
object getFont ( string $fontname [, string $encoding ] )
string getInfoAttr ( int $type )
int getPageLayout ( void )
int getPageMode ( void )
int getStreamSize ( void )
object insertPage ( object $page )
object loadJPEG ( string $filename )
object loadPNG ( string $filename [, bool $deferred=false ] )
object loadRaw ( string $filename , int $width , int $height , int $color_space )
string loadTTC ( string $fontfile , int $index [, bool $embed=false ] )
string loadTTF ( string $fontfile [, bool $embed=false ] )
string loadType1 ( string $afmfile [, string $pfmfile ] )
bool output ( void )
string readFromStream ( int $bytes )
bool resetError ( void )
bool resetStream ( void )
bool save ( string $file )
bool saveToStream ( void )
bool setCompressionMode ( int $mode )
bool setCurrentEncoder ( string $encoding )
bool setEncryptionMode ( int $mode [, int $key_len=5 ] )
bool setInfoAttr ( int $type , string $info )
bool setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )
bool setOpenAction ( object $destination )
bool setPageLayout ( int $layout )
bool setPageMode ( int $mode )
bool setPagesConfiguration ( int $page_per_pages )
bool setPassword ( string $owner_password , string $user_password )
bool setPermission ( int $permission )
bool useCNSEncodings ( void )
bool useCNSFonts ( void )
bool useCNTEncodings ( void )
bool useCNTFonts ( void )
bool useJPEncodings ( void )
bool useJPFonts ( void )
bool useKREncodings ( void )
bool useKRFonts ( void )
}

预定义常量

Type | Name | Description
int | HaruDoc::CS_DEVICE_GRAY |
int | HaruDoc::CS_DEVICE_RGB |
int | HaruDoc::CS_DEVICE_CMYK |
int | HaruDoc::CS_CAL_GRAY |
int | HaruDoc::CS_CAL_RGB |
int | HaruDoc::CS_LAB |
int | HaruDoc::CS_ICC_BASED |
int | HaruDoc::CS_SEPARATION |
int | HaruDoc::CS_DEVICE_N |
int | HaruDoc::CS_INDEXED |
int | HaruDoc::CS_PATTERN |
int | HaruDoc::ENABLE_READ |
int | HaruDoc::ENABLE_PRINT |
int | HaruDoc::ENABLE_EDIT_ALL |
int | HaruDoc::ENABLE_COPY |
int | HaruDoc::ENABLE_EDIT |
int | HaruDoc::ENCRYPT_R2 |
int | HaruDoc::ENCRYPT_R3 |
int | HaruDoc::INFO_AUTHOR |
int | HaruDoc::INFO_CREATOR |
int | HaruDoc::INFO_TITLE |
int | HaruDoc::INFO_SUBJECT |
int | HaruDoc::INFO_KEYWORDS |
int | HaruDoc::INFO_CREATION_DATE |
int | HaruDoc::INFO_MOD_DATE |
int | HaruDoc::COMP_NONE |
int | HaruDoc::COMP_TEXT |
int | HaruDoc::COMP_IMAGE |
int | HaruDoc::COMP_METADATA |
int | HaruDoc::COMP_ALL |
int | HaruDoc::PAGE_LAYOUT_SINGLE |
int | HaruDoc::PAGE_LAYOUT_ONE_COLUMN |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT |
int | HaruDoc::PAGE_MODE_USE_NONE |
int | HaruDoc::PAGE_MODE_USE_OUTLINE |
int | HaruDoc::PAGE_MODE_USE_THUMBS |
int | HaruDoc::PAGE_MODE_FULL_SCREEN |

Table of Contents

  • HaruDoc::addPage — Add new page to the document
  • HaruDoc::addPageLabel — Set the numbering style for the specified range of pages
  • HaruDoc::__construct — Construct new HaruDoc instance
  • HaruDoc::createOutline — Create a HaruOutline instance
  • HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document
  • HaruDoc::getCurrentPage — Return current page of the document
  • HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding
  • HaruDoc::getFont — Get HaruFont instance
  • HaruDoc::getInfoAttr — Get current value of the specified document attribute
  • HaruDoc::getPageLayout — Get current page layout
  • HaruDoc::getPageMode — Get current page mode
  • HaruDoc::getStreamSize — Get the size of the temporary stream
  • HaruDoc::insertPage — Insert new page just before the specified page
  • HaruDoc::loadJPEG — Load a JPEG image
  • HaruDoc::loadPNG — Load PNG image and return HaruImage instance
  • HaruDoc::loadRaw — Load a RAW image
  • HaruDoc::loadTTC — Load the font with the specified index from TTC file
  • HaruDoc::loadTTF — Load TTF font file
  • HaruDoc::loadType1 — Load Type1 font
  • HaruDoc::output — Write the document data to the output buffer
  • HaruDoc::readFromStream — Read data from the temporary stream
  • HaruDoc::resetError — Reset error state of the document handle
  • HaruDoc::resetStream — Rewind the temporary stream
  • HaruDoc::save — Save the document into the specified file
  • HaruDoc::saveToStream — Save the document into a temporary stream
  • HaruDoc::setCompressionMode — Set compression mode for the document
  • HaruDoc::setCurrentEncoder — Set the current encoder for the document
  • HaruDoc::setEncryptionMode — Set encryption mode for the document
  • HaruDoc::setInfoAttr — Set the info attribute of the document
  • HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document
  • HaruDoc::setOpenAction — Define which page is shown when the document is opened
  • HaruDoc::setPageLayout — Set how pages should be displayed
  • HaruDoc::setPageMode — Set how the document should be displayed
  • HaruDoc::setPagesConfiguration — Set the number of pages per set of pages
  • HaruDoc::setPassword — Set owner and user passwords for the document
  • HaruDoc::setPermission — Set permissions for the document
  • HaruDoc::useCNSEncodings — Enable Chinese simplified encodings
  • HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts
  • HaruDoc::useCNTEncodings — Enable Chinese traditional encodings
  • HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts
  • HaruDoc::useJPEncodings — Enable Japanese encodings
  • HaruDoc::useJPFonts — Enable builtin Japanese fonts
  • HaruDoc::useKREncodings — Enable Korean encodings
  • HaruDoc::useKRFonts — Enable builtin Korean fonts
HaruException
HaruDoc::addPage
haru


Add new page to the document

HaruDoc
HaruDoc::addPageLabel
HaruDoc
PHP 手册

HaruDoc::addPage

(PECL haru >= 0.0.1)

HaruDoc::addPage — Add new page to the document

说明

object HaruDoc::addPage ( void )

Adds a new page to the document.

参数

This function has no parameters.

返回值

Returns a new HaruPage instance.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::insertPage()

HaruDoc
HaruDoc::addPageLabel
HaruDoc


Set the numbering style for the specified range of pages

HaruDoc::addPage
HaruDoc::__construct
HaruDoc
PHP 手册

HaruDoc::addPageLabel

(PECL haru >= 0.0.1)

HaruDoc::addPageLabel — Set the numbering style for the specified range of pages

说明

bool HaruDoc::addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix ] )

Set the numbering style for the specified range of pages.

参数

first_page

The first page included into the labeling range.

style

The numbering style. The following values are allowed:

  • HaruPage::NUM_STYLE_DECIMAL - page label is displayed using decimal numerals.
  • HaruPage::NUM_STYLE_UPPER_ROMAN - page label is displayed using uppercase Roman numerals.
  • HaruPage::NUM_STYLE_LOWER_ROMAN - page label is displayed using lowercase Roman numerals.
  • HaruPage::NUM_STYLE_UPPER_LETTER - page label is displayed using uppercase letters (from A to Z).
  • HaruPage::NUM_STYLE_LOWER_LETTERS - page label is displayed using lowercase letters (from a to z).

first_num

The first page number in this range.

prefix

The prefix for the page label. Optional, empty by default.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDoc::addPage
HaruDoc::__construct
HaruDoc


Construct new HaruDoc instance

HaruDoc::addPageLabel
HaruDoc::createOutline
HaruDoc
PHP 手册

HaruDoc::__construct

(PECL haru >= 0.0.1)

HaruDoc::__construct — Construct new HaruDoc instance

说明

void HaruDoc::__construct ( void )

Constructs new HaruDoc instance.

参数

This function has no parameters.

返回值

无返回值。

错误／异常

Throws HaruException on error.

HaruDoc::addPageLabel
HaruDoc::createOutline
HaruDoc


Create a HaruOutline instance

HaruDoc::__construct
HaruDoc::getCurrentEncoder
HaruDoc
PHP 手册

HaruDoc::createOutline

(PECL haru >= 0.0.1)

HaruDoc::createOutline — Create a HaruOutline instance

说明

object HaruDoc::createOutline ( string $title [, object $parent_outline [, object $encoder ]] )

Create a HaruOutline instance.

参数

title

The caption of new outline object.

parent_outline

A valid HaruOutline instance or NULL.

encoder

A valid HaruEncoder instance or NULL.

返回值

Returns a new HaruOutline instance.

错误／异常

Throws HaruException on error.

HaruDoc::__construct
HaruDoc::getCurrentEncoder
HaruDoc


Get HaruEncoder currently used in the document

HaruDoc::createOutline
HaruDoc::getCurrentPage
HaruDoc
PHP 手册

HaruDoc::getCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document

说明

object HaruDoc::getCurrentEncoder ( void )

Get the HaruEncoder currently used in the document.

参数

This function has no parameters.

返回值

Returns HaruEncoder currently used in the document or FALSE if encoder is not set.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setCurrentEncoder()

HaruDoc::createOutline
HaruDoc::getCurrentPage
HaruDoc


Return current page of the document

HaruDoc::getCurrentEncoder
HaruDoc::getEncoder
HaruDoc
PHP 手册

HaruDoc::getCurrentPage

(PECL haru >= 0.0.1)

HaruDoc::getCurrentPage — Return current page of the document

说明

object HaruDoc::getCurrentPage ( void )

Get current page of the document.

参数

This function has no parameters.

返回值

Returns HaruPage instance on success or FALSE if there is no current page at the moment.

错误／异常

Throws HaruException on error.

HaruDoc::getCurrentEncoder
HaruDoc::getEncoder
HaruDoc


Get HaruEncoder instance for the specified encoding

HaruDoc::getCurrentPage
HaruDoc::getFont
HaruDoc
PHP 手册

HaruDoc::getEncoder

(PECL haru >= 0.0.1)

HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding

说明

object HaruDoc::getEncoder ( string $encoding )

Get the HaruEncoder instance for the specified encoding.

参数

encoding

The encoding name. See Builtin Encodings for the list of allowed values.

返回值

Returns a HaruEncoder instance for the specified encoding.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setCurrentEncoder()
  • HaruDoc::getCurrentEncoder()

HaruDoc::getCurrentPage
HaruDoc::getFont
HaruDoc


Get HaruFont instance

HaruDoc::getEncoder
HaruDoc::getInfoAttr
HaruDoc
PHP 手册

HaruDoc::getFont

(PECL haru >= 0.0.1)

HaruDoc::getFont — Get HaruFont instance

说明

object HaruDoc::getFont ( string $fontname [, string $encoding ] )

Get a HaruFont instance.

参数

fontname

The name of the font. See Builtin Fonts for the list of builtin fonts. You can also use the name of a font loaded via HaruDoc::loadTTF(), HaruDoc::loadTTC() and HaruDoc::loadType1().

encoding

The encoding to use. See Builtin Encodings for the list of supported encodings.

返回值

Returns a HaruFont instance with the specified fontname and encoding .

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setFontAndSize()
  • HaruPage::getCurrentFont()

HaruDoc::getEncoder
HaruDoc::getInfoAttr
HaruDoc


Get current value of the specified document attribute

HaruDoc::getFont
HaruDoc::getPageLayout
HaruDoc
PHP 手册

HaruDoc::getInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::getInfoAttr — Get current value of the specified document attribute

说明

string HaruDoc::getInfoAttr ( int $type )

Get the current value of the specified document attribute.

参数

type

The type of the attribute. The following values are available:

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS
  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

返回值

Returns the string value of the specified document attribute.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setInfoAttr()
  • HaruDoc::setInfoDateAttr()

HaruDoc::getFont
HaruDoc::getPageLayout
HaruDoc


Get current page layout

HaruDoc::getInfoAttr
HaruDoc::getPageMode
HaruDoc
PHP 手册

HaruDoc::getPageLayout

(PECL haru >= 0.0.1)

HaruDoc::getPageLayout — Get current page layout

说明

int HaruDoc::getPageLayout ( void )

Get the current page layout. See HaruDoc::setPageLayout() for the list of possible values.

参数

This function has no parameters.

返回值

Returns the page layout currently set in the document or FALSE if page layout was not set. See HaruDoc::setPageLayout() for the list of possible values.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setPageLayout()

HaruDoc::getInfoAttr
HaruDoc::getPageMode
HaruDoc


Get current page mode

HaruDoc::getPageLayout
HaruDoc::getStreamSize
HaruDoc
PHP 手册

HaruDoc::getPageMode

(PECL haru >= 0.0.1)

HaruDoc::getPageMode — Get current page mode

说明

int HaruDoc::getPageMode ( void )

Get the current page mode. See HaruDoc::setPageMode() for the list of possible values.

参数

This function has no parameters.

返回值

Returns the page mode currently set in the document. See HaruDoc::setPageMode() for the list of possible values.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setPageMode()

HaruDoc::getPageLayout
HaruDoc::getStreamSize
HaruDoc


Get the size of the temporary stream

HaruDoc::getPageMode
HaruDoc::insertPage
HaruDoc
PHP 手册

HaruDoc::getStreamSize

(PECL haru >= 0.0.1)

HaruDoc::getStreamSize — Get the size of the temporary stream

说明

int HaruDoc::getStreamSize ( void )

Get the size of the temporary stream.

参数

This function has no parameters.

返回值

Returns the size of the data in the temporary stream of the document. The size is zero if the document was not saved to the temporary stream.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::saveToStream()
  • HaruDoc::resetStream()
  • HaruDoc::readFromStream()

HaruDoc::getPageMode
HaruDoc::insertPage
HaruDoc


Insert new page just before the specified page

HaruDoc::getStreamSize
HaruDoc::loadJPEG
HaruDoc
PHP 手册

HaruDoc::insertPage

(PECL haru >= 0.0.1)

HaruDoc::insertPage — Insert new page just before the specified page

说明

object HaruDoc::insertPage ( object $page )

Creates a new page and inserts just before the specified page.

参数

page

A valid HaruPage instance.

返回值

Returns a new HaruPage instance.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::addPage()

HaruDoc::getStreamSize
HaruDoc::loadJPEG
HaruDoc


Load a JPEG image

HaruDoc::insertPage
HaruDoc::loadPNG
HaruDoc
PHP 手册

HaruDoc::loadJPEG

(PECL haru >= 0.0.1)

HaruDoc::loadJPEG — Load a JPEG image

说明

object HaruDoc::loadJPEG ( string $filename )

Loads the specified JPEG image.

参数

filename

A valid JPEG image file.

返回值

Returns a new HaruImage instance.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::loadPNG()
  • HaruDoc::loadRAW()

HaruDoc::insertPage
HaruDoc::loadPNG
HaruDoc


Load PNG image and return HaruImage instance

HaruDoc::loadJPEG
HaruDoc::loadRaw
HaruDoc
PHP 手册

HaruDoc::loadPNG

(PECL haru >= 0.0.1)

HaruDoc::loadPNG — Load PNG image and return HaruImage instance

说明

object HaruDoc::loadPNG ( string $filename [, bool $deferred=false ] )

Loads a PNG image.

Libharu might be built without libpng support, in this case each call to this function would result in exception.

参数

filename

The name of a PNG image file.

deferred

Do not load data immediately. Defaults to FALSE. You can set deferred parameter to TRUE for deferred data loading, in this case only size and color are loaded immediately.

返回值

Returns a HaruImage instance.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::loadJPEG()
  • HaruDoc::loadRAW()

HaruDoc::loadJPEG
HaruDoc::loadRaw
HaruDoc


Load a RAW image

HaruDoc::loadPNG
HaruDoc::loadTTC
HaruDoc
PHP 手册

HaruDoc::loadRaw

(PECL haru >= 0.0.1)

HaruDoc::loadRaw — Load a RAW image

说明

object HaruDoc::loadRaw ( string $filename , int $width , int $height , int $color_space )

Loads a RAW image.

参数

filename

The name of a RAW image file.

width

The width of the image.

height

The height of the image.

color_space

The color space of the image. Can be one of the following values:

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK

返回值

Returns a HaruImage instance.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::loadJPEG()
  • HaruDoc::loadPNG()

HaruDoc::loadPNG
HaruDoc::loadTTC
HaruDoc


Load the font with the specified index from TTC file

HaruDoc::loadRaw
HaruDoc::loadTTF
HaruDoc
PHP 手册

HaruDoc::loadTTC

(PECL haru >= 0.0.1)

HaruDoc::loadTTC — Load the font with the specified index from TTC file

说明

string HaruDoc::loadTTC ( string $fontfile , int $index [, bool $embed=false ] )

Loads the TrueType font with the specified index from a TrueType collection file.

参数

fontfile

The TrueType collection file.

index

The index of the font in the collection file.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included. Defaults to FALSE.

返回值

Returns the name of the loaded font on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::loadTTF()
  • HaruDoc::loadType1()

HaruDoc::loadRaw
HaruDoc::loadTTF
HaruDoc


Load TTF font file

HaruDoc::loadTTC
HaruDoc::loadType1
HaruDoc
PHP 手册

HaruDoc::loadTTF

(PECL haru >= 0.0.1)

HaruDoc::loadTTF — Load TTF font file

说明

string HaruDoc::loadTTF ( string $fontfile [, bool $embed=false ] )

Loads the given TTF file and (optionally) embed its data into the document.

参数

fontfile

The TTF file to load.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included. Defaults to FALSE.

返回值

Returns the name of the loaded font on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::loadTTC()
  • HaruDoc::loadType1()

HaruDoc::loadTTC
HaruDoc::loadType1
HaruDoc


Load Type1 font

HaruDoc::loadTTF
HaruDoc::output
HaruDoc
PHP 手册

HaruDoc::loadType1

(PECL haru >= 0.0.1)

HaruDoc::loadType1 — Load Type1 font

说明

string HaruDoc::loadType1 ( string $afmfile [, string $pfmfile ] )

Loads Type1 font from the given file and registers it in the PDF document.

参数

afmfile

Path to an AFM file.

pfmfile

Path to a PFA/PFB file, optional. If it's not set only the glyph data of the font is embedded into the PDF document.

返回值

Returns the name of the loaded font on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::loadTTC()
  • HaruDoc::loadTTF()

HaruDoc::loadTTF
HaruDoc::output
HaruDoc


Write the document data to the output buffer

HaruDoc::loadType1
HaruDoc::readFromStream
HaruDoc
PHP 手册

HaruDoc::output

(PECL haru >= 0.0.1)

HaruDoc::output — Write the document data to the output buffer

说明

bool HaruDoc::output ( void )

Writes the document data into standard output.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::save()

HaruDoc::loadType1
HaruDoc::readFromStream
HaruDoc


Read data from the temporary stream

HaruDoc::output
HaruDoc::resetError
HaruDoc
PHP 手册

HaruDoc::readFromStream

(PECL haru >= 0.0.1)

HaruDoc::readFromStream — Read data from the temporary stream

说明

string HaruDoc::readFromStream ( int $bytes )

Read data from the temporary stream.

参数

bytes

The bytes parameter specifies how many bytes to read, though the stream may contain less bytes than requested.

返回值

Returns data from the temporary stream.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::saveToStream()
  • HaruDoc::resetStream()
  • HaruDoc::getStreamSize()

HaruDoc::output
HaruDoc::resetError
HaruDoc


Reset error state of the document handle

HaruDoc::readFromStream
HaruDoc::resetStream
HaruDoc
PHP 手册

HaruDoc::resetError

(PECL haru >= 0.0.1)

HaruDoc::resetError — Reset error state of the document handle

说明

bool HaruDoc::resetError ( void )

Once an error code is set, most of the operations, including I/O processing functions cannot be performed. In case if you want to continue after the cause of the error has been fixed, you have to invoke this function in order to reset the document error state.

参数

This function has no parameters.

返回值

Always succeeds and returns TRUE.

HaruDoc::readFromStream
HaruDoc::resetStream
HaruDoc


Rewind the temporary stream

HaruDoc::resetError
HaruDoc::save
HaruDoc
PHP 手册

HaruDoc::resetStream

(PECL haru >= 0.0.1)

HaruDoc::resetStream — Rewind the temporary stream

说明

bool HaruDoc::resetStream ( void )

Rewinds the temporary stream of the document.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::saveToStream()
  • HaruDoc::getStreamSize()
  • HaruDoc::readFromStream()

HaruDoc::resetError
HaruDoc::save
HaruDoc


Save the document into the specified file

HaruDoc::resetStream
HaruDoc::saveToStream
HaruDoc
PHP 手册

HaruDoc::save

(PECL haru >= 0.0.1)

HaruDoc::save — Save the document into the specified file

说明

bool HaruDoc::save ( string $file )

Saves the document into the specified file.

参数

file

The file to save the document to.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::output()

HaruDoc::resetStream
HaruDoc::saveToStream
HaruDoc


Save the document into a temporary stream

HaruDoc::save
HaruDoc::setCompressionMode
HaruDoc
PHP 手册

HaruDoc::saveToStream

(PECL haru >= 0.0.1)

HaruDoc::saveToStream — Save the document into a temporary stream

说明

bool HaruDoc::saveToStream ( void )

Saves the document data into a temporary stream.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::resetStream()
  • HaruDoc::getStreamSize()
  • HaruDoc::readFromStream()

HaruDoc::save
HaruDoc::setCompressionMode
HaruDoc


Set compression mode for the document

HaruDoc::saveToStream
HaruDoc::setCurrentEncoder
HaruDoc
PHP 手册

HaruDoc::setCompressionMode

(PECL haru >= 0.0.1)

HaruDoc::setCompressionMode — Set compression mode for the document

说明

bool HaruDoc::setCompressionMode ( int $mode )

Defines compression mode for the document. In case when libharu was compiled without Zlib support this function will always throw HaruException.

参数

mode

The compression mode to use. The value is a combination of the following flags:

  • HaruDoc::COMP_NONE - all contents is not compressed.
  • HaruDoc::COMP_TEXT - compress the text data.
  • HaruDoc::COMP_IMAGE - compress the image data.
  • HaruDoc::COMP_METADATA - compress other data (fonts, cmaps).
  • HaruDoc::COMP_ALL - compress all data.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDoc::saveToStream
HaruDoc::setCurrentEncoder
HaruDoc


Set the current encoder for the document

HaruDoc::setCompressionMode
HaruDoc::setEncryptionMode
HaruDoc
PHP 手册

HaruDoc::setCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::setCurrentEncoder — Set the current encoder for the document

说明

bool HaruDoc::setCurrentEncoder ( string $encoding )

Defines the encoder currently used in the document.

参数

encoding

The name of the encoding to use. See Builtin Encodings for the list of allowed values.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDoc::setCompressionMode
HaruDoc::setEncryptionMode
HaruDoc


Set encryption mode for the document

HaruDoc::setCurrentEncoder
HaruDoc::setInfoAttr
HaruDoc
PHP 手册

HaruDoc::setEncryptionMode

(PECL haru >= 0.0.1)

HaruDoc::setEncryptionMode — Set encryption mode for the document

说明

bool HaruDoc::setEncryptionMode ( int $mode [, int $key_len=5 ] )

Defines encryption mode for the document. The encryption mode cannot be set before setting the password.

参数

mode

The encryption mode to use. Can be one of the following:

  • HaruDoc::ENCRYPT_R2 - use "revision2" algorithm.
  • HaruDoc::ENCRYPT_R3 - use "revision3" algorithm. Using this value bumps the version of PDF to 1.4.

key_len

The encryption key length in bytes. This parameter is optional and used only when mode is HaruDoc::ENCRYPT_R3. The default value is 5 (40bit).

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setPassword()
  • HaruDoc::setPermission()

HaruDoc::setCurrentEncoder
HaruDoc::setInfoAttr
HaruDoc


Set the info attribute of the document

HaruDoc::setEncryptionMode
HaruDoc::setInfoDateAttr
HaruDoc
PHP 手册

HaruDoc::setInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoAttr — Set the info attribute of the document

说明

bool HaruDoc::setInfoAttr ( int $type , string $info )

Defines an info attribute. Uses the current encoding of the document.

参数

type

The type of the attribute. Can be one of the following:

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS

info

The value of the attribute.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setInfoDateAttr()

HaruDoc::setEncryptionMode
HaruDoc::setInfoDateAttr
HaruDoc


Set the datetime info attributes of the document

HaruDoc::setInfoAttr
HaruDoc::setOpenAction
HaruDoc
PHP 手册

HaruDoc::setInfoDateAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document

说明

bool HaruDoc::setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )

Sets the datetime info attributes of the document.

参数

type

The type of the attribute. Can be one of the following:

  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

year

month

Between 1 and 12.

day

Between 1 and 31, 30, 29 or 28 (different for each month).

hour

Between 0 and 23.

min

Between 0 and 59.

sec

Between 0 and 59.

ind

The timezone relation to UTC, can be "", " ", "+", "-" and "Z".

off_hour

If ind is not " " or "", values between 0 and 23 are valid. Otherwise, this parameter is ignored.

off_min

If ind is not " " or "", values between 0 and 59 are valid. Otherwise, this parameter is ignored.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setInfoAttr()

HaruDoc::setInfoAttr
HaruDoc::setOpenAction
HaruDoc


Define which page is shown when the document is opened

HaruDoc::setInfoDateAttr
HaruDoc::setPageLayout
HaruDoc
PHP 手册

HaruDoc::setOpenAction

(PECL haru >= 0.0.1)

HaruDoc::setOpenAction — Define which page is shown when the document is opened

说明

bool HaruDoc::setOpenAction ( object $destination )

Defines which page should be shown when the document is opened.

参数

destination

A valid HaruDestination instance.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDoc::setInfoDateAttr
HaruDoc::setPageLayout
HaruDoc


Set how pages should be displayed

HaruDoc::setOpenAction
HaruDoc::setPageMode
HaruDoc
PHP 手册

HaruDoc::setPageLayout

(PECL haru >= 0.0.1)

HaruDoc::setPageLayout — Set how pages should be displayed

说明

bool HaruDoc::setPageLayout ( int $layout )

Defines how pages should be displayed.

参数

layout

The following values are accepted:

  • HaruDoc::PAGE_LAYOUT_SINGLE - only one page is displayed.
  • HaruDoc::PAGE_LAYOUT_ONE_COLUMN - display the pages in one column.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT - display pages in two columns, first page left.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT - display pages in two columns, first page right.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::getPageLayout()

HaruDoc::setOpenAction
HaruDoc::setPageMode
HaruDoc


Set how the document should be displayed

HaruDoc::setPageLayout
HaruDoc::setPagesConfiguration
HaruDoc
PHP 手册

HaruDoc::setPageMode

(PECL haru >= 0.0.1)

HaruDoc::setPageMode — Set how the document should be displayed

说明

bool HaruDoc::setPageMode ( int $mode )

Defines how the document should be displayed.

参数

mode

The following values are accepted:

  • HaruDoc::PAGE_MODE_USE_NONE - display the document with neither outline nor thumbnail.
  • HaruDoc::PAGE_MODE_USE_OUTLINE - display the document with outline pane.
  • HaruDoc::PAGE_MODE_USE_THUMBS - display the document with thumbnail pane.
  • HaruDoc::PAGE_MODE_FULL_SCREEN - display the document with full screen mode.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::getPageMode()

HaruDoc::setPageLayout
HaruDoc::setPagesConfiguration
HaruDoc


Set the number of pages per set of pages

HaruDoc::setPageMode
HaruDoc::setPassword
HaruDoc
PHP 手册

HaruDoc::setPagesConfiguration

(PECL haru >= 0.0.1)

HaruDoc::setPagesConfiguration — Set the number of pages per set of pages

说明

bool HaruDoc::setPagesConfiguration ( int $page_per_pages )

By default the document has one pages object as a root for all pages. All page objects are create as branches of this object. One pages object can contain only 8191, therefore the maximum number of pages per document is 8191. But you can change that fact by setting page_per_pages parameter, so that the root pages object contains 8191 more pages (not page) objects, which in turn contain 8191 pages each. So the maximum number of pages in the document becomes 8191*page_per_pages .

参数

page_per_pages

The numbers of pages that a pages object can contain.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDoc::setPageMode
HaruDoc::setPassword
HaruDoc


Set owner and user passwords for the document

HaruDoc::setPagesConfiguration
HaruDoc::setPermission
HaruDoc
PHP 手册

HaruDoc::setPassword

(PECL haru >= 0.0.1)

HaruDoc::setPassword — Set owner and user passwords for the document

说明

bool HaruDoc::setPassword ( string $owner_password , string $user_password )

Defines owner and user passwords for the document. Setting the passwords makes the document contents encrypted.

参数

owner_password

The password of the owner, which can change permissions of the document. Empty password is not accepted. Owner's password cannot be the same as the user's password.

user_password

The password of the user. Can be empty.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setEncryptionMode()
  • HaruDoc::setPermission()

HaruDoc::setPagesConfiguration
HaruDoc::setPermission
HaruDoc


Set permissions for the document

HaruDoc::setPassword
HaruDoc::useCNSEncodings
HaruDoc
PHP 手册

HaruDoc::setPermission

(PECL haru >= 0.0.1)

HaruDoc::setPermission — Set permissions for the document

说明

bool HaruDoc::setPermission ( int $permission )

Defines permissions for the document.

参数

permission

The values is a combination of these flags:

  • HaruDoc::ENABLE_READ - user can read the document.
  • HaruDoc::ENABLE_PRINT - user can print the document.
  • HaruDoc::ENABLE_EDIT_ALL - user can edit the contents of the document other than annotations and form fields.
  • HaruDoc::ENABLE_COPY - user can copy the text and the graphics of the document.
  • HaruDoc::ENABLE_EDIT - user can add or modify the annotations and form fields of the document.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::setPassword()
  • HaruDoc::setEncryptionMode()

HaruDoc::setPassword
HaruDoc::useCNSEncodings
HaruDoc


Enable Chinese simplified encodings

HaruDoc::setPermission
HaruDoc::useCNSFonts
HaruDoc
PHP 手册

HaruDoc::useCNSEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNSEncodings — Enable Chinese simplified encodings

说明

bool HaruDoc::useCNSEncodings ( void )

Enables Chinese simplified encodings.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useCNSFonts()

HaruDoc::setPermission
HaruDoc::useCNSFonts
HaruDoc


Enable builtin Chinese simplified fonts

HaruDoc::useCNSEncodings
HaruDoc::useCNTEncodings
HaruDoc
PHP 手册

HaruDoc::useCNSFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts

说明

bool HaruDoc::useCNSFonts ( void )

Enables builtin Chinese simplified fonts.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useCNSEncodings()

HaruDoc::useCNSEncodings
HaruDoc::useCNTEncodings
HaruDoc


Enable Chinese traditional encodings

HaruDoc::useCNSFonts
HaruDoc::useCNTFonts
HaruDoc
PHP 手册

HaruDoc::useCNTEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNTEncodings — Enable Chinese traditional encodings

说明

bool HaruDoc::useCNTEncodings ( void )

Enables Chinese traditional encodings.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useCNTFonts()

HaruDoc::useCNSFonts
HaruDoc::useCNTFonts
HaruDoc


Enable builtin Chinese traditional fonts

HaruDoc::useCNTEncodings
HaruDoc::useJPEncodings
HaruDoc
PHP 手册

HaruDoc::useCNTFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts

说明

bool HaruDoc::useCNTFonts ( void )

Enables builtin Chinese traditional fonts.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useCNTEncodings()

HaruDoc::useCNTEncodings
HaruDoc::useJPEncodings
HaruDoc


Enable Japanese encodings

HaruDoc::useCNTFonts
HaruDoc::useJPFonts
HaruDoc
PHP 手册

HaruDoc::useJPEncodings

(PECL haru >= 0.0.1)

HaruDoc::useJPEncodings — Enable Japanese encodings

说明

bool HaruDoc::useJPEncodings ( void )

Enables Japanese encodings.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useJPFonts()

HaruDoc::useCNTFonts
HaruDoc::useJPFonts
HaruDoc


Enable builtin Japanese fonts

HaruDoc::useJPEncodings
HaruDoc::useKREncodings
HaruDoc
PHP 手册

HaruDoc::useJPFonts

(PECL haru >= 0.0.1)

HaruDoc::useJPFonts — Enable builtin Japanese fonts

说明

bool HaruDoc::useJPFonts ( void )

Enables builtin Japanese fonts.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useJPEncodings()

HaruDoc::useJPEncodings
HaruDoc::useKREncodings
HaruDoc


Enable Korean encodings

HaruDoc::useJPFonts
HaruDoc::useKRFonts
HaruDoc
PHP 手册

HaruDoc::useKREncodings

(PECL haru >= 0.0.1)

HaruDoc::useKREncodings — Enable Korean encodings

说明

bool HaruDoc::useKREncodings ( void )

Enables Korean encodings.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useKRFonts()

HaruDoc::useJPFonts
HaruDoc::useKRFonts
HaruDoc


Enable builtin Korean fonts

HaruDoc::useKREncodings
HaruPage
HaruDoc
PHP 手册

HaruDoc::useKRFonts

(PECL haru >= 0.0.1)

HaruDoc::useKRFonts — Enable builtin Korean fonts

说明

bool HaruDoc::useKRFonts ( void )

Enables builtin Korean fonts.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::useKREncodings()

HaruDoc::useKREncodings
HaruPage
HaruDoc


The HaruPage class

简介

Haru PDF Page Class.

Class synopsis

HaruPage
HaruPage {
/* Methods */
bool arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )
bool beginText ( void )
bool circle ( float $x , float $y , float $ray )
bool closePath ( void )
bool concat ( float $a , float $b , float $c , float $d , float $x , float $y )
object createDestination ( void )
object createLinkAnnotation ( array $rectangle , object $destination )
object createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )
object createURLAnnotation ( array $rectangle , string $url )
bool curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )
bool curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )
bool curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
bool drawImage ( object $image , float $x , float $y , float $width , float $height )
bool ellipse ( float $x , float $y , float $xray , float $yray )
bool endPath ( void )
bool endText ( void )
bool eofill ( void )
bool eoFillStroke ([ bool $close_path=false ] )
bool fill ( void )
bool fillStroke ([ bool $close_path=false ] )
float getCharSpace ( void )
array getCMYKFill ( void )
array getCMYKStroke ( void )
object getCurrentFont ( void )
float getCurrentFontSize ( void )
array getCurrentPos ( void )
array getCurrentTextPos ( void )
array getDash ( void )
int getFillingColorSpace ( void )
float getFlatness ( void )
int getGMode ( void )
float getGrayFill ( void )
float getGrayStroke ( void )
float getHeight ( void )
float getHorizontalScaling ( void )
int getLineCap ( void )
int getLineJoin ( void )
float getLineWidth ( void )
float getMiterLimit ( void )
array getRGBFill ( void )
array getRGBStroke ( void )
int getStrokingColorSpace ( void )
float getTextLeading ( void )
array getTextMatrix ( void )
int getTextRenderingMode ( void )
float getTextRise ( void )
float getTextWidth ( string $text )
array getTransMatrix ( void )
float getWidth ( void )
float getWordSpace ( void )
bool lineTo ( float $x , float $y )
int measureText ( string $text , float $width [, bool $wordwrap=false ] )
bool moveTextPos ( float $x , float $y [, bool $set_leading=false ] )
bool moveTo ( float $x , float $y )
bool moveToNextLine ( void )
bool rectangle ( float $x , float $y , float $width , float $height )
bool setCharSpace ( float $char_space )
bool setCMYKFill ( float $c , float $m , float $y , float $k )
bool setCMYKStroke ( float $c , float $m , float $y , float $k )
bool setDash ( array $pattern , int $phase )
bool setFlatness ( float $flatness )
bool setFontAndSize ( object $font , float $size )
bool setGrayFill ( float $value )
bool setGrayStroke ( float $value )
bool setHeight ( float $height )
bool setHorizontalScaling ( float $scaling )
bool setLineCap ( int $cap )
bool setLineJoin ( int $join )
bool setLineWidth ( float $width )
bool setMiterLimit ( float $limit )
bool setRGBFill ( float $r , float $g , float $b )
bool setRGBStroke ( float $r , float $g , float $b )
bool setRotate ( int $angle )
bool setSize ( int $size , int $direction )
bool setSlideShow ( int $type , float $disp_time , float $trans_time )
bool setTextLeading ( float $text_leading )
bool setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
bool setTextRenderingMode ( int $mode )
bool setTextRise ( float $rise )
bool setWidth ( float $width )
bool setWordSpace ( float $word_space )
bool showText ( string $text )
bool showTextNextLine ( string $text [, float $word_space [, float $char_space ]] )
bool stroke ([ bool $close_path=false ] )
bool textOut ( float $x , float $y , string $text )
bool textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align=HaruPage::TALIGN_LEFT ] )
}

预定义常量

Type | Name | Description
int | HaruPage::GMODE_PAGE_DESCRIPTION |
int | HaruPage::GMODE_TEXT_OBJECT |
int | HaruPage::GMODE_PATH_OBJECT |
int | HaruPage::GMODE_CLIPPING_PATH |
int | HaruPage::GMODE_SHADING |
int | HaruPage::GMODE_INLINE_IMAGE |
int | HaruPage::GMODE_EXTERNAL_OBJECT |
int | HaruPage::BUTT_END |
int | HaruPage::ROUND_END |
int | HaruPage::PROJECTING_SCUARE_END |
int | HaruPage::MITER_JOIN |
int | HaruPage::ROUND_JOIN |
int | HaruPage::BEVEL_JOIN |
int | HaruPage::FILL |
int | HaruPage::STROKE |
int | HaruPage::FILL_THEN_STROKE |
int | HaruPage::INVISIBLE |
int | HaruPage::FILL_CLIPPING |
int | HaruPage::STROKE_CLIPPING |
int | HaruPage::FILL_STROKE_CLIPPING |
int | HaruPage::CLIPPING |
int | HaruPage::TALIGN_LEFT |
int | HaruPage::TALIGN_RIGHT |
int | HaruPage::TALIGN_CENTER |
int | HaruPage::TALIGN_JUSTIFY |
int | HaruPage::SIZE_LETTER |
int | HaruPage::SIZE_LEGAL |
int | HaruPage::SIZE_A3 |
int | HaruPage::SIZE_A4 |
int | HaruPage::SIZE_A5 |
int | HaruPage::SIZE_B4 |
int | HaruPage::SIZE_B5 |
int | HaruPage::SIZE_EXECUTIVE |
int | HaruPage::SIZE_US4x6 |
int | HaruPage::SIZE_US4x8 |
int | HaruPage::SIZE_US5x7 |
int | HaruPage::SIZE_COMM10 |
int | HaruPage::PORTRAIT |
int | HaruPage::LANDSCAPE |
int | HaruPage::TS_WIPE_LIGHT |
int | HaruPage::TS_WIPE_UP |
int | HaruPage::TS_WIPE_LEFT |
int | HaruPage::TS_WIPE_DOWN |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_IN |
int | HaruPage::TS_BARN_DOORS_VERTICAL_OUT |
int | HaruPage::TS_BARN_DOORS_VERTICAL_IN |
int | HaruPage::TS_BOX_OUT |
int | HaruPage::TS_BOX_IN |
int | HaruPage::TS_BLINDS_HORIZONTAL |
int | HaruPage::TS_BLINDS_VERTICAL |
int | HaruPage::TS_DISSOLVE |
int | HaruPage::TS_GLITTER_RIGHT |
int | HaruPage::TS_GLITTER_DOWN |
int | HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT |
int | HaruPage::TS_REPLACE |
int | HaruPage::NUM_STYLE_DECIMAL |
int | HaruPage::NUM_STYLE_UPPER_ROMAN |
int | HaruPage::NUM_STYLE_LOWER_ROMAN |
int | HaruPage::NUM_STYLE_UPPER_LETTERS |
int | HaruPage::NUM_STYLE_LOWER_LETTERS |

Table of Contents

  • HaruPage::arc — Append an arc to the current path
  • HaruPage::beginText — Begin a text object and set the current text position to (0,0)
  • HaruPage::circle — Append a circle to the current path
  • HaruPage::closePath — Append a straight line from the current point to the start point of the path
  • HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix
  • HaruPage::createDestination — Create new HaruDestination instance
  • HaruPage::createLinkAnnotation — Create new HaruAnnotation instance
  • HaruPage::createTextAnnotation — Create new HaruAnnotation instance
  • HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance
  • HaruPage::curveTo2 — Append a Bezier curve to the current path
  • HaruPage::curveTo3 — Append a Bezier curve to the current path
  • HaruPage::curveTo — Append a Bezier curve to the current path
  • HaruPage::drawImage — Show image at the page
  • HaruPage::ellipse — Append an ellipse to the current path
  • HaruPage::endPath — End current path object without filling and painting operations
  • HaruPage::endText — End current text object
  • HaruPage::eofill — Fill current path using even-odd rule
  • HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path
  • HaruPage::fill — Fill current path using nonzero winding number rule
  • HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path
  • HaruPage::getCharSpace — Get the current value of character spacing
  • HaruPage::getCMYKFill — Get the current filling color
  • HaruPage::getCMYKStroke — Get the current stroking color
  • HaruPage::getCurrentFont — Get the currently used font
  • HaruPage::getCurrentFontSize — Get the current font size
  • HaruPage::getCurrentPos — Get the current position for path painting
  • HaruPage::getCurrentTextPos — Get the current position for text printing
  • HaruPage::getDash — Get the current dash pattern
  • HaruPage::getFillingColorSpace — Get the current filling color space
  • HaruPage::getFlatness — Get the flatness of the page
  • HaruPage::getGMode — Get the current graphics mode
  • HaruPage::getGrayFill — Get the current filling color
  • HaruPage::getGrayStroke — Get the current stroking color
  • HaruPage::getHeight — Get the height of the page
  • HaruPage::getHorizontalScaling — Get the current value of horizontal scaling
  • HaruPage::getLineCap — Get the current line cap style
  • HaruPage::getLineJoin — Get the current line join style
  • HaruPage::getLineWidth — Get the current line width
  • HaruPage::getMiterLimit — Get the value of miter limit
  • HaruPage::getRGBFill — Get the current filling color
  • HaruPage::getRGBStroke — Get the current stroking color
  • HaruPage::getStrokingColorSpace — Get the current stroking color space
  • HaruPage::getTextLeading — Get the current value of line spacing
  • HaruPage::getTextMatrix — Get the current text transformation matrix of the page
  • HaruPage::getTextRenderingMode — Get the current text rendering mode
  • HaruPage::getTextRise — Get the current value of text rising
  • HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing
  • HaruPage::getTransMatrix — Get the current transformation matrix of the page
  • HaruPage::getWidth — Get the width of the page
  • HaruPage::getWordSpace — Get the current value of word spacing
  • HaruPage::lineTo — Draw a line from the current point to the specified point
  • HaruPage::measureText — Calculate the number of characters which can be included within the specified width
  • HaruPage::moveTextPos — Move text position to the specified offset
  • HaruPage::moveTo — Set starting point for new drawing path
  • HaruPage::moveToNextLine — Move text position to the start of the next line
  • HaruPage::rectangle — Append a rectangle to the current path
  • HaruPage::setCharSpace — Set character spacing for the page
  • HaruPage::setCMYKFill — Set filling color for the page
  • HaruPage::setCMYKStroke — Set stroking color for the page
  • HaruPage::setDash — Set the dash pattern for the page
  • HaruPage::setFlatness — Set flatness for the page
  • HaruPage::setFontAndSize — Set font and fontsize for the page
  • HaruPage::setGrayFill — Set filling color for the page
  • HaruPage::setGrayStroke — Sets stroking color for the page
  • HaruPage::setHeight — Set height of the page
  • HaruPage::setHorizontalScaling — Set horizontal scaling for the page
  • HaruPage::setLineCap — Set the shape to be used at the ends of lines
  • HaruPage::setLineJoin — Set line join style for the page
  • HaruPage::setLineWidth — Set line width for the page
  • HaruPage::setMiterLimit — Set the current value of the miter limit of the page
  • HaruPage::setRGBFill — Set filling color for the page
  • HaruPage::setRGBStroke — Set stroking color for the page
  • HaruPage::setRotate — Set rotation angle of the page
  • HaruPage::setSize — Set size and direction of the page
  • HaruPage::setSlideShow — Set transition style for the page
  • HaruPage::setTextLeading — Set text leading (line spacing) for the page
  • HaruPage::setTextMatrix — Set the current text transformation matrix of the page
  • HaruPage::setTextRenderingMode — Set text rendering mode for the page
  • HaruPage::setTextRise — Set the current value of text rising
  • HaruPage::setWidth — Set width of the page
  • HaruPage::setWordSpace — Set word spacing for the page
  • HaruPage::showText — Print text at the current position of the page
  • HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text
  • HaruPage::stroke — Paint current path
  • HaruPage::textOut — Print the text on the specified position
  • HaruPage::textRect — Print the text inside the specified region
HaruDoc::useKRFonts
HaruPage::arc
haru


Append an arc to the current path

HaruPage
HaruPage::beginText
HaruPage
PHP 手册

HaruPage::arc

(PECL haru >= 0.0.1)

HaruPage::arc — Append an arc to the current path

说明

bool HaruPage::arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )

Appends an arc to the current path.

参数

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

ray

The ray of the arc.

ang1

The angle of the beginning.

ang2

The angle of the end. Must be greater than ang1 .

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage
HaruPage::beginText
HaruPage


Begin a text object and set the current text position to (0,0)

HaruPage::arc
HaruPage::circle
HaruPage
PHP 手册

HaruPage::beginText

(PECL haru >= 0.0.1)

HaruPage::beginText — Begin a text object and set the current text position to (0,0)

说明

bool HaruPage::beginText ( void )

Begins new text object and sets the current text position to (0,0).

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::arc
HaruPage::circle
HaruPage


Append a circle to the current path

HaruPage::beginText
HaruPage::closePath
HaruPage
PHP 手册

HaruPage::circle

(PECL haru >= 0.0.1)

HaruPage::circle — Append a circle to the current path

说明

bool HaruPage::circle ( float $x , float $y , float $ray )

Appends a circle to the current path.

参数

x

Horizontal coordinate of the center point.

y

Vertical coordinate of the center point.

ray

The ray of the circle.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::beginText
HaruPage::closePath
HaruPage


Append a straight line from the current point to the start point of the path

HaruPage::circle
HaruPage::concat
HaruPage
PHP 手册

HaruPage::closePath

(PECL haru >= 0.0.1)

HaruPage::closePath — Append a straight line from the current point to the start point of the path

说明

bool HaruPage::closePath ( void )

Appends a straight line from the current point to the start point of the path.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::circle
HaruPage::concat
HaruPage


Concatenate current transformation matrix of the page and the specified matrix

HaruPage::closePath
HaruPage::createDestination
HaruPage
PHP 手册

HaruPage::concat

(PECL haru >= 0.0.1)

HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix

说明

bool HaruPage::concat ( float $a , float $b , float $c , float $d , float $x , float $y )

Concatenates current transformation matrix of the page and the specified matrix.

参数

a

b

c

d

x

y

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::closePath
HaruPage::createDestination
HaruPage


Create new HaruDestination instance

HaruPage::concat
HaruPage::createLinkAnnotation
HaruPage
PHP 手册

HaruPage::createDestination

(PECL haru >= 0.0.1)

HaruPage::createDestination — Create new HaruDestination instance

说明

object HaruPage::createDestination ( void )

Create a new HaruDestination instance.

参数

This function has no parameters.

返回值

Returns a new HaruDestination instance.

错误／异常

Throws HaruException on error.

HaruPage::concat
HaruPage::createLinkAnnotation
HaruPage


Create new HaruAnnotation instance

HaruPage::createDestination
HaruPage::createTextAnnotation
HaruPage
PHP 手册

HaruPage::createLinkAnnotation

(PECL haru >= 0.0.1)

HaruPage::createLinkAnnotation — Create new HaruAnnotation instance

说明

object HaruPage::createLinkAnnotation ( array $rectangle , object $destination )

Creates a new HaruAnnotation instance.

参数

rectangle

An array with 4 coordinates of the clickable area.

destination

Valid HaruDestination instance.

返回值

Returns a new HaruAnnotation instance.

错误／异常

Throws HaruException on error.

HaruPage::createDestination
HaruPage::createTextAnnotation
HaruPage


Create new HaruAnnotation instance

HaruPage::createLinkAnnotation
HaruPage::createURLAnnotation
HaruPage
PHP 手册

HaruPage::createTextAnnotation

(PECL haru >= 0.0.1)

HaruPage::createTextAnnotation — Create new HaruAnnotation instance

说明

object HaruPage::createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )

Creates a new HaruAnnotation instance.

参数

rectangle

An array with 4 coordinates of the annotation area.

text

The text to be displayed.

encoder

Optional HaruEncoder instance.

返回值

Returns a new HaruAnnotation instance.

错误／异常

Throws HaruException on error.

HaruPage::createLinkAnnotation
HaruPage::createURLAnnotation
HaruPage


Create and return new HaruAnnotation instance

HaruPage::createTextAnnotation
HaruPage::curveTo2
HaruPage
PHP 手册

HaruPage::createURLAnnotation

(PECL haru >= 0.0.1)

HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance

说明

object HaruPage::createURLAnnotation ( array $rectangle , string $url )

Creates a new HaruAnnotation instance.

参数

rectangle

An array with 4 coordinates of the clickable area.

url

The URL to open.

返回值

Returns a new HaruAnnotation instance.

错误／异常

Throws HaruException on error.

HaruPage::createTextAnnotation
HaruPage::curveTo2
HaruPage


Append a Bezier curve to the current path

HaruPage::createURLAnnotation
HaruPage::curveTo3
HaruPage
PHP 手册

HaruPage::curveTo2

(PECL haru >= 0.0.1)

HaruPage::curveTo2 — Append a Bezier curve to the current path

说明

bool HaruPage::curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )

Appends a Bezier curve to the current path. The current point and the point (x2, y2) are used as the control points for the Bezier curve and current point is moved to the point (x3, y3).

参数

x2

A Bezier curve control point.

y2

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::createURLAnnotation
HaruPage::curveTo3
HaruPage


Append a Bezier curve to the current path

HaruPage::curveTo2
HaruPage::curveTo
HaruPage
PHP 手册

HaruPage::curveTo3

(PECL haru >= 0.0.1)

HaruPage::curveTo3 — Append a Bezier curve to the current path

说明

bool HaruPage::curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )

Appends a Bezier curve to the current path. The point (x1, y1) and the point (x3, y3) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

参数

x1

A Bezier curve control point.

y1

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::curveTo2
HaruPage::curveTo
HaruPage


Append a Bezier curve to the current path

HaruPage::curveTo3
HaruPage::drawImage
HaruPage
PHP 手册

HaruPage::curveTo

(PECL haru >= 0.0.1)

HaruPage::curveTo — Append a Bezier curve to the current path

说明

bool HaruPage::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Append a Bezier curve to the current path. The point (x1, y1) and the point (x2, y2) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

参数

x1

A Bezier curve control point.

y1

A Bezier curve control point.

x2

A Bezier curve control point.

y2

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::curveTo3
HaruPage::drawImage
HaruPage


Show image at the page

HaruPage::curveTo
HaruPage::ellipse
HaruPage
PHP 手册

HaruPage::drawImage

(PECL haru >= 0.0.1)

HaruPage::drawImage — Show image at the page

说明

bool HaruPage::drawImage ( object $image , float $x , float $y , float $width , float $height )

Show image at the page.

参数

image

Valid HaruImage instance.

x

The left border of the area where the image is displayed.

y

The lower border of the area where the image is displayed.

width

The width of the image area.

height

The height of the image area.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::curveTo
HaruPage::ellipse
HaruPage


Append an ellipse to the current path

HaruPage::drawImage
HaruPage::endPath
HaruPage
PHP 手册

HaruPage::ellipse

(PECL haru >= 0.0.1)

HaruPage::ellipse — Append an ellipse to the current path

说明

bool HaruPage::ellipse ( float $x , float $y , float $xray , float $yray )

Appends an ellipse to the current path.

参数

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

xray

The ray of the ellipse in the x direction.

yray

The ray of the ellipse in the y direction.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::drawImage
HaruPage::endPath
HaruPage


End current path object without filling and painting operations

HaruPage::ellipse
HaruPage::endText
HaruPage
PHP 手册

HaruPage::endPath

(PECL haru >= 0.0.1)

HaruPage::endPath — End current path object without filling and painting operations

说明

bool HaruPage::endPath ( void )

Ends current path object without performing filling and painting operations.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::ellipse
HaruPage::endText
HaruPage


End current text object

HaruPage::endPath
HaruPage::eofill
HaruPage
PHP 手册

HaruPage::endText

(PECL haru >= 0.0.1)

HaruPage::endText — End current text object

说明

bool HaruPage::endText ( void )

Finalizes current text object.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::endPath
HaruPage::eofill
HaruPage


Fill current path using even-odd rule

HaruPage::endText
HaruPage::eoFillStroke
HaruPage
PHP 手册

HaruPage::eofill

(PECL haru >= 0.0.1)

HaruPage::eofill — Fill current path using even-odd rule

说明

bool HaruPage::eofill ( void )

Fills current path using even-odd rule.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::endText
HaruPage::eoFillStroke
HaruPage


Fill current path using even-odd rule, then paint the path

HaruPage::eofill
HaruPage::fill
HaruPage
PHP 手册

HaruPage::eoFillStroke

(PECL haru >= 0.0.1)

HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path

说明

bool HaruPage::eoFillStroke ([ bool $close_path=false ] )

Fills current path using even-odd rule, then paints the path.

参数

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::eofill
HaruPage::fill
HaruPage


Fill current path using nonzero winding number rule

HaruPage::eoFillStroke
HaruPage::fillStroke
HaruPage
PHP 手册

HaruPage::fill

(PECL haru >= 0.0.1)

HaruPage::fill — Fill current path using nonzero winding number rule

说明

bool HaruPage::fill ( void )

Fills current path using nonzero winding number rule.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::eoFillStroke
HaruPage::fillStroke
HaruPage


Fill current path using nonzero winding number rule, then paint the path

HaruPage::fill
HaruPage::getCharSpace
HaruPage
PHP 手册

HaruPage::fillStroke

(PECL haru >= 0.0.1)

HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path

说明

bool HaruPage::fillStroke ([ bool $close_path=false ] )

Fills current path using nonzero winding number rule, then paints the path.

参数

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::fill
HaruPage::getCharSpace
HaruPage


Get the current value of character spacing

HaruPage::fillStroke
HaruPage::getCMYKFill
HaruPage
PHP 手册

HaruPage::getCharSpace

(PECL haru >= 0.0.1)

HaruPage::getCharSpace — Get the current value of character spacing

说明

float HaruPage::getCharSpace ( void )

Get the current value of character spacing.

参数

This function has no parameters.

返回值

Returns the current value of character spacing.

错误／异常

Throws HaruException on error.

HaruPage::fillStroke
HaruPage::getCMYKFill
HaruPage


Get the current filling color

HaruPage::getCharSpace
HaruPage::getCMYKStroke
HaruPage
PHP 手册

HaruPage::getCMYKFill

(PECL haru >= 0.0.1)

HaruPage::getCMYKFill — Get the current filling color

说明

array HaruPage::getCMYKFill ( void )

Returns the current filling color.

参数

This function has no parameters.

返回值

Returns the current filling color as an array with 4 elements ("c", "m", "y" and "k").

错误／异常

Throws HaruException on error.

HaruPage::getCharSpace
HaruPage::getCMYKStroke
HaruPage


Get the current stroking color

HaruPage::getCMYKFill
HaruPage::getCurrentFont
HaruPage
PHP 手册

HaruPage::getCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::getCMYKStroke — Get the current stroking color

说明

array HaruPage::getCMYKStroke ( void )

Get the current stroking color.

参数

This function has no parameters.

返回值

Returns the current stroking color as an array with 4 elements ("c", "m", "y" and "k").

错误／异常

Throws HaruException on error.

HaruPage::getCMYKFill
HaruPage::getCurrentFont
HaruPage


Get the currently used font

HaruPage::getCMYKStroke
HaruPage::getCurrentFontSize
HaruPage
PHP 手册

HaruPage::getCurrentFont

(PECL haru >= 0.0.1)

HaruPage::getCurrentFont — Get the currently used font

说明

object HaruPage::getCurrentFont ( void )

Get the currently used font.

参数

This function has no parameters.

返回值

Returns the currently used font as an instance of HaruFont.

错误／异常

Throws HaruException on error.

HaruPage::getCMYKStroke
HaruPage::getCurrentFontSize
HaruPage


Get the current font size

HaruPage::getCurrentFont
HaruPage::getCurrentPos
HaruPage
PHP 手册

HaruPage::getCurrentFontSize

(PECL haru >= 0.0.1)

HaruPage::getCurrentFontSize — Get the current font size

说明

float HaruPage::getCurrentFontSize ( void )

Get the current font size.

参数

This function has no parameters.

返回值

Returns the current font size.

错误／异常

Throws HaruException on error.

HaruPage::getCurrentFont
HaruPage::getCurrentPos
HaruPage


Get the current position for path painting

HaruPage::getCurrentFontSize
HaruPage::getCurrentTextPos
HaruPage
PHP 手册

HaruPage::getCurrentPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentPos — Get the current position for path painting

说明

array HaruPage::getCurrentPos ( void )

Get the current position for path painting.

参数

This function has no parameters.

返回值

Returns the current position for path painting as an array of with two elements - "x" and "y".

错误／异常

Throws HaruException on error.

HaruPage::getCurrentFontSize
HaruPage::getCurrentTextPos
HaruPage


Get the current position for text printing

HaruPage::getCurrentPos
HaruPage::getDash
HaruPage
PHP 手册

HaruPage::getCurrentTextPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentTextPos — Get the current position for text printing

说明

array HaruPage::getCurrentTextPos ( void )

Get the current position for text printing.

参数

This function has no parameters.

返回值

Returns the current position for text printing as an array with 2 elements - "x" and "y".

错误／异常

Throws HaruException on error.

HaruPage::getCurrentPos
HaruPage::getDash
HaruPage


Get the current dash pattern

HaruPage::getCurrentTextPos
HaruPage::getFillingColorSpace
HaruPage
PHP 手册

HaruPage::getDash

(PECL haru >= 0.0.1)

HaruPage::getDash — Get the current dash pattern

说明

array HaruPage::getDash ( void )

Get the current dash pattern. See HaruPage::setDash() for more information on dash patterns.

参数

This function has no parameters.

返回值

Returns the current dash pattern as an array of two elements - "pattern" and "phase" or FALSE if dash pattern was not set.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setDash()

HaruPage::getCurrentTextPos
HaruPage::getFillingColorSpace
HaruPage


Get the current filling color space

HaruPage::getDash
HaruPage::getFlatness
HaruPage
PHP 手册

HaruPage::getFillingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getFillingColorSpace — Get the current filling color space

说明

int HaruPage::getFillingColorSpace ( void )

Get the current filling color space.

参数

This function has no parameters.

返回值

Returns the current filling color space. The result value is one of the following:

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK
  • HaruDoc::CS_CAL_GRAY
  • HaruDoc::CS_CAL_RGB
  • HaruDoc::CS_LAB
  • HaruDoc::CS_ICC_BASED
  • HaruDoc::CS_SEPARATION
  • HaruDoc::CS_DEVICE_N
  • HaruDoc::CS_INDEXED
  • HaruDoc::CS_PATTERN

错误／异常

Throws HaruException on error.

HaruPage::getDash
HaruPage::getFlatness
HaruPage


Get the flatness of the page

HaruPage::getFillingColorSpace
HaruPage::getGMode
HaruPage
PHP 手册

HaruPage::getFlatness

(PECL haru >= 0.0.1)

HaruPage::getFlatness — Get the flatness of the page

说明

float HaruPage::getFlatness ( void )

Get the flatness of the page.

参数

This function has no parameters.

返回值

Returns the flatness of the page.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setFlatness()

HaruPage::getFillingColorSpace
HaruPage::getGMode
HaruPage


Get the current graphics mode

HaruPage::getFlatness
HaruPage::getGrayFill
HaruPage
PHP 手册

HaruPage::getGMode

(PECL haru >= 0.0.1)

HaruPage::getGMode — Get the current graphics mode

说明

int HaruPage::getGMode ( void )

Get the current graphics mode.

参数

This function has no parameters.

返回值

Returns the current graphics mode. The result value is one of the following:

  • HaruPage::GMODE_PAGE_DESCRIPTION
  • HaruPage::GMODE_TEXT_OBJECT
  • HaruPage::GMODE_PATH_OBJECT
  • HaruPage::GMODE_CLIPPING_PATH
  • HaruPage::GMODE_SHADING
  • HaruPage::GMODE_INLINE_IMAGE
  • HaruPage::GMODE_EXTERNAL_OBJECT

错误／异常

Throws HaruException on error.

HaruPage::getFlatness
HaruPage::getGrayFill
HaruPage


Get the current filling color

HaruPage::getGMode
HaruPage::getGrayStroke
HaruPage
PHP 手册

HaruPage::getGrayFill

(PECL haru >= 0.0.1)

HaruPage::getGrayFill — Get the current filling color

说明

float HaruPage::getGrayFill ( void )

Get the current filling color.

参数

This function has no parameters.

返回值

Returns the current filling color.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setGrayFill()

HaruPage::getGMode
HaruPage::getGrayStroke
HaruPage


Get the current stroking color

HaruPage::getGrayFill
HaruPage::getHeight
HaruPage
PHP 手册

HaruPage::getGrayStroke

(PECL haru >= 0.0.1)

HaruPage::getGrayStroke — Get the current stroking color

说明

float HaruPage::getGrayStroke ( void )

Get the current stroking color.

参数

This function has no parameters.

返回值

Returns the current stroking color.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setGrayStroke()

HaruPage::getGrayFill
HaruPage::getHeight
HaruPage


Get the height of the page

HaruPage::getGrayStroke
HaruPage::getHorizontalScaling
HaruPage
PHP 手册

HaruPage::getHeight

(PECL haru >= 0.0.1)

HaruPage::getHeight — Get the height of the page

说明

float HaruPage::getHeight ( void )

Get the height of the page.

参数

This function has no parameters.

返回值

Returns the height of the page.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setHeight()

HaruPage::getGrayStroke
HaruPage::getHorizontalScaling
HaruPage


Get the current value of horizontal scaling

HaruPage::getHeight
HaruPage::getLineCap
HaruPage
PHP 手册

HaruPage::getHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::getHorizontalScaling — Get the current value of horizontal scaling

说明

float HaruPage::getHorizontalScaling ( void )

Get the current value of the horizontal scaling.

参数

This function has no parameters.

返回值

Returns the current value of horizontal scaling.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setHorizontalScaling()

HaruPage::getHeight
HaruPage::getLineCap
HaruPage


Get the current line cap style

HaruPage::getHorizontalScaling
HaruPage::getLineJoin
HaruPage
PHP 手册

HaruPage::getLineCap

(PECL haru >= 0.0.1)

HaruPage::getLineCap — Get the current line cap style

说明

int HaruPage::getLineCap ( void )

Get the current line cap style.

参数

This function has no parameters.

返回值

Returns the current line cap style. The result value is one of the following:

  • HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
  • HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
  • HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setLineCap()

HaruPage::getHorizontalScaling
HaruPage::getLineJoin
HaruPage


Get the current line join style

HaruPage::getLineCap
HaruPage::getLineWidth
HaruPage
PHP 手册

HaruPage::getLineJoin

(PECL haru >= 0.0.1)

HaruPage::getLineJoin — Get the current line join style

说明

int HaruPage::getLineJoin ( void )

Get the current line join style.

参数

This function has no parameters.

返回值

Returns the current line join style. The result value is one of the following:

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setLineJoin()

HaruPage::getLineCap
HaruPage::getLineWidth
HaruPage


Get the current line width

HaruPage::getLineJoin
HaruPage::getMiterLimit
HaruPage
PHP 手册

HaruPage::getLineWidth

(PECL haru >= 0.0.1)

HaruPage::getLineWidth — Get the current line width

说明

float HaruPage::getLineWidth ( void )

Get the current line width.

参数

This function has no parameters.

返回值

Returns the current line width.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setLineWidth()

HaruPage::getLineJoin
HaruPage::getMiterLimit
HaruPage


Get the value of miter limit

HaruPage::getLineWidth
HaruPage::getRGBFill
HaruPage
PHP 手册

HaruPage::getMiterLimit

(PECL haru >= 0.0.1)

HaruPage::getMiterLimit — Get the value of miter limit

说明

float HaruPage::getMiterLimit ( void )

Get the value of the miter limit.

参数

This function has no parameters.

返回值

Returns the value of the miter limit.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setMiterLimit()

HaruPage::getLineWidth
HaruPage::getRGBFill
HaruPage


Get the current filling color

HaruPage::getMiterLimit
HaruPage::getRGBStroke
HaruPage
PHP 手册

HaruPage::getRGBFill

(PECL haru >= 0.0.1)

HaruPage::getRGBFill — Get the current filling color

说明

array HaruPage::getRGBFill ( void )

Get the current filling color.

参数

This function has no parameters.

返回值

Returns the current filling color as an array with 3 elements: "r", "g" and "b".

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setRGBFill()

HaruPage::getMiterLimit
HaruPage::getRGBStroke
HaruPage


Get the current stroking color

HaruPage::getRGBFill
HaruPage::getStrokingColorSpace
HaruPage
PHP 手册

HaruPage::getRGBStroke

(PECL haru >= 0.0.1)

HaruPage::getRGBStroke — Get the current stroking color

说明

array HaruPage::getRGBStroke ( void )

Get the current stroking color.

参数

This function has no parameters.

返回值

Returns the current stroking color.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setRGBStroke()

HaruPage::getRGBFill
HaruPage::getStrokingColorSpace
HaruPage


Get the current stroking color space

HaruPage::getRGBStroke
HaruPage::getTextLeading
HaruPage
PHP 手册

HaruPage::getStrokingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getStrokingColorSpace — Get the current stroking color space

说明

int HaruPage::getStrokingColorSpace ( void )

Get the current stroking color space.

参数

This function has no parameters.

返回值

Returns the current stroking color space. The list of return values is the same as for HaruPage::getFillingColorSpace().

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getFillingColorSpace()

HaruPage::getRGBStroke
HaruPage::getTextLeading
HaruPage


Get the current value of line spacing

HaruPage::getStrokingColorSpace
HaruPage::getTextMatrix
HaruPage
PHP 手册

HaruPage::getTextLeading

(PECL haru >= 0.0.1)

HaruPage::getTextLeading — Get the current value of line spacing

说明

float HaruPage::getTextLeading ( void )

Get the current value of line spacing.

参数

This function has no parameters.

返回值

Returns the current value of line spacing.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setTextLeading()

HaruPage::getStrokingColorSpace
HaruPage::getTextMatrix
HaruPage


Get the current text transformation matrix of the page

HaruPage::getTextLeading
HaruPage::getTextRenderingMode
HaruPage
PHP 手册

HaruPage::getTextMatrix

(PECL haru >= 0.0.1)

HaruPage::getTextMatrix — Get the current text transformation matrix of the page

说明

array HaruPage::getTextMatrix ( void )

Get the current text transformation matrix of the page.

返回值

Returns the current text transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setTextMatrix()

HaruPage::getTextLeading
HaruPage::getTextRenderingMode
HaruPage


Get the current text rendering mode

HaruPage::getTextMatrix
HaruPage::getTextRise
HaruPage
PHP 手册

HaruPage::getTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::getTextRenderingMode — Get the current text rendering mode

说明

int HaruPage::getTextRenderingMode ( void )

Get the current text rendering mode.

参数

This function has no parameters.

返回值

Returns the current text rendering mode. The result value is one of the following:

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setTextRenderingMode()

HaruPage::getTextMatrix
HaruPage::getTextRise
HaruPage


Get the current value of text rising

HaruPage::getTextRenderingMode
HaruPage::getTextWidth
HaruPage
PHP 手册

HaruPage::getTextRise

(PECL haru >= 0.0.1)

HaruPage::getTextRise — Get the current value of text rising

说明

float HaruPage::getTextRise ( void )

Get the current value of text rising.

参数

This function has no parameters.

返回值

Returns the current value of text rising.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setTextRise()

HaruPage::getTextRenderingMode
HaruPage::getTextWidth
HaruPage


Get the width of the text using current fontsize, character spacing and word spacing

HaruPage::getTextRise
HaruPage::getTransMatrix
HaruPage
PHP 手册

HaruPage::getTextWidth

(PECL haru >= 0.0.1)

HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing

说明

float HaruPage::getTextWidth ( string $text )

Get the width of the text using current fontsize, character spacing and word spacing

参数

text

The text to measure.

返回值

Returns the width of the text using current fontsize, character spacing and word spacing.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::measureText()

HaruPage::getTextRise
HaruPage::getTransMatrix
HaruPage


Get the current transformation matrix of the page

HaruPage::getTextWidth
HaruPage::getWidth
HaruPage
PHP 手册

HaruPage::getTransMatrix

(PECL haru >= 0.0.1)

HaruPage::getTransMatrix — Get the current transformation matrix of the page

说明

array HaruPage::getTransMatrix ( void )

Get the current transformation matrix of the page.

参数

This function has no parameters.

返回值

Returns the current transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

错误／异常

Throws HaruException on error.

参见

  • HaruPage::concat()

HaruPage::getTextWidth
HaruPage::getWidth
HaruPage


Get the width of the page

HaruPage::getTransMatrix
HaruPage::getWordSpace
HaruPage
PHP 手册

HaruPage::getWidth

(PECL haru >= 0.0.1)

HaruPage::getWidth — Get the width of the page

说明

float HaruPage::getWidth ( void )

Get the width of the page.

参数

This function has no parameters.

返回值

Returns the width of the page.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setWidth()

HaruPage::getTransMatrix
HaruPage::getWordSpace
HaruPage


Get the current value of word spacing

HaruPage::getWidth
HaruPage::lineTo
HaruPage
PHP 手册

HaruPage::getWordSpace

(PECL haru >= 0.0.1)

HaruPage::getWordSpace — Get the current value of word spacing

说明

float HaruPage::getWordSpace ( void )

Get the current value of word spacing.

参数

This function has no parameters.

返回值

Returns the current value of word spacing.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setWordSpace()

HaruPage::getWidth
HaruPage::lineTo
HaruPage


Draw a line from the current point to the specified point

HaruPage::getWordSpace
HaruPage::measureText
HaruPage
PHP 手册

HaruPage::lineTo

(PECL haru >= 0.0.1)

HaruPage::lineTo — Draw a line from the current point to the specified point

说明

bool HaruPage::lineTo ( float $x , float $y )

Draws a line from the current point to the specified point.

参数

x

y

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::curveTo()
  • HaruPage::curveTo2()
  • HaruPage::curveTo3()

HaruPage::getWordSpace
HaruPage::measureText
HaruPage


Calculate the number of characters which can be included within the specified width

HaruPage::lineTo
HaruPage::moveTextPos
HaruPage
PHP 手册

HaruPage::measureText

(PECL haru >= 0.0.1)

HaruPage::measureText — Calculate the number of characters which can be included within the specified width

说明

int HaruPage::measureText ( string $text , float $width [, bool $wordwrap=false ] )

Get the number of characters which can be included within the specified width.

参数

text

The text to measure.

width

The width of the area to put the text to.

wordwrap

When this parameter is set to TRUE the function "emulates" word wrapping and doesn't include the part of the current word if reached the end of the area. Defaults to FALSE.

返回值

Returns the number of characters which can be included within the specified width.

错误／异常

Throws HaruException on error.

参见

  • HaruFont::measureText()

HaruPage::lineTo
HaruPage::moveTextPos
HaruPage


Move text position to the specified offset

HaruPage::measureText
HaruPage::moveTo
HaruPage
PHP 手册

HaruPage::moveTextPos

(PECL haru >= 0.0.1)

HaruPage::moveTextPos — Move text position to the specified offset

说明

bool HaruPage::moveTextPos ( float $x , float $y [, bool $set_leading=false ] )

Moves text position to the specified offset. If the start position of the current line is (x1, y1), the start of the next line is (x1 + x , y1 + y ).

参数

x

The specified text position offset.

y

The specified text position offset.

set_leading

If set to TRUE, the function sets the text leading to -y . The default value of set_leading is FALSE.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::moveToNextLine()

HaruPage::measureText
HaruPage::moveTo
HaruPage


Set starting point for new drawing path

HaruPage::moveTextPos
HaruPage::moveToNextLine
HaruPage
PHP 手册

HaruPage::moveTo

(PECL haru >= 0.0.1)

HaruPage::moveTo — Set starting point for new drawing path

说明

bool HaruPage::moveTo ( float $x , float $y )

Defines starting point for new drawing path.

参数

x

A new starting point coordinate.

y

A new starting point coordinate.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::moveTextPos
HaruPage::moveToNextLine
HaruPage


Move text position to the start of the next line

HaruPage::moveTo
HaruPage::rectangle
HaruPage
PHP 手册

HaruPage::moveToNextLine

(PECL haru >= 0.0.1)

HaruPage::moveToNextLine — Move text position to the start of the next line

说明

bool HaruPage::moveToNextLine ( void )

Moves text position to the start of the next line.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::moveTextPos()

HaruPage::moveTo
HaruPage::rectangle
HaruPage


Append a rectangle to the current path

HaruPage::moveToNextLine
HaruPage::setCharSpace
HaruPage
PHP 手册

HaruPage::rectangle

(PECL haru >= 0.0.1)

HaruPage::rectangle — Append a rectangle to the current path

说明

bool HaruPage::rectangle ( float $x , float $y , float $width , float $height )

Appends a rectangle to the current drawing path.

参数

x

The left border of the rectangle.

y

The lower border of the rectangle.

width

The width of the rectangle.

height

The height of the rectangle.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::moveToNextLine
HaruPage::setCharSpace
HaruPage


Set character spacing for the page

HaruPage::rectangle
HaruPage::setCMYKFill
HaruPage
PHP 手册

HaruPage::setCharSpace

(PECL haru >= 0.0.1)

HaruPage::setCharSpace — Set character spacing for the page

说明

bool HaruPage::setCharSpace ( float $char_space )

Defines character spacing for the page.

参数

char_space

The new character spacing for the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getCharSpace()

HaruPage::rectangle
HaruPage::setCMYKFill
HaruPage


Set filling color for the page

HaruPage::setCharSpace
HaruPage::setCMYKStroke
HaruPage
PHP 手册

HaruPage::setCMYKFill

(PECL haru >= 0.0.1)

HaruPage::setCMYKFill — Set filling color for the page

说明

bool HaruPage::setCMYKFill ( float $c , float $m , float $y , float $k )

Defines filling color for the page.

参数

c

m

y

k

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getCMYKFill()

HaruPage::setCharSpace
HaruPage::setCMYKStroke
HaruPage


Set stroking color for the page

HaruPage::setCMYKFill
HaruPage::setDash
HaruPage
PHP 手册

HaruPage::setCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::setCMYKStroke — Set stroking color for the page

说明

bool HaruPage::setCMYKStroke ( float $c , float $m , float $y , float $k )

Defines stroking color for the page.

参数

c

m

y

k

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getCMYKStroke()

HaruPage::setCMYKFill
HaruPage::setDash
HaruPage


Set the dash pattern for the page

HaruPage::setCMYKStroke
HaruPage::setFlatness
HaruPage
PHP 手册

HaruPage::setDash

(PECL haru >= 0.0.1)

HaruPage::setDash — Set the dash pattern for the page

说明

bool HaruPage::setDash ( array $pattern , int $phase )

Defines the dash pattern for the page.

参数

pattern

An array (8 elements max) which contains a pattern of dashes and gaps used for lines on the page.

phase

The phase on which the pattern begins.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getDash()

HaruPage::setCMYKStroke
HaruPage::setFlatness
HaruPage


Set flatness for the page

HaruPage::setDash
HaruPage::setFontAndSize
HaruPage
PHP 手册

HaruPage::setFlatness

(PECL haru >= 0.0.1)

HaruPage::setFlatness — Set flatness for the page

说明

bool HaruPage::setFlatness ( float $flatness )

Defines flatness for the page.

参数

flatness

The defined flatness for the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getFlatness()

HaruPage::setDash
HaruPage::setFontAndSize
HaruPage


Set font and fontsize for the page

HaruPage::setFlatness
HaruPage::setGrayFill
HaruPage
PHP 手册

HaruPage::setFontAndSize

(PECL haru >= 0.0.1)

HaruPage::setFontAndSize — Set font and fontsize for the page

说明

bool HaruPage::setFontAndSize ( object $font , float $size )

Defines current font and its size for the page.

参数

font

A valid HaruFont instance.

size

The size of the font.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruDoc::getFont()

HaruPage::setFlatness
HaruPage::setGrayFill
HaruPage


Set filling color for the page

HaruPage::setFontAndSize
HaruPage::setGrayStroke
HaruPage
PHP 手册

HaruPage::setGrayFill

(PECL haru >= 0.0.1)

HaruPage::setGrayFill — Set filling color for the page

说明

bool HaruPage::setGrayFill ( float $value )

Defines filling color for the page.

参数

value

The value of gray level between 0 and 1.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getGrayFill()

HaruPage::setFontAndSize
HaruPage::setGrayStroke
HaruPage


Sets stroking color for the page

HaruPage::setGrayFill
HaruPage::setHeight
HaruPage
PHP 手册

HaruPage::setGrayStroke

(PECL haru >= 0.0.1)

HaruPage::setGrayStroke — Sets stroking color for the page

说明

bool HaruPage::setGrayStroke ( float $value )

Defines stroking color for the page.

参数

value

The value of gray level between 0 and 1.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getGrayStroke()

HaruPage::setGrayFill
HaruPage::setHeight
HaruPage


Set height of the page

HaruPage::setGrayStroke
HaruPage::setHorizontalScaling
HaruPage
PHP 手册

HaruPage::setHeight

(PECL haru >= 0.0.1)

HaruPage::setHeight — Set height of the page

说明

bool HaruPage::setHeight ( float $height )

Defines height of the page.

参数

height

The defined height for the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getHeight()

HaruPage::setGrayStroke
HaruPage::setHorizontalScaling
HaruPage


Set horizontal scaling for the page

HaruPage::setHeight
HaruPage::setLineCap
HaruPage
PHP 手册

HaruPage::setHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::setHorizontalScaling — Set horizontal scaling for the page

说明

bool HaruPage::setHorizontalScaling ( float $scaling )

Set the horizontal scaling for the page.

参数

scaling

The horizontal scaling for text showing on the page. The initial value is 100.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getHorizontalScaling()

HaruPage::setHeight
HaruPage::setLineCap
HaruPage


Set the shape to be used at the ends of lines

HaruPage::setHorizontalScaling
HaruPage::setLineJoin
HaruPage
PHP 手册

HaruPage::setLineCap

(PECL haru >= 0.0.1)

HaruPage::setLineCap — Set the shape to be used at the ends of lines

说明

bool HaruPage::setLineCap ( int $cap )

Defines the shape to be used at the ends of lines.

参数

cap

Must be one of the following values:

  • HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
  • HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
  • HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getLineCap()

HaruPage::setHorizontalScaling
HaruPage::setLineJoin
HaruPage


Set line join style for the page

HaruPage::setLineCap
HaruPage::setLineWidth
HaruPage
PHP 手册

HaruPage::setLineJoin

(PECL haru >= 0.0.1)

HaruPage::setLineJoin — Set line join style for the page

说明

bool HaruPage::setLineJoin ( int $join )

Defines line join style for the page.

参数

join

Must be one of the following values:

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getLineJoin()

HaruPage::setLineCap
HaruPage::setLineWidth
HaruPage


Set line width for the page

HaruPage::setLineJoin
HaruPage::setMiterLimit
HaruPage
PHP 手册

HaruPage::setLineWidth

(PECL haru >= 0.0.1)

HaruPage::setLineWidth — Set line width for the page

说明

bool HaruPage::setLineWidth ( float $width )

Defines line width for the page.

参数

width

The defined line width for the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getLineWidth()

HaruPage::setLineJoin
HaruPage::setMiterLimit
HaruPage


Set the current value of the miter limit of the page

HaruPage::setLineWidth
HaruPage::setRGBFill
HaruPage
PHP 手册

HaruPage::setMiterLimit

(PECL haru >= 0.0.1)

HaruPage::setMiterLimit — Set the current value of the miter limit of the page

说明

bool HaruPage::setMiterLimit ( float $limit )

Set the current value of the miter limit of the page.

参数

limit

Defines the current value of the miter limit of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getMiterLimit()

HaruPage::setLineWidth
HaruPage::setRGBFill
HaruPage


Set filling color for the page

HaruPage::setMiterLimit
HaruPage::setRGBStroke
HaruPage
PHP 手册

HaruPage::setRGBFill

(PECL haru >= 0.0.1)

HaruPage::setRGBFill — Set filling color for the page

说明

bool HaruPage::setRGBFill ( float $r , float $g , float $b )

Defines filling color for the page. All values must be between 0 and 1.

参数

r

g

b

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getRGBFill()

HaruPage::setMiterLimit
HaruPage::setRGBStroke
HaruPage


Set stroking color for the page

HaruPage::setRGBFill
HaruPage::setRotate
HaruPage
PHP 手册

HaruPage::setRGBStroke

(PECL haru >= 0.0.1)

HaruPage::setRGBStroke — Set stroking color for the page

说明

bool HaruPage::setRGBStroke ( float $r , float $g , float $b )

Defines stroking color for the page. All values must be between 0 and 1.

参数

r

g

b

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getRGBStroke()

HaruPage::setRGBFill
HaruPage::setRotate
HaruPage


Set rotation angle of the page

HaruPage::setRGBStroke
HaruPage::setSize
HaruPage
PHP 手册

HaruPage::setRotate

(PECL haru >= 0.0.1)

HaruPage::setRotate — Set rotation angle of the page

说明

bool HaruPage::setRotate ( int $angle )

Defines rotation angle of the page.

参数

angle

Must be a multiple of 90 degrees.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::setRGBStroke
HaruPage::setSize
HaruPage


Set size and direction of the page

HaruPage::setRotate
HaruPage::setSlideShow
HaruPage
PHP 手册

HaruPage::setSize

(PECL haru >= 0.0.1)

HaruPage::setSize — Set size and direction of the page

说明

bool HaruPage::setSize ( int $size , int $direction )

Changes size and direction of the page to a predefined format.

参数

size

Must be one of the following values:

  • HaruPage::SIZE_LETTER
  • HaruPage::SIZE_LEGAL
  • HaruPage::SIZE_A3
  • HaruPage::SIZE_A4
  • HaruPage::SIZE_A5
  • HaruPage::SIZE_B4
  • HaruPage::SIZE_B5
  • HaruPage::SIZE_EXECUTIVE
  • HaruPage::SIZE_US4x6
  • HaruPage::SIZE_US4x8
  • HaruPage::SIZE_US5x7
  • HaruPage::SIZE_COMM10

direction

Must be one of the following values:

  • HaruPage::PORTRAIT
  • HaruPage::LANDSCAPE

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::setWidth()
  • HaruPage::setHeight()

HaruPage::setRotate
HaruPage::setSlideShow
HaruPage


Set transition style for the page

HaruPage::setSize
HaruPage::setTextLeading
HaruPage
PHP 手册

HaruPage::setSlideShow

(PECL haru >= 0.0.1)

HaruPage::setSlideShow — Set transition style for the page

说明

bool HaruPage::setSlideShow ( int $type , float $disp_time , float $trans_time )

Defines transition style for the page.

参数

type

Must be one of the following values:

  • HaruPage::TS_WIPE_RIGHT
  • HaruPage::TS_WIPE_LEFT
  • HaruPage::TS_WIPE_UP
  • HaruPage::TS_WIPE_DOWN
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_IN
  • HaruPage::TS_BARN_DOORS_VERTICAL_OUT
  • HaruPage::TS_BARN_DOORS_VERTICAL_IN
  • HaruPage::TS_BOX_OUT
  • HaruPage::TS_BOX_IN
  • HaruPage::TS_BLINDS_HORIZONTAL
  • HaruPage::TS_BLINDS_VERTICAL
  • HaruPage::TS_DISSOLVE
  • HaruPage::TS_GLITTER_RIGHT
  • HaruPage::TS_GLITTER_DOWN
  • HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
  • HaruPage::TS_REPLACE

disp_time

The display duration of the page in seconds.

trans_time

The duration of the transition effect in seconds.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::setSize
HaruPage::setTextLeading
HaruPage


Set text leading (line spacing) for the page

HaruPage::setSlideShow
HaruPage::setTextMatrix
HaruPage
PHP 手册

HaruPage::setTextLeading

(PECL haru >= 0.0.1)

HaruPage::setTextLeading — Set text leading (line spacing) for the page

说明

bool HaruPage::setTextLeading ( float $text_leading )

Set the text leading (line spacing) for the page.

参数

text_leading

Defines line spacing for the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getTextLeading()

HaruPage::setSlideShow
HaruPage::setTextMatrix
HaruPage


Set the current text transformation matrix of the page

HaruPage::setTextLeading
HaruPage::setTextRenderingMode
HaruPage
PHP 手册

HaruPage::setTextMatrix

(PECL haru >= 0.0.1)

HaruPage::setTextMatrix — Set the current text transformation matrix of the page

说明

bool HaruPage::setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )

Defines the text transformation matrix of the page.

参数

a

b

c

d

x

y

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getTextMatrix()

HaruPage::setTextLeading
HaruPage::setTextRenderingMode
HaruPage


Set text rendering mode for the page

HaruPage::setTextMatrix
HaruPage::setTextRise
HaruPage
PHP 手册

HaruPage::setTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::setTextRenderingMode — Set text rendering mode for the page

说明

bool HaruPage::setTextRenderingMode ( int $mode )

Defines text rendering mode for the page.

参数

mode

Must be one of the following values:

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getTextRenderingMode()

HaruPage::setTextMatrix
HaruPage::setTextRise
HaruPage


Set the current value of text rising

HaruPage::setTextRenderingMode
HaruPage::setWidth
HaruPage
PHP 手册

HaruPage::setTextRise

(PECL haru >= 0.0.1)

HaruPage::setTextRise — Set the current value of text rising

说明

bool HaruPage::setTextRise ( float $rise )

Set the current value of text rising.

参数

rise

Defines the current value of text rising.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getTextRise()

HaruPage::setTextRenderingMode
HaruPage::setWidth
HaruPage


Set width of the page

HaruPage::setTextRise
HaruPage::setWordSpace
HaruPage
PHP 手册

HaruPage::setWidth

(PECL haru >= 0.0.1)

HaruPage::setWidth — Set width of the page

说明

bool HaruPage::setWidth ( float $width )

Set the width of the page.

参数

width

Defines width of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getWidth()

HaruPage::setTextRise
HaruPage::setWordSpace
HaruPage


Set word spacing for the page

HaruPage::setWidth
HaruPage::showText
HaruPage
PHP 手册

HaruPage::setWordSpace

(PECL haru >= 0.0.1)

HaruPage::setWordSpace — Set word spacing for the page

说明

bool HaruPage::setWordSpace ( float $word_space )

Set the word spacing for the page.

参数

word_space

Defines word spacing for the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::getWordSpace()

HaruPage::setWidth
HaruPage::showText
HaruPage


Print text at the current position of the page

HaruPage::setWordSpace
HaruPage::showTextNextLine
HaruPage
PHP 手册

HaruPage::showText

(PECL haru >= 0.0.1)

HaruPage::showText — Print text at the current position of the page

说明

bool HaruPage::showText ( string $text )

Prints out the text at the current position of the page.

参数

text

The text to show.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::showTextNextLine()
  • HaruPage::textOut()

HaruPage::setWordSpace
HaruPage::showTextNextLine
HaruPage


Move the current position to the start of the next line and print the text

HaruPage::showText
HaruPage::stroke
HaruPage
PHP 手册

HaruPage::showTextNextLine

(PECL haru >= 0.0.1)

HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text

说明

bool HaruPage::showTextNextLine ( string $text [, float $word_space [, float $char_space ]] )

Moves the current position to the start of the next line and print out the text.

参数

text

The text to show.

word_space

The word spacing.

char_space

The character spacing.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::showText()
  • HaruPage::textOut()

HaruPage::showText
HaruPage::stroke
HaruPage


Paint current path

HaruPage::showTextNextLine
HaruPage::textOut
HaruPage
PHP 手册

HaruPage::stroke

(PECL haru >= 0.0.1)

HaruPage::stroke — Paint current path

说明

bool HaruPage::stroke ([ bool $close_path=false ] )

Paints the current path.

参数

close_path

Closes the current path if set to TRUE. Defaults to FALSE.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruPage::showTextNextLine
HaruPage::textOut
HaruPage


Print the text on the specified position

HaruPage::stroke
HaruPage::textRect
HaruPage
PHP 手册

HaruPage::textOut

(PECL haru >= 0.0.1)

HaruPage::textOut — Print the text on the specified position

说明

bool HaruPage::textOut ( float $x , float $y , string $text )

Prints the text on the specified position.

参数

x

y

text

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::showTextNextLine()
  • HaruPage::showText()

HaruPage::stroke
HaruPage::textRect
HaruPage


Print the text inside the specified region

HaruPage::textOut
HaruFont
HaruPage
PHP 手册

HaruPage::textRect

(PECL haru >= 0.0.1)

HaruPage::textRect — Print the text inside the specified region

说明

bool HaruPage::textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align=HaruPage::TALIGN_LEFT ] )

Prints the text inside the specified region.

参数

left

Left border of the text area.

top

Top border of the text area.

right

Right border of the text area.

bottom

Lower border of the text area.

text

The text to print.

align

Text alignment. Must be one of the following values:

  • HaruPage::TALIGN_LEFT
  • HaruPage::TALIGN_RIGHT
  • HaruPage::TALIGN_CENTER
  • HaruPage::TALIGN_JUSTIFY

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

参见

  • HaruPage::showTextNextLine()
  • HaruPage::showText()
  • HaruPage::textOut()

HaruPage::textOut
HaruFont
HaruPage


The HaruFont class

简介

Haru PDF Font Class.

Class synopsis

HaruFont
HaruFont {
/* Methods */
int getAscent ( void )
int getCapHeight ( void )
int getDescent ( void )
string getEncodingName ( void )
string getFontName ( void )
array getTextWidth ( string $text )
int getUnicodeWidth ( int $character )
int getXHeight ( void )
int measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap=false ] )
}

Table of Contents

  • HaruFont::getAscent — Get the vertical ascent of the font
  • HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters
  • HaruFont::getDescent — Get the vertical descent of the font
  • HaruFont::getEncodingName — Get the name of the encoding
  • HaruFont::getFontName — Get the name of the font
  • HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces
  • HaruFont::getUnicodeWidth — Get the width of the character in the font
  • HaruFont::getXHeight — Get the distance from the baseline of lowercase letters
  • HaruFont::measureText — Calculate the number of characters which can be included within the specified width
HaruPage::textRect
HaruFont::getAscent
haru


Get the vertical ascent of the font

HaruFont
HaruFont::getCapHeight
HaruFont
PHP 手册

HaruFont::getAscent

(PECL haru >= 0.0.1)

HaruFont::getAscent — Get the vertical ascent of the font

说明

int HaruFont::getAscent ( void )

Get the vertical ascent of the font.

参数

This function has no parameters.

返回值

Returns the vertical ascent of the font.

错误／异常

Throws HaruException on error.

HaruFont
HaruFont::getCapHeight
HaruFont


Get the distance from the baseline of uppercase letters

HaruFont::getAscent
HaruFont::getDescent
HaruFont
PHP 手册

HaruFont::getCapHeight

(PECL haru >= 0.0.1)

HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters

说明

int HaruFont::getCapHeight ( void )

Get the distance from the baseline of uppercase letters.

参数

This function has no parameters.

返回值

Returns the distance from the baseline of uppercase letters.

错误／异常

Throws HaruException on error.

HaruFont::getAscent
HaruFont::getDescent
HaruFont


Get the vertical descent of the font

HaruFont::getCapHeight
HaruFont::getEncodingName
HaruFont
PHP 手册

HaruFont::getDescent

(PECL haru >= 0.0.1)

HaruFont::getDescent — Get the vertical descent of the font

说明

int HaruFont::getDescent ( void )

Get the vertical descent of the font.

参数

This function has no parameters.

返回值

Return the vertical descent of the font.

错误／异常

Throws HaruException on error.

HaruFont::getCapHeight
HaruFont::getEncodingName
HaruFont


Get the name of the encoding

HaruFont::getDescent
HaruFont::getFontName
HaruFont
PHP 手册

HaruFont::getEncodingName

(PECL haru >= 0.0.1)

HaruFont::getEncodingName — Get the name of the encoding

说明

string HaruFont::getEncodingName ( void )

Get the name of the font encoding.

参数

This function has no parameters.

返回值

Returns the name of the font encoding.

错误／异常

Throws HaruException on error.

HaruFont::getDescent
HaruFont::getFontName
HaruFont


Get the name of the font

HaruFont::getEncodingName
HaruFont::getTextWidth
HaruFont
PHP 手册

HaruFont::getFontName

(PECL haru >= 0.0.1)

HaruFont::getFontName — Get the name of the font

说明

string HaruFont::getFontName ( void )

Get the name of the font.

参数

This function has no parameters.

返回值

Returns the name of the font.

错误／异常

Throws HaruException on error.

HaruFont::getEncodingName
HaruFont::getTextWidth
HaruFont


Get the total width of the text, number of characters, number of words and number of spaces

HaruFont::getFontName
HaruFont::getUnicodeWidth
HaruFont
PHP 手册

HaruFont::getTextWidth

(PECL haru >= 0.0.1)

HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces

说明

array HaruFont::getTextWidth ( string $text )

Get the total width of the text, number of characters, number of words and number of spaces.

参数

text

The text to measure.

返回值

Returns the total width of the text, number of characters, number of words and number of spaces in the given text.

错误／异常

Throws HaruException on error.

HaruFont::getFontName
HaruFont::getUnicodeWidth
HaruFont


Get the width of the character in the font

HaruFont::getTextWidth
HaruFont::getXHeight
HaruFont
PHP 手册

HaruFont::getUnicodeWidth

(PECL haru >= 0.0.1)

HaruFont::getUnicodeWidth — Get the width of the character in the font

说明

int HaruFont::getUnicodeWidth ( int $character )

Get the width of the character in the font.

参数

character

The code of the character.

返回值

Returns the width of the character in the font.

错误／异常

Throws HaruException on error.

HaruFont::getTextWidth
HaruFont::getXHeight
HaruFont


Get the distance from the baseline of lowercase letters

HaruFont::getUnicodeWidth
HaruFont::measureText
HaruFont
PHP 手册

HaruFont::getXHeight

(PECL haru >= 0.0.1)

HaruFont::getXHeight — Get the distance from the baseline of lowercase letters

说明

int HaruFont::getXHeight ( void )

Gets the distance from the baseline of lowercase letters.

参数

This function has no parameters.

返回值

Returns the distance from the baseline of lowercase letters.

错误／异常

Throws HaruException on error.

HaruFont::getUnicodeWidth
HaruFont::measureText
HaruFont


Calculate the number of characters which can be included within the specified width

HaruFont::getXHeight
HaruImage
HaruFont
PHP 手册

HaruFont::measureText

(PECL haru >= 0.0.1)

HaruFont::measureText — Calculate the number of characters which can be included within the specified width

说明

int HaruFont::measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap=false ] )

Calculate the number of characters which can be included within the specified width.

参数

text

The text to fit the width.

width

The width of the area to put the text to.

font_size

The size of the font.

char_space

The character spacing.

word_space

The word spacing.

word_wrap

When this parameter is set to TRUE the function "emulates" word wrapping and doesn't include the part of the current word if reached the end of the area. Defaults to FALSE.

返回值

Returns the number of characters which can be included within the specified width.

错误／异常

Throws HaruException on error.

HaruFont::getXHeight
HaruImage
HaruFont


The HaruImage class

简介

Haru PDF Image Class.

Class synopsis

HaruImage
HaruImage {
/* Methods */
int getBitsPerComponent ( void )
string getColorSpace ( void )
int getHeight ( void )
array getSize ( void )
int getWidth ( void )
bool setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )
bool setMaskImage ( object $mask_image )
}

Table of Contents

  • HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image
  • HaruImage::getColorSpace — Get the name of the color space
  • HaruImage::getHeight — Get the height of the image
  • HaruImage::getSize — Get size of the image
  • HaruImage::getWidth — Get the width of the image
  • HaruImage::setColorMask — Set the color mask of the image
  • HaruImage::setMaskImage — Set the image mask
HaruFont::measureText
HaruImage::getBitsPerComponent
haru


Get the number of bits used to describe each color component of the image

HaruImage
HaruImage::getColorSpace
HaruImage
PHP 手册

HaruImage::getBitsPerComponent

(PECL haru >= 0.0.1)

HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image

说明

int HaruImage::getBitsPerComponent ( void )

Gets the number of bits used to describe each color component of the image.

参数

This function has no parameters.

返回值

Returns the number of bits used to describe each color component of the image.

错误／异常

Throws HaruException on error.

HaruImage
HaruImage::getColorSpace
HaruImage


Get the name of the color space

HaruImage::getBitsPerComponent
HaruImage::getHeight
HaruImage
PHP 手册

HaruImage::getColorSpace

(PECL haru >= 0.0.1)

HaruImage::getColorSpace — Get the name of the color space

说明

string HaruImage::getColorSpace ( void )

Get the name of the color space.

参数

This function has no parameters.

返回值

Returns the name of the color space of the image. The name is one of the following values:

  • "DeviceGray"
  • "DeviceRGB"
  • "DeviceCMYK"
  • "Indexed"

错误／异常

Throws HaruException on error.

HaruImage::getBitsPerComponent
HaruImage::getHeight
HaruImage


Get the height of the image

HaruImage::getColorSpace
HaruImage::getSize
HaruImage
PHP 手册

HaruImage::getHeight

(PECL haru >= 0.0.1)

HaruImage::getHeight — Get the height of the image

说明

int HaruImage::getHeight ( void )

Get the height of the image.

参数

This function has no parameters.

返回值

Returns the height of the image.

错误／异常

Throws HaruException on error.

HaruImage::getColorSpace
HaruImage::getSize
HaruImage


Get size of the image

HaruImage::getHeight
HaruImage::getWidth
HaruImage
PHP 手册

HaruImage::getSize

(PECL haru >= 0.0.1)

HaruImage::getSize — Get size of the image

说明

array HaruImage::getSize ( void )

Get the size of the image.

参数

This function has no parameters.

返回值

Returns an array with two elements: width and height, which contain appropriate dimensions of the image.

错误／异常

Throws HaruException on error.

HaruImage::getHeight
HaruImage::getWidth
HaruImage


Get the width of the image

HaruImage::getSize
HaruImage::setColorMask
HaruImage
PHP 手册

HaruImage::getWidth

(PECL haru >= 0.0.1)

HaruImage::getWidth — Get the width of the image

说明

int HaruImage::getWidth ( void )

Get the width of the image.

参数

This function has no parameters.

返回值

Returns the width of the image.

错误／异常

Throws HaruException on error.

HaruImage::getSize
HaruImage::setColorMask
HaruImage


Set the color mask of the image

HaruImage::getWidth
HaruImage::setMaskImage
HaruImage
PHP 手册

HaruImage::setColorMask

(PECL haru >= 0.0.1)

HaruImage::setColorMask — Set the color mask of the image

说明

bool HaruImage::setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )

Defines the transparent color of the image using the RGB range values. The color within the range is displayed as a transparent color. The color space of the image must be RGB.

参数

rmin

The lower limit of red. Must be between 0 and 255.

rmax

The upper limit of red. Must be between 0 and 255.

gmin

The lower limit of green. Must be between 0 and 255.

gmax

The upper limit of green. Must be between 0 and 255.

bmin

The lower limit of blue. Must be between 0 and 255.

bmax

The upper limit of blue. Must be between 0 and 255.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruImage::getWidth
HaruImage::setMaskImage
HaruImage


Set the image mask

HaruImage::setColorMask
HaruEncoder
HaruImage
PHP 手册

HaruImage::setMaskImage

(PECL haru >= 0.0.1)

HaruImage::setMaskImage — Set the image mask

说明

bool HaruImage::setMaskImage ( object $mask_image )

Sets the image used as image-mask. It must be 1bit gray-scale color image.

参数

mask_image

A valid HaruImage instance.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruImage::setColorMask
HaruEncoder
HaruImage


The HaruEncoder class

简介

Haru PDF Encoder Class.

Class synopsis

HaruEncoder
HaruEncoder {
/* Methods */
int getByteType ( string $text , int $index )
int getType ( void )
int getUnicode ( int $character )
int getWritingMode ( void )
}

预定义常量

Type | Name | Description
int | HaruEncoder::TYPE_SINGLE_BYTE |
int | HaruEncoder::TYPE_DOUBLE_BYTE |
int | HaruEncoder::TYPE_UNINITIALIZED |
int | HaruEncoder::UNKNOWN |
int | HaruEncoder::WMODE_HORIZONTAL |
int | HaruEncoder::WMODE_VERTICAL |
int | HaruEncoder::BYTE_TYPE_SINGLE |
int | HaruEncoder::BYTE_TYPE_LEAD |
int | HaruEncoder::BYTE_TYPE_TRAIL |
int | HaruEncoder::BYTE_TYPE_UNKNOWN |

Table of Contents

  • HaruEncoder::getByteType — Get the type of the byte in the text
  • HaruEncoder::getType — Get the type of the encoder
  • HaruEncoder::getUnicode — Convert the specified character to unicode
  • HaruEncoder::getWritingMode — Get the writing mode of the encoder
HaruImage::setMaskImage
HaruEncoder::getByteType
haru


Get the type of the byte in the text

HaruEncoder
HaruEncoder::getType
HaruEncoder
PHP 手册

HaruEncoder::getByteType

(PECL haru >= 0.0.1)

HaruEncoder::getByteType — Get the type of the byte in the text

说明

int HaruEncoder::getByteType ( string $text , int $index )

Get the type of the byte in the text.

参数

text

The text.

index

The position in the text.

返回值

Returns the type of the byte in the text on the specified position. The result is one of the following values:

  • HaruEncoder::BYTE_TYPE_SINGLE - single byte character.
  • HaruEncoder::BYTE_TYPE_LEAD - lead byte of a double-byte character.
  • HaruEncoder::BYTE_TYPE_TRAIL - trailing byte of a double-byte character.
  • HaruEncoder::BYTE_TYPE_UNKNOWN - invalid encoder or cannot detect the byte type.

错误／异常

Throws HaruException on error.

HaruEncoder
HaruEncoder::getType
HaruEncoder


Get the type of the encoder

HaruEncoder::getByteType
HaruEncoder::getUnicode
HaruEncoder
PHP 手册

HaruEncoder::getType

(PECL haru >= 0.0.1)

HaruEncoder::getType — Get the type of the encoder

说明

int HaruEncoder::getType ( void )

Get the type of the encoder.

参数

This function has no parameters.

返回值

Returns the type of the encoder. The result is one of the following values:

  • HaruEncoder::TYPE_SINGLE_BYTE - the encoder is for single byte characters.
  • HaruEncoder::TYPE_DOUBLE_BYTE - the encoder is for multibyte characters.
  • HaruEncoder::TYPE_UNINITIALIZED - the encoder is not initialized.
  • HaruEncoder::UNKNOWN - the encoder is invalid.

错误／异常

Throws HaruException on error.

HaruEncoder::getByteType
HaruEncoder::getUnicode
HaruEncoder


Convert the specified character to unicode

HaruEncoder::getType
HaruEncoder::getWritingMode
HaruEncoder
PHP 手册

HaruEncoder::getUnicode

(PECL haru >= 0.0.1)

HaruEncoder::getUnicode — Convert the specified character to unicode

说明

int HaruEncoder::getUnicode ( int $character )

Converts the specified character to unicode.

参数

character

The character code to convert.

返回值

错误／异常

Throws HaruException on error.

HaruEncoder::getType
HaruEncoder::getWritingMode
HaruEncoder


Get the writing mode of the encoder

HaruEncoder::getUnicode
HaruOutline
HaruEncoder
PHP 手册

HaruEncoder::getWritingMode

(PECL haru >= 0.0.1)

HaruEncoder::getWritingMode — Get the writing mode of the encoder

说明

int HaruEncoder::getWritingMode ( void )

Get the writing mode of the encoder.

参数

This function has no parameters.

返回值

Returns the writing mode of the encoder. The result value is on of the following:

  • HaruEncoder::WMODE_HORIZONTAL - horizontal writing mode.
  • HaruEncoder::WMODE_VERTICAL - vertical writing mode.

错误／异常

Throws HaruException on error.

HaruEncoder::getUnicode
HaruOutline
HaruEncoder


The HaruOutline class

简介

Haru PDF Outline Class.

Class synopsis

HaruOutline
HaruOutline {
/* Methods */
bool setDestination ( object $destination )
bool setOpened ( bool $opened )
}

Table of Contents

  • HaruOutline::setDestination — Set the destination for the outline
  • HaruOutline::setOpened — Set the initial state of the outline
HaruEncoder::getWritingMode
HaruOutline::setDestination
haru


Set the destination for the outline

HaruOutline
HaruOutline::setOpened
HaruOutline
PHP 手册

HaruOutline::setDestination

(PECL haru >= 0.0.1)

HaruOutline::setDestination — Set the destination for the outline

说明

bool HaruOutline::setDestination ( object $destination )

Sets a destination object which becomes a target to jump to when the outline is clicked.

参数

destination

A valid HaruDestination instance.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruOutline
HaruOutline::setOpened
HaruOutline


Set the initial state of the outline

HaruOutline::setDestination
HaruAnnotation
HaruOutline
PHP 手册

HaruOutline::setOpened

(PECL haru >= 0.0.1)

HaruOutline::setOpened — Set the initial state of the outline

说明

bool HaruOutline::setOpened ( bool $opened )

Defines whether this node is opened or not when the outline is displayed for the first time.

参数

opened

TRUE means open, FALSE - closed.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruOutline::setDestination
HaruAnnotation
HaruOutline


The HaruAnnotation class

简介

Haru PDF Annotation Class.

Class synopsis

HaruAnnotation
HaruAnnotation {
/* Methods */
bool setBorderStyle ( float $width , int $dash_on , int $dash_off )
bool setHighlightMode ( int $mode )
bool setIcon ( int $icon )
bool setOpened ( bool $opened )
}

预定义常量

Type | Name | Description
int | HaruAnnotation::NO_HIGHLIGHT |
int | HaruAnnotation::INVERT_BOX |
int | HaruAnnotation::INVERT_BORDER |
int | HaruAnnotation::DOWN_APPEARANCE |
int | HaruAnnotation::ICON_COMMENT |
int | HaruAnnotation::ICON_KEY |
int | HaruAnnotation::ICON_NOTE |
int | HaruAnnotation::ICON_HELP |
int | HaruAnnotation::ICON_NEW_PARAGRAPH |
int | HaruAnnotation::ICON_PARAGRAPH |
int | HaruAnnotation::ICON_INSERT |

Table of Contents

  • HaruAnnotation::setBorderStyle — Set the border style of the annotation
  • HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation
  • HaruAnnotation::setIcon — Set the icon style of the annotation
  • HaruAnnotation::setOpened — Set the initial state of the annotation
HaruOutline::setOpened
HaruAnnotation::setBorderStyle
haru


Set the border style of the annotation

HaruAnnotation
HaruAnnotation::setHighlightMode
HaruAnnotation
PHP 手册

HaruAnnotation::setBorderStyle

(PECL haru >= 0.0.1)

HaruAnnotation::setBorderStyle — Set the border style of the annotation

说明

bool HaruAnnotation::setBorderStyle ( float $width , int $dash_on , int $dash_off )

Defines the style of the border of the annotation. This function may be used with link annotations only.

参数

width

The width of the border line.

dash_on

The dash style.

dash_off

The dash style.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruAnnotation
HaruAnnotation::setHighlightMode
HaruAnnotation


Set the highlighting mode of the annotation

HaruAnnotation::setBorderStyle
HaruAnnotation::setIcon
HaruAnnotation
PHP 手册

HaruAnnotation::setHighlightMode

(PECL haru >= 0.0.1)

HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation

说明

bool HaruAnnotation::setHighlightMode ( int $mode )

Defines the appearance of the annotation when clicked. This function may be used with link annotations only.

参数

mode

The highlighting mode of the annotation. Can take only these values:

  • HaruAnnotation::NO_HIGHLIGHT - no highlighting.
  • HaruAnnotation::INVERT_BOX - invert the contents of the annotation.
  • HaruAnnotation::INVERT_BORDER - invert the border of the annotation.
  • HaruAnnotation::DOWN_APPEARANCE - dent the annotation.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruAnnotation::setBorderStyle
HaruAnnotation::setIcon
HaruAnnotation


Set the icon style of the annotation

HaruAnnotation::setHighlightMode
HaruAnnotation::setOpened
HaruAnnotation
PHP 手册

HaruAnnotation::setIcon

(PECL haru >= 0.0.1)

HaruAnnotation::setIcon — Set the icon style of the annotation

说明

bool HaruAnnotation::setIcon ( int $icon )

Defines the style of the annotation icon. This function may be used with text annotations only.

参数

icon

The style of the icon. Can take only these values:

  • HaruAnnotation::ICON_COMMENT
  • HaruAnnotation::ICON_KEY
  • HaruAnnotation::ICON_NOTE
  • HaruAnnotation::ICON_HELP
  • HaruAnnotation::ICON_NEW_PARAGRAPH
  • HaruAnnotation::ICON_PARAGRAPH
  • HaruAnnotation::ICON_INSERT

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruAnnotation::setHighlightMode
HaruAnnotation::setOpened
HaruAnnotation


Set the initial state of the annotation

HaruAnnotation::setIcon
HaruDestination
HaruAnnotation
PHP 手册

HaruAnnotation::setOpened

(PECL haru >= 0.0.1)

HaruAnnotation::setOpened — Set the initial state of the annotation

说明

bool HaruAnnotation::setOpened ( bool $opened )

Defines whether the annotation is initially displayed open. This function may be used with text annotations only.

参数

opened

TRUE means the annotation is initially displayed open, FALSE - means it's closed.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruAnnotation::setIcon
HaruDestination
HaruAnnotation


The HaruDestination class

简介

Haru PDF Destination Class.

Class synopsis

HaruDestination
HaruDestination {
/* Methods */
bool setFit ( void )
bool setFitB ( void )
bool setFitBH ( float $top )
bool setFitBV ( float $left )
bool setFitH ( float $top )
bool setFitR ( float $left , float $bottom , float $right , float $top )
bool setFitV ( float $left )
bool setXYZ ( float $left , float $top , float $zoom )
}

Table of Contents

  • HaruDestination::setFit — Set the appearance of the page to fit the window
  • HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window
  • HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box
  • HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box
  • HaruDestination::setFitH — Set the appearance of the page to fit the window width
  • HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle
  • HaruDestination::setFitV — Set the appearance of the page to fit the window height
  • HaruDestination::setXYZ — Set the appearance of the page
HaruAnnotation::setOpened
HaruDestination::setFit
haru


Set the appearance of the page to fit the window

HaruDestination
HaruDestination::setFitB
HaruDestination
PHP 手册

HaruDestination::setFit

(PECL haru >= 0.0.1)

HaruDestination::setFit — Set the appearance of the page to fit the window

说明

bool HaruDestination::setFit ( void )

Defines the appearance of the page to fit the window.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination
HaruDestination::setFitB
HaruDestination


Set the appearance of the page to fit the bounding box of the page within the window

HaruDestination::setFit
HaruDestination::setFitBH
HaruDestination
PHP 手册

HaruDestination::setFitB

(PECL haru >= 0.0.1)

HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window

说明

bool HaruDestination::setFitB ( void )

Defines the appearance of the page to fit the bounding box of the page within the window.

参数

This function has no parameters.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFit
HaruDestination::setFitBH
HaruDestination


Set the appearance of the page to fit the width of the bounding box

HaruDestination::setFitB
HaruDestination::setFitBV
HaruDestination
PHP 手册

HaruDestination::setFitBH

(PECL haru >= 0.0.1)

HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box

说明

bool HaruDestination::setFitBH ( float $top )

Defines the appearance of the page to magnifying to fit the width of the bounding box and setting the top position of the page to the value of top .

参数

top

The top coordinates of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFitB
HaruDestination::setFitBV
HaruDestination


Set the appearance of the page to fit the height of the boudning box

HaruDestination::setFitBH
HaruDestination::setFitH
HaruDestination
PHP 手册

HaruDestination::setFitBV

(PECL haru >= 0.0.1)

HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box

说明

bool HaruDestination::setFitBV ( float $left )

Defines the appearance of the page to magnifying to fit the height of the bounding box and setting the left position of the page to the value of left .

参数

left

The left coordinates of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFitBH
HaruDestination::setFitH
HaruDestination


Set the appearance of the page to fit the window width

HaruDestination::setFitBV
HaruDestination::setFitR
HaruDestination
PHP 手册

HaruDestination::setFitH

(PECL haru >= 0.0.1)

HaruDestination::setFitH — Set the appearance of the page to fit the window width

说明

bool HaruDestination::setFitH ( float $top )

Defines the appearance of the page to fit the window width and sets the top position of the page to the value of top .

参数

top

The top position of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFitBV
HaruDestination::setFitR
HaruDestination


Set the appearance of the page to fit the specified rectangle

HaruDestination::setFitH
HaruDestination::setFitV
HaruDestination
PHP 手册

HaruDestination::setFitR

(PECL haru >= 0.0.1)

HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle

说明

bool HaruDestination::setFitR ( float $left , float $bottom , float $right , float $top )

Defines the appearance of the page to fit the rectangle by the parameters.

参数

left

The left coordinates of the page.

bottom

The bottom coordinates of the page.

right

The right coordinates of the page.

top

The top coordinates of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFitH
HaruDestination::setFitV
HaruDestination


Set the appearance of the page to fit the window height

HaruDestination::setFitR
HaruDestination::setXYZ
HaruDestination
PHP 手册

HaruDestination::setFitV

(PECL haru >= 0.0.1)

HaruDestination::setFitV — Set the appearance of the page to fit the window height

说明

bool HaruDestination::setFitV ( float $left )

Defines the appearance of the page to fit the window height.

参数

left

The left position of the page.

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFitR
HaruDestination::setXYZ
HaruDestination


Set the appearance of the page

HaruDestination::setFitV
Ming
HaruDestination
PHP 手册

HaruDestination::setXYZ

(PECL haru >= 0.0.1)

HaruDestination::setXYZ — Set the appearance of the page

说明

bool HaruDestination::setXYZ ( float $left , float $top , float $zoom )

Defines the appearance of the page using three parameters: left , top and zoom .

参数

left

The left position of the page.

top

The top position of the page.

zoom

The magnification factor. The value must be between 0.08 (8%) and 32 (3200%).

返回值

Returns TRUE on success.

错误／异常

Throws HaruException on error.

HaruDestination::setFitV
Ming
HaruDestination


Ming (flash)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • SWFAction Examples
    • SWFSPrite basic examples
  • Ming 函数
    • ming_keypress — Returns the action flag for keyPress(char)
    • ming_setcubicthreshold — Set cubic threshold
    • ming_setscale — Set the global scaling factor.
    • ming_setswfcompression — Sets the SWF output compression
    • ming_useconstants — Use constant pool
    • ming_useswfversion — Sets the SWF version
  • SWFAction — The SWFAction class
    • SWFAction->__construct — Creates a new SWFAction
  • SWFBitmap — The SWFBitmap class
    • SWFBitmap->__construct — Loads Bitmap object
    • SWFBitmap->getHeight — Returns the bitmap's height
    • SWFBitmap->getWidth — Returns the bitmap's width
  • SWFButton — The SWFButton class
    • SWFButton->addAction — Adds an action
    • SWFButton->addASound — Associates a sound with a button transition
    • SWFButton->addShape — Adds a shape to a button
    • SWFButton->__construct — Creates a new Button
    • SWFButton->setAction — Sets the action
    • SWFButton->setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
    • SWFButton->setHit — Alias for addShape(shape, SWFBUTTON_HIT)
    • SWFButton->setMenu — enable track as menu button behaviour
    • SWFButton->setOver — Alias for addShape(shape, SWFBUTTON_OVER)
    • SWFButton->setUp — Alias for addShape(shape, SWFBUTTON_UP)
  • SWFDisplayItem — The SWFDisplayItem class
    • SWFDisplayItem->addAction — Adds this SWFAction to the given SWFSprite instance
    • SWFDisplayItem->addColor — Adds the given color to this item's color transform
    • SWFDisplayItem->endMask — Another way of defining a MASK layer
    • SWFDisplayItem->getRot — 说明
    • SWFDisplayItem->getX — 说明
    • SWFDisplayItem->getXScale — 说明
    • SWFDisplayItem->getXSkew — 说明
    • SWFDisplayItem->getY — 说明
    • SWFDisplayItem->getYScale — 说明
    • SWFDisplayItem->getYSkew — 说明
    • SWFDisplayItem->move — Moves object in relative coordinates
    • SWFDisplayItem->moveTo — Moves object in global coordinates
    • SWFDisplayItem->multColor — Multiplies the item's color transform
    • SWFDisplayItem->remove — Removes the object from the movie
    • SWFDisplayItem->rotate — Rotates in relative coordinates
    • SWFDisplayItem->rotateTo — Rotates the object in global coordinates
    • SWFDisplayItem->scale — Scales the object in relative coordinates
    • SWFDisplayItem->scaleTo — Scales the object in global coordinates
    • SWFDisplayItem->setDepth — Sets z-order
    • SWFDisplayItem->setMaskLevel — Defines a MASK layer at level
    • SWFDisplayItem->setMatrix — Sets the item's transform matrix
    • SWFDisplayItem->setName — Sets the object's name
    • SWFDisplayItem->setRatio — Sets the object's ratio
    • SWFDisplayItem->skewX — Sets the X-skew
    • SWFDisplayItem->skewXTo — Sets the X-skew
    • SWFDisplayItem->skewY — Sets the Y-skew
    • SWFDisplayItem->skewYTo — Sets the Y-skew
  • SWFFill — The SWFFill class
    • SWFFill->moveTo — Moves fill origin
    • SWFFill->rotateTo — Sets fill's rotation
    • SWFFill->scaleTo — Sets fill's scale
    • SWFFill->skewXTo — Sets fill x-skew
    • SWFFill->skewYTo — Sets fill y-skew
  • SWFFont — The SWFFont class
    • SWFFont->__construct — Loads a font definition
    • SWFFont->getAscent — Returns the ascent of the font, or 0 if not available
    • SWFFont->getDescent — Returns the descent of the font, or 0 if not available
    • SWFFont->getLeading — Returns the leading of the font, or 0 if not available
    • SWFFont->getShape — Returns the glyph shape of a char as a text string
    • SWFFont->getUTF8Width — Calculates the width of the given string in this font at full height
    • SWFFont->getWidth — Returns the string's width
  • SWFFontChar — The SWFFontChar class
    • SWFFontChar->addChars — Adds characters to a font for exporting font
    • SWFFontChar->addUTF8Chars — Adds characters to a font for exporting font
  • SWFGradient — The SWFGradient class
    • SWFGradient->addEntry — Adds an entry to the gradient list
    • SWFGradient->__construct — Creates a gradient object
  • SWFMorph — The SWFMorph class
    • SWFMorph->__construct — Creates a new SWFMorph object
    • SWFMorph->getShape1 — Gets a handle to the starting shape
    • SWFMorph->getShape2 — Gets a handle to the ending shape
  • SWFMovie — The SWFMovie class
    • SWFMovie->add — Adds any type of data to a movie
    • SWFMovie->addExport — 说明
    • SWFMovie->addFont — 说明
    • SWFMovie->__construct — Creates a new movie object, representing an SWF version 4 movie
    • SWFMovie->importChar — 说明
    • SWFMovie->importFont — 说明
    • SWFMovie->labelFrame — Labels a frame
    • SWFMovie->nextFrame — Moves to the next frame of the animation
    • SWFMovie->output — Dumps your lovingly prepared movie out
    • SWFMovie->remove — Removes the object instance from the display list
    • SWFMovie->save — Saves the SWF movie in a file
    • SWFMovie->saveToFile — 说明
    • SWFMovie->setbackground — Sets the background color
    • SWFMovie->setDimension — Sets the movie's width and height
    • SWFMovie->setFrames — Sets the total number of frames in the animation
    • SWFMovie->setRate — Sets the animation's frame rate
    • SWFMovie->startSound — 说明
    • SWFMovie->stopSound — 说明
    • SWFMovie->streamMP3 — Streams a MP3 file
    • SWFMovie->writeExports — 说明
  • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFPrebuiltClip->__construct — Returns a SWFPrebuiltClip object
  • SWFShape — The SWFShape class
    • SWFShape->addFill — Adds a solid fill to the shape
    • SWFShape->__construct — Creates a new shape object
    • SWFShape->drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
    • SWFShape->drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
    • SWFShape->drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape->drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape->drawCurve — Draws a curve (relative)
    • SWFShape->drawCurveTo — Draws a curve
    • SWFShape->drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
    • SWFShape->drawLine — Draws a line (relative)
    • SWFShape->drawLineTo — Draws a line
    • SWFShape->movePen — Moves the shape's pen (relative)
    • SWFShape->movePenTo — Moves the shape's pen
    • SWFShape->setLeftFill — Sets left rasterizing color
    • SWFShape->setLine — Sets the shape's line style
    • SWFShape->setRightFill — Sets right rasterizing color
  • SWFSound — The SWFSound class
    • SWFSound — Returns a new SWFSound object from given file
  • SWFSoundInstance — The SWFSoundInstance class
    • SWFSoundInstance->loopCount — 说明
    • SWFSoundInstance->loopInPoint — 说明
    • SWFSoundInstance->loopOutPoint — 说明
    • SWFSoundInstance->noMultiple — 说明
  • SWFSprite — The SWFSprite class
    • SWFSprite->add — Adds an object to a sprite
    • SWFSprite->__construct — Creates a movie clip (a sprite)
    • SWFSprite->labelFrame — Labels frame
    • SWFSprite->nextFrame — Moves to the next frame of the animation
    • SWFSprite->remove — Removes an object to a sprite
    • SWFSprite->setFrames — Sets the total number of frames in the animation
    • SWFSprite->startSound — 说明
    • SWFSprite->stopSound — 说明
  • SWFText — The SWFText class
    • SWFText->addString — Draws a string
    • SWFText->addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
    • SWFText->__construct — Creates a new SWFText object
    • SWFText->getAscent — Returns the ascent of the current font at its current size, or 0 if not available
    • SWFText->getDescent — Returns the descent of the current font at its current size, or 0 if not available
    • SWFText->getLeading — Returns the leading of the current font at its current size, or 0 if not available
    • SWFText->getUTF8Width — calculates the width of the given string in this text objects current font and size
    • SWFText->getWidth — Computes string's width
    • SWFText->moveTo — Moves the pen
    • SWFText->setColor — Sets the current text color
    • SWFText->setFont — Sets the current font
    • SWFText->setHeight — Sets the current font height
    • SWFText->setSpacing — Sets the current font spacing
  • SWFTextField — The SWFTextField class
    • SWFTextField->addChars — adds characters to a font that will be available within a textfield
    • SWFTextField->addString — Concatenates the given string to the text field
    • SWFTextField->align — Sets the text field alignment
    • SWFTextField->__construct — Creates a text field object
    • SWFTextField->setBounds — Sets the text field width and height
    • SWFTextField->setColor — Sets the color of the text field
    • SWFTextField->setFont — Sets the text field font
    • SWFTextField->setHeight — Sets the font height of this text field font
    • SWFTextField->setIndentation — Sets the indentation of the first line
    • SWFTextField->setLeftMargin — Sets the left margin width of the text field
    • SWFTextField->setLineSpacing — Sets the line spacing of the text field
    • SWFTextField->setMargins — Sets the margins width of the text field
    • SWFTextField->setName — Sets the variable name
    • SWFTextField->setPadding — Sets the padding of this textfield
    • SWFTextField->setRightMargin — Sets the right margin width of the text field
  • SWFVideoStream — The SWFVideoStream class
    • SWFVideoStream->__construct — Returns a SWFVideoStream object
    • SWFVideoStream->getNumFrames — Returns the number of frames in the video
    • SWFVideoStream->setDimension — Sets video dimension
HaruDestination::setXYZ
简介
非文本内容的MIME输出


简介

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know at » http://www.libming.org/.

Ming was added in PHP 4.0.5.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.3.0.

Ming
安装/配置
Ming


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Ming


需求

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: » http://www.libming.org/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.

安装/配置
安装
安装/配置


安装

Example #1 built into PHP (Unix)

    mkdir <phpdir>/ext/ming
    cp php_ext/* <phpdir>/ext/ming
    cd <phpdir>
    ./buildconf
    ./configure --with-ming <other config options>

Build and install PHP as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl('php_ming.so'); at the head of all of your Ming scripts.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

MING_NEW (integer)
MING_ZLIB (integer)
SWFBUTTON_HIT (integer)
SWFBUTTON_DOWN (integer)
SWFBUTTON_OVER (integer)
SWFBUTTON_UP (integer)
SWFBUTTON_MOUSEUPOUTSIDE (integer)
SWFBUTTON_DRAGOVER (integer)
SWFBUTTON_DRAGOUT (integer)
SWFBUTTON_MOUSEUP (integer)
SWFBUTTON_MOUSEDOWN (integer)
SWFBUTTON_MOUSEOUT (integer)
SWFBUTTON_MOUSEOVER (integer)
SWFFILL_RADIAL_GRADIENT (integer)
SWFFILL_LINEAR_GRADIENT (integer)
SWFFILL_TILED_BITMAP (integer)
SWFFILL_CLIPPED_BITMAP (integer)
SWFTEXTFIELD_HASLENGTH (integer)
SWFTEXTFIELD_NOEDIT (integer)
SWFTEXTFIELD_PASSWORD (integer)
SWFTEXTFIELD_MULTILINE (integer)
SWFTEXTFIELD_WORDWRAP (integer)
SWFTEXTFIELD_DRAWBOX (integer)
SWFTEXTFIELD_NOSELECT (integer)
SWFTEXTFIELD_HTML (integer)
SWFTEXTFIELD_ALIGN_LEFT (integer)
SWFTEXTFIELD_ALIGN_RIGHT (integer)
SWFTEXTFIELD_ALIGN_CENTER (integer)
SWFTEXTFIELD_ALIGN_JUSTIFY (integer)
SWFACTION_ONLOAD (integer)
SWFACTION_ENTERFRAME (integer)
SWFACTION_UNLOAD (integer)
SWFACTION_MOUSEMOVE (integer)
SWFACTION_MOUSEDOWN (integer)
SWFACTION_MOUSEUP (integer)
SWFACTION_KEYDOWN (integer)
SWFACTION_KEYUP (integer)
SWFACTION_DATA (integer)
资源类型
范例
Ming


范例

Table of Contents

  • SWFAction Examples
  • SWFSPrite basic examples
预定义常量
SWFAction Examples
Ming


SWFAction Examples

This simple example will move the red square across the window.

Example #1 swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Example #2 swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Example #3 swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

范例
SWFSPrite basic examples
范例


SWFSPrite basic examples

This simple example will spin gracefully a big red square.

Example #1 swfsprite() example

<?php
$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(-500, -500);
$s->drawLineTo(500, -500);
$s->drawLineTo(500, 500);
$s->drawLineTo(-500, 500);
$s->drawLineTo(-500, -500);

$p = new SWFSprite();
$i = $p->add($s);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->moveTo(1500, 1000);
$i->setName("blah");

$m->setBackground(0xff, 0xff, 0xff);
$m->setDimension(3000, 2000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFAction Examples
Ming 函数
范例


Ming 函数

Table of Contents

  • ming_keypress — Returns the action flag for keyPress(char)
  • ming_setcubicthreshold — Set cubic threshold
  • ming_setscale — Set the global scaling factor.
  • ming_setswfcompression — Sets the SWF output compression
  • ming_useconstants — Use constant pool
  • ming_useswfversion — Sets the SWF version
SWFSPrite basic examples
ming_keypress
Ming


Returns the action flag for keyPress(char)

Ming 函数
ming_setcubicthreshold
Ming 函数
PHP 手册

ming_keypress

(PHP 5)

ming_keypress — Returns the action flag for keyPress(char)

说明

int ming_keypress ( string $char )
Warning

本函数暂无文档，仅有参数列表。

Ming 函数
ming_setcubicthreshold
Ming 函数


Set cubic threshold

ming_keypress
ming_setscale
Ming 函数
PHP 手册

ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5)

ming_setcubicthreshold — Set cubic threshold

说明

void ming_setcubicthreshold ( int $threshold )

Sets the threshold error for drawing cubic beziers.

参数

threshold

The Threshold. Lower is more accurate, hence larger file size.

返回值

无返回值。

ming_keypress
ming_setscale
Ming 函数


Set the global scaling factor.

ming_setcubicthreshold
ming_setswfcompression
Ming 函数
PHP 手册

ming_setscale

(PHP 4 >= 4.0.5, PHP 5)

ming_setscale — Set the global scaling factor.

说明

void ming_setscale ( float $scale )

Sets the scale of the output SWF. Inside the SWF file, coordinates are measured in TWIPS, rather than PIXELS. There are 20 TWIPS in 1 pixel.

参数

scale

The scale to be set.

返回值

无返回值。

ming_setcubicthreshold
ming_setswfcompression
Ming 函数


Sets the SWF output compression

ming_setscale
ming_useconstants
Ming 函数
PHP 手册

ming_setswfcompression

(PHP 5 >= 5.2.1)

ming_setswfcompression — Sets the SWF output compression

说明

void ming_setswfcompression ( int $level )

Sets the SWF output compression level.

参数

level

The new compression level. Should be a value between 1 and 9 inclusive.

返回值

无返回值。

ming_setscale
ming_useconstants
Ming 函数


Use constant pool

ming_setswfcompression
ming_useswfversion
Ming 函数
PHP 手册

ming_useconstants

(PHP 5)

ming_useconstants — Use constant pool

说明

void ming_useconstants ( int $use )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

ming_setswfcompression
ming_useswfversion
Ming 函数


Sets the SWF version

ming_useconstants
SWFAction
Ming 函数
PHP 手册

ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5)

ming_useswfversion — Sets the SWF version

说明

void ming_useswfversion ( int $version )

Sets the SWF version to be used in the movie. This affect the bahaviour of Action Script.

参数

version

SWF version to use.

返回值

无返回值。

范例

Example #1 ming_useswfversion() example

<?php

$movie = new SWFMovie();
ming_useswfversion(4); // Flash 4

?>

ming_useconstants
SWFAction
Ming 函数


The SWFAction class

简介

SWFAction.

Class synopsis

SWFAction
SWFAction {
/* Methods */
SWFAction __construct ( string $script )
}

说明

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break
  • for
  • continue
  • if
  • else
  • do
  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()
Returns the number of milliseconds (?) elapsed since the movie started.
random(seed)
Returns a pseudo-random number in the range 0-seed.
length(expr)
Returns the length of the given expression.
int(number)
Returns the given number rounded down to the nearest integer.
concat(expr, expr)
Returns the concatenation of the given expressions.
ord(expr)
Returns the ASCII code for the given character
chr(num)
Returns the character for the given ASCII code
substr(string, location, length)
Returns the substring of length length at location location of the given string string .

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)
Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth .
removeClip(expr)
Removes the named movie clip.
trace(expr)
Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.
startDrag(target, lock, [left, top, right, bottom])
Start dragging the movie clip target . The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.
stopDrag()
Stop dragging my heart around. And this movie clip, too.
callFrame(expr)
Call the named frame as a function.
getURL(url, target, [method])
Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.
loadMovie(url, target)
Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).
nextFrame()
Go to the next frame.
prevFrame()
Go to the last (or, rather, previous) frame.
play()
Start playing the movie.
stop()
Stop playing the movie.
toggleQuality()
Toggle between high and low quality.
stopSounds()
Stop playing all sounds.
gotoFrame(num)
Go to frame number num . Frame numbers start at 0.
gotoFrame(name)
Go to the frame named name . Which does a lot of good, since I haven't added frame labels yet.
setTarget(expr)
Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x
  • y
  • xScale
  • yScale
  • currentFrame - (read-only)
  • totalFrames - (read-only)
  • alpha - transparency level
  • visible - 1=on, 0=off (?)
  • width - (read-only)
  • height - (read-only)
  • rotation
  • target - (read-only) (???)
  • framesLoaded - (read-only)
  • name
  • dropTarget - (read-only) (???)
  • url - (read-only) (???)
  • highQuality - 1=high, 0=low (?)
  • focusRect - (???)
  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

Table of Contents

  • SWFAction->__construct — Creates a new SWFAction
ming_useswfversion
SWFAction->__construct
Ming


Creates a new SWFAction

SWFAction
SWFBitmap
SWFAction
PHP 手册

SWFAction->__construct

(No version information available, might be only in CVS)

SWFAction->__construct — Creates a new SWFAction

说明

SWFAction
SWFAction __construct ( string $script )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new SWFAction and compiles the given script in it.

参数

script

An ActionScript snippet to associate with the SWFAction. See SWFAction for more details.

SWFAction
SWFBitmap
SWFAction


The SWFBitmap class

简介

SWFBitmap.

Class synopsis

SWFBitmap
SWFBitmap {
/* Methods */
SWFBitmap __construct ( mixed $file [, mixed $alphafile ] )
float getHeight ( void )
float getWidth ( void )
}

Table of Contents

  • SWFBitmap->__construct — Loads Bitmap object
  • SWFBitmap->getHeight — Returns the bitmap's height
  • SWFBitmap->getWidth — Returns the bitmap's width
SWFAction->__construct
SWFBitmap->__construct
Ming


Loads Bitmap object

SWFBitmap
SWFBitmap->getHeight
SWFBitmap
PHP 手册

SWFBitmap->__construct

(No version information available, might be only in CVS)

SWFBitmap->__construct — Loads Bitmap object

说明

SWFBitmap
SWFBitmap __construct ( mixed $file [, mixed $alphafile ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates the new SWFBitmap object from the given file .

参数

For both parameters you can provide a file pointer returned by fopen() or the image data, as a binary string.

file

Note: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

alphafile

An MSK file to be used as an alpha mask for a JPEG image.

范例

Example #1 Importing a DBL file

<?php
$s = new SWFShape();
$f = $s->addFill(new SWFBitmap(file_get_contents("image.dbl")));
$s->setRightFill($f);

$s->drawLine(32, 0);
$s->drawLine(0, 32);
$s->drawLine(-32, 0);
$s->drawLine(0, -32);

$m = new SWFMovie();
$m->setDimension(32, 32);
$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Example #2 Using an alpha mask

<?php

$s = new SWFShape();

// .msk file generated with "gif2mask" utility
$f = $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
$s->setRightFill($f);

$s->drawLine(640, 0);
$s->drawLine(0, 480);
$s->drawLine(-640, 0);
$s->drawLine(0, -480);

$c = new SWFShape();
$c->setRightFill($c->addFill(0x99, 0x99, 0x99));
$c->drawLine(40, 0);
$c->drawLine(0, 40);
$c->drawLine(-40, 0);
$c->drawLine(0, -40);

$m = new SWFMovie();
$m->setDimension(640, 480);
$m->setBackground(0xcc, 0xcc, 0xcc);

// draw checkerboard background
for ($y=0; $y<480; $y+=40) {
  for ($x=0; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }

  $y+=40;

  for ($x=40; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }
}

$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFBitmap
SWFBitmap->getHeight
SWFBitmap


Returns the bitmap's height

SWFBitmap->__construct
SWFBitmap->getWidth
SWFBitmap
PHP 手册

SWFBitmap->getHeight

(No version information available, might be only in CVS)

SWFBitmap->getHeight — Returns the bitmap's height

说明

SWFBitmap
float getHeight ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the bitmap's height.

返回值

Returns the bitmap height in pixels.

参见

  • SWFBitmap->getWidth

SWFBitmap->__construct
SWFBitmap->getWidth
SWFBitmap


Returns the bitmap's width

SWFBitmap->getHeight
SWFButton
SWFBitmap
PHP 手册

SWFBitmap->getWidth

(No version information available, might be only in CVS)

SWFBitmap->getWidth — Returns the bitmap's width

说明

SWFBitmap
float getWidth ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the bitmap's width.

返回值

Returns the bitmap width in pixels.

参见

  • SWFBitmap->getHeight

SWFBitmap->getHeight
SWFButton
SWFBitmap


The SWFButton class

简介

SWFButton.

Class synopsis

SWFButton
SWFButton {
/* Methods */
void addAction ( SWFAction $action , int $flags )
SWFSoundInstance addASound ( SWFSound $sound , int $flags )
void addShape ( SWFShape $shape , int $flags )
SWFButton __construct ( void )
void setAction ( SWFAction $action )
void setDown ( SWFShape $shape )
void setHit ( SWFShape $shape )
void setMenu ( int $flag )
void setOver ( SWFShape $shape )
void setUp ( SWFShape $shape )
}

Table of Contents

  • SWFButton->addAction — Adds an action
  • SWFButton->addASound — Associates a sound with a button transition
  • SWFButton->addShape — Adds a shape to a button
  • SWFButton->__construct — Creates a new Button
  • SWFButton->setAction — Sets the action
  • SWFButton->setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
  • SWFButton->setHit — Alias for addShape(shape, SWFBUTTON_HIT)
  • SWFButton->setMenu — enable track as menu button behaviour
  • SWFButton->setOver — Alias for addShape(shape, SWFBUTTON_OVER)
  • SWFButton->setUp — Alias for addShape(shape, SWFBUTTON_UP)
SWFBitmap->getWidth
SWFButton->addAction
Ming


Adds an action

SWFButton
SWFButton->addASound
SWFButton
PHP 手册

SWFButton->addAction

(No version information available, might be only in CVS)

SWFButton->addAction — Adds an action

说明

SWFButton
void addAction ( SWFAction $action , int $flags )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Adds the given action to the button for the given conditions.

参数

action

An SWFAction, returned by SWFAction->__construct.

flags

The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

返回值

无返回值。

参见

  • SWFButton->addShape
  • SWFAction

SWFButton
SWFButton->addASound
SWFButton


Associates a sound with a button transition

SWFButton->addAction
SWFButton->addShape
SWFButton
PHP 手册

SWFButton->addASound

(No version information available, might be only in CVS)

SWFButton->addASound — Associates a sound with a button transition

说明

SWFButton
SWFSoundInstance addASound ( SWFSound $sound , int $flags )
Warning

本函数暂无文档，仅有参数列表。

SWFButton->addAction
SWFButton->addShape
SWFButton


Adds a shape to a button

SWFButton->addASound
SWFButton->__construct
SWFButton
PHP 手册

SWFButton->addShape

(No version information available, might be only in CVS)

SWFButton->addShape — Adds a shape to a button

说明

SWFButton
void addShape ( SWFShape $shape , int $flags )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Adds the given shape to the button.

参数

shape

An SWFShape instance

flags

The following flags are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN and SWFBUTTON_HIT.

SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

返回值

无返回值。

SWFButton->addASound
SWFButton->__construct
SWFButton


Creates a new Button

SWFButton->addShape
SWFButton->setAction
SWFButton
PHP 手册

SWFButton->__construct

(No version information available, might be only in CVS)

SWFButton->__construct — Creates a new Button

说明

SWFButton
SWFButton __construct ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new Button.

范例

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Example #1 Usual interactions with buttons

<?php

$f = new SWFFont("_serif");

$p = new SWFSprite();

function label($string)
{
  global $f;

  $t = new SWFTextField();
  $t->setFont($f);
  $t->addString($string);
  $t->setHeight(200);
  $t->setBounds(3200, 200);
  return $t;
}

function addLabel($string)
{
  global $p;

  $i = $p->add(label($string));
  $p->nextFrame();
  $p->remove($i);
}

$p->add(new SWFAction("stop();"));
addLabel("NO ACTION");
addLabel("SWFBUTTON_MOUSEUP");
addLabel("SWFBUTTON_MOUSEDOWN");
addLabel("SWFBUTTON_MOUSEOVER");
addLabel("SWFBUTTON_MOUSEOUT");
addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
addLabel("SWFBUTTON_DRAGOVER");
addLabel("SWFBUTTON_DRAGOUT");

function rect($r, $g, $b)
{
  $s = new SWFShape();
  $s->setRightFill($s->addFill($r, $g, $b));
  $s->drawLine(600, 0);
  $s->drawLine(0, 600);
  $s->drawLine(-600, 0);
  $s->drawLine(0, -600);

  return $s;
}

$b = new SWFButton();
$b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
$b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
$b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
          SWFBUTTON_MOUSEUP);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
      SWFBUTTON_MOUSEOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
      SWFBUTTON_MOUSEOUT);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
      SWFBUTTON_MOUSEUPOUTSIDE);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
      SWFBUTTON_DRAGOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
      SWFBUTTON_DRAGOUT);

$m = new SWFMovie();
$m->setDimension(4000, 3000);

$i = $m->add($p);
$i->setName("label");
$i->moveTo(400, 1900);

$i = $m->add($b);
$i->moveTo(400, 900);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Example #2 Drag example

<?php

$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->drawLine(1000,0);
$s->drawLine(0,1000);
$s->drawLine(-1000,0);
$s->drawLine(0,-1000);

$b = new SWFButton();
$b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

$b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("stopDrag();"),
      SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

$p = new SWFSprite();
$p->add($b);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->setName('test');
$i->moveTo(1000,1000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFButton->addShape
SWFButton->setAction
SWFButton


Sets the action

SWFButton->__construct
SWFButton->setDown
SWFButton
PHP 手册

SWFButton->setAction

(No version information available, might be only in CVS)

SWFButton->setAction — Sets the action

说明

SWFButton
void setAction ( SWFAction $action )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the action to be performed when the button is clicked.

This is a shortcut for SWFButton->addAction called with the SWFBUTTON_MOUSEUP flag.

参数

action

An SWFAction, returned by SWFAction->__construct.

返回值

无返回值。

参见

  • SWFButton->addAction
  • SWFAction

SWFButton->__construct
SWFButton->setDown
SWFButton


Alias for addShape(shape, SWFBUTTON_DOWN)

SWFButton->setAction
SWFButton->setHit
SWFButton
PHP 手册

SWFButton->setDown

(No version information available, might be only in CVS)

SWFButton->setDown — Alias for addShape(shape, SWFBUTTON_DOWN)

说明

SWFButton
void setDown ( SWFShape $shape )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

返回值

无返回值。

参见

  • SWFButton->addShape
  • SWFAction

SWFButton->setAction
SWFButton->setHit
SWFButton


Alias for addShape(shape, SWFBUTTON_HIT)

SWFButton->setDown
SWFButton->setMenu
SWFButton
PHP 手册

SWFButton->setHit

(No version information available, might be only in CVS)

SWFButton->setHit — Alias for addShape(shape, SWFBUTTON_HIT)

说明

SWFButton
void setHit ( SWFShape $shape )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

返回值

无返回值。

参见

  • SWFButton->addShape
  • SWFAction

SWFButton->setDown
SWFButton->setMenu
SWFButton


enable track as menu button behaviour

SWFButton->setHit
SWFButton->setOver
SWFButton
PHP 手册

SWFButton->setMenu

(No version information available, might be only in CVS)

SWFButton->setMenu — enable track as menu button behaviour

说明

SWFButton
void setMenu ( int $flag )
Warning

本函数暂无文档，仅有参数列表。

参数

flag

This parameter can be used for a slight different behavior of buttons. You can set it to 0 (off) or 1 (on).

返回值

无返回值。

SWFButton->setHit
SWFButton->setOver
SWFButton


Alias for addShape(shape, SWFBUTTON_OVER)

SWFButton->setMenu
SWFButton->setUp
SWFButton
PHP 手册

SWFButton->setOver

(No version information available, might be only in CVS)

SWFButton->setOver — Alias for addShape(shape, SWFBUTTON_OVER)

说明

SWFButton
void setOver ( SWFShape $shape )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

返回值

无返回值。

参见

  • SWFButton->addShape
  • SWFAction

SWFButton->setMenu
SWFButton->setUp
SWFButton


Alias for addShape(shape, SWFBUTTON_UP)

SWFButton->setOver
SWFDisplayItem
SWFButton
PHP 手册

SWFButton->setUp

(No version information available, might be only in CVS)

SWFButton->setUp — Alias for addShape(shape, SWFBUTTON_UP)

说明

SWFButton
void setUp ( SWFShape $shape )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

返回值

无返回值。

参见

  • SWFButton->addShape
  • SWFAction

SWFButton->setOver
SWFDisplayItem
SWFButton


The SWFDisplayItem class

简介

SWFDisplayItem.

Class synopsis

SWFDisplayItem
SWFDisplayItem {
/* Methods */
void addAction ( SWFAction $action , int $flags )
void addColor ( int $red , int $green , int $blue [, int $a ] )
void endMask ( void )
float getRot ( void )
float getX ( void )
float getXScale ( void )
float getXSkew ( void )
float getY ( void )
float getYScale ( void )
float getYSkew ( void )
void move ( float $dx , float $dy )
void moveTo ( float $x , float $y )
void multColor ( float $red , float $green , float $blue [, float $a ] )
void remove ( void )
void rotate ( float $angle )
void rotateTo ( float $angle )
void scale ( float $dx , float $dy )
void scaleTo ( float $x [, float $y ] )
void setDepth ( int $depth )
void setMaskLevel ( int $level )
void setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
void setName ( string $name )
void setRatio ( float $ratio )
void skewX ( float $ddegrees )
void skewXTo ( float $degrees )
void skewY ( float $ddegrees )
void skewYTo ( float $degrees )
}

Table of Contents

  • SWFDisplayItem->addAction — Adds this SWFAction to the given SWFSprite instance
  • SWFDisplayItem->addColor — Adds the given color to this item's color transform
  • SWFDisplayItem->endMask — Another way of defining a MASK layer
  • SWFDisplayItem->getRot — 说明
  • SWFDisplayItem->getX — 说明
  • SWFDisplayItem->getXScale — 说明
  • SWFDisplayItem->getXSkew — 说明
  • SWFDisplayItem->getY — 说明
  • SWFDisplayItem->getYScale — 说明
  • SWFDisplayItem->getYSkew — 说明
  • SWFDisplayItem->move — Moves object in relative coordinates
  • SWFDisplayItem->moveTo — Moves object in global coordinates
  • SWFDisplayItem->multColor — Multiplies the item's color transform
  • SWFDisplayItem->remove — Removes the object from the movie
  • SWFDisplayItem->rotate — Rotates in relative coordinates
  • SWFDisplayItem->rotateTo — Rotates the object in global coordinates
  • SWFDisplayItem->scale — Scales the object in relative coordinates
  • SWFDisplayItem->scaleTo — Scales the object in global coordinates
  • SWFDisplayItem->setDepth — Sets z-order
  • SWFDisplayItem->setMaskLevel — Defines a MASK layer at level
  • SWFDisplayItem->setMatrix — Sets the item's transform matrix
  • SWFDisplayItem->setName — Sets the object's name
  • SWFDisplayItem->setRatio — Sets the object's ratio
  • SWFDisplayItem->skewX — Sets the X-skew
  • SWFDisplayItem->skewXTo — Sets the X-skew
  • SWFDisplayItem->skewY — Sets the Y-skew
  • SWFDisplayItem->skewYTo — Sets the Y-skew
SWFButton->setUp
SWFDisplayItem->addAction
Ming


Adds this SWFAction to the given SWFSprite instance

SWFDisplayItem
SWFDisplayItem->addColor
SWFDisplayItem
PHP 手册

SWFDisplayItem->addAction

(No version information available, might be only in CVS)

SWFDisplayItem->addAction — Adds this SWFAction to the given SWFSprite instance

说明

SWFDisplayItem
void addAction ( SWFAction $action , int $flags )
Warning

本函数暂无文档，仅有参数列表。

参数

action

An SWFAction, returned by SWFAction->__construct.

flags

返回值

无返回值。

参见

  • SWFAction

SWFDisplayItem
SWFDisplayItem->addColor
SWFDisplayItem


Adds the given color to this item's color transform

SWFDisplayItem->addAction
SWFDisplayItem->endMask
SWFDisplayItem
PHP 手册

SWFDisplayItem->addColor

(No version information available, might be only in CVS)

SWFDisplayItem->addColor — Adds the given color to this item's color transform

说明

SWFDisplayItem
void addColor ( int $red , int $green , int $blue [, int $a ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

返回值

无返回值。

SWFDisplayItem->addAction
SWFDisplayItem->endMask
SWFDisplayItem


Another way of defining a MASK layer

SWFDisplayItem->addColor
SWFDisplayItem->getRot
SWFDisplayItem
PHP 手册

SWFDisplayItem->endMask

(No version information available, might be only in CVS)

SWFDisplayItem->endMask — Another way of defining a MASK layer

说明

SWFDisplayItem
void endMask ( void )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFDisplayItem->addColor
SWFDisplayItem->getRot
SWFDisplayItem


SWFDisplayItem->endMask
SWFDisplayItem->getX
SWFDisplayItem
PHP 手册

SWFDisplayItem->getRot

(No version information available, might be only in CVS)

SWFDisplayItem->getRot —

说明

SWFDisplayItem
float getRot ( void )
Warning

本函数暂无文档，仅有参数列表。

SWFDisplayItem->endMask
SWFDisplayItem->getX
SWFDisplayItem


SWFDisplayItem->getRot
SWFDisplayItem->getXScale
SWFDisplayItem
PHP 手册

SWFDisplayItem->getX

(No version information available, might be only in CVS)

SWFDisplayItem->getX —

说明

SWFDisplayItem
float getX ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFDisplayItem->getY

SWFDisplayItem->getRot
SWFDisplayItem->getXScale
SWFDisplayItem


SWFDisplayItem->getX
SWFDisplayItem->getXSkew
SWFDisplayItem
PHP 手册

SWFDisplayItem->getXScale

(No version information available, might be only in CVS)

SWFDisplayItem->getXScale —

说明

SWFDisplayItem
float getXScale ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFDisplayItem->getYScale

SWFDisplayItem->getX
SWFDisplayItem->getXSkew
SWFDisplayItem


SWFDisplayItem->getXScale
SWFDisplayItem->getY
SWFDisplayItem
PHP 手册

SWFDisplayItem->getXSkew

(No version information available, might be only in CVS)

SWFDisplayItem->getXSkew —

说明

SWFDisplayItem
float getXSkew ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFDisplayItem->getYSkew

SWFDisplayItem->getXScale
SWFDisplayItem->getY
SWFDisplayItem


SWFDisplayItem->getXSkew
SWFDisplayItem->getYScale
SWFDisplayItem
PHP 手册

SWFDisplayItem->getY

(No version information available, might be only in CVS)

SWFDisplayItem->getY —

说明

SWFDisplayItem
float getY ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFDisplayItem->getX

SWFDisplayItem->getXSkew
SWFDisplayItem->getYScale
SWFDisplayItem


SWFDisplayItem->getY
SWFDisplayItem->getYSkew
SWFDisplayItem
PHP 手册

SWFDisplayItem->getYScale

(No version information available, might be only in CVS)

SWFDisplayItem->getYScale —

说明

SWFDisplayItem
float getYScale ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFDisplayItem->getXScale

SWFDisplayItem->getY
SWFDisplayItem->getYSkew
SWFDisplayItem


SWFDisplayItem->getYScale
SWFDisplayItem->move
SWFDisplayItem
PHP 手册

SWFDisplayItem->getYSkew

(No version information available, might be only in CVS)

SWFDisplayItem->getYSkew —

说明

SWFDisplayItem
float getYSkew ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFDisplayItem->getXSkew

SWFDisplayItem->getYScale
SWFDisplayItem->move
SWFDisplayItem


Moves object in relative coordinates

SWFDisplayItem->getYSkew
SWFDisplayItem->moveTo
SWFDisplayItem
PHP 手册

SWFDisplayItem->move

(No version information available, might be only in CVS)

SWFDisplayItem->move — Moves object in relative coordinates

说明

SWFDisplayItem
void move ( float $dx , float $dy )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->move() moves the current object by (dx ,dy ) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->moveTo

SWFDisplayItem->getYSkew
SWFDisplayItem->moveTo
SWFDisplayItem


Moves object in global coordinates

SWFDisplayItem->move
SWFDisplayItem->multColor
SWFDisplayItem
PHP 手册

SWFDisplayItem->moveTo

(No version information available, might be only in CVS)

SWFDisplayItem->moveTo — Moves object in global coordinates

说明

SWFDisplayItem
void moveTo ( float $x , float $y )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->moveto() moves the current object to (x ,y ) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->move

SWFDisplayItem->move
SWFDisplayItem->multColor
SWFDisplayItem


Multiplies the item's color transform

SWFDisplayItem->moveTo
SWFDisplayItem->remove
SWFDisplayItem
PHP 手册

SWFDisplayItem->multColor

(No version information available, might be only in CVS)

SWFDisplayItem->multColor — Multiplies the item's color transform

说明

SWFDisplayItem
void multColor ( float $red , float $green , float $blue [, float $a ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

参数

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

返回值

无返回值。

范例

This simple example will modify your picture's atmosphere to Halloween (use a landscape or bright picture).

Example #1 swfdisplayitem->multcolor() example

<?php

$b = new SWFBitmap(file_get_contents("backyard.jpg"));
// note use your own picture :-)
$s = new SWFShape();
$s->setRightFill($s->addFill($b));
$s->drawLine($b->getWidth(), 0);
$s->drawLine(0, $b->getHeight());
$s->drawLine(-$b->getWidth(), 0);
$s->drawLine(0, -$b->getHeight());

$m = new SWFMovie();
$m->setDimension($b->getWidth(), $b->getHeight());

$i = $m->add($s);

for ($n=0; $n<=20; ++$n) {
  $i->multColor(1.0-$n/10, 1.0, 1.0);
  $i->addColor(0xff*$n/20, 0, 0);
  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFDisplayItem->moveTo
SWFDisplayItem->remove
SWFDisplayItem


Removes the object from the movie

SWFDisplayItem->multColor
SWFDisplayItem->rotate
SWFDisplayItem
PHP 手册

SWFDisplayItem->remove

(No version information available, might be only in CVS)

SWFDisplayItem->remove — Removes the object from the movie

说明

SWFDisplayItem
void remove ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFMovie->add

SWFDisplayItem->multColor
SWFDisplayItem->rotate
SWFDisplayItem


Rotates in relative coordinates

SWFDisplayItem->remove
SWFDisplayItem->rotateTo
SWFDisplayItem
PHP 手册

SWFDisplayItem->rotate

(No version information available, might be only in CVS)

SWFDisplayItem->rotate — Rotates in relative coordinates

说明

SWFDisplayItem
void rotate ( float $angle )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->rotate() rotates the current object by angle degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->rotateTo

SWFDisplayItem->remove
SWFDisplayItem->rotateTo
SWFDisplayItem


Rotates the object in global coordinates

SWFDisplayItem->rotate
SWFDisplayItem->scale
SWFDisplayItem
PHP 手册

SWFDisplayItem->rotateTo

(No version information available, might be only in CVS)

SWFDisplayItem->rotateTo — Rotates the object in global coordinates

说明

SWFDisplayItem
void rotateTo ( float $angle )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->rotateto() set the current object rotation to angle degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

范例

This example bring three rotating string from the background to the foreground. Pretty nice.

Example #1 swfdisplayitem->rotateto() example

<?php
$thetext =  "ming!";

$f = new SWFFont("Bauhaus 93.fdb");

$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(2400, 1600);
$m->setBackground(0xff, 0xff, 0xff);

// functions with huge numbers of arbitrary
// arguments are always a good idea!  Really!

function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
{
  global $f, $m;

  $t = new SWFText();
  $t->setFont($f);
  $t->setColor($r, $g, $b, $a);
  $t->setHeight(960);
  $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
  $t->addString($string);

  // we can add properties just like a normal PHP var,
  // as long as the names aren't already used.
  // e.g., we can't set $i->scale, because that's a function

  $i = $m->add($t);
  $i->x = $x;
  $i->y = $y;
  $i->rot = $rot;
  $i->s = $scale;
  $i->rotateTo($rot);
  $i->scale($scale, $scale);

  // but the changes are local to the function, so we have to
  // return the changed object.  kinda weird..

  return $i;
}

function step($i)
{
  $oldrot = $i->rot;
  $i->rot = 19*$i->rot/20;
  $i->x = (19*$i->x + 1200)/20;
  $i->y = (19*$i->y + 800)/20;
  $i->s = (19*$i->s + 1.0)/20;

  $i->rotateTo($i->rot);
  $i->scaleTo($i->s, $i->s);
  $i->moveTo($i->x, $i->y);

  return $i;
}

// see?  it sure paid off in legibility:

$i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
$i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
$i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

for ($i=1; $i<=100; ++$i) {
  $i1 = step($i1);
  $i2 = step($i2);
  $i3 = step($i3);

  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

参见

  • SWFDisplayItem->rotate

SWFDisplayItem->rotate
SWFDisplayItem->scale
SWFDisplayItem


Scales the object in relative coordinates

SWFDisplayItem->rotateTo
SWFDisplayItem->scaleTo
SWFDisplayItem
PHP 手册

SWFDisplayItem->scale

(No version information available, might be only in CVS)

SWFDisplayItem->scale — Scales the object in relative coordinates

说明

SWFDisplayItem
void scale ( float $dx , float $dy )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->scale() scales the current object by (dx ,dy ) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->scaleTo

SWFDisplayItem->rotateTo
SWFDisplayItem->scaleTo
SWFDisplayItem


Scales the object in global coordinates

SWFDisplayItem->scale
SWFDisplayItem->setDepth
SWFDisplayItem
PHP 手册

SWFDisplayItem->scaleTo

(No version information available, might be only in CVS)

SWFDisplayItem->scaleTo — Scales the object in global coordinates

说明

SWFDisplayItem
void scaleTo ( float $x [, float $y ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->scaleto() scales the current object to (x ,y ) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->scale

SWFDisplayItem->scale
SWFDisplayItem->setDepth
SWFDisplayItem


Sets z-order

SWFDisplayItem->scaleTo
SWFDisplayItem->setMaskLevel
SWFDisplayItem
PHP 手册

SWFDisplayItem->setDepth

(No version information available, might be only in CVS)

SWFDisplayItem->setDepth — Sets z-order

说明

SWFDisplayItem
void setDepth ( int $depth )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->setdepth() sets the object's z-order to depth . Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

SWFDisplayItem->scaleTo
SWFDisplayItem->setMaskLevel
SWFDisplayItem


Defines a MASK layer at level

SWFDisplayItem->setDepth
SWFDisplayItem->setMatrix
SWFDisplayItem
PHP 手册

SWFDisplayItem->setMaskLevel

(No version information available, might be only in CVS)

SWFDisplayItem->setMaskLevel — Defines a MASK layer at level

说明

SWFDisplayItem
void setMaskLevel ( int $level )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFDisplayItem->setDepth
SWFDisplayItem->setMatrix
SWFDisplayItem


Sets the item's transform matrix

SWFDisplayItem->setMaskLevel
SWFDisplayItem->setName
SWFDisplayItem
PHP 手册

SWFDisplayItem->setMatrix

(No version information available, might be only in CVS)

SWFDisplayItem->setMatrix — Sets the item's transform matrix

说明

SWFDisplayItem
void setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFDisplayItem->setMaskLevel
SWFDisplayItem->setName
SWFDisplayItem


Sets the object's name

SWFDisplayItem->setMatrix
SWFDisplayItem->setRatio
SWFDisplayItem
PHP 手册

SWFDisplayItem->setName

(No version information available, might be only in CVS)

SWFDisplayItem->setName — Sets the object's name

说明

SWFDisplayItem
void setName ( string $name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->setname() sets the object's name to name , for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

SWFDisplayItem->setMatrix
SWFDisplayItem->setRatio
SWFDisplayItem


Sets the object's ratio

SWFDisplayItem->setName
SWFDisplayItem->skewX
SWFDisplayItem
PHP 手册

SWFDisplayItem->setRatio

(No version information available, might be only in CVS)

SWFDisplayItem->setRatio — Sets the object's ratio

说明

SWFDisplayItem
void setRatio ( float $ratio )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->setratio() sets the object's ratio to ratio . Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

范例

This simple example will morph nicely three concentric circles.

Example #1 swfdisplayitem->setname() example

<?php

$p = new SWFMorph();

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0xff, 0xff);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0xff, 0xff, 0xff);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0xff, 0xff, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape1();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0, 0);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0, 0xff, 0);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0, 0, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape2();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$f->skewXTo(1.0);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$m = new SWFMovie();
$m->setDimension(320, 240);
$i = $m->add($p);
$i->moveTo(160, 120);

for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFDisplayItem->setName
SWFDisplayItem->skewX
SWFDisplayItem


Sets the X-skew

SWFDisplayItem->setRatio
SWFDisplayItem->skewXTo
SWFDisplayItem
PHP 手册

SWFDisplayItem->skewX

(No version information available, might be only in CVS)

SWFDisplayItem->skewX — Sets the X-skew

说明

SWFDisplayItem
void skewX ( float $ddegrees )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->skewXTo
  • SWFDisplayItem->skewY
  • SWFDisplayItem->skewYTo

SWFDisplayItem->setRatio
SWFDisplayItem->skewXTo
SWFDisplayItem


Sets the X-skew

SWFDisplayItem->skewX
SWFDisplayItem->skewY
SWFDisplayItem
PHP 手册

SWFDisplayItem->skewXTo

(No version information available, might be only in CVS)

SWFDisplayItem->skewXTo — Sets the X-skew

说明

SWFDisplayItem
void skewXTo ( float $degrees )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->skewxto() sets the x-skew to degrees . For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->skewX
  • SWFDisplayItem->skewY
  • SWFDisplayItem->skewYTo

SWFDisplayItem->skewX
SWFDisplayItem->skewY
SWFDisplayItem


Sets the Y-skew

SWFDisplayItem->skewXTo
SWFDisplayItem->skewYTo
SWFDisplayItem
PHP 手册

SWFDisplayItem->skewY

(No version information available, might be only in CVS)

SWFDisplayItem->skewY — Sets the Y-skew

说明

SWFDisplayItem
void skewY ( float $ddegrees )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->skewYTo
  • SWFDisplayItem->skewX
  • SWFDisplayItem->skewXTo

SWFDisplayItem->skewXTo
SWFDisplayItem->skewYTo
SWFDisplayItem


Sets the Y-skew

SWFDisplayItem->skewY
SWFFill
SWFDisplayItem
PHP 手册

SWFDisplayItem->skewYTo

(No version information available, might be only in CVS)

SWFDisplayItem->skewYTo — Sets the Y-skew

说明

SWFDisplayItem
void skewYTo ( float $degrees )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->skewyto() sets the y-skew to degrees . For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

返回值

无返回值。

参见

  • SWFDisplayItem->skewY
  • SWFDisplayItem->skewX
  • SWFDisplayItem->skewXTo

SWFDisplayItem->skewY
SWFFill
SWFDisplayItem


The SWFFill class

简介

The SWFFill object allows you to transform (scale, skew, rotate) bitmap and gradient fills.

swffill objects are created by the SWFShape->addFill method.

Class synopsis

SWFFill
SWFFill {
/* Methods */
void moveTo ( float $x , float $y )
void rotateTo ( float $angle )
void scaleTo ( float $x [, float $y ] )
void skewXTo ( float $x )
void skewYTo ( float $y )
}

Table of Contents

  • SWFFill->moveTo — Moves fill origin
  • SWFFill->rotateTo — Sets fill's rotation
  • SWFFill->scaleTo — Sets fill's scale
  • SWFFill->skewXTo — Sets fill x-skew
  • SWFFill->skewYTo — Sets fill y-skew
SWFDisplayItem->skewYTo
SWFFill->moveTo
Ming


Moves fill origin

SWFFill
SWFFill->rotateTo
SWFFill
PHP 手册

SWFFill->moveTo

(No version information available, might be only in CVS)

SWFFill->moveTo — Moves fill origin

说明

SWFFill
void moveTo ( float $x , float $y )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Moves the fill origin to the given global coordinates.

参数

x

X-coordinate

y

Y-coordinate

返回值

无返回值。

SWFFill
SWFFill->rotateTo
SWFFill


Sets fill's rotation

SWFFill->moveTo
SWFFill->scaleTo
SWFFill
PHP 手册

SWFFill->rotateTo

(No version information available, might be only in CVS)

SWFFill->rotateTo — Sets fill's rotation

说明

SWFFill
void rotateTo ( float $angle )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the fill rotation to the given angle .

参数

angle

The rotation angle, in degrees.

返回值

无返回值。

SWFFill->moveTo
SWFFill->scaleTo
SWFFill


Sets fill's scale

SWFFill->rotateTo
SWFFill->skewXTo
SWFFill
PHP 手册

SWFFill->scaleTo

(No version information available, might be only in CVS)

SWFFill->scaleTo — Sets fill's scale

说明

SWFFill
void scaleTo ( float $x [, float $y ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the fill scale to the given coordinates.

参数

x

X-coordinate

y

Y-coordinate

返回值

无返回值。

SWFFill->rotateTo
SWFFill->skewXTo
SWFFill


Sets fill x-skew

SWFFill->scaleTo
SWFFill->skewYTo
SWFFill
PHP 手册

SWFFill->skewXTo

(No version information available, might be only in CVS)

SWFFill->skewXTo — Sets fill x-skew

说明

SWFFill
void skewXTo ( float $x )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the fill x-skew to x .

参数

x

When x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

返回值

无返回值。

参见

  • SWFFill->skewYTo

SWFFill->scaleTo
SWFFill->skewYTo
SWFFill


Sets fill y-skew

SWFFill->skewXTo
SWFFont
SWFFill
PHP 手册

SWFFill->skewYTo

(No version information available, might be only in CVS)

SWFFill->skewYTo — Sets fill y-skew

说明

SWFFill
void skewYTo ( float $y )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the fill y-skew to y .

参数

y

When y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

返回值

无返回值。

参见

  • SWFFill->skewXTo

SWFFill->skewXTo
SWFFont
SWFFill


The SWFFont class

简介

The SWFFont object represent a reference to the font definition, for us with SWFText->setFont and SWFTextField->setFont.

Class synopsis

SWFFont
SWFFont {
/* Methods */
SWFFont __construct ( string $filename )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
string getShape ( int $code )
float getUTF8Width ( string $string )
float getWidth ( string $string )
}

Table of Contents

  • SWFFont->__construct — Loads a font definition
  • SWFFont->getAscent — Returns the ascent of the font, or 0 if not available
  • SWFFont->getDescent — Returns the descent of the font, or 0 if not available
  • SWFFont->getLeading — Returns the leading of the font, or 0 if not available
  • SWFFont->getShape — Returns the glyph shape of a char as a text string
  • SWFFont->getUTF8Width — Calculates the width of the given string in this font at full height
  • SWFFont->getWidth — Returns the string's width
SWFFill->skewYTo
SWFFont->__construct
Ming


Loads a font definition

SWFFont
SWFFont->getAscent
SWFFont
PHP 手册

SWFFont->__construct

(No version information available, might be only in CVS)

SWFFont->__construct — Loads a font definition

说明

SWFFont
SWFFont __construct ( string $filename )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:

<?php
$f = newSWFFont("_sans");
?>

will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

SWFFont
SWFFont->getAscent
SWFFont


Returns the ascent of the font, or 0 if not available

SWFFont->__construct
SWFFont->getDescent
SWFFont
PHP 手册

SWFFont->getAscent

(No version information available, might be only in CVS)

SWFFont->getAscent — Returns the ascent of the font, or 0 if not available

说明

SWFFont
float getAscent ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFFont->getDescent

SWFFont->__construct
SWFFont->getDescent
SWFFont


Returns the descent of the font, or 0 if not available

SWFFont->getAscent
SWFFont->getLeading
SWFFont
PHP 手册

SWFFont->getDescent

(No version information available, might be only in CVS)

SWFFont->getDescent — Returns the descent of the font, or 0 if not available

说明

SWFFont
float getDescent ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFFont->getAscent

SWFFont->getAscent
SWFFont->getLeading
SWFFont


Returns the leading of the font, or 0 if not available

SWFFont->getDescent
SWFFont->getShape
SWFFont
PHP 手册

SWFFont->getLeading

(No version information available, might be only in CVS)

SWFFont->getLeading — Returns the leading of the font, or 0 if not available

说明

SWFFont
float getLeading ( void )
Warning

本函数暂无文档，仅有参数列表。

SWFFont->getDescent
SWFFont->getShape
SWFFont


Returns the glyph shape of a char as a text string

SWFFont->getLeading
SWFFont->getUTF8Width
SWFFont
PHP 手册

SWFFont->getShape

(No version information available, might be only in CVS)

SWFFont->getShape — Returns the glyph shape of a char as a text string

说明

SWFFont
string getShape ( int $code )
Warning

本函数暂无文档，仅有参数列表。

SWFFont->getLeading
SWFFont->getUTF8Width
SWFFont


Calculates the width of the given string in this font at full height

SWFFont->getShape
SWFFont->getWidth
SWFFont
PHP 手册

SWFFont->getUTF8Width

(No version information available, might be only in CVS)

SWFFont->getUTF8Width — Calculates the width of the given string in this font at full height

说明

SWFFont
float getUTF8Width ( string $string )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFFont->getWidth

SWFFont->getShape
SWFFont->getWidth
SWFFont


Returns the string's width

SWFFont->getUTF8Width
SWFFontChar
SWFFont
PHP 手册

SWFFont->getWidth

(No version information available, might be only in CVS)

SWFFont->getWidth — Returns the string's width

说明

SWFFont
float getWidth ( string $string )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swffont->getwidth() returns the string string 's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

参见

  • SWFFont->getUTF8Width

SWFFont->getUTF8Width
SWFFontChar
SWFFont


The SWFFontChar class

简介

SWFFontChar.

Class synopsis

SWFFontChar
SWFFontChar {
/* Methods */
void addChars ( string $char )
void addUTF8Chars ( string $char )
}

Table of Contents

  • SWFFontChar->addChars — Adds characters to a font for exporting font
  • SWFFontChar->addUTF8Chars — Adds characters to a font for exporting font
SWFFont->getWidth
SWFFontChar->addChars
Ming


Adds characters to a font for exporting font

SWFFontChar
SWFFontChar->addUTF8Chars
SWFFontChar
PHP 手册

SWFFontChar->addChars

(No version information available, might be only in CVS)

SWFFontChar->addChars — Adds characters to a font for exporting font

说明

SWFFontChar
void addChars ( string $char )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFFontChar->addUTF8Chars

SWFFontChar
SWFFontChar->addUTF8Chars
SWFFontChar


Adds characters to a font for exporting font

SWFFontChar->addChars
SWFGradient
SWFFontChar
PHP 手册

SWFFontChar->addUTF8Chars

(No version information available, might be only in CVS)

SWFFontChar->addUTF8Chars — Adds characters to a font for exporting font

说明

SWFFontChar
void addUTF8Chars ( string $char )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFFontChar->addChars

SWFFontChar->addChars
SWFGradient
SWFFontChar


The SWFGradient class

简介

SWFGradient.

Class synopsis

SWFGradient
SWFGradient {
/* Methods */
void addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha=255 ] )
SWFGradient __construct ( void )
}

Table of Contents

  • SWFGradient->addEntry — Adds an entry to the gradient list
  • SWFGradient->__construct — Creates a gradient object
SWFFontChar->addUTF8Chars
SWFGradient->addEntry
Ming


Adds an entry to the gradient list

SWFGradient
SWFGradient->__construct
SWFGradient
PHP 手册

SWFGradient->addEntry

(No version information available, might be only in CVS)

SWFGradient->addEntry — Adds an entry to the gradient list

说明

SWFGradient
void addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha=255 ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red , green , blue is a color (RGB mode).

返回值

无返回值。

SWFGradient
SWFGradient->__construct
SWFGradient


Creates a gradient object

SWFGradient->addEntry
SWFMorph
SWFGradient
PHP 手册

SWFGradient->__construct

(No version information available, might be only in CVS)

SWFGradient->__construct — Creates a gradient object

说明

SWFGradient
SWFGradient __construct ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Example #1 swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

SWFGradient->addEntry
SWFMorph
SWFGradient


The SWFMorph class

简介

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

Class synopsis

SWFMorph
SWFMorph {
/* Methods */
SWFMorph __construct ( void )
SWFShape getShape1 ( void )
SWFShape getShape2 ( void )
}

Table of Contents

  • SWFMorph->__construct — Creates a new SWFMorph object
  • SWFMorph->getShape1 — Gets a handle to the starting shape
  • SWFMorph->getShape2 — Gets a handle to the ending shape
SWFGradient->__construct
SWFMorph->__construct
Ming


Creates a new SWFMorph object

SWFMorph
SWFMorph->getShape1
SWFMorph
PHP 手册

SWFMorph->__construct

(No version information available, might be only in CVS)

SWFMorph->__construct — Creates a new SWFMorph object

说明

SWFMorph
SWFMorph __construct ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

范例

This simple example will morph a big red square into a smaller blue black-bordered square.

Example #1 swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

SWFMorph
SWFMorph->getShape1
SWFMorph


Gets a handle to the starting shape

SWFMorph->__construct
SWFMorph->getShape2
SWFMorph
PHP 手册

SWFMorph->getShape1

(No version information available, might be only in CVS)

SWFMorph->getShape1 — Gets a handle to the starting shape

说明

SWFMorph
SWFShape getShape1 ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Gets the morph's starting shape.

返回值

Returns a SWFShape object.

参见

  • SWFMorph->getShape2

SWFMorph->__construct
SWFMorph->getShape2
SWFMorph


Gets a handle to the ending shape

SWFMorph->getShape1
SWFMovie
SWFMorph
PHP 手册

SWFMorph->getShape2

(No version information available, might be only in CVS)

SWFMorph->getShape2 — Gets a handle to the ending shape

说明

SWFMorph
SWFShape getShape2 ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Gets the morph's ending shape.

返回值

Returns a SWFShape object.

参见

  • SWFMorph->getShape1

SWFMorph->getShape1
SWFMovie
SWFMorph


The SWFMovie class

简介

SWFMovie is a movie object representing an SWF movie.

Class synopsis

SWFMovie
SWFMovie {
/* Methods */
mixed add ( object $instance )
void addExport ( SWFCharacter $char , string $name )
mixed addFont ( SWFFont $font )
SWFMovie __construct ([ int $version ] )
SWFSprite importChar ( string $libswf , string $name )
SWFFontChar importFont ( string $libswf , string $name )
void labelFrame ( string $label )
void nextFrame ( void )
int output ([ int $compression ] )
void remove ( object $instance )
int save ( string $filename [, int $compression ] )
int saveToFile ( resource $x [, int $compression ] )
void setbackground ( int $red , int $green , int $blue )
void setDimension ( float $width , float $height )
void setFrames ( int $number )
void setRate ( float $rate )
SWFSoundInstance startSound ( SWFSound $sound )
void stopSound ( SWFSound $sound )
int streamMP3 ( mixed $mp3file [, float $skip=0 ] )
void writeExports ( void )
}

Table of Contents

  • SWFMovie->add — Adds any type of data to a movie
  • SWFMovie->addExport — 说明
  • SWFMovie->addFont — 说明
  • SWFMovie->__construct — Creates a new movie object, representing an SWF version 4 movie
  • SWFMovie->importChar — 说明
  • SWFMovie->importFont — 说明
  • SWFMovie->labelFrame — Labels a frame
  • SWFMovie->nextFrame — Moves to the next frame of the animation
  • SWFMovie->output — Dumps your lovingly prepared movie out
  • SWFMovie->remove — Removes the object instance from the display list
  • SWFMovie->save — Saves the SWF movie in a file
  • SWFMovie->saveToFile — 说明
  • SWFMovie->setbackground — Sets the background color
  • SWFMovie->setDimension — Sets the movie's width and height
  • SWFMovie->setFrames — Sets the total number of frames in the animation
  • SWFMovie->setRate — Sets the animation's frame rate
  • SWFMovie->startSound — 说明
  • SWFMovie->stopSound — 说明
  • SWFMovie->streamMP3 — Streams a MP3 file
  • SWFMovie->writeExports — 说明
SWFMorph->getShape2
SWFMovie->add
Ming


Adds any type of data to a movie

SWFMovie
SWFMovie->addExport
SWFMovie
PHP 手册

SWFMovie->add

(No version information available, might be only in CVS)

SWFMovie->add — Adds any type of data to a movie

说明

SWFMovie
mixed add ( object $instance )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Adds an SWF object instance to the current movie.

参数

instance

Any type of object instance, like SWFShape, SWFText, SWFFont.

返回值

For displayable types (shape, text, button, sprite), this returns an SWFDisplayItem, a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

参见

  • SWFMovie->remove

SWFMovie
SWFMovie->addExport
SWFMovie


SWFMovie->add
SWFMovie->addFont
SWFMovie
PHP 手册

SWFMovie->addExport

(No version information available, might be only in CVS)

SWFMovie->addExport —

说明

SWFMovie
void addExport ( SWFCharacter $char , string $name )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFMovie->add
SWFMovie->addFont
SWFMovie


SWFMovie->addExport
SWFMovie->__construct
SWFMovie
PHP 手册

SWFMovie->addFont

(No version information available, might be only in CVS)

SWFMovie->addFont —

说明

SWFMovie
mixed addFont ( SWFFont $font )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFMovie->addExport
SWFMovie->__construct
SWFMovie


Creates a new movie object, representing an SWF version 4 movie

SWFMovie->addFont
SWFMovie->importChar
SWFMovie
PHP 手册

SWFMovie->__construct

(No version information available, might be only in CVS)

SWFMovie->__construct — Creates a new movie object, representing an SWF version 4 movie

说明

SWFMovie
SWFMovie __construct ([ int $version ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new movie object, representing an SWF movie.

参数

version

The desired SWF version. Default is 4.

SWFMovie->addFont
SWFMovie->importChar
SWFMovie


SWFMovie->__construct
SWFMovie->importFont
SWFMovie
PHP 手册

SWFMovie->importChar

(No version information available, might be only in CVS)

SWFMovie->importChar —

说明

SWFMovie
SWFSprite importChar ( string $libswf , string $name )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFMovie->importFont

SWFMovie->__construct
SWFMovie->importFont
SWFMovie


SWFMovie->importChar
SWFMovie->labelFrame
SWFMovie
PHP 手册

SWFMovie->importFont

(No version information available, might be only in CVS)

SWFMovie->importFont —

说明

SWFMovie
SWFFontChar importFont ( string $libswf , string $name )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFMovie->importChar

SWFMovie->importChar
SWFMovie->labelFrame
SWFMovie


Labels a frame

SWFMovie->importFont
SWFMovie->nextFrame
SWFMovie
PHP 手册

SWFMovie->labelFrame

(No version information available, might be only in CVS)

SWFMovie->labelFrame — Labels a frame

说明

SWFMovie
void labelFrame ( string $label )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFMovie->importFont
SWFMovie->nextFrame
SWFMovie


Moves to the next frame of the animation

SWFMovie->labelFrame
SWFMovie->output
SWFMovie
PHP 手册

SWFMovie->nextFrame

(No version information available, might be only in CVS)

SWFMovie->nextFrame — Moves to the next frame of the animation

说明

SWFMovie
void nextFrame ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Moves to the next frame of the animation.

返回值

无返回值。

SWFMovie->labelFrame
SWFMovie->output
SWFMovie


Dumps your lovingly prepared movie out

SWFMovie->nextFrame
SWFMovie->remove
SWFMovie
PHP 手册

SWFMovie->output

(No version information available, might be only in CVS)

SWFMovie->output — Dumps your lovingly prepared movie out

说明

SWFMovie
int output ([ int $compression ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Dumps the SWFMovie.

Don't forget to send the Content-Type HTTP header file before using this function, in order to display the movie in a browser.

参数

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

返回值

Return the number of bytes written or FALSE on error.

范例

Example #1 Displaying your $movie in a browser

<?php
header('Content-type: application/x-shockwave-flash');
$movie->output();
?>

参见

  • SWFMovie->save
  • SWFMovie->saveToFile

SWFMovie->nextFrame
SWFMovie->remove
SWFMovie


Removes the object instance from the display list

SWFMovie->output
SWFMovie->save
SWFMovie
PHP 手册

SWFMovie->remove

(No version information available, might be only in CVS)

SWFMovie->remove — Removes the object instance from the display list

说明

SWFMovie
void remove ( object $instance )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Removes the given object instance from the display list.

返回值

无返回值。

参见

  • SWFMovie->add

SWFMovie->output
SWFMovie->save
SWFMovie


Saves the SWF movie in a file

SWFMovie->remove
SWFMovie->saveToFile
SWFMovie
PHP 手册

SWFMovie->save

(No version information available, might be only in CVS)

SWFMovie->save — Saves the SWF movie in a file

说明

SWFMovie
int save ( string $filename [, int $compression ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Saves the SWF movie to the specified filename .

参数

filename

The path to the saved SWF document.

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

返回值

Return the number of bytes written or FALSE on error.

参见

  • SWFMovie->output
  • SWFMovie->saveToFile

SWFMovie->remove
SWFMovie->saveToFile
SWFMovie


SWFMovie->save
SWFMovie->setbackground
SWFMovie
PHP 手册

SWFMovie->saveToFile

(No version information available, might be only in CVS)

SWFMovie->saveToFile —

说明

SWFMovie
int saveToFile ( resource $x [, int $compression ] )
Warning

本函数暂无文档，仅有参数列表。

参数

X

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

返回值

Return the number of bytes written or FALSE on error.

参见

  • SWFMovie->output
  • SWFMovie->save

SWFMovie->save
SWFMovie->setbackground
SWFMovie


Sets the background color

SWFMovie->saveToFile
SWFMovie->setDimension
SWFMovie
PHP 手册

SWFMovie->setbackground

(No version information available, might be only in CVS)

SWFMovie->setbackground — Sets the background color

说明

SWFMovie
void setbackground ( int $red , int $green , int $blue )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the background color.

Why is there no rgba version? Think about it, you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the » http://www.macromedia.com/ site for details.

参数

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

返回值

无返回值。

SWFMovie->saveToFile
SWFMovie->setDimension
SWFMovie


Sets the movie's width and height

SWFMovie->setbackground
SWFMovie->setFrames
SWFMovie
PHP 手册

SWFMovie->setDimension

(No version information available, might be only in CVS)

SWFMovie->setDimension — Sets the movie's width and height

说明

SWFMovie
void setDimension ( float $width , float $height )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the movie's dimension to the specified width and height .

参数

width

The movie width.

height

The movie height.

返回值

无返回值。

SWFMovie->setbackground
SWFMovie->setFrames
SWFMovie


Sets the total number of frames in the animation

SWFMovie->setDimension
SWFMovie->setRate
SWFMovie
PHP 手册

SWFMovie->setFrames

(No version information available, might be only in CVS)

SWFMovie->setFrames — Sets the total number of frames in the animation

说明

SWFMovie
void setFrames ( int $number )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the total number of frames in the animation to the given number .

参数

number

The number of frames.

返回值

无返回值。

SWFMovie->setDimension
SWFMovie->setRate
SWFMovie


Sets the animation's frame rate

SWFMovie->setFrames
SWFMovie->startSound
SWFMovie
PHP 手册

SWFMovie->setRate

(No version information available, might be only in CVS)

SWFMovie->setRate — Sets the animation's frame rate

说明

SWFMovie
void setRate ( float $rate )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Sets the frame rate to the specified rate .

Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

参数

rate

The frame rate, in frame per seconds.

返回值

无返回值。

SWFMovie->setFrames
SWFMovie->startSound
SWFMovie


SWFMovie->setRate
SWFMovie->stopSound
SWFMovie
PHP 手册

SWFMovie->startSound

(No version information available, might be only in CVS)

SWFMovie->startSound —

说明

SWFMovie
SWFSoundInstance startSound ( SWFSound $sound )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFMovie->stopSound

SWFMovie->setRate
SWFMovie->stopSound
SWFMovie


SWFMovie->startSound
SWFMovie->streamMP3
SWFMovie
PHP 手册

SWFMovie->stopSound

(No version information available, might be only in CVS)

SWFMovie->stopSound —

说明

SWFMovie
void stopSound ( SWFSound $sound )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFMovie->startSound

SWFMovie->startSound
SWFMovie->streamMP3
SWFMovie


Streams a MP3 file

SWFMovie->stopSound
SWFMovie->writeExports
SWFMovie
PHP 手册

SWFMovie->streamMP3

(No version information available, might be only in CVS)

SWFMovie->streamMP3 — Streams a MP3 file

说明

SWFMovie
int streamMP3 ( mixed $mp3file [, float $skip=0 ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Streams the given MP3 file mp3file .

This method is not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it).

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

参数

mp3file

Can be a file pointer returned by fopen() or the MP3 data, as a binary string.

skip

Number of seconds to skip.

返回值

Return number of frames.

更新日志

版本 | 说明
5.2.0 | skip added

范例

Example #1 Streaming example

<?php
$m = new SWFMovie();
$m->setRate(12.0);
$m->streamMp3(file_get_contents("distortobass.mp3"));
// use your own MP3

// The file is 11.85 seconds at 12.0 fps = 142 frames
$m->setFrames(142);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFMovie->stopSound
SWFMovie->writeExports
SWFMovie


SWFMovie->streamMP3
SWFPrebuiltClip
SWFMovie
PHP 手册

SWFMovie->writeExports

(No version information available, might be only in CVS)

SWFMovie->writeExports —

说明

SWFMovie
void writeExports ( void )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFMovie->streamMP3
SWFPrebuiltClip
SWFMovie


The SWFPrebuiltClip class

简介

SWFPrebuiltClip.

Class synopsis

SWFPrebuiltClip
SWFPrebuiltClip {
/* Methods */
SWFPrebuiltClip __construct ( mixed $file )
}

Table of Contents

  • SWFPrebuiltClip->__construct — Returns a SWFPrebuiltClip object
SWFMovie->writeExports
SWFPrebuiltClip->__construct
Ming


Returns a SWFPrebuiltClip object

SWFPrebuiltClip
SWFShape
SWFPrebuiltClip
PHP 手册

SWFPrebuiltClip->__construct

(No version information available, might be only in CVS)

SWFPrebuiltClip->__construct — Returns a SWFPrebuiltClip object

说明

SWFPrebuiltClip
SWFPrebuiltClip __construct ( mixed $file )
Warning

本函数暂无文档，仅有参数列表。

SWFPrebuiltClip
SWFShape
SWFPrebuiltClip


The SWFShape class

简介

SWFShape.

Class synopsis

SWFShape
SWFShape {
/* Methods */
SWFFill addFill ( int $red , int $green , int $blue [, int $alpha=255 ] )
SWFShape __construct ( void )
void drawArc ( float $r , float $startAngle , float $endAngle )
void drawCircle ( float $r )
int drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
int drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
void drawGlyph ( SWFFont $font , string $character [, int $size ] )
void drawLine ( float $dx , float $dy )
void drawLineTo ( float $x , float $y )
void movePen ( float $dx , float $dy )
void movePenTo ( float $x , float $y )
void setLeftFill ( SWFGradient $fill )
void setLine ( SWFShape $shape )
void setRightFill ( SWFGradient $fill )
}

Table of Contents

  • SWFShape->addFill — Adds a solid fill to the shape
  • SWFShape->__construct — Creates a new shape object
  • SWFShape->drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
  • SWFShape->drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
  • SWFShape->drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
  • SWFShape->drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
  • SWFShape->drawCurve — Draws a curve (relative)
  • SWFShape->drawCurveTo — Draws a curve
  • SWFShape->drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
  • SWFShape->drawLine — Draws a line (relative)
  • SWFShape->drawLineTo — Draws a line
  • SWFShape->movePen — Moves the shape's pen (relative)
  • SWFShape->movePenTo — Moves the shape's pen
  • SWFShape->setLeftFill — Sets left rasterizing color
  • SWFShape->setLine — Sets the shape's line style
  • SWFShape->setRightFill — Sets right rasterizing color
SWFPrebuiltClip->__construct
SWFShape->addFill
Ming


Adds a solid fill to the shape

SWFShape
SWFShape->__construct
SWFShape
PHP 手册

SWFShape->addFill

(No version information available, might be only in CVS)

SWFShape->addFill — Adds a solid fill to the shape

说明

SWFShape
SWFFill addFill ( int $red , int $green , int $blue [, int $alpha=255 ] )
SWFFill addFill ( SWFBitmap $bitmap [, int $flags ] )
SWFFill addFill ( SWFGradient $gradient [, int $flags ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

SWFShape->addFill() adds a solid fill to the shape's list of fill styles. SWFShape->addFill() accepts three different types of arguments.

red , green , blue is a color (RGB mode).

The bitmap argument is an SWFBitmap() object. The flags argument can be one of the following values: SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT or SWFFILL_RADIAL_GRADIENT. Default is SWFFILL_TILED_BITMAP for SWFBitmap and SWFFILL_LINEAR_GRADIENT for SWFGradient.

The gradient argument is an SWFGradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

SWFShape->addFill() returns an SWFFill()
object for use with the SWFShape->setLeftFill()
and SWFShape->setRightFill() functions
described below.

范例

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Example #1 SWFShape->addFill() example

<?php

$p = new SWFMorph();

$b = new SWFBitmap(file_get_contents("alphafill.jpg"));
// use your own bitmap
$width = $b->getWidth();
$height = $b->getHeight();

$s = $p->getShape1();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);
$f->moveTo(-$width/2, -$height/4);
$f->scaleTo(1.0, 0.5);
$s->setLeftFill($f);
$s->movePenTo(-$width/2, -$height/4);
$s->drawLine($width, 0);
$s->drawLine(0, $height/2);
$s->drawLine(-$width, 0);
$s->drawLine(0, -$height/2);

$s = $p->getShape2();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);

// these two have no effect!
$f->moveTo(-$width/4, -$height/2);
$f->scaleTo(0.5, 1.0);

$s->setLeftFill($f);
$s->movePenTo(-$width/4, -$height/2);
$s->drawLine($width/2, 0);
$s->drawLine(0, $height);
$s->drawLine(-$width/2, 0);
$s->drawLine(0, -$height);

$m = new SWFMovie();
$m->setDimension($width, $height);
$i = $m->add($p);
$i->moveTo($width/2, $height/2);

for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

参见

  • SWFShape->setLeftFill
  • SWFShape->setRightFill

SWFShape
SWFShape->__construct
SWFShape


Creates a new shape object

SWFShape->addFill
SWFShape->drawArc
SWFShape
PHP 手册

SWFShape->__construct

(No version information available, might be only in CVS)

SWFShape->__construct — Creates a new shape object

说明

SWFShape
SWFShape __construct ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Created a new SWFShape object.

范例

This simple example will draw a big red elliptic quadrant.

Example #1 swfshape() example

<?php
$s = new SWFShape();
$s->setLine(40, 0x7f, 0, 0);
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(200, 200);
$s->drawLineTo(6200, 200);
$s->drawLineTo(6200, 4600);
$s->drawCurveTo(200, 4600, 200, 200);

$m = new SWFMovie();
$m->setDimension(6400, 4800);
$m->setRate(12.0);
$m->add($s);
$m->nextFrame();

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFShape->addFill
SWFShape->drawArc
SWFShape


Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

SWFShape->__construct
SWFShape->drawCircle
SWFShape
PHP 手册

SWFShape->drawArc

(No version information available, might be only in CVS)

SWFShape->drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

说明

SWFShape
void drawArc ( float $r , float $startAngle , float $endAngle )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFShape->drawCircle

SWFShape->__construct
SWFShape->drawCircle
SWFShape


Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

SWFShape->drawArc
SWFShape->drawCubic
SWFShape
PHP 手册

SWFShape->drawCircle

(No version information available, might be only in CVS)

SWFShape->drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

说明

SWFShape
void drawCircle ( float $r )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFShape->drawArc
SWFShape->drawCubic
SWFShape


Draws a cubic bezier curve using the current position and the three given points as control points

SWFShape->drawCircle
SWFShape->drawCubicTo
SWFShape
PHP 手册

SWFShape->drawCubic

(No version information available, might be only in CVS)

SWFShape->drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points

说明

SWFShape
int drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFShape->drawCubicTo

SWFShape->drawCircle
SWFShape->drawCubicTo
SWFShape


Draws a cubic bezier curve using the current position and the three given points as control points

SWFShape->drawCubic
SWFShape->drawCurve
SWFShape
PHP 手册

SWFShape->drawCubicTo

(No version information available, might be only in CVS)

SWFShape->drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points

说明

SWFShape
int drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFShape->drawCubic

SWFShape->drawCubic
SWFShape->drawCurve
SWFShape


Draws a curve (relative)

SWFShape->drawCubicTo
SWFShape->drawCurveTo
SWFShape
PHP 手册

SWFShape->drawCurve

(No version information available, might be only in CVS)

SWFShape->drawCurve — Draws a curve (relative)

说明

SWFShape
int drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx ,anchory ) using relative control point (controlx ,controly ). That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (x+targetdx , x+targetdy ) with control points (x+controldx , y+controldy ) and (x+anchordx , y+anchordy ).

参见

  • SWFShape->drawCurve

SWFShape->drawCubicTo
SWFShape->drawCurveTo
SWFShape


Draws a curve

SWFShape->drawCurve
SWFShape->drawGlyph
SWFShape
PHP 手册

SWFShape->drawCurveTo

(No version information available, might be only in CVS)

SWFShape->drawCurveTo — Draws a curve

说明

SWFShape
int drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx ,anchory ) using (controlx ,controly ) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (targetx , targety ) with control points (controlx , controly ) and (anchorx , anchory ).

参见

  • SWFShape->drawCurveTo

SWFShape->drawCurve
SWFShape->drawGlyph
SWFShape


Draws the first character in the given string into the shape using the glyph definition from the given font

SWFShape->drawCurveTo
SWFShape->drawLine
SWFShape
PHP 手册

SWFShape->drawGlyph

(No version information available, might be only in CVS)

SWFShape->drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font

说明

SWFShape
void drawGlyph ( SWFFont $font , string $character [, int $size ] )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFShape->drawCurveTo
SWFShape->drawLine
SWFShape


Draws a line (relative)

SWFShape->drawGlyph
SWFShape->drawLineTo
SWFShape
PHP 手册

SWFShape->drawLine

(No version information available, might be only in CVS)

SWFShape->drawLine — Draws a line (relative)

说明

SWFShape
void drawLine ( float $dx , float $dy )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx ,dy ).

返回值

无返回值。

参见

  • SWFShape->drawLineTo

SWFShape->drawGlyph
SWFShape->drawLineTo
SWFShape


Draws a line

SWFShape->drawLine
SWFShape->movePen
SWFShape
PHP 手册

SWFShape->drawLineTo

(No version information available, might be only in CVS)

SWFShape->drawLineTo — Draws a line

说明

SWFShape
void drawLineTo ( float $x , float $y )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x ,y ) in the shape's coordinate space.

返回值

无返回值。

参见

  • SWFShape->drawLine

SWFShape->drawLine
SWFShape->movePen
SWFShape


Moves the shape's pen (relative)

SWFShape->drawLineTo
SWFShape->movePenTo
SWFShape
PHP 手册

SWFShape->movePen

(No version information available, might be only in CVS)

SWFShape->movePen — Moves the shape's pen (relative)

说明

SWFShape
void movePen ( float $dx , float $dy )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx , current y + dy ) in the shape's coordinate space.

返回值

无返回值。

参见

  • SWFShape->movePenTo

SWFShape->drawLineTo
SWFShape->movePenTo
SWFShape


Moves the shape's pen

SWFShape->movePen
SWFShape->setLeftFill
SWFShape
PHP 手册

SWFShape->movePenTo

(No version information available, might be only in CVS)

SWFShape->movePenTo — Moves the shape's pen

说明

SWFShape
void movePenTo ( float $x , float $y )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->setrightfill() move the shape's pen to (x ,y ) in the shape's coordinate space.

返回值

无返回值。

参见

  • SWFShape->movePen

SWFShape->movePen
SWFShape->setLeftFill
SWFShape


Sets left rasterizing color

SWFShape->movePenTo
SWFShape->setLine
SWFShape
PHP 手册

SWFShape->setLeftFill

(No version information available, might be only in CVS)

SWFShape->setLeftFill — Sets left rasterizing color

说明

SWFShape
void setLeftFill ( SWFGradient $fill )
void setLeftFill ( int $red , int $green , int $blue [, int $a ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

返回值

无返回值。

参见

  • SWFShape->setRightFill

SWFShape->movePenTo
SWFShape->setLine
SWFShape


Sets the shape's line style

SWFShape->setLeftFill
SWFShape->setRightFill
SWFShape
PHP 手册

SWFShape->setLine

(No version information available, might be only in CVS)

SWFShape->setLine — Sets the shape's line style

说明

SWFShape
void setLine ( SWFShape $shape )
void setLine ( int $width , int $red , int $green , int $blue [, int $a ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red , green , blue . Last parameter a is optional.

You must declare all line styles before you use them (see example).

返回值

无返回值。

范例

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Example #1 swfshape->setline() example

<?php
$s = new SWFShape();
$f1 = $s->addFill(0xff, 0, 0);
$f2 = $s->addFill(0xff, 0x7f, 0);
$f3 = $s->addFill(0xff, 0xff, 0);
$f4 = $s->addFill(0, 0xff, 0);
$f5 = $s->addFill(0, 0, 0xff);

// bug: have to declare all line styles before you use them
$s->setLine(40, 0x7f, 0, 0);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->setLine(40, 0, 0x7f, 0);
$s->setLine(40, 0, 0, 0x7f);

$f = new SWFFont('Techno.fdb');

$s->setRightFill($f1);
$s->setLine(40, 0x7f, 0, 0);
$s->drawGlyph($f, '!');
$s->movePen($f->getWidth('!'), 0);

$s->setRightFill($f2);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->drawGlyph($f, '#');
$s->movePen($f->getWidth('#'), 0);

$s->setRightFill($f3);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->drawGlyph($f, '%');
$s->movePen($f->getWidth('%'), 0);

$s->setRightFill($f4);
$s->setLine(40, 0, 0x7f, 0);
$s->drawGlyph($f, '*');
$s->movePen($f->getWidth('*'), 0);

$s->setRightFill($f5);
$s->setLine(40, 0, 0, 0x7f);
$s->drawGlyph($f, '@');

$m = new SWFMovie();
$m->setDimension(3000,2000);
$m->setRate(12.0);
$i = $m->add($s);
$i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

返回值

无返回值。

SWFShape->setLeftFill
SWFShape->setRightFill
SWFShape


Sets right rasterizing color

SWFShape->setLine
SWFSound
SWFShape
PHP 手册

SWFShape->setRightFill

(No version information available, might be only in CVS)

SWFShape->setRightFill — Sets right rasterizing color

说明

SWFShape
void setRightFill ( SWFGradient $fill )
void setRightFill ( int $red , int $green , int $blue [, int $a ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

返回值

无返回值。

参见

  • SWFShape->setLeftFill

SWFShape->setLine
SWFSound
SWFShape


The SWFSound class

简介

SWFSound.

Class synopsis

SWFSound
SWFSound {
/* Methods */
SWFSound __construct ( string $filename [, int $flags=0 ] )
}

Table of Contents

  • SWFSound — Returns a new SWFSound object from given file
SWFShape->setRightFill
SWFSound
Ming


Returns a new SWFSound object from given file

SWFSound
SWFSoundInstance
SWFSound
PHP 手册

SWFSound

(No version information available, might be only in CVS)

SWFSound — Returns a new SWFSound object from given file

说明

SWFSound
SWFSound __construct ( string $filename [, int $flags=0 ] )
Warning

本函数暂无文档，仅有参数列表。

SWFSound
SWFSoundInstance
SWFSound
PHP 手册


The SWFSoundInstance class

简介

SWFSoundInstance objects are returned by the SWFSprite->startSound and SWFMovie->startSound methods.

Class synopsis

SWFSoundInstance
SWFSoundInstance {
/* Methods */
void loopCount ( int $point )
void loopInPoint ( int $point )
void loopOutPoint ( int $point )
void noMultiple ( void )
}

Table of Contents

  • SWFSoundInstance->loopCount — 说明
  • SWFSoundInstance->loopInPoint — 说明
  • SWFSoundInstance->loopOutPoint — 说明
  • SWFSoundInstance->noMultiple — 说明
SWFSound
SWFSoundInstance->loopCount
Ming


SWFSoundInstance
SWFSoundInstance->loopInPoint
SWFSoundInstance
PHP 手册

SWFSoundInstance->loopCount

(No version information available, might be only in CVS)

SWFSoundInstance->loopCount —

说明

SWFSoundInstance
void loopCount ( int $point )
Warning

本函数暂无文档，仅有参数列表。

参数

point

返回值

无返回值。

参见

  • SWFSoundInstance->loopOutPoint

SWFSoundInstance
SWFSoundInstance->loopInPoint
SWFSoundInstance


SWFSoundInstance->loopCount
SWFSoundInstance->loopOutPoint
SWFSoundInstance
PHP 手册

SWFSoundInstance->loopInPoint

(No version information available, might be only in CVS)

SWFSoundInstance->loopInPoint —

说明

SWFSoundInstance
void loopInPoint ( int $point )
Warning

本函数暂无文档，仅有参数列表。

参数

point

返回值

无返回值。

参见

  • SWFSoundInstance->loopOutPoint

SWFSoundInstance->loopCount
SWFSoundInstance->loopOutPoint
SWFSoundInstance


SWFSoundInstance->loopInPoint
SWFSoundInstance->noMultiple
SWFSoundInstance
PHP 手册

SWFSoundInstance->loopOutPoint

(No version information available, might be only in CVS)

SWFSoundInstance->loopOutPoint —

说明

SWFSoundInstance
void loopOutPoint ( int $point )
Warning

本函数暂无文档，仅有参数列表。

参数

point

返回值

无返回值。

参见

  • SWFSoundInstance->loopInPoint

SWFSoundInstance->loopInPoint
SWFSoundInstance->noMultiple
SWFSoundInstance


SWFSoundInstance->loopOutPoint
SWFSprite
SWFSoundInstance
PHP 手册

SWFSoundInstance->noMultiple

(No version information available, might be only in CVS)

SWFSoundInstance->noMultiple —

说明

SWFSoundInstance
void noMultiple ( void )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFSoundInstance->loopOutPoint
SWFSprite
SWFSoundInstance


The SWFSprite class

简介

An SWFSprite is also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

Class synopsis

SWFSprite
SWFSprite {
/* Methods */
void add ( object $object )
SWFSprite __construct ( void )
void labelFrame ( string $label )
void nextFrame ( void )
void remove ( object $object )
void setFrames ( int $number )
SWFSoundInstance startSound ( SWFSound $sount )
void stopSound ( SWFSound $sount )
}

Table of Contents

  • SWFSprite->add — Adds an object to a sprite
  • SWFSprite->__construct — Creates a movie clip (a sprite)
  • SWFSprite->labelFrame — Labels frame
  • SWFSprite->nextFrame — Moves to the next frame of the animation
  • SWFSprite->remove — Removes an object to a sprite
  • SWFSprite->setFrames — Sets the total number of frames in the animation
  • SWFSprite->startSound — 说明
  • SWFSprite->stopSound — 说明
SWFSoundInstance->noMultiple
SWFSprite->add
Ming


Adds an object to a sprite

SWFSprite
SWFSprite->__construct
SWFSprite
PHP 手册

SWFSprite->add

(No version information available, might be only in CVS)

SWFSprite->add — Adds an object to a sprite

说明

SWFSprite
void add ( object $object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

返回值

无返回值。

SWFSprite
SWFSprite->__construct
SWFSprite


Creates a movie clip (a sprite)

SWFSprite->add
SWFSprite->labelFrame
SWFSprite
PHP 手册

SWFSprite->__construct

(No version information available, might be only in CVS)

SWFSprite->__construct — Creates a movie clip (a sprite)

说明

SWFSprite
SWFSprite __construct ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new SWFSprite object.

SWFSprite->add
SWFSprite->labelFrame
SWFSprite


Labels frame

SWFSprite->__construct
SWFSprite->nextFrame
SWFSprite
PHP 手册

SWFSprite->labelFrame

(No version information available, might be only in CVS)

SWFSprite->labelFrame — Labels frame

说明

SWFSprite
void labelFrame ( string $label )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFSprite->__construct
SWFSprite->nextFrame
SWFSprite


Moves to the next frame of the animation

SWFSprite->labelFrame
SWFSprite->remove
SWFSprite
PHP 手册

SWFSprite->nextFrame

(No version information available, might be only in CVS)

SWFSprite->nextFrame — Moves to the next frame of the animation

说明

SWFSprite
void nextFrame ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfsprite->setframes() moves to the next frame of the animation.

返回值

无返回值。

SWFSprite->labelFrame
SWFSprite->remove
SWFSprite


Removes an object to a sprite

SWFSprite->nextFrame
SWFSprite->setFrames
SWFSprite
PHP 手册

SWFSprite->remove

(No version information available, might be only in CVS)

SWFSprite->remove — Removes an object to a sprite

说明

SWFSprite
void remove ( object $object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

返回值

无返回值。

SWFSprite->nextFrame
SWFSprite->setFrames
SWFSprite


Sets the total number of frames in the animation

SWFSprite->remove
SWFSprite->startSound
SWFSprite
PHP 手册

SWFSprite->setFrames

(No version information available, might be only in CVS)

SWFSprite->setFrames — Sets the total number of frames in the animation

说明

SWFSprite
void setFrames ( int $number )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfsprite->setframes() sets the total number of frames in the animation to numberofframes .

返回值

无返回值。

SWFSprite->remove
SWFSprite->startSound
SWFSprite


SWFSprite->setFrames
SWFSprite->stopSound
SWFSprite
PHP 手册

SWFSprite->startSound

(No version information available, might be only in CVS)

SWFSprite->startSound —

说明

SWFSprite
SWFSoundInstance startSound ( SWFSound $sount )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFSprite->stopSound

SWFSprite->setFrames
SWFSprite->stopSound
SWFSprite


SWFSprite->startSound
SWFText
SWFSprite
PHP 手册

SWFSprite->stopSound

(No version information available, might be only in CVS)

SWFSprite->stopSound —

说明

SWFSprite
void stopSound ( SWFSound $sount )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFSprite->startSound

SWFSprite->startSound
SWFText
SWFSprite


The SWFText class

简介

SWFText.

Class synopsis

SWFText
SWFText {
/* Methods */
void addString ( string $string )
void addUTF8String ( string $text )
void __construct ( void )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
float getUTF8Width ( string $string )
float getWidth ( string $string )
void moveTo ( float $x , float $y )
void setColor ( int $red , int $green , int $blue [, int $a=255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setSpacing ( float $spacing )
}

Table of Contents

  • SWFText->addString — Draws a string
  • SWFText->addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
  • SWFText->__construct — Creates a new SWFText object
  • SWFText->getAscent — Returns the ascent of the current font at its current size, or 0 if not available
  • SWFText->getDescent — Returns the descent of the current font at its current size, or 0 if not available
  • SWFText->getLeading — Returns the leading of the current font at its current size, or 0 if not available
  • SWFText->getUTF8Width — calculates the width of the given string in this text objects current font and size
  • SWFText->getWidth — Computes string's width
  • SWFText->moveTo — Moves the pen
  • SWFText->setColor — Sets the current text color
  • SWFText->setFont — Sets the current font
  • SWFText->setHeight — Sets the current font height
  • SWFText->setSpacing — Sets the current font spacing
SWFSprite->stopSound
SWFText->addString
Ming


Draws a string

SWFText
SWFText->addUTF8String
SWFText
PHP 手册

SWFText->addString

(No version information available, might be only in CVS)

SWFText->addString — Draws a string

说明

SWFText
void addString ( string $string )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

返回值

无返回值。

参见

  • SWFText->addUTF8String

SWFText
SWFText->addUTF8String
SWFText


Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color

SWFText->addString
SWFText->__construct
SWFText
PHP 手册

SWFText->addUTF8String

(No version information available, might be only in CVS)

SWFText->addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color

说明

SWFText
void addUTF8String ( string $text )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFText->addString

SWFText->addString
SWFText->__construct
SWFText


Creates a new SWFText object

SWFText->addUTF8String
SWFText->getAscent
SWFText
PHP 手册

SWFText->__construct

(No version information available, might be only in CVS)

SWFText->__construct — Creates a new SWFText object

说明

SWFText
void __construct ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Creates a new SWFText object, fresh for manipulating.

范例

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Example #1 swftext() example

<?php
$f = new SWFFont("Techno.fdb");
$t = new SWFText();
$t->setFont($f);
$t->moveTo(200, 2400);
$t->setColor(0xff, 0xff, 0);
$t->setHeight(1200);
$t->addString("PHP generates Flash with Ming!!");

$m = new SWFMovie();
$m->setDimension(5400, 3600);

$m->add($t);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

SWFText->addUTF8String
SWFText->getAscent
SWFText


Returns the ascent of the current font at its current size, or 0 if not available

SWFText->__construct
SWFText->getDescent
SWFText
PHP 手册

SWFText->getAscent

(No version information available, might be only in CVS)

SWFText->getAscent — Returns the ascent of the current font at its current size, or 0 if not available

说明

SWFText
float getAscent ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFText->getDescent

SWFText->__construct
SWFText->getDescent
SWFText


Returns the descent of the current font at its current size, or 0 if not available

SWFText->getAscent
SWFText->getLeading
SWFText
PHP 手册

SWFText->getDescent

(No version information available, might be only in CVS)

SWFText->getDescent — Returns the descent of the current font at its current size, or 0 if not available

说明

SWFText
float getDescent ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFText->getAscent

SWFText->getAscent
SWFText->getLeading
SWFText


Returns the leading of the current font at its current size, or 0 if not available

SWFText->getDescent
SWFText->getUTF8Width
SWFText
PHP 手册

SWFText->getLeading

(No version information available, might be only in CVS)

SWFText->getLeading — Returns the leading of the current font at its current size, or 0 if not available

说明

SWFText
float getLeading ( void )
Warning

本函数暂无文档，仅有参数列表。

SWFText->getDescent
SWFText->getUTF8Width
SWFText


calculates the width of the given string in this text objects current font and size

SWFText->getLeading
SWFText->getWidth
SWFText
PHP 手册

SWFText->getUTF8Width

(No version information available, might be only in CVS)

SWFText->getUTF8Width — calculates the width of the given string in this text objects current font and size

说明

SWFText
float getUTF8Width ( string $string )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SWFText->getWidth

SWFText->getLeading
SWFText->getWidth
SWFText


Computes string's width

SWFText->getUTF8Width
SWFText->moveTo
SWFText
PHP 手册

SWFText->getWidth

(No version information available, might be only in CVS)

SWFText->getWidth — Computes string's width

说明

SWFText
float getWidth ( string $string )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the rendered width of the string at the text object's current font, scale, and spacing settings.

参见

  • SWFText->getUTF8Width

SWFText->getUTF8Width
SWFText->moveTo
SWFText


Moves the pen

SWFText->getWidth
SWFText->setColor
SWFText
PHP 手册

SWFText->moveTo

(No version information available, might be only in CVS)

SWFText->moveTo — Moves the pen

说明

SWFText
void moveTo ( float $x , float $y )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x ,y ) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

返回值

无返回值。

SWFText->getWidth
SWFText->setColor
SWFText


Sets the current text color

SWFText->moveTo
SWFText->setFont
SWFText
PHP 手册

SWFText->setColor

(No version information available, might be only in CVS)

SWFText->setColor — Sets the current text color

说明

SWFText
void setColor ( int $red , int $green , int $blue [, int $a=255 ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Changes the current text color.

参数

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

返回值

无返回值。

SWFText->moveTo
SWFText->setFont
SWFText


Sets the current font

SWFText->setColor
SWFText->setHeight
SWFText
PHP 手册

SWFText->setFont

(No version information available, might be only in CVS)

SWFText->setFont — Sets the current font

说明

SWFText
void setFont ( SWFFont $font )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftext->setfont() sets the current font to font .

返回值

无返回值。

SWFText->setColor
SWFText->setHeight
SWFText


Sets the current font height

SWFText->setFont
SWFText->setSpacing
SWFText
PHP 手册

SWFText->setHeight

(No version information available, might be only in CVS)

SWFText->setHeight — Sets the current font height

说明

SWFText
void setHeight ( float $height )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftext->setheight() sets the current font height to height . Default is 240.

返回值

无返回值。

SWFText->setFont
SWFText->setSpacing
SWFText


Sets the current font spacing

SWFText->setHeight
SWFTextField
SWFText
PHP 手册

SWFText->setSpacing

(No version information available, might be only in CVS)

SWFText->setSpacing — Sets the current font spacing

说明

SWFText
void setSpacing ( float $spacing )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftext->setspacing() sets the current font spacing to spacing . Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

返回值

无返回值。

SWFText->setHeight
SWFTextField
SWFText


The SWFTextField class

简介

SWFTextField.

Class synopsis

SWFTextField
SWFTextField {
/* Methods */
void addChars ( string $chars )
void addString ( string $string )
void align ( int $alignement )
SWFTextField __construct ([ int $flags ] )
void setBounds ( float $width , float $height )
void setColor ( int $red , int $green , int $blue [, int $a=255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setIndentation ( float $width )
void setLeftMargin ( float $width )
void setLineSpacing ( float $height )
void setMargins ( float $left , float $right )
void setName ( string $name )
void setPadding ( float $padding )
void setRightMargin ( float $width )
}

Table of Contents

  • SWFTextField->addChars — adds characters to a font that will be available within a textfield
  • SWFTextField->addString — Concatenates the given string to the text field
  • SWFTextField->align — Sets the text field alignment
  • SWFTextField->__construct — Creates a text field object
  • SWFTextField->setBounds — Sets the text field width and height
  • SWFTextField->setColor — Sets the color of the text field
  • SWFTextField->setFont — Sets the text field font
  • SWFTextField->setHeight — Sets the font height of this text field font
  • SWFTextField->setIndentation — Sets the indentation of the first line
  • SWFTextField->setLeftMargin — Sets the left margin width of the text field
  • SWFTextField->setLineSpacing — Sets the line spacing of the text field
  • SWFTextField->setMargins — Sets the margins width of the text field
  • SWFTextField->setName — Sets the variable name
  • SWFTextField->setPadding — Sets the padding of this textfield
  • SWFTextField->setRightMargin — Sets the right margin width of the text field
SWFText->setSpacing
SWFTextField->addChars
Ming


adds characters to a font that will be available within a textfield

SWFTextField
SWFTextField->addString
SWFTextField
PHP 手册

SWFTextField->addChars

(No version information available, might be only in CVS)

SWFTextField->addChars — adds characters to a font that will be available within a textfield

说明

SWFTextField
void addChars ( string $chars )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

参见

  • SWFTextField->addString

SWFTextField
SWFTextField->addString
SWFTextField


Concatenates the given string to the text field

SWFTextField->addChars
SWFTextField->align
SWFTextField
PHP 手册

SWFTextField->addString

(No version information available, might be only in CVS)

SWFTextField->addString — Concatenates the given string to the text field

说明

SWFTextField
void addString ( string $string )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setname() concatenates the string string to the text field.

返回值

无返回值。

SWFTextField->addChars
SWFTextField->align
SWFTextField


Sets the text field alignment

SWFTextField->addString
SWFTextField->__construct
SWFTextField
PHP 手册

SWFTextField->align

(No version information available, might be only in CVS)

SWFTextField->align — Sets the text field alignment

说明

SWFTextField
void align ( int $alignement )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->align() sets the text field alignment to alignement . Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

返回值

无返回值。

SWFTextField->addString
SWFTextField->__construct
SWFTextField


Creates a text field object

SWFTextField->align
SWFTextField->setBounds
SWFTextField
PHP 手册

SWFTextField->__construct

(No version information available, might be only in CVS)

SWFTextField->__construct — Creates a text field object

说明

SWFTextField
SWFTextField __construct ([ int $flags ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield
  • SWFTEXTFIELD_HASLENGTH
  • SWFTEXTFIELD_HTML allows text markup using HTML-tags
  • SWFTEXTFIELD_MULTILINE allows multiple lines
  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable
  • SWFTEXTFIELD_NOSELECT makes the field non-selectable
  • SWFTEXTFIELD_PASSWORD obscures the data entry
  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,

<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>

creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

SWFTextField->align
SWFTextField->setBounds
SWFTextField


Sets the text field width and height

SWFTextField->__construct
SWFTextField->setColor
SWFTextField
PHP 手册

SWFTextField->setBounds

(No version information available, might be only in CVS)

SWFTextField->setBounds — Sets the text field width and height

说明

SWFTextField
void setBounds ( float $width , float $height )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setbounds() sets the text field width to width and height to height . If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

返回值

无返回值。

SWFTextField->__construct
SWFTextField->setColor
SWFTextField


Sets the color of the text field

SWFTextField->setBounds
SWFTextField->setFont
SWFTextField
PHP 手册

SWFTextField->setColor

(No version information available, might be only in CVS)

SWFTextField->setColor — Sets the color of the text field

说明

SWFTextField
void setColor ( int $red , int $green , int $blue [, int $a=255 ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

参数

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

返回值

无返回值。

SWFTextField->setBounds
SWFTextField->setFont
SWFTextField


Sets the text field font

SWFTextField->setColor
SWFTextField->setHeight
SWFTextField
PHP 手册

SWFTextField->setFont

(No version information available, might be only in CVS)

SWFTextField->setFont — Sets the text field font

说明

SWFTextField
void setFont ( SWFFont $font )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

返回值

无返回值。

SWFTextField->setColor
SWFTextField->setHeight
SWFTextField


Sets the font height of this text field font

SWFTextField->setFont
SWFTextField->setIndentation
SWFTextField
PHP 手册

SWFTextField->setHeight

(No version information available, might be only in CVS)

SWFTextField->setHeight — Sets the font height of this text field font

说明

SWFTextField
void setHeight ( float $height )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setheight() sets the font height of this text field font to the given height height . Default is 240.

返回值

无返回值。

SWFTextField->setFont
SWFTextField->setIndentation
SWFTextField


Sets the indentation of the first line

SWFTextField->setHeight
SWFTextField->setLeftMargin
SWFTextField
PHP 手册

SWFTextField->setIndentation

(No version information available, might be only in CVS)

SWFTextField->setIndentation — Sets the indentation of the first line

说明

SWFTextField
void setIndentation ( float $width )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setindentation() sets the indentation of the first line in the text field, to width .

返回值

无返回值。

SWFTextField->setHeight
SWFTextField->setLeftMargin
SWFTextField


Sets the left margin width of the text field

SWFTextField->setIndentation
SWFTextField->setLineSpacing
SWFTextField
PHP 手册

SWFTextField->setLeftMargin

(No version information available, might be only in CVS)

SWFTextField->setLeftMargin — Sets the left margin width of the text field

说明

SWFTextField
void setLeftMargin ( float $width )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setleftmargin() sets the left margin width of the text field to width . Default is 0.

返回值

无返回值。

SWFTextField->setIndentation
SWFTextField->setLineSpacing
SWFTextField


Sets the line spacing of the text field

SWFTextField->setLeftMargin
SWFTextField->setMargins
SWFTextField
PHP 手册

SWFTextField->setLineSpacing

(No version information available, might be only in CVS)

SWFTextField->setLineSpacing — Sets the line spacing of the text field

说明

SWFTextField
void setLineSpacing ( float $height )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height . Default is 40.

返回值

无返回值。

SWFTextField->setLeftMargin
SWFTextField->setMargins
SWFTextField


Sets the margins width of the text field

SWFTextField->setLineSpacing
SWFTextField->setName
SWFTextField
PHP 手册

SWFTextField->setMargins

(No version information available, might be only in CVS)

SWFTextField->setMargins — Sets the margins width of the text field

说明

SWFTextField
void setMargins ( float $left , float $right )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setmargins() set both margins at once, for the man on the go.

返回值

无返回值。

SWFTextField->setLineSpacing
SWFTextField->setName
SWFTextField


Sets the variable name

SWFTextField->setMargins
SWFTextField->setPadding
SWFTextField
PHP 手册

SWFTextField->setName

(No version information available, might be only in CVS)

SWFTextField->setName — Sets the variable name

说明

SWFTextField
void setName ( string $name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setname() sets the variable name of this text field to name , for form posting and action scripting purposes.

返回值

无返回值。

SWFTextField->setMargins
SWFTextField->setPadding
SWFTextField


Sets the padding of this textfield

SWFTextField->setName
SWFTextField->setRightMargin
SWFTextField
PHP 手册

SWFTextField->setPadding

(No version information available, might be only in CVS)

SWFTextField->setPadding — Sets the padding of this textfield

说明

SWFTextField
void setPadding ( float $padding )
Warning

本函数暂无文档，仅有参数列表。

返回值

无返回值。

SWFTextField->setName
SWFTextField->setRightMargin
SWFTextField


Sets the right margin width of the text field

SWFTextField->setPadding
SWFVideoStream
SWFTextField
PHP 手册

SWFTextField->setRightMargin

(No version information available, might be only in CVS)

SWFTextField->setRightMargin — Sets the right margin width of the text field

说明

SWFTextField
void setRightMargin ( float $width )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swftextfield->setrightmargin() sets the right margin width of the text field to width . Default is 0.

返回值

无返回值。

SWFTextField->setPadding
SWFVideoStream
SWFTextField


The SWFVideoStream class

简介

SWFVideoStream.

Class synopsis

SWFVideoStream
SWFVideoStream {
/* Methods */
SWFVideoStream __construct ([ string $file ] )
int getNumFrames ( void )
void setDimension ( int $x , int $y )
}

Table of Contents

  • SWFVideoStream->__construct — Returns a SWFVideoStream object
  • SWFVideoStream->getNumFrames — Returns the number of frames in the video
  • SWFVideoStream->setDimension — Sets video dimension
SWFTextField->setRightMargin
SWFVideoStream->__construct
Ming


Returns a SWFVideoStream object

SWFVideoStream
SWFVideoStream->getNumFrames
SWFVideoStream
PHP 手册

SWFVideoStream->__construct

(No version information available, might be only in CVS)

SWFVideoStream->__construct — Returns a SWFVideoStream object

说明

SWFVideoStream
SWFVideoStream __construct ([ string $file ] )
Warning

本函数暂无文档，仅有参数列表。

SWFVideoStream
SWFVideoStream->getNumFrames
SWFVideoStream


Returns the number of frames in the video

SWFVideoStream->__construct
SWFVideoStream->setDimension
SWFVideoStream
PHP 手册

SWFVideoStream->getNumFrames

(No version information available, might be only in CVS)

SWFVideoStream->getNumFrames — Returns the number of frames in the video

说明

SWFVideoStream
int getNumFrames ( void )

This function returns the number of video-frames of a SWFVideoStream.

返回值

Returns the number of frames, as an integer

SWFVideoStream->__construct
SWFVideoStream->setDimension
SWFVideoStream


Sets video dimension

SWFVideoStream->getNumFrames
PDF
SWFVideoStream
PHP 手册

SWFVideoStream->setDimension

(No version information available, might be only in CVS)

SWFVideoStream->setDimension — Sets video dimension

说明

SWFVideoStream
void setDimension ( int $x , int $y )

Sets the width and height for streamed videos.

参数

x

Width in pixels.

y

Height in pixels.

返回值

无返回值。

SWFVideoStream->getNumFrames
PDF
SWFVideoStream


PDF

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic Usage Examples
  • PDF 函数
    • PDF_activate_item — Activate structure element or other content item
    • PDF_add_annotation — Add annotation [deprecated]
    • PDF_add_bookmark — Add bookmark for current page [deprecated]
    • PDF_add_launchlink — Add launch annotation for current page [deprecated]
    • PDF_add_locallink — Add link annotation for current page [deprecated]
    • PDF_add_nameddest — Create named destination
    • PDF_add_note — Set annotation for current page [deprecated]
    • PDF_add_outline — Add bookmark for current page [deprecated]
    • PDF_add_pdflink — Add file link annotation for current page [deprecated]
    • PDF_add_table_cell — Add a cell to a new or existing table
    • PDF_add_textflow — Create Textflow or add text to existing Textflow
    • PDF_add_thumbnail — Add thumbnail for current page
    • PDF_add_weblink — Add weblink for current page [deprecated]
    • PDF_arc — Draw a counterclockwise circular arc segment
    • PDF_arcn — Draw a clockwise circular arc segment
    • PDF_attach_file — Add file attachment for current page [deprecated]
    • PDF_begin_document — Create new PDF file
    • PDF_begin_font — Start a Type 3 font definition
    • PDF_begin_glyph — Start glyph definition for Type 3 font
    • PDF_begin_item — Open structure element or other content item
    • PDF_begin_layer — Start layer
    • PDF_begin_page_ext — Start new page
    • PDF_begin_page — Start new page [deprecated]
    • PDF_begin_pattern — Start pattern definition
    • PDF_begin_template_ext — Start template definition
    • PDF_begin_template — Start template definition [deprecated]
    • PDF_circle — Draw a circle
    • PDF_clip — Clip to current path
    • PDF_close_image — Close image
    • PDF_close_pdi_page — Close the page handle
    • PDF_close_pdi — Close the input PDF document [deprecated]
    • PDF_close — Close pdf resource [deprecated]
    • PDF_closepath_fill_stroke — Close, fill and stroke current path
    • PDF_closepath_stroke — Close and stroke path
    • PDF_closepath — Close current path
    • PDF_concat — Concatenate a matrix to the CTM
    • PDF_continue_text — Output text in next line
    • PDF_create_3dview — Create 3D view
    • PDF_create_action — Create action for objects or events
    • PDF_create_annotation — Create rectangular annotation
    • PDF_create_bookmark — Create bookmark
    • PDF_create_field — Create form field
    • PDF_create_fieldgroup — Create form field group
    • PDF_create_gstate — Create graphics state object
    • PDF_create_pvf — Create PDFlib virtual file
    • PDF_create_textflow — Create textflow object
    • PDF_curveto — Draw Bezier curve
    • PDF_define_layer — Create layer definition
    • PDF_delete_pvf — Delete PDFlib virtual file
    • PDF_delete_table — Delete table object
    • PDF_delete_textflow — Delete textflow object
    • PDF_delete — Delete PDFlib object
    • PDF_encoding_set_char — Add glyph name and/or Unicode value
    • PDF_end_document — Close PDF file
    • PDF_end_font — Terminate Type 3 font definition
    • PDF_end_glyph — Terminate glyph definition for Type 3 font
    • PDF_end_item — Close structure element or other content item
    • PDF_end_layer — Deactivate all active layers
    • PDF_end_page_ext — Finish page
    • PDF_end_page — Finish page
    • PDF_end_pattern — Finish pattern
    • PDF_end_template — Finish template
    • PDF_endpath — End current path
    • PDF_fill_imageblock — Fill image block with variable data
    • PDF_fill_pdfblock — Fill PDF block with variable data
    • PDF_fill_stroke — Fill and stroke path
    • PDF_fill_textblock — Fill text block with variable data
    • PDF_fill — Fill current path
    • PDF_findfont — Prepare font for later use [deprecated]
    • PDF_fit_image — Place image or template
    • PDF_fit_pdi_page — Place imported PDF page
    • PDF_fit_table — Place table on page
    • PDF_fit_textflow — Format textflow in rectangular area
    • PDF_fit_textline — Place single line of text
    • PDF_get_apiname — Get name of unsuccessfull API function
    • PDF_get_buffer — Get PDF output buffer
    • PDF_get_errmsg — Get error text
    • PDF_get_errnum — Get error number
    • PDF_get_font — Get font [deprecated]
    • PDF_get_fontname — Get font name [deprecated]
    • PDF_get_fontsize — Font handling [deprecated]
    • PDF_get_image_height — Get image height [deprecated]
    • PDF_get_image_width — Get image width [deprecated]
    • PDF_get_majorversion — Get major version number [deprecated]
    • PDF_get_minorversion — Get minor version number [deprecated]
    • PDF_get_parameter — Get string parameter
    • PDF_get_pdi_parameter — Get PDI string parameter [deprecated]
    • PDF_get_pdi_value — Get PDI numerical parameter [deprecated]
    • PDF_get_value — Get numerical parameter
    • PDF_info_font — Query detailed information about a loaded font
    • PDF_info_matchbox — Query matchbox information
    • PDF_info_table — Retrieve table information
    • PDF_info_textflow — Query textflow state
    • PDF_info_textline — Perform textline formatting and query metrics
    • PDF_initgraphics — Reset graphic state
    • PDF_lineto — Draw a line
    • PDF_load_3ddata — Load 3D model
    • PDF_load_font — Search and prepare font
    • PDF_load_iccprofile — Search and prepare ICC profile
    • PDF_load_image — Open image file
    • PDF_makespotcolor — Make spot color
    • PDF_moveto — Set current point
    • PDF_new — Create PDFlib object
    • PDF_open_ccitt — Open raw CCITT image [deprecated]
    • PDF_open_file — Create PDF file [deprecated]
    • PDF_open_gif — Open GIF image [deprecated]
    • PDF_open_image_file — Read image from file [deprecated]
    • PDF_open_image — Use image data [deprecated]
    • PDF_open_jpeg — Open JPEG image [deprecated]
    • PDF_open_memory_image — Open image created with PHP's image functions [not supported]
    • PDF_open_pdi_page — Prepare a page
    • PDF_open_pdi — Open PDF file [deprecated]
    • PDF_open_tiff — Open TIFF image [deprecated]
    • PDF_pcos_get_number — Get value of pCOS path with type number or boolean
    • PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string
    • PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean
    • PDF_place_image — Place image on the page [deprecated]
    • PDF_place_pdi_page — Place PDF page [deprecated]
    • PDF_process_pdi — Process imported PDF document
    • PDF_rect — Draw rectangle
    • PDF_restore — Restore graphics state
    • PDF_resume_page — Resume page
    • PDF_rotate — Rotate coordinate system
    • PDF_save — Save graphics state
    • PDF_scale — Scale coordinate system
    • PDF_set_border_color — Set border color of annotations [deprecated]
    • PDF_set_border_dash — Set border dash style of annotations [deprecated]
    • PDF_set_border_style — Set border style of annotations [deprecated]
    • PDF_set_char_spacing — Set character spacing [deprecated]
    • PDF_set_duration — Set duration between pages [deprecated]
    • PDF_set_gstate — Activate graphics state object
    • PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]
    • PDF_set_info_author — Fill the author document info field [deprecated]
    • PDF_set_info_creator — Fill the creator document info field [deprecated]
    • PDF_set_info_keywords — Fill the keywords document info field [deprecated]
    • PDF_set_info_subject — Fill the subject document info field [deprecated]
    • PDF_set_info_title — Fill the title document info field [deprecated]
    • PDF_set_info — Fill document info field
    • PDF_set_layer_dependency — Define relationships among layers
    • PDF_set_leading — Set distance between text lines [deprecated]
    • PDF_set_parameter — Set string parameter
    • PDF_set_text_matrix — Set text matrix [deprecated]
    • PDF_set_text_pos — Set text position
    • PDF_set_text_rendering — Determine text rendering [deprecated]
    • PDF_set_text_rise — Set text rise [deprecated]
    • PDF_set_value — Set numerical parameter
    • PDF_set_word_spacing — Set spacing between words [deprecated]
    • PDF_setcolor — Set fill and stroke color
    • PDF_setdash — Set simple dash pattern
    • PDF_setdashpattern — Set dash pattern
    • PDF_setflat — Set flatness
    • PDF_setfont — Set font
    • PDF_setgray_fill — Set fill color to gray [deprecated]
    • PDF_setgray_stroke — Set stroke color to gray [deprecated]
    • PDF_setgray — Set color to gray [deprecated]
    • PDF_setlinecap — Set linecap parameter
    • PDF_setlinejoin — Set linejoin parameter
    • PDF_setlinewidth — Set line width
    • PDF_setmatrix — Set current transformation matrix
    • PDF_setmiterlimit — Set miter limit
    • PDF_setpolydash — Set complicated dash pattern [deprecated]
    • PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]
    • PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]
    • PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]
    • PDF_shading_pattern — Define shading pattern
    • PDF_shading — Define blend
    • PDF_shfill — Fill area with shading
    • PDF_show_boxed — Output text in a box [deprecated]
    • PDF_show_xy — Output text at given position
    • PDF_show — Output text at current position
    • PDF_skew — Skew the coordinate system
    • PDF_stringwidth — Return width of text
    • PDF_stroke — Stroke path
    • PDF_suspend_page — Suspend page
    • PDF_translate — Set origin of coordinate system
    • PDF_utf16_to_utf8 — Convert string from UTF-16 to UTF-8
    • PDF_utf32_to_utf16 — Convert string from UTF-32 to UTF-16
    • PDF_utf8_to_utf16 — Convert string from UTF-8 to UTF-16
SWFVideoStream->setDimension
简介
非文本内容的MIME输出


简介

The PDF functions in PHP can create PDF files using the PDFlib library which was initially created by Thomas Merz and is now maintained by » PDFlib GmbH.

The documentation in this section is only meant to be an overview of the available functions in the PDFlib library and should not be considered an exhaustive reference. For the full and detailed explanation of each function, consult the PDFlib Reference Manual which is included in all PDFlib packages distributed by PDFlib GmbH. It provides a very good overview of what PDFlib is capable of doing and contains the most up-to-date documentation of all functions.

For a jump start we urge you to take a look at the programming samples which are contained in all PDFlib distribution packages. These samples demonstrate basic text, vector, and graphics output as well as higher-level functions, such as the PDF import facility (PDI).

All of the functions in PDFlib and the PHP module have identical function names and parameters. Unless configured otherwise, all lengths and coordinates are measured in PostScript points. There are generally 72 PostScript points to an inch, but this depends on the output resolution. Please see the PDFlib Reference Manual included in the PDFlib distribution for a more thorough explanation of the coordinate system used.

With version 6, PDFlib offers an object-oriented API for PHP 5 in addition to the function-oriented API for PHP 4. The main difference is the following:

In PHP 4, first a PDF resource has to be retrieved with a function call like

$p = PDF_new().

This PDF resource is used as the first parameter in all further function calls, such as in

PDF_begin_document($p, "", "").

In PHP 5 however, a PDFlib object is created with

$p = new PDFlib().

This object offers all PDFlib API functions as methods, e.g. as with

$p->begin_document("", "").

In addition, exceptions have been introduced in PHP 5 which are supported by PDFlib 6 and later as well.

Please see the examples below for more information.

Note: If you're interested in alternative free PDF generators that do not utilize external PDF libraries, see this related FAQ.

PDF
安装/配置
PDF


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PDF


需求

PDFlib Lite is available as open source. However, the PDFlib Lite license allows free use only under certain conditions. PDFlib Lite supports a subset of PDFlib's functionality; please see the PDFlib web site for details. The full version of PDFlib is available for download at » http://www.pdflib.com/products/pdflib-family/, but requires that you purchase a license for commercial use.

Issues with older versions of PDFlib

Any version of PHP 4 after March 9, 2000 does not support versions of PDFlib older than 3.0.

PDFlib 4.0 or greater is supported by PHP 4.3.0 and later.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/pdflib.

To get these functions to work in PHP < 4.3.9, you have to compile PHP with --with-pdflib[=DIR]. DIR is the PDFlib base install directory, defaults to /usr/local.

需求
运行时配置
安装/配置


资源类型

PDF_new() creates a new PDFlib object required by most PDF functions.

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
PDF


范例

Table of Contents

  • Basic Usage Examples
预定义常量
Basic Usage Examples
PDF


Basic Usage Examples

Most of the functions are fairly easy to use. The most difficult part is probably creating your first PDF document. The following example should help to get you started. It is developed for PHP 4 and creates the file hello.pdf with one page. It defines some document info field contents, loads the Helvetica-Bold font and outputs the text "Hello world! (says PHP)".

Example #1 Hello World example from PDFlib distribution for PHP 4

<?php
$p = PDF_new();

/*  open new PDF file; insert a file name to create the PDF on disk */
if (PDF_begin_document($p, "", "") == 0) {
    die("Error: " . PDF_get_errmsg($p));
}

PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Rainer Schaaf");
PDF_set_info($p, "Title", "Hello world (PHP)!");

PDF_begin_page_ext($p, 595, 842, "");

$font = PDF_load_font($p, "Helvetica-Bold", "winansi", "");

PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
PDF_show($p, "Hello world!");
PDF_continue_text($p, "(says PHP)");
PDF_end_page_ext($p, "");

PDF_end_document($p, "");

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

PDF_delete($p);
?>

The following example comes with the PDFlib distribution for PHP 5. It uses the new exception handling and object encapsulation features available in PHP 5. It creates the file hello.pdf with one page. It defines some document info field contents, loads the Helvetica-Bold font and outputs the text "Hello world! (says PHP)".

Example #2 Hello World example from PDFlib distribution for PHP 5

<?php

try {
    $p = new PDFlib();

    /*  open new PDF file; insert a file name to create the PDF on disk */
    if ($p->begin_document("", "") == 0) {
        die("Error: " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Hello world (PHP)!");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Helvetica-Bold", "winansi", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Hello world!");
    $p->continue_text("(says PHP)");
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=hello.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("PDFlib exception occurred in hello sample:\n" .
    "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
    $e->get_errmsg() . "\n");
}
catch (Exception $e) {
    die($e);
}
$p = 0;
?>

范例
PDF 函数
范例


PDF 函数

Remarks about Deprecated PDFlib Functions

Starting with PHP 4.0.5, the PHP extension for PDFlib is officially supported by PDFlib GmbH. This means that all the functions described in the PDFlib Reference Manual are supported by PHP 4 with exactly the same meaning and the same parameters. However, with PDFlib Version 5.0.4 or higher all parameters have to be specified. For compatibility reasons, this binding for PDFlib still supports most of the deprecated functions, but they should be replaced by their new versions. PDFlib GmbH will not support any problems arising from the use of these deprecated functions. The documentation in this section indicates old functions as "Deprecated" and gives the replacement function to be used instead.

Table of Contents

  • PDF_activate_item — Activate structure element or other content item
  • PDF_add_annotation — Add annotation [deprecated]
  • PDF_add_bookmark — Add bookmark for current page [deprecated]
  • PDF_add_launchlink — Add launch annotation for current page [deprecated]
  • PDF_add_locallink — Add link annotation for current page [deprecated]
  • PDF_add_nameddest — Create named destination
  • PDF_add_note — Set annotation for current page [deprecated]
  • PDF_add_outline — Add bookmark for current page [deprecated]
  • PDF_add_pdflink — Add file link annotation for current page [deprecated]
  • PDF_add_table_cell — Add a cell to a new or existing table
  • PDF_add_textflow — Create Textflow or add text to existing Textflow
  • PDF_add_thumbnail — Add thumbnail for current page
  • PDF_add_weblink — Add weblink for current page [deprecated]
  • PDF_arc — Draw a counterclockwise circular arc segment
  • PDF_arcn — Draw a clockwise circular arc segment
  • PDF_attach_file — Add file attachment for current page [deprecated]
  • PDF_begin_document — Create new PDF file
  • PDF_begin_font — Start a Type 3 font definition
  • PDF_begin_glyph — Start glyph definition for Type 3 font
  • PDF_begin_item — Open structure element or other content item
  • PDF_begin_layer — Start layer
  • PDF_begin_page_ext — Start new page
  • PDF_begin_page — Start new page [deprecated]
  • PDF_begin_pattern — Start pattern definition
  • PDF_begin_template_ext — Start template definition
  • PDF_begin_template — Start template definition [deprecated]
  • PDF_circle — Draw a circle
  • PDF_clip — Clip to current path
  • PDF_close_image — Close image
  • PDF_close_pdi_page — Close the page handle
  • PDF_close_pdi — Close the input PDF document [deprecated]
  • PDF_close — Close pdf resource [deprecated]
  • PDF_closepath_fill_stroke — Close, fill and stroke current path
  • PDF_closepath_stroke — Close and stroke path
  • PDF_closepath — Close current path
  • PDF_concat — Concatenate a matrix to the CTM
  • PDF_continue_text — Output text in next line
  • PDF_create_3dview — Create 3D view
  • PDF_create_action — Create action for objects or events
  • PDF_create_annotation — Create rectangular annotation
  • PDF_create_bookmark — Create bookmark
  • PDF_create_field — Create form field
  • PDF_create_fieldgroup — Create form field group
  • PDF_create_gstate — Create graphics state object
  • PDF_create_pvf — Create PDFlib virtual file
  • PDF_create_textflow — Create textflow object
  • PDF_curveto — Draw Bezier curve
  • PDF_define_layer — Create layer definition
  • PDF_delete_pvf — Delete PDFlib virtual file
  • PDF_delete_table — Delete table object
  • PDF_delete_textflow — Delete textflow object
  • PDF_delete — Delete PDFlib object
  • PDF_encoding_set_char — Add glyph name and/or Unicode value
  • PDF_end_document — Close PDF file
  • PDF_end_font — Terminate Type 3 font definition
  • PDF_end_glyph — Terminate glyph definition for Type 3 font
  • PDF_end_item — Close structure element or other content item
  • PDF_end_layer — Deactivate all active layers
  • PDF_end_page_ext — Finish page
  • PDF_end_page — Finish page
  • PDF_end_pattern — Finish pattern
  • PDF_end_template — Finish template
  • PDF_endpath — End current path
  • PDF_fill_imageblock — Fill image block with variable data
  • PDF_fill_pdfblock — Fill PDF block with variable data
  • PDF_fill_stroke — Fill and stroke path
  • PDF_fill_textblock — Fill text block with variable data
  • PDF_fill — Fill current path
  • PDF_findfont — Prepare font for later use [deprecated]
  • PDF_fit_image — Place image or template
  • PDF_fit_pdi_page — Place imported PDF page
  • PDF_fit_table — Place table on page
  • PDF_fit_textflow — Format textflow in rectangular area
  • PDF_fit_textline — Place single line of text
  • PDF_get_apiname — Get name of unsuccessfull API function
  • PDF_get_buffer — Get PDF output buffer
  • PDF_get_errmsg — Get error text
  • PDF_get_errnum — Get error number
  • PDF_get_font — Get font [deprecated]
  • PDF_get_fontname — Get font name [deprecated]
  • PDF_get_fontsize — Font handling [deprecated]
  • PDF_get_image_height — Get image height [deprecated]
  • PDF_get_image_width — Get image width [deprecated]
  • PDF_get_majorversion — Get major version number [deprecated]
  • PDF_get_minorversion — Get minor version number [deprecated]
  • PDF_get_parameter — Get string parameter
  • PDF_get_pdi_parameter — Get PDI string parameter [deprecated]
  • PDF_get_pdi_value — Get PDI numerical parameter [deprecated]
  • PDF_get_value — Get numerical parameter
  • PDF_info_font — Query detailed information about a loaded font
  • PDF_info_matchbox — Query matchbox information
  • PDF_info_table — Retrieve table information
  • PDF_info_textflow — Query textflow state
  • PDF_info_textline — Perform textline formatting and query metrics
  • PDF_initgraphics — Reset graphic state
  • PDF_lineto — Draw a line
  • PDF_load_3ddata — Load 3D model
  • PDF_load_font — Search and prepare font
  • PDF_load_iccprofile — Search and prepare ICC profile
  • PDF_load_image — Open image file
  • PDF_makespotcolor — Make spot color
  • PDF_moveto — Set current point
  • PDF_new — Create PDFlib object
  • PDF_open_ccitt — Open raw CCITT image [deprecated]
  • PDF_open_file — Create PDF file [deprecated]
  • PDF_open_gif — Open GIF image [deprecated]
  • PDF_open_image_file — Read image from file [deprecated]
  • PDF_open_image — Use image data [deprecated]
  • PDF_open_jpeg — Open JPEG image [deprecated]
  • PDF_open_memory_image — Open image created with PHP's image functions [not supported]
  • PDF_open_pdi_page — Prepare a page
  • PDF_open_pdi — Open PDF file [deprecated]
  • PDF_open_tiff — Open TIFF image [deprecated]
  • PDF_pcos_get_number — Get value of pCOS path with type number or boolean
  • PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string
  • PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean
  • PDF_place_image — Place image on the page [deprecated]
  • PDF_place_pdi_page — Place PDF page [deprecated]
  • PDF_process_pdi — Process imported PDF document
  • PDF_rect — Draw rectangle
  • PDF_restore — Restore graphics state
  • PDF_resume_page — Resume page
  • PDF_rotate — Rotate coordinate system
  • PDF_save — Save graphics state
  • PDF_scale — Scale coordinate system
  • PDF_set_border_color — Set border color of annotations [deprecated]
  • PDF_set_border_dash — Set border dash style of annotations [deprecated]
  • PDF_set_border_style — Set border style of annotations [deprecated]
  • PDF_set_char_spacing — Set character spacing [deprecated]
  • PDF_set_duration — Set duration between pages [deprecated]
  • PDF_set_gstate — Activate graphics state object
  • PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]
  • PDF_set_info_author — Fill the author document info field [deprecated]
  • PDF_set_info_creator — Fill the creator document info field [deprecated]
  • PDF_set_info_keywords — Fill the keywords document info field [deprecated]
  • PDF_set_info_subject — Fill the subject document info field [deprecated]
  • PDF_set_info_title — Fill the title document info field [deprecated]
  • PDF_set_info — Fill document info field
  • PDF_set_layer_dependency — Define relationships among layers
  • PDF_set_leading — Set distance between text lines [deprecated]
  • PDF_set_parameter — Set string parameter
  • PDF_set_text_matrix — Set text matrix [deprecated]
  • PDF_set_text_pos — Set text position
  • PDF_set_text_rendering — Determine text rendering [deprecated]
  • PDF_set_text_rise — Set text rise [deprecated]
  • PDF_set_value — Set numerical parameter
  • PDF_set_word_spacing — Set spacing between words [deprecated]
  • PDF_setcolor — Set fill and stroke color
  • PDF_setdash — Set simple dash pattern
  • PDF_setdashpattern — Set dash pattern
  • PDF_setflat — Set flatness
  • PDF_setfont — Set font
  • PDF_setgray_fill — Set fill color to gray [deprecated]
  • PDF_setgray_stroke — Set stroke color to gray [deprecated]
  • PDF_setgray — Set color to gray [deprecated]
  • PDF_setlinecap — Set linecap parameter
  • PDF_setlinejoin — Set linejoin parameter
  • PDF_setlinewidth — Set line width
  • PDF_setmatrix — Set current transformation matrix
  • PDF_setmiterlimit — Set miter limit
  • PDF_setpolydash — Set complicated dash pattern [deprecated]
  • PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]
  • PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]
  • PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]
  • PDF_shading_pattern — Define shading pattern
  • PDF_shading — Define blend
  • PDF_shfill — Fill area with shading
  • PDF_show_boxed — Output text in a box [deprecated]
  • PDF_show_xy — Output text at given position
  • PDF_show — Output text at current position
  • PDF_skew — Skew the coordinate system
  • PDF_stringwidth — Return width of text
  • PDF_stroke — Stroke path
  • PDF_suspend_page — Suspend page
  • PDF_translate — Set origin of coordinate system
  • PDF_utf16_to_utf8 — Convert string from UTF-16 to UTF-8
  • PDF_utf32_to_utf16 — Convert string from UTF-32 to UTF-16
  • PDF_utf8_to_utf16 — Convert string from UTF-8 to UTF-16
Basic Usage Examples
PDF_activate_item
PDF


Activate structure element or other content item

PDF 函数
PDF_add_annotation
PDF 函数
PHP 手册

PDF_activate_item

(PECL pdflib >= 2.0.0)

PDF_activate_item — Activate structure element or other content item

说明

bool PDF_activate_item ( resource $pdfdoc , int $id )

Activates a previously created structure element or other content item. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF 函数
PDF_add_annotation
PDF 函数


Add annotation [deprecated]

PDF_activate_item
PDF_add_bookmark
PDF 函数
PHP 手册

PDF_add_annotation

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_annotation — Add annotation [deprecated]

说明

This function is deprecated, use PDF_create_annotation() with type=Text instead.

PDF_activate_item
PDF_add_bookmark
PDF 函数


Add bookmark for current page [deprecated]

PDF_add_annotation
PDF_add_launchlink
PDF 函数
PHP 手册

PDF_add_bookmark

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_add_bookmark — Add bookmark for current page [deprecated]

说明

This function is deprecated since PDFlib version 6, use PDF_create_bookmark() instead.

PDF_add_annotation
PDF_add_launchlink
PDF 函数


Add launch annotation for current page [deprecated]

PDF_add_bookmark
PDF_add_locallink
PDF 函数
PHP 手册

PDF_add_launchlink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_launchlink — Add launch annotation for current page [deprecated]

说明

bool PDF_add_launchlink ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename )

Adds a link to a web resource.

This function is deprecated since PDFlib version 6, use PDF_create_action() with type=Launch and PDF_create_annotation() with type=Link instead.

PDF_add_bookmark
PDF_add_locallink
PDF 函数


Add link annotation for current page [deprecated]

PDF_add_launchlink
PDF_add_nameddest
PDF 函数
PHP 手册

PDF_add_locallink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_locallink — Add link annotation for current page [deprecated]

说明

bool PDF_add_locallink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , int $page , string $dest )

Add a link annotation to a target within the current PDF file. 如果成功则返回 TRUE，失败则返回 FALSE。

  This function is deprecated since PDFlib version 6, use
  PDF_create_action() with type=GoTo

  and PDF_create_annotation() with
  type=Link
instead.

PDF_add_launchlink
PDF_add_nameddest
PDF 函数


Create named destination

PDF_add_locallink
PDF_add_note
PDF 函数
PHP 手册

PDF_add_nameddest

(PECL pdflib >= 2.0.0)

PDF_add_nameddest — Create named destination

说明

bool PDF_add_nameddest ( resource $pdfdoc , string $name , string $optlist )

Creates a named destination on an arbitrary page in the current document. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_add_locallink
PDF_add_note
PDF 函数


Set annotation for current page [deprecated]

PDF_add_nameddest
PDF_add_outline
PDF 函数
PHP 手册

PDF_add_note

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_note — Set annotation for current page [deprecated]

说明

bool PDF_add_note ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

Sets an annotation for the current page. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use PDF_create_annotation() with type=Text instead.

PDF_add_nameddest
PDF_add_outline
PDF 函数


Add bookmark for current page [deprecated]

PDF_add_note
PDF_add_pdflink
PDF 函数
PHP 手册

PDF_add_outline

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_outline — Add bookmark for current page [deprecated]

说明

This function is deprecated, use PDF_create_bookmark() instead.

PDF_add_note
PDF_add_pdflink
PDF 函数


Add file link annotation for current page [deprecated]

PDF_add_outline
PDF_add_table_cell
PDF 函数
PHP 手册

PDF_add_pdflink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_pdflink — Add file link annotation for current page [deprecated]

说明

bool PDF_add_pdflink ( resource $pdfdoc , float $bottom_left_x , float $bottom_left_y , float $up_right_x , float $up_right_y , string $filename , int $page , string $dest )

Add a file link annotation to a PDF target. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use PDF_create_action() with type=GoToR and PDF_create_annotation() with type=Link instead.

PDF_add_outline
PDF_add_table_cell
PDF 函数


Add a cell to a new or existing table

PDF_add_pdflink
PDF_add_textflow
PDF 函数
PHP 手册

PDF_add_table_cell

(PECL pdflib >= 2.1.0)

PDF_add_table_cell — Add a cell to a new or existing table

说明

int PDF_add_table_cell ( resource $pdfdoc , int $table , int $column , int $row , string $text , string $optlist )

Adds a cell to a new or existing table.

PDF_add_pdflink
PDF_add_textflow
PDF 函数


Create Textflow or add text to existing Textflow

PDF_add_table_cell
PDF_add_thumbnail
PDF 函数
PHP 手册

PDF_add_textflow

(PECL pdflib >= 2.1.0)

PDF_add_textflow — Create Textflow or add text to existing Textflow

说明

int PDF_add_textflow ( resource $pdfdoc , int $textflow , string $text , string $optlist )

Creates a Textflow object, or adds text and explicit options to an existing Textflow.

PDF_add_table_cell
PDF_add_thumbnail
PDF 函数


Add thumbnail for current page

PDF_add_textflow
PDF_add_weblink
PDF 函数
PHP 手册

PDF_add_thumbnail

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_thumbnail — Add thumbnail for current page

说明

bool PDF_add_thumbnail ( resource $pdfdoc , int $image )

Adds an existing image as thumbnail for the current page. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_add_textflow
PDF_add_weblink
PDF 函数


Add weblink for current page [deprecated]

PDF_add_thumbnail
PDF_arc
PDF 函数
PHP 手册

PDF_add_weblink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_weblink — Add weblink for current page [deprecated]

说明

bool PDF_add_weblink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , string $url )

Adds a weblink annotation to a target url on the Web. 如果成功则返回 TRUE，失败则返回 FALSE。

  This function is deprecated since PDFlib version 6, use
  PDF_create_action() with type=URI

  and PDF_create_annotation() with
  type=Link
instead.

PDF_add_thumbnail
PDF_arc
PDF 函数


Draw a counterclockwise circular arc segment

PDF_add_weblink
PDF_arcn
PDF 函数
PHP 手册

PDF_arc

(PHP 4, PECL pdflib >= 1.0.0)

PDF_arc — Draw a counterclockwise circular arc segment

说明

bool PDF_arc ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

Adds a counterclockwise circular arc.

PDF_add_weblink
PDF_arcn
PDF 函数


Draw a clockwise circular arc segment

PDF_arc
PDF_attach_file
PDF 函数
PHP 手册

PDF_arcn

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_arcn — Draw a clockwise circular arc segment

说明

bool PDF_arcn ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

Except for the drawing direction, this function behaves exactly like PDF_arc().

PDF_arc
PDF_attach_file
PDF 函数


Add file attachment for current page [deprecated]

PDF_arcn
PDF_begin_document
PDF 函数
PHP 手册

PDF_attach_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_attach_file — Add file attachment for current page [deprecated]

说明

bool PDF_attach_file ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename , string $description , string $author , string $mimetype , string $icon )

Adds a file attachment annotation. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use PDF_create_annotation() with type=FileAttachment instead.

PDF_arcn
PDF_begin_document
PDF 函数


Create new PDF file

PDF_attach_file
PDF_begin_font
PDF 函数
PHP 手册

PDF_begin_document

(PECL pdflib >= 2.0.0)

PDF_begin_document — Create new PDF file

说明

int PDF_begin_document ( resource $pdfdoc , string $filename , string $optlist )

Creates a new PDF file subject to various options.

PDF_attach_file
PDF_begin_font
PDF 函数


Start a Type 3 font definition

PDF_begin_document
PDF_begin_glyph
PDF 函数
PHP 手册

PDF_begin_font

(PECL pdflib >= 2.0.0)

PDF_begin_font — Start a Type 3 font definition

说明

bool PDF_begin_font ( resource $pdfdoc , string $filename , float $a , float $b , float $c , float $d , float $e , float $f , string $optlist )

Starts a Type 3 font definition.

PDF_begin_document
PDF_begin_glyph
PDF 函数


Start glyph definition for Type 3 font

PDF_begin_font
PDF_begin_item
PDF 函数
PHP 手册

PDF_begin_glyph

(PECL pdflib >= 2.0.0)

PDF_begin_glyph — Start glyph definition for Type 3 font

说明

bool PDF_begin_glyph ( resource $pdfdoc , string $glyphname , float $wx , float $llx , float $lly , float $urx , float $ury )

Starts a glyph definition for a Type 3 font.

PDF_begin_font
PDF_begin_item
PDF 函数


Open structure element or other content item

PDF_begin_glyph
PDF_begin_layer
PDF 函数
PHP 手册

PDF_begin_item

(PECL pdflib >= 2.0.0)

PDF_begin_item — Open structure element or other content item

说明

int PDF_begin_item ( resource $pdfdoc , string $tag , string $optlist )

Opens a structure element or other content item with attributes supplied as options.

PDF_begin_glyph
PDF_begin_layer
PDF 函数


Start layer

PDF_begin_item
PDF_begin_page_ext
PDF 函数
PHP 手册

PDF_begin_layer

(PECL pdflib >= 2.0.0)

PDF_begin_layer — Start layer

说明

bool PDF_begin_layer ( resource $pdfdoc , int $layer )

Starts a layer for subsequent output on the page. 如果成功则返回 TRUE，失败则返回 FALSE。

This function requires PDF 1.5.

PDF_begin_item
PDF_begin_page_ext
PDF 函数


Start new page

PDF_begin_layer
PDF_begin_page
PDF 函数
PHP 手册

PDF_begin_page_ext

(PECL pdflib >= 2.0.0)

PDF_begin_page_ext — Start new page

说明

bool PDF_begin_page_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

Adds a new page to the document, and specifies various options. The parameters width and height are the dimensions of the new page in points. 如果成功则返回 TRUE，失败则返回 FALSE。

Common Page Sizes in Points
name | size
A0 | 2380✗3368
A1 | 1684✗2380
A2 | 1190✗1684
A3 | 842✗1190
A4 | 595✗842
A5 | 421✗595
A6 | 297✗421
B5 | 501✗709
letter (8.5"✗11") | 612✗792
legal (8.5"✗14") | 612✗1008
ledger (17"✗11") | 1224✗792
11"✗17" | 792✗1224

PDF_begin_layer
PDF_begin_page
PDF 函数


Start new page [deprecated]

PDF_begin_page_ext
PDF_begin_pattern
PDF 函数
PHP 手册

PDF_begin_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_begin_page — Start new page [deprecated]

说明

bool PDF_begin_page ( resource $pdfdoc , float $width , float $height )

Adds a new page to the document. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use PDF_begin_page_ext() instead.

PDF_begin_page_ext
PDF_begin_pattern
PDF 函数


Start pattern definition

PDF_begin_page
PDF_begin_template_ext
PDF 函数
PHP 手册

PDF_begin_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_pattern — Start pattern definition

说明

int PDF_begin_pattern ( resource $pdfdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

Starts a new pattern definition.

PDF_begin_page
PDF_begin_template_ext
PDF 函数


Start template definition

PDF_begin_pattern
PDF_begin_template
PDF 函数
PHP 手册

PDF_begin_template_ext

(PECL pdflib >= 2.1.0)

PDF_begin_template_ext — Start template definition

说明

int PDF_begin_template_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

Starts a new template definition.

PDF_begin_pattern
PDF_begin_template
PDF 函数


Start template definition [deprecated]

PDF_begin_template_ext
PDF_circle
PDF 函数
PHP 手册

PDF_begin_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_template — Start template definition [deprecated]

说明

int PDF_begin_template ( resource $pdfdoc , float $width , float $height )

Starts a new template definition.

This function is deprecated since PDFlib version 7, use PDF_begin_template_ext() instead.

PDF_begin_template_ext
PDF_circle
PDF 函数


Draw a circle

PDF_begin_template
PDF_clip
PDF 函数
PHP 手册

PDF_circle

(PHP 4, PECL pdflib >= 1.0.0)

PDF_circle — Draw a circle

说明

bool PDF_circle ( resource $pdfdoc , float $x , float $y , float $r )

Adds a circle. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_begin_template
PDF_clip
PDF 函数


Clip to current path

PDF_circle
PDF_close_image
PDF 函数
PHP 手册

PDF_clip

(PHP 4, PECL pdflib >= 1.0.0)

PDF_clip — Clip to current path

说明

bool PDF_clip ( resource $p )

Uses the current path as clipping path, and terminate the path. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_circle
PDF_close_image
PDF 函数


Close image

PDF_clip
PDF_close_pdi_page
PDF 函数
PHP 手册

PDF_close_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close_image — Close image

说明

bool PDF_close_image ( resource $p , int $image )

Closes an image retrieved with the PDF_open_image() function.

PDF_clip
PDF_close_pdi_page
PDF 函数


Close the page handle

PDF_close_image
PDF_close_pdi
PDF 函数
PHP 手册

PDF_close_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi_page — Close the page handle

说明

bool PDF_close_pdi_page ( resource $p , int $page )

Closes the page handle, and frees all page-related resources. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_close_image
PDF_close_pdi
PDF 函数


Close the input PDF document [deprecated]

PDF_close_pdi_page
PDF_close
PDF 函数
PHP 手册

PDF_close_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi — Close the input PDF document [deprecated]

说明

bool PDF_close_pdi ( resource $p , int $doc )

Closes all open page handles, and closes the input PDF document. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 7, use PDF_close_pdi_document() instead.

PDF_close_pdi_page
PDF_close
PDF 函数


Close pdf resource [deprecated]

PDF_close_pdi
PDF_closepath_fill_stroke
PDF 函数
PHP 手册

PDF_close

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close — Close pdf resource [deprecated]

说明

bool PDF_close ( resource $p )

Closes the generated PDF file, and frees all document-related resources. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use PDF_end_document() instead.

PDF_close_pdi
PDF_closepath_fill_stroke
PDF 函数


Close, fill and stroke current path

PDF_close
PDF_closepath_stroke
PDF 函数
PHP 手册

PDF_closepath_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_fill_stroke — Close, fill and stroke current path

说明

bool PDF_closepath_fill_stroke ( resource $p )

Closes the path, fills, and strokes it. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_close
PDF_closepath_stroke
PDF 函数


Close and stroke path

PDF_closepath_fill_stroke
PDF_closepath
PDF 函数
PHP 手册

PDF_closepath_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_stroke — Close and stroke path

说明

bool PDF_closepath_stroke ( resource $p )

Closes the path, and strokes it. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_closepath_fill_stroke
PDF_closepath
PDF 函数


Close current path

PDF_closepath_stroke
PDF_concat
PDF 函数
PHP 手册

PDF_closepath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath — Close current path

说明

bool PDF_closepath ( resource $p )

Closes the current path. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_closepath_stroke
PDF_concat
PDF 函数


Concatenate a matrix to the CTM

PDF_closepath
PDF_continue_text
PDF 函数
PHP 手册

PDF_concat

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_concat — Concatenate a matrix to the CTM

说明

bool PDF_concat ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

Concatenates a matrix to the current transformation matrix (CTM). 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_closepath
PDF_continue_text
PDF 函数


Output text in next line

PDF_concat
PDF_create_3dview
PDF 函数
PHP 手册

PDF_continue_text

(PHP 4, PECL pdflib >= 1.0.0)

PDF_continue_text — Output text in next line

说明

bool PDF_continue_text ( resource $p , string $text )

Prints text at the next line. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_concat
PDF_create_3dview
PDF 函数


Create 3D view

PDF_continue_text
PDF_create_action
PDF 函数
PHP 手册

PDF_create_3dview

(PECL pdflib >= 2.1.0)

PDF_create_3dview — Create 3D view

说明

int PDF_create_3dview ( resource $pdfdoc , string $username , string $optlist )

Creates a 3D view.

This function requires PDF 1.6.

PDF_continue_text
PDF_create_action
PDF 函数


Create action for objects or events

PDF_create_3dview
PDF_create_annotation
PDF 函数
PHP 手册

PDF_create_action

(PECL pdflib >= 2.0.0)

PDF_create_action — Create action for objects or events

说明

int PDF_create_action ( resource $pdfdoc , string $type , string $optlist )

Creates an action which can be applied to various objects and events.

PDF_create_3dview
PDF_create_annotation
PDF 函数


Create rectangular annotation

PDF_create_action
PDF_create_bookmark
PDF 函数
PHP 手册

PDF_create_annotation

(PECL pdflib >= 2.0.0)

PDF_create_annotation — Create rectangular annotation

说明

bool PDF_create_annotation ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $type , string $optlist )

Creates a rectangular annotation on the current page.

PDF_create_action
PDF_create_bookmark
PDF 函数


Create bookmark

PDF_create_annotation
PDF_create_field
PDF 函数
PHP 手册

PDF_create_bookmark

(PECL pdflib >= 2.0.0)

PDF_create_bookmark — Create bookmark

说明

int PDF_create_bookmark ( resource $pdfdoc , string $text , string $optlist )

Creates a bookmark subject to various options.

PDF_create_annotation
PDF_create_field
PDF 函数


Create form field

PDF_create_bookmark
PDF_create_fieldgroup
PDF 函数
PHP 手册

PDF_create_field

(PECL pdflib >= 2.0.0)

PDF_create_field — Create form field

说明

bool PDF_create_field ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $name , string $type , string $optlist )

Creates a form field on the current page subject to various options.

PDF_create_bookmark
PDF_create_fieldgroup
PDF 函数


Create form field group

PDF_create_field
PDF_create_gstate
PDF 函数
PHP 手册

PDF_create_fieldgroup

(PECL pdflib >= 2.0.0)

PDF_create_fieldgroup — Create form field group

说明

bool PDF_create_fieldgroup ( resource $pdfdoc , string $name , string $optlist )

Creates a form field group subject to various options.

PDF_create_field
PDF_create_gstate
PDF 函数


Create graphics state object

PDF_create_fieldgroup
PDF_create_pvf
PDF 函数
PHP 手册

PDF_create_gstate

(PECL pdflib >= 2.0.0)

PDF_create_gstate — Create graphics state object

说明

int PDF_create_gstate ( resource $pdfdoc , string $optlist )

Creates a graphics state object subject to various options.

PDF_create_fieldgroup
PDF_create_pvf
PDF 函数


Create PDFlib virtual file

PDF_create_gstate
PDF_create_textflow
PDF 函数
PHP 手册

PDF_create_pvf

(PECL pdflib >= 2.0.0)

PDF_create_pvf — Create PDFlib virtual file

说明

bool PDF_create_pvf ( resource $pdfdoc , string $filename , string $data , string $optlist )

Creates a named virtual read-only file from data provided in memory.

PDF_create_gstate
PDF_create_textflow
PDF 函数


Create textflow object

PDF_create_pvf
PDF_curveto
PDF 函数
PHP 手册

PDF_create_textflow

(PECL pdflib >= 2.0.0)

PDF_create_textflow — Create textflow object

说明

int PDF_create_textflow ( resource $pdfdoc , string $text , string $optlist )

Preprocesses text for later formatting and creates a textflow object.

PDF_create_pvf
PDF_curveto
PDF 函数


Draw Bezier curve

PDF_create_textflow
PDF_define_layer
PDF 函数
PHP 手册

PDF_curveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_curveto — Draw Bezier curve

说明

bool PDF_curveto ( resource $p , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Draws a Bezier curve from the current point, using 3 more control points. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_create_textflow
PDF_define_layer
PDF 函数


Create layer definition

PDF_curveto
PDF_delete_pvf
PDF 函数
PHP 手册

PDF_define_layer

(PECL pdflib >= 2.0.0)

PDF_define_layer — Create layer definition

说明

int PDF_define_layer ( resource $pdfdoc , string $name , string $optlist )

Creates a new layer definition.

This function requires PDF 1.5.

PDF_curveto
PDF_delete_pvf
PDF 函数


Delete PDFlib virtual file

PDF_define_layer
PDF_delete_table
PDF 函数
PHP 手册

PDF_delete_pvf

(PECL pdflib >= 2.0.0)

PDF_delete_pvf — Delete PDFlib virtual file

说明

int PDF_delete_pvf ( resource $pdfdoc , string $filename )

Deletes a named virtual file and frees its data structures (but not the contents).

PDF_define_layer
PDF_delete_table
PDF 函数


Delete table object

PDF_delete_pvf
PDF_delete_textflow
PDF 函数
PHP 手册

PDF_delete_table

(PECL pdflib >= 2.1.0)

PDF_delete_table — Delete table object

说明

bool PDF_delete_table ( resource $pdfdoc , int $table , string $optlist )

Deletes a table and all associated data structures.

PDF_delete_pvf
PDF_delete_textflow
PDF 函数


Delete textflow object

PDF_delete_table
PDF_delete
PDF 函数
PHP 手册

PDF_delete_textflow

(PECL pdflib >= 2.0.0)

PDF_delete_textflow — Delete textflow object

说明

bool PDF_delete_textflow ( resource $pdfdoc , int $textflow )

Deletes a textflow and the associated data structures.

PDF_delete_table
PDF_delete
PDF 函数


Delete PDFlib object

PDF_delete_textflow
PDF_encoding_set_char
PDF 函数
PHP 手册

PDF_delete

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_delete — Delete PDFlib object

说明

bool PDF_delete ( resource $pdfdoc )

Deletes a PDFlib object, and frees all internal resources. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_delete_textflow
PDF_encoding_set_char
PDF 函数


Add glyph name and/or Unicode value

PDF_delete
PDF_end_document
PDF 函数
PHP 手册

PDF_encoding_set_char

(PECL pdflib >= 2.0.0)

PDF_encoding_set_char — Add glyph name and/or Unicode value

说明

bool PDF_encoding_set_char ( resource $pdfdoc , string $encoding , int $slot , string $glyphname , int $uv )

Adds a glyph name and/or Unicode value to a custom encoding.

PDF_delete
PDF_end_document
PDF 函数


Close PDF file

PDF_encoding_set_char
PDF_end_font
PDF 函数
PHP 手册

PDF_end_document

(PECL pdflib >= 2.0.0)

PDF_end_document — Close PDF file

说明

bool PDF_end_document ( resource $pdfdoc , string $optlist )

Closes the generated PDF file and applies various options.

PDF_encoding_set_char
PDF_end_font
PDF 函数


Terminate Type 3 font definition

PDF_end_document
PDF_end_glyph
PDF 函数
PHP 手册

PDF_end_font

(PECL pdflib >= 2.0.0)

PDF_end_font — Terminate Type 3 font definition

说明

bool PDF_end_font ( resource $pdfdoc )

Terminates a Type 3 font definition.

PDF_end_document
PDF_end_glyph
PDF 函数


Terminate glyph definition for Type 3 font

PDF_end_font
PDF_end_item
PDF 函数
PHP 手册

PDF_end_glyph

(PECL pdflib >= 2.0.0)

PDF_end_glyph — Terminate glyph definition for Type 3 font

说明

bool PDF_end_glyph ( resource $pdfdoc )

Terminates a glyph definition for a Type 3 font.

PDF_end_font
PDF_end_item
PDF 函数


Close structure element or other content item

PDF_end_glyph
PDF_end_layer
PDF 函数
PHP 手册

PDF_end_item

(PECL pdflib >= 2.0.0)

PDF_end_item — Close structure element or other content item

说明

bool PDF_end_item ( resource $pdfdoc , int $id )

Closes a structure element or other content item.

PDF_end_glyph
PDF_end_layer
PDF 函数


Deactivate all active layers

PDF_end_item
PDF_end_page_ext
PDF 函数
PHP 手册

PDF_end_layer

(PECL pdflib >= 2.0.0)

PDF_end_layer — Deactivate all active layers

说明

bool PDF_end_layer ( resource $pdfdoc )

Deactivates all active layers. 如果成功则返回 TRUE，失败则返回 FALSE。

This function requires PDF 1.5.

PDF_end_item
PDF_end_page_ext
PDF 函数


Finish page

PDF_end_layer
PDF_end_page
PDF 函数
PHP 手册

PDF_end_page_ext

(PECL pdflib >= 2.0.0)

PDF_end_page_ext — Finish page

说明

bool PDF_end_page_ext ( resource $pdfdoc , string $optlist )

Finishes a page, and applies various options. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_end_layer
PDF_end_page
PDF 函数


Finish page

PDF_end_page_ext
PDF_end_pattern
PDF 函数
PHP 手册

PDF_end_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_end_page — Finish page

说明

bool PDF_end_page ( resource $p )

Finishes the page. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_end_page_ext
PDF_end_pattern
PDF 函数


Finish pattern

PDF_end_page
PDF_end_template
PDF 函数
PHP 手册

PDF_end_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_pattern — Finish pattern

说明

bool PDF_end_pattern ( resource $p )

Finishes the pattern definition. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_end_page
PDF_end_template
PDF 函数


Finish template

PDF_end_pattern
PDF_endpath
PDF 函数
PHP 手册

PDF_end_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_template — Finish template

说明

bool PDF_end_template ( resource $p )

Finishes a template definition. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_end_pattern
PDF_endpath
PDF 函数


End current path

PDF_end_template
PDF_fill_imageblock
PDF 函数
PHP 手册

PDF_endpath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_endpath — End current path

说明

bool PDF_endpath ( resource $p )

Ends the current path without filling or stroking it.

PDF_end_template
PDF_fill_imageblock
PDF 函数


Fill image block with variable data

PDF_endpath
PDF_fill_pdfblock
PDF 函数
PHP 手册

PDF_fill_imageblock

(PECL pdflib >= 2.0.0)

PDF_fill_imageblock — Fill image block with variable data

说明

int PDF_fill_imageblock ( resource $pdfdoc , int $page , string $blockname , int $image , string $optlist )

Fills an image block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).

PDF_endpath
PDF_fill_pdfblock
PDF 函数


Fill PDF block with variable data

PDF_fill_imageblock
PDF_fill_stroke
PDF 函数
PHP 手册

PDF_fill_pdfblock

(PECL pdflib >= 2.0.0)

PDF_fill_pdfblock — Fill PDF block with variable data

说明

int PDF_fill_pdfblock ( resource $pdfdoc , int $page , string $blockname , int $contents , string $optlist )

Fills a PDF block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).

PDF_fill_imageblock
PDF_fill_stroke
PDF 函数


Fill and stroke path

PDF_fill_pdfblock
PDF_fill_textblock
PDF 函数
PHP 手册

PDF_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill_stroke — Fill and stroke path

说明

bool PDF_fill_stroke ( resource $p )

Fills and strokes the current path with the current fill and stroke color. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_fill_pdfblock
PDF_fill_textblock
PDF 函数


Fill text block with variable data

PDF_fill_stroke
PDF_fill
PDF 函数
PHP 手册

PDF_fill_textblock

(PECL pdflib >= 2.0.0)

PDF_fill_textblock — Fill text block with variable data

说明

int PDF_fill_textblock ( resource $pdfdoc , int $page , string $blockname , string $text , string $optlist )

Fills a text block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).

PDF_fill_stroke
PDF_fill
PDF 函数


Fill current path

PDF_fill_textblock
PDF_findfont
PDF 函数
PHP 手册

PDF_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill — Fill current path

说明

bool PDF_fill ( resource $p )

Fills the interior of the current path with the current fill color. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_fill_textblock
PDF_findfont
PDF 函数


Prepare font for later use [deprecated]

PDF_fill
PDF_fit_image
PDF 函数
PHP 手册

PDF_findfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_findfont — Prepare font for later use [deprecated]

说明

int PDF_findfont ( resource $p , string $fontname , string $encoding , int $embed )

Search for a font and prepare it for later use with PDF_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap. Parameter embed is optional before PHP 4.3.5 or with PDFlib less than 5.

This function is deprecated since PDFlib version 5, use PDF_load_font() instead.

PDF_fill
PDF_fit_image
PDF 函数


Place image or template

PDF_findfont
PDF_fit_pdi_page
PDF 函数
PHP 手册

PDF_fit_image

(PECL pdflib >= 2.0.0)

PDF_fit_image — Place image or template

说明

bool PDF_fit_image ( resource $pdfdoc , int $image , float $x , float $y , string $optlist )

Places an image or template on the page, subject to various options. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_findfont
PDF_fit_pdi_page
PDF 函数


Place imported PDF page

PDF_fit_image
PDF_fit_table
PDF 函数
PHP 手册

PDF_fit_pdi_page

(PECL pdflib >= 2.0.0)

PDF_fit_pdi_page — Place imported PDF page

说明

bool PDF_fit_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , string $optlist )

Places an imported PDF page on the page, subject to various options. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_fit_image
PDF_fit_table
PDF 函数


Place table on page

PDF_fit_pdi_page
PDF_fit_textflow
PDF 函数
PHP 手册

PDF_fit_table

(PECL pdflib >= 2.1.0)

PDF_fit_table — Place table on page

说明

string PDF_fit_table ( resource $pdfdoc , int $table , float $llx , float $lly , float $urx , float $ury , string $optlist )

Places a table on the page fully or partially.

PDF_fit_pdi_page
PDF_fit_textflow
PDF 函数


Format textflow in rectangular area

PDF_fit_table
PDF_fit_textline
PDF 函数
PHP 手册

PDF_fit_textflow

(PECL pdflib >= 2.0.0)

PDF_fit_textflow — Format textflow in rectangular area

说明

string PDF_fit_textflow ( resource $pdfdoc , int $textflow , float $llx , float $lly , float $urx , float $ury , string $optlist )

Formats the next portion of a textflow into a rectangular area.

PDF_fit_table
PDF_fit_textline
PDF 函数


Place single line of text

PDF_fit_textflow
PDF_get_apiname
PDF 函数
PHP 手册

PDF_fit_textline

(PECL pdflib >= 2.0.0)

PDF_fit_textline — Place single line of text

说明

bool PDF_fit_textline ( resource $pdfdoc , string $text , float $x , float $y , string $optlist )

Places a single line of text on the page, subject to various options. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_fit_textflow
PDF_get_apiname
PDF 函数


Get name of unsuccessfull API function

PDF_fit_textline
PDF_get_buffer
PDF 函数
PHP 手册

PDF_get_apiname

(PECL pdflib >= 2.0.0)

PDF_get_apiname — Get name of unsuccessfull API function

说明

string PDF_get_apiname ( resource $pdfdoc )

Gets the name of the API function which threw the last exception or failed.

PDF_fit_textline
PDF_get_buffer
PDF 函数


Get PDF output buffer

PDF_get_apiname
PDF_get_errmsg
PDF 函数
PHP 手册

PDF_get_buffer

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_buffer — Get PDF output buffer

说明

string PDF_get_buffer ( resource $p )

Fetches the buffer containing the generated PDF data.

PDF_get_apiname
PDF_get_errmsg
PDF 函数


Get error text

PDF_get_buffer
PDF_get_errnum
PDF 函数
PHP 手册

PDF_get_errmsg

(PECL pdflib >= 2.0.0)

PDF_get_errmsg — Get error text

说明

string PDF_get_errmsg ( resource $pdfdoc )

Gets the text of the last thrown exception or the reason for a failed function call.

PDF_get_buffer
PDF_get_errnum
PDF 函数


Get error number

PDF_get_errmsg
PDF_get_font
PDF 函数
PHP 手册

PDF_get_errnum

(PECL pdflib >= 2.0.0)

PDF_get_errnum — Get error number

说明

int PDF_get_errnum ( resource $pdfdoc )

Gets the number of the last thrown exception or the reason for a failed function call.

PDF_get_errmsg
PDF_get_font
PDF 函数


Get font [deprecated]

PDF_get_errnum
PDF_get_fontname
PDF 函数
PHP 手册

PDF_get_font

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_font — Get font [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_get_value() with the parameter font instead.

PDF_get_errnum
PDF_get_fontname
PDF 函数


Get font name [deprecated]

PDF_get_font
PDF_get_fontsize
PDF 函数
PHP 手册

PDF_get_fontname

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontname — Get font name [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_get_parameter() with the parameter fontname instead.

PDF_get_font
PDF_get_fontsize
PDF 函数


Font handling [deprecated]

PDF_get_fontname
PDF_get_image_height
PDF 函数
PHP 手册

PDF_get_fontsize

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontsize — Font handling [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_get_value() with the parameter fontsize instead.

PDF_get_fontname
PDF_get_image_height
PDF 函数


Get image height [deprecated]

PDF_get_fontsize
PDF_get_image_width
PDF 函数
PHP 手册

PDF_get_image_height

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_height — Get image height [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_get_value() with the parameter imageheight instead.

PDF_get_fontsize
PDF_get_image_width
PDF 函数


Get image width [deprecated]

PDF_get_image_height
PDF_get_majorversion
PDF 函数
PHP 手册

PDF_get_image_width

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_width — Get image width [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_get_value() with the parameter imagewidth instead.

PDF_get_image_height
PDF_get_majorversion
PDF 函数


Get major version number [deprecated]

PDF_get_image_width
PDF_get_minorversion
PDF 函数
PHP 手册

PDF_get_majorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_majorversion — Get major version number [deprecated]

说明

int PDF_get_majorversion ( void )

This function is deprecated since PDFlib version 5, use PDF_get_value() with the parameter major instead.

PDF_get_image_width
PDF_get_minorversion
PDF 函数


Get minor version number [deprecated]

PDF_get_majorversion
PDF_get_parameter
PDF 函数
PHP 手册

PDF_get_minorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_minorversion — Get minor version number [deprecated]

说明

int PDF_get_minorversion ( void )

Returns the minor version number of the PDFlib version.

This function is deprecated since PDFlib version 5, use PDF_get_value() with the parameter minor instead.

PDF_get_majorversion
PDF_get_parameter
PDF 函数


Get string parameter

PDF_get_minorversion
PDF_get_pdi_parameter
PDF 函数
PHP 手册

PDF_get_parameter

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_parameter — Get string parameter

说明

string PDF_get_parameter ( resource $p , string $key , float $modifier )

Gets the contents of some PDFlib parameter with string type.

PDF_get_minorversion
PDF_get_pdi_parameter
PDF 函数


Get PDI string parameter [deprecated]

PDF_get_parameter
PDF_get_pdi_value
PDF 函数
PHP 手册

PDF_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_parameter — Get PDI string parameter [deprecated]

说明

string PDF_get_pdi_parameter ( resource $p , string $key , int $doc , int $page , int $reserved )

Gets the contents of a PDI document parameter with string type.

This function is deprecated since PDFlib version 7, use PDF_pcos_get_string() instead.

PDF_get_parameter
PDF_get_pdi_value
PDF 函数


Get PDI numerical parameter [deprecated]

PDF_get_pdi_parameter
PDF_get_value
PDF 函数
PHP 手册

PDF_get_pdi_value

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_value — Get PDI numerical parameter [deprecated]

说明

float PDF_get_pdi_value ( resource $p , string $key , int $doc , int $page , int $reserved )

Gets the contents of a PDI document parameter with numerical type.

This function is deprecated since PDFlib version 7, use PDF_pcos_get_number() instead.

PDF_get_pdi_parameter
PDF_get_value
PDF 函数


Get numerical parameter

PDF_get_pdi_value
PDF_info_font
PDF 函数
PHP 手册

PDF_get_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_value — Get numerical parameter

说明

float PDF_get_value ( resource $p , string $key , float $modifier )

Gets the value of some PDFlib parameter with numerical type.

PDF_get_pdi_value
PDF_info_font
PDF 函数


Query detailed information about a loaded font

PDF_get_value
PDF_info_matchbox
PDF 函数
PHP 手册

PDF_info_font

(PECL pdflib >= 2.1.0)

PDF_info_font — Query detailed information about a loaded font

说明

float PDF_info-font ( resource $pdfdoc , int $font , string $keyword , string $optlist )

Queries detailed information about a loaded font.

PDF_get_value
PDF_info_matchbox
PDF 函数


Query matchbox information

PDF_info_font
PDF_info_table
PDF 函数
PHP 手册

PDF_info_matchbox

(PECL pdflib >= 2.1.0)

PDF_info_matchbox — Query matchbox information

说明

float PDF_info_matchbox ( resource $pdfdoc , string $boxname , int $num , string $keyword )

Queries information about a matchbox on the current page.

PDF_info_font
PDF_info_table
PDF 函数


Retrieve table information

PDF_info_matchbox
PDF_info_textflow
PDF 函数
PHP 手册

PDF_info_table

(PECL pdflib >= 2.1.0)

PDF_info_table — Retrieve table information

说明

float PDF_info_table ( resource $pdfdoc , int $table , string $keyword )

Retrieves table information related to the most recently placed table instance.

PDF_info_matchbox
PDF_info_textflow
PDF 函数


Query textflow state

PDF_info_table
PDF_info_textline
PDF 函数
PHP 手册

PDF_info_textflow

(PECL pdflib >= 2.0.0)

PDF_info_textflow — Query textflow state

说明

float PDF_info_textflow ( resource $pdfdoc , int $textflow , string $keyword )

Queries the current state of a textflow.

PDF_info_table
PDF_info_textline
PDF 函数


Perform textline formatting and query metrics

PDF_info_textflow
PDF_initgraphics
PDF 函数
PHP 手册

PDF_info_textline

(PECL pdflib >= 2.1.0)

PDF_info_textline — Perform textline formatting and query metrics

说明

float PDF_info_textline ( resource $pdfdoc , string $text , string $keyword , string $optlist )

Performs textline formatting and queries the resulting metrics.

PDF_info_textflow
PDF_initgraphics
PDF 函数


Reset graphic state

PDF_info_textline
PDF_lineto
PDF 函数
PHP 手册

PDF_initgraphics

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_initgraphics — Reset graphic state

说明

bool PDF_initgraphics ( resource $p )

Reset all color and graphics state parameters to their defaults. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_info_textline
PDF_lineto
PDF 函数


Draw a line

PDF_initgraphics
PDF_load_3ddata
PDF 函数
PHP 手册

PDF_lineto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_lineto — Draw a line

说明

bool PDF_lineto ( resource $p , float $x , float $y )

Draws a line from the current point to another point. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_initgraphics
PDF_load_3ddata
PDF 函数


Load 3D model

PDF_lineto
PDF_load_font
PDF 函数
PHP 手册

PDF_load_3ddata

(PECL pdflib >= 2.1.0)

PDF_load_3ddata — Load 3D model

说明

int PDF_load_3ddata ( resource $pdfdoc , string $filename , string $optlist )

Loads a 3D model from a disk-based or virtual file.

This function requires PDF 1.6.

PDF_lineto
PDF_load_font
PDF 函数


Search and prepare font

PDF_load_3ddata
PDF_load_iccprofile
PDF 函数
PHP 手册

PDF_load_font

(PECL pdflib >= 2.0.0)

PDF_load_font — Search and prepare font

说明

int PDF_load_font ( resource $pdfdoc , string $fontname , string $encoding , string $optlist )

Searches for a font and prepares it for later use.

PDF_load_3ddata
PDF_load_iccprofile
PDF 函数


Search and prepare ICC profile

PDF_load_font
PDF_load_image
PDF 函数
PHP 手册

PDF_load_iccprofile

(PECL pdflib >= 2.0.0)

PDF_load_iccprofile — Search and prepare ICC profile

说明

int PDF_load_iccprofile ( resource $pdfdoc , string $profilename , string $optlist )

Searches for an ICC profile, and prepares it for later use.

PDF_load_font
PDF_load_image
PDF 函数


Open image file

PDF_load_iccprofile
PDF_makespotcolor
PDF 函数
PHP 手册

PDF_load_image

(PECL pdflib >= 2.0.0)

PDF_load_image — Open image file

说明

int PDF_load_image ( resource $pdfdoc , string $imagetype , string $filename , string $optlist )

Opens a disk-based or virtual image file subject to various options.

PDF_load_iccprofile
PDF_makespotcolor
PDF 函数


Make spot color

PDF_load_image
PDF_moveto
PDF 函数
PHP 手册

PDF_makespotcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_makespotcolor — Make spot color

说明

int PDF_makespotcolor ( resource $p , string $spotname )

Finds a built-in spot color name, or makes a named spot color from the current fill color. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_load_image
PDF_moveto
PDF 函数


Set current point

PDF_makespotcolor
PDF_new
PDF 函数
PHP 手册

PDF_moveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_moveto — Set current point

说明

bool PDF_moveto ( resource $p , float $x , float $y )

Sets the current point for graphics output. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_makespotcolor
PDF_new
PDF 函数


Create PDFlib object

PDF_moveto
PDF_open_ccitt
PDF 函数
PHP 手册

PDF_new

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_new — Create PDFlib object

说明

resource PDF_new ( void )

Creates a new PDFlib object with default settings.

PDF_moveto
PDF_open_ccitt
PDF 函数


Open raw CCITT image [deprecated]

PDF_new
PDF_open_file
PDF 函数
PHP 手册

PDF_open_ccitt

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_ccitt — Open raw CCITT image [deprecated]

说明

int PDF_open_ccitt ( resource $pdfdoc , string $filename , int $width , int $height , int $BitReverse , int $k , int $Blackls1 )

Opens a raw CCITT image.

This function is deprecated since PDFlib version 5, use PDF_load_image() instead.

PDF_new
PDF_open_file
PDF 函数


Create PDF file [deprecated]

PDF_open_ccitt
PDF_open_gif
PDF 函数
PHP 手册

PDF_open_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_file — Create PDF file [deprecated]

说明

bool PDF_open_file ( resource $p , string $filename )

Creates a new PDF file using the supplied file name. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use PDF_begin_document() instead.

PDF_open_ccitt
PDF_open_gif
PDF 函数


Open GIF image [deprecated]

PDF_open_file
PDF_open_image_file
PDF 函数
PHP 手册

PDF_open_gif

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_gif — Open GIF image [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_load_image() instead.

PDF_open_file
PDF_open_image_file
PDF 函数


Read image from file [deprecated]

PDF_open_gif
PDF_open_image
PDF 函数
PHP 手册

PDF_open_image_file

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_image_file — Read image from file [deprecated]

说明

int PDF_open_image_file ( resource $p , string $imagetype , string $filename , string $stringparam , int $intparam )

Opens an image file.

This function is deprecated since PDFlib version 5, use PDF_load_image() with the colorize, ignoremask, invert, mask, masked, and page options instead.

PDF_open_gif
PDF_open_image
PDF 函数


Use image data [deprecated]

PDF_open_image_file
PDF_open_jpeg
PDF 函数
PHP 手册

PDF_open_image

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_image — Use image data [deprecated]

说明

int PDF_open_image ( resource $p , string $imagetype , string $source , string $data , int $length , int $width , int $height , int $components , int $bpc , string $params )

Uses image data from a variety of data sources.

This function is deprecated since PDFlib version 5, use virtual files and PDF_load_image() instead.

PDF_open_image_file
PDF_open_jpeg
PDF 函数


Open JPEG image [deprecated]

PDF_open_image
PDF_open_memory_image
PDF 函数
PHP 手册

PDF_open_jpeg

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_jpeg — Open JPEG image [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_load_image() instead.

PDF_open_image
PDF_open_memory_image
PDF 函数


Open image created with PHP's image functions [not supported]

PDF_open_jpeg
PDF_open_pdi_page
PDF 函数
PHP 手册

PDF_open_memory_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_memory_image — Open image created with PHP's image functions [not supported]

说明

int PDF_open_memory_image ( resource $p , resource $image )

This function is not supported by PDFlib GmbH.

PDF_open_jpeg
PDF_open_pdi_page
PDF 函数


Prepare a page

PDF_open_memory_image
PDF_open_pdi
PDF 函数
PHP 手册

PDF_open_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi_page — Prepare a page

说明

int PDF_open_pdi_page ( resource $p , int $doc , int $pagenumber , string $optlist )

Prepares a page for later use with PDF_fit_pdi_page().

PDF_open_memory_image
PDF_open_pdi
PDF 函数


Open PDF file [deprecated]

PDF_open_pdi_page
PDF_open_tiff
PDF 函数
PHP 手册

PDF_open_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi — Open PDF file [deprecated]

说明

int PDF_open_pdi ( resource $pdfdoc , string $filename , string $optlist , int $len )

Opens a disk-based or virtual PDF document and prepares it for later use.

This function is deprecated since PDFlib version 7, use PDF_open_pdi_document() instead.

PDF_open_pdi_page
PDF_open_tiff
PDF 函数


Open TIFF image [deprecated]

PDF_open_pdi
PDF_pcos_get_number
PDF 函数
PHP 手册

PDF_open_tiff

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_tiff — Open TIFF image [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_load_image() instead.

PDF_open_pdi
PDF_pcos_get_number
PDF 函数


Get value of pCOS path with type number or boolean

PDF_open_tiff
PDF_pcos_get_stream
PDF 函数
PHP 手册

PDF_pcos_get_number

(PECL pdflib >= 2.1.0)

PDF_pcos_get_number — Get value of pCOS path with type number or boolean

说明

float PDF_pcos_get_number ( resource $p , int $doc , string $path )

Gets the value of a pCOS path with type number or boolean.

PDF_open_tiff
PDF_pcos_get_stream
PDF 函数


Get contents of pCOS path with type stream, fstream, or string

PDF_pcos_get_number
PDF_pcos_get_string
PDF 函数
PHP 手册

PDF_pcos_get_stream

(PECL pdflib >= 2.1.0)

PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string

说明

string PDF_pcos_get_stream ( resource $p , int $doc , string $optlist , string $path )

Gets the contents of a pCOS path with type stream, fstream, or string.

PDF_pcos_get_number
PDF_pcos_get_string
PDF 函数


Get value of pCOS path with type name, string, or boolean

PDF_pcos_get_stream
PDF_place_image
PDF 函数
PHP 手册

PDF_pcos_get_string

(PECL pdflib >= 2.1.0)

PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean

说明

string PDF_pcos_get_string ( resource $p , int $doc , string $path )

Gets the value of a pCOS path with type name, string, or boolean.

PDF_pcos_get_stream
PDF_place_image
PDF 函数


Place image on the page [deprecated]

PDF_pcos_get_string
PDF_place_pdi_page
PDF 函数
PHP 手册

PDF_place_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_place_image — Place image on the page [deprecated]

说明

bool PDF_place_image ( resource $pdfdoc , int $image , float $x , float $y , float $scale )

Places an image and scales it. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 5, use PDF_fit_image() instead.

PDF_pcos_get_string
PDF_place_pdi_page
PDF 函数


Place PDF page [deprecated]

PDF_place_image
PDF_process_pdi
PDF 函数
PHP 手册

PDF_place_pdi_page

(PHP 4 >= 4.0.6, PECL pdflib >= 1.0.0)

PDF_place_pdi_page — Place PDF page [deprecated]

说明

bool PDF_place_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , float $sx , float $sy )

Places a PDF page and scales it. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 5, use PDF_fit_pdi_page() instead.

PDF_place_image
PDF_process_pdi
PDF 函数


Process imported PDF document

PDF_place_pdi_page
PDF_rect
PDF 函数
PHP 手册

PDF_process_pdi

(PECL pdflib >= 2.0.0)

PDF_process_pdi — Process imported PDF document

说明

int PDF_process_pdi ( resource $pdfdoc , int $doc , int $page , string $optlist )

Processes certain elements of an imported PDF document.

PDF_place_pdi_page
PDF_rect
PDF 函数


Draw rectangle

PDF_process_pdi
PDF_restore
PDF 函数
PHP 手册

PDF_rect

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rect — Draw rectangle

说明

bool PDF_rect ( resource $p , float $x , float $y , float $width , float $height )

Draws a rectangle. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_process_pdi
PDF_restore
PDF 函数


Restore graphics state

PDF_rect
PDF_resume_page
PDF 函数
PHP 手册

PDF_restore

(PHP 4, PECL pdflib >= 1.0.0)

PDF_restore — Restore graphics state

说明

bool PDF_restore ( resource $p )

Restores the most recently saved graphics state. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_rect
PDF_resume_page
PDF 函数


Resume page

PDF_restore
PDF_rotate
PDF 函数
PHP 手册

PDF_resume_page

(PECL pdflib >= 2.0.0)

PDF_resume_page — Resume page

说明

bool PDF_resume_page ( resource $pdfdoc , string $optlist )

Resumes a page to add more content to it.

PDF_restore
PDF_rotate
PDF 函数


Rotate coordinate system

PDF_resume_page
PDF_save
PDF 函数
PHP 手册

PDF_rotate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rotate — Rotate coordinate system

说明

bool PDF_rotate ( resource $p , float $phi )

Rotates the coordinate system. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_resume_page
PDF_save
PDF 函数


Save graphics state

PDF_rotate
PDF_scale
PDF 函数
PHP 手册

PDF_save

(PHP 4, PECL pdflib >= 1.0.0)

PDF_save — Save graphics state

说明

bool PDF_save ( resource $p )

Saves the current graphics state. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_rotate
PDF_scale
PDF 函数


Scale coordinate system

PDF_save
PDF_set_border_color
PDF 函数
PHP 手册

PDF_scale

(PHP 4, PECL pdflib >= 1.0.0)

PDF_scale — Scale coordinate system

说明

bool PDF_scale ( resource $p , float $sx , float $sy )

Scales the coordinate system. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_save
PDF_set_border_color
PDF 函数


Set border color of annotations [deprecated]

PDF_scale
PDF_set_border_dash
PDF 函数
PHP 手册

PDF_set_border_color

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_color — Set border color of annotations [deprecated]

说明

bool PDF_set_border_color ( resource $p , float $red , float $green , float $blue )

Sets the border color for all kinds of annotations. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use the option annotcolor in PDF_create_annotation() instead.

PDF_scale
PDF_set_border_dash
PDF 函数


Set border dash style of annotations [deprecated]

PDF_set_border_color
PDF_set_border_style
PDF 函数
PHP 手册

PDF_set_border_dash

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_border_dash — Set border dash style of annotations [deprecated]

说明

bool PDF_set_border_dash ( resource $pdfdoc , float $black , float $white )

Sets the border dash style for all kinds of annotations. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use the option dasharray in PDF_create_annotation() instead.

PDF_set_border_color
PDF_set_border_style
PDF 函数


Set border style of annotations [deprecated]

PDF_set_border_dash
PDF_set_char_spacing
PDF 函数
PHP 手册

PDF_set_border_style

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_style — Set border style of annotations [deprecated]

说明

bool PDF_set_border_style ( resource $pdfdoc , string $style , float $width )

Sets the border style for all kinds of annotations. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 6, use the options borderstyle and linewidth in PDF_create_annotation() instead.

PDF_set_border_dash
PDF_set_char_spacing
PDF 函数


Set character spacing [deprecated]

PDF_set_border_style
PDF_set_duration
PDF 函数
PHP 手册

PDF_set_char_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_char_spacing — Set character spacing [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_value() with parameter charspacing instead.

PDF_set_border_style
PDF_set_duration
PDF 函数


Set duration between pages [deprecated]

PDF_set_char_spacing
PDF_set_gstate
PDF 函数
PHP 手册

PDF_set_duration

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_duration — Set duration between pages [deprecated]

说明

This function is deprecated since PDFlib version 3, use the duration option in PDF_begin_page_ext() or PDF_end_page_ext() instead.

PDF_set_char_spacing
PDF_set_gstate
PDF 函数


Activate graphics state object

PDF_set_duration
PDF_set_horiz_scaling
PDF 函数
PHP 手册

PDF_set_gstate

(PECL pdflib >= 2.0.0)

PDF_set_gstate — Activate graphics state object

说明

bool PDF_set_gstate ( resource $pdfdoc , int $gstate )

Activates a graphics state object.

PDF_set_duration
PDF_set_horiz_scaling
PDF 函数


Set horizontal text scaling [deprecated]

PDF_set_gstate
PDF_set_info_author
PDF 函数
PHP 手册

PDF_set_horiz_scaling

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_value() with parameter horizscaling instead.

PDF_set_gstate
PDF_set_info_author
PDF 函数


Fill the author document info field [deprecated]

PDF_set_horiz_scaling
PDF_set_info_creator
PDF 函数
PHP 手册

PDF_set_info_author

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_author — Fill the author document info field [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.

PDF_set_horiz_scaling
PDF_set_info_creator
PDF 函数


Fill the creator document info field [deprecated]

PDF_set_info_author
PDF_set_info_keywords
PDF 函数
PHP 手册

PDF_set_info_creator

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_creator — Fill the creator document info field [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.

PDF_set_info_author
PDF_set_info_keywords
PDF 函数


Fill the keywords document info field [deprecated]

PDF_set_info_creator
PDF_set_info_subject
PDF 函数
PHP 手册

PDF_set_info_keywords

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_keywords — Fill the keywords document info field [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.

PDF_set_info_creator
PDF_set_info_subject
PDF 函数


Fill the subject document info field [deprecated]

PDF_set_info_keywords
PDF_set_info_title
PDF 函数
PHP 手册

PDF_set_info_subject

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_subject — Fill the subject document info field [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.

PDF_set_info_keywords
PDF_set_info_title
PDF 函数


Fill the title document info field [deprecated]

PDF_set_info_subject
PDF_set_info
PDF 函数
PHP 手册

PDF_set_info_title

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_title — Fill the title document info field [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.

PDF_set_info_subject
PDF_set_info
PDF 函数


Fill document info field

PDF_set_info_title
PDF_set_layer_dependency
PDF 函数
PHP 手册

PDF_set_info

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_info — Fill document info field

说明

bool PDF_set_info ( resource $p , string $key , string $value )

Fill document information field key with value . 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_set_info_title
PDF_set_layer_dependency
PDF 函数


Define relationships among layers

PDF_set_info
PDF_set_leading
PDF 函数
PHP 手册

PDF_set_layer_dependency

(PECL pdflib >= 2.0.0)

PDF_set_layer_dependency — Define relationships among layers

说明

bool PDF_set_layer_dependency ( resource $pdfdoc , string $type , string $optlist )

Defines hierarchical and group relationships among layers. 如果成功则返回 TRUE，失败则返回 FALSE。

This function requires PDF 1.5.

PDF_set_info
PDF_set_leading
PDF 函数


Set distance between text lines [deprecated]

PDF_set_layer_dependency
PDF_set_parameter
PDF 函数
PHP 手册

PDF_set_leading

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_leading — Set distance between text lines [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_value() with the parameter leading instead.

PDF_set_layer_dependency
PDF_set_parameter
PDF 函数


Set string parameter

PDF_set_leading
PDF_set_text_matrix
PDF 函数
PHP 手册

PDF_set_parameter

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_parameter — Set string parameter

说明

bool PDF_set_parameter ( resource $p , string $key , string $value )

Sets some PDFlib parameter with string type. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_set_leading
PDF_set_text_matrix
PDF 函数


Set text matrix [deprecated]

PDF_set_parameter
PDF_set_text_pos
PDF 函数
PHP 手册

PDF_set_text_matrix

(PHP 4 <= 4.0.4)

PDF_set_text_matrix — Set text matrix [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_scale(), PDF_translate(), PDF_rotate(), or PDF_skew() instead.

PDF_set_parameter
PDF_set_text_pos
PDF 函数


Set text position

PDF_set_text_matrix
PDF_set_text_rendering
PDF 函数
PHP 手册

PDF_set_text_pos

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_pos — Set text position

说明

bool PDF_set_text_pos ( resource $p , float $x , float $y )

Sets the position for text output on the page. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_set_text_matrix
PDF_set_text_rendering
PDF 函数


Determine text rendering [deprecated]

PDF_set_text_pos
PDF_set_text_rise
PDF 函数
PHP 手册

PDF_set_text_rendering

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rendering — Determine text rendering [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_value() with the textrendering parameter instead.

PDF_set_text_pos
PDF_set_text_rise
PDF 函数


Set text rise [deprecated]

PDF_set_text_rendering
PDF_set_value
PDF 函数
PHP 手册

PDF_set_text_rise

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rise — Set text rise [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_value() with the textrise parameter instead.

PDF_set_text_rendering
PDF_set_value
PDF 函数


Set numerical parameter

PDF_set_text_rise
PDF_set_word_spacing
PDF 函数
PHP 手册

PDF_set_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_value — Set numerical parameter

说明

bool PDF_set_value ( resource $p , string $key , float $value )

Sets the value of some PDFlib parameter with numerical type. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_set_text_rise
PDF_set_word_spacing
PDF 函数


Set spacing between words [deprecated]

PDF_set_value
PDF_setcolor
PDF 函数
PHP 手册

PDF_set_word_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_word_spacing — Set spacing between words [deprecated]

说明

This function is deprecated since PDFlib version 3, use PDF_set_value() with the wordspacing parameter instead.

PDF_set_value
PDF_setcolor
PDF 函数


Set fill and stroke color

PDF_set_word_spacing
PDF_setdash
PDF 函数
PHP 手册

PDF_setcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setcolor — Set fill and stroke color

说明

bool PDF_setcolor ( resource $p , string $fstype , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

Sets the current color space and color. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_set_word_spacing
PDF_setdash
PDF 函数


Set simple dash pattern

PDF_setcolor
PDF_setdashpattern
PDF 函数
PHP 手册

PDF_setdash

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setdash — Set simple dash pattern

说明

bool PDF_setdash ( resource $pdfdoc , float $b , float $w )

Sets the current dash pattern to b black and w white units. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setcolor
PDF_setdashpattern
PDF 函数


Set dash pattern

PDF_setdash
PDF_setflat
PDF 函数
PHP 手册

PDF_setdashpattern

(PECL pdflib >= 2.0.0)

PDF_setdashpattern — Set dash pattern

说明

bool PDF_setdashpattern ( resource $pdfdoc , string $optlist )

Sets a dash pattern defined by an option list. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setdash
PDF_setflat
PDF 函数


Set flatness

PDF_setdashpattern
PDF_setfont
PDF 函数
PHP 手册

PDF_setflat

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setflat — Set flatness

说明

bool PDF_setflat ( resource $pdfdoc , float $flatness )

Sets the flatness parameter. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setdashpattern
PDF_setfont
PDF 函数


Set font

PDF_setflat
PDF_setgray_fill
PDF 函数
PHP 手册

PDF_setfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setfont — Set font

说明

bool PDF_setfont ( resource $pdfdoc , int $font , float $fontsize )

Sets the current font in the specified size , using a font handle returned by PDF_load_font(). 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setflat
PDF_setgray_fill
PDF 函数


Set fill color to gray [deprecated]

PDF_setfont
PDF_setgray_stroke
PDF 函数
PHP 手册

PDF_setgray_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_fill — Set fill color to gray [deprecated]

说明

bool PDF_setgray_fill ( resource $p , float $g )

Sets the current fill color to a gray value between 0 and 1 inclusive. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.

PDF_setfont
PDF_setgray_stroke
PDF 函数


Set stroke color to gray [deprecated]

PDF_setgray_fill
PDF_setgray
PDF 函数
PHP 手册

PDF_setgray_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_stroke — Set stroke color to gray [deprecated]

说明

bool PDF_setgray_stroke ( resource $p , float $g )

Sets the current stroke color to a gray value between 0 and 1 inclusive. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.

PDF_setgray_fill
PDF_setgray
PDF 函数


Set color to gray [deprecated]

PDF_setgray_stroke
PDF_setlinecap
PDF 函数
PHP 手册

PDF_setgray

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray — Set color to gray [deprecated]

说明

bool PDF_setgray ( resource $p , float $g )

Sets the current fill and stroke color to a gray value between 0 and 1 inclusive. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.

PDF_setgray_stroke
PDF_setlinecap
PDF 函数


Set linecap parameter

PDF_setgray
PDF_setlinejoin
PDF 函数
PHP 手册

PDF_setlinecap

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinecap — Set linecap parameter

说明

bool PDF_setlinecap ( resource $p , int $linecap )

Sets the linecap parameter to control the shape at the end of a path with respect to stroking.

PDF_setgray
PDF_setlinejoin
PDF 函数


Set linejoin parameter

PDF_setlinecap
PDF_setlinewidth
PDF 函数
PHP 手册

PDF_setlinejoin

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinejoin — Set linejoin parameter

说明

bool PDF_setlinejoin ( resource $p , int $value )

Sets the linejoin parameter to specify the shape at the corners of paths that are stroked. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setlinecap
PDF_setlinewidth
PDF 函数


Set line width

PDF_setlinejoin
PDF_setmatrix
PDF 函数
PHP 手册

PDF_setlinewidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinewidth — Set line width

说明

bool PDF_setlinewidth ( resource $p , float $width )

Sets the current line width. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setlinejoin
PDF_setmatrix
PDF 函数


Set current transformation matrix

PDF_setlinewidth
PDF_setmiterlimit
PDF 函数
PHP 手册

PDF_setmatrix

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setmatrix — Set current transformation matrix

说明

bool PDF_setmatrix ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

Explicitly sets the current transformation matrix. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setlinewidth
PDF_setmiterlimit
PDF 函数


Set miter limit

PDF_setmatrix
PDF_setpolydash
PDF 函数
PHP 手册

PDF_setmiterlimit

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setmiterlimit — Set miter limit

说明

bool PDF_setmiterlimit ( resource $pdfdoc , float $miter )

Sets the miter limit.如果成功则返回 TRUE，失败则返回 FALSE。

PDF_setmatrix
PDF_setpolydash
PDF 函数


Set complicated dash pattern [deprecated]

PDF_setmiterlimit
PDF_setrgbcolor_fill
PDF 函数
PHP 手册

PDF_setpolydash

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setpolydash — Set complicated dash pattern [deprecated]

说明

This function is deprecated since PDFlib version 5, use PDF_setdashpattern() instead.

PDF_setmiterlimit
PDF_setrgbcolor_fill
PDF 函数


Set fill rgb color values [deprecated]

PDF_setpolydash
PDF_setrgbcolor_stroke
PDF 函数
PHP 手册

PDF_setrgbcolor_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]

说明

bool PDF_setrgbcolor_fill ( resource $p , float $red , float $green , float $blue )

Sets the current fill color to the supplied RGB values. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.

PDF_setpolydash
PDF_setrgbcolor_stroke
PDF 函数


Set stroke rgb color values [deprecated]

PDF_setrgbcolor_fill
PDF_setrgbcolor
PDF 函数
PHP 手册

PDF_setrgbcolor_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]

说明

bool PDF_setrgbcolor_stroke ( resource $p , float $red , float $green , float $blue )

Sets the current stroke color to the supplied RGB values. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.

PDF_setrgbcolor_fill
PDF_setrgbcolor
PDF 函数


Set fill and stroke rgb color values [deprecated]

PDF_setrgbcolor_stroke
PDF_shading_pattern
PDF 函数
PHP 手册

PDF_setrgbcolor

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]

说明

bool PDF_setrgbcolor ( resource $p , float $red , float $green , float $blue )

Sets the current fill and stroke color to the supplied RGB values. 如果成功则返回 TRUE，失败则返回 FALSE。

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.

PDF_setrgbcolor_stroke
PDF_shading_pattern
PDF 函数


Define shading pattern

PDF_setrgbcolor
PDF_shading
PDF 函数
PHP 手册

PDF_shading_pattern

(PECL pdflib >= 2.0.0)

PDF_shading_pattern — Define shading pattern

说明

int PDF_shading_pattern ( resource $pdfdoc , int $shading , string $optlist )

Defines a shading pattern using a shading object.

This function requires PDF 1.4 or above.

PDF_setrgbcolor
PDF_shading
PDF 函数


Define blend

PDF_shading_pattern
PDF_shfill
PDF 函数
PHP 手册

PDF_shading

(PECL pdflib >= 2.0.0)

PDF_shading — Define blend

说明

int PDF_shading ( resource $pdfdoc , string $shtype , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Defines a blend from the current fill color to another color.

This function requires PDF 1.4 or above.

PDF_shading_pattern
PDF_shfill
PDF 函数


Fill area with shading

PDF_shading
PDF_show_boxed
PDF 函数
PHP 手册

PDF_shfill

(PECL pdflib >= 2.0.0)

PDF_shfill — Fill area with shading

说明

bool PDF_shfill ( resource $pdfdoc , int $shading )

Fills an area with a shading, based on a shading object.

This function requires PDF 1.4 or above.

PDF_shading
PDF_show_boxed
PDF 函数


Output text in a box [deprecated]

PDF_shfill
PDF_show_xy
PDF 函数
PHP 手册

PDF_show_boxed

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_boxed — Output text in a box [deprecated]

说明

int PDF_show_boxed ( resource $p , string $text , float $left , float $top , float $width , float $height , string $mode , string $feature )

This function is deprecated since PDFlib version 6, use PDF_fit_textline() for single lines, or the PDF_*_textflow() functions for multi-line formatting instead.

PDF_shfill
PDF_show_xy
PDF 函数


Output text at given position

PDF_show_boxed
PDF_show
PDF 函数
PHP 手册

PDF_show_xy

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_xy — Output text at given position

说明

bool PDF_show_xy ( resource $p , string $text , float $x , float $y )

Prints text in the current font. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_show_boxed
PDF_show
PDF 函数


Output text at current position

PDF_show_xy
PDF_skew
PDF 函数
PHP 手册

PDF_show

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show — Output text at current position

说明

bool PDF_show ( resource $pdfdoc , string $text )

Prints text in the current font and size at the current position. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_show_xy
PDF_skew
PDF 函数


Skew the coordinate system

PDF_show
PDF_stringwidth
PDF 函数
PHP 手册

PDF_skew

(PHP 4, PECL pdflib >= 1.0.0)

PDF_skew — Skew the coordinate system

说明

bool PDF_skew ( resource $p , float $alpha , float $beta )

Skews the coordinate system in x and y direction by alpha and beta degrees. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_show
PDF_stringwidth
PDF 函数


Return width of text

PDF_skew
PDF_stroke
PDF 函数
PHP 手册

PDF_stringwidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stringwidth — Return width of text

说明

float PDF_stringwidth ( resource $p , string $text , int $font , float $fontsize )

Returns the width of text in an arbitrary font.

PDF_skew
PDF_stroke
PDF 函数


Stroke path

PDF_stringwidth
PDF_suspend_page
PDF 函数
PHP 手册

PDF_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stroke — Stroke path

说明

bool PDF_stroke ( resource $p )

Strokes the path with the current color and line width, and clear it. 如果成功则返回 TRUE，失败则返回 FALSE。

PDF_stringwidth
PDF_suspend_page
PDF 函数


Suspend page

PDF_stroke
PDF_translate
PDF 函数
PHP 手册

PDF_suspend_page

(PECL pdflib >= 2.0.0)

PDF_suspend_page — Suspend page

说明

bool PDF_suspend_page ( resource $pdfdoc , string $optlist )

Suspends the current page so that it can later be resumed with PDF_resume_page().

PDF_stroke
PDF_translate
PDF 函数


Set origin of coordinate system

PDF_suspend_page
PDF_utf16_to_utf8
PDF 函数
PHP 手册

PDF_translate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_translate — Set origin of coordinate system

说明

bool PDF_translate ( resource $p , float $tx , float $ty )

Translates the origin of the coordinate system.

PDF_suspend_page
PDF_utf16_to_utf8
PDF 函数


Convert string from UTF-16 to UTF-8

PDF_translate
PDF_utf32_to_utf16
PDF 函数
PHP 手册

PDF_utf16_to_utf8

(PECL pdflib >= 2.0.3)

PDF_utf16_to_utf8 — Convert string from UTF-16 to UTF-8

说明

string PDF_utf16_to_utf8 ( resource $pdfdoc , string $utf16string )

Converts a string from UTF-16 format to UTF-8.

PDF_translate
PDF_utf32_to_utf16
PDF 函数


Convert string from UTF-32 to UTF-16

PDF_utf16_to_utf8
PDF_utf8_to_utf16
PDF 函数
PHP 手册

PDF_utf32_to_utf16

(No version information available, might be only in CVS)

PDF_utf32_to_utf16 — Convert string from UTF-32 to UTF-16

说明

string PDF_utf32_to_utf16 ( resource $pdfdoc , string $utf32string , string $ordering )

Converts a string from UTF-32 format to UTF-16.

PDF_utf16_to_utf8
PDF_utf8_to_utf16
PDF 函数


Convert string from UTF-8 to UTF-16

PDF_utf32_to_utf16
PS
PDF 函数
PHP 手册

PDF_utf8_to_utf16

(PECL pdflib >= 2.0.3)

PDF_utf8_to_utf16 — Convert string from UTF-8 to UTF-16

说明

string PDF_utf8_to_utf16 ( resource $pdfdoc , string $utf8string , string $ordering )

Converts a string from UTF-8 format to UTF-16.

PDF_utf32_to_utf16
PS
PDF 函数


PostScript document creation

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • PS 函数
    • ps_add_bookmark — Add bookmark to current page
    • ps_add_launchlink — Adds link which launches file
    • ps_add_locallink — Adds link to a page in the same document
    • ps_add_note — Adds note to current page
    • ps_add_pdflink — Adds link to a page in a second pdf document
    • ps_add_weblink — Adds link to a web location
    • ps_arc — Draws an arc counterclockwise
    • ps_arcn — Draws an arc clockwise
    • ps_begin_page — Start a new page
    • ps_begin_pattern — Start a new pattern
    • ps_begin_template — Start a new template
    • ps_circle — Draws a circle
    • ps_clip — Clips drawing to current path
    • ps_close_image — Closes image and frees memory
    • ps_close — Closes a PostScript document
    • ps_closepath_stroke — Closes and strokes path
    • ps_closepath — Closes path
    • ps_continue_text — Continue text in next line
    • ps_curveto — Draws a curve
    • ps_delete — Deletes all resources of a PostScript document
    • ps_end_page — End a page
    • ps_end_pattern — End a pattern
    • ps_end_template — End a template
    • ps_fill_stroke — Fills and strokes the current path
    • ps_fill — Fills the current path
    • ps_findfont — Loads a font
    • ps_get_buffer — Fetches the full buffer containig the generated PS data
    • ps_get_parameter — Gets certain parameters
    • ps_get_value — Gets certain values
    • ps_hyphenate — Hyphenates a word
    • ps_include_file — Reads an external file with raw PostScript code
    • ps_lineto — Draws a line
    • ps_makespotcolor — Create spot color
    • ps_moveto — Sets current point
    • ps_new — Creates a new PostScript document object
    • ps_open_file — Opens a file for output
    • ps_open_image_file — Opens image from file
    • ps_open_image — Reads an image for later placement
    • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
    • ps_place_image — Places image on the page
    • ps_rect — Draws a rectangle
    • ps_restore — Restore previously save context
    • ps_rotate — Sets rotation factor
    • ps_save — Save current context
    • ps_scale — Sets scaling factor
    • ps_set_border_color — Sets color of border for annotations
    • ps_set_border_dash — Sets length of dashes for border of annotations
    • ps_set_border_style — Sets border style of annotations
    • ps_set_info — Sets information fields of document
    • ps_set_parameter — Sets certain parameters
    • ps_set_text_pos — Sets position for text output
    • ps_set_value — Sets certain values
    • ps_setcolor — Sets current color
    • ps_setdash — Sets appearance of a dashed line
    • ps_setflat — Sets flatness
    • ps_setfont — Sets font to use for following output
    • ps_setgray — Sets gray value
    • ps_setlinecap — Sets appearance of line ends
    • ps_setlinejoin — Sets how contected lines are joined
    • ps_setlinewidth — Sets width of a line
    • ps_setmiterlimit — Sets the miter limit
    • ps_setoverprintmode — Sets overprint mode
    • ps_setpolydash — Sets appearance of a dashed line
    • ps_shading_pattern — Creates a pattern based on a shading
    • ps_shading — Creates a shading for later use
    • ps_shfill — Fills an area with a shading
    • ps_show_boxed — Output text in a box
    • ps_show_xy2 — Output text at position
    • ps_show_xy — Output text at given position
    • ps_show2 — Output a text at current position
    • ps_show — Output text
    • ps_string_geometry — Gets geometry of a string
    • ps_stringwidth — Gets width of a string
    • ps_stroke — Draws the current path
    • ps_symbol_name — Gets name of a glyph
    • ps_symbol_width — Gets width of a glyph
    • ps_symbol — Output a glyph
    • ps_translate — Sets translation
PDF_utf8_to_utf16
简介
非文本内容的MIME输出


简介

This module allows to create PostScript documents. It has many similarities with the pdf extension. Actually the API is almost identical and one can in many cases just replace the prefix of each function from pdf_ to ps_. This also works for functions which has no meaning in the PostScript document (like adding hyperlinks) but will have an effect if the document is converted to PDF.

Documents created by this extension are sometimes even superior to documents created with the pdf extension, because pslib's text rendering functions can handle kerning, hyphenation and ligatures which results in much better output of boxed text.

PS
安装/配置
PS


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PS


需求

You need at least PHP 4.3.0 and pslib >= 0.1.12. The ps library (pslib) is available at » http://pslib.sourceforge.net/.

安装/配置
安装
安装/配置


安装

A short installation note: just type

$ pecl install ps
in your console.

需求
运行时配置
安装/配置


资源类型

This extension defines a PostScript document resource returned by ps_new().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following two tables lists all constants defined by the ps extension.

Contants for line caps
Name | Meaning
ps_LINECAP_BUTT |
ps_LINECAP_ROUND |
ps_LINECAP_SQUARED |

Contants for line joins
Name | Meaning
ps_LINEJOIN_MITER |
ps_LINEJOIN_ROUND |
ps_LINEJOIN_BEVEL |

资源类型
PS 函数
PS


PS 函数

Contact Information

If you have comments, bugfixes, enhancements for either this extension or pslib then please drop me a mail » steinm@php.net. Any help is very welcome.

Table of Contents

  • ps_add_bookmark — Add bookmark to current page
  • ps_add_launchlink — Adds link which launches file
  • ps_add_locallink — Adds link to a page in the same document
  • ps_add_note — Adds note to current page
  • ps_add_pdflink — Adds link to a page in a second pdf document
  • ps_add_weblink — Adds link to a web location
  • ps_arc — Draws an arc counterclockwise
  • ps_arcn — Draws an arc clockwise
  • ps_begin_page — Start a new page
  • ps_begin_pattern — Start a new pattern
  • ps_begin_template — Start a new template
  • ps_circle — Draws a circle
  • ps_clip — Clips drawing to current path
  • ps_close_image — Closes image and frees memory
  • ps_close — Closes a PostScript document
  • ps_closepath_stroke — Closes and strokes path
  • ps_closepath — Closes path
  • ps_continue_text — Continue text in next line
  • ps_curveto — Draws a curve
  • ps_delete — Deletes all resources of a PostScript document
  • ps_end_page — End a page
  • ps_end_pattern — End a pattern
  • ps_end_template — End a template
  • ps_fill_stroke — Fills and strokes the current path
  • ps_fill — Fills the current path
  • ps_findfont — Loads a font
  • ps_get_buffer — Fetches the full buffer containig the generated PS data
  • ps_get_parameter — Gets certain parameters
  • ps_get_value — Gets certain values
  • ps_hyphenate — Hyphenates a word
  • ps_include_file — Reads an external file with raw PostScript code
  • ps_lineto — Draws a line
  • ps_makespotcolor — Create spot color
  • ps_moveto — Sets current point
  • ps_new — Creates a new PostScript document object
  • ps_open_file — Opens a file for output
  • ps_open_image_file — Opens image from file
  • ps_open_image — Reads an image for later placement
  • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
  • ps_place_image — Places image on the page
  • ps_rect — Draws a rectangle
  • ps_restore — Restore previously save context
  • ps_rotate — Sets rotation factor
  • ps_save — Save current context
  • ps_scale — Sets scaling factor
  • ps_set_border_color — Sets color of border for annotations
  • ps_set_border_dash — Sets length of dashes for border of annotations
  • ps_set_border_style — Sets border style of annotations
  • ps_set_info — Sets information fields of document
  • ps_set_parameter — Sets certain parameters
  • ps_set_text_pos — Sets position for text output
  • ps_set_value — Sets certain values
  • ps_setcolor — Sets current color
  • ps_setdash — Sets appearance of a dashed line
  • ps_setflat — Sets flatness
  • ps_setfont — Sets font to use for following output
  • ps_setgray — Sets gray value
  • ps_setlinecap — Sets appearance of line ends
  • ps_setlinejoin — Sets how contected lines are joined
  • ps_setlinewidth — Sets width of a line
  • ps_setmiterlimit — Sets the miter limit
  • ps_setoverprintmode — Sets overprint mode
  • ps_setpolydash — Sets appearance of a dashed line
  • ps_shading_pattern — Creates a pattern based on a shading
  • ps_shading — Creates a shading for later use
  • ps_shfill — Fills an area with a shading
  • ps_show_boxed — Output text in a box
  • ps_show_xy2 — Output text at position
  • ps_show_xy — Output text at given position
  • ps_show2 — Output a text at current position
  • ps_show — Output text
  • ps_string_geometry — Gets geometry of a string
  • ps_stringwidth — Gets width of a string
  • ps_stroke — Draws the current path
  • ps_symbol_name — Gets name of a glyph
  • ps_symbol_width — Gets width of a glyph
  • ps_symbol — Output a glyph
  • ps_translate — Sets translation
预定义常量
ps_add_bookmark
PS


Add bookmark to current page

PS 函数
ps_add_launchlink
PS 函数
PHP 手册

ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmark — Add bookmark to current page

说明

int ps_add_bookmark ( resource $psdoc , string $text [, int $parent=0 [, int $open=0 ]] )

Adds a bookmark for the current page. Bookmarks usually appear in PDF-Viewers left of the page in a hierarchical tree. Clicking on a bookmark will jump to the given page.

The bookmark has no meaning if the document is printed or viewed, but it will be used if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text used for displaying the bookmark.

parent

A bookmark previously created by this function which is used as the parent of the new bookmark.

open

If open is unequal to zero the bookmark will be shown open by the pdf viewer.

返回值

The returned value is a reference for the bookmark. It is only used if the bookmark shall be used as a parent. The value is greater zero if the function succeeds. In case of an error zero will be returned.

参见

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location

PS 函数
ps_add_launchlink
PS 函数


Adds link which launches file

ps_add_bookmark
ps_add_locallink
PS 函数
PHP 手册

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Adds link which launches file

说明

bool ps_add_launchlink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename )

Places a hyperlink at the given position pointing to a file program which is being started when clicked on. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The path of the program to be started, when the link is clicked on.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location

ps_add_bookmark
ps_add_locallink
PS 函数


Adds link to a page in the same document

ps_add_launchlink
ps_add_note
PS 函数
PHP 手册

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Adds link to a page in the same document

说明

bool ps_add_locallink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , int $page , string $dest )

Places a hyperlink at the given position pointing to a page in the same document. Clicking on the link will jump to the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx , lly ) and its upper right corner at (urx , ury ). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

page

The number of the page displayed when clicking on the link.

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location

ps_add_launchlink
ps_add_note
PS 函数


Adds note to current page

ps_add_locallink
ps_add_pdflink
PS 函数
PHP 手册

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Adds note to current page

说明

bool ps_add_note ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

Adds a note at a certain position on the page. Notes are like little rectangular sheets with text on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If unfolded, the specified icon is used as a placeholder.

The note will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

contents

The text of the note.

title

The title of the note as displayed in the header of the note.

icon

The icon shown if the note is folded. This parameter can be set to comment, insert, note, paragraph, newparagraph, key, or help.

open

If open is unequal to zero the note will be shown unfolded after opening the document with a pdf viewer.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location

ps_add_locallink
ps_add_pdflink
PS 函数


Adds link to a page in a second pdf document

ps_add_note
ps_add_weblink
PS 函数
PHP 手册

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Adds link to a page in a second pdf document

说明

bool ps_add_pdflink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename , int $page , string $dest )

Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link will branch to the document at the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx , lly ) and its upper right corner at (urx , ury ). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The name of the pdf document to be opened when clicking on this link.

page

The page number of the destination pdf document

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location

ps_add_note
ps_add_weblink
PS 函数


Adds link to a web location

ps_add_pdflink
ps_arc
PS 函数
PHP 手册

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Adds link to a web location

说明

bool ps_add_weblink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $url )

Places a hyperlink at the given position pointing to a web page. The hyperlink's source position is a rectangle with its lower left corner at (llx , lly ) and its upper right corner at (urx , ury ). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

url

The url of the hyperlink to be opened when clicking on this link, e.g. http://www.php.net.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document

ps_add_pdflink
ps_arc
PS 函数


Draws an arc counterclockwise

ps_add_weblink
ps_arcn
PS 函数
PHP 手册

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Draws an arc counterclockwise

说明

bool ps_arc ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Draws a portion of a circle with at middle point at (x , y ). The arc starts at an angle of alpha and ends at an angle of beta . It is drawn counterclockwise (use ps_arcn() to draw clockwise). The subpath added to the current path starts on the arc at angle alpha and ends on the arc at angle beta .

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The start angle given in degrees.

beta

The end angle given in degrees.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_arcn() - Draws an arc clockwise

ps_add_weblink
ps_arcn
PS 函数


Draws an arc clockwise

ps_arc
ps_begin_page
PS 函数
PHP 手册

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Draws an arc clockwise

说明

bool ps_arcn ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Draws a portion of a circle with at middle point at (x , y ). The arc starts at an angle of alpha and ends at an angle of beta . It is drawn clockwise (use ps_arc() to draw counterclockwise). The subpath added to the current path starts on the arc at angle beta and ends on the arc at angle alpha .

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The starting angle given in degrees.

beta

The end angle given in degrees.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_arc() - Draws an arc counterclockwise

ps_arc
ps_begin_page
PS 函数


Start a new page

ps_arcn
ps_begin_pattern
PS 函数
PHP 手册

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Start a new page

说明

bool ps_begin_page ( resource $psdoc , float $width , float $height )

Starts a new page. Although the parameters width and height imply a different page size for each page, this is not possible in PostScript. The first call of ps_begin_page() will set the page size for the whole document. Consecutive calls will have no effect, except for creating a new page. The situation is different if you intent to convert the PostScript document into PDF. This function places pdfmarks into the document which can set the size for each page indiviually. The resulting PDF document will have different page sizes.

Though PostScript does not know different page sizes, pslib places a bounding box for each page into the document. This size is evaluated by some PostScript viewers and will have precedence over the BoundingBox in the Header of the document. This can lead to unexpected results when you set a BoundingBox whose lower left corner is not (0, 0), because the bounding box of the page will always have a lower left corner (0, 0) and overwrites the global setting.

Each page is encapsulated into save/restore. This means, that most of the settings made on one page will not be retained on the next page.

If there is up to the first call of ps_begin_page() no call of ps_findfont(), then the header of the PostScript document will be output and the bounding box will be set to the size of the first page. The lower left corner of the bounding box is set to (0, 0). If ps_findfont() was called before, then the header has been output already, and the document will not have a valid bounding box. In order to prevent this, one should call ps_set_info() to set the info field BoundingBox and possibly Orientation before any ps_findfont() or ps_begin_page() calls.

Note: Up to version 0.2.6 of pslib, this function will always overwrite the BoundingBox and Orientation, if it has been set before with ps_set_info() and ps_findfont() has not been called before.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the page in pixel, e.g. 596 for A4 format.

height

The height of the page in pixel, e.g. 842 for A4 format.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_end_page() - End a page
  • ps_findfont() - Loads a font
  • ps_set_info() - Sets information fields of document

ps_arcn
ps_begin_pattern
PS 函数


Start a new pattern

ps_begin_page
ps_begin_template
PS 函数
PHP 手册

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Start a new pattern

说明

int ps_begin_pattern ( resource $psdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

Starts a new pattern. A pattern is like a page containing e.g. a drawing which can be used for filling areas. It is used like a color by calling ps_setcolor() and setting the color space to pattern.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the pattern in pixel.

height

The height of the pattern in pixel.

x-step

The distance in pixel of placements of the pattern in horizontal direction.

y-step

The distance in pixel of placements of the pattern in vertical direction.

painttype

Must be 1 or 2.

返回值

The identifier of the pattern or FALSE in case of an error.

范例

Example #1 Creating and using a pattern

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Pattern example");

$pspattern = ps_begin_pattern($ps, 10.0, 10.0, 10.0, 10.0, 1);
ps_setlinewidth($ps, 0.2);
ps_setcolor($ps, "stroke", "rgb", 0.0, 0.0, 1.0, 0.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 7, 7);
ps_stroke($ps);
ps_moveto($ps, 0, 7);
ps_lineto($ps, 7, 0);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "both", "pattern", $pspattern, 0.0, 0.0, 0.0);
ps_rect($ps, 50, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

参见

  • ps_end_pattern() - End a pattern
  • ps_setcolor() - Sets current color
  • ps_shading_pattern() - Creates a pattern based on a shading

ps_begin_page
ps_begin_template
PS 函数


Start a new template

ps_begin_pattern
ps_circle
PS 函数
PHP 手册

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Start a new template

说明

int ps_begin_template ( resource $psdoc , float $width , float $height )

Starts a new template. A template is called a form in the postscript language. It is created similar to a pattern but used like an image. Templates are often used for drawings which are placed several times through out the document, e.g. like a company logo. All drawing functions may be used within a template. The template will not be drawn until it is placed by ps_place_image().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the template in pixel.

height

The height of the template in pixel.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Creating and using a template

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Template example");

$pstemplate = ps_begin_template($ps, 30.0, 30.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 30, 30);
ps_moveto($ps, 0, 30);
ps_lineto($ps, 30, 0);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps, 596, 842);
ps_place_image($ps, $pstemplate, 20.0, 20.0, 1.0);
ps_place_image($ps, $pstemplate, 50.0, 30.0, 0.5);
ps_place_image($ps, $pstemplate, 70.0, 70.0, 0.6);
ps_place_image($ps, $pstemplate, 30.0, 50.0, 1.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

参见

  • ps_end_template() - End a template

ps_begin_pattern
ps_circle
PS 函数


Draws a circle

ps_begin_template
ps_clip
PS 函数
PHP 手册

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Draws a circle

说明

bool ps_circle ( resource $psdoc , float $x , float $y , float $radius )

Draws a circle with its middle point at (x , y ). The circle starts and ends at position (x +radius , y ). If this function is called outside a path it will start a new path. If it is called within a path it will add the circle as a subpath. If the last drawing operation does not end in point (x +radius , y ) then there will be a gap in the path.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_arc() - Draws an arc counterclockwise
  • ps_arcn() - Draws an arc clockwise

ps_begin_template
ps_clip
PS 函数


Clips drawing to current path

ps_circle
ps_close_image
PS 函数
PHP 手册

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Clips drawing to current path

说明

bool ps_clip ( resource $psdoc )

Takes the current path and uses it to define the border of a clipping area. Everything drawn outside of that area will not be visible.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_closepath() - Closes path

ps_circle
ps_close_image
PS 函数


Closes image and frees memory

ps_clip
ps_close
PS 函数
PHP 手册

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Closes image and frees memory

说明

void ps_close_image ( resource $psdoc , int $imageid )

Closes an image and frees its resources. Once an image is closed it cannot be used anymore.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

Resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

返回值

Returns NULL on success or FALSE on failure.

参见

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file

ps_clip
ps_close
PS 函数


Closes a PostScript document

ps_close_image
ps_closepath_stroke
PS 函数
PHP 手册

ps_close

(PECL ps >= 1.1.0)

ps_close — Closes a PostScript document

说明

bool ps_close ( resource $psdoc )

Closes the PostScript document.

This function writes the trailer of the PostScript document. It also writes the bookmark tree. ps_close() does not free any resources, which is done by ps_delete().

This function is also called by ps_delete() if it has not been called before.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_open_file() - Opens a file for output
  • ps_delete() - Deletes all resources of a PostScript document

ps_close_image
ps_closepath_stroke
PS 函数


Closes and strokes path

ps_close
ps_closepath
PS 函数
PHP 手册

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Closes and strokes path

说明

bool ps_closepath_stroke ( resource $psdoc )

Connects the last point with first point of a path and draws the resulting closed line.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_closepath() - Closes path

ps_close
ps_closepath
PS 函数


Closes path

ps_closepath_stroke
ps_continue_text
PS 函数
PHP 手册

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Closes path

说明

bool ps_closepath ( resource $psdoc )

Connects the last point with the first point of a path. The resulting path can be used for stroking, filling, clipping, etc..

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_clip() - Clips drawing to current path
  • ps_closepath_stroke() - Closes and strokes path

ps_closepath_stroke
ps_continue_text
PS 函数


Continue text in next line

ps_closepath
ps_curveto
PS 函数
PHP 手册

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Continue text in next line

说明

bool ps_continue_text ( resource $psdoc , string $text )

Output a text one line below the last line. The line spacing is taken from the value "leading" which must be set with ps_set_value(). The actual position of the text is determined by the values "textx" and "texty" which can be requested with ps_get_value()

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to output.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_show() - Output text
  • ps_show_xy() - Output text at given position
  • ps_show_boxed() - Output text in a box

ps_closepath
ps_curveto
PS 函数


Draws a curve

ps_continue_text
ps_delete
PS 函数
PHP 手册

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Draws a curve

说明

bool ps_curveto ( resource $psdoc , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Add a section of a cubic Bézier curve described by the three given control points to the current path.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x1

x-coordinate of first control point.

y1

y-coordinate of first control point.

x2

x-coordinate of second control point.

y2

y-coordinate of second control point.

x3

x-coordinate of third control point.

y3

y-coordinate of third control point.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_lineto() - Draws a line

ps_continue_text
ps_delete
PS 函数


Deletes all resources of a PostScript document

ps_curveto
ps_end_page
PS 函数
PHP 手册

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Deletes all resources of a PostScript document

说明

bool ps_delete ( resource $psdoc )

Mainly frees memory used by the document. Also closes a file, if it was not closed before with ps_close(). You should in any case close the file with ps_close() before, because ps_close() not just closes the file but also outputs a trailor containing PostScript comments like the number of pages in the document and adding the bookmark hierarchy.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_close() - Closes a PostScript document

ps_curveto
ps_end_page
PS 函数


End a page

ps_delete
ps_end_pattern
PS 函数
PHP 手册

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — End a page

说明

bool ps_end_page ( resource $psdoc )

Ends a page which was started with ps_begin_page(). Ending a page will leave the current drawing context, which e.g. requires to reload fonts if they were loading within the page, and to set many other drawing parameters like the line width, or color..

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_begin_page() - Start a new page

ps_delete
ps_end_pattern
PS 函数


End a pattern

ps_end_page
ps_end_template
PS 函数
PHP 手册

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — End a pattern

说明

bool ps_end_pattern ( resource $psdoc )

Ends a pattern which was started with ps_begin_pattern(). Once a pattern has been ended, it can be used like a color to fill areas.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_begin_pattern() - Start a new pattern

ps_end_page
ps_end_template
PS 函数


End a template

ps_end_pattern
ps_fill_stroke
PS 函数
PHP 手册

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — End a template

说明

bool ps_end_template ( resource $psdoc )

Ends a template which was started with ps_begin_template(). Once a template has been ended, it can be used like an image.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_begin_template() - Start a new template

ps_end_pattern
ps_fill_stroke
PS 函数


Fills and strokes the current path

ps_end_template
ps_fill
PS 函数
PHP 手册

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Fills and strokes the current path

说明

bool ps_fill_stroke ( resource $psdoc )

Fills and draws the path constructed with previously called drawing functions like ps_lineto().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_fill() - Fills the current path
  • ps_stroke() - Draws the current path

ps_end_template
ps_fill
PS 函数


Fills the current path

ps_fill_stroke
ps_findfont
PS 函数
PHP 手册

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Fills the current path

说明

bool ps_fill ( resource $psdoc )

Fills the path constructed with previously called drawing functions like ps_lineto().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_fill_stroke() - Fills and strokes the current path
  • ps_stroke() - Draws the current path

ps_fill_stroke
ps_findfont
PS 函数


Loads a font

ps_fill
ps_get_buffer
PS 函数
PHP 手册

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Loads a font

说明

int ps_findfont ( resource $psdoc , string $fontname , string $encoding [, bool $embed=false ] )

Loads a font for later use. Before text is output with a loaded font it must be set with ps_setfont(). This function needs the adobe font metric file in order to calculate the space used up by the characters. A font which is loaded within a page will only be available on that page. Fonts which are to be used in the complete document have to be loaded before the first call of ps_begin_page(). Calling ps_findfont() between pages will make that font available for all following pages.

The name of the afm file must be fontname .afm. If the font shall be embedded the file fontname .pfb containing the font outline must be present as well.

Calling ps_findfont() before the first page requires to output the postscript header which includes the BoundingBox for the whole document. Usually the BoundingBox is set with the first call of ps_begin_page() which now comes after ps_findfont(). Consequently the BoundingBox has not been set and a warning will be issued when ps_findfont() is called. In order to prevent this situation, one should call ps_set_parameter() to set the BoundingBox before ps_findfont() is called.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontname

The name of the font.

encoding

ps_findfont() will try to load the file passed in the parameter encoding . Encoding files are of the same syntax as those used by dvips(1). They contain a font encoding vector (which is currently not used but must be present) and a list of extra ligatures to extend the list of ligatures derived from the afm file.

encoding can be NULL or the empty string if the default encoding (TeXBase1) shall be used.

If the encoding is set to builtin then there will be no reencoding and the font specific encoding will be used. This is very useful with symbol fonts.

embed

If set to a value >0 the font will be embedded into the document. This requires the font outline (.pfb file) to be present.

返回值

Returns the identifier of the font or zero in case of an error. The identifier is a positive number.

参见

  • ps_begin_page() - Start a new page
  • ps_setfont() - Sets font to use for following output

ps_fill
ps_get_buffer
PS 函数


Fetches the full buffer containig the generated PS data

ps_findfont
ps_get_parameter
PS 函数
PHP 手册

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Fetches the full buffer containig the generated PS data

说明

string ps_get_buffer ( resource $psdoc )

This function is not implemented yet. It will always return an empty string. The idea for a later implementation is to write the contents of the postscript file into an internal buffer if in memory creation is requested, and retrieve the buffer content with this function. Currently, documents created in memory are send to the browser without buffering.

Warning

本函数暂无文档，仅有参数列表。

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

参见

  • ps_open_file() - Opens a file for output

ps_findfont
ps_get_parameter
PS 函数


Gets certain parameters

ps_get_buffer
ps_get_value
PS 函数
PHP 手册

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Gets certain parameters

说明

string ps_get_parameter ( resource $psdoc , string $name [, float $modifier ] )

Gets several parameters which were directly set by ps_set_parameter() or indirectly by one of the other functions. Parameters are by definition string values. This function cannot be used to retrieve resources which were also set by ps_set_parameter().

The parameter name can have the following values.

fontname

The name of the currently active font or the font whose identifier is passed in parameter modifier .

fontencoding

The encoding of the currently active font.

dottedversion

The version of the underlying pslib library in the format <major>.<minor>.<subminor>

scope

The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog, font, glyph.

ligaturedisolvechar

The character which dissolves a ligature. If your are using a font which contains the ligature `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of the ligature `ff'.

imageencoding

The encoding used for encoding images. Can be either hex or 85. hex encoding uses two bytes in the postscript file each byte in the image. 85 stand for Ascii85 encoding.

linenumbermode

Set to paragraph if lines are numbered within a paragraph or box if they are numbered within the surrounding box.

linebreak

Only used if text is output with ps_show_boxed(). If set to true a carriage return will add a line break.

parbreak

Only used if text is output with ps_show_boxed(). If set to true a carriage return will start a new paragraph.

hyphenation

Only used if text is output with ps_show_boxed(). If set to true the paragraph will be hyphenated if a hypen dictionary is set and exists.

hyphendict

Filename of the dictionary used for hyphenation pattern.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the parameter.

modifier

An identifier needed if a parameter of a resource is requested, e.g. the size of an image. In such a case the resource id is passed.

返回值

Returns the value of the parameter or FALSE in case of an error.

参见

  • ps_set_parameter() - Sets certain parameters

ps_get_buffer
ps_get_value
PS 函数


Gets certain values

ps_get_parameter
ps_hyphenate
PS 函数
PHP 手册

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Gets certain values

说明

float ps_get_value ( resource $psdoc , string $name [, float $modifier ] )

Gets several values which were set by ps_set_value(). Values are by definition float values.

The parameter name can have the following values.

fontsize

The size of the currently active font or the font whose identifier is passed in parameter modifier .

font

The currently active font itself.

imagewidth

The width of the image whose id is passed in the parameter modifier .

imageheight

The height of the image whose id is passed in the parameter modifier .

capheight

The height of a capital M in the currently active font or the font whose identifier is passed in parameter modifier .

ascender

The ascender of the currently active font or the font whose identifier is passed in parameter modifier .

descender

The descender of the currently active font or the font whose identifier is passed in parameter modifier .

italicangle

The italicangle of the currently active font or the font whose identifier is passed in parameter modifier .

underlineposition

The underlineposition of the currently active font or the font whose identifier is passed in parameter modifier .

underlinethickness

The underlinethickness of the currently active font or the font whose identifier is passed in parameter modifier .

textx

The current x-position for text output.

texty

The current y-position for text output.

textrendering

The current mode for text rendering.

textrise

The space by which text is risen above the base line.

leading

The distance between text lines in points.

wordspacing

The space between words as a multiple of the width of a space char.

charspacing

The space between chars. If charspacing is != 0.0 ligatures will always be dissolved.

hyphenminchars

Minimum number of chars hyphenated at the end of a word.

parindent

Indention of the first n line in a paragraph.

numindentlines

Number of line in a paragraph to indent if parindent != 0.0.

parskip

Distance between paragraphs.

linenumberspace

Overall space in front of each line for the line number.

linenumbersep

Space between the line and the line number.

major

The major version number of pslib.

minor

The minor version number of pslib.

subminor, revision

The subminor version number of pslib.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the value.

modifier

The parameter modifier specifies the resource for which the value is to be retrieved. This can be the id of a font or an image.

返回值

Returns the value of the parameter or FALSE.

参见

  • ps_set_value() - Sets certain values

ps_get_parameter
ps_hyphenate
PS 函数


Hyphenates a word

ps_get_value
ps_include_file
PS 函数
PHP 手册

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Hyphenates a word

说明

array ps_hyphenate ( resource $psdoc , string $text )

Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars (set by ps_set_value()) and the parameter hyphendict (set by ps_set_parameter()). hyphendict must be set before calling this function.

This function requires the locale category LC_CTYPE to be set properly. This is done when the extension is initialized by using the environment variables. On Unix systems read the man page of locale for more information.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

text should not contain any non alpha characters. Possible positions for breaks are returned in an array of interger numbers. Each number is the position of the char in text after which a hyphenation can take place.

返回值

An array of integers indicating the position of possible breaks in the text or FALSE in case of an error.

范例

Example #1 Hyphennate a text

<?php
$word = "Koordinatensystem";
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $word);
for($i=0; $i<strlen($word); $i++) {
  echo $word[$i];
  if(in_array($i, $hyphens))
    echo "-";
}
ps_delete($psdoc);
?>

上例将输出：

Ko-ordi-na-ten-sys-tem

参见

  • ps_show_boxed() - Output text in a box
  • locale(1)

ps_get_value
ps_include_file
PS 函数


Reads an external file with raw PostScript code

ps_hyphenate
ps_lineto
PS 函数
PHP 手册

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Reads an external file with raw PostScript code

说明

bool ps_include_file ( resource $psdoc , string $file )

Warning

本函数暂无文档，仅有参数列表。

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

file

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ps_hyphenate
ps_lineto
PS 函数


Draws a line

ps_include_file
ps_makespotcolor
PS 函数
PHP 手册

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Draws a line

说明

bool ps_lineto ( resource $psdoc , float $x , float $y )

Adds a straight line from the current point to the given coordinates to the current path. Use ps_moveto() to set the starting point of the line.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the end point of the line.

y

y-coordinate of the end point of the line.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Drawing a rectangle

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Lineto example");

ps_begin_page($ps, 596, 842);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

参见

  • ps_moveto() - Sets current point

ps_include_file
ps_makespotcolor
PS 函数


Create spot color

ps_lineto
ps_moveto
PS 函数
PHP 手册

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Create spot color

说明

int ps_makespotcolor ( resource $psdoc , string $name [, int $reserved=0 ] )

Creates a spot color from the current fill color. The fill color must be defined in rgb, cmyk or gray colorspace. The spot color name can be an arbitrary name. A spot color can be set as any color with ps_setcolor(). When the document is not printed but displayed by an postscript viewer the given color in the specified color space is use.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the spot color, e.g. Pantone 5565.

返回值

The id of the new spot color or 0 in case of an error.

范例

Example #1 Creating and using a spot color

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Spot color example");

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "fill", "cmyk", 0.37, 0.0, 0.34, 0.34);
$spotcolor = ps_makespotcolor($ps, "PANTONE 5565 C", 0);
ps_setcolor($ps, "fill", "spot", $spotcolor, 0.5, 0.0, 0.0);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example creates the spot color "PANTONE 5565 C" which is a darker green (olive) and fills a rectangle with 50% intensity.

参见

  • ps_setcolor() - Sets current color

ps_lineto
ps_moveto
PS 函数


Sets current point

ps_makespotcolor
ps_new
PS 函数
PHP 手册

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Sets current point

说明

bool ps_moveto ( resource $psdoc , float $x , float $y )

Sets the current point to new coordinates. If this is the first call of ps_moveto() after a previous path has been ended then it will start a new path. If this function is called in the middle of a path it will just set the current point and start a subpath.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the point to move to.

y

y-coordinate of the point to move to.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_lineto() - Draws a line

ps_makespotcolor
ps_new
PS 函数


Creates a new PostScript document object

ps_moveto
ps_open_file
PS 函数
PHP 手册

ps_new

(PECL ps >= 1.1.0)

ps_new — Creates a new PostScript document object

说明

resource ps_new ( void )

Creates a new document instance. It does not create the file on disk or in memory, it just sets up everything. ps_new() is usually followed by a call of ps_open_file() to actually create the postscript document.

返回值

Resource of PostScript document or FALSE on failure. The return value is passed to all other functions as the first argument.

参见

  • ps_delete() - Deletes all resources of a PostScript document

ps_moveto
ps_open_file
PS 函数


Opens a file for output

ps_new
ps_open_image_file
PS 函数
PHP 手册

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Opens a file for output

说明

bool ps_open_file ( resource $psdoc [, string $filename ] )

Creates a new file on disk and writes the PostScript document into it. The file will be closed when ps_close() is called.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

filename

The name of the postscript file. If filename is not passed the document will be created in memory and all output will go straight to the browser.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_close() - Closes a PostScript document

ps_new
ps_open_image_file
PS 函数


Opens image from file

ps_open_file
ps_open_image
PS 函数
PHP 手册

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Opens image from file

说明

int ps_open_image_file ( resource $psdoc , string $type , string $filename [, string $stringparam [, int $intparam=0 ]] )

Loads an image for later use.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

filename

The name of the file containing the image data.

stringparam

Not used.

intparam

Not used.

返回值

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

参见

  • ps_open_image() - Reads an image for later placement
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory

ps_open_file
ps_open_image
PS 函数


Reads an image for later placement

ps_open_image_file
ps_open_memory_image
PS 函数
PHP 手册

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Reads an image for later placement

说明

int ps_open_image ( resource $psdoc , string $type , string $source , string $data , int $lenght , int $width , int $height , int $components , int $bpc , string $params )

Reads an image which is already available in memory. The parameter source is currently not evaluated and assumed to be memory. The image data is a sequence of pixels starting in th upper left corner and ending in the lower right corner. Each pixel consists of components color components, and each component has bpc bits.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

source

Not used.

data

The image data.

length

The length of the image data.

width

The width of the image.

height

The height of the image.

components

The number of components for each pixel. This can be 1 (gray scale images), 3 (rgb images), or 4 (cmyk, rgba images).

bpc

Number of bits per component (quite often 8).

params

返回值

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

参见

  • ps_open_image_file() - Opens image from file
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory

ps_open_image_file
ps_open_memory_image
PS 函数


Takes an GD image and returns an image for placement in a PS document

ps_open_image
ps_place_image
PS 函数
PHP 手册

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document

说明

int ps_open_memory_image ( resource $psdoc , int $gd )

Warning

本函数暂无文档，仅有参数列表。

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

gd

ps_open_image
ps_place_image
PS 函数


Places image on the page

ps_open_memory_image
ps_rect
PS 函数
PHP 手册

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Places image on the page

说明

bool ps_place_image ( resource $psdoc , int $imageid , float $x , float $y , float $scale )

Places a formerly loaded image on the page. The image can be scaled. If the image shall be rotated as well, you will have to rotate the coordinate system before with ps_rotate().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

The resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

x

x-coordinate of the lower left corner of the image.

y

y-coordinate of the lower left corner of the image.

scale

The scaling factor for the image. A scale of 1.0 will result in a resolution of 72 dpi, because each pixel is equivalent to 1 point.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file

ps_open_memory_image
ps_rect
PS 函数


Draws a rectangle

ps_place_image
ps_restore
PS 函数
PHP 手册

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Draws a rectangle

说明

bool ps_rect ( resource $psdoc , float $x , float $y , float $width , float $height )

Draws a rectangle with its lower left corner at (x , y ). The rectangle starts and ends in its lower left corner. If this function is called outside a path it will start a new path. If it is called within a path it will add the rectangle as a subpath. If the last drawing operation does not end in the lower left corner then there will be a gap in the path.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the lower left corner of the rectangle.

y

y-coordinate of the lower left corner of the rectangle.

width

The width of the image.

height

The height of the image.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_arc() - Draws an arc counterclockwise
  • ps_cirle()
  • ps_lineto() - Draws a line

ps_place_image
ps_restore
PS 函数


Restore previously save context

ps_rect
ps_rotate
PS 函数
PHP 手册

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Restore previously save context

说明

bool ps_restore ( resource $psdoc )

Restores a previously saved graphics context. Any call of ps_save() must be accompanied by a call to ps_restore(). All coordinate transformations, line style settings, color settings, etc. are being restored to the state before the call of ps_save().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_save() - Save current context

ps_rect
ps_rotate
PS 函数


Sets rotation factor

ps_restore
ps_save
PS 函数
PHP 手册

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Sets rotation factor

说明

bool ps_rotate ( resource $psdoc , float $rot )

Sets the rotation of the coordinate system.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

rot

Angle of rotation in degree.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Rotation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "rotation.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Rotation example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text without rotation");
ps_end_page($ps);

ps_delete($ps);
?>

The above example illustrates a very common way of rotating a graphic (in this case just a rectangle) by simply rotating the coordinate system. Since the graphic's coordinate system assumes (0,0) to be the origin, the page coordinate system is also translated to place the graphics not on the edge of the page. Pay attention to the order of ps_translate() and ps_rotate(). In the above case the rectancle is rotated around the point (100, 100) in the untranslated coordinate system. Switching the two statements has a completely different result.

In order to output the following text at the original position, all modifications of the coordinate system are encapsulated in ps_save() and ps_restore().

参见

  • ps_scale() - Sets scaling factor
  • ps_translate() - Sets translation

ps_restore
ps_save
PS 函数


Save current context

ps_rotate
ps_scale
PS 函数
PHP 手册

ps_save

(PECL ps >= 1.1.0)

ps_save — Save current context

说明

bool ps_save ( resource $psdoc )

Saves the current graphics context, containing colors, translation and rotation settings and some more. A saved context can be restored with ps_restore().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_restore() - Restore previously save context

ps_rotate
ps_scale
PS 函数


Sets scaling factor

ps_save
ps_set_border_color
PS 函数
PHP 手册

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Sets scaling factor

说明

bool ps_scale ( resource $psdoc , float $x , float $y )

Sets horizontal and vertical scaling of the coordinate system.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

Scaling factor in horizontal direction.

y

Scaling factor in vertical direction.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_rotate() - Sets rotation factor
  • ps_translate() - Sets translation

ps_save
ps_set_border_color
PS 函数


Sets color of border for annotations

ps_scale
ps_set_border_dash
PS 函数
PHP 手册

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Sets color of border for annotations

说明

bool ps_set_border_color ( resource $psdoc , float $red , float $green , float $blue )

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the color of the rectangle's border line.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

red

The red component of the border color.

green

The green component of the border color.

blue

The blue component of the border color.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_set_border_dash() - Sets length of dashes for border of annotations
  • ps_set_border_style() - Sets border style of annotations

ps_scale
ps_set_border_dash
PS 函数


Sets length of dashes for border of annotations

ps_set_border_color
ps_set_border_style
PS 函数
PHP 手册

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Sets length of dashes for border of annotations

说明

bool ps_set_border_dash ( resource $psdoc , float $black , float $white )

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the length of the black and white portion of a dashed border line.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

black

The length of the dash.

white

The length of the gap between dashes.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_style() - Sets border style of annotations

ps_set_border_color
ps_set_border_style
PS 函数


Sets border style of annotations

ps_set_border_dash
ps_set_info
PS 函数
PHP 手册

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Sets border style of annotations

说明

bool ps_set_border_style ( resource $psdoc , string $style , float $width )

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the appearance and width of the border line.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

style

style can be solid or dashed.

width

The line width of the border.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_dash() - Sets length of dashes for border of annotations

ps_set_border_dash
ps_set_info
PS 函数


Sets information fields of document

ps_set_border_style
ps_set_parameter
PS 函数
PHP 手册

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Sets information fields of document

说明

bool ps_set_info ( resource $p , string $key , string $val )

Sets certain information fields of the document. This fields will be shown as a comment in the header of the PostScript file. If the document is converted to pdf this fields will also be used for the document information.

The BoundingBox is usually set to the value given to the first page. This only works if ps_findfont() has not been called before. In such cases the BoundingBox would be left unset unless you set it explicitly with this function.

This function will have no effect anymore when the header of the postscript file has been already written. It must be called before the first page or the first call of ps_findfont().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

key

The name of the information field to set. The values which can be set are Keywords, Subject, Title, Creator, Author, BoundingBox, and Orientation. Be aware that some of them has a meaning to PostScript viewers.

value

The value of the information field. The field Orientation can be set to either Portrait or Landscape. The BoundingBox is a string consisting of four numbers. The first two numbers are the coordinates of the lower left corner of the page. The last two numbers are the coordinates of the upper right corner.

Note: Up to version 0.2.6 of pslib, the BoundingBox and Orientation will be overwritten by ps_begin_page(), unless ps_findfont() has been called before.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_findfont() - Loads a font
  • ps_begin_page() - Start a new page

ps_set_border_style
ps_set_parameter
PS 函数


Sets certain parameters

ps_set_info
ps_set_text_pos
PS 函数
PHP 手册

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Sets certain parameters

说明

bool ps_set_parameter ( resource $psdoc , string $name , string $value )

Sets several parameters which are used by many functions. Parameters are by definition string values.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

For a list of possible names see ps_get_parameter().

value

The value of the parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_get_parameters()
  • ps_set_value() - Sets certain values

ps_set_info
ps_set_text_pos
PS 函数


Sets position for text output

ps_set_parameter
ps_set_value
PS 函数
PHP 手册

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Sets position for text output

说明

bool ps_set_text_pos ( resource $psdoc , float $x , float $y )

Set the position for the next text output. You may alternatively set the x and y value separately by calling ps_set_value() and choosing textx respectively texty as the value name.

If you want to output text at a certain position it is more convenient to use ps_show_xy() instead of setting the text position and calling ps_show().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the new text position.

y

y-coordinate of the new text position.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Placing text at a given position

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Text placement example");

ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "Some text at (100, 100)", 100, 100);

ps_set_value($ps, "textx", 100);
ps_set_value($ps, "texty", 120);
ps_show($ps, "Some text at (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

参见

  • ps_set_value() - Sets certain values
  • ps_show() - Output text

ps_set_parameter
ps_set_value
PS 函数


Sets certain values

ps_set_text_pos
ps_setcolor
PS 函数
PHP 手册

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Sets certain values

说明

bool ps_set_value ( resource $psdoc , string $name , float $value )

Sets several values which are used by many functions. Parameters are by definition float values.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

The name can be one of the following:

textrendering

The way how text is shown.

textx

The x coordinate for text output.

texty

The y coordinate for text output.

wordspacing

The distance between words relative to the width of a space.

leading

The distance between lines in pixels.

value

The value of the parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_get_value() - Gets certain values
  • ps_set_parameter() - Sets certain parameters

ps_set_text_pos
ps_setcolor
PS 函数


Sets current color

ps_set_value
ps_setdash
PS 函数
PHP 手册

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Sets current color

说明

bool ps_setcolor ( resource $psdoc , string $type , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

Sets the color for drawing, filling, or both.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The parameter type can be both, fill, or fillstroke.

colorspace

The colorspace should be one of gray, rgb, cmyk, spot, pattern. Depending on the colorspace either only the first, the first three or all parameters will be used.

c1

Depending on the colorspace this is either the red component (rgb), the cyan component (cmyk), the gray value (gray), the identifier of the spot color or the identifier of the pattern.

c2

Depending on the colorspace this is either the green component (rgb), the magenta component (cmyk).

c3

Depending on the colorspace this is either the blue component (rgb), the yellow component (cmyk).

c4

This must only be set in cmyk colorspace and specifies the black component.

Bugs

The second parameter is currently not always evaluated. The color is sometimes set for filling and drawing just as if fillstroke were passed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ps_set_value
ps_setdash
PS 函数


Sets appearance of a dashed line

ps_setcolor
ps_setflat
PS 函数
PHP 手册

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Sets appearance of a dashed line

说明

bool ps_setdash ( resource $psdoc , float $on , float $off )

Sets the length of the black and white portions of a dashed line.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

on

The length of the dash.

off

The length of the gap between dashes.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_setpolydash() - Sets appearance of a dashed line

ps_setcolor
ps_setflat
PS 函数


Sets flatness

ps_setdash
ps_setfont
PS 函数
PHP 手册

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Sets flatness

说明

bool ps_setflat ( resource $psdoc , float $value )

Warning

本函数暂无文档，仅有参数列表。

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The value must be between 0.2 and 1.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ps_setdash
ps_setfont
PS 函数


Sets font to use for following output

ps_setflat
ps_setgray
PS 函数
PHP 手册

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Sets font to use for following output

说明

bool ps_setfont ( resource $psdoc , int $fontid , float $size )

Sets a font, which has to be loaded before with ps_findfont(). Outputting text without setting a font results in an error.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontid

The font identifier as returned by ps_findfont().

size

The size of the font.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_findfont() - Loads a font
  • ps_set_text_pos() - Sets position for text output for an example.

ps_setflat
ps_setgray
PS 函数


Sets gray value

ps_setfont
ps_setlinecap
PS 函数
PHP 手册

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Sets gray value

说明

bool ps_setgray ( resource $psdoc , float $gray )

Sets the gray value for all following drawing operations.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

gray

The value must be between 0 (white) and 1 (black).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_setcolor() - Sets current color

ps_setfont
ps_setlinecap
PS 函数


Sets appearance of line ends

ps_setgray
ps_setlinejoin
PS 函数
PHP 手册

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Sets appearance of line ends

说明

bool ps_setlinecap ( resource $psdoc , int $type )

Sets how line ends look like.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of line ends. Possible values are PS_LINECAP_BUTT, PS_LINECAP_ROUND, or PS_LINECAP_SQUARED.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit

ps_setgray
ps_setlinejoin
PS 函数


Sets how contected lines are joined

ps_setlinecap
ps_setlinewidth
PS 函数
PHP 手册

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Sets how contected lines are joined

说明

bool ps_setlinejoin ( resource $psdoc , int $type )

Sets how lines are joined.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The way lines are joined. Possible values are PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND, or PS_LINEJOIN_BEVEL.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit

ps_setlinecap
ps_setlinewidth
PS 函数


Sets width of a line

ps_setlinejoin
ps_setmiterlimit
PS 函数
PHP 手册

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Sets width of a line

说明

bool ps_setlinewidth ( resource $psdoc , float $width )

Sets the line width for all following drawing operations.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of lines in points.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setmiterlimit() - Sets the miter limit

ps_setlinejoin
ps_setmiterlimit
PS 函数


Sets the miter limit

ps_setlinewidth
ps_setoverprintmode
PS 函数
PHP 手册

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Sets the miter limit

说明

bool ps_setmiterlimit ( resource $psdoc , float $value )

If two lines join in a small angle and the line join is set to PS_LINEJOIN_MITER, then the resulting spike will be very long. The miter limit is the maximum ratio of the miter length (the length of the spike) and the line width.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The maximum ratio between the miter length and the line width. Larger values (> 10) will result in very long spikes when two lines meet in a small angle. Keep the default unless you know what you are doing.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line

ps_setlinewidth
ps_setoverprintmode
PS 函数


Sets overprint mode

ps_setmiterlimit
ps_setpolydash
PS 函数
PHP 手册

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Sets overprint mode

说明

bool ps_setoverprintmode ( resource $psdoc , int $mode )

Warning

本函数暂无文档，仅有参数列表。

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

mode

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ps_setmiterlimit
ps_setpolydash
PS 函数


Sets appearance of a dashed line

ps_setoverprintmode
ps_shading_pattern
PS 函数
PHP 手册

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Sets appearance of a dashed line

说明

bool ps_setpolydash ( resource $psdoc , float $arr )

Sets the length of the black and white portions of a dashed line. ps_setpolydash() is used to set more complicated dash patterns.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

arr

arr is a list of length elements alternately for the black and white portion.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Drawing a dashed line

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
   print "Cannot open PostScript file\n";
     exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Poly dash example");

ps_begin_page($ps, 596, 842);
ps_setpolydash($ps, array(10, 5, 2, 5));
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example draws a line with a 10 and 2 points long line, and gaps of 5 points inbetween.

参见

  • ps_setdash() - Sets appearance of a dashed line

ps_setoverprintmode
ps_shading_pattern
PS 函数


Creates a pattern based on a shading

ps_setpolydash
ps_shading
PS 函数
PHP 手册

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Creates a pattern based on a shading

说明

int ps_shading_pattern ( resource $psdoc , int $shadingid , string $optlist )

Creates a pattern based on a shading, which has to be created before with ps_shading(). Shading patterns can be used like regular patterns.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

optlist

This argument is not currently used.

返回值

The identifier of the pattern or FALSE in case of an error.

参见

  • ps_shading() - Creates a shading for later use
  • ps_shfill() - Fills an area with a shading

ps_setpolydash
ps_shading
PS 函数


Creates a shading for later use

ps_shading_pattern
ps_shfill
PS 函数
PHP 手册

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Creates a shading for later use

说明

int ps_shading ( resource $psdoc , string $type , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Creates a shading, which can be used by ps_shfill() or ps_shading_pattern().

The color of the shading can be in any color space except for pattern.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of shading can be either radial or axial. Each shading starts with the current fill color and ends with the given color values passed in the parameters c1 to c4 (see ps_setcolor() for their meaning).

x0, x1, y0, y1

The coordinates x0 , y0 , x1 , y1 are the start and end point of the shading. If the type of shading is radial the two points are the middle points of a starting and ending circle.

c1, c2, c3, c4

See ps_setcolor() for their meaning.

optlist

If the shading is of type radial the optlist must also contain the parameters r0 and r1 with the radius of the start and end circle.

返回值

Returns the identifier of the pattern or FALSE in case of an error.

参见

  • ps_shading_pattern() - Creates a pattern based on a shading
  • ps_shfill() - Fills an area with a shading

ps_shading_pattern
ps_shfill
PS 函数


Fills an area with a shading

ps_shading
ps_show_boxed
PS 函数
PHP 手册

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Fills an area with a shading

说明

bool ps_shfill ( resource $psdoc , int $shadingid )

Fills an area with a shading, which has to be created before with ps_shading(). This is an alternative way to creating a pattern from a shading ps_shading_pattern() and using the pattern as the filling color.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_shading() - Creates a shading for later use
  • ps_shading_pattern() - Creates a pattern based on a shading

ps_shading
ps_show_boxed
PS 函数


Output text in a box

ps_shfill
ps_show_xy2
PS 函数
PHP 手册

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Output text in a box

说明

int ps_show_boxed ( resource $psdoc , string $text , float $left , float $bottom , float $width , float $height , string $hmode [, string $feature ] )

Outputs a text in a given box. The lower left corner of the box is at (left , bottom ). Line breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated as spaces.

The text will be hyphenated if the parameter hyphenation is set to true and the parameter hyphendict contains a valid filename for a hyphenation file. The line spacing is taken from the value leading. Paragraphs can be separated by an empty line just like in TeX. If the value parindent is set to value > 0.0 then the first n lines will be indented. The number n of lines is set by the parameter numindentlines. In order to prevent indenting of the first m paragraphs set the value parindentskip to a positive number.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output into the given box.

left

x-coordinate of the lower left corner of the box.

bottom

y-coordinate of the lower left corner of the box.

width

Width of the box.

height

Height of the box.

hmode

The parameter hmode can be "justify", "fulljustify", "right", "left", or "center". The difference of "justify" and "fulljustify" just affects the last line of the box. In fulljustify mode the last line will be left and right justified unless this is also the last line of paragraph. In justify mode it will always be left justified.

feature

Used parameters

The output of ps_show_boxed() can be configured with several parameters and values which must be set with either ps_set_parameter() or ps_set_value(). Beside the parameters and values which affect text output, the following parameters and values are evaluated.

leading (value)

Distance between baselines of two consecutive lines.

linebreak (parameter)

Set to "true" if you want a carriage return to start a new line instead of treating it as a space. Defaults to "false".

parbreak (parameter)

Set to "true" if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to "true".

hyphenation (parameter)

Set to "true" in order to turn hyphenation on. This requires a dictionary to be set with the parameter "hyphendict". Defaults to "false".

hyphendict (parameter)

Filename of the dictionary used for hyphenation pattern (see below).

hyphenminchar (value)

The number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value.

parindent (value)

Set the amount of space in pixel for indenting the first m lines of a paragraph. m can be set with the value "numindentlines".

parskip (value)

Set the amount of extra space in pixel between paragraphs. Defaults to 0 which will result in a normal line distance.

numindentlines (value)

Number of lines from the start of the paragraph which will be indented. Defaults to 1.

parindentskip (value)

Number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading or text being continued in a second box. In both case one would set this to 1.

linenumbermode (parameter)

Set how lines are to be numbered. Possible values are "box" for numbering lines in the whole box or "paragraph" to number lines within each paragraph.

linenumberspace (value)

The space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20.

linenumbersep (value)

The space between the column with line numbers and the line itself. Defaults to 5.

Hyphenation

Text is hyphenated if the parameter hyphenation is set to true and a valid hyphenation dictionary is set. pslib does not ship its own hyphenation dictionary but uses one from openoffice, scribus or koffice. You can find their dictionaries for different languages in one of the following directories if the software is installed:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/

Currently scribus appears to have the most complete hyphenation dictionaries.

返回值

Number of characters that could not be written.

参见

  • ps_continue_text() - Continue text in next line

ps_shfill
ps_show_xy2
PS 函数


Output text at position

ps_show_boxed
ps_show_xy
PS 函数
PHP 手册

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Output text at position

说明

bool ps_show_xy2 ( resource $psdoc , string $text , int $len , float $xcoor , float $ycoor )

Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ps_show_boxed
ps_show_xy
PS 函数


Output text at given position

ps_show_xy2
ps_show2
PS 函数
PHP 手册

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Output text at given position

说明

bool ps_show_xy ( resource $psdoc , string $text , float $x , float $y )

Output a text at the given text position.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

x

x-coordinate of the lower left corner of the box surrounding the text.

y

y-coordinate of the lower left corner of the box surrounding the text.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_continue_text() - Continue text in next line
  • ps_show() - Output text

ps_show_xy2
ps_show2
PS 函数


Output a text at current position

ps_show_xy
ps_show
PS 函数
PHP 手册

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Output a text at current position

说明

bool ps_show2 ( resource $psdoc , string $text , int $len )

Warning

本函数暂无文档，仅有参数列表。

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

len

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ps_show_xy
ps_show
PS 函数


Output text

ps_show2
ps_string_geometry
PS 函数
PHP 手册

ps_show

(PECL ps >= 1.1.0)

ps_show — Output text

说明

bool ps_show ( resource $psdoc , string $text )

Output a text at the current text position. The text position can be set by storing the x and y coordinates into the values textx and texty with the function ps_set_value(). The function will issue an error if a font was not set before with ps_setfont().

ps_show() evaluates the following parameters and values as set by ps_set_parameter() and ps_set_value().

charspacing (value)

Distance between two consecutive glyphs. If this value is unequal to zero then all ligatures will be resolved. Values less than zero are allowed.

kerning (parameter)

Setting this parameter to "false" will turn off kerning. Kerning is turned on by default.

ligatures (parameter)

Setting this parameter to "false" will turn off the use of ligatures. Ligatures are turned on by default.

underline (parameter)

Setting this parameter to "true" will turn on underlining. Underlining is turned off by default.

overline (parameter)

Setting this parameter to "true" will turn on overlining. Overlining is turned off by default.

strikeout (parameter)

Setting this parameter to "true" will turn on striking out. Striking out is turned off by default.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_continue_text() - Continue text in next line
  • ps_show_xy() - Output text at given position
  • ps_setfont() - Sets font to use for following output

ps_show2
ps_string_geometry
PS 函数


Gets geometry of a string

ps_show
ps_stringwidth
PS 函数
PHP 手册

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Gets geometry of a string

说明

array ps_string_geometry ( resource $psdoc , string $text [, int $fontid=0 [, float $size=0.0 ]] )

This function is similar to ps_stringwidth() but returns an array of dimensions containing the width, ascender, and descender of the text.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the geometry is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

返回值

An array of the dimensions of a string. The element 'width' contains the width of the string as returned by ps_stringwidth(). The element 'descender' contains the maximum descender and 'ascender' the maximum ascender of the string.

参见

  • ps_continue_text() - Continue text in next line
  • ps_stringwidth() - Gets width of a string

ps_show
ps_stringwidth
PS 函数


Gets width of a string

ps_string_geometry
ps_stroke
PS 函数
PHP 手册

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Gets width of a string

说明

float ps_stringwidth ( resource $psdoc , string $text [, int $fontid=0 [, float $size=0.0 ]] )

Calculates the width of a string in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on, it will be taken into account.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the width is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

返回值

Width of a string in points.

参见

  • ps_string_geometry() - Gets geometry of a string

ps_string_geometry
ps_stroke
PS 函数


Draws the current path

ps_stringwidth
ps_symbol_name
PS 函数
PHP 手册

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Draws the current path

说明

bool ps_stroke ( resource $psdoc )

Draws the path constructed with previously called drawing functions like ps_lineto().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_closepath_stroke() - Closes and strokes path
  • ps_fill() - Fills the current path
  • ps_fill_stroke() - Fills and strokes the current path

ps_stringwidth
ps_symbol_name
PS 函数


Gets name of a glyph

ps_stroke
ps_symbol_width
PS 函数
PHP 手册

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Gets name of a glyph

说明

string ps_symbol_name ( resource $psdoc , int $ord [, int $fontid=0 ] )

This function needs an Adobe font metrics file to know which glyphs are available.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

返回值

The name of a glyph in the given font.

参见

  • ps_symbol() - Output a glyph
  • ps_symbol_width() - Gets width of a glyph

ps_stroke
ps_symbol_width
PS 函数


Gets width of a glyph

ps_symbol_name
ps_symbol
PS 函数
PHP 手册

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Gets width of a glyph

说明

float ps_symbol_width ( resource $psdoc , int $ord [, int $fontid=0 [, float $size=0.0 ]] )

Calculates the width of a glyph in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

返回值

The width of a glyph in points.

参见

  • ps_symbol() - Output a glyph
  • ps_symbol_name() - Gets name of a glyph

ps_symbol_name
ps_symbol
PS 函数


Output a glyph

ps_symbol_width
ps_translate
PS 函数
PHP 手册

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Output a glyph

说明

bool ps_symbol ( resource $psdoc , int $ord )

Output the glyph at position ord in the font encoding vector of the current font. The font encoding for a font can be set when loading the font with ps_findfont().

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ps_symbol_name() - Gets name of a glyph
  • ps_symbol_width() - Gets width of a glyph

ps_symbol_width
ps_translate
PS 函数


Sets translation

ps_symbol
RPM Reader
PS 函数
PHP 手册

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Sets translation

说明

bool ps_translate ( resource $psdoc , float $x , float $y )

Sets a new initial point of the coordinate system.

参数

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the origin of the translated coordinate system.

y

y-coordinate of the origin of the translated coordinate system.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Translation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "translate.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Translated example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_delete($ps);
?>

The above example demonstrates two possible ways to place a graphic (in this case just a rectangle) at any position on the page, while the graphic itself uses its own coordinate system. The trick is to change the origin of the current coordinate system before drawing the rectangle. The translation has to undone after the graphic has been drawn.

On the second page a slightly different and more elegant approach is applied. Instead of undoing the translation with a second call of ps_translate() the graphics context is saved before modifying the coordinate system and restored after drawing the rectangle.

参见

  • ps_scale() - Sets scaling factor
  • ps_rotate() - Sets rotation factor

ps_symbol
RPM Reader
PS 函数


RPM Header Reading

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic usage
  • RPM Reader 函数
    • rpm_close — Closes an RPM file
    • rpm_get_tag — Retrieves a header tag from an RPM file
    • rpm_is_valid — Tests a filename for validity as an RPM file
    • rpm_open — Opens an RPM file
    • rpm_version — Returns a string representing the current version of the rpmreader extension
ps_translate
简介
非文本内容的MIME输出


简介

This module allows you to read the meta information stored in the headers of a » RedHat Package Manager (» RPM) file.

RPM Reader
安装/配置
RPM Reader


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
RPM Reader


需求

The RPMReader extension requires PHP 5.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/rpmreader.

需求
运行时配置
安装/配置


资源类型

There is one resource type used by the RPMReader module. The resource is a file pointer which identifies the RPM file with which to work.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following list of constants are used to obtain information using the rpm_get_tag() function. These constants represent the tag number to be retrieved from the RPM file's header section. Descriptions are given below as to what data the tag number constants reference.

RPMREADER_MINIMUM (integer)
The minimum valid value of any RPM tag number.
RPMREADER_NAME (integer)
The name of the RPM package.
RPMREADER_VERSION (integer)
The version of the RPM package.
RPMREADER_RELEASE (integer)
The release of the RPM package.
RPMREADER_EPOCH (integer)
RPMREADER_SERIAL (integer)
RPMREADER_SUMMARY (integer)
The summary text of the RPM package.
RPMREADER_DESCRIPTION (integer)
The full description text of the RPM package.
RPMREADER_BUILDTIME (integer)
The date and time when the RPM package was built.
RPMREADER_BUILDHOST (integer)
The name of the host on which the RPM package was built.
RPMREADER_INSTALLTIME (integer)
RPMREADER_SIZE (integer)
The size of the RPM package.
RPMREADER_DISTRIBUTION (integer)
RPMREADER_VENDOR (integer)
RPMREADER_GIF (integer)
RPMREADER_XPM (integer)
RPMREADER_LICENSE (integer)
RPMREADER_COPYRIGHT (integer)
RPMREADER_PACKAGER (integer)
RPMREADER_GROUP (integer)
RPMREADER_SOURCE (integer)
RPMREADER_PATCH (integer)
RPMREADER_URL (integer)
RPMREADER_OS (integer)
RPMREADER_ARCH (integer)
RPMREADER_PREIN (integer)
RPMREADER_POSTIN (integer)
RPMREADER_PREUN (integer)
RPMREADER_POSTUN (integer)
RPMREADER_OLDFILENAMES (integer)
The list of files in an RPM package (deprecated format). The correct way is now to use a combination of 3 tags (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES) in what RPM now calls "CompressedFileNames". This tag is still used in older RPM files that did not use the "CompressedFileNames" method and is maintained for backward compatibility.
RPMREADER_FILESIZES (integer)
RPMREADER_FILESTATES (integer)
RPMREADER_FILEMODES (integer)
RPMREADER_FILERDEVS (integer)
RPMREADER_FILEMTIMES (integer)
RPMREADER_FILEMD5S (integer)
RPMREADER_FILELINKTOS (integer)
RPMREADER_FILEFLAGS (integer)
RPMREADER_FILEUSERNAME (integer)
RPMREADER_FILEGROUPNAME (integer)
RPMREADER_ICON (integer)
RPMREADER_SOURCERPM (integer)
RPMREADER_FILEVERIFYFLAGS (integer)
RPMREADER_ARCHIVESIZE (integer)
RPMREADER_PROVIDENAME (integer)
RPMREADER_PROVIDES (integer)
RPMREADER_REQUIREFLAGS (integer)
RPMREADER_REQUIRENAME (integer)
RPMREADER_REQUIREVERSION (integer)
RPMREADER_CONFLICTFLAGS (integer)
RPMREADER_CONFLICTNAME (integer)
RPMREADER_CONFLICTVERSION (integer)
RPMREADER_EXCLUDEARCH (integer)
RPMREADER_EXCLUDEOS (integer)
RPMREADER_EXCLUSIVEARCH (integer)
RPMREADER_EXCLUSIVEOS (integer)
RPMREADER_RPMVERSION (integer)
RPMREADER_TRIGGERSCRIPTS (integer)
RPMREADER_TRIGGERNAME (integer)
RPMREADER_TRIGGERVERSION (integer)
RPMREADER_TRIGGERFLAGS (integer)
RPMREADER_TRIGGERINDEX (integer)
RPMREADER_VERIFYSCRIPT (integer)
RPMREADER_CHANGELOGTIME (integer)
The list of dates from changelog entries.
RPMREADER_CHANGELOGNAME (integer)
The list of changelog entry names.
RPMREADER_CHANGELOGTEXT (integer)
The list of the text from changelog entries.
RPMREADER_PREINPROG (integer)
RPMREADER_POSTINPROG (integer)
RPMREADER_PREUNPROG (integer)
RPMREADER_POSTUNPROG (integer)
RPMREADER_BUILDARCHS (integer)
RPMREADER_OBSOLETENAME (integer)
RPMREADER_OBSOLETES (integer)
RPMREADER_VERIFYSCRIPTPROG (integer)
RPMREADER_TRIGGERSCRIPTPROG (integer)
RPMREADER_COOKIE (integer)
RPMREADER_FILEDEVICES (integer)
RPMREADER_FILEINODES (integer)
RPMREADER_FILELANGS (integer)
RPMREADER_PREFIXES (integer)
RPMREADER_INSTPREFIXES (integer)
RPMREADER_PROVIDEFLAGS (integer)
RPMREADER_PROVIDEVERSION (integer)
RPMREADER_OBSOLETEFLAGS (integer)
RPMREADER_OBSOLETEVERSION (integer)
RPMREADER_DIRINDEXES (integer)
The list of indices that relate directory names to files in the RPM package. This tag is used in conjunction with RPMREADER_BASENAMES and RPMREADER_DIRNAMES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.
RPMREADER_BASENAMES (integer)
The list of the names of files in the RPM package without path information. This tag is used in conjunction with RPMREADER_DIRINDEXES and RPMREADER_DIRNAMES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.
RPMREADER_DIRNAMES (integer)
The list of directory names used by files in the RPM package. This tag is used in conjunction with RPMREADER_BASENAMES and RPMREADER_DIRINDEXES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.
RPMREADER_OPTFLAGS (integer)
RPMREADER_DISTURL (integer)
RPMREADER_PAYLOADFORMAT (integer)
RPMREADER_PAYLOADCOMPRESSOR (integer)
RPMREADER_PAYLOADFLAGS (integer)
RPMREADER_INSTALLCOLOR (integer)
RPMREADER_INSTALLTID (integer)
RPMREADER_REMOVETID (integer)
RPMREADER_RHNPLATFORM (integer)
RPMREADER_PLATFORM (integer)
RPMREADER_PATCHESNAME (integer)
RPMREADER_PATCHESFLAGS (integer)
RPMREADER_PATCHESVERSION (integer)
RPMREADER_CACHECTIME (integer)
RPMREADER_CACHEPKGPATH (integer)
RPMREADER_CACHEPKGSIZE (integer)
RPMREADER_CACHEPKGMTIME (integer)
RPMREADER_FILECOLORS (integer)
RPMREADER_FILECLASS (integer)
RPMREADER_CLASSDICT (integer)
RPMREADER_FILEDEPENDSX (integer)
RPMREADER_FILEDEPENDSN (integer)
RPMREADER_DEPENDSDICT (integer)
RPMREADER_SOURCEPKGID (integer)
RPMREADER_FILECONTEXTS (integer)
RPMREADER_FSCONTEXTS (integer)
RPMREADER_RECONTEXTS (integer)
RPMREADER_POLICIES (integer)
RPMREADER_MAXIMUM (integer)
The maximum valid value of any RPM tag number.

资源类型
范例
RPM Reader


范例

Table of Contents

  • Basic usage
预定义常量
Basic usage
RPM Reader


Basic usage

This example will open an RPM file and read the name, version, and release from the RPM file, echo the results, and close the RPM file.

Example #1 Basic RPMReader Example

<?php

$filename = "/path/to/file.rpm";

// open file
$rpmr = rpm_open($filename);

// get "Name" tag
$name = rpm_get_tag($rpmr, RPMREADER_NAME);

// get "Version" tag
$ver = rpm_get_tag($rpmr, RPMREADER_VERSION);

// get "Release" tag
$rel = rpm_get_tag($rpmr, RPMREADER_RELEASE);

echo "$name-$ver-$rel<br>\n";

// close file
rpm_close($rpmr);

?>
范例
RPM Reader 函数
范例


RPM Reader 函数

Table of Contents

  • rpm_close — Closes an RPM file
  • rpm_get_tag — Retrieves a header tag from an RPM file
  • rpm_is_valid — Tests a filename for validity as an RPM file
  • rpm_open — Opens an RPM file
  • rpm_version — Returns a string representing the current version of the rpmreader extension
Basic usage
rpm_close
RPM Reader


Closes an RPM file

RPM Reader 函数
rpm_get_tag
RPM Reader 函数
PHP 手册

rpm_close

(PECL rpmreader >= 0.1.0)

rpm_close — Closes an RPM file

说明

bool rpm_close ( resource $rpmr )

rpm_close() will close an RPM file pointer.

参数

rpmr

A file pointer resource successfully opened by rpm_open().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 rpm_close() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

参见

  • rpm_open() - Opens an RPM file

RPM Reader 函数
rpm_get_tag
RPM Reader 函数


Retrieves a header tag from an RPM file

rpm_close
rpm_is_valid
RPM Reader 函数
PHP 手册

rpm_get_tag

(PECL rpmreader >= 0.1.0)

rpm_get_tag — Retrieves a header tag from an RPM file

说明

mixed rpm_get_tag ( resource $rpmr , int $tagnum )

rpm_get_tag() will retrieve a given tag from the RPM file's header and return it.

参数

rpmr

A file pointer resource successfully opened by rpm_open().

tagnum

The tag number to retrieve from the RPM header. This value can be specified using the list of constants defined by this module.

返回值

The return value can be of various types depending on the tagnum supplied to the function.

范例

Example #1 rpm_get_tag() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

$name = rpm_get_tag($rpmr, RPMREADER_NAME);
echo "$name<br>\n";

rpm_close($rpmr);

?>

参见

  • rpm_open() - Opens an RPM file
  • rpm_close() - Closes an RPM file

rpm_close
rpm_is_valid
RPM Reader 函数


Tests a filename for validity as an RPM file

rpm_get_tag
rpm_open
RPM Reader 函数
PHP 手册

rpm_is_valid

(PECL rpmreader >= 0.1.0)

rpm_is_valid — Tests a filename for validity as an RPM file

说明

bool rpm_is_valid ( string $filename )

rpm_is_valid() will test an RPM file for validity as an RPM file. This is not the same as rpm_open() as it only checks the file for validity but does not return a file pointer to be used by further functions.

参数

filename

The filename of the RPM file you wish to check for validity.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 rpm_is_valid() example

<?php

$file = "/path/to/file.rpm";

if (rpm_is_valid($file)) {
    echo "File is recognized as an RPM file.<br>\n";
}
else {
    echo "File is not recognized as an RPM file.<br>\n";
}

?>

rpm_get_tag
rpm_open
RPM Reader 函数


Opens an RPM file

rpm_is_valid
rpm_version
RPM Reader 函数
PHP 手册

rpm_open

(PECL rpmreader >= 0.1.0)

rpm_open — Opens an RPM file

说明

resource rpm_open ( string $filename )

rpm_open() will open an RPM file and will determine if the file is a valid RPM file.

参数

filename

The filename of the RPM file you wish to open.

返回值

If the open succeeds, then rpm_open() will return a file pointer resource to the newly opened file. On error, the function will return FALSE.

范例

Example #1 rpm_open() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

参见

  • rpm_close() - Closes an RPM file

rpm_is_valid
rpm_version
RPM Reader 函数


Returns a string representing the current version of the rpmreader extension

rpm_open
SWF
RPM Reader 函数
PHP 手册

rpm_version

(PECL rpmreader >= 0.3.0)

rpm_version — Returns a string representing the current version of the rpmreader extension

说明

string rpm_version ( void )

rpm_version() will return the current version of the rpmreader extension.

返回值

rpm_version() will return a string representing the rpmreader version currently loaded in PHP.

范例

Example #1 rpm_version() example

<?php

$rpmr_ver = rpm_version();

echo "$rpmr_ver<br />\n";

?>

rpm_open
SWF
RPM Reader 函数


Shockwave Flash

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic Usage
  • SWF 函数
    • swf_actiongeturl — Get a URL from a Shockwave Flash movie
    • swf_actiongotoframe — Play a frame and then stop
    • swf_actiongotolabel — Display a frame with the specified label
    • swf_actionnextframe — Go forward one frame
    • swf_actionplay — Start playing the flash movie from the current frame
    • swf_actionprevframe — Go backwards one frame
    • swf_actionsettarget — Set the context for actions
    • swf_actionstop — Stop playing the flash movie at the current frame
    • swf_actiontogglequality — Toggle between low and high quality
    • swf_actionwaitforframe — Skip actions if a frame has not been loaded
    • swf_addbuttonrecord — Controls location, appearance and active area of the current button
    • swf_addcolor — Set the global add color to the rgba value specified
    • swf_closefile — Close the current Shockwave Flash file
    • swf_definebitmap — Define a bitmap
    • swf_definefont — Defines a font
    • swf_defineline — Define a line
    • swf_definepoly — Define a polygon
    • swf_definerect — Define a rectangle
    • swf_definetext — Define a text string
    • swf_endbutton — End the definition of the current button
    • swf_enddoaction — End the current action
    • swf_endshape — Completes the definition of the current shape
    • swf_endsymbol — End the definition of a symbol
    • swf_fontsize — Change the font size
    • swf_fontslant — Set the font slant
    • swf_fonttracking — Set the current font tracking
    • swf_getbitmapinfo — Get information about a bitmap
    • swf_getfontinfo — Gets font information
    • swf_getframe — Get the frame number of the current frame
    • swf_labelframe — Label the current frame
    • swf_lookat — Define a viewing transformation
    • swf_modifyobject — Modify an object
    • swf_mulcolor — Sets the global multiply color to the rgba value specified
    • swf_nextid — Returns the next free object id
    • swf_oncondition — Describe a transition used to trigger an action list
    • swf_openfile — Open a new Shockwave Flash file
    • swf_ortho2 — Defines 2D orthographic mapping of user coordinates onto the current viewport
    • swf_ortho — Defines an orthographic mapping of user coordinates onto the current viewport
    • swf_perspective — Define a perspective projection transformation
    • swf_placeobject — Place an object onto the screen
    • swf_polarview — Define the viewer's position with polar coordinates
    • swf_popmatrix — Restore a previous transformation matrix
    • swf_posround — Enables or Disables the rounding of the translation when objects are placed or moved
    • swf_pushmatrix — Push the current transformation matrix back unto the stack
    • swf_removeobject — Remove an object
    • swf_rotate — Rotate the current transformation
    • swf_scale — Scale the current transformation
    • swf_setfont — Change the current font
    • swf_setframe — Switch to a specified frame
    • swf_shapearc — Draw a circular arc
    • swf_shapecurveto3 — Draw a cubic bezier curve
    • swf_shapecurveto — Draw a quadratic bezier curve between two points
    • swf_shapefillbitmapclip — Set current fill mode to clipped bitmap
    • swf_shapefillbitmaptile — Set current fill mode to tiled bitmap
    • swf_shapefilloff — Turns off filling
    • swf_shapefillsolid — Set the current fill style to the specified color
    • swf_shapelinesolid — Set the current line style
    • swf_shapelineto — Draw a line
    • swf_shapemoveto — Move the current position
    • swf_showframe — Display the current frame
    • swf_startbutton — Start the definition of a button
    • swf_startdoaction — Start a description of an action list for the current frame
    • swf_startshape — Start a complex shape
    • swf_startsymbol — Define a symbol
    • swf_textwidth — Get the width of a string
    • swf_translate — Translate the current transformations
    • swf_viewport — Select an area for future drawing
rpm_version
简介
非文本内容的MIME输出


简介

PHP offers the ability to create Shockwave Flash files via Paul Haeberli's libswf module.

Note: SWF support was added in PHP 4 RC2.
The libswf does not have support for Windows. The development of that library has been stopped, and the source is not available to port it to another systems.
For up to date SWF support take a look at the MING functions.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

SWF
安装/配置
SWF


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SWF


需求

You need the libswf library to compile PHP with support for this extension. You can download libswf at » ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.

安装/配置
安装
安装/配置


安装

Once you have libswf all you need to do is to configure --with-swf[=DIR] where DIR is a location containing the directories include and lib. The include directory has to contain the swf.h file and the lib directory has to contain the libswf.a file. If you unpack the libswf distribution the two files will be in one directory. Consequently you will have to copy the files to the proper location manually.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

MOD_COLOR (integer)
MOD_MATRIX (integer)
TYPE_PUSHBUTTON (integer)
TYPE_MENUBUTTON (integer)
BSHitTest (float)
BSDown (float)
BSOver (float)
BSUp (float)
OverDowntoIdle (integer)
IdletoOverDown (integer)
OutDowntoIdle (integer)
OutDowntoOverDown (integer)
OverDowntoOutDown (integer)
OverUptoOverDown (integer)
OverUptoIdle (integer)
IdletoOverUp (integer)
ButtonEnter (integer)
ButtonExit (integer)
MenuEnter (integer)
MenuExit (integer)
资源类型
范例
SWF


范例

Table of Contents

  • Basic Usage
预定义常量
Basic Usage
SWF


Basic Usage

Once you've successfully installed PHP with Shockwave Flash support you can then go about creating Shockwave files from PHP. You would be surprised at what you can do, take the following code:

Example #1 SWF example

<?php
swf_openfile("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2(-100, 100, -100, 100);
swf_defineline(1, -70, 0, 70, 0, .2);
swf_definerect(4, 60, -10, 70, 0, 0);
swf_definerect(5, -60, 0, -70, 10, 0);
swf_addcolor(0, 0, 0, 0);

swf_definefont(10, "Mod");
swf_fontsize(5);
swf_fontslant(10);
swf_definetext(11, "This be Flash wit PHP!", 1);

swf_pushmatrix();
swf_translate(-50, 80, 0);
swf_placeobject(11, 60);
swf_popmatrix();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix();
    swf_scale(1-($p*.9), 1, 1);
    swf_rotate(60*$p, 'z');
    swf_translate(20+20*$p, $p/1.5, 0);
    swf_rotate(270*$p,  'z');
    swf_addcolor($p, 0, $p/1.2, -$p);
    swf_placeobject(1, 50);
    swf_placeobject(4, 50);
    swf_placeobject(5, 50);
    swf_popmatrix();
    swf_showframe();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject(50);
    if (($i%4) == 0) {
        swf_showframe();
    }
}

swf_startdoaction();
swf_actionstop();
swf_enddoaction();

swf_closefile();
?>

范例
SWF 函数
范例


SWF 函数

Table of Contents

  • swf_actiongeturl — Get a URL from a Shockwave Flash movie
  • swf_actiongotoframe — Play a frame and then stop
  • swf_actiongotolabel — Display a frame with the specified label
  • swf_actionnextframe — Go forward one frame
  • swf_actionplay — Start playing the flash movie from the current frame
  • swf_actionprevframe — Go backwards one frame
  • swf_actionsettarget — Set the context for actions
  • swf_actionstop — Stop playing the flash movie at the current frame
  • swf_actiontogglequality — Toggle between low and high quality
  • swf_actionwaitforframe — Skip actions if a frame has not been loaded
  • swf_addbuttonrecord — Controls location, appearance and active area of the current button
  • swf_addcolor — Set the global add color to the rgba value specified
  • swf_closefile — Close the current Shockwave Flash file
  • swf_definebitmap — Define a bitmap
  • swf_definefont — Defines a font
  • swf_defineline — Define a line
  • swf_definepoly — Define a polygon
  • swf_definerect — Define a rectangle
  • swf_definetext — Define a text string
  • swf_endbutton — End the definition of the current button
  • swf_enddoaction — End the current action
  • swf_endshape — Completes the definition of the current shape
  • swf_endsymbol — End the definition of a symbol
  • swf_fontsize — Change the font size
  • swf_fontslant — Set the font slant
  • swf_fonttracking — Set the current font tracking
  • swf_getbitmapinfo — Get information about a bitmap
  • swf_getfontinfo — Gets font information
  • swf_getframe — Get the frame number of the current frame
  • swf_labelframe — Label the current frame
  • swf_lookat — Define a viewing transformation
  • swf_modifyobject — Modify an object
  • swf_mulcolor — Sets the global multiply color to the rgba value specified
  • swf_nextid — Returns the next free object id
  • swf_oncondition — Describe a transition used to trigger an action list
  • swf_openfile — Open a new Shockwave Flash file
  • swf_ortho2 — Defines 2D orthographic mapping of user coordinates onto the current viewport
  • swf_ortho — Defines an orthographic mapping of user coordinates onto the current viewport
  • swf_perspective — Define a perspective projection transformation
  • swf_placeobject — Place an object onto the screen
  • swf_polarview — Define the viewer's position with polar coordinates
  • swf_popmatrix — Restore a previous transformation matrix
  • swf_posround — Enables or Disables the rounding of the translation when objects are placed or moved
  • swf_pushmatrix — Push the current transformation matrix back unto the stack
  • swf_removeobject — Remove an object
  • swf_rotate — Rotate the current transformation
  • swf_scale — Scale the current transformation
  • swf_setfont — Change the current font
  • swf_setframe — Switch to a specified frame
  • swf_shapearc — Draw a circular arc
  • swf_shapecurveto3 — Draw a cubic bezier curve
  • swf_shapecurveto — Draw a quadratic bezier curve between two points
  • swf_shapefillbitmapclip — Set current fill mode to clipped bitmap
  • swf_shapefillbitmaptile — Set current fill mode to tiled bitmap
  • swf_shapefilloff — Turns off filling
  • swf_shapefillsolid — Set the current fill style to the specified color
  • swf_shapelinesolid — Set the current line style
  • swf_shapelineto — Draw a line
  • swf_shapemoveto — Move the current position
  • swf_showframe — Display the current frame
  • swf_startbutton — Start the definition of a button
  • swf_startdoaction — Start a description of an action list for the current frame
  • swf_startshape — Start a complex shape
  • swf_startsymbol — Define a symbol
  • swf_textwidth — Get the width of a string
  • swf_translate — Translate the current transformations
  • swf_viewport — Select an area for future drawing
Basic Usage
swf_actiongeturl
SWF


Get a URL from a Shockwave Flash movie

SWF 函数
swf_actiongotoframe
SWF 函数
PHP 手册

swf_actiongeturl

(PHP 4)

swf_actiongeturl — Get a URL from a Shockwave Flash movie

说明

void swf_actiongeturl ( string $url , string $target )

Gets the URL specified by the parameter url with the given target .

参数

url

The URL, as a string.

target

The target, as a string.

返回值

无返回值。

SWF 函数
swf_actiongotoframe
SWF 函数


Play a frame and then stop

swf_actiongeturl
swf_actiongotolabel
SWF 函数
PHP 手册

swf_actiongotoframe

(PHP 4)

swf_actiongotoframe — Play a frame and then stop

说明

void swf_actiongotoframe ( int $framenumber )

The swf_actiongotoframe() function will go to the frame specified by framenumber , play it, and then stop.

参数

framenumber

The frame number.

返回值

无返回值。

swf_actiongeturl
swf_actiongotolabel
SWF 函数


Display a frame with the specified label

swf_actiongotoframe
swf_actionnextframe
SWF 函数
PHP 手册

swf_actiongotolabel

(PHP 4)

swf_actiongotolabel — Display a frame with the specified label

说明

void swf_actiongotolabel ( string $label )

The swf_actiongotolabel() function displays the frame with the label given by the label parameter and then stops.

参数

label

The frame label.

返回值

无返回值。

swf_actiongotoframe
swf_actionnextframe
SWF 函数


Go forward one frame

swf_actiongotolabel
swf_actionplay
SWF 函数
PHP 手册

swf_actionnextframe

(PHP 4)

swf_actionnextframe — Go forward one frame

说明

void swf_actionnextframe ( void )

Go forward one frame.

返回值

无返回值。

参见

  • swf_actionprevframe() - Go backwards one frame

swf_actiongotolabel
swf_actionplay
SWF 函数


Start playing the flash movie from the current frame

swf_actionnextframe
swf_actionprevframe
SWF 函数
PHP 手册

swf_actionplay

(PHP 4)

swf_actionplay — Start playing the flash movie from the current frame

说明

void swf_actionplay ( void )

Start playing the flash movie from the current frame.

返回值

无返回值。

参见

  • swf_actionstop() - Stop playing the flash movie at the current frame

swf_actionnextframe
swf_actionprevframe
SWF 函数


Go backwards one frame

swf_actionplay
swf_actionsettarget
SWF 函数
PHP 手册

swf_actionprevframe

(PHP 4)

swf_actionprevframe — Go backwards one frame

说明

void swf_actionprevframe ( void )

Go backwards one frame.

返回值

无返回值。

参见

  • swf_actionnextframe() - Go forward one frame

swf_actionplay
swf_actionsettarget
SWF 函数


Set the context for actions

swf_actionprevframe
swf_actionstop
SWF 函数
PHP 手册

swf_actionsettarget

(PHP 4)

swf_actionsettarget — Set the context for actions

说明

void swf_actionsettarget ( string $target )

Sets the context for all actions. You can use this to control other flash movies that are currently playing.

参数

target

The target, as a string.

返回值

无返回值。

swf_actionprevframe
swf_actionstop
SWF 函数


Stop playing the flash movie at the current frame

swf_actionsettarget
swf_actiontogglequality
SWF 函数
PHP 手册

swf_actionstop

(PHP 4)

swf_actionstop — Stop playing the flash movie at the current frame

说明

void swf_actionstop ( void )

Stop playing the flash movie at the current frame.

返回值

无返回值。

参见

  • swf_actionplay() - Start playing the flash movie from the current frame

swf_actionsettarget
swf_actiontogglequality
SWF 函数


Toggle between low and high quality

swf_actionstop
swf_actionwaitforframe
SWF 函数
PHP 手册

swf_actiontogglequality

(PHP 4)

swf_actiontogglequality — Toggle between low and high quality

说明

void swf_actiontogglequality ( void )

Toggle the flash movie between high and low quality.

返回值

无返回值。

swf_actionstop
swf_actionwaitforframe
SWF 函数


Skip actions if a frame has not been loaded

swf_actiontogglequality
swf_addbuttonrecord
SWF 函数
PHP 手册

swf_actionwaitforframe

(PHP 4)

swf_actionwaitforframe — Skip actions if a frame has not been loaded

说明

void swf_actionwaitforframe ( int $framenumber , int $skipcount )

The swf_actionwaitforframe() function will check to see if the frame, specified by the framenumber parameter has been loaded, if not it will skip the number of actions specified by the skipcount parameter. This can be useful for "Loading..." type animations.

参数

framenumber

The frame number.

skipcount

The number of actions to skip.

返回值

无返回值。

swf_actiontogglequality
swf_addbuttonrecord
SWF 函数


Controls location, appearance and active area of the current button

swf_actionwaitforframe
swf_addcolor
SWF 函数
PHP 手册

swf_addbuttonrecord

(PHP 4)

swf_addbuttonrecord — Controls location, appearance and active area of the current button

说明

void swf_addbuttonrecord ( int $states , int $shapeid , int $depth )

Allow you to define the specifics of using a button.

参数

states

Defines what states the button can have, these can be any or all of the following constants: BSHitTest, BSDown, BSOver or BSUp.

shapeid

The second parameter, the shapeid is the look of the button, this is usually the object id of the shape of the button.

depth

This parameter is the placement of the button in the current frame.

返回值

无返回值。

范例

Example #1 swf_addbuttonrecord() example

<?php
swf_startButton($objid, TYPE_MENUBUTTON);
swf_addButtonRecord(BSDown|BSOver, $buttonImageId, 340);
swf_onCondition(MenuEnter);
swf_actionGetUrl("http://www.example.com", "_level1");
swf_onCondition(MenuExit);
swf_actionGetUrl("", "_level1");
swf_endButton();
?>

swf_actionwaitforframe
swf_addcolor
SWF 函数


Set the global add color to the rgba value specified

swf_addbuttonrecord
swf_closefile
SWF 函数
PHP 手册

swf_addcolor

(PHP 4)

swf_addcolor — Set the global add color to the rgba value specified

说明

void swf_addcolor ( float $r , float $g , float $b , float $a )

Sets the global add color to the specified color. This color is then
implicitly used by the swf_placeobject(),
swf_modifyobject() and
swf_addbuttonrecord() functions.

The color of the object will be add by the given values when the object is written to the screen.

参数

r

Red value

g

Green value

b

Blue value

a

Alpha value

These parameters can be either positive or negative.

返回值

无返回值。

swf_addbuttonrecord
swf_closefile
SWF 函数


Close the current Shockwave Flash file

swf_addcolor
swf_definebitmap
SWF 函数
PHP 手册

swf_closefile

(PHP 4)

swf_closefile — Close the current Shockwave Flash file

说明

void swf_closefile ([ int $return_file ] )

Close a file that was opened by the swf_openfile() function.

参数

return_file

If set then the contents of the SWF file are returned from the function.

返回值

无返回值。

范例

Example #1 Creating a simple flash file based on user input and outputting it and saving it in a database

<?php

// The $text variable is submitted by the
// user

// Global variables for database
// access (used in the swf_savedata() function)
$DBHOST = "localhost";
$DBUSER = "sterling";
$DBPASS = "secret";

swf_openfile("php://stdout", 256, 256, 30, 1, 1, 1);

    swf_definefont(10, "Ligon-Bold");
        swf_fontsize(12);
        swf_fontslant(10);

    swf_definetext(11, $text, 1);

    swf_pushmatrix();
        swf_translate(-50, 80, 0);
        swf_placeobject(11, 60);
    swf_popmatrix();

    swf_showframe();

    swf_startdoaction();
        swf_actionstop();
    swf_enddoaction();

$data = swf_closefile(1);

$data ?
  swf_savedata($data) :
  die("Error could not save SWF file");

// void swf_savedata(string data)
// Save the generated file a database
// for later retrieval
function swf_savedata($data)
{
    global $DBHOST,
           $DBUSER,
           $DBPASS;

    $dbh = @mysql_connect($DBHOST, $DBUSER, $DBPASS);

    if (!$dbh) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    $stmt = "INSERT INTO swf_files (file) VALUES ('$data')";

    $sth = @mysql_query($stmt, $dbh);

    if (!$sth) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    @mysql_free_result($sth);
    @mysql_close($dbh);
}
?>

参见

  • swf_openfile() - Open a new Shockwave Flash file

swf_addcolor
swf_definebitmap
SWF 函数


Define a bitmap

swf_closefile
swf_definefont
SWF 函数
PHP 手册

swf_definebitmap

(PHP 4)

swf_definebitmap — Define a bitmap

说明

void swf_definebitmap ( int $objid , string $image_name )

The swf_definebitmap() function defines a bitmap given an image.

参数

objid

An SWF object id.

image_name

A GIF, JPEG, RGB or FI image. The image will be converted into a Flash JPEG or Flash color map format.

返回值

无返回值。

swf_closefile
swf_definefont
SWF 函数


Defines a font

swf_definebitmap
swf_defineline
SWF 函数
PHP 手册

swf_definefont

(PHP 4)

swf_definefont — Defines a font

说明

void swf_definefont ( int $fontid , string $fontname )

The swf_definefont() function defines a font parameter and gives it the specified id. It then sets the font given by fontname to the current font.

参数

fontid

The id to be given to the font.

fontname

The font so be set as current font.

返回值

无返回值。

参见

  • swf_definetext() - Define a text string

swf_definebitmap
swf_defineline
SWF 函数


Define a line

swf_definefont
swf_definepoly
SWF 函数
PHP 手册

swf_defineline

(PHP 4)

swf_defineline — Define a line

说明

void swf_defineline ( int $objid , float $x1 , float $y1 , float $x2 , float $y2 , float $width )

Defines a line.

参数

objid

The object id.

x1

x-coordinate of start point.

y1

y-coordinate of start point.

x2

x-coordinate of end point.

y2

y-coordinate of end point.

width

The line width.

返回值

无返回值。

swf_definefont
swf_definepoly
SWF 函数


Define a polygon

swf_defineline
swf_definerect
SWF 函数
PHP 手册

swf_definepoly

(PHP 4)

swf_definepoly — Define a polygon

说明

void swf_definepoly ( int $objid , array $coords , int $npoints , float $width )

Defines a polygon given an array of x, y coordinates.

参数

objid

The object id.

coords

An array of x, y coordinates.

npoints

The number of overall points that are contained in the array given by coords

width

The width of the polygon's border, if set to 0.0 the polygon is filled.

返回值

无返回值。

swf_defineline
swf_definerect
SWF 函数


Define a rectangle

swf_definepoly
swf_definetext
SWF 函数
PHP 手册

swf_definerect

(PHP 4)

swf_definerect — Define a rectangle

说明

void swf_definerect ( int $objid , float $x1 , float $y1 , float $x2 , float $y2 , float $width )

Defines a rectangle with an upper left hand coordinate and a lower right hand coordinate.

参数

objid

The object id.

x1

x-coordinate of upper left point.

y1

y-coordinate of upper left point.

x2

x-coordinate of lower right point.

y2

y-coordinate of lower right point.

width

Width of the rectangles border, if the width is 0.0 then the rectangle is filled.

返回值

无返回值。

swf_definepoly
swf_definetext
SWF 函数


Define a text string

swf_definerect
swf_endbutton
SWF 函数
PHP 手册

swf_definetext

(PHP 4)

swf_definetext — Define a text string

说明

void swf_definetext ( int $objid , string $str , int $docenter )

Defines a text string using the current font and font size.

参数

objid

The object id.

str

The text, as a string.

docenter

The docenter is where the word is centered, if docenter is 1, then the word is centered in x.

返回值

无返回值。

范例

Example #1 Horizontal text example

<?php

$Xposition = 50;
$Yposition = 50;
$Zposition = 0;
$Obj_depth = 1;

$char = 'THIS IS THE TEXT';

swf_pushmatrix();

swf_definefont (swf_nextid(), "Mod");
swf_fontsize(10);

$secondid = swf_nextid();
swf_definetext($secondid, $char, 1);
swf_translate($Xposition, $Yposition, Zposition);
swf_placeobject($secondid, $Obj_depth);
swf_popmatrix();

?>

参见

  • swf_definefont() - Defines a font

swf_definerect
swf_endbutton
SWF 函数


End the definition of the current button

swf_definetext
swf_enddoaction
SWF 函数
PHP 手册

swf_endbutton

(PHP 4)

swf_endbutton — End the definition of the current button

说明

void swf_endbutton ( void )

The swf_endbutton() function ends the definition of the current button.

返回值

无返回值。

参见

  • swf_startbutton() - Start the definition of a button

swf_definetext
swf_enddoaction
SWF 函数


End the current action

swf_endbutton
swf_endshape
SWF 函数
PHP 手册

swf_enddoaction

(PHP 4)

swf_enddoaction — End the current action

说明

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

返回值

无返回值。

参见

  • swf_startdoaction() - Start a description of an action list for the current frame

swf_endbutton
swf_endshape
SWF 函数


Completes the definition of the current shape

swf_enddoaction
swf_endsymbol
SWF 函数
PHP 手册

swf_endshape

(PHP 4)

swf_endshape — Completes the definition of the current shape

说明

void swf_endshape ( void )

The swf_endshape() completes the definition of the current shape.

返回值

无返回值。

参见

  • swf_startshape() - Start a complex shape

swf_enddoaction
swf_endsymbol
SWF 函数


End the definition of a symbol

swf_endshape
swf_fontsize
SWF 函数
PHP 手册

swf_endsymbol

(PHP 4)

swf_endsymbol — End the definition of a symbol

说明

void swf_endsymbol ( void )

Ends the definition of a symbol that was started by the swf_startsymbol() function.

返回值

无返回值。

参见

  • swf_startsymbol() - Define a symbol

swf_endshape
swf_fontsize
SWF 函数


Change the font size

swf_endsymbol
swf_fontslant
SWF 函数
PHP 手册

swf_fontsize

(PHP 4)

swf_fontsize — Change the font size

说明

void swf_fontsize ( float $size )

Changes the font size to the value given by the size parameter.

参数

size

The font size, as an integer.

返回值

无返回值。

swf_endsymbol
swf_fontslant
SWF 函数


Set the font slant

swf_fontsize
swf_fonttracking
SWF 函数
PHP 手册

swf_fontslant

(PHP 4)

swf_fontslant — Set the font slant

说明

void swf_fontslant ( float $slant )

Set the current font slant to the angle indicated by the slant parameter.

参数

slant

Positive values create a forward slant, negative values create a negative slant.

返回值

无返回值。

swf_fontsize
swf_fonttracking
SWF 函数


Set the current font tracking

swf_fontslant
swf_getbitmapinfo
SWF 函数
PHP 手册

swf_fonttracking

(PHP 4)

swf_fonttracking — Set the current font tracking

说明

void swf_fonttracking ( float $tracking )

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

参数

tracking

The font tracking.

返回值

无返回值。

swf_fontslant
swf_getbitmapinfo
SWF 函数


Get information about a bitmap

swf_fonttracking
swf_getfontinfo
SWF 函数
PHP 手册

swf_getbitmapinfo

(PHP 4)

swf_getbitmapinfo — Get information about a bitmap

说明

array swf_getbitmapinfo ( int $bitmapid )

Returns information about a bitmap.

参数

bitmapid

The bitmap id.

返回值

Returns an array with the following elements:

  • "size" - The size in bytes of the bitmap.
  • "width" - The width in pixels of the bitmap.
  • "height" - The height in pixels of the bitmap.

swf_fonttracking
swf_getfontinfo
SWF 函数


Gets font information

swf_getbitmapinfo
swf_getframe
SWF 函数
PHP 手册

swf_getfontinfo

(PHP 4)

swf_getfontinfo — Gets font information

说明

array swf_getfontinfo ( void )

Gets information about the font by giving the height in pixels of a capital A and a lowercase x.

返回值

Returns an associative array with the following parameters:

  • Aheight - The height in pixels of a capital A.
  • xheight - The height in pixels of a lowercase x.

swf_getbitmapinfo
swf_getframe
SWF 函数


Get the frame number of the current frame

swf_getfontinfo
swf_labelframe
SWF 函数
PHP 手册

swf_getframe

(PHP 4)

swf_getframe — Get the frame number of the current frame

说明

int swf_getframe ( void )

The swf_getframe() function gets the number of the current frame.

返回值

Returns the current frame number, as an integer.

参见

  • swf_setframe() - Switch to a specified frame

swf_getfontinfo
swf_labelframe
SWF 函数


Label the current frame

swf_getframe
swf_lookat
SWF 函数
PHP 手册

swf_labelframe

(PHP 4)

swf_labelframe — Label the current frame

说明

void swf_labelframe ( string $name )

Labels the current frame with the given name .

参数

name

The frame label.

返回值

无返回值。

swf_getframe
swf_lookat
SWF 函数


Define a viewing transformation

swf_labelframe
swf_modifyobject
SWF 函数
PHP 手册

swf_lookat

(PHP 4)

swf_lookat — Define a viewing transformation

说明

void swf_lookat ( float $view_x , float $view_y , float $view_z , float $reference_x , float $reference_y , float $reference_z , float $twist )

Defines a viewing transformation by giving the viewing position and the coordinates of a reference point in the scene.

参数

view_x

x-coordinate for the viewing position

view_y

y-coordinate for the viewing position

view_z

z-coordinate for the viewing position

reference_x

x-coordinate for the reference point

reference_y

y-coordinate for the reference point

reference_z

z-coordinate for the reference point

twist

Controls the rotation along with viewer's z axis.

返回值

无返回值。

范例

Example #1 A simple 3D-rotation around a text

<?php

header('Content-type: application/x-shockwave-flash');

swf_openfile("php://stdout", 320, 200, 25, 1, 1, 1);

swf_ortho(-100, 100, -100, 100, -100, 100); // create 3D coordinates

swf_definefont(0, "Pix3");
swf_addcolor(0, 0, 0, 1);
swf_fontsize(10);
swf_fonttracking(0.2);

for ($i = 0; $i < 628; $i += 8) {
    $j = $i / 100;
    swf_pushmatrix();
    swf_translate(0, 0, 0);
    swf_perspective(100, 1, 0, 10);
    swf_lookat(sin($j) * 60, 50, cos($j) * 60, 0, 0, 0, 0);

    swf_definetext (1, 'HotKey@', 0);
    swf_translate(-50,0,0);

    swf_placeobject(1,10);

    swf_definetext(2, 'example.com', 0);
    swf_translate(55, 0, 0);
    swf_placeobject(2, 11);

    swf_showframe();
    swf_removeobject(10);
    swf_removeobject(11);
    swf_popmatrix();
}

swf_closefile();
?>

swf_labelframe
swf_modifyobject
SWF 函数


Modify an object

swf_lookat
swf_mulcolor
SWF 函数
PHP 手册

swf_modifyobject

(PHP 4)

swf_modifyobject — Modify an object

说明

void swf_modifyobject ( int $depth , int $how )

Updates the position and/or color of the object at the specified depth .

参数

depth

The depth, as an integer.

how

Determines what is updated. how can either be the constant MOD_MATRIX or MOD_COLOR or it can be a combination of both.

MOD_COLOR uses the current mulcolor (specified by the function swf_mulcolor()) and addcolor (specified by the function swf_addcolor()) to color the object. MOD_MATRIX uses the current matrix to position the object.

返回值

无返回值。

swf_lookat
swf_mulcolor
SWF 函数


Sets the global multiply color to the rgba value specified

swf_modifyobject
swf_nextid
SWF 函数
PHP 手册

swf_mulcolor

(PHP 4)

swf_mulcolor — Sets the global multiply color to the rgba value specified

说明

void swf_mulcolor ( float $r , float $g , float $b , float $a )

Sets the global multiply color to the given one. This color is then
implicitly used by the swf_placeobject(),
swf_modifyobject() and
swf_addbuttonrecord() functions.

The color of the object will be multiplied by the given color values when the object is written to the screen.

参数

r

Red value

g

Green value

b

Blue value

a

Alpha value

These parameters can be either positive or negative.

返回值

无返回值。

swf_modifyobject
swf_nextid
SWF 函数


Returns the next free object id

swf_mulcolor
swf_oncondition
SWF 函数
PHP 手册

swf_nextid

(PHP 4)

swf_nextid — Returns the next free object id

说明

int swf_nextid ( void )

The swf_nextid() function returns the next available object id.

返回值

Returns the id, as an integer.

swf_mulcolor
swf_oncondition
SWF 函数


Describe a transition used to trigger an action list

swf_nextid
swf_openfile
SWF 函数
PHP 手册

swf_oncondition

(PHP 4)

swf_oncondition — Describe a transition used to trigger an action list

说明

void swf_oncondition ( int $transition )

The swf_oncondition() function describes a transition that will trigger an action list.

参数

transition

There are several types of possible transitions, the following are for buttons defined as TYPE_MENUBUTTON:

  • IdletoOverUp
  • OverUptoIdle
  • OverUptoOverDown
  • OverDowntoOverUp
  • IdletoOverDown
  • OutDowntoIdle
  • MenuEnter (IdletoOverUp|IdletoOverDown)
  • MenuExit (OverUptoIdle|OverDowntoIdle)

For TYPE_PUSHBUTTON there are the following options:

  • IdletoOverUp
  • OverUptoIdle
  • OverUptoOverDown
  • OverDowntoOverUp
  • OverDowntoOutDown
  • OutDowntoOverDown
  • OutDowntoIdle
  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)
  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

返回值

无返回值。

swf_nextid
swf_openfile
SWF 函数


Open a new Shockwave Flash file

swf_oncondition
swf_ortho2
SWF 函数
PHP 手册

swf_openfile

(PHP 4)

swf_openfile — Open a new Shockwave Flash file

说明

void swf_openfile ( string $filename , float $width , float $height , float $framerate , float $r , float $g , float $b )

Opens a new file. This must be the first function you call, otherwise your script will not work.

参数

filename

The path to the SWF file. If you want to send your output to the screen, set this to php://stdout.

width

The movie width

height

The movie height

framerate

The frame rate.

r

Red value for the background.

g

Green value for the background.

b

Blue value for the background.

返回值

无返回值。

更新日志

版本 | 说明
4.0.1 | Support for php://stdout was added.

参见

  • swf_closefile() - Close the current Shockwave Flash file

swf_oncondition
swf_ortho2
SWF 函数


Defines 2D orthographic mapping of user coordinates onto the current viewport

swf_openfile
swf_ortho
SWF 函数
PHP 手册

swf_ortho2

(PHP 4)

swf_ortho2 — Defines 2D orthographic mapping of user coordinates onto the current viewport

说明

void swf_ortho2 ( float $xmin , float $xmax , float $ymin , float $ymax )

Defines a two dimensional orthographic mapping of user coordinates onto the current viewport, this defaults to one to one mapping of the area of the Flash movie.

If a perspective transformation is desired, swf_perspective() can be used.

参数

xmin

xmax

ymin

ymax

返回值

无返回值。

参见

  • swf_ortho() - Defines an orthographic mapping of user coordinates onto the current viewport

swf_openfile
swf_ortho
SWF 函数


Defines an orthographic mapping of user coordinates onto the current viewport

swf_ortho2
swf_perspective
SWF 函数
PHP 手册

swf_ortho

(PHP 4 >= 4.0.1)

swf_ortho — Defines an orthographic mapping of user coordinates onto the current viewport

说明

void swf_ortho ( float $xmin , float $xmax , float $ymin , float $ymax , float $zmin , float $zmax )

Defines an 3D orthographic mapping of user coordinates onto the current viewport.

参数

xmin

xmax

ymin

ymax

zmin

zmax

返回值

无返回值。

参见

  • swf_ortho2() - Defines 2D orthographic mapping of user coordinates onto the current viewport

swf_ortho2
swf_perspective
SWF 函数


Define a perspective projection transformation

swf_ortho
swf_placeobject
SWF 函数
PHP 手册

swf_perspective

(PHP 4)

swf_perspective — Define a perspective projection transformation

说明

void swf_perspective ( float $fovy , float $aspect , float $near , float $far )

Defines a perspective projection transformation.

Note: Various distortion artifacts may appear when performing a perspective projection, this is because Flash players only have a two dimensional matrix. Some are not to pretty.

参数

fovy

A field-of-view angle in the y direction.

aspect

The aspect ratio of the viewport that is being drawn onto.

near

The near clipping plane.

far

The far clipping plane.

返回值

无返回值。

swf_ortho
swf_placeobject
SWF 函数


Place an object onto the screen

swf_perspective
swf_polarview
SWF 函数
PHP 手册

swf_placeobject

(PHP 4)

swf_placeobject — Place an object onto the screen

说明

void swf_placeobject ( int $objid , int $depth )

Places the object in the current frame at a specified depth .

This uses the current mulcolor (specified by swf_mulcolor()) and the current addcolor (specified by swf_addcolor()) to color the object and it uses the current matrix to position the object.

参数

objid

The object id.

depth

Must be between 1 and 65535.

返回值

无返回值。

swf_perspective
swf_polarview
SWF 函数


Define the viewer's position with polar coordinates

swf_placeobject
swf_popmatrix
SWF 函数
PHP 手册

swf_polarview

(PHP 4)

swf_polarview — Define the viewer's position with polar coordinates

说明

void swf_polarview ( float $dist , float $azimuth , float $incidence , float $twist )

The swf_polarview() function defines the viewer's position in polar coordinates.

参数

dist

The distance between the viewpoint to the world space origin.

azimuth

Defines the azimuthal angle in the x,y coordinate plane, measured in distance from the y axis.

incidence

Defines the angle of incidence in the y,z plane, measured in distance from the z axis. The incidence angle is defined as the angle of the viewport relative to the z axis.

twist

Specifies the amount that the viewpoint is to be rotated about the line of sight using the right hand rule.

返回值

无返回值。

swf_placeobject
swf_popmatrix
SWF 函数


Restore a previous transformation matrix

swf_polarview
swf_posround
SWF 函数
PHP 手册

swf_popmatrix

(PHP 4)

swf_popmatrix — Restore a previous transformation matrix

说明

void swf_popmatrix ( void )

Pushes the current transformation matrix back onto the stack.

返回值

无返回值。

参见

  • swf_pushmatrix() - Push the current transformation matrix back unto the stack

swf_polarview
swf_posround
SWF 函数


Enables or Disables the rounding of the translation when objects are placed or moved

swf_popmatrix
swf_pushmatrix
SWF 函数
PHP 手册

swf_posround

(PHP 4)

swf_posround — Enables or Disables the rounding of the translation when objects are placed or moved

说明

void swf_posround ( int $round )

Enables or disables the rounding of the translation when objects are placed or moved, there are times when text becomes more readable because rounding has been enabled.

参数

round

Whether to enable rounding or not, if set to the value of 1, then rounding is enabled, if set to 0 then rounding is disabled.

返回值

无返回值。

swf_popmatrix
swf_pushmatrix
SWF 函数


Push the current transformation matrix back unto the stack

swf_posround
swf_removeobject
SWF 函数
PHP 手册

swf_pushmatrix

(PHP 4)

swf_pushmatrix — Push the current transformation matrix back unto the stack

说明

void swf_pushmatrix ( void )

Pushes the current transformation matrix back onto the stack.

返回值

无返回值。

参见

  • swf_popmatrix() - Restore a previous transformation matrix

swf_posround
swf_removeobject
SWF 函数


Remove an object

swf_pushmatrix
swf_rotate
SWF 函数
PHP 手册

swf_removeobject

(PHP 4)

swf_removeobject — Remove an object

说明

void swf_removeobject ( int $depth )

Removes the last object drawn at the depth specified by depth .

参数

depth

The depth, as an integer.

返回值

无返回值。

swf_pushmatrix
swf_rotate
SWF 函数


Rotate the current transformation

swf_removeobject
swf_scale
SWF 函数
PHP 手册

swf_rotate

(PHP 4)

swf_rotate — Rotate the current transformation

说明

void swf_rotate ( float $angle , string $axis )

Rotates the current transformation by a given angle around the given axis .

参数

angle

The rotation angle.

axis

The axis. Valid values axis are x (the x axis), y (the y axis) or z (the z axis).

返回值

无返回值。

swf_removeobject
swf_scale
SWF 函数


Scale the current transformation

swf_rotate
swf_setfont
SWF 函数
PHP 手册

swf_scale

(PHP 4)

swf_scale — Scale the current transformation

说明

void swf_scale ( float $x , float $y , float $z )

The swf_scale() scales curve coordinates by the given value.

参数

x

x scale factor.

y

y scale factor.

z

z scale factor.

返回值

无返回值。

swf_rotate
swf_setfont
SWF 函数


Change the current font

swf_scale
swf_setframe
SWF 函数
PHP 手册

swf_setfont

(PHP 4)

swf_setfont — Change the current font

说明

void swf_setfont ( int $fontid )

The swf_setfont() sets the current font to the value given by the fontid parameter.

参数

fontid

The font identifier.

返回值

无返回值。

swf_scale
swf_setframe
SWF 函数


Switch to a specified frame

swf_setfont
swf_shapearc
SWF 函数
PHP 手册

swf_setframe

(PHP 4)

swf_setframe — Switch to a specified frame

说明

void swf_setframe ( int $framenumber )

Changes the active frame to the specified on.

参数

framenumber

The frame number to be set.

返回值

无返回值。

参见

  • swf_getframe() - Get the frame number of the current frame

swf_setfont
swf_shapearc
SWF 函数


Draw a circular arc

swf_setframe
swf_shapecurveto3
SWF 函数
PHP 手册

swf_shapearc

(PHP 4)

swf_shapearc — Draw a circular arc

说明

void swf_shapearc ( float $x , float $y , float $r , float $ang1 , float $ang2 )

Draws a circular arc.

参数

x

x-coordinate of the center.

y

y-coordinate of the center.

r

The arc radius.

ang1

The start angle.

ang2

The end angle.

返回值

无返回值。

swf_setframe
swf_shapecurveto3
SWF 函数


Draw a cubic bezier curve

swf_shapearc
swf_shapecurveto
SWF 函数
PHP 手册

swf_shapecurveto3

(PHP 4)

swf_shapecurveto3 — Draw a cubic bezier curve

说明

void swf_shapecurveto3 ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Draw a cubic bezier curve using the given coordinates.

The current position is then set to the x3 ,y3 coordinate.

参数

x1

x-coordinate of the first off curve control point.

y1

y-coordinate of the first off curve control point.

x2

x-coordinate of the second off curve control point.

y2

y-coordinate of the second off curve control point.

x3

x-coordinate of the endpoint.

y3

y-coordinate of the endpoint.

返回值

无返回值。

参见

  • swf_shapecurveto() - Draw a quadratic bezier curve between two points

swf_shapearc
swf_shapecurveto
SWF 函数


Draw a quadratic bezier curve between two points

swf_shapecurveto3
swf_shapefillbitmapclip
SWF 函数
PHP 手册

swf_shapecurveto

(PHP 4)

swf_shapecurveto — Draw a quadratic bezier curve between two points

说明

void swf_shapecurveto ( float $x1 , float $y1 , float $x2 , float $y2 )

Draws a quadratic bezier curve from the current location, though the two given points.

The current position is then set to the point defined by the x2 and y2 parameters.

参数

x1

x-coordinate of the first point.

y1

y-coordinate of the first point.

x2

x-coordinate of the second point.

y2

y-coordinate of the second point.

返回值

无返回值。

参见

  • swf_shapecurveto3() - Draw a cubic bezier curve

swf_shapecurveto3
swf_shapefillbitmapclip
SWF 函数


Set current fill mode to clipped bitmap

swf_shapecurveto
swf_shapefillbitmaptile
SWF 函数
PHP 手册

swf_shapefillbitmapclip

(PHP 4)

swf_shapefillbitmapclip — Set current fill mode to clipped bitmap

说明

void swf_shapefillbitmapclip ( int $bitmapid )

Sets the fill to bitmap clipped, empty spaces will be filled by the bitmap.

参数

bitmapid

The bitmap id.

返回值

无返回值。

参见

  • swf_shapefillbitmaptile() - Set current fill mode to tiled bitmap

swf_shapecurveto
swf_shapefillbitmaptile
SWF 函数


Set current fill mode to tiled bitmap

swf_shapefillbitmapclip
swf_shapefilloff
SWF 函数
PHP 手册

swf_shapefillbitmaptile

(PHP 4)

swf_shapefillbitmaptile — Set current fill mode to tiled bitmap

说明

void swf_shapefillbitmaptile ( int $bitmapid )

Sets the fill to bitmap tile, empty spaces will be filled by the bitmap.

参数

bitmapid

The bitmap id.

返回值

无返回值。

参见

  • swf_shapefillbitmapclip() - Set current fill mode to clipped bitmap

swf_shapefillbitmapclip
swf_shapefilloff
SWF 函数


Turns off filling

swf_shapefillbitmaptile
swf_shapefillsolid
SWF 函数
PHP 手册

swf_shapefilloff

(PHP 4)

swf_shapefilloff — Turns off filling

说明

void swf_shapefilloff ( void )

Turns off filling for the current shape.

返回值

无返回值。

swf_shapefillbitmaptile
swf_shapefillsolid
SWF 函数


Set the current fill style to the specified color

swf_shapefilloff
swf_shapelinesolid
SWF 函数
PHP 手册

swf_shapefillsolid

(PHP 4)

swf_shapefillsolid — Set the current fill style to the specified color

说明

void swf_shapefillsolid ( float $r , float $g , float $b , float $a )

Sets the current fill style to solid, and then sets the fill color to the given color.

参数

r

Red value

g

Green value

b

Blue value

a

Alpha value

返回值

无返回值。

swf_shapefilloff
swf_shapelinesolid
SWF 函数


Set the current line style

swf_shapefillsolid
swf_shapelineto
SWF 函数
PHP 手册

swf_shapelinesolid

(PHP 4)

swf_shapelinesolid — Set the current line style

说明

void swf_shapelinesolid ( float $r , float $g , float $b , float $a , float $width )

Sets the current line style to the given color and width.

参数

r

Red value

g

Green value

b

Blue value

a

Alpha value

width

The line width. If 0.0 is given then no lines are drawn.

返回值

无返回值。

swf_shapefillsolid
swf_shapelineto
SWF 函数


Draw a line

swf_shapelinesolid
swf_shapemoveto
SWF 函数
PHP 手册

swf_shapelineto

(PHP 4)

swf_shapelineto — Draw a line

说明

void swf_shapelineto ( float $x , float $y )

Draws a line to the x and y coordinates. The current position is then set to that point.

参数

x

x-coordinate of the target.

y

y-coordinate of the target.

返回值

无返回值。

swf_shapelinesolid
swf_shapemoveto
SWF 函数


Move the current position

swf_shapelineto
swf_showframe
SWF 函数
PHP 手册

swf_shapemoveto

(PHP 4)

swf_shapemoveto — Move the current position

说明

void swf_shapemoveto ( float $x , float $y )

Moves the current position to the given point.

参数

x

x-coordinate of the target.

y

y-coordinate of the target.

返回值

无返回值。

swf_shapelineto
swf_showframe
SWF 函数


Display the current frame

swf_shapemoveto
swf_startbutton
SWF 函数
PHP 手册

swf_showframe

(PHP 4)

swf_showframe — Display the current frame

说明

void swf_showframe ( void )

Outputs the current frame.

返回值

无返回值。

swf_shapemoveto
swf_startbutton
SWF 函数


Start the definition of a button

swf_showframe
swf_startdoaction
SWF 函数
PHP 手册

swf_startbutton

(PHP 4)

swf_startbutton — Start the definition of a button

说明

void swf_startbutton ( int $objid , int $type )

Starts the definition of a button.

参数

objid

The object id.

type

Can either be TYPE_MENUBUTTON or TYPE_PUSHBUTTON. The TYPE_MENUBUTTON constant allows the focus to travel from the button when the mouse is down, TYPE_PUSHBUTTON does not allow the focus to travel when the mouse is down.

返回值

无返回值。

参见

  • swf_endbutton() - End the definition of the current button

swf_showframe
swf_startdoaction
SWF 函数


Start a description of an action list for the current frame

swf_startbutton
swf_startshape
SWF 函数
PHP 手册

swf_startdoaction

(PHP 4)

swf_startdoaction — Start a description of an action list for the current frame

说明

void swf_startdoaction ( void )

Starts the description of an action list for the current frame. This must be called before actions are defined for the current frame.

返回值

无返回值。

参见

  • swf_enddoaction() - End the current action

swf_startbutton
swf_startshape
SWF 函数


Start a complex shape

swf_startdoaction
swf_startsymbol
SWF 函数
PHP 手册

swf_startshape

(PHP 4)

swf_startshape — Start a complex shape

说明

void swf_startshape ( int $objid )

Starts a complex shape.

参数

objid

The object id.

返回值

无返回值。

参见

  • swf_endshape() - Completes the definition of the current shape

swf_startdoaction
swf_startsymbol
SWF 函数


Define a symbol

swf_startshape
swf_textwidth
SWF 函数
PHP 手册

swf_startsymbol

(PHP 4)

swf_startsymbol — Define a symbol

说明

void swf_startsymbol ( int $objid )

Defines an object id as a symbol. Symbols are tiny flash movies that can be played simultaneously.

参数

objid

The object id you want to define as a symbol.

返回值

无返回值。

参见

  • swf_endsymbol() - End the definition of a symbol

swf_startshape
swf_textwidth
SWF 函数


Get the width of a string

swf_startsymbol
swf_translate
SWF 函数
PHP 手册

swf_textwidth

(PHP 4)

swf_textwidth — Get the width of a string

说明

float swf_textwidth ( string $str )

Gives the width of the string in pixels, using the current font and font size.

参数

str

The string.

返回值

Returns the line width, as a float.

swf_startsymbol
swf_translate
SWF 函数


Translate the current transformations

swf_textwidth
swf_viewport
SWF 函数
PHP 手册

swf_translate

(PHP 4)

swf_translate — Translate the current transformations

说明

void swf_translate ( float $x , float $y , float $z )

Translates the current transformation by the given values.

参数

x

x value.

y

y value.

z

z value.

返回值

无返回值。

swf_textwidth
swf_viewport
SWF 函数


Select an area for future drawing

swf_translate
进程控制扩展
SWF 函数
PHP 手册

swf_viewport

(PHP 4)

swf_viewport — Select an area for future drawing

说明

void swf_viewport ( float $xmin , float $xmax , float $ymin , float $ymax )

Selects an area for future drawing for xmin to xmax and ymin to ymax , if this function is not called the area defaults to the size of the screen.

参数

xmin

xmax

ymin

ymax

返回值

无返回值。

swf_translate
进程控制扩展
SWF 函数


进程控制扩展

  • Program execution — System program execution
    • 简介
    • 安装/配置
    • 预定义常量
    • Program execution 函数
  • Expect
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Expect 函数
  • PCNTL — Process Control
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • PCNTL 函数
  • POSIX
    • 简介
    • 安装/配置
    • 预定义常量
    • POSIX 函数
  • Semaphore — Semaphore, Shared Memory and IPC
    • 简介
    • 安装/配置
    • 预定义常量
    • Semaphore 函数
  • Shared Memory
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Shared Memory 函数
swf_viewport
Program execution
函数参考


System program execution

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Program execution 函数
    • escapeshellarg — Escape a string to be used as a shell argument
    • escapeshellcmd — Escape shell metacharacters
    • exec — Execute an external program
    • passthru — Execute an external program and display raw output
    • proc_close — Close a process opened by proc_open and return the exit code of that process
    • proc_get_status — Get information about a process opened by proc_open
    • proc_nice — Change the priority of the current process
    • proc_open — Execute a command and open file pointers for input/output
    • proc_terminate — Kills a process opened by proc_open
    • shell_exec — Execute command via shell and return the complete output as a string
    • system — Execute an external program and display the output
进程控制扩展
简介
进程控制扩展


简介

Those functions provide means to execute commands on the system itself, and means to secure such commands.

Program execution
安装/配置
Program execution


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Program execution


资源类型

This extension defines a process resource, returned by proc_open().

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Program execution 函数
Program execution


Program execution 函数

注释

Warning

Open files with lock (especially open sessions) should be closed before executing a program in the background.

参见

These functions are also closely related to the backtick operator. Also, while in 安全模式 you must consider the safe_mode_exec_dir directive.

Table of Contents

  • escapeshellarg — Escape a string to be used as a shell argument
  • escapeshellcmd — Escape shell metacharacters
  • exec — Execute an external program
  • passthru — Execute an external program and display raw output
  • proc_close — Close a process opened by proc_open and return the exit code of that process
  • proc_get_status — Get information about a process opened by proc_open
  • proc_nice — Change the priority of the current process
  • proc_open — Execute a command and open file pointers for input/output
  • proc_terminate — Kills a process opened by proc_open
  • shell_exec — Execute command via shell and return the complete output as a string
  • system — Execute an external program and display the output
预定义常量
escapeshellarg
Program execution


Escape a string to be used as a shell argument

Program execution 函数
escapeshellcmd
Program execution 函数
PHP 手册

escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellarg — Escape a string to be used as a shell argument

说明

string escapeshellarg ( string $arg )

escapeshellarg() adds single quotes around a string and quotes/escapes any existing single quotes allowing you to pass a string directly to a shell function and having it be treated as a single safe argument. This function should be used to escape individual arguments to shell functions coming from user input. The shell functions include exec(), system() and the backtick operator.

参数

arg

The argument that will be escaped.

返回值

The escaped string.

范例

Example #1 escapeshellarg() example

<?php
system('ls '.escapeshellarg($dir));
?>

参见

  • escapeshellcmd() - Escape shell metacharacters
  • exec() - Execute an external program
  • popen() - 打开进程文件指针
  • system() - Execute an external program and display the output
  • backtick operator

Program execution 函数
escapeshellcmd
Program execution 函数


Escape shell metacharacters

escapeshellarg
exec
Program execution 函数
PHP 手册

escapeshellcmd

(PHP 4, PHP 5)

escapeshellcmd — Escape shell metacharacters

说明

string escapeshellcmd ( string $command )

escapeshellcmd() escapes any characters in a string that might be used to trick a shell command into executing arbitrary commands. This function should be used to make sure that any data coming from user input is escaped before this data is passed to the exec() or system() functions, or to the backtick operator.

Following characters are preceded by a backslash: #&;`|*?~<>^()[]{}$\, \x0A and \xFF. ' and " are escaped only if they are not paired. In Windows, all these characters plus % are replaced by a space instead.

参数

command

The command that will be escaped.

返回值

The escaped string.

范例

Example #1 escapeshellcmd() example

<?php
$e = escapeshellcmd($userinput);

// here we don't care if $e has spaces
system("echo $e");
$f = escapeshellcmd($filename);

// and here we do, so we use quotes
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");
?>

参见

  • escapeshellarg() - Escape a string to be used as a shell argument
  • exec() - Execute an external program
  • popen() - 打开进程文件指针
  • system() - Execute an external program and display the output
  • backtick operator

escapeshellarg
exec
Program execution 函数


Execute an external program

escapeshellcmd
passthru
Program execution 函数
PHP 手册

exec

(PHP 4, PHP 5)

exec — Execute an external program

说明

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

exec() executes the given command .

参数

command

The command that will be executed.

output

If the output argument is present, then the specified array will be filled with every line of output from the command. Trailing whitespace, such as \n, is not included in this array. Note that if the array already contains some elements, exec() will append to the end of the array. If you do not want the function to append elements, call unset() on the array before passing it to exec().

return_var

If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable.

返回值

The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.

To get the output of the executed command, be sure to set and use the output parameter.

范例

Example #1 An exec() example

<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo exec('whoami');
?>

注释

Warning

如果想允许用户输入的数据被传入本函数，则应使用 escapeshellarg() 或 escapeshellcmd() 函数来确保用户不能欺骗系统从而执行任意命令。

Note: 如果用本函数启动一个程序并希望保持在后台运行，必须确保该程序的输出被重定向到一个文件或者其它输出流去，否则 PHP 会在程序执行结束前挂起。

Note: 在打开了安全模式时，只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分。

Warning

在打开了安全模式时，命令字符串会被 escapeshellcmd() 转义。从而 echo y | echo x 就成了 echo "y | echo x"。

参见

  • system() - Execute an external program and display the output
  • passthru() - Execute an external program and display raw output
  • escapeshellcmd() - Escape shell metacharacters
  • pcntl_exec() - Executes specified program in current process space
  • backtick operator

escapeshellcmd
passthru
Program execution 函数


Execute an external program and display raw output

exec
proc_close
Program execution 函数
PHP 手册

passthru

(PHP 4, PHP 5)

passthru — Execute an external program and display raw output

说明

void passthru ( string $command [, int &$return_var ] )

The passthru() function is similar to the exec() function in that it executes a command . This function should be used in place of exec() or system() when the output from the Unix command is binary data which needs to be passed directly back to the browser. A common use for this is to execute something like the pbmplus utilities that can output an image stream directly. By setting the Content-type to image/gif and then calling a pbmplus program to output a gif, you can create PHP scripts that output images directly.

参数

command

The command that will be executed.

return_var

If the return_var argument is present, the return status of the Unix command will be placed here.

返回值

无返回值。

注释

Warning

如果想允许用户输入的数据被传入本函数，则应使用 escapeshellarg() 或 escapeshellcmd() 函数来确保用户不能欺骗系统从而执行任意命令。

Note: 如果用本函数启动一个程序并希望保持在后台运行，必须确保该程序的输出被重定向到一个文件或者其它输出流去，否则 PHP 会在程序执行结束前挂起。

Note: 在打开了安全模式时，只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分。

Warning

在打开了安全模式时，命令字符串会被 escapeshellcmd() 转义。从而 echo y | echo x 就成了 echo "y | echo x"。

参见

  • exec() - Execute an external program
  • system() - Execute an external program and display the output
  • popen() - 打开进程文件指针
  • escapeshellcmd() - Escape shell metacharacters
  • backtick operator

exec
proc_close
Program execution 函数


Close a process opened by proc_open and return the exit code of that process

passthru
proc_get_status
Program execution 函数
PHP 手册

proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close — Close a process opened by proc_open() and return the exit code of that process

说明

int proc_close ( resource $process )

proc_close() is similar to pclose() except that it only works on processes opened by proc_open(). proc_close() waits for the process to terminate, and returns its exit code. If you have open pipes to that process, you should fclose() them prior to calling this function in order to avoid a deadlock - the child process may not be able to exit while the pipes are open.

参数

process

The proc_open() resource that will be closed.

返回值

Returns the termination status of the process that was run.

passthru
proc_get_status
Program execution 函数


Get information about a process opened by proc_open

proc_close
proc_nice
Program execution 函数
PHP 手册

proc_get_status

(PHP 5)

proc_get_status — Get information about a process opened by proc_open()

说明

array proc_get_status ( resource $process )

proc_get_status() fetches data about a process opened using proc_open().

参数

process

The proc_open() resource that will be evaluated.

返回值

An array of collected information on success, and FALSE on failure. The returned array contains the following elements:

element | type | description
command | string | The command string that was passed to proc_open().
pid | int | process id
running | bool | TRUE if the process is still running, FALSE if it has terminated.
signaled | bool | TRUE if the child process has been terminated by an uncaught signal. Always set to FALSE on Windows.
stopped | bool | TRUE if the child process has been stopped by a signal. Always set to FALSE on Windows.
exitcode | int | The exit code returned by the process (which is only meaningful if running is FALSE). Only first call of this function return real value, next calls return -1.
termsig | int | The number of the signal that caused the child process to terminate its execution (only meaningful if signaled is TRUE).
stopsig | int | The number of the signal that caused the child process to stop its execution (only meaningful if stopped is TRUE).

参见

  • proc_open() - Execute a command and open file pointers for input/output

proc_close
proc_nice
Program execution 函数


Change the priority of the current process

proc_get_status
proc_open
Program execution 函数
PHP 手册

proc_nice

(PHP 5)

proc_nice — Change the priority of the current process

说明

bool proc_nice ( int $increment )

proc_nice() changes the priority of the current process by the amount specified in increment . A positive increment will lower the priority of the current process, whereas a negative increment will raise the priority.

proc_nice() is not related to proc_open() and its associated functions in any way.

参数

increment

The increment value of the priority change.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If an error occurs, like the user lacks permission to change the priority, an error of level E_WARNING is also generated.

注释

Note: Availability
proc_nice() will only exist if your system has 'nice' capabilities. 'nice' conforms to: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. This means that proc_nice() is not available on Windows.

proc_get_status
proc_open
Program execution 函数


Execute a command and open file pointers for input/output

proc_nice
proc_terminate
Program execution 函数
PHP 手册

proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open — Execute a command and open file pointers for input/output

说明

resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )

proc_open() is similar to popen() but provides a much greater degree of control over the program execution.

参数

cmd

The command to execute

descriptorspec

An indexed array where the key represents the descriptor number and the value represents how PHP will pass that descriptor to the child process. 0 is stdin, 1 is stdout, while 2 is stderr.

Each element can be:

  • An array describing the pipe to pass to the process. The first element is the descriptor type and the second element is an option for the given type. Valid types are pipe (the second element is either r to pass the read end of the pipe to the process, or w to pass the write end) and file (the second element is a filename).
  • A stream resource representing a real file descriptor (e.g. opened file, a socket, STDIN).

The file descriptor numbers are not limited to 0, 1 and 2 - you may specify any valid file descriptor number and it will be passed to the child process. This allows your script to interoperate with other scripts that run as "co-processes". In particular, this is useful for passing passphrases to programs like PGP, GPG and openssl in a more secure manner. It is also useful for reading status information provided by those programs on auxiliary file descriptors.

pipes

Will be set to an indexed array of file pointers that correspond to PHP's end of any pipes that are created.

cwd

The initial working dir for the command. This must be an absolute directory path, or NULL if you want to use the default value (the working dir of the current PHP process)

env

An array with the environment variables for the command that will be run, or NULL to use the same environment as the current PHP process

other_options

Allows you to specify additional options. Currently supported options include:

  • suppress_errors (windows only): suppresses errors generated by this function when it's set to TRUE
  • bypass_shell (windows only): bypass cmd.exe shell when set to TRUE
  • context: stream context used when opening files (created with stream_context_create())
  • binary_pipes: open pipes in binary mode, instead of using the usual stream_encoding

返回值

Returns a resource representing the process, which should be freed using proc_close() when you are finished with it. On failure returns FALSE.

更新日志

版本 | 说明
6.0.0 | Added the context and binary_pipes options to the other_options parameter.
5.2.1 | Added the bypass_shell option to the other_options parameter.
5.0.0 | Added the cwd , env and other_options parameters.

范例

Example #1 A proc_open() example

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);

$cwd = '/tmp';
$env = array('some_option' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes now looks like this:
    // 0 => writeable handle connected to child stdin
    // 1 => readable handle connected to child stdout
    // Any error output will be appended to /tmp/error-output.txt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // It is important that you close any pipes before calling
    // proc_close in order to avoid a deadlock
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}
?>

上例的输出类似于：

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
command returned 0

注释

Note: Windows compatibility: Descriptors beyond 2 (stderr) are made available to the child process as inheritable handles, but since the Windows architecture does not associate file descriptor numbers with low-level handles, the child process does not (yet) have a means of accessing those handles. Stdin, stdout and stderr work as expected.

Note: If you only need a uni-directional (one-way) process pipe, use popen() instead, as it is much easier to use.

参见

  • popen() - 打开进程文件指针
  • exec() - Execute an external program
  • system() - Execute an external program and display the output
  • passthru() - Execute an external program and display raw output
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • The backtick operator

proc_nice
proc_terminate
Program execution 函数


Kills a process opened by proc_open

proc_open
shell_exec
Program execution 函数
PHP 手册

proc_terminate

(PHP 5)

proc_terminate — Kills a process opened by proc_open

说明

bool proc_terminate ( resource $process [, int $signal=15 ] )

Signals a process (created using proc_open()) that it should terminate. proc_terminate() returns immediately and does not wait for the process to terminate.

proc_terminate() allows you terminate the process and continue with other tasks. You may poll the process (to see if it has stopped yet) by using the proc_get_status() function. However this is only possible with PHP 5.2.2 or newer, as previous versions destroyed the given process resource .

参数

process

The proc_open() resource that will be closed.

signal

This optional parameter is only useful on POSIX operating systems; you may specify a signal to send to the process using the kill(2) system call. The default is SIGTERM.

返回值

Returns the termination status of the process that was run.

参见

  • proc_open() - Execute a command and open file pointers for input/output
  • proc_close() - Close a process opened by proc_open and return the exit code of that process
  • proc_get_status() - Get information about a process opened by proc_open

proc_open
shell_exec
Program execution 函数


Execute command via shell and return the complete output as a string

proc_terminate
system
Program execution 函数
PHP 手册

shell_exec

(PHP 4, PHP 5)

shell_exec — Execute command via shell and return the complete output as a string

说明

string shell_exec ( string $cmd )

This function is identical to the backtick operator.

参数

cmd

The command that will be executed.

返回值

The output from the executed command.

范例

Example #1 A shell_exec() example

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

注释

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

参见

  • exec() - Execute an external program
  • escapeshellcmd() - Escape shell metacharacters

proc_terminate
system
Program execution 函数


Execute an external program and display the output

shell_exec
Expect
Program execution 函数
PHP 手册

system

(PHP 4, PHP 5)

system — Execute an external program and display the output

说明

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

system() is just like the C version of the function in that it executes the given command and outputs the result.

The system() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.

If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.

参数

command

The command that will be executed.

return_var

If the return_var argument is present, then the return status of the executed command will be written to this variable.

返回值

Returns the last line of the command output on success, and FALSE on failure.

范例

Example #1 system() example

<?php
echo '<pre>';

// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = system('ls', $retval);

// Printing additional info
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>

注释

Warning

如果想允许用户输入的数据被传入本函数，则应使用 escapeshellarg() 或 escapeshellcmd() 函数来确保用户不能欺骗系统从而执行任意命令。

Note: 如果用本函数启动一个程序并希望保持在后台运行，必须确保该程序的输出被重定向到一个文件或者其它输出流去，否则 PHP 会在程序执行结束前挂起。

Note: 在打开了安全模式时，只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分。

Warning

在打开了安全模式时，命令字符串会被 escapeshellcmd() 转义。从而 echo y | echo x 就成了 echo "y | echo x"。

参见

  • exec() - Execute an external program
  • passthru() - Execute an external program and display raw output
  • popen() - 打开进程文件指针
  • escapeshellcmd() - Escape shell metacharacters
  • pcntl_exec() - Executes specified program in current process space
  • backtick operator

shell_exec
Expect
Program execution 函数


Expect

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Expect Usage Examples
  • Expect 函数
    • expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen — Execute command via Bourne shell, and open the PTY stream to the process
system
简介
进程控制扩展


简介

This extension allows to interact with processes through PTY. You may consider using the expect:// wrapper with the filesystem functions which provide a simpler and more intuitive interface.

Expect
安装/配置
Expect


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Expect


需求

This module uses the functions of the » expect library. You need libexpect version >= 5.43.0.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/expect.

在 PHP 4 中本 PECL 扩展的源程序位于 PHP 源程序中的 ext/ 目录下或者在上面的 PECL 连接中。 In order to use these functions you must compile PHP with expect support by using the --with-expect[=DIR] configure option.

Windows users will enable php_expect.dll inside of php.ini in order to use these functions. 在 PHP 4 中本 DLL 位于 PHP Windows 执行包中的 extensions/ 目录下。 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

In order to configure expect extension, there are configuration options in the configuration file php.ini.

Expect 配置选项
名字 | 默认 | 可修改范围 | Changelog
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

expect.timeout integer

The timeout period for waiting for the data, when using the expect_expectl() function.

A value of "-1" disables a timeout from occurring.

Note: A value of "0" causes the expect_expectl() function to return immediately.

expect.loguser boolean

Whether expect should send any output from the spawned process to stdout. Since interactive programs typically echo their input, this usually suffices to show both sides of the conversation.

expect.logfile string

Name of the file, where the output from the spawned process will be written. If this file doesn't exist, it will be created.

Note: If this configuration is not empty, the output is written regardless of the value of expect.loguser.

安装
资源类型
安装/配置


资源类型

expect_popen() returns an open PTY stream used by expect_expectl().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

EXP_GLOB (integer)
Indicates that the pattern is a glob-style string pattern.
EXP_EXACT (integer)
Indicates that the pattern is an exact string.
EXP_REGEXP (integer)
Indicates that the pattern is a regexp-style string pattern.
EXP_EOF (integer)
Value, returned by expect_expectl(), when EOF is reached.
EXP_TIMEOUT (integer)
Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout
EXP_FULLBUFFER (integer)
Value, returned by expect_expectl() if no pattern have been matched.
资源类型
范例
Expect


范例

Table of Contents

  • Expect Usage Examples
预定义常量
Expect Usage Examples
Expect


Expect Usage Examples

Example #1 Expect Usage Example

This example connects to the remote host via SSH, and prints the remote uptime.

<?php
ini_set("expect.loguser", "Off");

$stream = fopen("expect://ssh root@remotehost uptime", "r");

$cases = array (
    array (0 => "password:", 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases)) {
    case PASSWORD:
        fwrite ($stream, "password\n");
        break;

    default:
        die ("Error was occurred while connecting to the remote host!\n");
}

while ($line = fgets($stream)) {
      print $line;
}
fclose ($stream);
?>

The following example connects to the remote host, determines whether installed OS is for 32 or 64 bit, then runs update for specific package.

Example #2 Another Expect Usage Example

<?php
ini_set("expect.timeout", -1);
ini_set("expect.loguser", "Off");

$stream = expect_popen("ssh root@remotehost");

while (true) {
    switch (expect_expectl ($stream, array (
            array ("password:", PASSWORD), // SSH is asking for password
            array ("yes/no)?", YESNO), // SSH is asking whether to store the host entry
            array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
    ))) {
        case PASSWORD:
            fwrite ($stream, "secret\n");
            break;

        case YESNO:
            fwrite ($stream, "yes\n");
            break;

        case SHELL:
            fwrite ($stream, "uname -a\n");
            while (true) {
                    switch (expect_expectl ($stream, array (
                            array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
                            array ("^Linux.*$", UNAME, EXP_REGEXP), // uname -a output
                    ), $match)) {
                        case UNAME:
                            $uname .= $match[0];
                            break;

                        case SHELL:
                            // Run update:
                            if (strstr ($uname, "x86_64")) {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
                            } else {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
                            }
                            fwrite ($stream, "exit\n");
                            break 2;

                        case EXP_TIMEOUT:
                        case EXP_EOF:
                            break 2;

                        default:
                            die ("Error has occurred!\n");
                    }
            }
            break 2;

        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2;

        default:
            die ("Error has occurred!\n");
    }
}

fclose ($stream);
?>
范例
Expect 函数
范例


Expect 函数

Table of Contents

  • expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
  • expect_popen — Execute command via Bourne shell, and open the PTY stream to the process
Expect Usage Examples
expect_expectl
Expect


Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

Expect 函数
expect_popen
Expect 函数
PHP 手册

expect_expectl

(PECL expect >= 0.1.0)

expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

说明

int expect_expectl ( resource $expect , array $cases [, array &$match ] )

Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen.

If match is provided, then it is filled with the result of search. The matched string can be found in match[0] . The match substrings (according to the parentheses) in the original pattern can be found in match[1] , match[2] , and so on, up to match[9] (the limitation of libexpect).

参数

expect

An Expect stream, previously opened with expect_popen().

cases

An array of expect cases. Each expect case is an indexed array, as described in the following table:

Expect Case Array
Index Key | Value Type | Description | Is Mandatory | Default Value
0 | string | pattern, that will be matched against the output from the stream | yes
1 | mixed | value, that will be returned by this function, if the pattern matches | yes
2 | integer | pattern type, one of: EXP_GLOB, EXP_EXACT or EXP_REGEXP | no | EXP_GLOB

返回值

Returns value associated with the pattern that was matched.

On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER

更新日志

版本 | 说明
0.2.1 | Prior to version 0.2.1, in match parameter a match string was returned, not an array of match substrings.

范例

Example #1 expect_expectl() example

<?php
// Copies file from remote host:
ini_set ("expect.timeout", 30);

$stream = fopen ("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array (
  array (0 => "password:", 1 => PASSWORD),
  array (0 => "yes/no)?", 1 => YESNO)
);

while (true) {
 switch (expect_expectl ($stream, $cases))
 {
  case PASSWORD:
   fwrite ($stream, "password\n");
   break;

  case YESNO:
   fwrite ($stream, "yes\n");
   break;

  case EXP_TIMEOUT:
  case EXP_EOF:
   break 2;

  default:
   die ("Error has occurred!\n");
 }
}

fclose ($stream);
?>

参见

  • expect_popen() - Execute command via Bourne shell, and open the PTY stream to the process

Expect 函数
expect_popen
Expect 函数


Execute command via Bourne shell, and open the PTY stream to the process

expect_expectl
PCNTL
Expect 函数
PHP 手册

expect_popen

(PECL expect >= 0.1.0)

expect_popen — Execute command via Bourne shell, and open the PTY stream to the process

说明

resource expect_popen ( string $command )

Execute command via Bourne shell, and open the PTY stream to the process.

参数

command

Command to execute.

返回值

Returns an open PTY stream to the process'es stdio, stdout and stderr.

On failure this function returns FALSE.

范例

Example #1 expect_popen() example

<?php
// Login to the PHP.net CVS repository:
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

参见

  • popen() - 打开进程文件指针

expect_expectl
PCNTL
Expect 函数


Process Control

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Process Control Example
  • PCNTL 函数
    • pcntl_alarm — Set an alarm clock for delivery of a signal
    • pcntl_exec — Executes specified program in current process space
    • pcntl_fork — Forks the currently running process
    • pcntl_getpriority — Get the priority of any process
    • pcntl_setpriority — Change the priority of any process
    • pcntl_signal_dispatch — Calls signal handlers for pending signals
    • pcntl_signal — Installs a signal handler
    • pcntl_sigprocmask — Sets and retrieves blocked signals
    • pcntl_sigtimedwait — Waits for signals, with a timeout
    • pcntl_sigwaitinfo — Waits for signals
    • pcntl_wait — Waits on or returns the status of a forked child
    • pcntl_waitpid — Waits on or returns the status of a forked child
    • pcntl_wexitstatus — Returns the return code of a terminated child
    • pcntl_wifexited — Checks if status code represents a normal exit
    • pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal
    • pcntl_wifstopped — Checks whether the child process is currently stopped
    • pcntl_wstopsig — Returns the signal which caused the child to stop
    • pcntl_wtermsig — Returns the signal which caused the child to terminate
expect_popen
简介
进程控制扩展


简介

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Note: 本扩展模块在 Windows 平台下不可用。

PCNTL
安装/配置
PCNTL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PCNTL


安装

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Note: Currently, this module will not function on non-Unix platforms (Windows).

需求
运行时配置
安装/配置


预定义常量

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)
WUNTRACED (integer)
SIG_IGN (integer)
SIG_DFL (integer)
SIG_ERR (integer)
SIGHUP (integer)
SIGINT (integer)
SIGQUIT (integer)
SIGILL (integer)
SIGTRAP (integer)
SIGABRT (integer)
SIGIOT (integer)
SIGBUS (integer)
SIGFPE (integer)
SIGKILL (integer)
SIGUSR1 (integer)
SIGSEGV (integer)
SIGUSR2 (integer)
SIGPIPE (integer)
SIGALRM (integer)
SIGTERM (integer)
SIGSTKFLT (integer)
SIGCLD (integer)
SIGCHLD (integer)
SIGCONT (integer)
SIGSTOP (integer)
SIGTSTP (integer)
SIGTTIN (integer)
SIGTTOU (integer)
SIGURG (integer)
SIGXCPU (integer)
SIGXFSZ (integer)
SIGVTALRM (integer)
SIGPROF (integer)
SIGWINCH (integer)
SIGPOLL (integer)
SIGIO (integer)
SIGPWR (integer)
SIGSYS (integer)
SIGBABY (integer)
SIG_BLOCK (integer)
Available since PHP 5.3.0.
SIG_UNBLOCK (integer)
Available since PHP 5.3.0.
SIG_SETMASK (integer)
Available since PHP 5.3.0.
SI_USER (integer)
Available since PHP 5.3.0.
SI_NOINFO (integer)
Available since PHP 5.3.0.
SI_KERNEL (integer)
Available since PHP 5.3.0.
SI_QUEUE (integer)
Available since PHP 5.3.0.
SI_TIMER (integer)
Available since PHP 5.3.0.
SI_MSGGQ (integer)
Available since PHP 5.3.0.
SI_ASYNCIO (integer)
Available since PHP 5.3.0.
SI_SIGIO (integer)
Available since PHP 5.3.0.
SI_TKILL (integer)
Available since PHP 5.3.0.
CLD_EXITED (integer)
Available since PHP 5.3.0.
CLD_KILLED (integer)
Available since PHP 5.3.0.
CLD_DUMPED (integer)
Available since PHP 5.3.0.
CLD_TRAPPED (integer)
Available since PHP 5.3.0.
CLD_STOPPED (integer)
Available since PHP 5.3.0.
CLD_CONTINUED (integer)
Available since PHP 5.3.0.
TRAP_BRKPT (integer)
Available since PHP 5.3.0.
TRAP_TRACE (integer)
Available since PHP 5.3.0.
POLL_IN (integer)
Available since PHP 5.3.0.
POLL_OUT (integer)
Available since PHP 5.3.0.
POLL_MSG (integer)
Available since PHP 5.3.0.
POLL_ERR (integer)
Available since PHP 5.3.0.
POLL_PRI (integer)
Available since PHP 5.3.0.
POLL_HUP (integer)
Available since PHP 5.3.0.
ILL_ILLOPC (integer)
Available since PHP 5.3.0.
ILL_ILLOPN (integer)
Available since PHP 5.3.0.
ILL_ILLADR (integer)
Available since PHP 5.3.0.
ILL_ILLTRP (integer)
Available since PHP 5.3.0.
ILL_PRVOPC (integer)
Available since PHP 5.3.0.
ILL_PRVREG (integer)
Available since PHP 5.3.0.
ILL_COPROC (integer)
Available since PHP 5.3.0.
ILL_BADSTK (integer)
Available since PHP 5.3.0.
FPE_INTDIV (integer)
Available since PHP 5.3.0.
FPE_INTOVF (integer)
Available since PHP 5.3.0.
FPE_FLTDIV (integer)
Available since PHP 5.3.0.
FPE_FLTOVF (integer)
Available since PHP 5.3.0.
FPE_FLTUND (integer)
Available since PHP 5.3.0.
FPE_FLTRES (integer)
Available since PHP 5.3.0.
FPE_FLTINV (integer)
Available since PHP 5.3.0.
FPE_FLTSUB (integer)
Available since PHP 5.3.0.
SEGV_MAPERR (integer)
Available since PHP 5.3.0.
SEGV_ACCERR (integer)
Available since PHP 5.3.0.
BUS_ADRALN (integer)
Available since PHP 5.3.0.
BUS_ADRERR (integer)
Available since PHP 5.3.0.
BUS_OBJERR (integer)
Available since PHP 5.3.0.
资源类型
范例
PCNTL


范例

Table of Contents

  • Process Control Example
预定义常量
Process Control Example
PCNTL


Process Control Example

范例
PCNTL 函数
范例
PHP 手册

This example forks off a daemon process with a signal handler.

Example #1 Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (posix_setsid() == -1) {
    die("could not detach from terminal");
}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>
范例
PCNTL 函数
范例


PCNTL 函数

参见

A look at the section about POSIX functions may be useful.

Table of Contents

  • pcntl_alarm — Set an alarm clock for delivery of a signal
  • pcntl_exec — Executes specified program in current process space
  • pcntl_fork — Forks the currently running process
  • pcntl_getpriority — Get the priority of any process
  • pcntl_setpriority — Change the priority of any process
  • pcntl_signal_dispatch — Calls signal handlers for pending signals
  • pcntl_signal — Installs a signal handler
  • pcntl_sigprocmask — Sets and retrieves blocked signals
  • pcntl_sigtimedwait — Waits for signals, with a timeout
  • pcntl_sigwaitinfo — Waits for signals
  • pcntl_wait — Waits on or returns the status of a forked child
  • pcntl_waitpid — Waits on or returns the status of a forked child
  • pcntl_wexitstatus — Returns the return code of a terminated child
  • pcntl_wifexited — Checks if status code represents a normal exit
  • pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal
  • pcntl_wifstopped — Checks whether the child process is currently stopped
  • pcntl_wstopsig — Returns the signal which caused the child to stop
  • pcntl_wtermsig — Returns the signal which caused the child to terminate
Process Control Example
pcntl_alarm
PCNTL


Set an alarm clock for delivery of a signal

PCNTL 函数
pcntl_exec
PCNTL 函数
PHP 手册

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm — Set an alarm clock for delivery of a signal

说明

int pcntl_alarm ( int $seconds )

Creates a timer that will send a SIGALRM signal to the process after the given number of seconds. Any call to pcntl_alarm() will cancel any previously set alarm.

参数

seconds

The number of seconds to wait. If seconds is zero, no new alarm is created.

返回值

Returns the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.

PCNTL 函数
pcntl_exec
PCNTL 函数


Executes specified program in current process space

pcntl_alarm
pcntl_fork
PCNTL 函数
PHP 手册

pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_exec — Executes specified program in current process space

说明

void pcntl_exec ( string $path [, array $args [, array $envs ]] )

Executes the program with the given arguments.

参数

path

path must be the path to a binary executable or a script with a valid path pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as the first line. See your system's man execve(2) page for additional information.

args

args is an array of argument strings passed to the program.

envs

envs is an array of strings which are passed as environment to the program. The array is in the format of name => value, the key being the name of the environmental variable and the value being the value of that variable.

返回值

Returns FALSE on error and does not return on success.

pcntl_alarm
pcntl_fork
PCNTL 函数


Forks the currently running process

pcntl_exec
pcntl_getpriority
PCNTL 函数
PHP 手册

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_fork — Forks the currently running process

说明

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

返回值

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

范例

Example #1 pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
     pcntl_wait($status); //Protect against Zombie children
} else {
     // we are the child
}

?>

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler

pcntl_exec
pcntl_getpriority
PCNTL 函数


Get the priority of any process

pcntl_fork
pcntl_setpriority
PCNTL 函数
PHP 手册

pcntl_getpriority

(PHP 5)

pcntl_getpriority — Get the priority of any process

说明

int pcntl_getpriority ([ int $pid=getmypid() [, int $process_identifier=PRIO_PROCESS ]] )

pcntl_getpriority() gets the priority of pid . Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

参数

pid

If not specified, the pid of the current process is used.

process_identifier

One of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

返回值

pcntl_getpriority() returns the priority of the process or FALSE on error. A lower numerical value causes more favorable scheduling.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

参见

  • pcntl_setpriority() - Change the priority of any process

pcntl_fork
pcntl_setpriority
PCNTL 函数


Change the priority of any process

pcntl_getpriority
pcntl_signal_dispatch
PCNTL 函数
PHP 手册

pcntl_setpriority

(PHP 5)

pcntl_setpriority — Change the priority of any process

说明

bool pcntl_setpriority ( int $priority [, int $pid=getmypid() [, int $process_identifier=PRIO_PROCESS ]] )

pcntl_setpriority() sets the priority of pid .

参数

priority

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

pid

If not specified, the pid of the current process is used.

process_identifier

One of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • pcntl_getpriority() - Get the priority of any process

pcntl_getpriority
pcntl_signal_dispatch
PCNTL 函数


Calls signal handlers for pending signals

pcntl_setpriority
pcntl_signal
PCNTL 函数
PHP 手册

pcntl_signal_dispatch

(PHP 5 >= 5.3.0)

pcntl_signal_dispatch — Calls signal handlers for pending signals

说明

bool pcntl_signal_dispatch ( void )

The pcntl_signal_dispatch() function calls the signal handlers installed by pcntl_signal() for each pending signal.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pcntl_signal_dispatch() example

<?php
echo "Installing signal handler...\n";
pcntl_signal(SIGHUP,  function($signo) {
     echo "signal handler called\n";
});

echo "Generating signal SIGHUP to self...\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Dispatching...\n";
pcntl_signal_dispatch();

echo "Done\n";

?>

上例的输出类似于：

Installing signal handler...
Generating signal SIGHUP to self...
Dispatching...
signal handler called
Done

参见

  • pcntl_signal() - Installs a signal handler
  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout

pcntl_setpriority
pcntl_signal
PCNTL 函数


Installs a signal handler

pcntl_signal_dispatch
pcntl_sigprocmask
PCNTL 函数
PHP 手册

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signal — Installs a signal handler

说明

bool pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls=true ] )

The pcntl_signal() function installs a new signal handler for the signal indicated by signo .

参数

signo

The signal number.

handler

The signal handler which may be the name of a user created function, or method, or either of the two global constants SIG_IGN or SIG_DFL.

Note: Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

restart_syscalls

Specifies whether system call restarting should be used when this signal arrives and defaults to TRUE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
4.3.0 | The restart_syscalls parameter was added.
4.3.0 | The ability to use an object method as a callback became available.
4.3.0 | As of PHP 4.3.0 PCNTL uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You must use the declare() statement to specify the locations in your program where callbacks are allowed to occur for the signal handler to function properly (as used in the above example).

范例

Example #1 pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);

// signal handler function
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             echo "Caught SIGUSR1...\n";
             break;
         default:
             // handle all other signals
     }

}

echo "Installing signal handler...\n";

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo"Generating signal SIGTERM to self...\n";

// send SIGUSR1 to current process id
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n"

?>

参见

  • pcntl_fork() - Forks the currently running process
  • pcntl_waitpid() - Waits on or returns the status of a forked child

pcntl_signal_dispatch
pcntl_sigprocmask
PCNTL 函数


Sets and retrieves blocked signals

pcntl_signal
pcntl_sigtimedwait
PCNTL 函数
PHP 手册

pcntl_sigprocmask

(PHP 5 >= 5.3.0)

pcntl_sigprocmask — Sets and retrieves blocked signals

说明

bool pcntl_sigprocmask ( int $how , array $set [, array &$oldset ] )

The pcntl_sigprocmask() function adds, removes or sets blocked signals, depending on the how parameter.

参数

how

Sets the behavior of pcntl_sigprocmask(). Possible values:

  • SIG_BLOCK: Add the signals to the currently blocked signals.
  • SIG_UNBLOCK: Remove the signals from the currently blocked signals.
  • SIG_SETMASK: Replace the currently blocked signals by the given list of signals.

set

List of signals.

oldset

The oldset parameter is set to an array containing the list of the previously blocked signals.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 pcntl_sigprocmask() example

<?php
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

参见

  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout

pcntl_signal
pcntl_sigtimedwait
PCNTL 函数


Waits for signals, with a timeout

pcntl_sigprocmask
pcntl_sigwaitinfo
PCNTL 函数
PHP 手册

pcntl_sigtimedwait

(PHP 5 >= 5.3.0)

pcntl_sigtimedwait — Waits for signals, with a timeout

说明

int pcntl_sigtimedwait ( array $set [, array &$siginfo [, int $seconds=0 [, int $nanoseconds=0 ]]] )

The pcntl_sigtimedwait() function operates in exactly the same way as pcntl_sigwaitinfo() except that it takes two additional parameters, seconds and nanoseconds , which enable an upper bound to be placed on the time for which the script is suspended.

参数

set

Array of signals to wait for.

siginfo

The siginfo is set to an array containing informations about the signal. See pcntl_sigwaitinfo().

seconds

Timeout in seconds.

nanoseconds

Timeout in nanoseconds.

返回值

On success, pcntl_sigtimedwait() returns a signal number.

参见

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals

pcntl_sigprocmask
pcntl_sigwaitinfo
PCNTL 函数


Waits for signals

pcntl_sigtimedwait
pcntl_wait
PCNTL 函数
PHP 手册

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0)

pcntl_sigwaitinfo — Waits for signals

说明

int pcntl_sigwaitinfo ( array $set [, array &$siginfo ] )

The pcntl_sigwaitinfo() function suspends execution of the calling script until one of the signals given in set are delivered. If one of the signal is already pending (e.g. blocked by pcntl_sigprocmask()), pcntl_sigwaitinfo() will return immediately.

参数

set

Array of signals to wait for.

siginfo

The siginfo parameter is set to an array containing informations about the signal.

The following elements are set for all signals:

  • signo: Signal number
  • errno: An error number
  • code: Signal code

The following elements may be set for the SIGCHLD signal:

  • status: Exit value or signal
  • utime: User time consumed
  • stime: System time consumed
  • pid: Sending process ID
  • uid: Real user ID of sending process

The following elements may be set for the SIGILL, SIGFPE, SIGSEGV and SIGBUS signals:

  • addr: Memory location which caused fault

The following element may be set for the SIGPOLL signal:

  • band: Band event
  • fd: File descriptor number

返回值

On success, pcntl_sigwaitinfo() returns a signal number.

范例

Example #1 pcntl_sigwaitinfo() example

<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

参见

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout

pcntl_sigtimedwait
pcntl_wait
PCNTL 函数


Waits on or returns the status of a forked child

pcntl_sigwaitinfo
pcntl_waitpid
PCNTL 函数
PHP 手册

pcntl_wait

(PHP 5)

pcntl_wait — Waits on or returns the status of a forked child

说明

int pcntl_wait ( int &$status [, int $options=0 ] )

The wait function suspends execution of the current process until a child has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's wait(2) man page for specific details as to how wait works on your system.

Note: This function is equivalent to calling pcntl_waitpid() with a -1 pid and no options .

参数

status

      pcntl_wait() will store status information
      in the status
parameter which can be
      evaluated using the following functions:
      pcntl_wifexited(),
      pcntl_wifstopped(),
      pcntl_wifsignaled(),
      pcntl_wexitstatus(),
      pcntl_wtermsig() and
      pcntl_wstopsig().

options

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for options will have no effect. The value of options is the value of zero or more of the following two constants OR'ed together:

Possible values for options
WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

返回值

pcntl_wait() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

参见

  • pcntl_fork() - Forks the currently running process
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifexited() - Checks if status code represents a normal exit
  • pcntl_wifstopped() - Checks whether the child process is currently stopped
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal
  • pcntl_wexitstatus() - Returns the return code of a terminated child
  • pcntl_wtermsig() - Returns the signal which caused the child to terminate
  • pcntl_wstopsig() - Returns the signal which caused the child to stop
  • pcntl_waitpid() - Waits on or returns the status of a forked child

pcntl_sigwaitinfo
pcntl_waitpid
PCNTL 函数


Waits on or returns the status of a forked child

pcntl_wait
pcntl_wexitstatus
PCNTL 函数
PHP 手册

pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpid — Waits on or returns the status of a forked child

说明

int pcntl_waitpid ( int $pid , int &$status [, int $options=0 ] )

Suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function.

If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

参数

pid

The value of pid can be one of the following:

possible values for pid
< -1 | wait for any child process whose process group ID is equal to the absolute value of pid .
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid .

Note: Specifying -1 as the pid is equivalent to the functionality pcntl_wait() provides (minus options ).

status

      pcntl_waitpid() will store status information
      in the status
parameter which can be
      evaluated using the following functions:
      pcntl_wifexited(),
      pcntl_wifstopped(),
      pcntl_wifsignaled(),
      pcntl_wexitstatus(),
      pcntl_wtermsig() and
      pcntl_wstopsig().

options

The value of options is the value of zero or more of the following two global constants OR'ed together:

possible values for options
WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

返回值

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

参见

  • pcntl_fork() - Forks the currently running process
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifexited() - Checks if status code represents a normal exit
  • pcntl_wifstopped() - Checks whether the child process is currently stopped
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal
  • pcntl_wexitstatus() - Returns the return code of a terminated child
  • pcntl_wtermsig() - Returns the signal which caused the child to terminate
  • pcntl_wstopsig() - Returns the signal which caused the child to stop

pcntl_wait
pcntl_wexitstatus
PCNTL 函数


Returns the return code of a terminated child

pcntl_waitpid
pcntl_wifexited
PCNTL 函数
PHP 手册

pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatus — Returns the return code of a terminated child

说明

int pcntl_wexitstatus ( int $status )

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

参数

status

status 参数是提供给成功调用的 pcntl_waitpid() 函数的状态参数。

返回值

Returns the return code, as an integer.

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wifexited() - Checks if status code represents a normal exit

pcntl_waitpid
pcntl_wifexited
PCNTL 函数


Checks if status code represents a normal exit

pcntl_wexitstatus
pcntl_wifsignaled
PCNTL 函数
PHP 手册

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexited — Checks if status code represents a normal exit

说明

bool pcntl_wifexited ( int $status )

Checks whether the child status code represents a normal exit.

参数

status

status 参数是提供给成功调用的 pcntl_waitpid() 函数的状态参数。

返回值

Returns TRUE if the child status code represents a normal exit, FALSE otherwise.

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wexitstatus() - Returns the return code of a terminated child

pcntl_wexitstatus
pcntl_wifsignaled
PCNTL 函数


Checks whether the status code represents a termination due to a signal

pcntl_wifexited
pcntl_wifstopped
PCNTL 函数
PHP 手册

pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal

说明

bool pcntl_wifsignaled ( int $status )

Checks whether the child process exited because of a signal which was not caught.

参数

status

status 参数是提供给成功调用的 pcntl_waitpid() 函数的状态参数。

返回值

Returns TRUE if the child process exited because of a signal which was not caught, FALSE otherwise.

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler

pcntl_wifexited
pcntl_wifstopped
PCNTL 函数


Checks whether the child process is currently stopped

pcntl_wifsignaled
pcntl_wstopsig
PCNTL 函数
PHP 手册

pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstopped — Checks whether the child process is currently stopped

说明

bool pcntl_wifstopped ( int $status )

Checks whether the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

参数

status

status 参数是提供给成功调用的 pcntl_waitpid() 函数的状态参数。

返回值

Returns TRUE if the child process which caused the return is currently stopped, FALSE otherwise.

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child

pcntl_wifsignaled
pcntl_wstopsig
PCNTL 函数


Returns the signal which caused the child to stop

pcntl_wifstopped
pcntl_wtermsig
PCNTL 函数
PHP 手册

pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsig — Returns the signal which caused the child to stop

说明

int pcntl_wstopsig ( int $status )

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

参数

status

status 参数是提供给成功调用的 pcntl_waitpid() 函数的状态参数。

返回值

Returns the signal number.

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wifstopped() - Checks whether the child process is currently stopped

pcntl_wifstopped
pcntl_wtermsig
PCNTL 函数


Returns the signal which caused the child to terminate

pcntl_wstopsig
POSIX
PCNTL 函数
PHP 手册

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsig — Returns the signal which caused the child to terminate

说明

int pcntl_wtermsig ( int $status )

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

参数

status

status 参数是提供给成功调用的 pcntl_waitpid() 函数的状态参数。

返回值

Returns the signal number, as an integer.

参见

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal

pcntl_wstopsig
POSIX
PCNTL 函数


POSIX

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • POSIX 函数
    • posix_access — Determine accessibility of a file
    • posix_ctermid — Get path name of controlling terminal
    • posix_get_last_error — Retrieve the error number set by the last posix function that failed
    • posix_getcwd — Pathname of current directory
    • posix_getegid — Return the effective group ID of the current process
    • posix_geteuid — Return the effective user ID of the current process
    • posix_getgid — Return the real group ID of the current process
    • posix_getgrgid — Return info about a group by group id
    • posix_getgrnam — Return info about a group by name
    • posix_getgroups — Return the group set of the current process
    • posix_getlogin — Return login name
    • posix_getpgid — Get process group id for job control
    • posix_getpgrp — Return the current process group identifier
    • posix_getpid — Return the current process identifier
    • posix_getppid — Return the parent process identifier
    • posix_getpwnam — Return info about a user by username
    • posix_getpwuid — Return info about a user by user id
    • posix_getrlimit — Return info about system resource limits
    • posix_getsid — Get the current sid of the process
    • posix_getuid — Return the real user ID of the current process
    • posix_initgroups — Calculate the group access list
    • posix_isatty — Determine if a file descriptor is an interactive terminal
    • posix_kill — Send a signal to a process
    • posix_mkfifo — Create a fifo special file (a named pipe)
    • posix_mknod — Create a special or ordinary file (POSIX.1)
    • posix_setegid — Set the effective GID of the current process
    • posix_seteuid — Set the effective UID of the current process
    • posix_setgid — Set the GID of the current process
    • posix_setpgid — Set process group id for job control
    • posix_setsid — Make the current process a session leader
    • posix_setuid — Set the UID of the current process
    • posix_strerror — Retrieve the system error message associated with the given errno
    • posix_times — Get process times
    • posix_ttyname — Determine terminal device name
    • posix_uname — Get system name
pcntl_wtermsig
简介
进程控制扩展


简介

This module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means.

Warning

Sensitive data can be retrieved with the POSIX functions, e.g. posix_getpwnam() and friends. None of the POSIX function perform any kind of access checking when safe mode is enabled. It's therefore strongly advised to disable the POSIX extension at all (use --disable-posix in your configure line) if you're operating in such an environment.

Note: 本扩展模块在 Windows 平台下不可用。

POSIX
安装/配置
POSIX


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
POSIX


安装

POSIX functions are enabled by default. You can disable POSIX-like functions with --disable-posix.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

POSIX_F_OK (integer)
Check whether the file exists.
POSIX_R_OK (integer)
Check whether the file exists and has read permissions.
POSIX_W_OK (integer)
Check whether the file exists and has write permissions.
POSIX_X_OK (integer)
Check whether the file exists and has execute permissions.
POSIX_S_IFBLK (integer)
Block special file
POSIX_S_IFCHR (integer)
Character special file
POSIX_S_IFIFO (integer)
FIFO (named pipe) special file
POSIX_S_IFREG (integer)
Normal file
POSIX_S_IFSOCK (integer)
Socket

Note: These constants are available since PHP 5.1.0. Please also note that some of them may not be available in your system.

资源类型
POSIX 函数
POSIX


POSIX 函数

参见

The section about Process Control Functions maybe of interest for you.

Table of Contents

  • posix_access — Determine accessibility of a file
  • posix_ctermid — Get path name of controlling terminal
  • posix_get_last_error — Retrieve the error number set by the last posix function that failed
  • posix_getcwd — Pathname of current directory
  • posix_getegid — Return the effective group ID of the current process
  • posix_geteuid — Return the effective user ID of the current process
  • posix_getgid — Return the real group ID of the current process
  • posix_getgrgid — Return info about a group by group id
  • posix_getgrnam — Return info about a group by name
  • posix_getgroups — Return the group set of the current process
  • posix_getlogin — Return login name
  • posix_getpgid — Get process group id for job control
  • posix_getpgrp — Return the current process group identifier
  • posix_getpid — Return the current process identifier
  • posix_getppid — Return the parent process identifier
  • posix_getpwnam — Return info about a user by username
  • posix_getpwuid — Return info about a user by user id
  • posix_getrlimit — Return info about system resource limits
  • posix_getsid — Get the current sid of the process
  • posix_getuid — Return the real user ID of the current process
  • posix_initgroups — Calculate the group access list
  • posix_isatty — Determine if a file descriptor is an interactive terminal
  • posix_kill — Send a signal to a process
  • posix_mkfifo — Create a fifo special file (a named pipe)
  • posix_mknod — Create a special or ordinary file (POSIX.1)
  • posix_setegid — Set the effective GID of the current process
  • posix_seteuid — Set the effective UID of the current process
  • posix_setgid — Set the GID of the current process
  • posix_setpgid — Set process group id for job control
  • posix_setsid — Make the current process a session leader
  • posix_setuid — Set the UID of the current process
  • posix_strerror — Retrieve the system error message associated with the given errno
  • posix_times — Get process times
  • posix_ttyname — Determine terminal device name
  • posix_uname — Get system name
预定义常量
posix_access
POSIX


Determine accessibility of a file

POSIX 函数
posix_ctermid
POSIX 函数
PHP 手册

posix_access

(PHP 5 >= 5.1.0)

posix_access — Determine accessibility of a file

说明

bool posix_access ( string $file [, int $mode=POSIX_F_OK ] )

posix_access() checks the user's permission of a file.

参数

file

The name of the file to be tested.

mode

A mask consisting of one or more of POSIX_F_OK, POSIX_R_OK, POSIX_W_OK and POSIX_X_OK. Defaults to POSIX_F_OK.

POSIX_R_OK, POSIX_W_OK and POSIX_X_OK request checking whether the file exists and has read, write and execute permissions, respectively. POSIX_F_OK just requests checking for the existence of the file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 posix_access() example

This example will check if the $file is readable and writable, otherwise will print an error message.

<?php

$file = 'some_file';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'The file is readable and writable!';

} else {
    $error = posix_get_last_error();

    echo "Error $error: " . posix_strerror($error);
}

?>

注释

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

参见

  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed
  • posix_strerror() - Retrieve the system error message associated with the given errno

POSIX 函数
posix_ctermid
POSIX 函数


Get path name of controlling terminal

posix_access
posix_get_last_error
POSIX 函数
PHP 手册

posix_ctermid

(PHP 4, PHP 5)

posix_ctermid — Get path name of controlling terminal

说明

string posix_ctermid ( void )

Generates a string which is the pathname for the current controlling terminal for the process. On error this will set errno, which can be checked using posix_get_last_error()

返回值

Upon successful completion, returns string of the pathname to the current controlling terminal. Otherwise FALSE is returned and errno is set, which can be checked with posix_get_last_error().

范例

Example #1 posix_ctermid() example

This example will display the path to the current TTY.

<?php
echo "I am running from ".posix_ctermid();
?>

参见

  • posix_ttyname() - Determine terminal device name
  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed

posix_access
posix_get_last_error
POSIX 函数


Retrieve the error number set by the last posix function that failed

posix_ctermid
posix_getcwd
POSIX 函数
PHP 手册

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_error — Retrieve the error number set by the last posix function that failed

说明

int posix_get_last_error ( void )

Retrieve the error number set by the last posix function that failed. The system error message associated with the errno may be checked with posix_strerror().

返回值

Returns the errno (error number) set by the last posix function that failed. If no errors exist, 0 is returned.

范例

Example #1 posix_get_last_error() example

This example attempt to kill a bogus process id, which will set the last error. We will then print out the last errno.

<?php
posix_kill(999459,SIGKILL);
echo 'Your error returned was '.posix_get_last_error(); //Your error was ___
?>

参见

  • posix_strerror() - Retrieve the system error message associated with the given errno

posix_ctermid
posix_getcwd
POSIX 函数


Pathname of current directory

posix_get_last_error
posix_getegid
POSIX 函数
PHP 手册

posix_getcwd

(PHP 4, PHP 5)

posix_getcwd — Pathname of current directory

说明

string posix_getcwd ( void )

Gets the absolute pathname of the script's current working directory. On error, it sets errno which can be checked using posix_get_last_error()

返回值

Returns a string of the absolute pathname on success. On error, returns FALSE and sets errno which can be checked with posix_get_last_error().

范例

Example #1 posix_getcwd() example

This example will return the absolute path of the current working directory of the script.

<?php
echo 'My current working directory is '.posix_getcwd();
?>

注释

Note: This function can fail on

  • Read or Search permission was denied
  • Pathname no longer exists

posix_get_last_error
posix_getegid
POSIX 函数


Return the effective group ID of the current process

posix_getcwd
posix_geteuid
POSIX 函数
PHP 手册

posix_getegid

(PHP 4, PHP 5)

posix_getegid — Return the effective group ID of the current process

说明

int posix_getegid ( void )

Return the numeric effective group ID of the current process.

返回值

Returns an integer of the effective group ID.

范例

Example #1 posix_getegid() example

This example will print out the effective group id, once it is changed with posix_setegid().

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

注释

posix_getegid() is different than posix_getgid() because effective group ID can be changed by a calling process using posix_setegid().

参见

  • posix_getgrgid() - Return info about a group by group id for information on how to convert this into a useable group name
  • posix_getgid() - Return the real group ID of the current process get real group id.
  • posix_setgid() - Set the GID of the current process change the effective group id

posix_getcwd
posix_geteuid
POSIX 函数


Return the effective user ID of the current process

posix_getegid
posix_getgid
POSIX 函数
PHP 手册

posix_geteuid

(PHP 4, PHP 5)

posix_geteuid — Return the effective user ID of the current process

说明

int posix_geteuid ( void )

Return the numeric effective user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

返回值

Returns the user id, as an integer

范例

Example #1 posix_geteuid() example

This example will show the current user id then set the effective user id to a separate id using posix_seteuid(), then show the difference between the real id and the effective id.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_seteuid(10000);
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10000
?>

参见

  • posix_getpwuid() - Return info about a user by user id for more information about the user.
  • posix_getuid() - Return the real user ID of the current process get real user id.
  • posix_setuid() - Set the UID of the current process change the effective user id
  • POSIX man page GETEUID(2)

posix_getegid
posix_getgid
POSIX 函数


Return the real group ID of the current process

posix_geteuid
posix_getgrgid
POSIX 函数
PHP 手册

posix_getgid

(PHP 4, PHP 5)

posix_getgid — Return the real group ID of the current process

说明

int posix_getgid ( void )

Return the numeric real group ID of the current process.

返回值

Returns the real group id, as an integer.

范例

Example #1 posix_getgid() example

This example will print out the real group id, even once the effective group id has been changed.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

参见

  • posix_getgrgid() - Return info about a group by group id for information on how to convert this into a useable group name
  • posix_getegid() - Return the effective group ID of the current process get effective group id.
  • posix_setgid() - Set the GID of the current process change the effective group id
  • POSIX man page GETGID(2)

posix_geteuid
posix_getgrgid
POSIX 函数


Return info about a group by group id

posix_getgid
posix_getgrnam
POSIX 函数
PHP 手册

posix_getgrgid

(PHP 4, PHP 5)

posix_getgrgid — Return info about a group by group id

说明

array posix_getgrgid ( int $gid )

Gets information about a group provided its id.

参数

gid

The group id.

返回值

The array elements returned are:

The group information array
Element | Description
name | The name element contains the name of the group. This is a short, usually less than 16 character "handle" of the group, not the real, full name.
passwd | The passwd element contains the group's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
gid | Group ID, should be the same as the gid parameter used when calling the function, and hence redundant.
members | This consists of an array of string's for all the members in the group.

更新日志

版本 | 说明
4.2.0 | Prior to this version, members was simply an integer representing the number of members in the group, and the member names were returned with numerical indices.

范例

Example #1 Example use of posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);
?>

上例的输出类似于：

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

参见

  • posix_getegid() - Return the effective group ID of the current process
  • posix_getgrnam() - Return info about a group by name
  • filegroup() - 取得文件的组
  • stat() - 给出文件的信息
  • safe_mode_gid
  • POSIX man page GETGRNAM(3)

posix_getgid
posix_getgrnam
POSIX 函数


Return info about a group by name

posix_getgrgid
posix_getgroups
POSIX 函数
PHP 手册

posix_getgrnam

(PHP 4, PHP 5)

posix_getgrnam — Return info about a group by name

说明

array posix_getgrnam ( string $name )

Gets information about a group provided its name.

参数

name

The name of the group

返回值

The array elements returned are:

The group information array
Element | Description
name | The name element contains the name of the group. This is a short, usually less than 16 character "handle" of the group, not the real, full name. This should be the same as the name parameter used when calling the function, and hence redundant.
passwd | The passwd element contains the group's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
gid | Group ID of the group in numeric form.
members | This consists of an array of string's for all the members in the group.

更新日志

版本 | 说明
4.2.0 | Prior to this version, members was simply an integer representing the number of members in the group, and the member names were returned with numerical indices.

范例

Example #1 Example use of posix_getgrnam()

<?php

$groupinfo = posix_getgrnam("toons");

print_r($groupinfo);
?>

上例的输出类似于：

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

参见

  • posix_getegid() - Return the effective group ID of the current process
  • posix_getgrgid() - Return info about a group by group id
  • filegroup() - 取得文件的组
  • stat() - 给出文件的信息
  • safe_mode_gid
  • POSIX man page GETGRNAM(3)

posix_getgrgid
posix_getgroups
POSIX 函数


Return the group set of the current process

posix_getgrnam
posix_getlogin
POSIX 函数
PHP 手册

posix_getgroups

(PHP 4, PHP 5)

posix_getgroups — Return the group set of the current process

说明

array posix_getgroups ( void )

Gets the group set of the current process.

返回值

Returns an array of integers containing the numeric group ids of the group set of the current process.

范例

Example #1 Example use of posix_getgroups()

<?php

$groups = posix_getgroups();

print_r($groups);
?>

上例的输出类似于：

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

参见

  • posix_getgrgid() - Return info about a group by group id

posix_getgrnam
posix_getlogin
POSIX 函数


Return login name

posix_getgroups
posix_getpgid
POSIX 函数
PHP 手册

posix_getlogin

(PHP 4, PHP 5)

posix_getlogin — Return login name

说明

string posix_getlogin ( void )

Returns the login name of the user owning the current process.

返回值

Returns the login name of the user, as a string.

范例

Example #1 Example use of posix_getlogin()

<?php
echo posix_getlogin(); //apache
?>

参见

  • posix_getpwnam() - Return info about a user by username
  • POSIX man page GETLOGIN(3)

posix_getgroups
posix_getpgid
POSIX 函数


Get process group id for job control

posix_getlogin
posix_getpgrp
POSIX 函数
PHP 手册

posix_getpgid

(PHP 4, PHP 5)

posix_getpgid — Get process group id for job control

说明

int posix_getpgid ( int $pid )

Returns the process group identifier of the process pid .

参数

pid

The process id.

返回值

Returns the identifier, as an integer.

范例

Example #1 Example use of posix_getpgid()

<?php
$pid = posix_getppid();
echo posix_getpgid($pid); //35
?>

注释

Note: This is a not POSIX function, but is common on BSD and System V systems. If the system does not support this function, then it will not be included at compile time. This may be checked with function_exists().

参见

  • posix_getppid() - Return the parent process identifier
  • man page SETPGID(2)

posix_getlogin
posix_getpgrp
POSIX 函数


Return the current process group identifier

posix_getpgid
posix_getpid
POSIX 函数
PHP 手册

posix_getpgrp

(PHP 4, PHP 5)

posix_getpgrp — Return the current process group identifier

说明

int posix_getpgrp ( void )

Return the process group identifier of the current process.

返回值

Returns the identifier, as an integer.

参见

  • POSIX.1 and the getpgrp(2) manual page on the POSIX system for more information on process groups.

posix_getpgid
posix_getpid
POSIX 函数


Return the current process identifier

posix_getpgrp
posix_getppid
POSIX 函数
PHP 手册

posix_getpid

(PHP 4, PHP 5)

posix_getpid — Return the current process identifier

说明

int posix_getpid ( void )

Return the process identifier of the current process.

返回值

Returns the identifier, as an integer.

范例

Example #1 Example use of posix_getpid()

<?php
echo posix_getpid(); //8805
?>

参见

  • posix_kill() - Send a signal to a process to kill a process.
  • POSIX man page GETPID(2)

posix_getpgrp
posix_getppid
POSIX 函数


Return the parent process identifier

posix_getpid
posix_getpwnam
POSIX 函数
PHP 手册

posix_getppid

(PHP 4, PHP 5)

posix_getppid — Return the parent process identifier

说明

int posix_getppid ( void )

Return the process identifier of the parent process of the current process.

返回值

Returns the identifier, as an integer.

范例

Example #1 Example use of posix_getppid()

<?php
echo posix_getppid(); //8259
?>

posix_getpid
posix_getpwnam
POSIX 函数


Return info about a user by username

posix_getppid
posix_getpwuid
POSIX 函数
PHP 手册

posix_getpwnam

(PHP 4, PHP 5)

posix_getpwnam — Return info about a user by username

说明

array posix_getpwnam ( string $username )

Returns an array of information about the given user.

参数

username

An alphanumeric username.

返回值

On success an array with the following elements are returned, else FALSE is returned:

The user information array
Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not the real, full name. This should be the same as the username parameter used when calling the function, and hence redundant.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID of the user in numeric form.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

范例

Example #1 Example use of posix_getpwnam()

<?php

$userinfo = posix_getpwnam("tom");

print_r($userinfo);
?>

上例的输出类似于：

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [geocs]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

参见

  • posix_getpwuid() - Return info about a user by user id
  • POSIX man page GETPWNAM(3)

posix_getppid
posix_getpwuid
POSIX 函数


Return info about a user by user id

posix_getpwnam
posix_getrlimit
POSIX 函数
PHP 手册

posix_getpwuid

(PHP 4, PHP 5)

posix_getpwuid — Return info about a user by user id

说明

array posix_getpwuid ( int $uid )

Returns an array of information about the user referenced by the given user ID.

参数

uid

The user identifier.

返回值

Returns an associative array with the following elements:

The user information array
Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not the real, full name.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID, should be the same as the uid parameter used when calling the function, and hence redundant.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

范例

Example #1 Example use of posix_getpwuid()

<?php

$userinfo = posix_getpwuid(10000);

print_r($userinfo);
?>

上例的输出类似于：

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [geocs]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

参见

  • posix_getpwnam() - Return info about a user by username
  • POSIX man page GETPWNAM(3)

posix_getpwnam
posix_getrlimit
POSIX 函数


Return info about system resource limits

posix_getpwuid
posix_getsid
POSIX 函数
PHP 手册

posix_getrlimit

(PHP 4, PHP 5)

posix_getrlimit — Return info about system resource limits

说明

array posix_getrlimit ( void )

posix_getrlimit() returns an array of information about the current resource's soft and hard limits.

Each resource has an associated soft and hard limit. The soft limit is the value that the kernel enforces for the corresponding resource. The hard limit acts as a ceiling for the soft limit. An unprivileged process may only set its soft limit to a value from 0 to the hard limit, and irreversibly lower its hard limit.

返回值

Returns an associative array of elements for each limit that is defined. Each limit has a soft and a hard limit.

List of possible limits returned
Limit name | Limit description
core | The maximum size of the core file. When 0, not core files are created. When core files are larger than this size, they will be truncated at this size.
totalmem | The maximum size of the memory of the process, in bytes.
virtualmem | The maximum size of the virtual memory for the process, in bytes.
data | The maximum size of the data segment for the process, in bytes.
stack | The maximum size of the process stack, in bytes.
rss | The maximum number of virtual pages resident in RAM
maxproc | The maximum number of processes that can be created for the real user ID of the calling process.
memlock | The maximum number of bytes of memory that may be locked into RAM.
cpu | The amount of time the process is allowed to use the CPU.
filesize | The maximum size of the data segment for the process, in bytes.
openfiles | One more than the maximum number of open file descriptors.

范例

Example #1 Example use of posix_getrlimit()

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

上例的输出类似于：

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

注释

Note: This is a not POSIX function, but is common on BSD and System V systems. If the system does not support this function, then it will not be included at compile time. This may be checked with function_exists().

参见

  • man page GETRLIMIT(2)

posix_getpwuid
posix_getsid
POSIX 函数


Get the current sid of the process

posix_getrlimit
posix_getuid
POSIX 函数
PHP 手册

posix_getsid

(PHP 4, PHP 5)

posix_getsid — Get the current sid of the process

说明

int posix_getsid ( int $pid )

Return the session id of the process pid . The session id of a process is the process group id of the session leader.

参数

pid

The process identifier. If set to 0, the current process is assumed. If an invalid pid is specified, then FALSE is returned and an error is set which can be checked with posix_get_last_error().

返回值

Returns the identifier, as an integer.

范例

Example #1 Example use of posix_getsid()

<?php
$pid = posix_getpid();
echo posix_getsid($pid); //8805
?>

参见

  • posix_getpgid() - Get process group id for job control
  • posix_setsid() - Make the current process a session leader
  • POSIX man page GETSID(2)

posix_getrlimit
posix_getuid
POSIX 函数


Return the real user ID of the current process

posix_getsid
posix_initgroups
POSIX 函数
PHP 手册

posix_getuid

(PHP 4, PHP 5)

posix_getuid — Return the real user ID of the current process

说明

int posix_getuid ( void )

Return the numeric real user ID of the current process.

返回值

Returns the user id, as an integer

范例

Example #1 Example use of posix_getuid()

<?php
echo posix_getuid(); //10000
?>

参见

  • posix_getpwuid() - Return info about a user by user id for information on how to convert this into a useable username
  • POSIX man page GETUID(2)

posix_getsid
posix_initgroups
POSIX 函数


Calculate the group access list

posix_getuid
posix_isatty
POSIX 函数
PHP 手册

posix_initgroups

(PHP 5 >= 5.2.0)

posix_initgroups — Calculate the group access list

说明

bool posix_initgroups ( string $name , int $base_group_id )

Calculates the group access list for the user specified in name.

参数

name

The user to calculate the list for.

base_group_id

Typically the group number from the password file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • The Unix manual page for initgroups(3).

posix_getuid
posix_isatty
POSIX 函数


Determine if a file descriptor is an interactive terminal

posix_initgroups
posix_kill
POSIX 函数
PHP 手册

posix_isatty

(PHP 4, PHP 5)

posix_isatty — Determine if a file descriptor is an interactive terminal

说明

bool posix_isatty ( int $fd )

Determines if the file descriptor fd refers to a valid terminal type device.

参数

fd

The file descriptor.

返回值

Returns TRUE if fd is an open descriptor connected to a terminal and FALSE otherwise.

参见

  • posix_ttyname() - Determine terminal device name

posix_initgroups
posix_kill
POSIX 函数


Send a signal to a process

posix_isatty
posix_mkfifo
POSIX 函数
PHP 手册

posix_kill

(PHP 4, PHP 5)

posix_kill — Send a signal to a process

说明

bool posix_kill ( int $pid , int $sig )

Send the signal sig to the process with the process identifier pid .

参数

pid

The process identifier.

sig

One of the PCNTL signals constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • The kill(2) manual page of the POSIX system, which contains additional information about negative process identifiers, the special pid 0, the special pid -1, and the signal number 0.

posix_isatty
posix_mkfifo
POSIX 函数


Create a fifo special file (a named pipe)

posix_kill
posix_mknod
POSIX 函数
PHP 手册

posix_mkfifo

(PHP 4, PHP 5)

posix_mkfifo — Create a fifo special file (a named pipe)

说明

bool posix_mkfifo ( string $pathname , int $mode )

posix_mkfifo() creates a special FIFO file which exists in the file system and acts as a bidirectional communication endpoint for processes.

参数

pathname

Path to the FIFO file.

mode

The second parameter mode has to be given in octal notation (e.g. 0644). The permission of the newly created FIFO also depends on the setting of the current umask(). The permissions of the created file are (mode & ~umask).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 当安全模式被激活时，PHP 将检查被操作的文件或者目录是否与正在执行的脚本有相同的 UID（所有者）。

posix_kill
posix_mknod
POSIX 函数


Create a special or ordinary file (POSIX.1)

posix_mkfifo
posix_setegid
POSIX 函数
PHP 手册

posix_mknod

(PHP 5 >= 5.1.0)

posix_mknod — Create a special or ordinary file (POSIX.1)

说明

bool posix_mknod ( string $pathname , int $mode [, int $major=0 [, int $minor=0 ]] )

Creates a special or ordinary file.

参数

pathname

The file to create

mode

This parameter is constructed by a bitwise OR between file type (one of the following constants: POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO or POSIX_S_IFSOCK) and permissions.

major

The major device kernel identifier (required to pass when using S_IFCHR or S_IFBLK).

minor

The minor device kernel identifier (defaults to 0).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A posix_mknod() example

<?php

$file = '/tmp/tmpfile';  // file name
$type = POSIX_S_IFBLK;   // file type
$permissions = 0777;     // octal
$major = 1;
$minor = 8;              // /dev/random

if (!posix_mknod($file, $type | $permissions, $major, $minor)) {
    die('Error ' . posix_get_last_error() . ': ' . posix_strerror(posix_get_last_error()));
}

?>

参见

  • posix_mkfifo() - Create a fifo special file (a named pipe)

posix_mkfifo
posix_setegid
POSIX 函数


Set the effective GID of the current process

posix_mknod
posix_seteuid
POSIX 函数
PHP 手册

posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegid — Set the effective GID of the current process

说明

bool posix_setegid ( int $gid )

Set the effective group ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function.

参数

gid

The group id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 posix_setegid() example

This example will print out the effective group id, once changed.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

参见

  • posix_getgrgid() - Return info about a group by group id for information on how to convert a group id into a useable group name
  • posix_getgid() - Return the real group ID of the current process get real group id.
  • posix_setgid() - Set the GID of the current process change the effective group id

posix_mknod
posix_seteuid
POSIX 函数


Set the effective UID of the current process

posix_setegid
posix_setgid
POSIX 函数
PHP 手册

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuid — Set the effective UID of the current process

说明

bool posix_seteuid ( int $uid )

Set the real user ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function.

参数

uid

The user id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • posix_setgid() - Set the GID of the current process

posix_setegid
posix_setgid
POSIX 函数


Set the GID of the current process

posix_seteuid
posix_setpgid
POSIX 函数
PHP 手册

posix_setgid

(PHP 4, PHP 5)

posix_setgid — Set the GID of the current process

说明

bool posix_setgid ( int $gid )

Set the real group ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function. The appropriate order of function calls is posix_setgid() first, posix_setuid() last.

Note: If the caller is a super user, this will also set the effective group id.

参数

gid

The group id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 posix_setgid() example

This example will print out the effective group id, once it is changed.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setgid(40);
echo 'My real group id is '.posix_getgid(); //40
echo 'My effective group id is '.posix_getegid(); //40
?>

参见

  • posix_getgrgid() - Return info about a group by group id for information on how to convert this into a useable group name
  • posix_getgid() - Return the real group ID of the current process get real group id.

posix_seteuid
posix_setpgid
POSIX 函数


Set process group id for job control

posix_setgid
posix_setsid
POSIX 函数
PHP 手册

posix_setpgid

(PHP 4, PHP 5)

posix_setpgid — Set process group id for job control

说明

bool posix_setpgid ( int $pid , int $pgid )

Let the process pid join the process group pgid .

参数

pid

The process id.

pgid

The process group id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • See POSIX.1 and the setsid(2) manual page on the POSIX system for more informations on process groups and job control.

posix_setgid
posix_setsid
POSIX 函数


Make the current process a session leader

posix_setpgid
posix_setuid
POSIX 函数
PHP 手册

posix_setsid

(PHP 4, PHP 5)

posix_setsid — Make the current process a session leader

说明

int posix_setsid ( void )

Make the current process a session leader.

返回值

Returns the session id, or -1 on errors.

参见

  • The POSIX.1 and the setsid(2) manual page on the POSIX system for more information on process groups and job control.

posix_setpgid
posix_setuid
POSIX 函数


Set the UID of the current process

posix_setsid
posix_strerror
POSIX 函数
PHP 手册

posix_setuid

(PHP 4, PHP 5)

posix_setuid — Set the UID of the current process

说明

bool posix_setuid ( int $uid )

Set the real user ID of the current process. This is a privileged function that needs appropriate privileges (usually root) on the system to be able to perform this function.

参数

uid

The user id.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 posix_setuid() example

This example will show the current user id and then set it to a different value.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_setuid(10000);
echo posix_getuid()."\n"; //10000
echo posix_geteuid()."\n"; //10000
?>

参见

  • posix_setgid() - Set the GID of the current process
  • posix_seteuid() - Set the effective UID of the current process
  • posix_getuid() - Return the real user ID of the current process
  • posix_geteuid() - Return the effective user ID of the current process

posix_setsid
posix_strerror
POSIX 函数


Retrieve the system error message associated with the given errno

posix_setuid
posix_times
POSIX 函数
PHP 手册

posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerror — Retrieve the system error message associated with the given errno

说明

string posix_strerror ( int $errno )

Returns the POSIX system error message associated with the given errno . You may get the errno parameter by calling posix_get_last_error().

参数

errno

A POSIX error number, returned by posix_get_last_error(). If set to 0, then the string "Success" is returned.

返回值

Returns the error message, as a string.

范例

Example #1 posix_strerror() example

This example will attempt to kill a process which does not exist, then will print out the corresponding error message.

<?php
posix_kill(50,SIGKILL);
echo posix_strerror(posix_get_last_error())."\n";
?>

上例的输出类似于：

No such process

参见

  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed

posix_setuid
posix_times
POSIX 函数


Get process times

posix_strerror
posix_ttyname
POSIX 函数
PHP 手册

posix_times

(PHP 4, PHP 5)

posix_times — Get process times

说明

array posix_times ( void )

Gets information about the current CPU usage.

返回值

Returns a hash of strings with information about the current process CPU usage. The indices of the hash are:

  • ticks - the number of clock ticks that have elapsed since reboot.
  • utime - user time used by the current process.
  • stime - system time used by the current process.
  • cutime - user time used by current process and children.
  • cstime - system time used by current process and children.

注释

Warning

This function isn't reliable to use, it may return negative values for high times.

范例

Example #1 Example use of posix_times()

<?php

$times = posix_times();

print_r($times);
?>

上例的输出类似于：

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)

posix_strerror
posix_ttyname
POSIX 函数


Determine terminal device name

posix_times
posix_uname
POSIX 函数
PHP 手册

posix_ttyname

(PHP 4, PHP 5)

posix_ttyname — Determine terminal device name

说明

string posix_ttyname ( int $fd )

Returns a string for the absolute path to the current terminal device that is open on the file descriptor fd .

参数

fd

The file descriptor.

返回值

On success, returns a string of the absolute path of the fd . On failure, returns FALSE

posix_times
posix_uname
POSIX 函数


Get system name

posix_ttyname
Semaphore
POSIX 函数
PHP 手册

posix_uname

(PHP 4, PHP 5)

posix_uname — Get system name

说明

array posix_uname ( void )

Gets information about the system.

Posix requires that assumptions must not be made about the format of the values, e.g. the assumption that a release may contain three digits or anything else returned by this function.

返回值

Returns a hash of strings with information about the system. The indices of the hash are

  • sysname - operating system name (e.g. Linux)
  • nodename - system name (e.g. valiant)
  • release - operating system release (e.g. 2.2.10)
  • version - operating system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine - system architecture (e.g. i586)
  • domainname - DNS domainname (e.g. example.com)

domainname is a GNU extension and not part of POSIX.1, so this field is only available on GNU systems or when using the GNU libc.

范例

Example #1 Example use of posix_uname()

<?php
$uname=posix_uname();
print_r($uname);
?>

上例的输出类似于：

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)

posix_ttyname
Semaphore
POSIX 函数


Semaphore, Shared Memory and IPC

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Semaphore 函数
    • ftok — Convert a pathname and a project identifier to a System V IPC key
    • msg_get_queue — Create or attach to a message queue
    • msg_queue_exists — Check whether a message queue exists
    • msg_receive — Receive a message from a message queue
    • msg_remove_queue — Destroy a message queue
    • msg_send — Send a message to a message queue
    • msg_set_queue — Set information in the message queue data structure
    • msg_stat_queue — Returns information from the message queue data structure
    • sem_acquire — Acquire a semaphore
    • sem_get — Get a semaphore id
    • sem_release — Release a semaphore
    • sem_remove — Remove a semaphore
    • shm_attach — Creates or open a shared memory segment
    • shm_detach — Disconnects from shared memory segment
    • shm_get_var — Returns a variable from shared memory
    • shm_put_var — Inserts or updates a variable in shared memory
    • shm_remove_var — Removes a variable from shared memory
    • shm_remove — Removes shared memory from Unix systems
posix_uname
简介
进程控制扩展


简介

This module provides wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).

Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource.

This module provides also shared memory functions using System V shared memory. Shared memory may be used to provide access to global variables. Different httpd-daemons and even other programs (such as Perl, C, ...) are able to access this data to provide a global data-exchange. Remember, that shared memory is NOT safe against simultaneous access. Use semaphores for synchronization.

Limits of Shared Memory by the Unix OS
SHMMAX | max size of shared memory, normally 131072 bytes
SHMMIN | minimum size of shared memory, normally 1 byte
SHMMNI | max amount of shared memory segments on a system, normally 100
SHMSEG | max amount of shared memory segments per process, normally 6

The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using Unix domain sockets.

Note: 本扩展模块在 Windows 平台下不可用。

Semaphore
安装/配置
Semaphore


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Semaphore


安装

Support for this functions are not enabled by default. To enable System V semaphore support compile PHP with the option --enable-sysvsem. To enable the System V shared memory support compile PHP with the option --enable-sysvshm. To enable the System V messages support compile PHP with the option --enable-sysvmsg.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Semaphore Configuration Options
Name | Default | Changeable | Changelog
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

sysvshm.init_mem int

A default size of the shared memory segment.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

System V message constants
Constant | Type | Changelog
MSG_IPC_NOWAIT | integer |
MSG_EAGAIN | integer | As of 5.2.0
MSG_ENOMSG | integer | As of 5.2.0
MSG_NOERROR | integer |
MSG_EXCEPT | integer |

资源类型
Semaphore 函数
Semaphore


Semaphore 函数

Table of Contents

  • ftok — Convert a pathname and a project identifier to a System V IPC key
  • msg_get_queue — Create or attach to a message queue
  • msg_queue_exists — Check whether a message queue exists
  • msg_receive — Receive a message from a message queue
  • msg_remove_queue — Destroy a message queue
  • msg_send — Send a message to a message queue
  • msg_set_queue — Set information in the message queue data structure
  • msg_stat_queue — Returns information from the message queue data structure
  • sem_acquire — Acquire a semaphore
  • sem_get — Get a semaphore id
  • sem_release — Release a semaphore
  • sem_remove — Remove a semaphore
  • shm_attach — Creates or open a shared memory segment
  • shm_detach — Disconnects from shared memory segment
  • shm_get_var — Returns a variable from shared memory
  • shm_put_var — Inserts or updates a variable in shared memory
  • shm_remove_var — Removes a variable from shared memory
  • shm_remove — Removes shared memory from Unix systems
预定义常量
ftok
Semaphore


Convert a pathname and a project identifier to a System V IPC key

Semaphore 函数
msg_get_queue
Semaphore 函数
PHP 手册

ftok

(PHP 4 >= 4.2.0, PHP 5)

ftok — Convert a pathname and a project identifier to a System V IPC key

说明

int ftok ( string $pathname , string $proj )

The function converts the pathname of an existing accessible file and a project identifier into an integer for use with for example shmop_open() and other System V IPC keys.

参数

pathname

Path to an accessible file.

proj

Project identifier. This must be a one character string.

返回值

On success the return value will be the created key value, otherwise -1 is returned.

参见

  • shmop_open() - Create or open shared memory block
  • sem_get() - Get a semaphore id

Semaphore 函数
msg_get_queue
Semaphore 函数


Create or attach to a message queue

ftok
msg_queue_exists
Semaphore 函数
PHP 手册

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queue — Create or attach to a message queue

说明

resource msg_get_queue ( int $key [, int $perms ] )

msg_get_queue() returns an id that can be used to access the System V message queue with the given key . The first call creates the message queue with the optional perms . A second call to msg_get_queue() for the same key will return a different message queue identifier, but both identifiers access the same underlying message queue.

参数

key

Message queue numeric ID

perms

Queue permissions. Default to 0666. If the message queue already exists, the perms will be ignored.

返回值

Returns a resource handle that can be used to access the System V message queue.

参见

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_send() - Send a message to a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure

ftok
msg_queue_exists
Semaphore 函数


Check whether a message queue exists

msg_get_queue
msg_receive
Semaphore 函数
PHP 手册

msg_queue_exists

(PHP 5 >= 5.3.0)

msg_queue_exists — Check whether a message queue exists

说明

bool msg_queue_exists ( int $key )

Checks whether the message queue key exists.

参数

key

Queue key.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure

msg_get_queue
msg_receive
Semaphore 函数


Receive a message from a message queue

msg_queue_exists
msg_remove_queue
Semaphore 函数
PHP 手册

msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receive — Receive a message from a message queue

说明

bool msg_receive ( resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize [, int $flags [, int &$errorcode ]]] )

msg_receive() will receive the first message from the specified queue of the type specified by desiredmsgtype .

参数

queue

desiredmsgtype

If desiredmsgtype is 0, the message from the front of the queue is returned. If desiredmsgtype is greater than 0, then the first message of that type is returned. If desiredmsgtype is less than 0, the first message on the queue with the lowest type less than or equal to the absolute value of desiredmsgtype will be read. If no messages match the criteria, your script will wait until a suitable message arrives on the queue. You can prevent the script from blocking by specifying MSG_IPC_NOWAIT in the flags parameter.

msgtype

The type of the message that was received will be stored in this parameter.

maxsize

The maximum size of message to be accepted is specified by the maxsize ; if the message in the queue is larger than this size the function will fail (unless you set flags as described below).

message

The received message will be stored in message , unless there were errors receiving the message.

unserialize

unserialize defaults to TRUE; if it is set to TRUE, the message is treated as though it was serialized using the same mechanism as the session module. The message will be unserialized and then returned to your script. This allows you to easily receive arrays or complex object structures from other PHP scripts, or if you are using the WDDX serializer, from any WDDX compatible source.

If unserialize is FALSE, the message will be returned as a binary-safe string.

flags

The optional flags allows you to pass flags to the low-level msgrcv system call. It defaults to 0, but you may specify one or more of the following values (by adding or ORing them together).

Flag values for msg_receive
MSG_IPC_NOWAIT | If there are no messages of the desiredmsgtype , return immediately and do not wait. The function will fail and return an integer value corresponding to MSG_ENOMSG.
MSG_EXCEPT | Using this flag in combination with a desiredmsgtype greater than 0 will cause the function to receive the first message that is not equal to desiredmsgtype .
MSG_NOERROR | If the message is longer than maxsize , setting this flag will truncate the message to maxsize and will not signal an error.

errorcode

If the function fails, the optional errorcode will be set to the value of the system errno variable.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Upon successful completion the message queue data structure is updated as follows: msg_lrpid is set to the process-ID of the calling process, msg_qnum is decremented by 1 and msg_rtime is set to the current time.

参见

  • msg_remove_queue() - Destroy a message queue
  • msg_send() - Send a message to a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure

msg_queue_exists
msg_remove_queue
Semaphore 函数


Destroy a message queue

msg_receive
msg_send
Semaphore 函数
PHP 手册

msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queue — Destroy a message queue

说明

bool msg_remove_queue ( resource $queue )

msg_remove_queue() destroys the message queue specified by the queue . Only use this function when all processes have finished working with the message queue and you need to release the system resources held by it.

参数

queue

Message queue resource handle

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msg_get_queue() - Create or attach to a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure

msg_receive
msg_send
Semaphore 函数


Send a message to a message queue

msg_remove_queue
msg_set_queue
Semaphore 函数
PHP 手册

msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send — Send a message to a message queue

说明

bool msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize [, bool $blocking [, int &$errorcode ]]] )

msg_send() sends a message of type msgtype (which MUST be greater than 0) to the message queue specified by queue .

参数

queue

msgtype

message

serialize

The optional serialize controls how the message is sent. serialize defaults to TRUE which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

blocking

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to FALSE, in which case msg_send() will immediately return FALSE if the message is too big for the queue, and set the optional errorcode to MSG_EAGAIN, indicating that you should try to send your message again a little later on.

errorcode

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

参见

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure

msg_remove_queue
msg_set_queue
Semaphore 函数


Set information in the message queue data structure

msg_send
msg_stat_queue
Semaphore 函数
PHP 手册

msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queue — Set information in the message queue data structure

说明

bool msg_set_queue ( resource $queue , array $data )

msg_set_queue() allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the underlying message queue data structure.

Changing the data structure will require that PHP be running as the same user that created the queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root privileges. root privileges are required to raise the msg_qbytes values above the system defined limit.

参数

queue

Message queue resource handle

data

You specify the values you require by setting the value of the keys that you require in the data array.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_get_queue() - Create or attach to a message queue

msg_send
msg_stat_queue
Semaphore 函数


Returns information from the message queue data structure

msg_set_queue
sem_acquire
Semaphore 函数
PHP 手册

msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queue — Returns information from the message queue data structure

说明

array msg_stat_queue ( resource $queue )

msg_stat_queue() returns the message queue meta data for the message queue specified by the queue . This is useful, for example, to determine which process sent the message that was just received.

参数

queue

Message queue resource handle

返回值

The return value is an array whose keys and values have the following meanings:

Array structure for msg_stat_queue
msg_perm.uid | The uid of the owner of the queue.
msg_perm.gid | The gid of the owner of the queue.
msg_perm.mode | The file access mode of the queue.
msg_stime | The time that the last message was sent to the queue.
msg_rtime | The time that the last message was received from the queue.
msg_ctime | The time that the queue was last changed.
msg_qnum | The number of messages waiting to be read from the queue.
msg_qbytes | The maximum number of bytes allowed in one message queue. On Linux, this value may be read and modified via /proc/sys/kernel/msgmnb.
msg_lspid | The pid of the process that sent the last message to the queue.
msg_lrpid | The pid of the process that received the last message from the queue.

参见

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_get_queue() - Create or attach to a message queue
  • msg_set_queue() - Set information in the message queue data structure

msg_set_queue
sem_acquire
Semaphore 函数


Acquire a semaphore

msg_stat_queue
sem_get
Semaphore 函数
PHP 手册

sem_acquire

(PHP 4, PHP 5)

sem_acquire — Acquire a semaphore

说明

bool sem_acquire ( resource $sem_identifier )

sem_acquire() blocks (if necessary) until the semaphore can be acquired. A process attempting to acquire a semaphore which it has already acquired will block forever if acquiring the semaphore would cause its maximum number of semaphore to be exceeded.

After processing a request, any semaphores acquired by the process but not explicitly released will be released automatically and a warning will be generated.

参数

sem_identifier

sem_identifier is a semaphore resource, obtained from sem_get().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sem_get() - Get a semaphore id
  • sem_release() - Release a semaphore

msg_stat_queue
sem_get
Semaphore 函数


Get a semaphore id

sem_acquire
sem_release
Semaphore 函数
PHP 手册

sem_get

(PHP 4, PHP 5)

sem_get — Get a semaphore id

说明

resource sem_get ( int $key [, int $max_acquire [, int $perm [, int $auto_release ]]] )

sem_get() returns an id that can be used to access the System V semaphore with the given key .

A second call to sem_get() for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.

参数

key

max_acquire

The number of processes that can acquire the semaphore simultaneously is set to max_acquire (defaults to 1).

perm

The semaphore permissions. Defaults to 0666. Actually this value is set only if the process finds it is the only process currently attached to the semaphore.

auto_release

Specifies if the semaphore should be automatically released on request shutdown.

返回值

Returns a positive semaphore identifier on success, or FALSE on error.

更新日志

版本 | 说明
4.3.0 | The auto_release parameter was added.

参见

  • sem_acquire() - Acquire a semaphore
  • sem_release() - Release a semaphore
  • ftok() - Convert a pathname and a project identifier to a System V IPC key

sem_acquire
sem_release
Semaphore 函数


Release a semaphore

sem_get
sem_remove
Semaphore 函数
PHP 手册

sem_release

(PHP 4, PHP 5)

sem_release — Release a semaphore

说明

bool sem_release ( resource $sem_identifier )

sem_release() releases the semaphore if it is currently acquired by the calling process, otherwise a warning is generated.

After releasing the semaphore, sem_acquire() may be called to re-acquire it.

参数

sem_identifier

A Semaphore resource handle as returned by sem_get().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sem_get() - Get a semaphore id
  • sem_acquire() - Acquire a semaphore

sem_get
sem_remove
Semaphore 函数


Remove a semaphore

sem_release
shm_attach
Semaphore 函数
PHP 手册

sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_remove — Remove a semaphore

说明

bool sem_remove ( resource $sem_identifier )

sem_remove() removes the given semaphore.

After removing the semaphore, it is no more accessible.

参数

sem_identifier

A semaphore resource identifier as returned by sem_get().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • sem_get() - Get a semaphore id
  • sem_release() - Release a semaphore
  • sem_acquire() - Acquire a semaphore

sem_release
shm_attach
Semaphore 函数


Creates or open a shared memory segment

sem_remove
shm_detach
Semaphore 函数
PHP 手册

shm_attach

(PHP 4, PHP 5)

shm_attach — Creates or open a shared memory segment

说明

resource shm_attach ( int $key [, int $memsize [, int $perm ]] )

shm_attach() returns an id that can be used to access the System V shared memory with the given key , the first call creates the shared memory segment with memsize and the optional perm-bits perm .

A second call to shm_attach() for the same key will return a different shared memory identifier, but both identifiers access the same underlying shared memory. memsize and perm will be ignored.

参数

key

A numeric shared memory segment ID

memsize

The memory size. If not provided, default to the sysvshm.init_mem in the php.ini, otherwise 10000 bytes.

perm

The optional permission bits. Default to 0666.

返回值

Returns a shared memory segment identifier.

参见

  • shm_detach() - Disconnects from shared memory segment
  • ftok() - Convert a pathname and a project identifier to a System V IPC key

sem_remove
shm_detach
Semaphore 函数


Disconnects from shared memory segment

shm_attach
shm_get_var
Semaphore 函数
PHP 手册

shm_detach

(PHP 4, PHP 5)

shm_detach — Disconnects from shared memory segment

说明

bool shm_detach ( resource $shm_identifier )

shm_detach() disconnects from the shared memory given by the shm_identifier created by shm_attach(). Remember, that shared memory still exist in the Unix system and the data is still present.

参数

shm_identifier

A shared memory resource handle as returned by shm_attach()

返回值

shm_detach() always returns TRUE.

参见

  • shm_attach() - Creates or open a shared memory segment
  • shm_remove() - Removes shared memory from Unix systems
  • shm_remove_var() - Removes a variable from shared memory

shm_attach
shm_get_var
Semaphore 函数


Returns a variable from shared memory

shm_detach
shm_put_var
Semaphore 函数
PHP 手册

shm_get_var

(PHP 4, PHP 5)

shm_get_var — Returns a variable from shared memory

说明

mixed shm_get_var ( resource $shm_identifier , int $variable_key )

shm_get_var() returns the variable with a given variable_key , in the given shared memory segment. The variable is still present in the shared memory.

参数

shm_identifier

Shared memory segment, obtained from shm_attach().

variable_key

The variable key.

返回值

Returns the variable with the given key.

shm_detach
shm_put_var
Semaphore 函数


Inserts or updates a variable in shared memory

shm_get_var
shm_remove_var
Semaphore 函数
PHP 手册

shm_put_var

(PHP 4, PHP 5)

shm_put_var — Inserts or updates a variable in shared memory

说明

bool shm_put_var ( resource $shm_identifier , int $variable_key , mixed $variable )

shm_put_var() inserts or updates the variable with the given variable_key .

Warnings (E_WARNING level) will be issued if shm_identifier is not a valid SysV shared memory index or if there was not enough shared memory remaining to complete your request.

参数

shm_identifier

A shared memory resource handle as returned by shm_attach()

variable_key

The variable key.

variable

The variable. All variable-types are supported.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

shm_get_var
shm_remove_var
Semaphore 函数


Removes a variable from shared memory

shm_put_var
shm_remove
Semaphore 函数
PHP 手册

shm_remove_var

(PHP 4, PHP 5)

shm_remove_var — Removes a variable from shared memory

说明

bool shm_remove_var ( resource $shm_identifier , int $variable_key )

Removes a variable with a given variable_key and frees the occupied memory.

参数

shm_identifier

The shared memory identifier as returned by shm_attach()

variable_key

The variable key.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • shm_remove() - Removes shared memory from Unix systems

shm_put_var
shm_remove
Semaphore 函数


Removes shared memory from Unix systems

shm_remove_var
Shared Memory
Semaphore 函数
PHP 手册

shm_remove

(PHP 4, PHP 5)

shm_remove — Removes shared memory from Unix systems

说明

bool shm_remove ( resource $shm_identifier )

shm_remove() removes the shared memory shm_identifier . All data will be destroyed.

参数

shm_identifier

The shared memory identifier as returned by shm_attach()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • shm_remove_var() - Removes a variable from shared memory

shm_remove_var
Shared Memory
Semaphore 函数


Shared Memory

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Shared Memory Operations Overview
  • Shared Memory 函数
    • shmop_close — Close shared memory block
    • shmop_delete — Delete shared memory block
    • shmop_open — Create or open shared memory block
    • shmop_read — Read data from shared memory block
    • shmop_size — Get size of shared memory block
    • shmop_write — Write data into shared memory block
shm_remove
简介
进程控制扩展


简介

Shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments.

Note: Versions of Windows previous to Windows 2000 do not support shared memory. Under Windows, Shmop will only work when PHP is running as a web server module, such as Apache or IIS (CLI and CGI will not work).

Note: In PHP 4.0.3, these functions were prefixed by shm rather than shmop.

Shared Memory
安装/配置
Shared Memory


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Shared Memory


安装

To use shmop you will need to compile PHP with the --enable-shmop parameter in your configure line.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Shared Memory


范例

Table of Contents

  • Shared Memory Operations Overview
预定义常量
Shared Memory Operations Overview
Shared Memory


Shared Memory Operations Overview

范例
Shared Memory 函数
范例
PHP 手册

Example #1 Shared Memory Operations Overview

<?php

// Create 100 byte shared memory block with system id of 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
    echo "Couldn't create shared memory segment\n";
}

// Get shared memory block's size
$shm_size = shmop_size($shm_id);
echo "SHM Block Size: " . $shm_size . " has been created.\n";

// Lets write a test string into shared memory
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if ($shm_bytes_written != strlen("my shared memory block")) {
    echo "Couldn't write the entire length of data\n";
}

// Now lets read the string back
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
    echo "Couldn't read from shared memory block\n";
}
echo "The data inside shared memory was: " . $my_string . "\n";

//Now lets delete the block and close the shared memory segment
if (!shmop_delete($shm_id)) {
    echo "Couldn't mark shared memory block for deletion.";
}
shmop_close($shm_id);

?>

范例
Shared Memory 函数
范例


Shared Memory 函数

Table of Contents

  • shmop_close — Close shared memory block
  • shmop_delete — Delete shared memory block
  • shmop_open — Create or open shared memory block
  • shmop_read — Read data from shared memory block
  • shmop_size — Get size of shared memory block
  • shmop_write — Write data into shared memory block
Shared Memory Operations Overview
shmop_close
Shared Memory


Close shared memory block

Shared Memory 函数
shmop_delete
Shared Memory 函数
PHP 手册

shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_close — Close shared memory block

说明

void shmop_close ( int $shmid )

shmop_close() is used to close a shared memory block.

参数

shmid

The shared memory block identifier created by shmop_open()

返回值

无返回值。

范例

Example #1 Closing shared memory block

<?php
shmop_close($shm_id);
?>

This example will close shared memory block identified by $shm_id.

参见

  • shmop_open() - Create or open shared memory block

Shared Memory 函数
shmop_delete
Shared Memory 函数


Delete shared memory block

shmop_close
shmop_open
Shared Memory 函数
PHP 手册

shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_delete — Delete shared memory block

说明

bool shmop_delete ( int $shmid )

shmop_delete() is used to delete a shared memory block.

参数

shmid

The shared memory block identifier created by shmop_open()

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Deleting shared memory block

<?php
shmop_delete($shm_id);
?>

This example will delete shared memory block identified by $shm_id.

shmop_close
shmop_open
Shared Memory 函数


Create or open shared memory block

shmop_delete
shmop_read
Shared Memory 函数
PHP 手册

shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open — Create or open shared memory block

说明

int shmop_open ( int $key , string $flags , int $mode , int $size )

shmop_open() can create or open a shared memory block.

参数

key

System's id for the shared memory block. Can be passed as a decimal or hex.

flags

The flags that you can use:

  • "a" for access (sets SHM_RDONLY for shmat) use this flag when you need to open an existing shared memory segment for read only
  • "c" for create (sets IPC_CREATE) use this flag when you need to create a new shared memory segment or if a segment with the same key exists, try to open it for read and write
  • "w" for read & write access use this flag when you need to read and write to a shared memory segment, use this flag in most cases.
  • "n" create a new memory segment (sets IPC_CREATE|IPC_EXCL) use this flag when you want to create a new shared memory segment but if one already exists with the same flag, fail. This is useful for security purposes, using this you can prevent race condition exploits.

mode

The permissions that you wish to assign to your memory segment, those are the same as permission for a file. Permissions need to be passed in octal form, like for example 0644

size

The size of the shared memory block you wish to create in bytes

Note: Note: the 3rd and 4th should be entered as 0 if you are opening an existing memory segment.

返回值

On success shmop_open() will return an id that you can use to access the shared memory segment you've created. FALSE is returned on failure.

范例

Example #1 Create a new shared memory block

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

This example opened a shared memory block with a system id returned by ftok().

参见

  • shmop_close() - Close shared memory block
  • shmop_delete() - Delete shared memory block

shmop_delete
shmop_read
Shared Memory 函数


Read data from shared memory block

shmop_open
shmop_size
Shared Memory 函数
PHP 手册

shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_read — Read data from shared memory block

说明

string shmop_read ( int $shmid , int $start , int $count )

shmop_read() will read a string from shared memory block.

参数

shmid

The shared memory block identifier created by shmop_open()

start

Offset from which to start reading

count

The number of bytes to read

返回值

Returns the data or FALSE on failure.

范例

Example #1 Reading shared memory block

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

This example will read 50 bytes from shared memory block and place the data inside $shm_data.

参见

  • shmop_write() - Write data into shared memory block

shmop_open
shmop_size
Shared Memory 函数


Get size of shared memory block

shmop_read
shmop_write
Shared Memory 函数
PHP 手册

shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_size — Get size of shared memory block

说明

int shmop_size ( int $shmid )

shmop_size() is used to get the size, in bytes of the shared memory block.

参数

shmid

The shared memory block identifier created by shmop_open()

返回值

Returns an int, which represents the number of bytes the shared memory block occupies.

范例

Example #1 Getting the size of the shared memory block

<?php
$shm_size = shmop_size($shm_id);
?>

This example will put the size of shared memory block identified by $shm_id into $shm_size.

shmop_read
shmop_write
Shared Memory 函数


Write data into shared memory block

shmop_size
其它基本扩展
Shared Memory 函数
PHP 手册

shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write — Write data into shared memory block

说明

int shmop_write ( int $shmid , string $data , int $offset )

shmop_write() will write a string into shared memory block.

参数

shmid

The shared memory block identifier created by shmop_open()

data

A string to write into shared memory block

offset

Specifies where to start writing data inside the shared memory segment.

返回值

The size of the written data , or FALSE on failure.

范例

Example #1 Writing to shared memory block

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

This example will write data inside $my_string into shared memory block, $shm_bytes_written will contain the number of bytes written.

参见

  • shmop_read() - Read data from shared memory block

shmop_size
其它基本扩展
Shared Memory 函数


其它基本扩展

  • GeoIP — Geo IP Location
    • 简介
    • 安装/配置
    • 预定义常量
    • GeoIP 函数
  • JSON — JavaScript Object Notation
    • 简介
    • 安装/配置
    • 预定义常量
    • JSON 函数
  • Misc. — Miscellaneous Functions
    • 简介
    • 安装/配置
    • 预定义常量
    • Misc. 函数
  • Parsekit
    • 简介
    • 安装/配置
    • 预定义常量
    • Parsekit 函数
  • SPL — PHP标准库 (SPL)
    • 简介
    • 安装/配置
    • 预定义常量
    • Datastructures
    • Iterators
    • Interfaces
    • Exceptions
    • SPL 函数
    • ArrayObject — The ArrayObject class
    • SplFileInfo — The SplFileInfo class
  • SPL Types — SPL Type Handling
    • 简介
    • SplInt — The SplInt class
    • SplFloat — The SplFloat class
    • SplEnum — The SplEnum class
    • SplBool — The SplBool class
  • Streams
    • 简介
    • 安装/配置
    • 预定义常量
    • Stream Filters
    • Stream Contexts
    • Stream Errors
    • 范例
    • Stream 函数
  • Tidy
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Tidy 函数
  • Tokenizer
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Tokenizer 函数
  • URLs
    • 简介
    • 安装/配置
    • 预定义常量
    • URL 函数
shmop_write
GeoIP
函数参考


Geo IP Location

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • GeoIP 函数
    • geoip_continent_code_by_name — Get the two letter continent code
    • geoip_country_code_by_name — Get the two letter country code
    • geoip_country_code3_by_name — Get the three letter country code
    • geoip_country_name_by_name — Get the full country name
    • geoip_database_info — Get GeoIP Database information
    • geoip_db_avail — Determine if GeoIP Database is available
    • geoip_db_filename — Returns the filename of the corresponding GeoIP Database
    • geoip_db_get_all_info — Returns detailed information about all GeoIP database types
    • geoip_id_by_name — Get the Internet connection speed
    • geoip_isp_by_name — Get the Internet Service Provider (ISP) name
    • geoip_org_by_name — Get the organization name
    • geoip_record_by_name — Returns the detailed City information found in the GeoIP Database
    • geoip_region_by_name — Get the country code and region
    • geoip_region_name_by_code — Returns the region name for some country and region code combo
    • geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo
其它基本扩展
简介
其它基本扩展


简介

The GeoIP extension allows you to find the location of an IP address. City, State, Country, Longitude, Latitude, and other information as all, such as ISP and connection type can be obtained with the help of GeoIP.

GeoIP
安装/配置
GeoIP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
GeoIP


需求

This extension requires the GeoIP C library version 1.4.0 or higher to be installed. You can grab the latest version from » http://www.maxmind.com/app/c and compile it yourself.

By default, you will only have access to the Free GeoIP Country or GeoLite City databases. While this module can work with other types of database, you must buy a commercial license from » Maxmind.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/geoip.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

GEOIP_COUNTRY_EDITION (integer)
GEOIP_REGION_EDITION_REV0 (integer)
GEOIP_CITY_EDITION_REV0 (integer)
GEOIP_ORG_EDITION (integer)
GEOIP_ISP_EDITION (integer)
GEOIP_CITY_EDITION_REV1 (integer)
GEOIP_REGION_EDITION_REV1 (integer)
GEOIP_PROXY_EDITION (integer)
GEOIP_ASNUM_EDITION (integer)
GEOIP_NETSPEED_EDITION (integer)
GEOIP_DOMAIN_EDITION (integer)

The following constants are for net speed:

GEOIP_UNKNOWN_SPEED (integer)
GEOIP_DIALUP_SPEED (integer)
GEOIP_CABLEDSL_SPEED (integer)
GEOIP_CORPORATE_SPEED (integer)
资源类型
GeoIP 函数
GeoIP


GeoIP 函数

Table of Contents

  • geoip_continent_code_by_name — Get the two letter continent code
  • geoip_country_code_by_name — Get the two letter country code
  • geoip_country_code3_by_name — Get the three letter country code
  • geoip_country_name_by_name — Get the full country name
  • geoip_database_info — Get GeoIP Database information
  • geoip_db_avail — Determine if GeoIP Database is available
  • geoip_db_filename — Returns the filename of the corresponding GeoIP Database
  • geoip_db_get_all_info — Returns detailed information about all GeoIP database types
  • geoip_id_by_name — Get the Internet connection speed
  • geoip_isp_by_name — Get the Internet Service Provider (ISP) name
  • geoip_org_by_name — Get the organization name
  • geoip_record_by_name — Returns the detailed City information found in the GeoIP Database
  • geoip_region_by_name — Get the country code and region
  • geoip_region_name_by_code — Returns the region name for some country and region code combo
  • geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo
预定义常量
geoip_continent_code_by_name
GeoIP


Get the two letter continent code

GeoIP 函数
geoip_country_code_by_name
GeoIP 函数
PHP 手册

geoip_continent_code_by_name

(PECL geoip >= 1.0.3)

geoip_continent_code_by_name — Get the two letter continent code

说明

string geoip_continent_code_by_name ( string $hostname )

The geoip_continent_code_by_name() function will return the two letter continent code corresponding to a hostname or an IP address.

参数

hostname

The hostname or IP address whose location is to be looked-up.

返回值

Returns the two letter continent code on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_continent_code_by_name() example

This will print where the host example.com is located.

<?php
$continent = geoip_continent_code_by_name('www.example.com');
if ($continent) {
    echo 'This host is located in: ' . $continent;
}
?>

上例将输出：

 This host is located in: NA

参见

  • geoip_country_code_by_name() - Get the two letter country code

GeoIP 函数
geoip_country_code_by_name
GeoIP 函数


Get the two letter country code

geoip_continent_code_by_name
geoip_country_code3_by_name
GeoIP 函数
PHP 手册

geoip_country_code_by_name

(PECL geoip >= 0.2.0)

geoip_country_code_by_name — Get the two letter country code

说明

string geoip_country_code_by_name ( string $hostname )

The geoip_country_code_by_name() function will return the two letter country code corresponding to a hostname or an IP address.

参数

hostname

The hostname or IP address whose location is to be looked-up.

返回值

Returns the two letter ISO country code on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_country_code_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
    echo 'This host is located in: ' . $country;
}
?>

上例将输出：

This host is located in: US

参见

  • geoip_country_code3_by_name() - Get the three letter country code
  • geoip_country_name_by_name() - Get the full country name

geoip_continent_code_by_name
geoip_country_code3_by_name
GeoIP 函数


Get the three letter country code

geoip_country_code_by_name
geoip_country_name_by_name
GeoIP 函数
PHP 手册

geoip_country_code3_by_name

(PECL geoip >= 0.2.0)

geoip_country_code3_by_name — Get the three letter country code

说明

string geoip_country_code3_by_name ( string $hostname )

The geoip_country_code3_by_name() function will return the three letter country code corresponding to a hostname or an IP address.

参数

hostname

The hostname or IP address whose location is to be looked-up.

返回值

Returns the three letter country code on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_country_code3_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
    echo 'This host is located in: ' . $country;
}
?>

上例将输出：

This host is located in: USA

参见

  • geoip_country_code_by_name() - Get the two letter country code
  • geoip_country_name_by_name() - Get the full country name

geoip_country_code_by_name
geoip_country_name_by_name
GeoIP 函数


Get the full country name

geoip_country_code3_by_name
geoip_database_info
GeoIP 函数
PHP 手册

geoip_country_name_by_name

(PECL geoip >= 0.2.0)

geoip_country_name_by_name — Get the full country name

说明

string geoip_country_name_by_name ( string $hostname )

The geoip_country_name_by_name() function will return the full country name corresponding to a hostname or an IP address.

参数

hostname

The hostname or IP address whose location is to be looked-up.

返回值

Returns the country name on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_country_name_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
    echo 'This host is located in: ' . $country;
}
?>

上例将输出：

 This host is located in: United States

参见

  • geoip_country_code_by_name() - Get the two letter country code
  • geoip_country_code3_by_name() - Get the three letter country code

geoip_country_code3_by_name
geoip_database_info
GeoIP 函数


Get GeoIP Database information

geoip_country_name_by_name
geoip_db_avail
GeoIP 函数
PHP 手册

geoip_database_info

(PECL geoip >= 0.2.0)

geoip_database_info — Get GeoIP Database information

说明

string geoip_database_info ([ int $database=GEOIP_COUNTRY_EDITION ] )

The geoip_database_info() function returns the corresponding GeoIP Database version as it is defined inside the binary file.

If this function is called without arguments, it returns the version of the GeoIP Free Country Edition.

参数

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

返回值

Returns the corresponding database version, or NULL on error.

范例

Example #1 A geoip_region_by_name() example

This will output the current database version string.

<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

上例将输出：

GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved

geoip_country_name_by_name
geoip_db_avail
GeoIP 函数


Determine if GeoIP Database is available

geoip_database_info
geoip_db_filename
GeoIP 函数
PHP 手册

geoip_db_avail

(PECL geoip >= 1.0.1)

geoip_db_avail — Determine if GeoIP Database is available

说明

bool geoip_db_avail ( int $database )

The geoip_db_avail() function returns if the corresponding GeoIP Database is available and can be opened on disk.

It does not indicate if the file is a proper database, only if it is readable.

参数

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

返回值

Returns TRUE is database exists, FALSE if not found, or NULL on error.

范例

Example #1 A geoip_db_avail() example

This will output the current database version string.

<?php

if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
    print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

上例将输出：

GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved

geoip_database_info
geoip_db_filename
GeoIP 函数


Returns the filename of the corresponding GeoIP Database

geoip_db_avail
geoip_db_get_all_info
GeoIP 函数
PHP 手册

geoip_db_filename

(PECL geoip >= 1.0.1)

geoip_db_filename — Returns the filename of the corresponding GeoIP Database

说明

string geoip_db_filename ( int $database )

The geoip_db_filename() function returns the filename of the corresponding GeoIP Database.

It does not indicate if the file exists or not on disk, only where the library is looking for the database.

参数

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

返回值

Returns the filename of the corresponding database, or NULL on error.

范例

Example #1 A geoip_db_filename() example

This will output the filename of the corresponding database.

<?php

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

上例将输出：

/usr/share/GeoIP/GeoIP.dat

geoip_db_avail
geoip_db_get_all_info
GeoIP 函数


Returns detailed information about all GeoIP database types

geoip_db_filename
geoip_id_by_name
GeoIP 函数
PHP 手册

geoip_db_get_all_info

(PECL geoip >= 1.0.1)

geoip_db_get_all_info — Returns detailed information about all GeoIP database types

说明

array geoip_db_get_all_info ( void )

The geoip_db_get_all_info() function will return detailed information as a multi-dimensional array about all the GeoIP database types.

This function is available even if no databases are installed. It will simply list them as non-available.

The names of the different keys of the returning associative array are as follows:

  • "available" -- Boolean, indicate if DB is available (see geoip_db_avail())
  • "description" -- The database description
  • "filename" -- The database filename on disk (see geoip_db_filename())

返回值

Returns the associative array.

范例

Example #1 A geoip_db_get_all_info() example

This will print the array containing all the information.

<?php
$infos = geoip_db_get_all_info();
if (is_array($infos)) {
    var_dump($infos);
}
?>

上例将输出：

array(11) {
  [1]=>
  array(3) {
    ["available"]=>
    bool(true)
    ["description"]=>
    string(21) "GeoIP Country Edition"
    ["filename"]=>
    string(32) "/usr/share/GeoIP/GeoIP.dat"
  }

[ ... ]

  [11]=>
  array(3) {
    ["available"]=>
    bool(false)
    ["description"]=>
    string(25) "GeoIP Domain Name Edition"
    ["filename"]=>
    string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
  }
}

Example #2 A geoip_db_get_all_info() example

You can use the various constants as keys to get only parts of the information.

<?php
$infos = geoip_db_get_all_info();
if ($infos[GEOIP_COUNTRY_EDITION]['available']) {
    echo $infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>

上例将输出：

GeoIP Country Edition

geoip_db_filename
geoip_id_by_name
GeoIP 函数


Get the Internet connection speed

geoip_db_get_all_info
geoip_isp_by_name
GeoIP 函数
PHP 手册

geoip_id_by_name

(PECL geoip >= 0.2.0)

geoip_id_by_name — Get the Internet connection speed

说明

int geoip_id_by_name ( string $hostname )

The geoip_id_by_name() function will return the country and region corresponding to a hostname or an IP address.

The return value is numeric and can be compared to the following constants:

  • GEOIP_UNKNOWN_SPEED
  • GEOIP_DIALUP_SPEED
  • GEOIP_CABLEDSL_SPEED
  • GEOIP_CORPORATE_SPEED

参数

hostname

The hostname or IP address whose net speed is to be looked-up.

返回值

Returns the net speed.

范例

Example #1 A geoip_id_by_name() example

This will output the net speed of the host example.com.

<?php
$netspeed = geoip_id_by_name('www.example.com');

echo 'The connection type is ';

switch ($netspeed) {
    case GEOIP_DIALUP_SPEED:
        echo 'dial-up';
        break;
    case GEOIP_CABLEDSL_SPEED:
        echo 'cable or DSL';
        break;
    case GEOIP_CORPORATE_SPEED:
        echo 'corporate';
        break;
    case GEOIP_UNKNOWN_SPEED:
    default:
        echo 'unknown';
}
?>

上例将输出：

The connection type is corporate

geoip_db_get_all_info
geoip_isp_by_name
GeoIP 函数


Get the Internet Service Provider (ISP) name

geoip_id_by_name
geoip_org_by_name
GeoIP 函数
PHP 手册

geoip_isp_by_name

(PECL geoip >= 1.0.2)

geoip_isp_by_name — Get the Internet Service Provider (ISP) name

说明

string geoip_isp_by_name ( string $hostname )

The geoip_isp_by_name() function will return the name of the Internet Service Provider (ISP) that an IP is assigned to.

This function is currently only available to users who have bought a commercial GeoIP ISP Edition. A warning will be issued if the proper database cannot be located.

参数

hostname

The hostname or IP address.

返回值

Returns the ISP name on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_isp_by_name() example

This will print the ISP name of host example.com.

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
    echo 'This host IP is from ISP: ' . $isp;
}
?>

上例将输出：

This host IP is allocated to: ICANN c/o Internet Assigned Numbers Authority

geoip_id_by_name
geoip_org_by_name
GeoIP 函数


Get the organization name

geoip_isp_by_name
geoip_record_by_name
GeoIP 函数
PHP 手册

geoip_org_by_name

(PECL geoip >= 0.2.0)

geoip_org_by_name — Get the organization name

说明

string geoip_org_by_name ( string $hostname )

The geoip_org_by_name() function will return the name of the organization that an IP is assigned to.

This function is currently only available to users who have bought a commercial GeoIP Organization, ISP or AS Edition. A warning will be issued if the proper database cannot be located.

参数

hostname

The hostname or IP address.

返回值

Returns the organization name on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_org_by_name() example

This will print to whom the host example.com IP is allocated.

<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
    echo 'This host IP is allocated to: ' . $org;
}
?>

上例将输出：

This host IP is allocated to: ICANN c/o Internet Assigned Numbers Authority

geoip_isp_by_name
geoip_record_by_name
GeoIP 函数


Returns the detailed City information found in the GeoIP Database

geoip_org_by_name
geoip_region_by_name
GeoIP 函数
PHP 手册

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name — Returns the detailed City information found in the GeoIP Database

说明

array geoip_record_by_name ( string $hostname )

The geoip_record_by_name() function will return the record information corresponding to a hostname or an IP address.

This function is available for both GeoLite City Edition and commercial GeoIP City Edition. A warning will be issued if the proper database cannot be located.

The names of the different keys of the returning associative array are as follows:

  • "continent_code" -- Two letter continent code (as of version 1.0.4 with libgeoip 1.4.3 or newer)
  • "country_code" -- Two letter country code (see geoip_country_code_by_name())
  • "country_code3" -- Three letter country code (see geoip_country_code3_by_name())
  • "country_name" -- The country name (see geoip_country_name_by_name())
  • "region" -- The region code (ex: CA for California)
  • "city" -- The city.
  • "postal_code" -- The Postal Code, FSA or Zip Code.
  • "latitude" -- The Latitude as signed double.
  • "longitude" -- The Longitude as signed double.
  • "dma_code" -- Designated Market Area code (USA and Canada only)
  • "area_code" -- The PSTN area code (ex: 212)

参数

hostname

The hostname or IP address whose record is to be looked-up.

返回值

Returns the associative array on success, or FALSE if the address cannot be found in the database.

更新日志

版本 | 说明
1.0.4 | Adding the continent_code with GeoIP Library 1.4.3 or newer only
1.0.3 | Adding country_code3 and country_name

范例

Example #1 A geoip_record_by_name() example

This will print the array containing the record of host example.com.

<?php
$record = geoip_record_by_name('www.example.com');
if ($record) {
    print_r($record);
}
?>

上例将输出：

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] =>
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)

geoip_org_by_name
geoip_region_by_name
GeoIP 函数


Get the country code and region

geoip_record_by_name
geoip_region_name_by_code
GeoIP 函数
PHP 手册

geoip_region_by_name

(PECL geoip >= 0.2.0)

geoip_region_by_name — Get the country code and region

说明

array geoip_region_by_name ( string $hostname )

The geoip_region_by_name() function will return the country and region corresponding to a hostname or an IP address.

This function is currently only available to users who have bought a commercial GeoIP Region Edition. A warning will be issued if the proper database cannot be located.

The names of the different keys of the returning associative array are as follows:

  • "country_code" -- Two letter country code (see geoip_country_code_by_name())
  • "region" -- The region code (ex: CA for California)

参数

hostname

The hostname or IP address whose region is to be looked-up.

返回值

Returns the associative array on success, or FALSE if the address cannot be found in the database.

范例

Example #1 A geoip_region_by_name() example

This will print the array containing the country code and region of the host example.com.

<?php
$region = geoip_region_by_name('www.example.com');
if ($region) {
    print_r($region);
}
?>

上例将输出：

Array
(
    [country_code] => US
    [region] => CA
)

geoip_record_by_name
geoip_region_name_by_code
GeoIP 函数


Returns the region name for some country and region code combo

geoip_region_by_name
geoip_time_zone_by_country_and_region
GeoIP 函数
PHP 手册

geoip_region_name_by_code

(PECL geoip >= 1.0.4)

geoip_region_name_by_code — Returns the region name for some country and region code combo

说明

string geoip_region_name_by_code ( string $country_code , string $region_code )

The geoip_region_name_by_code() function will return the region name corresponding to a country and region code combo.

In the United States, the region code corresponds to the two-letter abbreviation of each state. In Canada, the region code corresponds to the two-letter province or territory code as attributed by Canada Post.

For the rest of the world, GeoIP uses FIPS 10-4 codes to represent regions. You can check » http://www.maxmind.com/app/fips10_4 for a detailed list of FIPS 10-4 codes.

This function is always available if using GeoIP Library version 1.4.1 or newer. The data is taken directly from the GeoIP Library and not from any database.

参数

country_code

The two-letter country code (see geoip_country_code_by_name())

region_code

The two-letter (or digit) region code (see geoip_region_by_name())

返回值

Returns the region name on success, or FALSE if the country and region code combo cannot be found.

范例

Example #1 A geoip_region_name_by_code() example using region code for US/Canada

This will print the region name for country CA (Canada), region QC (Quebec).

<?php
$region = geoip_region_name_by_code('CA', 'QC');
if ($region) {
    echo 'Region name for CA/QC is: ' . $region;
}
?>

上例将输出：

Region name for CA/QC is: Quebec

Example #2 A geoip_region_name_by_code() example using FIPS codes

This will print the region name for country JP (Japan), region 01.

<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
    echo 'Region name for JP/01 is: ' . $region;
}
?>

上例将输出：

Region name for JP/01 is: Aichi

geoip_region_by_name
geoip_time_zone_by_country_and_region
GeoIP 函数


Returns the time zone for some country and region code combo

geoip_region_name_by_code
JSON
GeoIP 函数
PHP 手册

geoip_time_zone_by_country_and_region

(PECL geoip >= 1.0.4)

geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo

说明

string geoip_time_zone_by_country_and_region ( string $country_code [, string $region_code ] )

The geoip_time_zone_by_country_and_region() function will return the time zone corresponding to a country and region code combo.

In the United States, the region code corresponds to the two-letter abbreviation of each state. In Canada, the region code corresponds to the two-letter province or territory code as attributed by Canada Post.

For the rest of the world, GeoIP uses FIPS 10-4 codes to represent regions. You can check » http://www.maxmind.com/app/fips10_4 for a detailed list of FIPS 10-4 codes.

This function is always available if using GeoIP Library version 1.4.1 or newer. The data is taken directly from the GeoIP Library and not from any database.

参数

country_code

The two-letter country code (see geoip_country_code_by_name())

region_code

The two-letter (or digit) region code (see geoip_region_by_name())

返回值

Returns the time zone on success, or FALSE if the country and region code combo cannot be found.

范例

Example #1 A geoip_time_zone_by_country_and_region() example using region code for US/Canada

This will print the time zone for country CA (Canada), region QC (Quebec).

<?php
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
    echo 'Time zone for CA/QC is: ' . $timezone;
}
?>

上例将输出：

Time zone for CA/QC is: America/Montreal

Example #2 A geoip_time_zone_by_country_and_region() example using FIPS codes

This will print the time zone for country JP (Japan), region 01 (Aichi).

<?php
$timezone = geoip_time_zone_by_country_and_region('JP', '01');
if ($timezone) {
    echo 'Time zone for JP/01 is: ' . $timezone;
}
?>

上例将输出：

Time zone for JP/01 is: Asia/Tokyo

geoip_region_name_by_code
JSON
GeoIP 函数


JavaScript Object Notation

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • JSON 函数
    • json_decode — 对 JSON 格式的字符串进行编码
    • json_encode — 对变量进行 JSON 编码
    • json_last_error — Returns the last error occured
geoip_time_zone_by_country_and_region
简介
其它基本扩展


简介

This extension implements the » JavaScript Object Notation (JSON) data-interchange format. The decoding is handled by a parser based on the JSON_checker by Douglas Crockford.

JSON
安装/配置
JSON


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
JSON


需求

As of PHP 5.2.0, the JSON extension is bundled and compiled into PHP by default.

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/json

安装/配置
安装
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following constants indicate the type of error returned by json_last_error(). They are all available as of PHP 5.3.0.

JSON_ERROR_NONE (integer)
No error has occurred.
JSON_ERROR_DEPTH (integer)
The maximum stack depth has been exceeded.
JSON_ERROR_CTRL_CHAR (integer)
Control character error, possibly incorrectly encoded.
JSON_ERROR_SYNTAX (integer)
Syntax error.
资源类型
JSON 函数
JSON


JSON 函数

Table of Contents

  • json_decode — 对 JSON 格式的字符串进行编码
  • json_encode — 对变量进行 JSON 编码
  • json_last_error — Returns the last error occured
预定义常量
json_decode
JSON


对 JSON 格式的字符串进行编码

JSON 函数
json_encode
JSON 函数
PHP 手册

json_decode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_decode — 对 JSON 格式的字符串进行编码

说明

mixed json_decode ( string $json [, bool $assoc ] )

接受一个 JSON 格式的字符串并且把它转换为 PHP 变量

参数

json

待解码的 json string 格式的字符串。

assoc

当该参数为 TRUE 时，将返回 array 而非 object 。

返回值

Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.

范例

Example #1 json_decode() 的例子

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

上例将输出：

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

参见

  • json_encode() - 对变量进行 JSON 编码

JSON 函数
json_encode
JSON 函数


对变量进行 JSON 编码

json_decode
json_last_error
JSON 函数
PHP 手册

json_encode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_encode — 对变量进行 JSON 编码

说明

string json_encode ( mixed $value )

返回 value 值的 JSON 形式

参数

value

待编码的 value ，除了resource 类型之外，可以为任何数据类型

该函数只能接受 UTF-8 编码的数据（译注：指字符/字符串类型的数据）

返回值

编码成功则返回一个以 JSON 形式表示的 string 。

范例

Example #1 A json_encode() 的例子

<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>

上例将输出：

{"a":1,"b":2,"c":3,"d":4,"e":5}

参见

  • json_decode() - 对 JSON 格式的字符串进行编码

json_decode
json_last_error
JSON 函数


Returns the last error occured

json_encode
Misc.
JSON 函数
PHP 手册

json_last_error

(PHP 5 >= 5.3.0)

json_last_error — Returns the last error occured

说明

int json_last_error ( void )

Returns the last error (if any) occured by last JSON parsing.

参数

This function has no parameters.

返回值

Returns an integer, the value can be one of the following constants:

JSON error codes
Constant | Meaning
JSON_ERROR_NONE | No error has occured
JSON_ERROR_DEPTH | The maximum stack depth has been exceeded
JSON_ERROR_CTRL_CHAR | Control character error, possibly incorrectly encoded
JSON_ERROR_SYNTAX | Syntax error

范例

Example #1 json_last_error() example

<?php
// A valid json string
$json[] = '{"Organization": "PHP Documentation Team"}';

// An invalid json string which will cause an syntax
// error, in this case we used ' instead of " for quotation
$json[] = "{'Organization': 'PHP Documentation Team'}";

foreach($json as $string)
{
    echo 'Decoding: ' . $string;
    json_decode($string);

    switch(json_last_error())
    {
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Syntax error, malformed JSON';
        break;
        case JSON_ERROR_NONE:
            echo ' - No errors';
        break;
    }

    echo PHP_EOL;
}
?>

上例将输出：

Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON

参见

  • json_decode() - 对 JSON 格式的字符串进行编码

json_encode
Misc.
JSON 函数


Miscellaneous Functions

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Misc. 函数
    • connection_aborted — Check whether client disconnected
    • connection_status — Returns connection status bitfield
    • connection_timeout — Check if the script timed out
    • constant — Returns the value of a constant
    • define — Defines a named constant
    • defined — Checks whether a given named constant exists
    • die — Equivalent to exit
    • eval — Evaluate a string as PHP code
    • exit — Output a message and terminate the current script
    • get_browser — Tells what the user's browser is capable of
    • __halt_compiler — Halts the compiler execution
    • highlight_file — Syntax highlighting of a file
    • highlight_string — Syntax highlighting of a string
    • ignore_user_abort — Set whether a client disconnect should abort script execution
    • pack — Pack data into binary string
    • php_check_syntax — Check the PHP syntax of (and execute) the specified file
    • php_strip_whitespace — Return source with stripped comments and whitespace
    • show_source — 别名 highlight_file
    • sleep — Delay execution
    • sys_getloadavg — Gets system load average
    • time_nanosleep — Delay for a number of seconds and nanoseconds
    • time_sleep_until — Make the script sleep until the specified time
    • uniqid — Generate a unique ID
    • unpack — Unpack data from binary string
    • usleep — Delay execution in microseconds
json_last_error
简介
其它基本扩展


简介

These functions were placed here because none of the other categories seemed to fit.

Misc.
安装/配置
Misc.


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Misc.


运行时配置

这些函数的行为受 php.ini 的影响。

Misc. Configuration Options
Name | Default | Changeable | Changelog
ignore_user_abort | "0" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Removed in PHP 6.0.0.
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

ignore_user_abort boolean

FALSE by default. If changed to TRUE scripts will not be terminated after a client has aborted their connection.

See also ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Colors for Syntax Highlighting mode. Anything that's acceptable in <font color="??????"> would work.

browscap string

Name (e.g.: browscap.ini) and location of browser capabilities file. See also get_browser().

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

CONNECTION_ABORTED (integer)
CONNECTION_NORMAL (integer)
CONNECTION_TIMEOUT (integer)
__COMPILER_HALT_OFFSET__ (integer)
Added in PHP 5.1.
资源类型
Misc. 函数
Misc.


Misc. 函数

Table of Contents

  • connection_aborted — Check whether client disconnected
  • connection_status — Returns connection status bitfield
  • connection_timeout — Check if the script timed out
  • constant — Returns the value of a constant
  • define — Defines a named constant
  • defined — Checks whether a given named constant exists
  • die — Equivalent to exit
  • eval — Evaluate a string as PHP code
  • exit — Output a message and terminate the current script
  • get_browser — Tells what the user's browser is capable of
  • __halt_compiler — Halts the compiler execution
  • highlight_file — Syntax highlighting of a file
  • highlight_string — Syntax highlighting of a string
  • ignore_user_abort — Set whether a client disconnect should abort script execution
  • pack — Pack data into binary string
  • php_check_syntax — Check the PHP syntax of (and execute) the specified file
  • php_strip_whitespace — Return source with stripped comments and whitespace
  • show_source — 别名 highlight_file
  • sleep — Delay execution
  • sys_getloadavg — Gets system load average
  • time_nanosleep — Delay for a number of seconds and nanoseconds
  • time_sleep_until — Make the script sleep until the specified time
  • uniqid — Generate a unique ID
  • unpack — Unpack data from binary string
  • usleep — Delay execution in microseconds
预定义常量
connection_aborted
Misc.


Check whether client disconnected

Misc. 函数
connection_status
Misc. 函数
PHP 手册

connection_aborted

(PHP 4, PHP 5)

connection_aborted — Check whether client disconnected

说明

int connection_aborted ( void )

Checks whether the client disconnected.

返回值

Returns 1 if client disconnected, 0 otherwise.

参见

  • connection_status() - Returns connection status bitfield
  • ignore_user_abort() - Set whether a client disconnect should abort script execution
  • Connection Handling for a complete description of connection handling in PHP.

Misc. 函数
connection_status
Misc. 函数


Returns connection status bitfield

connection_aborted
connection_timeout
Misc. 函数
PHP 手册

connection_status

(PHP 4, PHP 5)

connection_status — Returns connection status bitfield

说明

int connection_status ( void )

Gets the connection status bitfield.

返回值

Returns the connection status bitfield, which can be used against the CONNECTION_XXX constants to determine the connection status.

参见

  • connection_aborted() - Check whether client disconnected
  • ignore_user_abort() - Set whether a client disconnect should abort script execution
  • Connection Handling for a complete description of connection handling in PHP.

connection_aborted
connection_timeout
Misc. 函数


Check if the script timed out

connection_status
constant
Misc. 函数
PHP 手册

connection_timeout

(PHP 4 <= 4.0.4)

connection_timeout — Check if the script timed out

说明

int connection_timeout ( void )

Determines whether the script timed out.

返回值

Returns 1 if the script timed out, 0 otherwise.

注释

Warning

Deprecated

This function is deprecated, and doesn't even exist anymore as of 4.0.5.

参见

  • connection_status() - Returns connection status bitfield
  • Connection Handling for a complete description of connection handling in PHP.

connection_status
constant
Misc. 函数


Returns the value of a constant

connection_timeout
define
Misc. 函数
PHP 手册

constant

(PHP 4 >= 4.0.4, PHP 5)

constant — Returns the value of a constant

说明

mixed constant ( string $name )

Return the value of the constant indicated by name .

constant() is useful if you need to retrieve the value of a constant, but do not know its name. I.e. it is stored in a variable or returned by a function.

This function works also with class constants.

参数

name

The constant name.

返回值

Returns the value of the constant, or NULL if the constant is not defined.

范例

Example #1 constant() example

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // same thing as the previous line

interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

参见

  • define() - Defines a named constant
  • defined() - Checks whether a given named constant exists
  • The section on Constants

connection_timeout
define
Misc. 函数


Defines a named constant

constant
defined
Misc. 函数
PHP 手册

define

(PHP 4, PHP 5)

define — Defines a named constant

说明

bool define ( string $name , mixed $value [, bool $case_insensitive=false ] )

Defines a named constant at runtime.

参数

name

The name of the constant.

value

The value of the constant; only scalar and null values are allowed. Scalar values are integer, float, string or boolean values.

case_insensitive

If set to TRUE, the constant will be defined case-insensitive. The default behaviour is case-sensitive; i.e. CONSTANT and Constant represent different values.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Defining Constants

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.

define("GREETING", "Hello you.", true);
echo GREETING; // outputs "Hello you."
echo Greeting; // outputs "Hello you."

?>

参见

  • defined() - Checks whether a given named constant exists
  • constant() - Returns the value of a constant
  • The section on Constants

constant
defined
Misc. 函数


Checks whether a given named constant exists

define
die
Misc. 函数
PHP 手册

defined

(PHP 4, PHP 5)

defined — Checks whether a given named constant exists

说明

bool defined ( string $name )

Checks whether the given constant exists and is defined.

Note: If you want to see if a variable exists, use isset() as defined() only applies to constants. If you want to see if a function exists, use function_exists().

参数

name

The constant name.

返回值

Returns TRUE if the named constant given by name has been defined, FALSE otherwise.

范例

Example #1 Checking Constants

<?php
/* Note the use of quotes, this is important.  This example is checking
 * if the string 'CONSTANT' is the name of a constant named CONSTANT */
if (defined('CONSTANT')) {
    echo CONSTANT;
}
?>

参见

  • define() - Defines a named constant
  • constant() - Returns the value of a constant
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • function_exists() - Return TRUE if the given function has been defined
  • The section on Constants

define
die
Misc. 函数


Equivalent to exit

defined
eval
Misc. 函数
PHP 手册

die

(PHP 4, PHP 5)

die — Equivalent to exit()

说明

This language construct is equivalent to exit().

defined
eval
Misc. 函数


Evaluate a string as PHP code

die
exit
Misc. 函数
PHP 手册

eval

(PHP 4, PHP 5)

eval — Evaluate a string as PHP code

说明

mixed eval ( string $code_str )

Evaluates the string given in code_str as PHP code. Among other things, this can be useful for storing code in a database text field for later execution.

There are some factors to keep in mind when using eval(). Remember that the string passed must be valid PHP code, including things like terminating statements with a semicolon so the parser doesn't die on the line after the eval(), and properly escaping things in code_str . To mix HTML output and PHP code you can use a closing PHP tag to leave PHP mode.

Also remember that variables given values under eval() will retain these values in the main script afterwards.

参数

code_str

The code string to be evaluated. code_str does not have to contain PHP Opening tags.

A return statement will immediately terminate the evaluation of the string .

返回值

eval() returns NULL unless return is called in the evaluated code, in which case the value passed to return is returned. If there is a parse error in the evaluated code, eval() returns FALSE and execution of the following code continues normally. It is not possible to catch a parse error in eval() using set_error_handler().

范例

Example #1 eval() example - simple text merge

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

上例将输出：

This is a $string with my $name in it.
This is a cup with my coffee in it.

注释

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

Tip

为了防止程序直接将结果输出到浏览器，可以使用输出控制函数来捕获此函数的输出，并把它们保存到一个例如 string 类型的变量中。

Note: In case of a fatal error in the evaluated code, the whole script exits.

参见

  • call_user_func() - Call a user function given by the first parameter

die
exit
Misc. 函数


Output a message and terminate the current script

eval
get_browser
Misc. 函数
PHP 手册

exit

(PHP 4, PHP 5)

exit — Output a message and terminate the current script

说明

void exit ([ string $status ] )
void exit ( int $status )

Terminates execution of the script.

参数

status

If status is a string, this function prints the status just before exiting.

If status is an integer, that value will also be used as the exit status. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.

Note: PHP >= 4.2.0 does NOT print the status if it is an integer.

返回值

无返回值。

范例

Example #1 exit() example

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("unable to open file ($filename)");

?>

Example #2 exit() status example

<?php

//exit program normally
exit;
exit();
exit(0);

//exit with an error code
exit(1);
exit(0376); //octal

?>

注释

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

Note: This language construct is equivalent to die().

参见

  • register_shutdown_function() - Register a function for execution on shutdown

eval
get_browser
Misc. 函数


Tells what the user's browser is capable of

exit
__halt_compiler
Misc. 函数
PHP 手册

get_browser

(PHP 4, PHP 5)

get_browser — Tells what the user's browser is capable of

说明

mixed get_browser ([ string $user_agent [, bool $return_array=false ]] )

Attempts to determine the capabilities of the user's browser, by looking up the browser's information in the browscap.ini file.

参数

user_agent

The User Agent to be analyzed. By default, the value of HTTP User-Agent header is used; however, you can alter this (i.e., look up another browser's info) by passing this parameter.

You can bypass this parameter with a NULL value.

return_array

If set to TRUE, this function will return an array instead of an object.

返回值

The information is returned in an object or an array which will contain various data elements representing, for instance, the browser's major and minor version numbers and ID string; TRUE/FALSE values for features such as frames, JavaScript, and cookies; and so forth.

The cookies value simply means that the browser itself is capable of accepting cookies and does not mean the user has enabled the browser to accept cookies or not. The only way to test if cookies are accepted is to set one with setcookie(), reload, and check for the value.

更新日志

版本 | 说明
4.3.2 | The optional parameter return_array was added.

范例

Example #1 Listing all information about the users browser

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

上例的输出类似于：

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [css] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

注释

Note: In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system.
browscap.ini is not bundled with PHP, but you may find an up-to-date » php_browscap.ini file here.
While browscap.ini contains information on many browsers, it relies on user updates to keep the database current. The format of the file is fairly self-explanatory.

exit
__halt_compiler
Misc. 函数


Halts the compiler execution

get_browser
highlight_file
Misc. 函数
PHP 手册

__halt_compiler

(PHP 5)

__halt_compiler — Halts the compiler execution

说明

void __halt_compiler ( void )

Halts the execution of the compiler. This can be useful to embed data in PHP scripts, like the installation files.

Byte position of the data start can be determined by the __COMPILER_HALT_OFFSET__ constant which is defined only if there is a __halt_compiler() presented in the file.

返回值

无返回值。

范例

Example #1 A __halt_compiler() example

<?php

// open this file
$fp = fopen(__FILE__, 'r');

// seek file pointer to data
fseek($fp, __COMPILER_HALT_OFFSET__);

// and output it
var_dump(stream_get_contents($fp));

// the end of the script execution
__halt_compiler(); the installation data (eg. tar, gz, PHP, etc.)

注释

Note: __halt_compiler() can only be used from the outermost scope.

get_browser
highlight_file
Misc. 函数


Syntax highlighting of a file

__halt_compiler
highlight_string
Misc. 函数
PHP 手册

highlight_file

(PHP 4, PHP 5)

highlight_file — Syntax highlighting of a file

说明

mixed highlight_file ( string $filename [, bool $return=false ] )

Prints out or returns a syntax highlighted version of the code contained in filename using the colors defined in the built-in syntax highlighter for PHP.

Many servers are configured to automatically highlight files with a phps extension. For example, example.phps when viewed will show the syntax highlighted source of the file. To enable this, add this line to the httpd.conf:

AddType application/x-httpd-php-source .phps

参数

filename

Path to the PHP file to be highlighted.

return

Set this parameter to TRUE to make this function return the highlighted code.

返回值

If return is set to TRUE, returns the highlighted code as a string instead of printing it out. Otherwise, it will return TRUE on success, FALSE on failure.

更新日志

版本 | 说明
4.2.1 | This function is now also affected by safe_mode and open_basedir.
4.2.0 | The return parameter was added.

注释

Caution

Care should be taken when using the highlight_file() function to make sure that you do not inadvertently reveal sensitive information such as passwords or any other type of information that might create a potential security risk.

Note: 该函数的内部依赖这个参数使用输出缓冲，所以它不能在 ob_start() 的回调函数中使用

参见

  • highlight_string() - Syntax highlighting of a string

__halt_compiler
highlight_string
Misc. 函数


Syntax highlighting of a string

highlight_file
ignore_user_abort
Misc. 函数
PHP 手册

highlight_string

(PHP 4, PHP 5)

highlight_string — Syntax highlighting of a string

说明

mixed highlight_string ( string $str [, bool $return=false ] )

Outputs or returns a syntax highlighted version of the given PHP code using the colors defined in the built-in syntax highlighter for PHP.

参数

str

The PHP code to be highlighted. This should include the opening tag.

return

Set this parameter to TRUE to make this function return the highlighted code.

返回值

If return is set to TRUE, returns the highlighted code as a string instead of printing it out. Otherwise, it will return TRUE on success, FALSE on failure.

更新日志

版本 | 说明
4.2.0 | The return parameter was added.

范例

Example #1 highlight_string() example

<?php
highlight_string('<?php phpinfo(); ?>');
?>

The above example will output (in PHP 4):

<code><font color="#000000">
<font color="#0000BB">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font>
</font>
</code>

The above example will output (in PHP 5):

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

注释

Note: 该函数的内部依赖这个参数使用输出缓冲，所以它不能在 ob_start() 的回调函数中使用

参见

  • highlight_file() - Syntax highlighting of a file

highlight_file
ignore_user_abort
Misc. 函数


Set whether a client disconnect should abort script execution

highlight_string
pack
Misc. 函数
PHP 手册

ignore_user_abort

(PHP 4, PHP 5)

ignore_user_abort — Set whether a client disconnect should abort script execution

说明

int ignore_user_abort ([ string $setting ] )

Sets whether a client disconnect should cause a script to be aborted.

参数

setting

If not set, the function will only return the current setting.

返回值

Returns the previous setting, as a boolean.

范例

Example #1 A ignore_user_abort() example

<?php
// Ignore user aborts and allow the script
// to run forever
ignore_user_abort();
set_time_limit(0);

echo 'Testing connection handling in PHP';

// Run a pointless loop that sometime
// hopefully will make us click away from
// page or click the "Stop" button.
while(1)
{
    // Did the connection fail?
    if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }

    // Sleep for 10 seconds
    sleep(10);
}

// If this is reached, then the 'break'
// was triggered from inside the while loop

// So here we can log, or perform any other tasks
// we need without actually being dependent on the
// browser.
?>

注释

PHP will not detect that the user has aborted the connection until an attempt is made to send information to the client. Simply using an echo statement does not guarantee that information is sent, see flush().

参见

  • connection_aborted() - Check whether client disconnected
  • connection_status() - Returns connection status bitfield
  • Connection Handling for a complete description of connection handling in PHP.

highlight_string
pack
Misc. 函数


Pack data into binary string

ignore_user_abort
php_check_syntax
Misc. 函数
PHP 手册

pack

(PHP 4, PHP 5)

pack — Pack data into binary string

说明

string pack ( string $format [, mixed $args [, mixed $... ]] )

Pack given arguments into binary string according to format .

The idea for this function was taken from Perl and all formatting codes work the same as in Perl However, there are some formatting codes that are missing such as Perl's "u" format code.

Note that the distinction between signed and unsigned values only affects the function unpack(), where as function pack() gives the same result for signed and unsigned format codes.

Also note that PHP internally stores integer values as signed values of a machine-dependent size. If you give it an unsigned integer value too large to be stored that way it is converted to a float which often yields an undesired result.

参数

format

The format string consists of format codes followed by an optional repeater argument. The repeater argument can be either an integer value or * for repeating to the end of the input data. For a, A, h, H the repeat count specifies how many characters of one data argument are taken, for @ it is the absolute position where to put the next data, for everything else the repeat count specifies how many data arguments are consumed and packed into the resulting binary string.

Currently implemented formats are:

pack() format characters
Code | Description
a | NUL-padded string
A | SPACE-padded string
h | Hex string, low nibble first
H | Hex string, high nibble first
c | signed char
C | unsigned char
s | signed short (always 16 bit, machine byte order)
S | unsigned short (always 16 bit, machine byte order)
n | unsigned short (always 16 bit, big endian byte order)
v | unsigned short (always 16 bit, little endian byte order)
i | signed integer (machine dependent size and byte order)
I | unsigned integer (machine dependent size and byte order)
l | signed long (always 32 bit, machine byte order)
L | unsigned long (always 32 bit, machine byte order)
N | unsigned long (always 32 bit, big endian byte order)
V | unsigned long (always 32 bit, little endian byte order)
f | float (machine dependent size and representation)
d | double (machine dependent size and representation)
x | NUL byte
X | Back up one byte
@ NUL-fill to absolute position

args

返回值

Returns a binary string containing data.

范例

Example #1 pack() example

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

The resulting binary string will be 6 bytes long and contain the byte sequence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

参见

  • unpack() - Unpack data from binary string

ignore_user_abort
php_check_syntax
Misc. 函数


Check the PHP syntax of (and execute) the specified file

pack
php_strip_whitespace
Misc. 函数
PHP 手册

php_check_syntax

(PHP 5 <= 5.0.4)

php_check_syntax — Check the PHP syntax of (and execute) the specified file

说明

bool php_check_syntax ( string $filename [, string &$error_message ] )

Performs a syntax (lint) check on the specified filename testing for scripting errors.

This is similar to using php -l from the commandline except that this function will execute (but not output) the checked filename .

For example, if a function is defined in filename , this defined function will be available to the file that executed php_check_syntax(), but output from filename will be suppressed.

Note: For technical reasons, this function is deprecated and removed from PHP. Instead, use php -l somefile.php from the commandline.

参数

filename

The name of the file being checked.

error_message

If the error_message parameter is used, it will contain the error message generated by the syntax check. error_message is passed by reference.

返回值

Returns TRUE if the lint check passed, and FALSE if the link check failed or if filename cannot be opened.

更新日志

版本 | 说明
5.0.5 | This function was removed from PHP.
5.0.3 | Calling exit() after php_check_syntax() resulted in a Segfault.
5.0.1 | error_message is passed by reference.

范例

php -l somefile.php

上例的输出类似于：

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

参见

  • include() - include
  • is_readable() - 判断给定文件名是否可读

pack
php_strip_whitespace
Misc. 函数


Return source with stripped comments and whitespace

php_check_syntax
show_source
Misc. 函数
PHP 手册

php_strip_whitespace

(PHP 5)

php_strip_whitespace — Return source with stripped comments and whitespace

说明

string php_strip_whitespace ( string $filename )

Returns the PHP source code in filename with PHP comments and whitespace removed. This may be useful for determining the amount of actual code in your scripts compared with the amount of comments. This is similar to using php -w from the commandline.

参数

filename

Path to the PHP file.

返回值

The stripped source code will be returned on success, or an empty string on failure.

Note: This function works as described as of PHP 5.0.1. Before this it would only return an empty string. For more information on this bug and its prior behavior, see bug report » #29606.

范例

Example #1 php_strip_whitespace() example

<?php
// PHP comment here

/*
 * Another PHP comment
 */

echo        php_strip_whitespace(__FILE__);
// Newlines are considered whitespace, and are removed too:
do_nothing();
?>

上例将输出：

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

Notice the PHP comments are gone, as are the whitespace and newline after the first echo statement.

php_check_syntax
show_source
Misc. 函数


别名 highlight_file

php_strip_whitespace
sleep
Misc. 函数
PHP 手册

show_source

(PHP 4, PHP 5)

show_source — 别名 highlight_file()

说明

本函数是该函数的别名： highlight_file().

php_strip_whitespace
sleep
Misc. 函数


Delay execution

show_source
sys_getloadavg
Misc. 函数
PHP 手册

sleep

(PHP 4, PHP 5)

sleep — Delay execution

说明

int sleep ( int $seconds )

Delays the program execution for the given number of seconds .

参数

seconds

Halt time in seconds.

返回值

Returns zero on success, or FALSE on errors. If the call was interrupted by a signal, sleep() returns the number of seconds left to sleep.

错误／异常

If the specified number of seconds is negative, this function will generate a E_WARNING.

范例

Example #1 sleep() example

<?php

// current time
echo date('h:i:s') . "\n";

// sleep for 10 seconds
sleep(10);

// wake up !
echo date('h:i:s') . "\n";

?>

This example will output (after 10 seconds)

05:31:23
05:31:33

参见

  • usleep() - Delay execution in microseconds
  • time_nanosleep() - Delay for a number of seconds and nanoseconds
  • time_sleep_until() - Make the script sleep until the specified time
  • set_time_limit() - Limits the maximum execution time

show_source
sys_getloadavg
Misc. 函数


Gets system load average

sleep
time_nanosleep
Misc. 函数
PHP 手册

sys_getloadavg

(PHP 5 >= 5.1.3)

sys_getloadavg — Gets system load average

说明

array sys_getloadavg ( void )

Returns three samples representing the average system load (the number of processes in the system run queue) over the last 1, 5 and 15 minutes, respectively.

返回值

Returns an array with three samples (last 1, 5 and 15 minutes).

范例

Example #1 A sys_getloadavg() example

<?php
$load = sys_getloadavg();
if ($load[0] > 80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}
?>

注释

Note: 本函数未在 Windows 平台下实现。

sleep
time_nanosleep
Misc. 函数


Delay for a number of seconds and nanoseconds

sys_getloadavg
time_sleep_until
Misc. 函数
PHP 手册

time_nanosleep

(PHP 5)

time_nanosleep — Delay for a number of seconds and nanoseconds

说明

mixed time_nanosleep ( int $seconds , int $nanoseconds )

Delays program execution for the given number of seconds and nanoseconds .

参数

seconds

Must be a positive integer.

nanoseconds

Must be a positive integer less than 1 billion.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

If the delay was interrupted by a signal, an associative array will be returned with the components:

  • seconds - number of seconds remaining in the delay
  • nanoseconds - number of nanoseconds remaining in the delay

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

范例

Example #1 time_nanosleep() example

<?php
// Careful! This won't work as expected if an array is returned
if (time_nanosleep(0, 500000000)) {
    echo "Slept for half a second.\n";
}

// This is better:
if (time_nanosleep(0, 500000000) === true) {
    echo "Slept for half a second.\n";
}

// And this is the best:
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
    echo "Slept for 2 seconds, 100 milliseconds.\n";
} elseif ($nano === false) {
    echo "Sleeping failed.\n";
} elseif (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Interrupted by a signal.\n";
    echo "Time remaining: $seconds seconds, $nanoseconds nanoseconds.";
}
?>

参见

  • sleep() - Delay execution
  • usleep() - Delay execution in microseconds
  • time_sleep_until() - Make the script sleep until the specified time
  • set_time_limit() - Limits the maximum execution time

sys_getloadavg
time_sleep_until
Misc. 函数


Make the script sleep until the specified time

time_nanosleep
uniqid
Misc. 函数
PHP 手册

time_sleep_until

(PHP 5 >= 5.1.0)

time_sleep_until — Make the script sleep until the specified time

说明

bool time_sleep_until ( float $timestamp )

Makes the script sleep until the specified timestamp .

参数

timestamp

The timestamp when the script should wake.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

错误／异常

If the specified timestamp is in the past, this function will generate a E_WARNING.

范例

Example #1 A time_sleep_until() example

<?php

//returns false and generates a warning
var_dump(time_sleep_until(time()-1));

// may only work on faster computers, will sleep up to 0.2 seconds
var_dump(time_sleep_until(time()+0.2));

?>

注释

Note: All signals will be delivered after the script wakes up.

参见

  • sleep() - Delay execution
  • usleep() - Delay execution in microseconds
  • time_nanosleep() - Delay for a number of seconds and nanoseconds
  • set_time_limit() - Limits the maximum execution time

time_nanosleep
uniqid
Misc. 函数


Generate a unique ID

time_sleep_until
unpack
Misc. 函数
PHP 手册

uniqid

(PHP 4, PHP 5)

uniqid — Generate a unique ID

说明

string uniqid ([ string $prefix="" [, bool $more_entropy=false ]] )

Gets a prefixed unique identifier based on the current time in microseconds.

参数

prefix

Can be useful, for instance, if you generate identifiers simultaneously on several hosts that might happen to generate the identifier at the same microsecond.

With an empty prefix , the returned string will be 13 characters long. If more_entropy is TRUE, it will be 23 characters.

more_entropy

If set to TRUE, uniqid() will add additional entropy (using the combined linear congruential generator) at the end of the return value, which should make the results more unique.

返回值

Returns the unique identifier, as a string.

范例

If you need a unique identifier or token and you intend to give out that token to the user via the network (i.e. session cookies), it is recommended that you use something along these lines:

This will create a 32 character identifier (a 128 bit hex number) that is extremely difficult to predict.

Example #1 uniqid() Example

<?php
// no prefix
// works only in PHP 5 and later versions
$token = md5(uniqid());

// better, difficult to guess
$better_token = md5(uniqid(rand(), true));
?>

更新日志

版本 | 说明
5.0.0 | The prefix parameter was made optional.
4.3.1 | The limit of 114 characters long for prefix was raised.

time_sleep_until
unpack
Misc. 函数


Unpack data from binary string

uniqid
usleep
Misc. 函数
PHP 手册

unpack

(PHP 4, PHP 5)

unpack — Unpack data from binary string

说明

array unpack ( string $format , string $data )

Unpacks from a binary string into an array according to the given format .

unpack() works slightly different from Perl as the unpacked data is stored in an associative array. To accomplish this you have to name the different format codes and separate them by a slash /.

参数

format

See pack() for an explanation of the format codes.

data

The packed data.

返回值

Returns an associative array containing unpacked elements of binary string.

范例

Example #1 unpack() example

<?php
$array = unpack("c2chars/nint", $binarydata);
?>

The resulting array will contain the entries "chars1", "chars2" and "int".

注释

Caution

Note that PHP internally stores integral values as signed. If you unpack a large unsigned long and it is of the same size as PHP internally stored values the result will be a negative number even though unsigned unpacking was specified.

参见

  • pack() - Pack data into binary string

uniqid
usleep
Misc. 函数


Delay execution in microseconds

unpack
Parsekit
Misc. 函数
PHP 手册

usleep

(PHP 4, PHP 5)

usleep — Delay execution in microseconds

说明

void usleep ( int $micro_seconds )

Delays program execution for the given number of micro seconds.

参数

micro_seconds

Halt time in micro seconds. A micro second is one millionth of a second.

返回值

无返回值。

更新日志

版本 | 说明
5.0.0 | This function now works on Windows systems.

范例

Example #1 usleep() example

<?php

// Current time
echo date('h:i:s') . "\n";

// wait for 2 seconds
usleep(2000000);

// back!
echo date('h:i:s') . "\n";

?>

上例将输出：

11:13:28
11:13:30

参见

  • sleep() - Delay execution
  • time_nanosleep() - Delay for a number of seconds and nanoseconds
  • time_sleep_until() - Make the script sleep until the specified time
  • set_time_limit() - Limits the maximum execution time

unpack
Parsekit
Misc. 函数


Parsekit

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Parsekit 函数
    • parsekit_compile_file — Compile a string of PHP code and return the resulting op array
    • parsekit_compile_string — Compile a string of PHP code and return the resulting op array
    • parsekit_func_arginfo — Return information regarding function argument(s)
usleep
简介
其它基本扩展


简介

These functions allow runtime analysis of opcodes compiled from PHP scripts.

Parsekit
安装/配置
Parsekit


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Parsekit


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/parsekit.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

PARSEKIT_QUIET (int)
Return full detail, but without unnecessary NULL entries.
PARSEKIT_SIMPLE (int)
Return shorthand opcode notation.
PARSEKIT_EXTENDED_VALUE (int)
Opnode Flag
PARSEKIT_RESULT_CONST (int)
Opnode Flag
PARSEKIT_RESULT_EA_TYPE (int)
Opnode Flag
PARSEKIT_RESULT_JMP_ADDR (int)
Opnode Flag
PARSEKIT_RESULT_OPARRAY (int)
Opnode Flag
PARSEKIT_RESULT_OPLINE (int)
Opnode Flag
PARSEKIT_RESULT_VAR (int)
Opnode Flag
PARSEKIT_USAGE_UNKNOWN (int)
Opnode Flag
PARSEKIT_ZEND_INTERNAL_CLASS (int)
Class Type
PARSEKIT_ZEND_USER_CLASS (int)
Class Type
PARSEKIT_ZEND_EVAL_CODE (int)
Function Type
PARSEKIT_ZEND_INTERNAL_FUNCTION (int)
Function Type
PARSEKIT_ZEND_OVERLOADED_FUNCTION (int)
Function Type
PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (int) PHP >= 5.0.0
Function Type
PARSEKIT_ZEND_USER_FUNCTION (int)
Function Type
PARSEKIT_IS_CONST (int)
Node Type
PARSEKIT_IS_TMP_VAR (int)
Node Type
PARSEKIT_IS_UNUSED (int)
Node Type
PARSEKIT_IS_VAR (int)
Node Type
PARSEKIT_ZEND_ADD (int)
Opcode
PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (int)
Opcode
PARSEKIT_ZEND_ADD_CHAR (int)
Opcode
PARSEKIT_ZEND_ADD_INTERFACE (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ADD_STRING (int)
Opcode
PARSEKIT_ZEND_ADD_VAR (int)
Opcode
PARSEKIT_ZEND_ASSIGN (int)
Opcode
PARSEKIT_ZEND_ASSIGN_ADD (int)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_AND (int)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_OR (int)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_XOR (int)
Opcode
PARSEKIT_ZEND_ASSIGN_CONCAT (int)
Opcode
PARSEKIT_ZEND_ASSIGN_DIM (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_DIV (int)
Opcode
PARSEKIT_ZEND_ASSIGN_MOD (int)
Opcode
PARSEKIT_ZEND_ASSIGN_MUL (int)
Opcode
PARSEKIT_ZEND_ASSIGN_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_REF (int)
Opcode
PARSEKIT_ZEND_ASSIGN_SL (int)
Opcode
PARSEKIT_ZEND_ASSIGN_SR (int)
Opcode
PARSEKIT_ZEND_ASSIGN_SUB (int)
Opcode
PARSEKIT_ZEND_BEGIN_SILENCE (int)
Opcode
PARSEKIT_ZEND_BOOL (int)
Opcode
PARSEKIT_ZEND_BOOL_NOT (int)
Opcode
PARSEKIT_ZEND_BOOL_XOR (int)
Opcode
PARSEKIT_ZEND_BRK (int)
Opcode
PARSEKIT_ZEND_BW_AND (int)
Opcode
PARSEKIT_ZEND_BW_NOT (int)
Opcode
PARSEKIT_ZEND_BW_OR (int)
Opcode
PARSEKIT_ZEND_BW_XOR (int)
Opcode
PARSEKIT_ZEND_CASE (int)
Opcode
PARSEKIT_ZEND_CAST (int)
Opcode
PARSEKIT_ZEND_CATCH (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CLONE (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CONCAT (int)
Opcode
PARSEKIT_ZEND_CONT (int)
Opcode
PARSEKIT_ZEND_DECLARE_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_FUNCTION (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DIV (int)
Opcode
PARSEKIT_ZEND_DO_FCALL (int)
Opcode
PARSEKIT_ZEND_DO_FCALL_BY_NAME (int)
Opcode
PARSEKIT_ZEND_ECHO (int)
Opcode
PARSEKIT_ZEND_END_SILENCE (int)
Opcode
PARSEKIT_ZEND_EXIT (int)
Opcode
PARSEKIT_ZEND_EXT_FCALL_BEGIN (int)
Opcode
PARSEKIT_ZEND_EXT_FCALL_END (int)
Opcode
PARSEKIT_ZEND_EXT_NOP (int)
Opcode
PARSEKIT_ZEND_EXT_STMT (int)
Opcode
PARSEKIT_ZEND_FETCH_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_FETCH_CONSTANT (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_IS (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_R (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_RW (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_UNSET (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_W (int)
Opcode
PARSEKIT_ZEND_FETCH_FUNC_ARG (int)
Opcode
PARSEKIT_ZEND_FETCH_IS (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_IS (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_R (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_RW (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_UNSET (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_W (int)
Opcode
PARSEKIT_ZEND_FETCH_R (int)
Opcode
PARSEKIT_ZEND_FETCH_RW (int)
Opcode
PARSEKIT_ZEND_FETCH_UNSET (int)
Opcode
PARSEKIT_ZEND_FETCH_W (int)
Opcode
PARSEKIT_ZEND_FE_FETCH (int)
Opcode
PARSEKIT_ZEND_FE_RESET (int)
Opcode
PARSEKIT_ZEND_FREE (int)
Opcode
PARSEKIT_ZEND_HANDLE_EXCEPTION (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CONST (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_FUNCTION (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INCLUDE_OR_EVAL (int)
Opcode
PARSEKIT_ZEND_INIT_ARRAY (int)
Opcode
PARSEKIT_ZEND_INIT_CTOR_CALL (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_FCALL_BY_NAME (int)
Opcode
PARSEKIT_ZEND_INIT_METHOD_CALL (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STRING (int)
Opcode
PARSEKIT_ZEND_INSTANCEOF (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY (int) PHP < 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IS_EQUAL (int)
Opcode
PARSEKIT_ZEND_IS_IDENTICAL (int)
Opcode
PARSEKIT_ZEND_IS_NOT_EQUAL (int)
Opcode
PARSEKIT_ZEND_IS_NOT_IDENTICAL (int)
Opcode
PARSEKIT_ZEND_IS_SMALLER (int)
Opcode
PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (int)
Opcode
PARSEKIT_ZEND_JMP (int)
Opcode
PARSEKIT_ZEND_JMPNZ (int)
Opcode
PARSEKIT_ZEND_JMPNZ_EX (int)
Opcode
PARSEKIT_ZEND_JMPZ (int)
Opcode
PARSEKIT_ZEND_JMPZNZ (int)
Opcode
PARSEKIT_ZEND_JMPZ_EX (int)
Opcode
PARSEKIT_ZEND_JMP_NO_CTOR (int)
Opcode
PARSEKIT_ZEND_MOD (int)
Opcode
PARSEKIT_ZEND_MUL (int)
Opcode
PARSEKIT_ZEND_NEW (int)
Opcode
PARSEKIT_ZEND_NOP (int)
Opcode
PARSEKIT_ZEND_OP_DATA (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_DEC (int)
Opcode
PARSEKIT_ZEND_POST_DEC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_INC (int)
Opcode
PARSEKIT_ZEND_POST_INC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_DEC (int)
Opcode
PARSEKIT_ZEND_PRE_DEC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_INC (int)
Opcode
PARSEKIT_ZEND_PRE_INC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRINT (int)
Opcode
PARSEKIT_ZEND_QM_ASSIGN (int)
Opcode
PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_RECV (int)
Opcode
PARSEKIT_ZEND_RECV_INIT (int)
Opcode
PARSEKIT_ZEND_RETURN (int)
Opcode
PARSEKIT_ZEND_SEND_REF (int)
Opcode
PARSEKIT_ZEND_SEND_VAL (int)
Opcode
PARSEKIT_ZEND_SEND_VAR (int)
Opcode
PARSEKIT_ZEND_SEND_VAR_NO_REF (int)
Opcode
PARSEKIT_ZEND_SL (int)
Opcode
PARSEKIT_ZEND_SR (int)
Opcode
PARSEKIT_ZEND_SUB (int)
Opcode
PARSEKIT_ZEND_SWITCH_FREE (int)
Opcode
PARSEKIT_ZEND_THROW (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_TICKS (int)
Opcode
PARSEKIT_ZEND_UNSET_DIM_OBJ (int)
Opcode
PARSEKIT_ZEND_UNSET_VAR (int)
Opcode
PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (int) PHP >= 5.0.0
Opcode

资源类型
Parsekit 函数
Parsekit


Parsekit 函数

Table of Contents

  • parsekit_compile_file — Compile a string of PHP code and return the resulting op array
  • parsekit_compile_string — Compile a string of PHP code and return the resulting op array
  • parsekit_func_arginfo — Return information regarding function argument(s)
预定义常量
parsekit_compile_file
Parsekit


Compile a string of PHP code and return the resulting op array

Parsekit 函数
parsekit_compile_string
Parsekit 函数
PHP 手册

parsekit_compile_file

(PECL parsekit >= 0.2.0)

parsekit_compile_file — Compile a string of PHP code and return the resulting op array

说明

array parsekit_compile_file ( string $filename [, array &$errors [, int $options=PARSEKIT_QUIET ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

filename

A string containing the name of the file to compile. Similar to the argument to include().

errors

A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.

options

One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.

返回值

Returns a complex multi-layer array structure as detailed below.

范例

Example #1 parsekit_compile_file() example

<?php
var_dump(parsekit_compile_file('hello_world.php', $errors, PARSEKIT_SIMPLE));
?>

上例将输出：

array(5) {
  [0]=>
  string(37) "ZEND_ECHO UNUSED 'Hello World' UNUSED"
  [1]=>
  string(30) "ZEND_RETURN UNUSED NULL UNUSED"
  [2]=>
  string(42) "ZEND_HANDLE_EXCEPTION UNUSED UNUSED UNUSED"
  ["function_table"]=>
  NULL
  ["class_table"]=>
  NULL
}

参见

  • parsekit_compile_string() - Compile a string of PHP code and return the resulting op array

Parsekit 函数
parsekit_compile_string
Parsekit 函数


Compile a string of PHP code and return the resulting op array

parsekit_compile_file
parsekit_func_arginfo
Parsekit 函数
PHP 手册

parsekit_compile_string

(PECL parsekit >= 0.2.0)

parsekit_compile_string — Compile a string of PHP code and return the resulting op array

说明

array parsekit_compile_string ( string $phpcode [, array &$errors [, int $options=PARSEKIT_QUIET ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

phpcode

A string containing phpcode. Similar to the argument to eval().

errors

A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.

options

One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.

返回值

Returns a complex multi-layer array structure as detailed below.

范例

Example #1 parsekit_compile_string() example

<?php
  $ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);

  var_dump($ops);
?>

上例将输出：

array(20) {
  ["type"]=>
  int(4)
  ["type_name"]=>
  string(14) "ZEND_EVAL_CODE"
  ["fn_flags"]=>
  int(0)
  ["num_args"]=>
  int(0)
  ["required_num_args"]=>
  int(0)
  ["pass_rest_by_reference"]=>
  bool(false)
  ["uses_this"]=>
  bool(false)
  ["line_start"]=>
  int(0)
  ["line_end"]=>
  int(0)
  ["return_reference"]=>
  bool(false)
  ["refcount"]=>
  int(1)
  ["last"]=>
  int(3)
  ["size"]=>
  int(3)
  ["T"]=>
  int(0)
  ["last_brk_cont"]=>
  int(0)
  ["current_brk_cont"]=>
  int(-1)
  ["backpatch_count"]=>
  int(0)
  ["done_pass_two"]=>
  bool(true)
  ["filename"]=>
  string(17) "Parsekit Compiler"
  ["opcodes"]=>
  array(3) {
    [8594800]=>
    array(5) {
      ["opcode"]=>
      int(40)
      ["opcode_name"]=>
      string(9) "ZEND_ECHO"
      ["flags"]=>
      int(768)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &string(4) "Foo
"
      }
      ["lineno"]=>
      int(2)
    }
    ["859484C"]=>
    array(6) {
      ["opcode"]=>
      int(62)
      ["opcode_name"]=>
      string(11) "ZEND_RETURN"
      ["flags"]=>
      int(16777984)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &NULL
      }
      ["extended_value"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
    [8594898]=>
    array(4) {
      ["opcode"]=>
      int(149)
      ["opcode_name"]=>
      string(21) "ZEND_HANDLE_EXCEPTION"
      ["flags"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
  }
}

参见

  • parsekit_compile_file() - Compile a string of PHP code and return the resulting op array

parsekit_compile_file
parsekit_func_arginfo
Parsekit 函数


Return information regarding function argument(s)

parsekit_compile_string
SPL
Parsekit 函数
PHP 手册

parsekit_func_arginfo

(PECL parsekit >= 0.3.0)

parsekit_func_arginfo — Return information regarding function argument(s)

说明

array parsekit_func_arginfo ( mixed $function )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

function

A string describing a function, or an array describing a class/method.

返回值

Returns an array containing argument information.

范例

Example #1 parsekit_func_arginfo() example

<?php
function foo($bar, stdClass $baz, &$bomb, $bling = false) {
}

var_dump(parsekit_func_arginfo('foo'));
?>

上例将输出：

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(3) "bar"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(3) "baz"
    ["class_name"]=>
    string(8) "stdClass"
    ["allow_null"]=>
    bool(false)
    ["pass_by_reference"]=>
    bool(false)
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(4) "bomb"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(true)
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(5) "bling"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
}

parsekit_compile_string
SPL
Parsekit 函数


PHP标准库 (SPL)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Datastructures
    • SplDoublyLinkedList — The SplDoublyLinkedList class
    • SplStack — The SplStack class
    • SplQueue — The SplQueue class
    • SplHeap — The SplHeap class
    • SplMaxHeap — The SplMaxHeap class
    • SplMinHeap — The SplMinHeap class
    • SplPriorityQueue — The SplPriorityQueue class
  • Iterators
    • ArrayIterator — The ArrayIterator class
    • CachingIterator — The CachingIterator class
    • RecursiveCachingIterator — The RecursiveCachingIterator class
    • DirectoryIterator — The DirectoryIterator class
    • RecursiveDirectoryIterator — The RecursiveDirectoryIterator class
    • FilterIterator — The FilterIterator class
    • LimitIterator — The LimitIterator class
    • ParentIterator — The ParentIterator class
    • RecursiveIteratorIterator — The RecursiveIteratorIterator class
    • SimpleXMLIterator — The SimpleXMLIterator class
  • Interfaces
    • Countable — The Countable interface
  • Exceptions
    • BadFunctionCallException — The BadFunctionCallException class
    • BadMethodCallException — The BadMethodCallException class
    • DomainException — The DomainException class
    • InvalidArgumentException — The InvalidArgumentException class
    • LengthException — The LengthException class
    • LogicException — The LogicException class
    • OutOfBoundsException — The OutOfBoundsException class
    • OutOfRangeException — The OutOfRangeException class
    • OverflowException — The OverflowException class
    • RangeException — The RangeException class
    • RuntimeException — The RuntimeException class
    • UnderflowException — The UnderflowException class
    • UnexpectedValueException — The UnexpectedValueException class
  • SPL 函数
    • class_implements — 返回指定的类实现的所有接口。
    • class_parents — 返回指定类的父类。
    • iterator_apply — 为迭代器中每个元素调用一个用户自定义函数
    • iterator_count — 计算迭代器中元素的个数
    • iterator_to_array — 将迭代器中的元素拷贝到数组
    • spl_autoload_call — 尝试调用所有已注册的__autoload()函数来装载请求类
    • spl_autoload_extensions — 注册并返回spl_autoload函数使用的默认文件扩展名。
    • spl_autoload_functions — 返回所有已注册的__autoload()函数。
    • spl_autoload_register — 注册__autoload()函数
    • spl_autoload_unregister — 注销已注册的__autoload()函数
    • spl_autoload — __autoload()函数的默认实现
    • spl_classes — 返回所有可用的SPL类
    • spl_object_hash — 返回指定对象的hash id
  • ArrayObject — The ArrayObject class
    • ArrayObject::append — Appends the value
    • ArrayObject::__construct — Construct a new array object
    • ArrayObject::count — Get the number of elements in the Iterator
    • ArrayObject::getIterator — Create a new iterator from an ArrayObject instance
    • ArrayObject::offsetExists — Returns whether the requested $index exists
    • ArrayObject::offsetGet — Returns the value at the specified $index
    • ArrayObject::offsetSet — Sets the value at the specified $index to $newval
    • ArrayObject::offsetUnset — Unsets the value at the specified $index
  • SplFileInfo — The SplFileInfo class
    • SplFileInfo::__construct — Construct a new SplFileInfo object
    • SplFileInfo::getATime — Gets last access time of the file
    • SplFileInfo::getBasename — Gets the base name of the file
    • SplFileInfo::getCTime — Gets the inode change time
    • SplFileInfo::getFileInfo — Gets an SplFileInfo object for the file
    • SplFileInfo::getFilename — Gets the filename
    • SplFileInfo::getGroup — Gets the file group
    • SplFileInfo::getInode — Gets the inode for the file
    • SplFileInfo::getLinkTarget — Gets the target of a link
    • SplFileInfo::getMTime — Gets the last modified time
    • SplFileInfo::getOwner — Gets the owner of the file
    • SplFileInfo::getPath — Gets the path without filename
    • SplFileInfo::getPathInfo — Gets an SplFileInfo object for the path
    • SplFileInfo::getPathname — Gets the path to the file
    • SplFileInfo::getPerms — Gets file permissions
    • SplFileInfo::getRealPath — Gets absolute path to file
    • SplFileInfo::getSize — Gets file size
    • SplFileInfo::getType — Gets file type
    • SplFileInfo::isDir — Tells if the file is a directory
    • SplFileInfo::isExecutable — Tells if the file is executable
    • SplFileInfo::isFile — Tells if the object references a regular file
    • SplFileInfo::isLink — Tells if the file is a link
    • SplFileInfo::isReadable — Tells if file is readable
    • SplFileInfo::isWritable — Tells if the entry is writable
    • SplFileInfo::openFile — Gets an SplFileObject object for the file
    • SplFileInfo::setFileClass — Sets the class name used with SplFileInfo::openFile()
    • SplFileInfo::setInfoClass — Sets the class used with getFileInfo and getPathInfo
    • SplFileInfo::__toString — Returns the path to the file as a string
parsekit_func_arginfo
简介
其它基本扩展


简介

SPL是用于解决典型问题(standard problems)的一组接口与类的集合。

Tip

更详细的SPL文档请参考 » 这里.

SPL
安装/配置
SPL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SPL


安装

此扩展只能在php 5.0以后使用

Note: 此扩展从PHP 5.3.0 不再被关闭,会一直有效.成为php内核组件一部份

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Warning

SPL uses class constants since PHP 5.1. Prior releases use global constants in the form RIT_LEAVES_ONLY.

RecursiveIteratorIterator::LEAVES_ONLY (integer)
RecursiveIteratorIterator::SELF_FIRST (integer)
RecursiveIteratorIterator::CHILD_FIRST (integer)
CachingIterator::CALL_TOSTRING (integer)
CachingIterator::CATCH_GET_CHILD (integer)
资源类型
Datastructures
SPL


Datastructures

Table of Contents

  • The SplDoublyLinkedList class
  • The SplStack class
  • The SplQueue class
  • The SplHeap class
  • The SplMaxHeap class
  • The SplMinHeap class
  • The SplPriorityQueue class

SPL provides a set of standard datastructures. They are grouped here by their underlying implementation which usually defines their general field of application.

Doubly Linked Lists

A Doubly Linked List (DLL) is a list of nodes linked in both directions to each others. Iterator's operations, access to both ends, addition or removal of nodes have a cost of O(1) when the underlying structure is a DLL. It hence provides a decent implementation for stacks and queues.

  • SplDoublyLinkedList
    • SplStack
    • SplQueue

Heaps

Heaps are tree-like structures that follow the heap-property: each node is greater than or equal to its children, when compared using the implemented compare method which is global to the heap.

  • SplHeap
    • SplMaxHeap
    • SplMinHeap
  • SplPriorityQueue
预定义常量
SplDoublyLinkedList
SPL


The SplDoublyLinkedList class

简介

The SplDoublyLinkedList class provides the main functionalities of a doubly linked list.

Class synopsis

SplDoublyLinkedList
SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Methods */
__construct ( void )
mixed bottom ( void )
int count ( void )
mixed current ( void )
int getIteratorMode ( void )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
bool offsetExists ( mixed $index )
mixed offsetGet ( mixed $index )
void offsetSet ( mixed $index , mixed $newval )
void offsetUnset ( mixed $index )
mixed pop ( void )
void push ( mixed $value )
void rewind ( void )
void setIteratorMode ( int $mode )
mixed shift ( void )
mixed top ( void )
void unshift ( mixed $value )
bool valid ( void )
}

Table of Contents

  • SplDoublyLinkedList::bottom — Peeks at the node from the beginning of the doubly linked list
  • SplDoublyLinkedList::__construct — Constructs a new doubly linked list
  • SplDoublyLinkedList::count — Counts the number of elements in the doubly linked list.
  • SplDoublyLinkedList::current — Return current array entry
  • SplDoublyLinkedList::getIteratorMode — Returns the mode of iteration
  • SplDoublyLinkedList::isEmpty — Checks whether the doubly linked list is empty.
  • SplDoublyLinkedList::key — Return current node index
  • SplDoublyLinkedList::next — Move to next entry
  • SplDoublyLinkedList::offsetExists — Returns whether the requested $index exists
  • SplDoublyLinkedList::offsetGet — Returns the value at the specified $index
  • SplDoublyLinkedList::offsetSet — Sets the value at the specified $index to $newval
  • SplDoublyLinkedList::offsetUnset — Unsets the value at the specified $index
  • SplDoublyLinkedList::pop — Pops a node from the end of the doubly linked list
  • SplDoublyLinkedList::push — Pushes an element at the end of the doubly linked list
  • SplDoublyLinkedList::rewind — Rewind iterator back to the start
  • SplDoublyLinkedList::setIteratorMode — Sets the mode of iteration
  • SplDoublyLinkedList::shift — Shifts a node from the beginning of the doubly linked list
  • SplDoublyLinkedList::top — Peeks at the node from the end of the doubly linked list
  • SplDoublyLinkedList::unshift — Prepends the doubly linked list with an element
  • SplDoublyLinkedList::valid — Check whether the doubly linked list contains more nodes
Datastructures
SplDoublyLinkedList::bottom
Datastructures


Peeks at the node from the beginning of the doubly linked list

SplDoublyLinkedList
SplDoublyLinkedList::__construct
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::bottom — Peeks at the node from the beginning of the doubly linked list

说明

mixed SplDoublyLinkedList::bottom ( void )

参数

This function has no parameters.

返回值

The value of the first node.

SplDoublyLinkedList
SplDoublyLinkedList::__construct
SplDoublyLinkedList


Constructs a new doubly linked list

SplDoublyLinkedList::bottom
SplDoublyLinkedList::count
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::__construct

(No version information available, might be only in CVS)

SplDoublyLinkedList::__construct — Constructs a new doubly linked list

说明

SplDoublyLinkedList::__construct ( void )

This constructs a new empty doubly linked list.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 SplDoublyLinkedList::__construct() example

<?php
$dll = new SplDoublyLinkedList();

$dll->push(2);
$dll->push(3);
$dll->unshift(5);

var_dump($dll);
?>

上例将输出：

object(SplDoublyLinkedList)#1 (2) {
  ["flags":"SplDoublyLinkedList":private]=>
  int(0)
  ["dllist":"SplDoublyLinkedList":private]=>
  array(3) {
    [0]=>
    int(5)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}

SplDoublyLinkedList::bottom
SplDoublyLinkedList::count
SplDoublyLinkedList


Counts the number of elements in the doubly linked list.

SplDoublyLinkedList::__construct
SplDoublyLinkedList::current
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::count — Counts the number of elements in the doubly linked list.

说明

int SplDoublyLinkedList::count ( void )

参数

This function has no parameters.

返回值

Returns the number of elements in the doubly linked list.

SplDoublyLinkedList::__construct
SplDoublyLinkedList::current
SplDoublyLinkedList


Return current array entry

SplDoublyLinkedList::count
SplDoublyLinkedList::getIteratorMode
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::current — Return current array entry

说明

mixed SplDoublyLinkedList::current ( void )

Get the current doubly linked list node.

参数

This function has no parameters.

返回值

The current node value.

SplDoublyLinkedList::count
SplDoublyLinkedList::getIteratorMode
SplDoublyLinkedList


Returns the mode of iteration

SplDoublyLinkedList::current
SplDoublyLinkedList::isEmpty
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::getIteratorMode — Returns the mode of iteration

说明

int SplDoublyLinkedList::getIteratorMode ( void )

参数

This function has no parameters.

返回值

Returns the different modes and flags that affect the iteration.

SplDoublyLinkedList::current
SplDoublyLinkedList::isEmpty
SplDoublyLinkedList


Checks whether the doubly linked list is empty.

SplDoublyLinkedList::getIteratorMode
SplDoublyLinkedList::key
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::isEmpty — Checks whether the doubly linked list is empty.

说明

bool SplDoublyLinkedList::isEmpty ( void )

参数

This function has no parameters.

返回值

Returns whether the doubly linked list is empty.

SplDoublyLinkedList::getIteratorMode
SplDoublyLinkedList::key
SplDoublyLinkedList


Return current node index

SplDoublyLinkedList::isEmpty
SplDoublyLinkedList::next
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::key — Return current node index

说明

mixed SplDoublyLinkedList::key ( void )

This function returns the current node index

参数

This function has no parameters.

返回值

The current node index.

SplDoublyLinkedList::isEmpty
SplDoublyLinkedList::next
SplDoublyLinkedList


Move to next entry

SplDoublyLinkedList::key
SplDoublyLinkedList::offsetExists
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::next — Move to next entry

说明

void SplDoublyLinkedList::next ( void )

Move the iterator to the next node.

参数

This function has no parameters.

返回值

无返回值。

SplDoublyLinkedList::key
SplDoublyLinkedList::offsetExists
SplDoublyLinkedList


Returns whether the requested $index exists

SplDoublyLinkedList::next
SplDoublyLinkedList::offsetGet
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetExists — Returns whether the requested $index exists

说明

bool SplDoublyLinkedList::offsetExists ( mixed $index )

参数

index

The index being checked.

返回值

TRUE if the requested index exists, otherwise FALSE

SplDoublyLinkedList::next
SplDoublyLinkedList::offsetGet
SplDoublyLinkedList


Returns the value at the specified $index

SplDoublyLinkedList::offsetExists
SplDoublyLinkedList::offsetSet
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetGet — Returns the value at the specified $index

说明

mixed SplDoublyLinkedList::offsetGet ( mixed $index )

参数

index

The index with the value.

返回值

The value at the specified index .

SplDoublyLinkedList::offsetExists
SplDoublyLinkedList::offsetSet
SplDoublyLinkedList


Sets the value at the specified $index to $newval

SplDoublyLinkedList::offsetGet
SplDoublyLinkedList::offsetUnset
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetSet — Sets the value at the specified $index to $newval

说明

void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )

Sets the value at the specified index to newval .

参数

index

The index being set.

newval

The new value for the index .

返回值

无返回值。

SplDoublyLinkedList::offsetGet
SplDoublyLinkedList::offsetUnset
SplDoublyLinkedList


Unsets the value at the specified $index

SplDoublyLinkedList::offsetSet
SplDoublyLinkedList::pop
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::offsetUnset — Unsets the value at the specified $index

说明

void SplDoublyLinkedList::offsetUnset ( mixed $index )

Unsets the value at the specified index.

参数

index

The index being unset.

返回值

无返回值。

SplDoublyLinkedList::offsetSet
SplDoublyLinkedList::pop
SplDoublyLinkedList


Pops a node from the end of the doubly linked list

SplDoublyLinkedList::offsetUnset
SplDoublyLinkedList::push
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::pop — Pops a node from the end of the doubly linked list

说明

mixed SplDoublyLinkedList::pop ( void )

参数

This function has no parameters.

返回值

The value of the popped node.

SplDoublyLinkedList::offsetUnset
SplDoublyLinkedList::push
SplDoublyLinkedList


Pushes an element at the end of the doubly linked list

SplDoublyLinkedList::pop
SplDoublyLinkedList::rewind
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::push — Pushes an element at the end of the doubly linked list

说明

void SplDoublyLinkedList::push ( mixed $value )

Pushes value at the end of the doubly linked list.

参数

value

The value to push.

返回值

无返回值。

SplDoublyLinkedList::pop
SplDoublyLinkedList::rewind
SplDoublyLinkedList


Rewind iterator back to the start

SplDoublyLinkedList::push
SplDoublyLinkedList::setIteratorMode
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::rewind — Rewind iterator back to the start

说明

void SplDoublyLinkedList::rewind ( void )

This rewinds the iterator to the beginning.

参数

This function has no parameters.

返回值

无返回值。

SplDoublyLinkedList::push
SplDoublyLinkedList::setIteratorMode
SplDoublyLinkedList


Sets the mode of iteration

SplDoublyLinkedList::rewind
SplDoublyLinkedList::shift
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::setIteratorMode — Sets the mode of iteration

说明

void SplDoublyLinkedList::setIteratorMode ( int $mode )

参数

mode

There are two orthogonal sets of modes that can be set:

  • The direction of the iteration (either one or the other):
    • SplDoublyLnkedList::IT_MODE_LIFO (Stack style)
    • SplDoublyLnkedList::IT_MODE_FIFO (Queue style)
  • The behavior of the iterator (either one or the other):
    • SplDoublyLnkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
    • SplDoublyLnkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

The default mode is: SplDoublyLnkedList::IT_MODE_FIFO | SplDoublyLnkedList::IT_MODE_KEEP

返回值

无返回值。

SplDoublyLinkedList::rewind
SplDoublyLinkedList::shift
SplDoublyLinkedList


Shifts a node from the beginning of the doubly linked list

SplDoublyLinkedList::setIteratorMode
SplDoublyLinkedList::top
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::shift — Shifts a node from the beginning of the doubly linked list

说明

mixed SplDoublyLinkedList::shift ( void )

参数

This function has no parameters.

返回值

The value of the shifted node.

SplDoublyLinkedList::setIteratorMode
SplDoublyLinkedList::top
SplDoublyLinkedList


Peeks at the node from the end of the doubly linked list

SplDoublyLinkedList::shift
SplDoublyLinkedList::unshift
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::top — Peeks at the node from the end of the doubly linked list

说明

mixed SplDoublyLinkedList::top ( void )

参数

This function has no parameters.

返回值

The value of the last node.

SplDoublyLinkedList::shift
SplDoublyLinkedList::unshift
SplDoublyLinkedList


Prepends the doubly linked list with an element

SplDoublyLinkedList::top
SplDoublyLinkedList::valid
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::unshift — Prepends the doubly linked list with an element

说明

void SplDoublyLinkedList::unshift ( mixed $value )

Prepends value at the beginning of the doubly linked list.

参数

value

The value to unshift.

返回值

无返回值。

SplDoublyLinkedList::top
SplDoublyLinkedList::valid
SplDoublyLinkedList


Check whether the doubly linked list contains more nodes

SplDoublyLinkedList::unshift
SplStack
SplDoublyLinkedList
PHP 手册

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0)

SplDoublyLinkedList::valid — Check whether the doubly linked list contains more nodes

说明

bool SplDoublyLinkedList::valid ( void )

Checks if the doubly linked list contains any more nodes.

参数

This function has no parameters.

返回值

Returns TRUE if the doubly linked list contains any more nodes, FALSE otherwise.

SplDoublyLinkedList::unshift
SplStack
SplDoublyLinkedList


The SplStack class

简介

The SplStack class provides the main functionalities of a stack implemented using a doubly linked list.

Class synopsis

SplStack
SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Methods */
__construct ( void )
void setIteratorMode ( int $mode )
/* Inherited methods */
mixed SplDoublyLinkedList::bottom ( void )
int SplDoublyLinkedList::count ( void )
mixed SplDoublyLinkedList::current ( void )
int SplDoublyLinkedList::getIteratorMode ( void )
bool SplDoublyLinkedList::isEmpty ( void )
mixed SplDoublyLinkedList::key ( void )
void SplDoublyLinkedList::next ( void )
bool SplDoublyLinkedList::offsetExists ( mixed $index )
mixed SplDoublyLinkedList::offsetGet ( mixed $index )
void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
void SplDoublyLinkedList::offsetUnset ( mixed $index )
mixed SplDoublyLinkedList::pop ( void )
void SplDoublyLinkedList::push ( mixed $value )
void SplDoublyLinkedList::rewind ( void )
void SplDoublyLinkedList::setIteratorMode ( int $mode )
mixed SplDoublyLinkedList::shift ( void )
mixed SplDoublyLinkedList::top ( void )
void SplDoublyLinkedList::unshift ( mixed $value )
bool SplDoublyLinkedList::valid ( void )
}

Table of Contents

  • SplStack::__construct — Constructs a new stack implemented using a doubly linked list
  • SplStack::setIteratorMode — Sets the mode of iteration
SplDoublyLinkedList::valid
SplStack::__construct
Datastructures


Constructs a new stack implemented using a doubly linked list

SplStack
SplStack::setIteratorMode
SplStack
PHP 手册

SplStack::__construct

(No version information available, might be only in CVS)

SplStack::__construct — Constructs a new stack implemented using a doubly linked list

说明

SplStack::__construct ( void )

This constructs a new empty stack.

Note: This method automatically sets the iterator mode to SplDoublyLinkedList::IT_MODE_LIFO.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 SplStack::__construct() example

<?php
$q = new SplStack();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

上例将输出：

3
2
1

SplStack
SplStack::setIteratorMode
SplStack


Sets the mode of iteration

SplStack::__construct
SplQueue
SplStack
PHP 手册

SplStack::setIteratorMode

(PHP 5 >= 5.3.0)

SplStack::setIteratorMode — Sets the mode of iteration

说明

void SplStack::setIteratorMode ( int $mode )

参数

mode

There is only one iteration parameter you can modify.

  • The behavior of the iterator (either one or the other):
    • SplDoublyLnkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
    • SplDoublyLnkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

The default mode is 0x2 : SplDoublyLnkedList::IT_MODE_LIFO | SplDoublyLnkedList::IT_MODE_KEEP

Warning

The direction of iteration can no longer be changer for SplStacks. Trying to do so will result in a RuntimeException being thrown.

返回值

无返回值。

SplStack::__construct
SplQueue
SplStack


The SplQueue class

简介

The SplQueue class provides the main functionalities of a queue implemented using a doubly linked list.

Class synopsis

SplQueue
SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Methods */
__construct ( void )
mixed dequeue ( void )
void enqueue ( mixed $value )
void setIteratorMode ( int $mode )
/* Inherited methods */
mixed SplDoublyLinkedList::bottom ( void )
int SplDoublyLinkedList::count ( void )
mixed SplDoublyLinkedList::current ( void )
int SplDoublyLinkedList::getIteratorMode ( void )
bool SplDoublyLinkedList::isEmpty ( void )
mixed SplDoublyLinkedList::key ( void )
void SplDoublyLinkedList::next ( void )
bool SplDoublyLinkedList::offsetExists ( mixed $index )
mixed SplDoublyLinkedList::offsetGet ( mixed $index )
void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
void SplDoublyLinkedList::offsetUnset ( mixed $index )
mixed SplDoublyLinkedList::pop ( void )
void SplDoublyLinkedList::push ( mixed $value )
void SplDoublyLinkedList::rewind ( void )
void SplDoublyLinkedList::setIteratorMode ( int $mode )
mixed SplDoublyLinkedList::shift ( void )
mixed SplDoublyLinkedList::top ( void )
void SplDoublyLinkedList::unshift ( mixed $value )
bool SplDoublyLinkedList::valid ( void )
}

Table of Contents

  • SplQueue::__construct — Constructs a new queue implemented using a doubly linked list
  • SplQueue::dequeue — Dequeues a node from the queue
  • SplQueue::enqueue — Adds an element to the queue.
  • SplQueue::setIteratorMode — Sets the mode of iteration
SplStack::setIteratorMode
SplQueue::__construct
Datastructures


Constructs a new queue implemented using a doubly linked list

SplQueue
SplQueue::dequeue
SplQueue
PHP 手册

SplQueue::__construct

(No version information available, might be only in CVS)

SplQueue::__construct — Constructs a new queue implemented using a doubly linked list

说明

SplQueue::__construct ( void )

This constructs a new empty queue.

Note: This method automatically sets the iterator mode to SplDoublyLinkedList::IT_MODE_FIFO.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 SplQueue::__construct() example

<?php
$q = new SplQueue();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

上例将输出：

1
2
3

Example #2 Efficiently handling tasks with SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);

// ... enqueue some tasks on the queue ...

// process them
foreach ($q as $task) {
    // ... process $task ...

    // add new tasks on the queue
    $q[] = $newTask;
    // ...
}
?>

SplQueue
SplQueue::dequeue
SplQueue


Dequeues a node from the queue

SplQueue::__construct
SplQueue::enqueue
SplQueue
PHP 手册

SplQueue::dequeue

(PHP 5 >= 5.3.0)

SplQueue::dequeue — Dequeues a node from the queue

说明

mixed SplQueue::dequeue ( void )

Dequeues value from the top of of the queue.

Note: SplQueue::dequeue is an alias of SplDoublyLinkedList::shift.

参数

This function has no parameters.

返回值

The value of the dequeued node.

SplQueue::__construct
SplQueue::enqueue
SplQueue


Adds an element to the queue.

SplQueue::dequeue
SplQueue::setIteratorMode
SplQueue
PHP 手册

SplQueue::enqueue

(PHP 5 >= 5.3.0)

SplQueue::enqueue — Adds an element to the queue.

说明

void SplQueue::enqueue ( mixed $value )

Enqueues value at the end of the queue.

Note: SplQueue::enqueue is an alias of SplDoublyLinkedList::push.

参数

value

The value to enqueue.

返回值

无返回值。

SplQueue::dequeue
SplQueue::setIteratorMode
SplQueue


Sets the mode of iteration

SplQueue::enqueue
SplHeap
SplQueue
PHP 手册

SplQueue::setIteratorMode

(PHP 5 >= 5.3.0)

SplQueue::setIteratorMode — Sets the mode of iteration

说明

void SplQueue::setIteratorMode ( int $mode )

参数

mode

There is only one iteration parameter you can modify.

  • The behavior of the iterator (either one or the other):
    • SplDoublyLnkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
    • SplDoublyLnkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

The default mode is 0x0 : SplDoublyLnkedList::IT_MODE_FIFO | SplDoublyLnkedList::IT_MODE_KEEP

Warning

The direction of iteration can no longer be changer for SplQueues. Trying to do so will result in a RuntimeException being thrown.

返回值

无返回值。

SplQueue::enqueue
SplHeap
SplQueue


The SplHeap class

简介

The SplHeap class provides the main functionalities of an Heap.

Class synopsis

SplHeap
abstract SplHeap implements Iterator , Countable {
/* Methods */
__construct ( void )
abstractint compare ( mixed $value1 , mixed $value2 )
int count ( void )
mixed current ( void )
mixed extract ( void )
void insert ( mixed $value )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
void recoverFromCorruption ( void )
void rewind ( void )
mixed top ( void )
bool valid ( void )
}

Table of Contents

  • SplHeap::compare — Compare elements in order to place them correctly in the heap while sifting up.
  • SplHeap::__construct — Constructs a new empty heap
  • SplHeap::count — Counts the number of elements in the heap.
  • SplHeap::current — Return current node pointed by the iterator
  • SplHeap::extract — Extracts a node from top of the heap and sift up.
  • SplHeap::insert — Inserts an element in the heap by sifting it up.
  • SplHeap::isEmpty — Checks whether the heap is empty.
  • SplHeap::key — Return current node index
  • SplHeap::next — Move to the next node
  • SplHeap::recoverFromCorruption — Recover from the corrupted state and allow further actions on the heap.
  • SplHeap::rewind — Rewind iterator back to the start (no-op)
  • SplHeap::top — Peaks at the node from the top of the heap
  • SplHeap::valid — Check whether the heap contains more nodes
SplQueue::setIteratorMode
SplHeap::compare
Datastructures


Compare elements in order to place them correctly in the heap while sifting up.

SplHeap
SplHeap::__construct
SplHeap
PHP 手册

SplHeap::compare

(PHP 5 >= 5.3.0)

SplHeap::compare — Compare elements in order to place them correctly in the heap while sifting up.

说明

abstractint SplHeap::compare ( mixed $value1 , mixed $value2 )

Compare value1 with value2 .

Warning

Throwing exceptions in SplHeap::compare can corrupt the Heap and place it in an blocked state. You can unblock is by calling SplHeap::recoverFromCorruption. However, some elements might not be placed correctly and it may hence break the heap-property.

参数

value1

The value of the first node being compared.

value2

The value of the second node being compared.

返回值

Result of the comparison, positive integer if value1 is greater than value2 , 0 if they are equal, negative integer otherwise.

Note: Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.

SplHeap
SplHeap::__construct
SplHeap


Constructs a new empty heap

SplHeap::compare
SplHeap::count
SplHeap
PHP 手册

SplHeap::__construct

(No version information available, might be only in CVS)

SplHeap::__construct — Constructs a new empty heap

说明

SplHeap::__construct ( void )

This constructs a new empty heap.

参数

This function has no parameters.

返回值

无返回值。

SplHeap::compare
SplHeap::count
SplHeap


Counts the number of elements in the heap.

SplHeap::__construct
SplHeap::current
SplHeap
PHP 手册

SplHeap::count

(PHP 5 >= 5.3.0)

SplHeap::count — Counts the number of elements in the heap.

说明

int SplHeap::count ( void )

参数

This function has no parameters.

返回值

Returns the number of elements in the heap.

SplHeap::__construct
SplHeap::current
SplHeap


Return current node pointed by the iterator

SplHeap::count
SplHeap::extract
SplHeap
PHP 手册

SplHeap::current

(PHP 5 >= 5.3.0)

SplHeap::current — Return current node pointed by the iterator

说明

mixed SplHeap::current ( void )

Get the current datastructure node.

参数

This function has no parameters.

返回值

The current node value.

SplHeap::count
SplHeap::extract
SplHeap


Extracts a node from top of the heap and sift up.

SplHeap::current
SplHeap::insert
SplHeap
PHP 手册

SplHeap::extract

(PHP 5 >= 5.3.0)

SplHeap::extract — Extracts a node from top of the heap and sift up.

说明

mixed SplHeap::extract ( void )

参数

This function has no parameters.

返回值

The value of the extracted node.

SplHeap::current
SplHeap::insert
SplHeap


Inserts an element in the heap by sifting it up.

SplHeap::extract
SplHeap::isEmpty
SplHeap
PHP 手册

SplHeap::insert

(PHP 5 >= 5.3.0)

SplHeap::insert — Inserts an element in the heap by sifting it up.

说明

void SplHeap::insert ( mixed $value )

Insert value in the heap.

参数

value

The value to insert.

返回值

无返回值。

SplHeap::extract
SplHeap::isEmpty
SplHeap


Checks whether the heap is empty.

SplHeap::insert
SplHeap::key
SplHeap
PHP 手册

SplHeap::isEmpty

(PHP 5 >= 5.3.0)

SplHeap::isEmpty — Checks whether the heap is empty.

说明

bool SplHeap::isEmpty ( void )

参数

This function has no parameters.

返回值

Returns whether the heap is empty.

SplHeap::insert
SplHeap::key
SplHeap


Return current node index

SplHeap::isEmpty
SplHeap::next
SplHeap
PHP 手册

SplHeap::key

(PHP 5 >= 5.3.0)

SplHeap::key — Return current node index

说明

mixed SplHeap::key ( void )

This function returns the current node index

参数

This function has no parameters.

返回值

The current node index.

SplHeap::isEmpty
SplHeap::next
SplHeap


Move to the next node

SplHeap::key
SplHeap::recoverFromCorruption
SplHeap
PHP 手册

SplHeap::next

(PHP 5 >= 5.3.0)

SplHeap::next — Move to the next node

说明

void SplHeap::next ( void )

Extracts the top node from the heap.

参数

This function has no parameters.

返回值

无返回值。

SplHeap::key
SplHeap::recoverFromCorruption
SplHeap


Recover from the corrupted state and allow further actions on the heap.

SplHeap::next
SplHeap::rewind
SplHeap
PHP 手册

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0)

SplHeap::recoverFromCorruption — Recover from the corrupted state and allow further actions on the heap.

说明

void SplHeap::recoverFromCorruption ( void )

参数

This function has no parameters.

返回值

无返回值。

SplHeap::next
SplHeap::rewind
SplHeap


Rewind iterator back to the start (no-op)

SplHeap::recoverFromCorruption
SplHeap::top
SplHeap
PHP 手册

SplHeap::rewind

(PHP 5 >= 5.3.0)

SplHeap::rewind — Rewind iterator back to the start (no-op)

说明

void SplHeap::rewind ( void )

This rewinds the iterator to the beginning. This is a no-op for heaps as the iterator is virtual and in fact never moves from the top of the heap.

参数

This function has no parameters.

返回值

无返回值。

SplHeap::recoverFromCorruption
SplHeap::top
SplHeap


Peaks at the node from the top of the heap

SplHeap::rewind
SplHeap::valid
SplHeap
PHP 手册

SplHeap::top

(PHP 5 >= 5.3.0)

SplHeap::top — Peaks at the node from the top of the heap

说明

mixed SplHeap::top ( void )

参数

This function has no parameters.

返回值

The value of the node on the top.

SplHeap::rewind
SplHeap::valid
SplHeap


Check whether the heap contains more nodes

SplHeap::top
SplMaxHeap
SplHeap
PHP 手册

SplHeap::valid

(PHP 5 >= 5.3.0)

SplHeap::valid — Check whether the heap contains more nodes

说明

bool SplHeap::valid ( void )

Checks if the heap contains any more nodes.

参数

This function has no parameters.

返回值

Returns TRUE if the heap contains any more nodes, FALSE otherwise.

SplHeap::top
SplMaxHeap
SplHeap


The SplMaxHeap class

简介

The SplMaxHeap class provides the main functionalities of a heap, keeping the maximum on the top.

Class synopsis

SplMaxHeap
SplMaxHeap extends SplHeap implements Iterator , Countable {
/* Methods */
void compare ( mixed $value1 , mixed $value2 )
/* Inherited methods */
abstractint SplHeap::compare ( mixed $value1 , mixed $value2 )
int SplHeap::count ( void )
mixed SplHeap::current ( void )
mixed SplHeap::extract ( void )
void SplHeap::insert ( mixed $value )
bool SplHeap::isEmpty ( void )
mixed SplHeap::key ( void )
void SplHeap::next ( void )
void SplHeap::recoverFromCorruption ( void )
void SplHeap::rewind ( void )
mixed SplHeap::top ( void )
bool SplHeap::valid ( void )
}

Table of Contents

  • SplMaxHeap::compare — Compare elements in order to place them correctly in the heap while sifting up.
SplHeap::valid
SplMaxHeap::compare
Datastructures


Compare elements in order to place them correctly in the heap while sifting up.

SplMaxHeap
SplMinHeap
SplMaxHeap
PHP 手册

SplMaxHeap::compare

(PHP 5 >= 5.3.0)

SplMaxHeap::compare — Compare elements in order to place them correctly in the heap while sifting up.

说明

void SplMaxHeap::compare ( mixed $value1 , mixed $value2 )

Compare value1 with value2 .

参数

value1

The value of the first node being compared.

value2

The value of the second node being compared.

返回值

Result of the comparison, positive integer if value1 is greater than value2 , 0 if they are equal, negative integer otherwise.

Note: Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.

SplMaxHeap
SplMinHeap
SplMaxHeap


The SplMinHeap class

简介

The SplMinHeap class provides the main functionalities of a heap, keeping the minimum on the top.

Class synopsis

SplMinHeap
SplMinHeap extends SplHeap implements Iterator , Countable {
/* Methods */
void compare ( mixed $value1 , mixed $value2 )
/* Inherited methods */
abstractint SplHeap::compare ( mixed $value1 , mixed $value2 )
int SplHeap::count ( void )
mixed SplHeap::current ( void )
mixed SplHeap::extract ( void )
void SplHeap::insert ( mixed $value )
bool SplHeap::isEmpty ( void )
mixed SplHeap::key ( void )
void SplHeap::next ( void )
void SplHeap::recoverFromCorruption ( void )
void SplHeap::rewind ( void )
mixed SplHeap::top ( void )
bool SplHeap::valid ( void )
}

Table of Contents

  • SplMinHeap::compare — Compare elements in order to place them correctly in the heap while sifting up.
SplMaxHeap::compare
SplMinHeap::compare
Datastructures


Compare elements in order to place them correctly in the heap while sifting up.

SplMinHeap
SplPriorityQueue
SplMinHeap
PHP 手册

SplMinHeap::compare

(PHP 5 >= 5.3.0)

SplMinHeap::compare — Compare elements in order to place them correctly in the heap while sifting up.

说明

void SplMinHeap::compare ( mixed $value1 , mixed $value2 )

Compare value1 with value2 .

参数

value1

The value of the first node being compared.

value2

The value of the second node being compared.

返回值

Result of the comparison, positive integer if value1 is lower than value2 , 0 if they are equal, negative integer otherwise.

Note: Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.

SplMinHeap
SplPriorityQueue
SplMinHeap


The SplPriorityQueue class

简介

The SplPriorityQueue class provides the main functionalities of an prioritized queue, implemented using a heap.

Class synopsis

SplPriorityQueue
SplPriorityQueue implements Iterator , Countable {
/* Methods */
__construct ( void )
void compare ( mixed $priority1 , mixed $priority2 )
int count ( void )
mixed current ( void )
mixed extract ( void )
void insert ( mixed $value , mixed $priority )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
void recoverFromCorruption ( void )
void rewind ( void )
void setExtractFlags ( int $flags )
mixed top ( void )
bool valid ( void )
}

Table of Contents

  • SplPriorityQueue::compare — Compare priorities in order to place elements correctly in the heap while sifting up.
  • SplPriorityQueue::__construct — Constructs a new empty queue
  • SplPriorityQueue::count — Counts the number of elements in the queue.
  • SplPriorityQueue::current — Return current node pointed by the iterator
  • SplPriorityQueue::extract — Extracts a node from top of the heap and sift up.
  • SplPriorityQueue::insert — Inserts an element in the queue by sifting it up.
  • SplPriorityQueue::isEmpty — Checks whether the queue is empty.
  • SplPriorityQueue::key — Return current node index
  • SplPriorityQueue::next — Move to the next node
  • SplPriorityQueue::recoverFromCorruption — Recover from the corrupted state and allow further actions on the queue.
  • SplPriorityQueue::rewind — Rewind iterator back to the start (no-op)
  • SplPriorityQueue::setExtractFlags — Sets the mode of extraction
  • SplPriorityQueue::top — Peaks at the node from the top of the queue
  • SplPriorityQueue::valid — Check whether the queue contains more nodes
SplMinHeap::compare
SplPriorityQueue::compare
Datastructures


Compare priorities in order to place elements correctly in the heap while sifting up.

SplPriorityQueue
SplPriorityQueue::__construct
SplPriorityQueue
PHP 手册

SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

SplPriorityQueue::compare — Compare priorities in order to place elements correctly in the heap while sifting up.

说明

void SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 )

Compare priority1 with priority2 .

参数

priority1

The priority of the first node being compared.

priority2

The priority of the second node being compared.

返回值

Result of the comparison, positive integer if priority1 is greater than priority2 , 0 if they are equal, negative integer otherwise.

Note: Multiple elements with the same priority will get dequeued in no particular order.

SplPriorityQueue
SplPriorityQueue::__construct
SplPriorityQueue


Constructs a new empty queue

SplPriorityQueue::compare
SplPriorityQueue::count
SplPriorityQueue
PHP 手册

SplPriorityQueue::__construct

(No version information available, might be only in CVS)

SplPriorityQueue::__construct — Constructs a new empty queue

说明

SplPriorityQueue::__construct ( void )

This constructs a new empty queue.

参数

This function has no parameters.

返回值

无返回值。

SplPriorityQueue::compare
SplPriorityQueue::count
SplPriorityQueue


Counts the number of elements in the queue.

SplPriorityQueue::__construct
SplPriorityQueue::current
SplPriorityQueue
PHP 手册

SplPriorityQueue::count

(PHP 5 >= 5.3.0)

SplPriorityQueue::count — Counts the number of elements in the queue.

说明

int SplPriorityQueue::count ( void )

参数

This function has no parameters.

返回值

Returns the number of elements in the queue.

SplPriorityQueue::__construct
SplPriorityQueue::current
SplPriorityQueue


Return current node pointed by the iterator

SplPriorityQueue::count
SplPriorityQueue::extract
SplPriorityQueue
PHP 手册

SplPriorityQueue::current

(PHP 5 >= 5.3.0)

SplPriorityQueue::current — Return current node pointed by the iterator

说明

mixed SplPriorityQueue::current ( void )

Get the current datastructure node.

参数

This function has no parameters.

返回值

The value or priority (or both) of the current node, depending on the extract flag.

SplPriorityQueue::count
SplPriorityQueue::extract
SplPriorityQueue


Extracts a node from top of the heap and sift up.

SplPriorityQueue::current
SplPriorityQueue::insert
SplPriorityQueue
PHP 手册

SplPriorityQueue::extract

(PHP 5 >= 5.3.0)

SplPriorityQueue::extract — Extracts a node from top of the heap and sift up.

说明

mixed SplPriorityQueue::extract ( void )

参数

This function has no parameters.

返回值

The value or priority (or both) of the extracted node, depending on the extract flag.

SplPriorityQueue::current
SplPriorityQueue::insert
SplPriorityQueue


Inserts an element in the queue by sifting it up.

SplPriorityQueue::extract
SplPriorityQueue::isEmpty
SplPriorityQueue
PHP 手册

SplPriorityQueue::insert

(PHP 5 >= 5.3.0)

SplPriorityQueue::insert — Inserts an element in the queue by sifting it up.

说明

void SplPriorityQueue::insert ( mixed $value , mixed $priority )

Insert value with the priority priority in the queue.

参数

value

The value to insert.

priority

The associated priority.

返回值

无返回值。

SplPriorityQueue::extract
SplPriorityQueue::isEmpty
SplPriorityQueue


Checks whether the queue is empty.

SplPriorityQueue::insert
SplPriorityQueue::key
SplPriorityQueue
PHP 手册

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0)

SplPriorityQueue::isEmpty — Checks whether the queue is empty.

说明

bool SplPriorityQueue::isEmpty ( void )

参数

This function has no parameters.

返回值

Returns whether the queue is empty.

SplPriorityQueue::insert
SplPriorityQueue::key
SplPriorityQueue


Return current node index

SplPriorityQueue::isEmpty
SplPriorityQueue::next
SplPriorityQueue
PHP 手册

SplPriorityQueue::key

(PHP 5 >= 5.3.0)

SplPriorityQueue::key — Return current node index

说明

mixed SplPriorityQueue::key ( void )

This function returns the current node index

参数

This function has no parameters.

返回值

The current node index.

SplPriorityQueue::isEmpty
SplPriorityQueue::next
SplPriorityQueue


Move to the next node

SplPriorityQueue::key
SplPriorityQueue::recoverFromCorruption
SplPriorityQueue
PHP 手册

SplPriorityQueue::next

(PHP 5 >= 5.3.0)

SplPriorityQueue::next — Move to the next node

说明

void SplPriorityQueue::next ( void )

Extracts the top node from the queue.

参数

This function has no parameters.

返回值

无返回值。

SplPriorityQueue::key
SplPriorityQueue::recoverFromCorruption
SplPriorityQueue


Recover from the corrupted state and allow further actions on the queue.

SplPriorityQueue::next
SplPriorityQueue::rewind
SplPriorityQueue
PHP 手册

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0)

SplPriorityQueue::recoverFromCorruption — Recover from the corrupted state and allow further actions on the queue.

说明

void SplPriorityQueue::recoverFromCorruption ( void )

参数

This function has no parameters.

返回值

无返回值。

SplPriorityQueue::next
SplPriorityQueue::rewind
SplPriorityQueue


Rewind iterator back to the start (no-op)

SplPriorityQueue::recoverFromCorruption
SplPriorityQueue::setExtractFlags
SplPriorityQueue
PHP 手册

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0)

SplPriorityQueue::rewind — Rewind iterator back to the start (no-op)

说明

void SplPriorityQueue::rewind ( void )

This rewinds the iterator to the beginning. This is a no-op for heaps as the iterator is virtual and in fact never moves from the top of the heap.

参数

This function has no parameters.

返回值

无返回值。

SplPriorityQueue::recoverFromCorruption
SplPriorityQueue::setExtractFlags
SplPriorityQueue


Sets the mode of extraction

SplPriorityQueue::rewind
SplPriorityQueue::top
SplPriorityQueue
PHP 手册

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0)

SplPriorityQueue::setExtractFlags — Sets the mode of extraction

说明

void SplPriorityQueue::setExtractFlags ( int $flags )

参数

flags

Defines what is extracted by  SplPriorityQueue::current,
 SplPriorityQueue::top and
 SplPriorityQueue::extract.

  • SplPriorityQueue::EXTR_DATA (0x00000001): Extract the data
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Extract the priority
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Extract an array containing both

The default mode is SplPriorityQueue::EXTR_DATA.

返回值

无返回值。

SplPriorityQueue::rewind
SplPriorityQueue::top
SplPriorityQueue


Peaks at the node from the top of the queue

SplPriorityQueue::setExtractFlags
SplPriorityQueue::valid
SplPriorityQueue
PHP 手册

SplPriorityQueue::top

(PHP 5 >= 5.3.0)

SplPriorityQueue::top — Peaks at the node from the top of the queue

说明

mixed SplPriorityQueue::top ( void )

参数

This function has no parameters.

返回值

The value or priority (or both) of the top node, depending on the extract flag.

SplPriorityQueue::setExtractFlags
SplPriorityQueue::valid
SplPriorityQueue


Check whether the queue contains more nodes

SplPriorityQueue::top
Iterators
SplPriorityQueue
PHP 手册

SplPriorityQueue::valid

(PHP 5 >= 5.3.0)

SplPriorityQueue::valid — Check whether the queue contains more nodes

说明

bool SplPriorityQueue::valid ( void )

Checks if the queue contains any more nodes.

参数

This function has no parameters.

返回值

Returns TRUE if the queue contains any more nodes, FALSE otherwise.

SplPriorityQueue::top
Iterators
SplPriorityQueue


Iterators

Table of Contents

  • The ArrayIterator class
  • The CachingIterator class
  • The RecursiveCachingIterator class
  • The DirectoryIterator class
  • The RecursiveDirectoryIterator class
  • The FilterIterator class
  • The LimitIterator class
  • The ParentIterator class
  • The RecursiveIteratorIterator class
  • The SimpleXMLIterator class

SPL provides a set of iterators to traverse over objects.

Iterator list

  • AppendIterator
  • ArrayIterator
  • CachingIterator
  • DirectoryIterator
  • EmptyIterator
  • FilesystemIterator
  • FilterIterator
  • GlobIterator
  • InfiniteIterator
  • IteratorIterator
  • LimitIterator
  • MultipleIterator
  • NoRewindIterator
  • ParentIterator
  • RecursiveArrayIterator
  • RecursiveCachingIterator
  • RecursiveDirectoryIterator
  • RecursiveFilterIterator
  • RecursiveIteratorIterator
  • RecursiveRegexIterator
  • RecursiveTreeIterator
  • RegexIterator
SplPriorityQueue::valid
ArrayIterator
SPL


The ArrayIterator class

简介

This iterator allows to unset and modify values and keys while iterating over Arrays and Objects.

When you want to iterate over the same array multiple times you need to instantiate ArrayObject and let it create ArrayIterator instances that refer to it either by using foreach or by calling its getIterator() method manually.

Class synopsis

ArrayIterator
ArrayIterator implements Iterator , Traversable , ArrayAccess , SeekableIterator , Countable {
/* Methods */
mixed current ( void )
mixed key ( void )
void next ( void )
void rewind ( void )
void seek ( int $position )
bool valid ( void )
}

Table of Contents

  • ArrayIterator::current — Return current array entry
  • ArrayIterator::key — Return current array key
  • ArrayIterator::next — Move to next entry
  • ArrayIterator::rewind — Rewind array back to the start
  • ArrayIterator::seek — Seek to position
  • ArrayIterator::valid — Check whether array contains more entries
Iterators
ArrayIterator::current
Iterators


Return current array entry

ArrayIterator
ArrayIterator::key
ArrayIterator
PHP 手册

ArrayIterator::current

(PHP 5 >= 5.1.0)

ArrayIterator::current — Return current array entry

说明

mixed ArrayIterator::current ( void )

Get the current array entry.

参数

This function has no parameters.

返回值

The current array entry.

范例

Example #1 ArrayIterator::current() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

上例将输出：

1 => one
2 => two
3 => three

ArrayIterator
ArrayIterator::key
ArrayIterator


Return current array key

ArrayIterator::current
ArrayIterator::next
ArrayIterator
PHP 手册

ArrayIterator::key

(PHP 5 >= 5.1.0)

ArrayIterator::key — Return current array key

说明

mixed ArrayIterator::key ( void )

This function returns the current array key

参数

This function has no parameters.

返回值

The current array key.

范例

Example #1 ArrayIterator::key() example

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>

ArrayIterator::current
ArrayIterator::next
ArrayIterator


Move to next entry

ArrayIterator::key
ArrayIterator::rewind
ArrayIterator
PHP 手册

ArrayIterator::next

(PHP 5 >= 5.1.0)

ArrayIterator::next — Move to next entry

说明

void ArrayIterator::next ( void )

The iterator to the next entry.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

上例将输出：

0 => zero
1 => one

ArrayIterator::key
ArrayIterator::rewind
ArrayIterator


Rewind array back to the start

ArrayIterator::next
ArrayIterator::seek
ArrayIterator
PHP 手册

ArrayIterator::rewind

(PHP 5 >= 5.1.0)

ArrayIterator::rewind — Rewind array back to the start

说明

void ArrayIterator::rewind ( void )

This rewinds the iterator to the beginning.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 ArrayIterator::rewind() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the begining
echo $iterator->key(); //0
?>

ArrayIterator::next
ArrayIterator::seek
ArrayIterator


Seek to position

ArrayIterator::rewind
ArrayIterator::valid
ArrayIterator
PHP 手册

ArrayIterator::seek

(PHP 5 >= 5.1.0)

ArrayIterator::seek — Seek to position

说明

void ArrayIterator::seek ( int $position )
Warning

本函数暂无文档，仅有参数列表。

参数

position

The position to seek to.

返回值

无返回值。

ArrayIterator::rewind
ArrayIterator::valid
ArrayIterator


Check whether array contains more entries

ArrayIterator::seek
CachingIterator
ArrayIterator
PHP 手册

ArrayIterator::valid

(PHP 5 >= 5.1.0)

ArrayIterator::valid — Check whether array contains more entries

说明

bool ArrayIterator::valid ( void )

Checks if the array contains any more entries.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 ArrayIterator::valid() example

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // advance to the next item

//bool(false) because there is only one array element
var_dump($iterator->valid());
?>

ArrayIterator::seek
CachingIterator
ArrayIterator


The CachingIterator class

简介

This object supports cached iteration over another iterator.

Class synopsis

CachingIterator
CachingIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator , ArrayAccess , Countable {
/* Constants */
const integer CachingIterator::CALL_TOSTRING =1 ;
const integer CachingIterator::CATCH_GET_CHILD =16 ;
const integer CachingIterator::TOSTRING_USE_KEY =2 ;
const integer CachingIterator::TOSTRING_USE_CURRENT =4 ;
const integer CachingIterator::TOSTRING_USE_INNER =8 ;
const integer CachingIterator::FULL_CACHE =256 ;
/* Methods */
__construct ( Iterator $iterator [, string $flags ] )
public void count ( void )
public void current ( void )
public void getCache ( void )
public void getFlags ( void )
public void getInnerIterator ( void )
public void hasNext ( void )
public void key ( void )
public void next ( void )
public void offsetExists ( string $index )
public void offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
public void rewind ( void )
public void setFlags ( bitmask $flags )
public void __toString ( void )
public void valid ( void )
}

预定义常量

CachingIterator Node Types

CachingIterator::CALL_TOSTRING

Description here...

CachingIterator::CATCH_GET_CHILD

Description here...

CachingIterator::TOSTRING_USE_KEY

Description here...

CachingIterator::TOSTRING_USE_CURRENT

Description here...

CachingIterator::TOSTRING_USE_INNER

Description here...

CachingIterator::FULL_CACHE

Cache all read data.

Table of Contents

  • CachingIterator::__construct — Construct a new CachingIterator object for the iterator.
  • CachingIterator::count — The number of elements in the iterator
  • CachingIterator::current — Return the current element
  • CachingIterator::getCache — The getCache purpose
  • CachingIterator::getFlags — Get flags used
  • CachingIterator::getInnerIterator — Return the innter iterator
  • CachingIterator::hasNext — Check whether the inner iterator has a valid next element
  • CachingIterator::key — Return the key for the current element
  • CachingIterator::next — Move the iterator forward
  • CachingIterator::offsetExists — The offsetExists purpose
  • CachingIterator::offsetGet — The offsetGet purpose
  • CachingIterator::offsetSet — The offsetSet purpose
  • CachingIterator::offsetUnset — The offsetUnset purpose
  • CachingIterator::rewind — Rewind the iterator
  • CachingIterator::setFlags — The setFlags purpose
  • CachingIterator::__toString — Return the string representation of the current element
  • CachingIterator::valid — Check whether the current element is valid
ArrayIterator::valid
CachingIterator::__construct
Iterators


Construct a new CachingIterator object for the iterator.

CachingIterator
CachingIterator::count
CachingIterator
PHP 手册

CachingIterator::__construct

(PHP 5 >= 5.1.3)

CachingIterator::__construct — Construct a new CachingIterator object for the iterator.

说明

CachingIterator::__construct ( Iterator $iterator [, string $flags ] )
Warning

本函数暂无文档，仅有参数列表。

参数

iterator

Iterator to cache

flags

Bitmask of flags.

CachingIterator
CachingIterator::count
CachingIterator


The number of elements in the iterator

CachingIterator::__construct
CachingIterator::current
CachingIterator
PHP 手册

CachingIterator::count

(PHP 5 >= 5.2.2)

CachingIterator::count — The number of elements in the iterator

说明

public void CachingIterator::count ( void )
Warning

本函数暂无文档，仅有参数列表。

May return the number of elements in the iterator.

参数

This function has no parameters.

返回值

The count of the elements iterated over.

CachingIterator::__construct
CachingIterator::current
CachingIterator


Return the current element

CachingIterator::count
CachingIterator::getCache
CachingIterator
PHP 手册

CachingIterator::current

(No version information available, might be only in CVS)

CachingIterator::current — Return the current element

说明

public void CachingIterator::current ( void )
Warning

本函数暂无文档，仅有参数列表。

May return the current element in the iteration.

参数

This function has no parameters.

返回值

Mixed

参见

  • Iterator::current - Return the current element

CachingIterator::count
CachingIterator::getCache
CachingIterator


The getCache purpose

CachingIterator::current
CachingIterator::getFlags
CachingIterator
PHP 手册

CachingIterator::getCache

(PHP 5 >= 5.2.0)

CachingIterator::getCache — The getCache purpose

说明

public void CachingIterator::getCache ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

Description...

CachingIterator::current
CachingIterator::getFlags
CachingIterator


Get flags used

CachingIterator::getCache
CachingIterator::getInnerIterator
CachingIterator
PHP 手册

CachingIterator::getFlags

(PHP 5 >= 5.2.0)

CachingIterator::getFlags — Get flags used

说明

public void CachingIterator::getFlags ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the bitmask of the flags used for this CachingIterator instance.

参数

This function has no parameters.

返回值

Description...

CachingIterator::getCache
CachingIterator::getInnerIterator
CachingIterator


Return the innter iterator

CachingIterator::getFlags
CachingIterator::hasNext
CachingIterator
PHP 手册

CachingIterator::getInnerIterator

(No version information available, might be only in CVS)

CachingIterator::getInnerIterator — Return the innter iterator

说明

public void CachingIterator::getInnerIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Returns the iterator sent to the constructor.

参数

This function has no parameters.

返回值

Returns an object implementing the Iterator interface.

CachingIterator::getFlags
CachingIterator::hasNext
CachingIterator


Check whether the inner iterator has a valid next element

CachingIterator::getInnerIterator
CachingIterator::key
CachingIterator
PHP 手册

CachingIterator::hasNext

(PHP 5)

CachingIterator::hasNext — Check whether the inner iterator has a valid next element

说明

public void CachingIterator::hasNext ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

CachingIterator::getInnerIterator
CachingIterator::key
CachingIterator


Return the key for the current element

CachingIterator::hasNext
CachingIterator::next
CachingIterator
PHP 手册

CachingIterator::key

(No version information available, might be only in CVS)

CachingIterator::key — Return the key for the current element

说明

public void CachingIterator::key ( void )
Warning

本函数暂无文档，仅有参数列表。

This method may return a key for the current element.

参数

This function has no parameters.

CachingIterator::hasNext
CachingIterator::next
CachingIterator


Move the iterator forward

CachingIterator::key
CachingIterator::offsetExists
CachingIterator
PHP 手册

CachingIterator::next

(PHP 5)

CachingIterator::next — Move the iterator forward

说明

public void CachingIterator::next ( void )
Warning

本函数暂无文档，仅有参数列表。

Move the iterator forward.

参数

This function has no parameters.

返回值

无返回值。

CachingIterator::key
CachingIterator::offsetExists
CachingIterator


The offsetExists purpose

CachingIterator::next
CachingIterator::offsetGet
CachingIterator
PHP 手册

CachingIterator::offsetExists

(PHP 5 >= 5.2.0)

CachingIterator::offsetExists — The offsetExists purpose

说明

public void CachingIterator::offsetExists ( string $index )
Warning

本函数暂无文档，仅有参数列表。

参数

index

The index being checked.

返回值

Returns TRUE if an entry referenced by the offset exists, FALSE otherwise.

CachingIterator::next
CachingIterator::offsetGet
CachingIterator


The offsetGet purpose

CachingIterator::offsetExists
CachingIterator::offsetSet
CachingIterator
PHP 手册

CachingIterator::offsetGet

(PHP 5 >= 5.2.0)

CachingIterator::offsetGet — The offsetGet purpose

说明

public void CachingIterator::offsetGet ( string $index )
Warning

本函数暂无文档，仅有参数列表。

参数

index

Description...

返回值

Description...

CachingIterator::offsetExists
CachingIterator::offsetSet
CachingIterator


The offsetSet purpose

CachingIterator::offsetGet
CachingIterator::offsetUnset
CachingIterator
PHP 手册

CachingIterator::offsetSet

(PHP 5 >= 5.2.0)

CachingIterator::offsetSet — The offsetSet purpose

说明

public void CachingIterator::offsetSet ( string $index , string $newval )
Warning

本函数暂无文档，仅有参数列表。

参数

index

The index of the element to be set.

newval

The new value for the index .

返回值

无返回值。

CachingIterator::offsetGet
CachingIterator::offsetUnset
CachingIterator


The offsetUnset purpose

CachingIterator::offsetSet
CachingIterator::rewind
CachingIterator
PHP 手册

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0)

CachingIterator::offsetUnset — The offsetUnset purpose

说明

public void CachingIterator::offsetUnset ( string $index )
Warning

本函数暂无文档，仅有参数列表。

参数

index

The index of the element to be unset.

返回值

无返回值。

CachingIterator::offsetSet
CachingIterator::rewind
CachingIterator


Rewind the iterator

CachingIterator::offsetUnset
CachingIterator::setFlags
CachingIterator
PHP 手册

CachingIterator::rewind

(PHP 5)

CachingIterator::rewind — Rewind the iterator

说明

public void CachingIterator::rewind ( void )
Warning

本函数暂无文档，仅有参数列表。

Rewind the iterator.

参数

This function has no parameters.

返回值

无返回值。

CachingIterator::offsetUnset
CachingIterator::setFlags
CachingIterator


The setFlags purpose

CachingIterator::rewind
CachingIterator::__toString
CachingIterator
PHP 手册

CachingIterator::setFlags

(PHP 5 >= 5.2.0)

CachingIterator::setFlags — The setFlags purpose

说明

public void CachingIterator::setFlags ( bitmask $flags )
Warning

本函数暂无文档，仅有参数列表。

Set the flags for the CachingIterator object.

参数

flags

Bitmask of the flags to set.

返回值

无返回值。

CachingIterator::rewind
CachingIterator::__toString
CachingIterator


Return the string representation of the current element

CachingIterator::setFlags
CachingIterator::valid
CachingIterator
PHP 手册

CachingIterator::__toString

(PHP 5)

CachingIterator::__toString — Return the string representation of the current element

说明

public void CachingIterator::__toString ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the string representation of the current element.

参数

This function has no parameters.

返回值

The string representation of the current element.

CachingIterator::setFlags
CachingIterator::valid
CachingIterator


Check whether the current element is valid

CachingIterator::__toString
RecursiveCachingIterator
CachingIterator
PHP 手册

CachingIterator::valid

(PHP 5)

CachingIterator::valid — Check whether the current element is valid

说明

public void CachingIterator::valid ( void )
Warning

本函数暂无文档，仅有参数列表。

Check whether the current element is valid.

参数

This function has no parameters.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

CachingIterator::__toString
RecursiveCachingIterator
CachingIterator


The RecursiveCachingIterator class

简介

...

Class synopsis

RecursiveCachingIterator
RecursiveCachingIterator extends CachingIterator implements Countable , ArrayAccess , Iterator , Traversable , OuterIterator , RecursiveIterator {
/* Methods */
RecursiveCachingIterator getChildren ( void )
bool hasChildren ( void )
/* Inherits */
CachingIterator::__construct ( Iterator $iterator [, string $flags ] )
public void CachingIterator::count ( void )
public void CachingIterator::current ( void )
public void CachingIterator::getCache ( void )
public void CachingIterator::getFlags ( void )
public void CachingIterator::getInnerIterator ( void )
public void CachingIterator::hasNext ( void )
public void CachingIterator::key ( void )
public void CachingIterator::next ( void )
public void CachingIterator::offsetExists ( string $index )
public void CachingIterator::offsetGet ( string $index )
public void CachingIterator::offsetSet ( string $index , string $newval )
public void CachingIterator::offsetUnset ( string $index )
public void CachingIterator::rewind ( void )
public void CachingIterator::setFlags ( bitmask $flags )
public void CachingIterator::__toString ( void )
public void CachingIterator::valid ( void )
}

Table of Contents

  • RecursiveCachingIterator::getChildren — Return the inner iterator's children as a RecursiveCachingIterator
  • RecursiveCachingIterator::hasChildren — Check whether the current element of the inner iterator has children
CachingIterator::valid
RecursiveCachingIterator::getChildren
Iterators


Return the inner iterator's children as a RecursiveCachingIterator

RecursiveCachingIterator
RecursiveCachingIterator::hasChildren
RecursiveCachingIterator
PHP 手册

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveCachingIterator::getChildren — Return the inner iterator's children as a RecursiveCachingIterator

说明

RecursiveCachingIterator RecursiveCachingIterator::getChildren ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The inner iterator's children, as a RecursiveCachingIterator.

RecursiveCachingIterator
RecursiveCachingIterator::hasChildren
RecursiveCachingIterator


Check whether the current element of the inner iterator has children

RecursiveCachingIterator::getChildren
DirectoryIterator
RecursiveCachingIterator
PHP 手册

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0)

RecursiveCachingIterator::hasChildren — Check whether the current element of the inner iterator has children

说明

bool RecursiveCachingIterator::hasChildren ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

TRUE if the inner iterator has children, otherwise FALSE

RecursiveCachingIterator::getChildren
DirectoryIterator
RecursiveCachingIterator


The DirectoryIterator class

简介

The DirectoryIterator class provides a simple interface for viewing the contents of filesystem directories.

Class synopsis

DirectoryIterator
DirectoryIterator extends SplFileInfo implements Iterator , Traversable {
/* Methods */
__construct ( string $path )
DirectoryIterator current ( void )
int getATime ( void )
int getCTime ( void )
string getFilename ( void )
int getGroup ( void )
int getInode ( void )
int getMTime ( void )
int getOwner ( void )
string getPath ( void )
string getPathname ( void )
int getPerms ( void )
int getSize ( void )
string getType ( void )
bool isDir ( void )
bool isDot ( void )
bool isExecutable ( void )
bool isFile ( void )
bool isLink ( void )
bool isReadable ( void )
bool isWritable ( void )
string key ( void )
void next ( void )
void rewind ( void )
string valid ( void )
}

Table of Contents

  • DirectoryIterator::__construct — Constructs a new dir iterator from a path
  • DirectoryIterator::current — Return this (needed for Iterator interface)
  • DirectoryIterator::getATime — Get last access time of file
  • DirectoryIterator::getCTime — Get inode modification time of file
  • DirectoryIterator::getFilename — Return filename of current dir entry
  • DirectoryIterator::getGroup — Get file group
  • DirectoryIterator::getInode — Get file inode
  • DirectoryIterator::getMTime — Get last modification time of file
  • DirectoryIterator::getOwner — Get file owner
  • DirectoryIterator::getPath — Return directory path
  • DirectoryIterator::getPathname — Return path and filename of current dir entry
  • DirectoryIterator::getPerms — Get file permissions
  • DirectoryIterator::getSize — Get file size
  • DirectoryIterator::getType — Get file type
  • DirectoryIterator::isDir — Returns true if file is directory
  • DirectoryIterator::isDot — Returns true if current entry is '.' or '..'
  • DirectoryIterator::isExecutable — Returns true if file is executable
  • DirectoryIterator::isFile — Returns true if file is a regular file
  • DirectoryIterator::isLink — Returns true if file is symbolic link
  • DirectoryIterator::isReadable — Returns true if file can be read
  • DirectoryIterator::isWritable — Returns true if file can be written
  • DirectoryIterator::key — Return current dir entry
  • DirectoryIterator::next — Move to next entry
  • DirectoryIterator::rewind — Rewind dir back to the start
  • DirectoryIterator::valid — Check whether dir contains more entries
RecursiveCachingIterator::hasChildren
DirectoryIterator::__construct
Iterators


Constructs a new dir iterator from a path

DirectoryIterator
DirectoryIterator::current
DirectoryIterator
PHP 手册

DirectoryIterator::__construct

(PHP 5)

DirectoryIterator::__construct — Constructs a new dir iterator from a path

说明

DirectoryIterator::__construct ( string $path )

Constructs a new directory iterator from a path.

参数

path

The path of the directory to traverse.

范例

Example #1 A DirectoryIterator::__construct example

This example will list the contents of the directory containing the script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
    }
}
?>

参见

  • SplFileInfo
  • Iterator

DirectoryIterator
DirectoryIterator::current
DirectoryIterator


Return this (needed for Iterator interface)

DirectoryIterator::__construct
DirectoryIterator::getATime
DirectoryIterator
PHP 手册

DirectoryIterator::current

(PHP 5)

DirectoryIterator::current — Return this (needed for Iterator interface)

说明

DirectoryIterator DirectoryIterator::current ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

Return this (needed for Iterator interface).

DirectoryIterator::__construct
DirectoryIterator::getATime
DirectoryIterator


Get last access time of file

DirectoryIterator::current
DirectoryIterator::getCTime
DirectoryIterator
PHP 手册

DirectoryIterator::getATime

(PHP 5 >= 5.0.2)

DirectoryIterator::getATime — Get last access time of file

说明

int DirectoryIterator::getATime ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the last access time of file.

参数

This function has no parameters.

返回值

The last access time of the file.

DirectoryIterator::current
DirectoryIterator::getCTime
DirectoryIterator


Get inode modification time of file

DirectoryIterator::getATime
DirectoryIterator::getFilename
DirectoryIterator
PHP 手册

DirectoryIterator::getCTime

(PHP 5 >= 5.0.2)

DirectoryIterator::getCTime — Get inode modification time of file

说明

int DirectoryIterator::getCTime ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the inode modification time of file.

参数

This function has no parameters.

返回值

The last modification time of the file.

DirectoryIterator::getATime
DirectoryIterator::getFilename
DirectoryIterator


Return filename of current dir entry

DirectoryIterator::getCTime
DirectoryIterator::getGroup
DirectoryIterator
PHP 手册

DirectoryIterator::getFilename

(PHP 5)

DirectoryIterator::getFilename — Return filename of current dir entry

说明

string DirectoryIterator::getFilename ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the filename of the current dir entry.

参数

This function has no parameters.

返回值

The filename of the current dir entry.

DirectoryIterator::getCTime
DirectoryIterator::getGroup
DirectoryIterator


Get file group

DirectoryIterator::getFilename
DirectoryIterator::getInode
DirectoryIterator
PHP 手册

DirectoryIterator::getGroup

(PHP 5 >= 5.0.2)

DirectoryIterator::getGroup — Get file group

说明

int DirectoryIterator::getGroup ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the files group.

参数

This function has no parameters.

返回值

The file group of the file.

DirectoryIterator::getFilename
DirectoryIterator::getInode
DirectoryIterator


Get file inode

DirectoryIterator::getGroup
DirectoryIterator::getMTime
DirectoryIterator
PHP 手册

DirectoryIterator::getInode

(PHP 5 >= 5.0.2)

DirectoryIterator::getInode — Get file inode

说明

int DirectoryIterator::getInode ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the inode of the file.

参数

This function has no parameters.

返回值

The inode of the file.

DirectoryIterator::getGroup
DirectoryIterator::getMTime
DirectoryIterator


Get last modification time of file

DirectoryIterator::getInode
DirectoryIterator::getOwner
DirectoryIterator
PHP 手册

DirectoryIterator::getMTime

(PHP 5 >= 5.0.2)

DirectoryIterator::getMTime — Get last modification time of file

说明

int DirectoryIterator::getMTime ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the last modification time of the file.

参数

This function has no parameters.

返回值

The last modification time of the file.

DirectoryIterator::getInode
DirectoryIterator::getOwner
DirectoryIterator


Get file owner

DirectoryIterator::getMTime
DirectoryIterator::getPath
DirectoryIterator
PHP 手册

DirectoryIterator::getOwner

(PHP 5 >= 5.0.2)

DirectoryIterator::getOwner — Get file owner

说明

int DirectoryIterator::getOwner ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the owner of the file.

参数

This function has no parameters.

返回值

The file owner of the file.

DirectoryIterator::getMTime
DirectoryIterator::getPath
DirectoryIterator


Return directory path

DirectoryIterator::getOwner
DirectoryIterator::getPathname
DirectoryIterator
PHP 手册

DirectoryIterator::getPath

(PHP 5 <= 5.1.1)

DirectoryIterator::getPath — Return directory path

说明

string DirectoryIterator::getPath ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the directory path.

参数

This function has no parameters.

返回值

The directory path.

DirectoryIterator::getOwner
DirectoryIterator::getPathname
DirectoryIterator


Return path and filename of current dir entry

DirectoryIterator::getPath
DirectoryIterator::getPerms
DirectoryIterator
PHP 手册

DirectoryIterator::getPathname

(PHP 5 <= 5.1.1)

DirectoryIterator::getPathname — Return path and filename of current dir entry

说明

string DirectoryIterator::getPathname ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the path and filename of the current dir entry.

参数

This function has no parameters.

返回值

The path and filename of current dir entry.

DirectoryIterator::getPath
DirectoryIterator::getPerms
DirectoryIterator


Get file permissions

DirectoryIterator::getPathname
DirectoryIterator::getSize
DirectoryIterator
PHP 手册

DirectoryIterator::getPerms

(PHP 5 >= 5.0.2)

DirectoryIterator::getPerms — Get file permissions

说明

int DirectoryIterator::getPerms ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the permissions of the file.

参数

This function has no parameters.

返回值

The file permissions of the file.

DirectoryIterator::getPathname
DirectoryIterator::getSize
DirectoryIterator


Get file size

DirectoryIterator::getPerms
DirectoryIterator::getType
DirectoryIterator
PHP 手册

DirectoryIterator::getSize

(PHP 5 >= 5.0.2)

DirectoryIterator::getSize — Get file size

说明

int DirectoryIterator::getSize ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the file size.

参数

This function has no parameters.

返回值

The size of the file.

DirectoryIterator::getPerms
DirectoryIterator::getType
DirectoryIterator


Get file type

DirectoryIterator::getSize
DirectoryIterator::isDir
DirectoryIterator
PHP 手册

DirectoryIterator::getType

(PHP 5 >= 5.0.2)

DirectoryIterator::getType — Get file type

说明

string DirectoryIterator::getType ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the file type.

参数

This function has no parameters.

返回值

The type of the file.

DirectoryIterator::getSize
DirectoryIterator::isDir
DirectoryIterator


Returns true if file is directory

DirectoryIterator::getType
DirectoryIterator::isDot
DirectoryIterator
PHP 手册

DirectoryIterator::isDir

(PHP 5 <= 5.1.1)

DirectoryIterator::isDir — Returns true if file is directory

说明

bool DirectoryIterator::isDir ( void )
Warning

本函数暂无文档，仅有参数列表。

Check if the file is a directory.

参数

This function has no parameters.

返回值

TRUE if it is a directory, otherwise FALSE

DirectoryIterator::getType
DirectoryIterator::isDot
DirectoryIterator


Returns true if current entry is '.' or '..'

DirectoryIterator::isDir
DirectoryIterator::isExecutable
DirectoryIterator
PHP 手册

DirectoryIterator::isDot

(PHP 5.1.0)

DirectoryIterator::isDot — Returns true if current entry is '.' or '..'

说明

bool DirectoryIterator::isDot ( void )

Check whether the current entry is a directory and either . or ...

参数

This function has no parameters.

返回值

TRUE if the entry is . or .., otherwise FALSE

范例

Example #1 A DirectoryIterator::isDot example

This example will list all files, omitting the . and .. entries.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo 'Filename '.$fileinfo->getFilename().PHP_EOL;
    }
}
?>

DirectoryIterator::isDir
DirectoryIterator::isExecutable
DirectoryIterator


Returns true if file is executable

DirectoryIterator::isDot
DirectoryIterator::isFile
DirectoryIterator
PHP 手册

DirectoryIterator::isExecutable

(PHP 5 <= 5.1.1)

DirectoryIterator::isExecutable — Returns true if file is executable

说明

bool DirectoryIterator::isExecutable ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks if the file is executable.

参数

This function has no parameters.

返回值

TRUE if the entry is executable, otherwise FALSE

DirectoryIterator::isDot
DirectoryIterator::isFile
DirectoryIterator


Returns true if file is a regular file

DirectoryIterator::isExecutable
DirectoryIterator::isLink
DirectoryIterator
PHP 手册

DirectoryIterator::isFile

(PHP 5 <= 5.1.1)

DirectoryIterator::isFile — Returns true if file is a regular file

说明

bool DirectoryIterator::isFile ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks if it's a regular file.

参数

This function has no parameters.

返回值

TRUE if the entry is a regular file, otherwise FALSE

DirectoryIterator::isExecutable
DirectoryIterator::isLink
DirectoryIterator


Returns true if file is symbolic link

DirectoryIterator::isFile
DirectoryIterator::isReadable
DirectoryIterator
PHP 手册

DirectoryIterator::isLink

(PHP 5 <= 5.1.1)

DirectoryIterator::isLink — Returns true if file is symbolic link

说明

bool DirectoryIterator::isLink ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks if the current element is a symbolic link.

参数

This function has no parameters.

返回值

TRUE if the entry is a symbolic link, otherwise FALSE

范例

Example #1 A DirectoryIterator::isLink example

This example contains a recursive function for removing a directory tree.

<?php
/**
 * This function will recursively delete all files in the given path, without
 * following symlinks.
 *
 * @param string $path Path to the directory to remove.
 */
function removeDir($path) {
    $dir = new DirectoryIterator($path);
    foreach ($dir as $fileinfo) {
        if ($fileinfo->isFile() || $fileinfo->isSymlink()) {
            unlink($fileinfo->getPathName());
        } elseif (!$fileinfo->isDot() && $fileinfo->isDir()) {
            removeDir($fileinfo->getPathName());
        }
    }
    rmdir($path);
}

removeDir('foo');
?>

DirectoryIterator::isFile
DirectoryIterator::isReadable
DirectoryIterator


Returns true if file can be read

DirectoryIterator::isLink
DirectoryIterator::isWritable
DirectoryIterator
PHP 手册

DirectoryIterator::isReadable

(PHP 5 <= 5.1.1)

DirectoryIterator::isReadable — Returns true if file can be read

说明

bool DirectoryIterator::isReadable ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks if the entry is readable.

参数

This function has no parameters.

返回值

TRUE if the file is readable, otherwise FALSE

DirectoryIterator::isLink
DirectoryIterator::isWritable
DirectoryIterator


Returns true if file can be written

DirectoryIterator::isReadable
DirectoryIterator::key
DirectoryIterator
PHP 手册

DirectoryIterator::isWritable

(PHP 5 <= 5.1.1)

DirectoryIterator::isWritable — Returns true if file can be written

说明

bool DirectoryIterator::isWritable ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks if the entry is writable.

参数

This function has no parameters.

返回值

TRUE if the file is writable, otherwise FALSE

DirectoryIterator::isReadable
DirectoryIterator::key
DirectoryIterator


Return current dir entry

DirectoryIterator::isWritable
DirectoryIterator::next
DirectoryIterator
PHP 手册

DirectoryIterator::key

(PHP 5)

DirectoryIterator::key — Return current dir entry

说明

string DirectoryIterator::key ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the current dir entry.

参数

This function has no parameters.

返回值

The current dir entry.

DirectoryIterator::isWritable
DirectoryIterator::next
DirectoryIterator


Move to next entry

DirectoryIterator::key
DirectoryIterator::rewind
DirectoryIterator
PHP 手册

DirectoryIterator::next

(PHP 5)

DirectoryIterator::next — Move to next entry

说明

void DirectoryIterator::next ( void )
Warning

本函数暂无文档，仅有参数列表。

Move to the next entry.

参数

This function has no parameters.

返回值

无返回值。

DirectoryIterator::key
DirectoryIterator::rewind
DirectoryIterator


Rewind dir back to the start

DirectoryIterator::next
DirectoryIterator::valid
DirectoryIterator
PHP 手册

DirectoryIterator::rewind

(PHP 5)

DirectoryIterator::rewind — Rewind dir back to the start

说明

void DirectoryIterator::rewind ( void )
Warning

本函数暂无文档，仅有参数列表。

Rewind dir back to the start.

参数

This function has no parameters.

返回值

无返回值。

DirectoryIterator::next
DirectoryIterator::valid
DirectoryIterator


Check whether dir contains more entries

DirectoryIterator::rewind
RecursiveDirectoryIterator
DirectoryIterator
PHP 手册

DirectoryIterator::valid

(PHP 5)

DirectoryIterator::valid — Check whether dir contains more entries

说明

string DirectoryIterator::valid ( void )
Warning

本函数暂无文档，仅有参数列表。

Check whether dir contains more entries.

参数

This function has no parameters.

返回值

无返回值。

DirectoryIterator::rewind
RecursiveDirectoryIterator
DirectoryIterator


The RecursiveDirectoryIterator class

简介

...

Class synopsis

RecursiveDirectoryIterator
RecursiveDirectoryIterator extends DirectoryIterator implements Traversable , Iterator , RecursiveIterator {
/* Methods */
object getChildren ( void )
bool hasChildren ([ bool $allow_links ] )
string key ( void )
void next ( void )
void rewind ( void )
/* Inherits */
DirectoryIterator DirectoryIterator::current ( void )
int DirectoryIterator::getATime ( void )
int DirectoryIterator::getCTime ( void )
string DirectoryIterator::getFilename ( void )
int DirectoryIterator::getGroup ( void )
int DirectoryIterator::getInode ( void )
int DirectoryIterator::getMTime ( void )
int DirectoryIterator::getOwner ( void )
string DirectoryIterator::getPath ( void )
string DirectoryIterator::getPathname ( void )
int DirectoryIterator::getPerms ( void )
int DirectoryIterator::getSize ( void )
string DirectoryIterator::getType ( void )
bool DirectoryIterator::isDir ( void )
bool DirectoryIterator::isDot ( void )
bool DirectoryIterator::isExecutable ( void )
bool DirectoryIterator::isFile ( void )
bool DirectoryIterator::isLink ( void )
bool DirectoryIterator::isReadable ( void )
bool DirectoryIterator::isWritable ( void )
string DirectoryIterator::key ( void )
void DirectoryIterator::next ( void )
void DirectoryIterator::rewind ( void )
string DirectoryIterator::valid ( void )
}

Table of Contents

  • RecursiveDirectoryIterator::getChildren — Returns an iterator for the current entry if it is a directory
  • RecursiveDirectoryIterator::hasChildren — Returns whether current entry is a directory and not '.' or '..'
  • RecursiveDirectoryIterator::key — Return path and filename of current dir entry
  • RecursiveDirectoryIterator::next — Move to next entry
  • RecursiveDirectoryIterator::rewind — Rewind dir back to the start
DirectoryIterator::valid
RecursiveDirectoryIterator::getChildren
Iterators


Returns an iterator for the current entry if it is a directory

RecursiveDirectoryIterator
RecursiveDirectoryIterator::hasChildren
RecursiveDirectoryIterator
PHP 手册

RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0)

RecursiveDirectoryIterator::getChildren — Returns an iterator for the current entry if it is a directory

说明

object RecursiveDirectoryIterator::getChildren ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

An iterator for the current entry, if it is a directory.

RecursiveDirectoryIterator
RecursiveDirectoryIterator::hasChildren
RecursiveDirectoryIterator


Returns whether current entry is a directory and not '.' or '..'

RecursiveDirectoryIterator::getChildren
RecursiveDirectoryIterator::key
RecursiveDirectoryIterator
PHP 手册

RecursiveDirectoryIterator::hasChildren

(PHP 5)

RecursiveDirectoryIterator::hasChildren — Returns whether current entry is a directory and not '.' or '..'

说明

bool RecursiveDirectoryIterator::hasChildren ([ bool $allow_links ] )
Warning

本函数暂无文档，仅有参数列表。

参数

allow_links

返回值

Returns whether the current entry is a directory, but not '.' or '..'

RecursiveDirectoryIterator::getChildren
RecursiveDirectoryIterator::key
RecursiveDirectoryIterator


Return path and filename of current dir entry

RecursiveDirectoryIterator::hasChildren
RecursiveDirectoryIterator::next
RecursiveDirectoryIterator
PHP 手册

RecursiveDirectoryIterator::key

(PHP 5)

RecursiveDirectoryIterator::key — Return path and filename of current dir entry

说明

string RecursiveDirectoryIterator::key ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The path and filename of the current dir entry.

RecursiveDirectoryIterator::hasChildren
RecursiveDirectoryIterator::next
RecursiveDirectoryIterator


Move to next entry

RecursiveDirectoryIterator::key
RecursiveDirectoryIterator::rewind
RecursiveDirectoryIterator
PHP 手册

RecursiveDirectoryIterator::next

(PHP 5)

RecursiveDirectoryIterator::next — Move to next entry

说明

void RecursiveDirectoryIterator::next ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

RecursiveDirectoryIterator::key
RecursiveDirectoryIterator::rewind
RecursiveDirectoryIterator


Rewind dir back to the start

RecursiveDirectoryIterator::next
FilterIterator
RecursiveDirectoryIterator
PHP 手册

RecursiveDirectoryIterator::rewind

(PHP 5)

RecursiveDirectoryIterator::rewind — Rewind dir back to the start

说明

void RecursiveDirectoryIterator::rewind ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

RecursiveDirectoryIterator::next
FilterIterator
RecursiveDirectoryIterator


The FilterIterator class

简介

...

Class synopsis

FilterIterator
abstract FilterIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {
/* Methods */
mixed current ( void )
Iterator getInnerIterator ( void )
mixed key ( void )
void next ( void )
void rewind ( void )
bool valid ( void )
}

Table of Contents

  • FilterIterator::current — Get the current element value
  • FilterIterator::getInnerIterator — Get the inner iterator
  • FilterIterator::key — Get the current key
  • FilterIterator::next — Move the iterator forward
  • FilterIterator::rewind — Rewind the iterator
  • FilterIterator::valid — Check whether the current element is valid
RecursiveDirectoryIterator::rewind
FilterIterator::current
Iterators


Get the current element value

FilterIterator
FilterIterator::getInnerIterator
FilterIterator
PHP 手册

FilterIterator::current

(PHP 5 >= 5.1.0)

FilterIterator::current — Get the current element value

说明

mixed FilterIterator::current ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the current element value.

参数

This function has no parameters.

返回值

The current element value.

参见

  • FilterIterator::key() - Get the current key
  • FilterIterator::next() - Move the iterator forward

FilterIterator
FilterIterator::getInnerIterator
FilterIterator


Get the inner iterator

FilterIterator::current
FilterIterator::key
FilterIterator
PHP 手册

FilterIterator::getInnerIterator

(PHP 5 >= 5.1.0)

FilterIterator::getInnerIterator — Get the inner iterator

说明

Iterator FilterIterator::getInnerIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the inner iterator.

参数

This function has no parameters.

返回值

The inner iterator.

FilterIterator::current
FilterIterator::key
FilterIterator


Get the current key

FilterIterator::getInnerIterator
FilterIterator::next
FilterIterator
PHP 手册

FilterIterator::key

(PHP 5 >= 5.1.0)

FilterIterator::key — Get the current key

说明

mixed FilterIterator::key ( void )
Warning

本函数暂无文档，仅有参数列表。

Get the current key.

参数

This function has no parameters.

返回值

The current key.

参见

  • FilterIterator::next() - Move the iterator forward
  • FilterIterator::current() - Get the current element value

FilterIterator::getInnerIterator
FilterIterator::next
FilterIterator


Move the iterator forward

FilterIterator::key
FilterIterator::rewind
FilterIterator
PHP 手册

FilterIterator::next

(PHP 5 >= 5.1.0)

FilterIterator::next — Move the iterator forward

说明

void FilterIterator::next ( void )
Warning

本函数暂无文档，仅有参数列表。

Move the iterator forward.

参数

This function has no parameters.

返回值

无返回值。

参见

  • FilterIterator::current() - Get the current element value
  • FilterIterator::next()

FilterIterator::key
FilterIterator::rewind
FilterIterator


Rewind the iterator

FilterIterator::next
FilterIterator::valid
FilterIterator
PHP 手册

FilterIterator::rewind

(PHP 5 >= 5.1.0)

FilterIterator::rewind — Rewind the iterator

说明

void FilterIterator::rewind ( void )
Warning

本函数暂无文档，仅有参数列表。

Rewind the iterator.

参数

This function has no parameters.

返回值

无返回值。

参见

  • FilterIterator::current() - Get the current element value
  • FilterIterator::key() - Get the current key
  • FilterIterator::next() - Move the iterator forward

FilterIterator::next
FilterIterator::valid
FilterIterator


Check whether the current element is valid

FilterIterator::rewind
LimitIterator
FilterIterator
PHP 手册

FilterIterator::valid

(PHP 5 >= 5.1.0)

FilterIterator::valid — Check whether the current element is valid

说明

bool FilterIterator::valid ( void )
Warning

本函数暂无文档，仅有参数列表。

Checks whether the current element is valid.

参数

This function has no parameters.

返回值

TRUE if the current element is valid, otherwise FALSE

FilterIterator::rewind
LimitIterator
FilterIterator


The LimitIterator class

简介

...

Class synopsis

LimitIterator
LimitIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {
/* Methods */
int getPosition ( void )
void next ( void )
void rewind ( void )
void seek ( int $position )
bool valid ( void )
}

Table of Contents

  • LimitIterator::getPosition — Return the current position
  • LimitIterator::next — Move the iterator forward
  • LimitIterator::rewind — Rewind the iterator to the specified starting offset
  • LimitIterator::seek — Seek to the given position
  • LimitIterator::valid — Check whether the current element is valid
FilterIterator::valid
LimitIterator::getPosition
Iterators


Return the current position

LimitIterator
LimitIterator::next
LimitIterator
PHP 手册

LimitIterator::getPosition

(PHP 5 >= 5.1.0)

LimitIterator::getPosition — Return the current position

说明

int LimitIterator::getPosition ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current position.

LimitIterator
LimitIterator::next
LimitIterator


Move the iterator forward

LimitIterator::getPosition
LimitIterator::rewind
LimitIterator
PHP 手册

LimitIterator::next

(PHP 5 >= 5.1.0)

LimitIterator::next — Move the iterator forward

说明

void LimitIterator::next ( void )

Moves the iterator forward.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

LimitIterator::getPosition
LimitIterator::rewind
LimitIterator


Rewind the iterator to the specified starting offset

LimitIterator::next
LimitIterator::seek
LimitIterator
PHP 手册

LimitIterator::rewind

(PHP 5 >= 5.1.0)

LimitIterator::rewind — Rewind the iterator to the specified starting offset

说明

void LimitIterator::rewind ( void )

Rewinds the iterator to the specified starting offset.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

LimitIterator::next
LimitIterator::seek
LimitIterator


Seek to the given position

LimitIterator::rewind
LimitIterator::valid
LimitIterator
PHP 手册

LimitIterator::seek

(PHP 5 >= 5.1.0)

LimitIterator::seek — Seek to the given position

说明

void LimitIterator::seek ( int $position )
Warning

本函数暂无文档，仅有参数列表。

参数

position

The position being seeked to.

返回值

无返回值。

LimitIterator::rewind
LimitIterator::valid
LimitIterator


Check whether the current element is valid

LimitIterator::seek
ParentIterator
LimitIterator
PHP 手册

LimitIterator::valid

(PHP 5 >= 5.1.0)

LimitIterator::valid — Check whether the current element is valid

说明

bool LimitIterator::valid ( void )

Checks whether the current element is valid.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

LimitIterator::seek
ParentIterator
LimitIterator


The ParentIterator class

简介

...

Class synopsis

ParentIterator
ParentIterator extends RecursiveFilterIterator implements RecursiveIterator , OuterIterator , Traversable , Iterator {
/* Methods */
ParentIterator getChildren ( void )
bool hasChildren ( void )
void next ( void )
void rewind ( void )
}

Table of Contents

  • ParentIterator::getChildren — Return the inner iterator's children contained in a ParentIterator
  • ParentIterator::hasChildren — Check whether the inner iterator's current element has children
  • ParentIterator::next — Move the iterator forward
  • ParentIterator::rewind — Rewind the iterator
LimitIterator::valid
ParentIterator::getChildren
Iterators


Return the inner iterator's children contained in a ParentIterator

ParentIterator
ParentIterator::hasChildren
ParentIterator
PHP 手册

ParentIterator::getChildren

(PHP 5 >= 5.1.0)

ParentIterator::getChildren — Return the inner iterator's children contained in a ParentIterator

说明

ParentIterator ParentIterator::getChildren ( void )

Get the the inner iterator's children contained in a ParentIterator.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

An object.

ParentIterator
ParentIterator::hasChildren
ParentIterator


Check whether the inner iterator's current element has children

ParentIterator::getChildren
ParentIterator::next
ParentIterator
PHP 手册

ParentIterator::hasChildren

(PHP 5 >= 5.1.0)

ParentIterator::hasChildren — Check whether the inner iterator's current element has children

说明

bool ParentIterator::hasChildren ( void )

Check whether the inner iterator's current element has children.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ParentIterator::getChildren
ParentIterator::next
ParentIterator


Move the iterator forward

ParentIterator::hasChildren
ParentIterator::rewind
ParentIterator
PHP 手册

ParentIterator::next

(PHP 5 >= 5.1.0)

ParentIterator::next — Move the iterator forward

说明

void ParentIterator::next ( void )

Moves the iterator forward.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

ParentIterator::hasChildren
ParentIterator::rewind
ParentIterator


Rewind the iterator

ParentIterator::next
RecursiveIteratorIterator
ParentIterator
PHP 手册

ParentIterator::rewind

(PHP 5 >= 5.1.0)

ParentIterator::rewind — Rewind the iterator

说明

void ParentIterator::rewind ( void )

Rewinds the iterator.

Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

ParentIterator::next
RecursiveIteratorIterator
ParentIterator


The RecursiveIteratorIterator class

简介

...

Class synopsis

RecursiveIteratorIterator
RecursiveIteratorIterator implements OuterIterator , Traversable , Iterator {
/* Methods */
mixed current ( void )
int getDepth ( void )
RecursiveIterator getSubIterator ( void )
mixed key ( void )
void next ( void )
void rewind ( void )
bool valid ( void )
}

Table of Contents

  • RecursiveIteratorIterator::current — Access the current element value
  • RecursiveIteratorIterator::getDepth — Get the current depth of the recursive iteration
  • RecursiveIteratorIterator::getSubIterator — The current active sub iterator
  • RecursiveIteratorIterator::key — Access the current key
  • RecursiveIteratorIterator::next — Move forward to the next element
  • RecursiveIteratorIterator::rewind — Rewind the iterator to the first element of the top level inner iterator
  • RecursiveIteratorIterator::valid — Check whether the current position is valid
ParentIterator::rewind
RecursiveIteratorIterator::current
Iterators


Access the current element value

RecursiveIteratorIterator
RecursiveIteratorIterator::getDepth
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::current

(PHP 5)

RecursiveIteratorIterator::current — Access the current element value

说明

mixed RecursiveIteratorIterator::current ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current elements value.

RecursiveIteratorIterator
RecursiveIteratorIterator::getDepth
RecursiveIteratorIterator


Get the current depth of the recursive iteration

RecursiveIteratorIterator::current
RecursiveIteratorIterator::getSubIterator
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::getDepth

(PHP 5)

RecursiveIteratorIterator::getDepth — Get the current depth of the recursive iteration

说明

int RecursiveIteratorIterator::getDepth ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current depth of the recursive iteration.

RecursiveIteratorIterator::current
RecursiveIteratorIterator::getSubIterator
RecursiveIteratorIterator


The current active sub iterator

RecursiveIteratorIterator::getDepth
RecursiveIteratorIterator::key
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::getSubIterator

(PHP 5)

RecursiveIteratorIterator::getSubIterator — The current active sub iterator

说明

RecursiveIterator RecursiveIteratorIterator::getSubIterator ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current active sub iterator.

RecursiveIteratorIterator::getDepth
RecursiveIteratorIterator::key
RecursiveIteratorIterator


Access the current key

RecursiveIteratorIterator::getSubIterator
RecursiveIteratorIterator::next
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::key

(PHP 5)

RecursiveIteratorIterator::key — Access the current key

说明

mixed RecursiveIteratorIterator::key ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current key.

RecursiveIteratorIterator::getSubIterator
RecursiveIteratorIterator::next
RecursiveIteratorIterator


Move forward to the next element

RecursiveIteratorIterator::key
RecursiveIteratorIterator::rewind
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::next

(PHP 5)

RecursiveIteratorIterator::next — Move forward to the next element

说明

void RecursiveIteratorIterator::next ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

RecursiveIteratorIterator::key
RecursiveIteratorIterator::rewind
RecursiveIteratorIterator


Rewind the iterator to the first element of the top level inner iterator

RecursiveIteratorIterator::next
RecursiveIteratorIterator::valid
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::rewind

(PHP 5)

RecursiveIteratorIterator::rewind — Rewind the iterator to the first element of the top level inner iterator

说明

void RecursiveIteratorIterator::rewind ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

RecursiveIteratorIterator::next
RecursiveIteratorIterator::valid
RecursiveIteratorIterator


Check whether the current position is valid

RecursiveIteratorIterator::rewind
SimpleXMLIterator
RecursiveIteratorIterator
PHP 手册

RecursiveIteratorIterator::valid

(PHP 5)

RecursiveIteratorIterator::valid — Check whether the current position is valid

说明

bool RecursiveIteratorIterator::valid ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

TRUE if the current position is valid, otherwise FALSE

RecursiveIteratorIterator::rewind
SimpleXMLIterator
RecursiveIteratorIterator


The SimpleXMLIterator class

简介

...

Class synopsis

SimpleXMLIterator
SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator , Traversable , Iterator , Countable {
/* Methods */
mixed current ( void )
object getChildren ( void )
bool hasChildren ( void )
mixed key ( void )
void next ( void )
void rewind ( void )
bool valid ( void )
}

Table of Contents

  • SimpleXMLIterator::current — Return current SimpleXML entry
  • SimpleXMLIterator::getChildren — Returns an iterator for the current entry if it is a SimpleXML object
  • SimpleXMLIterator::hasChildren — Returns whether current entry is a SimpleXML object
  • SimpleXMLIterator::key — Return current SimpleXML key
  • SimpleXMLIterator::next — Move to next entry
  • SimpleXMLIterator::rewind — Rewind SimpleXML back to the start
  • SimpleXMLIterator::valid — Check whether SimpleXML contains more entries
RecursiveIteratorIterator::valid
SimpleXMLIterator::current
Iterators


Return current SimpleXML entry

SimpleXMLIterator
SimpleXMLIterator::getChildren
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::current

(PHP 5 >= 5.1.0)

SimpleXMLIterator::current — Return current SimpleXML entry

说明

mixed SimpleXMLIterator::current ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current SimpleXML entry.

SimpleXMLIterator
SimpleXMLIterator::getChildren
SimpleXMLIterator


Returns an iterator for the current entry if it is a SimpleXML object

SimpleXMLIterator::current
SimpleXMLIterator::hasChildren
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::getChildren

(PHP 5 >= 5.1.0)

SimpleXMLIterator::getChildren — Returns an iterator for the current entry if it is a SimpleXML object

说明

object SimpleXMLIterator::getChildren ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

An iterator for the current entry, if it is a SimpleXML object.

SimpleXMLIterator::current
SimpleXMLIterator::hasChildren
SimpleXMLIterator


Returns whether current entry is a SimpleXML object

SimpleXMLIterator::getChildren
SimpleXMLIterator::key
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::hasChildren

(PHP 5 >= 5.1.0)

SimpleXMLIterator::hasChildren — Returns whether current entry is a SimpleXML object

说明

bool SimpleXMLIterator::hasChildren ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

TRUE if the current entry is a SimpleXML object, otherwise FALSE

SimpleXMLIterator::getChildren
SimpleXMLIterator::key
SimpleXMLIterator


Return current SimpleXML key

SimpleXMLIterator::hasChildren
SimpleXMLIterator::next
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::key

(PHP 5 >= 5.1.0)

SimpleXMLIterator::key — Return current SimpleXML key

说明

mixed SimpleXMLIterator::key ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The current SimpleXML key.

SimpleXMLIterator::hasChildren
SimpleXMLIterator::next
SimpleXMLIterator


Move to next entry

SimpleXMLIterator::key
SimpleXMLIterator::rewind
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::next

(PHP 5 >= 5.1.0)

SimpleXMLIterator::next — Move to next entry

说明

void SimpleXMLIterator::next ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

SimpleXMLIterator::key
SimpleXMLIterator::rewind
SimpleXMLIterator


Rewind SimpleXML back to the start

SimpleXMLIterator::next
SimpleXMLIterator::valid
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::rewind

(PHP 5 >= 5.1.0)

SimpleXMLIterator::rewind — Rewind SimpleXML back to the start

说明

void SimpleXMLIterator::rewind ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

SimpleXMLIterator::next
SimpleXMLIterator::valid
SimpleXMLIterator


Check whether SimpleXML contains more entries

SimpleXMLIterator::rewind
Interfaces
SimpleXMLIterator
PHP 手册

SimpleXMLIterator::valid

(PHP 5 >= 5.1.0)

SimpleXMLIterator::valid — Check whether SimpleXML contains more entries

说明

bool SimpleXMLIterator::valid ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

TRUE if contains more SimpleXML entries, otherwise FALSE

SimpleXMLIterator::rewind
Interfaces
SimpleXMLIterator


Interfaces

Table of Contents

  • The Countable interface

SPL provides a set of interfaces.

Interface list

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator
  • SplObserver
  • SplSubject
SimpleXMLIterator::valid
Countable
SPL


The Countable interface

简介

Classes implementing Countable can be used with the count() function.

Class synopsis

Countable
Countable {
/* Methods */
abstract public int count ( void )
}

Table of Contents

  • Countable::count — Count elements of a object
Interfaces
Countable::count
Interfaces


Count elements of a object

Countable
Exceptions
Countable
PHP 手册

Countable::count

(PHP 5 >= 5.1.0)

Countable::count — Count elements of a object

说明

abstract public int Countable::count ( void )

This method executed when using the count() function on a object implementing Countable.

参数

This function has no parameters.

返回值

The custom count as integer.

Note: The return value is casted to integer.

范例

Example #1 Countable::count() example

<?php
class myCounter implements Countable {
    public function count() {
        static $count = 0;
        return ++$count;
    }
}

$counter = new myCounter;

for($i=0; $i<10; ++$i) {
    echo "I have been count()ed " . count($counter) . " times\n";
}
?>

上例的输出类似于：

I have been count()ed 1 times
I have been count()ed 2 times
I have been count()ed 3 times
I have been count()ed 4 times
I have been count()ed 5 times
I have been count()ed 6 times
I have been count()ed 7 times
I have been count()ed 8 times
I have been count()ed 9 times
I have been count()ed 10 times

Countable
Exceptions
Countable


Exceptions

Table of Contents

  • The BadFunctionCallException class
  • The BadMethodCallException class
  • The DomainException class
  • The InvalidArgumentException class
  • The LengthException class
  • The LogicException class
  • The OutOfBoundsException class
  • The OutOfRangeException class
  • The OverflowException class
  • The RangeException class
  • The RuntimeException class
  • The UnderflowException class
  • The UnexpectedValueException class

SPL provides a set of standard Exceptions.

See also the Predefined Exceptions

Countable::count
BadFunctionCallException
SPL


The BadFunctionCallException class

简介

Exception thrown if a callback refers to an undefined function or if some arguments are missing

Class synopsis

BadFunctionCallException
BadFunctionCallException extends LogicException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
Exceptions
BadMethodCallException
Exceptions


The BadMethodCallException class

简介

Exception thrown if a callback refers to an undefined method or if some arguments are missing

Class synopsis

BadMethodCallException
BadMethodCallException extends BadFunctionCallException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
BadFunctionCallException
DomainException
Exceptions


The DomainException class

简介

A domain exception

Class synopsis

DomainException
DomainException extends LogicException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
BadMethodCallException
InvalidArgumentException
Exceptions


The InvalidArgumentException class

简介

Exception thrown if a argument does not match with the expected value

Class synopsis

InvalidArgumentException
InvalidArgumentException extends LogicException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
DomainException
LengthException
Exceptions


The LengthException class

简介

Exception thrown if a length is invalid

Class synopsis

LengthException
LengthException extends LogicException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
InvalidArgumentException
LogicException
Exceptions


The LogicException class

简介

Exception thrown if a logic expression is invalid

Class synopsis

LogicException
LogicException extends Exception {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
LengthException
OutOfBoundsException
Exceptions


The OutOfBoundsException class

简介

Exception thrown if a value is not a valid key

Class synopsis

OutOfBoundsException
OutOfBoundsException extends RuntimeException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
LogicException
OutOfRangeException
Exceptions


The OutOfRangeException class

简介

Exception thrown when a value does not match with a range

Class synopsis

OutOfRangeException
OutOfRangeException extends LogicException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
OutOfBoundsException
OverflowException
Exceptions


The OverflowException class

简介

Exception thrown when you add an element into a full container

Class synopsis

OverflowException
OverflowException extends RuntimeException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
OutOfRangeException
RangeException
Exceptions


The RangeException class

简介

Exception thrown when an invalid range is given.

Class synopsis

RangeException
RangeException extends RuntimeException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
OverflowException
RuntimeException
Exceptions


The RuntimeException class

简介

Exception thrown if an error which can only be found on runtime occurs

Class synopsis

RuntimeException
RuntimeException extends Exception {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
RangeException
UnderflowException
Exceptions


The UnderflowException class

简介

Exception thrown when you try to remove an element of an empty container

Class synopsis

UnderflowException
UnderflowException extends RuntimeException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
RuntimeException
UnexpectedValueException
Exceptions


The UnexpectedValueException class

简介

Exception thrown if a value does not match with a set of values

Class synopsis

UnexpectedValueException
UnexpectedValueException extends RuntimeException {
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}
UnderflowException
SPL 函数
Exceptions


SPL 函数

Table of Contents

  • class_implements — 返回指定的类实现的所有接口。
  • class_parents — 返回指定类的父类。
  • iterator_apply — 为迭代器中每个元素调用一个用户自定义函数
  • iterator_count — 计算迭代器中元素的个数
  • iterator_to_array — 将迭代器中的元素拷贝到数组
  • spl_autoload_call — 尝试调用所有已注册的__autoload()函数来装载请求类
  • spl_autoload_extensions — 注册并返回spl_autoload函数使用的默认文件扩展名。
  • spl_autoload_functions — 返回所有已注册的__autoload()函数。
  • spl_autoload_register — 注册__autoload()函数
  • spl_autoload_unregister — 注销已注册的__autoload()函数
  • spl_autoload — __autoload()函数的默认实现
  • spl_classes — 返回所有可用的SPL类
  • spl_object_hash — 返回指定对象的hash id
UnexpectedValueException
class_implements
SPL


返回指定的类实现的所有接口。

SPL 函数
class_parents
SPL 函数
PHP 手册

class_implements

(PHP 5 >= 5.1.0)

class_implements — 返回指定的类实现的所有接口。

说明

array class_implements ( mixed $class [, bool $autoload ] )

本函数返回一个数组，该数组中包含了指定类class 及其父类所实现的所有接口的名称。

参数

class

对象（类实例）或字符串（类名称）。

autoload

是否允许使用__autoload 魔术函数来自动装载该类。默认值为TRUE。

返回值

调用成功则返回一个数组，否则返回FALSE。

更新日志

版本 | 说明
5.1.0 | 增加了允许参数class 为字符串的选项。增加了autoload 参数。

范例

Example #1 class_implements() example

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// since PHP 5.1.0 you may also specify the parameter as a string
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_implements('not_loaded', true));

?>

上例的输出类似于：

Array
(
    [foo] => foo
)

Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

参见

  • class_parents() - 返回指定类的父类。
  • get_declared_interfaces() - 返回一个数组包含所有已声明的接口

SPL 函数
class_parents
SPL 函数


返回指定类的父类。

class_implements
iterator_apply
SPL 函数
PHP 手册

class_parents

(PHP 5 >= 5.1.0)

class_parents — 返回指定类的父类。

说明

array class_parents ( mixed $class [, bool $autoload ] )

本函数返回一个包含了指定类class 父类名称的数组。

参数

class

对象（类实例）或字符串（类名称）。

autoload

是否允许使用__autoload 魔术函数来自动装载该类。默认值为TRUE。

返回值

调用成功则返回一个数组，否则返回FALSE。

更新日志

版本 | 说明
5.1.0 | 增加了允许参数class 为字符串的选项。增加了autoload 参数。

范例

Example #1 class_parents() example

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// since PHP 5.1.0 you may also specify the parameter as a string
print_r(class_parents('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_parents('not_loaded', true));
?>

上例的输出类似于：

Array
(
    [foo] => foo
)

Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

参见

  • class_implements() - 返回指定的类实现的所有接口。

class_implements
iterator_apply
SPL 函数


为迭代器中每个元素调用一个用户自定义函数

class_parents
iterator_count
SPL 函数
PHP 手册

iterator_apply

(PHP 5 >= 5.1.0)

iterator_apply — 为迭代器中每个元素调用一个用户自定义函数

说明

ReturnType iterator_apply ( Traversable $iterator , callback $function [, array $args ] )

循环迭代每个元素时调用某一回调函数。

参数

iterator

需要循环迭代的类对象。

function

迭代到每个元素时的调用的回调函数。

args

传递到回调函数的参数。

返回值

返回已迭代的元素个数。

参见

  • array_walk() - 对数组中的每个成员应用用户函数

class_parents
iterator_count
SPL 函数


计算迭代器中元素的个数

iterator_apply
iterator_to_array
SPL 函数
PHP 手册

iterator_count

(PHP 5 >= 5.1.0)

iterator_count — 计算迭代器中元素的个数

说明

int iterator_count ( Traversable $iterator )
Warning

本函数暂无文档，仅有参数列表。

计算迭代器中的元素个数。

参数

iterator

要计数的迭代器。

返回值

迭代器iterator 中的元素个数。

iterator_apply
iterator_to_array
SPL 函数


将迭代器中的元素拷贝到数组

iterator_count
spl_autoload_call
SPL 函数
PHP 手册

iterator_to_array

(PHP 5 >= 5.1.0)

iterator_to_array — 将迭代器中的元素拷贝到数组

说明

array iterator_to_array ( Traversable $iterator [, bool $use_keys ] )
Warning

本函数暂无文档，仅有参数列表。

将迭代器中的元素拷贝到数组。

参数

iterator

要未拷贝的迭代器。

use_keys

返回值

拷贝后的数组。

iterator_count
spl_autoload_call
SPL 函数


尝试调用所有已注册的__autoload()函数来装载请求类

iterator_to_array
spl_autoload_extensions
SPL 函数
PHP 手册

spl_autoload_call

(PHP 5 >= 5.1.2)

spl_autoload_call — 尝试调用所有已注册的__autoload()函数来装载请求类

说明

void spl_autoload_call ( string $class_name )

可以直接在程序中手动调用此函数来使用所有已注册的__autoload函数装载类或接口。

参数

class_name

搜索的类名。

返回值

无返回值。

iterator_to_array
spl_autoload_extensions
SPL 函数


注册并返回spl_autoload函数使用的默认文件扩展名。

spl_autoload_call
spl_autoload_functions
SPL 函数
PHP 手册

spl_autoload_extensions

(PHP 5 >= 5.1.2)

spl_autoload_extensions — 注册并返回spl_autoload函数使用的默认文件扩展名。

说明

string spl_autoload_extensions ([ string $file_extensions ] )

本函数用来修改和检查 __autoload() 函数内置的默认实现函数 spl_autoload() 所使用的扩展名。

参数

file_extensions

当不使用任何参数调用此函数时，它返回当前的文件扩展名的列表，不同的扩展名用逗号分隔。要修改文件扩展名列表，用一个逗号分隔的新的扩展名列表字符串来调用本函数即可。中文注：默认的spl_autoload函数使用的扩展名是".inc,.php"。

返回值

逗号分隔的spl_autoload()函数的默认文件扩展名。

spl_autoload_call
spl_autoload_functions
SPL 函数


返回所有已注册的__autoload()函数。

spl_autoload_extensions
spl_autoload_register
SPL 函数
PHP 手册

spl_autoload_functions

(PHP 5 >= 5.1.2)

spl_autoload_functions — 返回所有已注册的__autoload()函数。

说明

array spl_autoload_functions ( void )

获取所有已注册的 __autoload() 函数。

参数

This function has no parameters.

返回值

包含所有已注册的__autoload函数的数组（array）。如果自动装载函数栈未激活，则返回FALSE。如果没有已注册的函数，则返回一个空数组。

spl_autoload_extensions
spl_autoload_register
SPL 函数


注册__autoload()函数

spl_autoload_functions
spl_autoload_unregister
SPL 函数
PHP 手册

spl_autoload_register

(PHP 5 >= 5.1.2)

spl_autoload_register — 注册__autoload()函数

说明

bool spl_autoload_register ([ callback $autoload_function ] )

将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活，则激活它们。

如果在你的程序中已经实现了__autoload函数，它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或spl_autoload_call()。

参数

autoload_function

欲注册的自动装载函数。如果没有提供任何参数，则自动注册autoload的默认实现函数spl_autoload()。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 spl_autoload_register() example

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print '[['. $name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'::Foo::test'); // As of PHP 5.3.0

new InexistentClass;

?>

上例的输出类似于：

[[Foobar::InexistentClass]]
Fatal error: Class 'Foobar::InexistentClass' not found in ...

spl_autoload_functions
spl_autoload_unregister
SPL 函数


注销已注册的__autoload()函数

spl_autoload_register
spl_autoload
SPL 函数
PHP 手册

spl_autoload_unregister

(PHP 5 >= 5.1.2)

spl_autoload_unregister — 注销已注册的__autoload()函数

说明

bool spl_autoload_unregister ( mixed $autoload_function )

从spl提供的自动装载函数栈中注销某一函数。如果该函数栈处于激活状态，并且在给定函数注销后该栈变为空，则该函数栈将会变为无效。

如果该函数注销后使得自动装载函数栈无效，即使存在有__autoload函数它也不会自动激活。

参数

autoload_function

要注销的自动装载函数。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

spl_autoload_register
spl_autoload
SPL 函数


__autoload()函数的默认实现

spl_autoload_unregister
spl_classes
SPL 函数
PHP 手册

spl_autoload

(PHP 5 >= 5.1.2)

spl_autoload — __autoload()函数的默认实现

说明

void spl_autoload ( string $class_name [, string $file_extensions ] )

本函数提供了__autoload()的一个默认实现。如果不使用任何参数调用 autoload_register() 函数，则以后在进行 __autoload() 调用时会自动使用此函数。

参数

class_name

file_extensions

在默认情况下，本函数先将类名转换成小写，再在小写的类名后加上 .inc 或 .php 的扩展名作为文件名，然后在所有的包含路径(include paths)中检查是否存在该文件。

返回值

无返回值。

spl_autoload_unregister
spl_classes
SPL 函数


返回所有可用的SPL类

spl_autoload
spl_object_hash
SPL 函数
PHP 手册

spl_classes

(PHP 5)

spl_classes — 返回所有可用的SPL类

说明

array spl_classes ( void )

本函数返回当前所有可用的 SPL 类的数组。

范例

Example #1 spl_classes() example

<?php

print_r(spl_classes());

?>

上例的输出类似于：

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [RecursiveCachingIterator] => RecursiveCachingIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)

spl_autoload
spl_object_hash
SPL 函数


返回指定对象的hash id

spl_classes
ArrayObject
SPL 函数
PHP 手册

spl_object_hash

(PHP 5 >= 5.2.0)

spl_object_hash — 返回指定对象的hash id

说明

string spl_object_hash ( object $obj )

本函数为指定对象返回一个唯一标识符。这个标识符可用于作为保存对象或区分不同对象的hash key。

参数

object

Any object.

返回值

字符串，对于每个对象它都是唯一的，并且对同一个对象它总是相同。

范例

Example #1 A spl_object_hash() example

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

spl_classes
ArrayObject
SPL 函数


The ArrayObject class

简介

...

Class synopsis

ArrayObject
ArrayObject implements IteratorAggregate , Traversable , ArrayAccess , Countable {
/* Methods */
__construct ( mixed $input )
void append ( mixed $newval )
int count ( void )
ArrayIterator getIterator ( void )
bool offsetExists ( mixed $index )
mixed offsetGet ( mixed $index )
void offsetSet ( mixed $index , mixed $newval )
void offsetUnset ( mixed $index )
}

Table of Contents

  • ArrayObject::append — Appends the value
  • ArrayObject::__construct — Construct a new array object
  • ArrayObject::count — Get the number of elements in the Iterator
  • ArrayObject::getIterator — Create a new iterator from an ArrayObject instance
  • ArrayObject::offsetExists — Returns whether the requested $index exists
  • ArrayObject::offsetGet — Returns the value at the specified $index
  • ArrayObject::offsetSet — Sets the value at the specified $index to $newval
  • ArrayObject::offsetUnset — Unsets the value at the specified $index
spl_object_hash
ArrayObject::append
SPL


Appends the value

ArrayObject
ArrayObject::__construct
ArrayObject
PHP 手册

ArrayObject::append

(PHP 5 >= 5.1.0)

ArrayObject::append — Appends the value

说明

void ArrayObject::append ( mixed $newval )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

无返回值。

ArrayObject
ArrayObject::__construct
ArrayObject


Construct a new array object

ArrayObject::append
ArrayObject::count
ArrayObject
PHP 手册

ArrayObject::__construct

(PHP 5 >= 5.1.0)

ArrayObject::__construct — Construct a new array object

说明

ArrayObject::__construct ( mixed $input )

This constructs a new array object.

参数

input

The input parameter accepts an array or another ArrayObject.

返回值

无返回值。

范例

Example #1 ArrayObject::__construct() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

上例将输出：

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

ArrayObject::append
ArrayObject::count
ArrayObject


Get the number of elements in the Iterator

ArrayObject::__construct
ArrayObject::getIterator
ArrayObject
PHP 手册

ArrayObject::count

(PHP 5 >= 5.1.0)

ArrayObject::count — Get the number of elements in the Iterator

说明

int ArrayObject::count ( void )
Warning

本函数暂无文档，仅有参数列表。

参数

This function has no parameters.

返回值

The number of elements in the Iterator.

ArrayObject::__construct
ArrayObject::getIterator
ArrayObject


Create a new iterator from an ArrayObject instance

ArrayObject::count
ArrayObject::offsetExists
ArrayObject
PHP 手册

ArrayObject::getIterator

(PHP 5 >= 5.1.0)

ArrayObject::getIterator — Create a new iterator from an ArrayObject instance

说明

ArrayIterator ArrayObject::getIterator ( void )

Create a new iterator from an ArrayObject instance.

参数

This function has no parameters.

返回值

An iterator from an ArrayObject.

范例

Example #1 ArrayObject::getIterator() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

上例将输出：

1 => one
2 => two
3 => three

ArrayObject::count
ArrayObject::offsetExists
ArrayObject


Returns whether the requested $index exists

ArrayObject::getIterator
ArrayObject::offsetGet
ArrayObject
PHP 手册

ArrayObject::offsetExists

(PHP 5 >= 5.1.0)

ArrayObject::offsetExists — Returns whether the requested $index exists

说明

bool ArrayObject::offsetExists ( mixed $index )
Warning

本函数暂无文档，仅有参数列表。

参数

index

The index being checked.

返回值

TRUE if the requested $index exists, otherwise FALSE

ArrayObject::getIterator
ArrayObject::offsetGet
ArrayObject


Returns the value at the specified $index

ArrayObject::offsetExists
ArrayObject::offsetSet
ArrayObject
PHP 手册

ArrayObject::offsetGet

(PHP 5 >= 5.1.0)

ArrayObject::offsetGet — Returns the value at the specified $index

说明

mixed ArrayObject::offsetGet ( mixed $index )
Warning

本函数暂无文档，仅有参数列表。

参数

index

The index with the value.

返回值

The value at the specified $index.

ArrayObject::offsetExists
ArrayObject::offsetSet
ArrayObject


Sets the value at the specified $index to $newval

ArrayObject::offsetGet
ArrayObject::offsetUnset
ArrayObject
PHP 手册

ArrayObject::offsetSet

(PHP 5 >= 5.1.0)

ArrayObject::offsetSet — Sets the value at the specified $index to $newval

说明

void ArrayObject::offsetSet ( mixed $index , mixed $newval )
Warning

本函数暂无文档，仅有参数列表。

Sets the value at the specified index to newval.

参数

index

The index being set.

newval

The new value for the index .

返回值

无返回值。

ArrayObject::offsetGet
ArrayObject::offsetUnset
ArrayObject


Unsets the value at the specified $index

ArrayObject::offsetSet
SplFileInfo
ArrayObject
PHP 手册

ArrayObject::offsetUnset

(PHP 5 >= 5.1.0)

ArrayObject::offsetUnset — Unsets the value at the specified $index

说明

void ArrayObject::offsetUnset ( mixed $index )
Warning

本函数暂无文档，仅有参数列表。

Unsets the value at the specified index.

参数

index

The index being unset.

返回值

无返回值。

ArrayObject::offsetSet
SplFileInfo
ArrayObject


The SplFileInfo class

简介

The SplFileInfo class offers a high-level object oriented interface to information for an individual file.

Class synopsis

SplFileInfo
SplFileInfo {
/* Methods */
__construct ( string $file_name )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public SplFileInfo getFileInfo ([ string $class_name ] )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public string getLinkTarget ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public SplFileInfo getPathInfo ([ string $class_name ] )
public string getPathname ( void )
public int getPerms ( void )
public string getRealPath ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
public SplFileObject openFile ([ string $open_mode [, bool $use_include_path [, resource $context ]]] )
public void setFileClass ([ string $class_name ] )
public void setInfoClass ([ string $class_name ] )
public void __toString ( void )
}

Table of Contents

  • SplFileInfo::__construct — Construct a new SplFileInfo object
  • SplFileInfo::getATime — Gets last access time of the file
  • SplFileInfo::getBasename — Gets the base name of the file
  • SplFileInfo::getCTime — Gets the inode change time
  • SplFileInfo::getFileInfo — Gets an SplFileInfo object for the file
  • SplFileInfo::getFilename — Gets the filename
  • SplFileInfo::getGroup — Gets the file group
  • SplFileInfo::getInode — Gets the inode for the file
  • SplFileInfo::getLinkTarget — Gets the target of a link
  • SplFileInfo::getMTime — Gets the last modified time
  • SplFileInfo::getOwner — Gets the owner of the file
  • SplFileInfo::getPath — Gets the path without filename
  • SplFileInfo::getPathInfo — Gets an SplFileInfo object for the path
  • SplFileInfo::getPathname — Gets the path to the file
  • SplFileInfo::getPerms — Gets file permissions
  • SplFileInfo::getRealPath — Gets absolute path to file
  • SplFileInfo::getSize — Gets file size
  • SplFileInfo::getType — Gets file type
  • SplFileInfo::isDir — Tells if the file is a directory
  • SplFileInfo::isExecutable — Tells if the file is executable
  • SplFileInfo::isFile — Tells if the object references a regular file
  • SplFileInfo::isLink — Tells if the file is a link
  • SplFileInfo::isReadable — Tells if file is readable
  • SplFileInfo::isWritable — Tells if the entry is writable
  • SplFileInfo::openFile — Gets an SplFileObject object for the file
  • SplFileInfo::setFileClass — Sets the class name used with SplFileInfo::openFile()
  • SplFileInfo::setInfoClass — Sets the class used with getFileInfo and getPathInfo
  • SplFileInfo::__toString — Returns the path to the file as a string
ArrayObject::offsetUnset
SplFileInfo::__construct
SPL


Construct a new SplFileInfo object

SplFileInfo
SplFileInfo::getATime
SplFileInfo
PHP 手册

SplFileInfo::__construct

(PHP 5 >= 5.1.2)

SplFileInfo::__construct — Construct a new SplFileInfo object

说明

SplFileInfo::__construct ( string $file_name )

Creates a new SplFileInfo object for the file_name specified. The file does not need to exist, or be readable.

参数

file_name

Path to the file.

范例

Example #1 SplFileInfo::__construct() example

<?php
$info = new SplFileInfo('example.php');
if ($info->isFile()) {
    echo $info->getRealPath();
}
?>

SplFileInfo
SplFileInfo::getATime
SplFileInfo


Gets last access time of the file

SplFileInfo::__construct
SplFileInfo::getBasename
SplFileInfo
PHP 手册

SplFileInfo::getATime

(PHP 5 >= 5.1.2)

SplFileInfo::getATime — Gets last access time of the file

说明

public int SplFileInfo::getATime ( void )

Gets the last access time for the file.

参数

This function has no parameters.

返回值

Returns the time the file was last accessed.

错误／异常

Throws RunTimeException on error.

参见

  • fileatime() - 取得文件的上次访问时间

SplFileInfo::__construct
SplFileInfo::getBasename
SplFileInfo


Gets the base name of the file

SplFileInfo::getATime
SplFileInfo::getCTime
SplFileInfo
PHP 手册

SplFileInfo::getBasename

(PHP 5 >= 5.2.2)

SplFileInfo::getBasename — Gets the base name of the file

说明

public string SplFileInfo::getBasename ([ string $suffix ] )

This method returns the base name of the file, directory, or link without path info.

参数

suffix

Optional suffix to omit from the base name returned.

返回值

Returns the base name without path information.

范例

Example #1 SplFileInfo::getBasename() example

<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getbaseName());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getbaseName());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getbaseName('.txt'));
?>

上例的输出类似于：

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

参见

  • SplFileInfo::getFilename - Gets the filename

SplFileInfo::getATime
SplFileInfo::getCTime
SplFileInfo


Gets the inode change time

SplFileInfo::getBasename
SplFileInfo::getFileInfo
SplFileInfo
PHP 手册

SplFileInfo::getCTime

(PHP 5 >= 5.1.2)

SplFileInfo::getCTime — Gets the inode change time

说明

public int SplFileInfo::getCTime ( void )

Returns the inode change time for the file. The time returned is a Unix timestamp.

参数

This function has no parameters.

返回值

The last change time, in a Unix timestamp.

错误／异常

Throws RunTimeException on error.

范例

Example #1 SplFileInfo::getCTime() example

<?php
$info = new SplFileInfo(__FILE__);
echo 'Last changed at ' . date('g:i a', $info->getCTime());
?>

上例的输出类似于：

Last changed at 1:49 pm

参见

  • filectime() - 取得文件的 inode 修改时间

SplFileInfo::getBasename
SplFileInfo::getFileInfo
SplFileInfo


Gets an SplFileInfo object for the file

SplFileInfo::getCTime
SplFileInfo::getFilename
SplFileInfo
PHP 手册

SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2)

SplFileInfo::getFileInfo — Gets an SplFileInfo object for the file

说明

public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )

This method gets an SplFileInfo object for the referenced file.

参数

class_name

Name of an SplFileInfo derived class to use.

返回值

An SplFileInfo object created for the file.

参见

  • SplFileInfo::setInfoClass - Sets the class used with getFileInfo and getPathInfo

SplFileInfo::getCTime
SplFileInfo::getFilename
SplFileInfo


Gets the filename

SplFileInfo::getFileInfo
SplFileInfo::getGroup
SplFileInfo
PHP 手册

SplFileInfo::getFilename

(PHP 5 >= 5.1.2)

SplFileInfo::getFilename — Gets the filename

说明

public string SplFileInfo::getFilename ( void )

Gets the filename without any path information.

参数

This function has no parameters.

返回值

The filename.

范例

Example #1 SplFileInfo::getFilename() example

<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/anoncvs.php');
var_dump($info->getFilename());
?>

上例的输出类似于：

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(11) "anoncvs.php"

参见

  • SplFileInfo::getBasename - Gets the base name of the file

SplFileInfo::getFileInfo
SplFileInfo::getGroup
SplFileInfo


Gets the file group

SplFileInfo::getFilename
SplFileInfo::getInode
SplFileInfo
PHP 手册

SplFileInfo::getGroup

(PHP 5 >= 5.1.2)

SplFileInfo::getGroup — Gets the file group

说明

public int SplFileInfo::getGroup ( void )

Gets the file group. The group ID is returned in numerical format.

参数

This function has no parameters.

返回值

The group id in numerical format.

错误／异常

Throws RuntimeException on error.

范例

Example #1 SplFileInfo::getFilename() example

<?php
$info = new SplFileInfo(__FILE__);
print_r(posix_getgrgid($info->getGroup()));

上例的输出类似于：

参见

  • posix_getgrgid() - Return info about a group by group id

SplFileInfo::getFilename
SplFileInfo::getInode
SplFileInfo


Gets the inode for the file

SplFileInfo::getGroup
SplFileInfo::getLinkTarget
SplFileInfo
PHP 手册

SplFileInfo::getInode

(PHP 5 >= 5.1.2)

SplFileInfo::getInode — Gets the inode for the file

说明

public int SplFileInfo::getInode ( void )

Gets the inode number for the filesystem object.

参数

This function has no parameters.

返回值

Returns the inode number for the filesystem object.

错误／异常

Throws RuntimeException on error.

参见

  • fileinode() - 取得文件的 inode

SplFileInfo::getGroup
SplFileInfo::getLinkTarget
SplFileInfo


Gets the target of a link

SplFileInfo::getInode
SplFileInfo::getMTime
SplFileInfo
PHP 手册

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2)

SplFileInfo::getLinkTarget — Gets the target of a link

说明

public string SplFileInfo::getLinkTarget ( void )

Gets the target of a filesystem link.

Note: The target may not be the real path on the filesystem. Use SplFileInfo::getRealPath to determine the true path on the filesystem.

参数

This function has no parameters.

返回值

Returns the target of the filesystem link.

错误／异常

Throws RuntimeException on error.

范例

Example #1 SplFileInfo::getLinkTarget() example

<?php
$info = new SplFileInfo('/Users/bbieber/workspace');
if ($info->isLink()) {
    var_dump($info->getLinkTarget());
    var_dump($info->getRealPath());
}
?>

上例的输出类似于：

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

参见

  • SplFileInfo::isLink - Tells if the file is a link
  • SplFileInfo::getRealPath - Gets absolute path to file

SplFileInfo::getInode
SplFileInfo::getMTime
SplFileInfo


Gets the last modified time

SplFileInfo::getLinkTarget
SplFileInfo::getOwner
SplFileInfo
PHP 手册

SplFileInfo::getMTime

(PHP 5 >= 5.1.2)

SplFileInfo::getMTime — Gets the last modified time

说明

public int SplFileInfo::getMTime ( void )

Returns the time when the contents of the file were changed. The time returned is a Unix timestamp.

参数

This function has no parameters.

返回值

Returns the last modified time for the file, in a Unix timestamp.

参见

  • filemtime() - 取得文件修改时间

SplFileInfo::getLinkTarget
SplFileInfo::getOwner
SplFileInfo


Gets the owner of the file

SplFileInfo::getMTime
SplFileInfo::getPath
SplFileInfo
PHP 手册

SplFileInfo::getOwner

(PHP 5 >= 5.1.2)

SplFileInfo::getOwner — Gets the owner of the file

说明

public int SplFileInfo::getOwner ( void )

Gets the file owner. The owner ID is returned in numerical format.

参数

This function has no parameters.

返回值

The owner id in numerical format.

错误／异常

Throws RuntimeException on error.

范例

Example #1 SplFileInfo::getOwner() example

<?php
$info = new SplFileInfo('file.txt');
print_r(posix_getpwuid($info->getOwner()));
?>

参见

  • posix_getpwuid() - Return info about a user by user id
  • SplFileInfo::getGroup - Gets the file group

SplFileInfo::getMTime
SplFileInfo::getPath
SplFileInfo


Gets the path without filename

SplFileInfo::getOwner
SplFileInfo::getPathInfo
SplFileInfo
PHP 手册

SplFileInfo::getPath

(PHP 5 >= 5.1.2)

SplFileInfo::getPath — Gets the path without filename

说明

public string SplFileInfo::getPath ( void )

Returns the path to the file, omitting the filename and any trailing slash.

参数

This function has no parameters.

返回值

Returns the path to the file.

范例

Example #1 SplFileInfo::getPath() example

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());

$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

上例的输出类似于：

string(8) "/usr/bin"
string(4) "/usr"

参见

  • SplFileInfo::getRealPath - Gets absolute path to file
  • SplFileInfo::getFilename - Gets the filename
  • SplFileInfo::getPathInfo - Gets an SplFileInfo object for the path

SplFileInfo::getOwner
SplFileInfo::getPathInfo
SplFileInfo


Gets an SplFileInfo object for the path

SplFileInfo::getPath
SplFileInfo::getPathname
SplFileInfo
PHP 手册

SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2)

SplFileInfo::getPathInfo — Gets an SplFileInfo object for the path

说明

public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )

Gets an SplFileInfo object for the parent of the current file.

参数

class_name

Name of an SplFileInfo derived class to use.

返回值

Returns an SplFileInfo object for the parent path of the file.

范例

Example #1 SplFileInfo::getPathInfo() example

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

上例的输出类似于：

string(8) "/usr/bin"

参见

  • SplFileInfo::setInfoClass - Sets the class used with getFileInfo and getPathInfo

SplFileInfo::getPath
SplFileInfo::getPathname
SplFileInfo


Gets the path to the file

SplFileInfo::getPathInfo
SplFileInfo::getPerms
SplFileInfo
PHP 手册

SplFileInfo::getPathname

(PHP 5 >= 5.1.2)

SplFileInfo::getPathname — Gets the path to the file

说明

public string SplFileInfo::getPathname ( void )

Returns the path to the file.

参数

This function has no parameters.

返回值

The path to the file.

范例

Example #1 SplFileInfo::getPathname() example

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

上例的输出类似于：

string(12) "/usr/bin/php"

参见

  • SplFileInfo::getRealPath - Gets absolute path to file

SplFileInfo::getPathInfo
SplFileInfo::getPerms
SplFileInfo


Gets file permissions

SplFileInfo::getPathname
SplFileInfo::getRealPath
SplFileInfo
PHP 手册

SplFileInfo::getPerms

(PHP 5 >= 5.1.2)

SplFileInfo::getPerms — Gets file permissions

说明

public int SplFileInfo::getPerms ( void )

Gets the file permissions for the file.

参数

This function has no parameters.

返回值

Returns the file permissions.

范例

Example #1 SplFileInfo::getPerms() example

<?php
$info = new SplFileInfo('/tmp');
echo substr(sprintf('%o', $info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo substr(sprintf('%o', $info->getPerms()), -4);
?>

上例的输出类似于：

1777
0644

SplFileInfo::getPathname
SplFileInfo::getRealPath
SplFileInfo


Gets absolute path to file

SplFileInfo::getPerms
SplFileInfo::getSize
SplFileInfo
PHP 手册

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2)

SplFileInfo::getRealPath — Gets absolute path to file

说明

public string SplFileInfo::getRealPath ( void )

This method expands all symbolic links, resolves relative references and returns the real path to the file.

参数

This function has no parameters.

返回值

Returns the path to the file.

范例

Example #1 SplFileInfo::getRealPath() example

<?php
$info = new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());
?>

上例的输出类似于：

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"

参见

  • SplFileInfo::isLink - Tells if the file is a link

SplFileInfo::getPerms
SplFileInfo::getSize
SplFileInfo


Gets file size

SplFileInfo::getRealPath
SplFileInfo::getType
SplFileInfo
PHP 手册

SplFileInfo::getSize

(PHP 5 >= 5.1.2)

SplFileInfo::getSize — Gets file size

说明

public int SplFileInfo::getSize ( void )

Returns the filesize in bytes for the file referenced.

参数

This function has no parameters.

返回值

The filesize in bytes.

错误／异常

A RuntimeException will be thrown if the file does not exist or an error occurs.

参见

  • filesize() - 取得文件大小

SplFileInfo::getRealPath
SplFileInfo::getType
SplFileInfo


Gets file type

SplFileInfo::getSize
SplFileInfo::isDir
SplFileInfo
PHP 手册

SplFileInfo::getType

(PHP 5 >= 5.1.2)

SplFileInfo::getType — Gets file type

说明

public string SplFileInfo::getType ( void )

Returns the type of the file referenced.

参数

This function has no parameters.

返回值

A string representing the type of the entry. May be one of file, link, or dir

错误／异常

Throws a RuntimeException on error.

范例

Example #1 SplFileInfo::getType() example

<?php

$info = new SplFileInfo(__FILE__);
echo $info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo $info->getType();

?>

上例的输出类似于：

file
dir

SplFileInfo::getSize
SplFileInfo::isDir
SplFileInfo


Tells if the file is a directory

SplFileInfo::getType
SplFileInfo::isExecutable
SplFileInfo
PHP 手册

SplFileInfo::isDir

(PHP 5 >= 5.1.2)

SplFileInfo::isDir — Tells if the file is a directory

说明

public bool SplFileInfo::isDir ( void )

This method can be used to determine if the file is a directory.

参数

This function has no parameters.

返回值

Returns TRUE if a directory, FALSE otherwise.

范例

Example #1 SplFileInfo::isDir() example

<?php
$d = new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

上例的输出类似于：

bool(true)
bool(false)

SplFileInfo::getType
SplFileInfo::isExecutable
SplFileInfo


Tells if the file is executable

SplFileInfo::isDir
SplFileInfo::isFile
SplFileInfo
PHP 手册

SplFileInfo::isExecutable

(PHP 5 >= 5.1.2)

SplFileInfo::isExecutable — Tells if the file is executable

说明

public bool SplFileInfo::isExecutable ( void )

The method description goes here.

参数

This function has no parameters.

返回值

Returns TRUE if executable, FALSE otherwise.

范例

Example #1 SplFileInfo::isExecutable() example

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable());

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

上例的输出类似于：

bool(true)
bool(true)
bool(false)

SplFileInfo::isDir
SplFileInfo::isFile
SplFileInfo


Tells if the object references a regular file

SplFileInfo::isExecutable
SplFileInfo::isLink
SplFileInfo
PHP 手册

SplFileInfo::isFile

(PHP 5 >= 5.1.2)

SplFileInfo::isFile — Tells if the object references a regular file

说明

public bool SplFileInfo::isFile ( void )

Checks if the file referenced by this SplFileInfo object exists and is a regular file.

参数

This function has no parameters.

返回值

Returns TRUE if the file exists and is a regular file (not a link), FALSE otherwise.

范例

Example #1 SplFileInfo::isFile() example

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

上例的输出类似于：

bool(true)
bool(false)

SplFileInfo::isExecutable
SplFileInfo::isLink
SplFileInfo


Tells if the file is a link

SplFileInfo::isFile
SplFileInfo::isReadable
SplFileInfo
PHP 手册

SplFileInfo::isLink

(PHP 5 >= 5.1.2)

SplFileInfo::isLink — Tells if the file is a link

说明

public bool SplFileInfo::isLink ( void )

Use this method to check if the file referenced by the SplFileInfo object is a link.

参数

This function has no parameters.

返回值

Returns TRUE if the file is a link, FALSE otherwise.

范例

Example #1 SplFileInfo::isLink() example

<?php
$info = new SplInfo('/path/to/symlink');
if ($info->isLink()) {
    echo 'The real path is '.$info->getRealPath();
}
?>

参见

  • SplFileInfo::getRealPath - Gets absolute path to file

SplFileInfo::isFile
SplFileInfo::isReadable
SplFileInfo


Tells if file is readable

SplFileInfo::isLink
SplFileInfo::isWritable
SplFileInfo
PHP 手册

SplFileInfo::isReadable

(PHP 5 >= 5.1.2)

SplFileInfo::isReadable — Tells if file is readable

说明

public bool SplFileInfo::isReadable ( void )

Check if the file is readable.

参数

This function has no parameters.

返回值

Returns TRUE if readable, FALSE otherwise.

范例

Example #1 SplFileInfo::isReadable() example

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isReadable());

$info = new SplFileInfo('foo');
var_dump($info->isReadable());
?>

上例的输出类似于：

bool(true)
bool(false)

SplFileInfo::isLink
SplFileInfo::isWritable
SplFileInfo


Tells if the entry is writable

SplFileInfo::isReadable
SplFileInfo::openFile
SplFileInfo
PHP 手册

SplFileInfo::isWritable

(PHP 5 >= 5.1.2)

SplFileInfo::isWritable — Tells if the entry is writable

说明

public bool SplFileInfo::isWritable ( void )

Checks if the current entry is writable.

参数

This function has no parameters.

返回值

Returns TRUE if writable, FALSE otherwise;

SplFileInfo::isReadable
SplFileInfo::openFile
SplFileInfo


Gets an SplFileObject object for the file

SplFileInfo::isWritable
SplFileInfo::setFileClass
SplFileInfo
PHP 手册

SplFileInfo::openFile

(PHP 5 >= 5.1.2)

SplFileInfo::openFile — Gets an SplFileObject object for the file

说明

public SplFileObject SplFileInfo::openFile ([ string $open_mode [, bool $use_include_path [, resource $context ]]] )

The method description goes here.

参数

open_mode

Description...

use_include_path

Description...

context

Description...

返回值

Description...

范例

Example #1 SplFileInfo::openFile() example

<?php
/* ... */
?>

上例的输出类似于：

...

参见

  • SplFileObject
  • stream_context_create() - Create a streams context

SplFileInfo::isWritable
SplFileInfo::setFileClass
SplFileInfo


Sets the class name used with SplFileInfo::openFile()

SplFileInfo::openFile
SplFileInfo::setInfoClass
SplFileInfo
PHP 手册

SplFileInfo::setFileClass

(PHP 5 >= 5.1.2)

SplFileInfo::setFileClass — Sets the class name used with SplFileInfo::openFile()

说明

public void SplFileInfo::setFileClass ([ string $class_name ] )

Set the class name which SplFileInfo will use to open files with when openFile() is called. The class name passed to this method must be derived from SplFileObject.

参数

class_name

The class name to use when openFile() is called.

返回值

无返回值。

范例

Example #1 SplFileInfo::setFileClass() example

<?php
// Create a class extending SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// Set the class to use
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

上例的输出类似于：

object(MyFoo)#2 (0) { }

参见

  • SplFileInfo::openFile - Gets an SplFileObject object for the file

SplFileInfo::openFile
SplFileInfo::setInfoClass
SplFileInfo


Sets the class used with getFileInfo and getPathInfo

SplFileInfo::setFileClass
SplFileInfo::__toString
SplFileInfo
PHP 手册

SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2)

SplFileInfo::setInfoClass — Sets the class used with getFileInfo and getPathInfo

说明

public void SplFileInfo::setInfoClass ([ string $class_name ] )

Use this method to set a custom class which will be used when getFileInfo and getPathInfo are called. The class name passed to this method must be derived from SplFileInfo.

参数

class_name

The class name to use.

返回值

无返回值。

范例

Example #1 SplFileInfo::setFileClass() example

<?php
// Define a class which extends SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// Set the class name to use
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

上例的输出类似于：

object(MyFoo)#2 (0) { }

参见

  • SplFileInfo::getFileInfo - Gets an SplFileInfo object for the file

SplFileInfo::setFileClass
SplFileInfo::__toString
SplFileInfo


Returns the path to the file as a string

SplFileInfo::setInfoClass
SPL Types
SplFileInfo
PHP 手册

SplFileInfo::__toString

(PHP 5 >= 5.1.2)

SplFileInfo::__toString — Returns the path to the file as a string

说明

public void SplFileInfo::__toString ( void )

This method will return the file name of the referenced file.

参数

This function has no parameters.

返回值

Returns the path to the file.

范例

Example #1 SplFileInfo::__toString() example

<?php
$info = new SplFileInfo('foo');
var_dump($info->__toString());
echo $info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo $info.PHP_EOL;
?>

上例的输出类似于：

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php

SplFileInfo::setInfoClass
SPL Types
SplFileInfo


SPL Type Handling

  • 简介
  • SplInt — The SplInt class
    • SplInt::__construct — Constructs an integer object type
  • SplFloat — The SplFloat class
    • SplFloat::__construct — Constructs a float object type
  • SplEnum — The SplEnum class
    • SplEnum::__construct — Constructs an enumeger object type
  • SplBool — The SplBool class
    • SplBool::__construct — Constructs a bool object type
SplFileInfo::__toString
简介
其它基本扩展


简介

This extension aims at helping people making PHP a stronger typed language. It provides different typehandling classes as such as integer, float, bool, enum, etc.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

SPL Types
SplInt
SPL Types


简介
SplInt::__construct
SPL Types
PHP 手册

The SplInt class

简介

The SplInt class is used to enforce strong typing of the integer type.

Class synopsis

SplInt
SplInt {
/* Methods */
__construct ( void )
}

Table of Contents

  • SplInt::__construct — Constructs an integer object type
简介
SplInt::__construct
SPL Types


Constructs an integer object type

SplInt
SplFloat
SplInt
PHP 手册

SplInt::__construct

(No version information available, might be only in CVS)

SplInt::__construct — Constructs an integer object type

说明

SplInt::__construct ( void )

This constructs a new object of type float.

参数

input

The input parameter accepts an integer An UnexpectedValueException Exception will be thrown if anything is passed.

返回值

无返回值。

范例

Example #1 SplInt::__construct() example

<?php
$int = new SplInt(94);

try {
    $int = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

var_dump($int);
echo $int; // Outputs 94
?>

上例将输出：

Value not an integer
object(SplInt)#1 (1) {
  ["__default"]=>
  int(94)
}
94

SplInt
SplFloat
SplInt


The SplFloat class

简介

The SplFloat class is used to enforce strong typing of the float type.

Class synopsis

SplFloat
SplFloat {
/* Methods */
__construct ( void )
}

Table of Contents

  • SplFloat::__construct — Constructs a float object type
SplInt::__construct
SplFloat::__construct
SPL Types


Constructs a float object type

SplFloat
SplEnum
SplFloat
PHP 手册

SplFloat::__construct

(No version information available, might be only in CVS)

SplFloat::__construct — Constructs a float object type

说明

SplFloat::__construct ( void )

This constructs a new object of type float.

参数

input

The input parameter accepts a float or an integer. If an integer is passed, it will be converted to float.

返回值

无返回值。

范例

Example #1 SplFloat::__construct() example

<?php
$float    = new SplFloat(3.154);
$newFloat = new SplFloat(3);

try {
    $float = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

var_dump($float);
var_dump($newFloat);
?>

上例将输出：

Value not a float
object(SplFloat)#1 (1) {
  ["__default"]=>
  float(3.154)
}
object(SplFloat)#2 (1) {
  ["__default"]=>
  float(3)
}

SplFloat
SplEnum
SplFloat


The SplEnum class

简介

SplEnum gives the ability to emulate and create "Enum" objects natively in PHP.

Class synopsis

SplEnum
abstract SplEnum {
/* Methods */
__construct ( void )
}

Table of Contents

  • SplEnum::__construct — Constructs an enumeger object type
SplFloat::__construct
SplEnum::__construct
SPL Types


Constructs an enumeger object type

SplEnum
SplBool
SplEnum
PHP 手册

SplEnum::__construct

(No version information available, might be only in CVS)

SplEnum::__construct — Constructs an enumeger object type

说明

SplEnum::__construct ( void )

This constructor is used to set the value and the strictness of the "Enum" Object.

参数

input

The input parameter accepts an integer and will throw an UnexpectedValueException if anything else is passed.

strict

A boolean variable to indicate wether the object's strictness should be set or not.

返回值

无返回值。

范例

Example #1 SplEnum::__construct() example

<?php

class EnumOne extends SplEnum
{
    const __default = 1;
}

class EnumTwo extends SplEnum
{
    const __default = 2;
}

class EnumThree extends SplEnum
{
    const __default = 3;
}

$enumOne   = new EnumOne();
$enumTwo   = new EnumTwo();
$enumThree = new EnumThree();

echo 'Enum one  : ' . $enumOne   . PHP_EOL;
echo 'Enum two  : ' . $enumTwo   . PHP_EOL;
echo 'Enum three: ' . $enumThree . PHP_EOL;
?>

上例将输出：

Enum one  : 1
Enum two  : 2
Enum three: 3

SplEnum
SplBool
SplEnum


The SplBool class

简介

The SplBool class is used to enforce strong typing of the bool type.

Class synopsis

SplBool
SplBool {
/* Methods */
__construct ( void )
}

Table of Contents

  • SplBool::__construct — Constructs a bool object type
SplEnum::__construct
SplBool::__construct
SPL Types


Constructs a bool object type

SplBool
Streams
SplBool
PHP 手册

SplBool::__construct

(No version information available, might be only in CVS)

SplBool::__construct — Constructs a bool object type

说明

SplBool::__construct ( void )

This constructs a new object of type bool.

参数

input

The input parameter accepts a bool.

strict

A boolean variable to indicate wether the object's strictness should be set or not.

返回值

无返回值。

范例

Example #1 SplBool::__construct() example

<?php
$one = new SplBool(true);
$two = new SplBool(1);

var_dump($one);
var_dump($two);
?>

上例将输出：

object(SplBool)#1 (1) {
  ["__default"]=>
  bool(true)
}
object(SplBool)#1 (1) {
  ["__default"]=>
  bool(true)
}

SplBool
Streams
SplBool


Streams

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • Stream Classes
  • 预定义常量
  • Stream Filters
  • Stream Contexts
  • Stream Errors
  • 范例
  • Stream 函数
    • stream_bucket_append — Append bucket to brigade
    • stream_bucket_make_writeable — Return a bucket object from the brigade for operating on
    • stream_bucket_new — Create a new bucket for use on the current stream
    • stream_bucket_prepend — Prepend bucket to brigade
    • stream_context_create — Create a streams context
    • stream_context_get_default — Retreive the default streams context
    • stream_context_get_options — Retrieve options for a stream/wrapper/context
    • stream_context_set_default — Set the default streams context
    • stream_context_set_option — Sets an option for a stream/wrapper/context
    • stream_context_set_params — Set parameters for a stream/wrapper/context
    • stream_copy_to_stream — Copies data from one stream to another
    • stream_encoding — Set character set for stream encoding
    • stream_filter_append — Attach a filter to a stream
    • stream_filter_prepend — Attach a filter to a stream
    • stream_filter_register — Register a stream filter implemented as a PHP class derived from php_user_filter
    • stream_filter_remove — Remove a filter from a stream
    • stream_get_contents — Reads remainder of a stream into a string
    • stream_get_filters — Retrieve list of registered filters
    • stream_get_line — Gets line from stream resource up to a given delimiter
    • stream_get_meta_data — 从封装协议文件指针中取得报头／元数据
    • stream_get_transports — Retrieve list of registered socket transports
    • stream_get_wrappers — Retrieve list of registered streams
    • stream_notification_callback — A callback function for the notification context paramater
    • stream_register_wrapper — 别名 stream_wrapper_register
    • stream_resolve_include_path — Determine what file will be opened by calls to fopen with a relative path
    • stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
    • stream_set_blocking — Set blocking/non-blocking mode on a stream
    • stream_set_timeout — Set timeout period on a stream
    • stream_set_write_buffer — Sets file buffering on the given stream
    • stream_socket_accept — Accept a connection on a socket created by stream_socket_server
    • stream_socket_client — Open Internet or Unix domain socket connection
    • stream_socket_enable_crypto — Turns encryption on/off on an already connected socket
    • stream_socket_get_name — Retrieve the name of the local or remote sockets
    • stream_socket_pair — Creates a pair of connected, indistinguishable socket streams
    • stream_socket_recvfrom — Receives data from a socket, connected or not
    • stream_socket_sendto — Sends a message to a socket, whether it is connected or not
    • stream_socket_server — Create an Internet or Unix domain server socket
    • stream_socket_shutdown — Shutdown a full-duplex connection
    • stream_supports_lock — Tells wether the stream supports locking.
    • stream_register_wrapper — 注册一个用 PHP 类实现的 URL 封装协议
    • stream_wrapper_restore — Restores a previously unregistered built-in wrapper
    • stream_wrapper_unregister — Unregister a URL wrapper
SplBool::__construct
简介
其它基本扩展


简介

Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See 支持的协议／封装协议列表), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in Working with streams. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme ://target

  • scheme (string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See 支持的协议／封装协议列表 for a list of PHP built-in wrappers. If no wrapper is specified, the function default is used (typically file://).
  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see 支持的协议／封装协议列表 for a description of targets for built-in streams.

Note: Information on using streams within the PHP source code can be found in the Streams API for PHP Extension Authors reference.

Streams
安装/配置
Streams


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • Stream Classes
简介
需求
Streams


安装

Streams are an integral part of PHP as of version 4.3.0. No steps are required to enable them.

需求
运行时配置
安装/配置


运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

安装
Stream Classes
安装/配置


Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Constant | Description
STREAM_FILTER_READ * | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE * | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL * | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON * | Return Code indicating that the userspace filter returned buckets in $out .
PSFS_FEED_ME * | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL * | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT * | Open client socket asynchronously. This option must be used together with the STREAM_CLIENT_CONNECT flag. Used with stream_socket_client().
STREAM_CLIENT_CONNECT * | Open client socket connection. Client sockets should always include this flag. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT * | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND * | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN * | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Connection-orientated transports (such as TCP) must use this flag, otherwise the server socket will not be enabled. Using this flag for connect-less transports (such as UDP) is an error.
STREAM_NOTIFY_RESOLVE * | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message .
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED * | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occurred on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occurred. Processing cannot continue.
STREAM_IPPROTO_ICMP + | Provides a ICMP socket.
STREAM_IPPROTO_IP + | Provides a IP socket.
STREAM_IPPROTO_RAW + | Provides a RAW socket.
STREAM_IPPROTO_TCP + | Provides a TCP socket.
STREAM_IPPROTO_UDP + | Provides a UDP socket.
STREAM_PF_INET + | Internet Protocol Version 4 (IPv4).
STREAM_PF_INET6 + | Internet Protocol Version 6 (IPv6).
STREAM_PF_UNIX + | Unix system internal protocols.
STREAM_SOCK_DGRAM + | Provides datagrams, which are connectionless messages (UDP, for example).
STREAM_SOCK_RAW + | Provides a raw socket, which provides access to internal network protocols and interfaces. Usually this type of socket is just available to the root user.
STREAM_SOCK_RDM + | Provides a RDM (Reliably-delivered messages) socket.
STREAM_SOCK_SEQPACKET + | Provides a sequenced packet stream socket.
STREAM_SOCK_STREAM + | Provides sequenced, two-way byte streams with a transmission mechanism for out-of-band data (TCP, for example).
STREAM_SHUT_RD | Used with stream_socket_shutdown() to disable further receptions. Added in PHP 5.2.1.
STREAM_SHUT_WR | Used with stream_socket_shutdown() to disable further transmissions. Added in PHP 5.2.1.
STREAM_SHUT_RDWR | Used with stream_socket_shutdown() to disable further receptions and transmissions. Added in PHP 5.2.1.

Note: The constants marked with * are just available since PHP 5.0.0.

Note: The constants marked with + are available since PHP 5.1.0 and are meant to be used with stream_socket_pair(). Please note that some of these constants might not be available in your system.

Stream Classes
Stream Filters
Streams


Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension using the API Reference in Working with streams. To access the list of currently registered filters, use stream_get_filters().

预定义常量
Stream Contexts
Streams


Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found in the Context options and parameters chapter.

Parameters can be specified for contexts using the stream_context_set_params() function.

Stream Filters
Stream Errors
Streams


Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occurs an E_WARNING message will be generated describing the nature of the error.

Stream Contexts
范例
Streams


范例

Example #1 Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Example #2 Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
* Include form elements named "foo" and "bar" with dummy values
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);

fclose($sock);
?>

Example #3 Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
* File can be read back using compress.zlib stream or just
* decompressed from the command line using 'gzip -d foo-bar.txt.gz'
*/
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>

Stream Errors
Stream 函数
Streams


Stream 函数

Table of Contents

  • stream_bucket_append — Append bucket to brigade
  • stream_bucket_make_writeable — Return a bucket object from the brigade for operating on
  • stream_bucket_new — Create a new bucket for use on the current stream
  • stream_bucket_prepend — Prepend bucket to brigade
  • stream_context_create — Create a streams context
  • stream_context_get_default — Retreive the default streams context
  • stream_context_get_options — Retrieve options for a stream/wrapper/context
  • stream_context_set_default — Set the default streams context
  • stream_context_set_option — Sets an option for a stream/wrapper/context
  • stream_context_set_params — Set parameters for a stream/wrapper/context
  • stream_copy_to_stream — Copies data from one stream to another
  • stream_encoding — Set character set for stream encoding
  • stream_filter_append — Attach a filter to a stream
  • stream_filter_prepend — Attach a filter to a stream
  • stream_filter_register — Register a stream filter implemented as a PHP class derived from php_user_filter
  • stream_filter_remove — Remove a filter from a stream
  • stream_get_contents — Reads remainder of a stream into a string
  • stream_get_filters — Retrieve list of registered filters
  • stream_get_line — Gets line from stream resource up to a given delimiter
  • stream_get_meta_data — 从封装协议文件指针中取得报头／元数据
  • stream_get_transports — Retrieve list of registered socket transports
  • stream_get_wrappers — Retrieve list of registered streams
  • stream_notification_callback — A callback function for the notification context paramater
  • stream_register_wrapper — 别名 stream_wrapper_register
  • stream_resolve_include_path — Determine what file will be opened by calls to fopen with a relative path
  • stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • stream_set_blocking — Set blocking/non-blocking mode on a stream
  • stream_set_timeout — Set timeout period on a stream
  • stream_set_write_buffer — Sets file buffering on the given stream
  • stream_socket_accept — Accept a connection on a socket created by stream_socket_server
  • stream_socket_client — Open Internet or Unix domain socket connection
  • stream_socket_enable_crypto — Turns encryption on/off on an already connected socket
  • stream_socket_get_name — Retrieve the name of the local or remote sockets
  • stream_socket_pair — Creates a pair of connected, indistinguishable socket streams
  • stream_socket_recvfrom — Receives data from a socket, connected or not
  • stream_socket_sendto — Sends a message to a socket, whether it is connected or not
  • stream_socket_server — Create an Internet or Unix domain server socket
  • stream_socket_shutdown — Shutdown a full-duplex connection
  • stream_supports_lock — Tells wether the stream supports locking.
  • stream_register_wrapper — 注册一个用 PHP 类实现的 URL 封装协议
  • stream_wrapper_restore — Restores a previously unregistered built-in wrapper
  • stream_wrapper_unregister — Unregister a URL wrapper
范例
stream_bucket_append
Streams


Append bucket to brigade

Stream 函数
stream_bucket_make_writeable
Stream 函数
PHP 手册

stream_bucket_append

(PHP 5)

stream_bucket_append — Append bucket to brigade

说明

void stream_bucket_append ( resource $brigade , resource $bucket )
Warning

本函数暂无文档，仅有参数列表。

Stream 函数
stream_bucket_make_writeable
Stream 函数


Return a bucket object from the brigade for operating on

stream_bucket_append
stream_bucket_new
Stream 函数
PHP 手册

stream_bucket_make_writeable

(PHP 5)

stream_bucket_make_writeable — Return a bucket object from the brigade for operating on

说明

object stream_bucket_make_writeable ( resource $brigade )
Warning

本函数暂无文档，仅有参数列表。

stream_bucket_append
stream_bucket_new
Stream 函数


Create a new bucket for use on the current stream

stream_bucket_make_writeable
stream_bucket_prepend
Stream 函数
PHP 手册

stream_bucket_new

(PHP 5)

stream_bucket_new — Create a new bucket for use on the current stream

说明

object stream_bucket_new ( resource $stream , string $buffer )
Warning

本函数暂无文档，仅有参数列表。

stream_bucket_make_writeable
stream_bucket_prepend
Stream 函数


Prepend bucket to brigade

stream_bucket_new
stream_context_create
Stream 函数
PHP 手册

stream_bucket_prepend

(PHP 5)

stream_bucket_prepend — Prepend bucket to brigade

说明

void stream_bucket_prepend ( resource $brigade , resource $bucket )
Warning

本函数暂无文档，仅有参数列表。

stream_bucket_new
stream_context_create
Stream 函数


Create a streams context

stream_bucket_prepend
stream_context_get_default
Stream 函数
PHP 手册

stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_create — Create a streams context

说明

resource stream_context_create ([ array $options [, array $params ]] )

Creates and returns a stream context with any options supplied in options preset.

参数

options

Must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Default to an empty array.

params

Must be an associative array in the format $arr['parameter'] = $value. Refer to stream_context_set_params() for a listing of standard stream parameters.

返回值

A stream context resource.

更新日志

版本 | 说明
5.3.0 | Added the optional params argument.

范例

Example #1 Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

参见

  • stream_context_set_option() - Sets an option for a stream/wrapper/context
  • Listing of supported wrappers (支持的协议／封装协议列表)
  • Context options (Context options and parameters)
stream_bucket_prepend
stream_context_get_default
Stream 函数


Retreive the default streams context

stream_context_create
stream_context_get_options
Stream 函数
PHP 手册

stream_context_get_default

(PHP 5 >= 5.1.0)

stream_context_get_default — Retreive the default streams context

说明

resource stream_context_get_default ([ array $options ] )

Returns the default stream context which is used whenever file operations (fopen(), file_get_contents(), etc...) are called without a context parameter. Options for the default context can optionally be specified with this function using the same syntax as stream_context_create().

参数

options
options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Note: As of PHP 5.3.0, the stream_context_set_default() function can be used to set the default context.

返回值

A stream context resource.

范例

Example #1 Using stream_context_get_default()

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$alternate_opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
              "Content-length: " . strlen("baz=bomb"),
    'content'=>"baz=bomb"
  )
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* Sends a regular GET request to proxy server at 10.54.1.39
 * For www.example.com using context options specified in $default_opts
 */
readfile('http://www.example.com');

/* Sends a POST request directly to www.example.com
 * Using context options specified in $alternate_opts
 */
readfile('http://www.example.com', false, $alternate);

?>

参见

  • stream_context_create() - Create a streams context
  • Listing of supported wrappers with context options (支持的协议／封装协议列表).

stream_context_create
stream_context_get_options
Stream 函数


Retrieve options for a stream/wrapper/context

stream_context_get_default
stream_context_set_default
Stream 函数
PHP 手册

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_options — Retrieve options for a stream/wrapper/context

说明

array stream_context_get_options ( resource $stream_or_context )

Returns an array of options on the specified stream or context.

参数

stream_or_context

The stream or context to get options from

返回值

Returns an associative array with the options.

范例

Example #1 stream_context_get_options() example

<?php
$params = array("method" => "POST");

stream_context_get_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

上例的输出类似于：

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}

stream_context_get_default
stream_context_set_default
Stream 函数


Set the default streams context

stream_context_get_options
stream_context_set_option
Stream 函数
PHP 手册

stream_context_set_default

(PHP 5 >= 5.3.0)

stream_context_set_default — Set the default streams context

说明

resource stream_context_set_default ( array $options )

Set the default stream context which will be used whenever file operations (fopen(), file_get_contents(), etc...) are called without a context parameter. Uses the same syntax as stream_context_create().

参数

options

The options to set for the default context.

Note: options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

返回值

Returns the default stream context.

范例

Example #1 stream_context_set_default() example

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$default = stream_context_set_default($default_opts);

/* Sends a regular GET request to proxy server at 10.54.1.39
 * For www.example.com using context options specified in $default_opts
 */
readfile('http://www.example.com');
?>

参见

  • stream_context_create() - Create a streams context
  • stream_context_get_default() - Retreive the default streams context
  • Listing of supported wrappers with context options (支持的协议／封装协议列表).

stream_context_get_options
stream_context_set_option
Stream 函数


Sets an option for a stream/wrapper/context

stream_context_set_default
stream_context_set_params
Stream 函数
PHP 手册

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_option — Sets an option for a stream/wrapper/context

说明

bool stream_context_set_option ( resource $stream_or_context , string $wrapper , string $option , mixed $value )
bool stream_context_set_option ( resource $stream_or_context , array $options )

Sets an option on the specified context. value is set to option for wrapper

参数

stream_or_context

The stream or context resource to apply the options too.

options

The options to set for the default context.

Note: options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

stream_context_set_default
stream_context_set_params
Stream 函数


Set parameters for a stream/wrapper/context

stream_context_set_option
stream_copy_to_stream
Stream 函数
PHP 手册

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_params — Set parameters for a stream/wrapper/context

说明

bool stream_context_set_params ( resource $stream_or_context , array $params )

Sets parameters on the specified context.

参数

stream_or_context

The stream or context to apply the parameters too.

params

An array of parameters to set.

Note: params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Supported parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification.
options | Array of options as in stream_context_create().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

stream_context_set_option
stream_copy_to_stream
Stream 函数


Copies data from one stream to another

stream_context_set_params
stream_encoding
Stream 函数
PHP 手册

stream_copy_to_stream

(PHP 5)

stream_copy_to_stream — Copies data from one stream to another

说明

int stream_copy_to_stream ( resource $source , resource $dest [, int $maxlength=-1 [, int $offset=0 ]] )

Makes a copy of up to maxlength bytes of data from the current position (or from the offset position, if specified) in source to dest . If maxlength is not specified, all remaining content in source will be copied.

参数

source

The source stream

dest

The destination stream

maxlength

Maximum bytes to copy

offset

The offset where to start to copy data

返回值

Returns the total count of bytes copied.

更新日志

版本 | 说明
5.1.0 | Added the offset parameter

范例

Example #1 A stream_copy_to_stream() example

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

参见

  • copy() - 拷贝文件

stream_context_set_params
stream_encoding
Stream 函数


Set character set for stream encoding

stream_copy_to_stream
stream_filter_append
Stream 函数
PHP 手册

stream_encoding

(PHP 5 >= 5.2.0)

stream_encoding — Set character set for stream encoding

说明

bool stream_encoding ( resource $stream [, string $encoding ] )
Warning

本函数暂无文档，仅有参数列表。

stream_copy_to_stream
stream_filter_append
Stream 函数


Attach a filter to a stream

stream_encoding
stream_filter_prepend
Stream 函数
PHP 手册

stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append — Attach a filter to a stream

Description

resource stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

Adds filtername to the list of filters attached to stream . This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

As of PHP 5.1.0, this function returns a resource which can be used to refer to this filter instance during a call to stream_filter_remove(). Prior to PHP 5.1.0, this function returns TRUE on success or FALSE on failure.

Example #1 Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen('test.txt', 'w+');

/* Apply the ROT13 filter to the
 * write filter chain, but not the
 * read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
 * it will be ROT13 transformed on the
 * way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
 * Had the filter been applied to the
 * read filter chain as well, we would see
 * the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

Note: When using custom (user) filters
stream_filter_register() must be called first in order to register the desired user filter to filtername .

Note: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

Note: When a filter is added for read and write, two instances of the filter are created. stream_filter_append() must be called twice with STREAM_FILTER_READ and STREAM_FILTER_WRITE to get both filter resources.

See also
stream_filter_register(),
stream_filter_prepend(), and
stream_get_filters().

stream_encoding
stream_filter_prepend
Stream 函数


Attach a filter to a stream

stream_filter_append
stream_filter_register
Stream 函数
PHP 手册

stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prepend — Attach a filter to a stream

Description

resource stream_filter_prepend ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

Adds filtername to the list of filters attached to stream . This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

As of PHP 5.1.0, this function returns a resource which can be used to refer to this filter instance during a call to stream_filter_remove(). Prior to PHP 5.1.0, this function returns TRUE on success or FALSE on failure.

Note: When using custom (user) filters
stream_filter_register() must be called first in order to register the desired user filter to filtername .

Note: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is prepended to a stream, data in the internal buffers, which has already been processed through other filters will not be reprocessed through the new filter at that time. This differs from the behavior of stream_filter_append().

Note: When a filter is added for read and write, two instances of the filter are created. stream_filter_prepend() must be called twice with STREAM_FILTER_READ and STREAM_FILTER_WRITE to get both filter resources.

See also stream_filter_register(), and stream_filter_append().

stream_filter_append
stream_filter_register
Stream 函数


Register a stream filter implemented as a PHP class derived from php_user_filter

stream_filter_prepend
stream_filter_remove
Stream 函数
PHP 手册

stream_filter_register

(PHP 5)

stream_filter_register — Register a stream filter implemented as a PHP class derived from php_user_filter

Description

bool stream_filter_register ( string $filtername , string $classname )

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions as defined below. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

stream_filter_register() will return FALSE if the filtername is already defined.

int filter ( resource $in , resource $out , int &$consumed , bool $closing )

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()). in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered. out is a resource pointing to a second bucket brigade into which your modified buckets should be placed. consumed , which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket. If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE The filter method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.

bool onCreate ( void )

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it. Your implementation of this method should return FALSE on failure, or TRUE on success.

When your filter is first instantiated, and yourfilter->onCreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().

void onClose ( void )

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialzed during onCreate this would be the time to destroy or dispose of them.

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

Example #1 Filter for capitalizing characters on foo-bar.txt stream

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

?>

上例将输出：

LINE1
WORD - 2
EASY AS 123

Example #2 Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");
?>

上例将输出：

LINE1
WORD - 2
EASY AS 123

See also
stream_wrapper_register(),
stream_filter_prepend(), and
stream_filter_append().

stream_filter_prepend
stream_filter_remove
Stream 函数


Remove a filter from a stream

stream_filter_register
stream_get_contents
Stream 函数
PHP 手册

stream_filter_remove

(PHP 5 >= 5.1.0)

stream_filter_remove — Remove a filter from a stream

Description

bool stream_filter_remove ( resource $stream_filter )

Removes a stream filter previously added to a stream with stream_filter_prepend() or stream_filter_append(). Any data remaining in the filter's internal buffer will be flushed through to the next filter before removing it.

Example #1 Dynamicly refiltering a stream

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

$rot13_filter = stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "This is ");
stream_filter_remove($rot13_filter);
fwrite($fp, "a test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

/* Expected Output
   ---------------

Guvf vf a test

 */
?>

See also
stream_filter_register(),
stream_filter_append(), and
stream_filter_prepend().

stream_filter_register
stream_get_contents
Stream 函数


Reads remainder of a stream into a string

stream_filter_remove
stream_get_filters
Stream 函数
PHP 手册

stream_get_contents

(PHP 5)

stream_get_contents — Reads remainder of a stream into a string

Description

string stream_get_contents ( resource $handle [, int $maxlength=-1 [, int $offset=0 ]] )

Identical to file_get_contents(), except that stream_get_contents() operates on an already open stream resource and returns the remaining contents in a string, up to maxlength bytes and starting at the specified offset .

参数

handle (resource)

A stream resource (e.g. returned from fopen())

maxlength (integer)

The maximum bytes to read. Defaults to -1 (read all the remaining buffer).

offset (integer)

Seek to the specified offset before reading. Added in PHP 5.1.0.

返回值

Returns a string, or FALSE on failure.

范例

Example #1 stream_get_contents() example

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
    // print all the page starting at the offset 10
    echo stream_get_contents($stream, -1, 10);

    fclose($stream);
}

if ($stream = fopen('http://www.example.net', 'r')) {
    // print the first 5 bytes
    echo stream_get_contents($stream, 5);

    fclose($stream);
}

?>

参见

  • fgets() - 从文件指针中读取一行
  • fread() - 读取文件（可安全用于二进制文件）
  • fpassthru() - 输出文件指针处的所有剩余数据

Note: 本函数可安全用于二进制对象。

stream_filter_remove
stream_get_filters
Stream 函数


Retrieve list of registered filters

stream_get_contents
stream_get_line
Stream 函数
PHP 手册

stream_get_filters

(PHP 5)

stream_get_filters — Retrieve list of registered filters

Description

array stream_get_filters ( void )

Returns an indexed array containing the name of all stream filters available on the running system.

Example #1 Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Output will be similar to the following. Note: there may be more or fewer filters in your version of PHP.

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

See also stream_filter_register(), and stream_get_wrappers().

stream_get_contents
stream_get_line
Stream 函数


Gets line from stream resource up to a given delimiter

stream_get_filters
stream_get_meta_data
Stream 函数
PHP 手册

stream_get_line

(PHP 5)

stream_get_line — Gets line from stream resource up to a given delimiter

Description

string stream_get_line ( resource $handle , int $length [, string $ending ] )

Returns a string of up to length bytes read from the file pointed to by handle . Reading ends when length bytes have been read, when the string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

If an error occurs, returns FALSE.

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

See also fread(),
fgets(), and
fgetc().

stream_get_filters
stream_get_meta_data
Stream 函数


从封装协议文件指针中取得报头／元数据

stream_get_line
stream_get_transports
Stream 函数
PHP 手册

stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_data — 从封装协议文件指针中取得报头／元数据

说明

array stream_get_meta_data ( int $fp )

返回现有 stream 的信息。可以是任何通过 fopen()，fsockopen() 和 pfsockopen() 建立的流。返回的数组包含以下项目：

  • timed_out (bool) - 如果在上次调用 fread() 或者 fgets() 中等待数据时流超时了则为 TRUE。

  • blocked (bool) - 如果流处于阻塞 IO 模式时为 TRUE。参见 stream_set_blocking()。

  • eof (bool) - 如果流到达文件末尾时为 TRUE。注意对于 socket 流甚至当 unread_bytes 为非零值时也可以为 TRUE。要测定是否有更多数据可读，用 feof() 替代读取本项目的值。

  • unread_bytes (int) - 当前在 PHP 自己的内部缓冲区中的字节数。

    Note: 不要在脚本中使用此值。

以下项目是 PHP 4.3 新加的：

  • stream_type (string) - 一个描述流底层实现的标注。

  • wrapper_type (string) - 一个描述流的分层协议封装实现的标注。更多关于封装协议的信息见 支持的协议／封装协议列表。

  • wrapper_data (mixed) - 当前流附加的封装协议数据。更多封装协议及其数据的信息见 支持的协议／封装协议列表。

  • filters (array) - 包含有被叠加在当前流的任何过滤器名的数组。过滤器的文档见附录中的可用过滤器列表。

Note: 本函数是 PHP 4.3 引进的，在此版本之前，可以用 socket_get_status() 来取得前四个项目并且仅能用于基于 socket 的流。
在 PHP 4.3 及以后版本中，socket_get_status() 是本函数的别名。

Note: 本函数不能作用于通过 Socket 扩展库创建的流。

以下项目为 PHP 5.0 新加：

  • mode (string) - 对当前流所要求的访问类型（见 fopen() 中的表格 1）。

  • seekable (bool) - 是否可以在当前流中定位。

  • uri (string) - 与当前流关联的 URI 或文件名。

stream_get_line
stream_get_transports
Stream 函数


Retrieve list of registered socket transports

stream_get_meta_data
stream_get_wrappers
Stream 函数
PHP 手册

stream_get_transports

(PHP 5)

stream_get_transports — Retrieve list of registered socket transports

Description

array stream_get_transports ( void )

Returns an indexed array containing the name of all socket transports available on the running system.

Example #1 Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Output will be similar to the following. Note: there may be more or fewer transports in your version of PHP.

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

See also stream_get_filters(), and stream_get_wrappers().

stream_get_meta_data
stream_get_wrappers
Stream 函数


Retrieve list of registered streams

stream_get_transports
stream_notification_callback
Stream 函数
PHP 手册

stream_get_wrappers

(PHP 5)

stream_get_wrappers — Retrieve list of registered streams

Description

array stream_get_wrappers ( void )

Returns an indexed array containing the name of all stream wrappers available on the running system.

Example #1 stream_get_wrappers() example

<?php
print_r(stream_get_wrappers());
?>

上例的输出类似于：

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Example #2 Checking for the existence of a stream wrapper

<?php
// check for the existence of the bzip2 stream wrapper
if (in_array('compress.bzip2', stream_get_wrappers())) {
    echo 'compress.bzip2:// support enabled.';
} else {
    echo 'compress.bzip2:// support not enabled.';
}
?>

See also stream_wrapper_register().

stream_get_transports
stream_notification_callback
Stream 函数


A callback function for the notification context paramater

stream_get_wrappers
stream_register_wrapper
Stream 函数
PHP 手册

stream_notification_callback

(PHP 5 >= 5.2.0)

stream_notification_callback — A callback function for the notification context paramater

说明

void stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max )

A callback function, used by the notification context parameter, called during an event.

Note: This is not a real function, only a prototype of how the function should be.

参数

notification_code

One of the STREAM_NOTIFY_* notification constants.

severity

One of the STREAM_NOTIFY_SEVERITY_* notification constants.

message

Passed if a descriptive message is available for the event.

message_code

Passed if a descriptive message code is available for the event.

The meaning of this value is dependent on the specific wrapper in use.

bytes_transferred

If applicable, the bytes_transferred will be populated.

bytes_max

If applicable, the bytes_max will be populated.

返回值

无返回值。

范例

Example #1 stream_notification_callback() example

<?php
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {

    switch($notification_code) {
        case STREAM_NOTIFY_RESOLVE:
        case STREAM_NOTIFY_AUTH_REQUIRED:
        case STREAM_NOTIFY_COMPLETED:
        case STREAM_NOTIFY_FAILURE:
        case STREAM_NOTIFY_AUTH_RESULT:
            var_dump($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max);
            /* Ignore */
            break;

        case STREAM_NOTIFY_REDIRECTED:
            echo "Being redirected to: ", $message;
            break;

        case STREAM_NOTIFY_CONNECT:
            echo "Connected...";
            break;

        case STREAM_NOTIFY_FILE_SIZE_IS:
            echo "Got the filesize: ", $bytes_max;
            break;

        case STREAM_NOTIFY_MIME_TYPE_IS:
            echo "Found the mime-type: ", $message;
            break;

        case STREAM_NOTIFY_PROGRESS:
            echo "Made some progress, downloaded ", $bytes_transferred, " so far";
            break;
    }
    echo "\n";
}

$ctx = stream_context_create(null, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact", false, $ctx);
?>

上例的输出类似于：

Connected...
Found the mime-type: text/html; charset=utf-8
Being redirected to: http://no.php.net/contact
Connected...
Got the filesize: 0
Found the mime-type: text/html; charset=utf-8
Being redirected to: http://no.php.net/contact.php
Connected...
Got the filesize: 4589
Found the mime-type: text/html;charset=utf-8
Made some progress, downloaded 0 so far
Made some progress, downloaded 0 so far
Made some progress, downloaded 0 so far
Made some progress, downloaded 1440 so far
Made some progress, downloaded 2880 so far
Made some progress, downloaded 4320 so far
Made some progress, downloaded 5760 so far
Made some progress, downloaded 6381 so far
Made some progress, downloaded 7002 so far

Example #2 Simple progressbar for commandline download client

<?php
function usage($argv) {
    echo "Usage:\n";
    printf("\tphp %s <http://example.com/file> <localfile>\n", $argv[0]);
    exit(1);
}

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
    static $filesize = null;

    switch($notification_code) {
    case STREAM_NOTIFY_RESOLVE:
    case STREAM_NOTIFY_AUTH_REQUIRED:
    case STREAM_NOTIFY_COMPLETED:
    case STREAM_NOTIFY_FAILURE:
    case STREAM_NOTIFY_AUTH_RESULT:
        /* Ignore */
        break;

    case STREAM_NOTIFY_REDIRECTED:
        echo "Being redirected to: ", $message, "\n";
        break;

    case STREAM_NOTIFY_CONNECT:
        echo "Connected...\n";
        break;

    case STREAM_NOTIFY_FILE_SIZE_IS:
        $filesize = $bytes_max;
        echo "Filesize: ", $filesize, "\n";
        break;

    case STREAM_NOTIFY_MIME_TYPE_IS:
        echo "Mime-type: ", $message, "\n";
        break;

    case STREAM_NOTIFY_PROGRESS:
        if ($bytes_transferred > 0) {
            if (!isset($filesize)) {
                printf("\rUnknown filesize.. %2d kb done..", $bytes_transferred/1024);
            } else {
                $length = (int)(($bytes_transferred/$filesize)*100);
                printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset($argv[1], $argv[2]) or usage($argv);

$ctx = stream_context_create(null, array("notification" => "stream_notification_callback"));

$fp = fopen($argv[1], "r", false, $ctx);
if (is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo "\nDone!\n";
    exit(0);
}

$err = error_get_last();
echo "\nErrrrrorr..\n", $err["message"], "\n";
exit(1);
?>

Executing the example above with: php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 will output something similar too:

Connected...
Mime-type: text/html; charset=utf-8
Being redirected to: http://no2.php.net/distributions/php-5.2.5.tar.bz2
Connected...
Filesize: 7773024
Mime-type: application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

参见

  • Context parameters

stream_get_wrappers
stream_register_wrapper
Stream 函数


别名 stream_wrapper_register

stream_notification_callback
stream_resolve_include_path
Stream 函数
PHP 手册

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5)

stream_register_wrapper — 别名 stream_wrapper_register()

说明

本函数是该函数的别名： stream_wrapper_register().

stream_notification_callback
stream_resolve_include_path
Stream 函数


Determine what file will be opened by calls to fopen with a relative path

stream_register_wrapper
stream_select
Stream 函数
PHP 手册

stream_resolve_include_path

(PHP 5 >= 5.2.0)

stream_resolve_include_path — Determine what file will be opened by calls to fopen() with a relative path

说明

string stream_resolve_include_path ( string $filename [, resource $context ] )
Warning

本函数暂无文档，仅有参数列表。

stream_register_wrapper
stream_select
Stream 函数


Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

stream_resolve_include_path
stream_set_blocking
Stream 函数
PHP 手册

stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Description

int stream_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec=0 ] )

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

The streams listed in the write array will be watched to see if a write will not block.

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Note: When stream_select() returns, the arrays read , write and except are modified to indicate which stream resource(s) actually changed status.

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams. If tv_sec is NULL stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

On success stream_select() returns the number of stream resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Warning

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

You do not need to pass every array to stream_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after stream_select() returns.

This example checks to see if data has arrived for reading on either $stream1 or $stream2 . Since the timeout value is 0 it will return immediately:

<?php
/* Prepare the read array */
$read   = array($stream1, $stream2);
$write  = NULL;
$except = NULL;
if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Note: Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

<?php
$e = NULL;
stream_select($r, $w, $e, 0);
?>

Note: Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to TRUE:

<?php
$e = NULL;
if (false === stream_select($r, $w, $e, 0)) {
    echo "stream_select() failed\n";
}
?>

Note: If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Note: Windows compatibility: stream_select() used on a pipe returned from proc_open() may cause data loss under Windows 98.
Use of stream_select() on file descriptors returned by proc_open() will fail and return FALSE under Windows.

See also stream_set_blocking().

stream_resolve_include_path
stream_set_blocking
Stream 函数


Set blocking/non-blocking mode on a stream

stream_select
stream_set_timeout
Stream 函数
PHP 手册

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blocking — Set blocking/non-blocking mode on a stream

Description

bool stream_set_blocking ( resource $stream , int $mode )

If mode is 0, the given stream will be switched to non-blocking mode, and if 1, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

如果成功则返回 TRUE，失败则返回 FALSE。

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Note: Prior to PHP 4.3, this function only worked on socket based streams. Since PHP 4.3, this function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

See also stream_select().

stream_select
stream_set_timeout
Stream 函数


Set timeout period on a stream

stream_set_blocking
stream_set_write_buffer
Stream 函数
PHP 手册

stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeout — Set timeout period on a stream

Description

bool stream_set_timeout ( resource $stream , int $seconds [, int $microseconds=0 ] )

Sets the timeout value on stream , expressed in the sum of seconds and microseconds . 如果成功则返回 TRUE，失败则返回 FALSE。

When the stream times out, the 'timed_out' key of the array returned by stream_get_meta_data() is set to TRUE, although no error/warning is generated.

Example #1 stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {

    fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);

    $info = stream_get_meta_data($fp);
    fclose($fp);

    if ($info['timed_out']) {
        echo 'Connection timed out!';
    } else {
        echo $res;
    }

}
?>

Note: As of PHP 4.3, this function can (potentially) work on any kind of stream. In PHP 4.3, socket based streams are still the only kind supported in the PHP core, although streams from other extensions may support this function.

Note: This function doesn't work with advanced operations like stream_socket_recvfrom(), use stream_select() with timeout parameter instead.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

See also fsockopen() and fopen().

stream_set_blocking
stream_set_write_buffer
Stream 函数


Sets file buffering on the given stream

stream_set_timeout
stream_socket_accept
Stream 函数
PHP 手册

stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_buffer — Sets file buffering on the given stream

Description

int stream_set_write_buffer ( resource $stream , int $buffer )

Output using fwrite() is normally buffered at 8K. This means that if there are two processes wanting to write to the same output stream (a file), each is paused after 8K of data to allow the other to write. stream_set_write_buffer() sets the buffering for write operations on the given filepointer stream to buffer bytes. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

The function returns 0 on success, or EOF if the request cannot be honored.

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

Example #1 stream_set_write_buffer() example

<?php
$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fwrite($fp, $output);
  fclose($fp);
}
?>

See also fopen() and fwrite().

stream_set_timeout
stream_socket_accept
Stream 函数


Accept a connection on a socket created by stream_socket_server

stream_set_write_buffer
stream_socket_client
Stream 函数
PHP 手册

stream_socket_accept

(PHP 5)

stream_socket_accept — Accept a connection on a socket created by stream_socket_server()

说明

resource stream_socket_accept ( resource $server_socket [, float $timeout=ini_get("default_socket_timeout") [, string &$peername ]] )

Accept a connection on a socket previously created by stream_socket_server().

参数

timeout

Override the default socket accept timeout. Time should be given in seconds.

peername

Will be set to the name (address) of the client which connected, if included and available from the selected transport.

Note: Can also be determined later using stream_socket_get_name().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

This function should not be used with UDP server sockets. Instead, use stream_socket_recvfrom() and stream_socket_sendto().

参见

  • stream_socket_server() - Create an Internet or Unix domain server socket
  • stream_socket_get_name() - Retrieve the name of the local or remote sockets
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • fgets() - 从文件指针中读取一行
  • fgetss() - 从文件指针中读取一行并过滤掉 HTML 标记
  • fwrite() - 写入文件（可安全用于二进制文件）
  • fclose() - 关闭一个已打开的文件指针
  • feof() - 测试文件指针是否到了文件结束的位置
  • cURL 函数

stream_set_write_buffer
stream_socket_client
Stream 函数


Open Internet or Unix domain socket connection

stream_socket_accept
stream_socket_enable_crypto
Stream 函数
PHP 手册

stream_socket_client

(PHP 5)

stream_socket_client — Open Internet or Unix domain socket connection

说明

resource stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout=ini_get("default_socket_timeout") [, int $flags=STREAM_CLIENT_CONNECT [, resource $context ]]]]] )

Initiates a stream or datagram connection to the destination specified by remote_socket . The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem.

Note: The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

参数

remote_socket

Address to the socket to connect to.

errno

Will be set to the system level error number if connection fails.

errstr

Will be set to the system level error message if the connection fails.

timeout

Number of seconds until the connect() system call should timeout.

Note: This parameter only applies when not making asynchronous connection attempts.

Note: To set a timeout for reading/writing data over the socket, use the stream_set_timeout(), as the timeout only applies while making connecting the socket.

flags

Bitmask field which may be set to any combination of connection flags. Currently the select of connection flags is limited to STREAM_CLIENT_CONNECT (default), STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

context

A valid context resource created with stream_context_create().

返回值

On success a stream resource is returned which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()), FALSE on failure.

错误／异常

On failure the errno and errstr arguments will be populated with the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

范例

Example #1 stream_socket_client() example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>

Example #2 Using UDP connection

Retrieving the day and time from the UDP service "daytime" (port 13) on localhost.

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

注释

Warning

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Note: 当指定数字的 IPv6 地址（例如 fe80::1）时必须将 IP 地址放在方括号内。例如 tcp://[fe80::1]:80。

Note: Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See 所支持的套接字传输器（Socket Transports）列表 for a list of built in transports.

参见

  • stream_socket_server() - Create an Internet or Unix domain server socket
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • fgets() - 从文件指针中读取一行
  • fgetss() - 从文件指针中读取一行并过滤掉 HTML 标记
  • fwrite() - 写入文件（可安全用于二进制文件）
  • fclose() - 关闭一个已打开的文件指针
  • feof() - 测试文件指针是否到了文件结束的位置
  • cURL 函数

stream_socket_accept
stream_socket_enable_crypto
Stream 函数


Turns encryption on/off on an already connected socket

stream_socket_client
stream_socket_get_name
Stream 函数
PHP 手册

stream_socket_enable_crypto

(PHP 5 >= 5.1.0)

stream_socket_enable_crypto — Turns encryption on/off on an already connected socket

说明

mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

Enable or disable encryption on the stream.

Once the crypto settings are established, cryptography can be turned on and off dynamically by passing TRUE or FALSE in the enable parameter.

参数

stream

The stream resource.

enable

Enable/disable cryptography on the stream.

crypto_type

Setup encryption on the stream. Valid methods are

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER

session_stream

Seed the stream with settings from session_stream .

返回值

Returns TRUE on success, FALSE if negotiation has failed or 0 if there isn't enough data and you should try again (only for non-blocking sockets).

范例

Example #1 stream_socket_enable_crypto() example

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
    die("Unable to connect: $errstr ($errno)");
}

/* Turn on encryption for login phase */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");

/* Turn off encryption for the rest */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
    echo $motd;
}

fclose($fp);
?>

上例的输出类似于：

参见

  • OpenSSL 函数
    •

  • 所支持的套接字传输器（Socket Transports）列表
    •

stream_socket_client

stream_socket_get_name

Stream 函数


Retrieve the name of the local or remote sockets

stream_socket_enable_crypto
stream_socket_pair
Stream 函数
PHP 手册

stream_socket_get_name

(PHP 5)

stream_socket_get_name — Retrieve the name of the local or remote sockets

说明

string stream_socket_get_name ( resource $handle , bool $want_peer )

Returns the local or remote name of a given socket connection.

参数

handle

The socket to get the name of.

want_peer

If set to TRUE the remote socket name will be returned, if set to FALSE the local socket name will be returned.

返回值

The name of the socket.

参见

  • stream_socket_accept() - Accept a connection on a socket created by stream_socket_server

stream_socket_enable_crypto
stream_socket_pair
Stream 函数


Creates a pair of connected, indistinguishable socket streams

stream_socket_get_name
stream_socket_recvfrom
Stream 函数
PHP 手册

stream_socket_pair

(PHP 5 >= 5.1.0)

stream_socket_pair — Creates a pair of connected, indistinguishable socket streams

说明

array stream_socket_pair ( int $domain , int $type , int $protocol )

stream_socket_pair() creates a pair of connected, indistinguishable socket streams. This function is commonly used in IPC (Inter-Process Communication).

参数

domain

The protocol family to be used: STREAM_PF_INET, STREAM_PF_INET6 or STREAM_PF_UNIX

type

The type of communication to be used: STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET or STREAM_SOCK_STREAM

protocol

The protocol to be used: STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP or STREAM_IPPROTO_UDP

Note: Please consult the Streams constant list for further details on each constant.

返回值

Returns an array with the two socket resources on success, or FALSE on failure.

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

范例

Example #1 A stream_socket_pair() example

This example shows the basic usage of stream_socket_pair() in Inter-Process Comunication.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
     die('could not fork');

} else if ($pid) {
     /* parent */
    fclose($sockets[0]);

    fwrite($sockets[1], "child PID: $pid\n");
    echo fgets($sockets[1]);

    fclose($sockets[1]);

} else {
    /* child */
    fclose($sockets[1]);

    fwrite($sockets[0], "message from child\n");
    echo fgets($sockets[0]);

    fclose($sockets[0]);
}

?>

上例的输出类似于：

child PID: 1378
message from child

stream_socket_get_name
stream_socket_recvfrom
Stream 函数


Receives data from a socket, connected or not

stream_socket_pair
stream_socket_sendto
Stream 函数
PHP 手册

stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom — Receives data from a socket, connected or not

Description

string stream_socket_recvfrom ( resource $socket , int $length [, int $flags=0 [, string &$address ]] )

stream_socket_recvfrom() accepts data from a remote socket up to length bytes. If address is provided it will be populated with the address of the remote socket.

The value of flags can be any combination of the following:

Possible values for flags
STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

Example #1 stream_socket_recvfrom() example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't comsume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

Note: If a message received is longer than the length parameter, excess bytes may be discarded depending on the type of socket the message is received from (such as UDP).

Note: Calls to stream_socket_recvfrom() on socket-based streams, after calls to buffer-based stream functions (like fread() or stream_get_line()) read data directly from the socket and bypass the stream buffer.

See also
stream_socket_sendto(),
stream_socket_client(), and
stream_socket_server().

stream_socket_pair
stream_socket_sendto
Stream 函数


Sends a message to a socket, whether it is connected or not

stream_socket_recvfrom
stream_socket_server
Stream 函数
PHP 手册

stream_socket_sendto

(PHP 5)

stream_socket_sendto — Sends a message to a socket, whether it is connected or not

Description

int stream_socket_sendto ( resource $socket , string $data [, int $flags=0 [, string $address ]] )

The function stream_socket_sendto() sends the data specified by data through the socket specified by socket . The address specified when the socket stream was created will be used unless an alternate address is specified in address .

The value of flags can be any combination of the following:

possible values for flags
STREAM_OOB Process OOB (out-of-band) data.

Example #1 stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

See also
stream_socket_recvfrom(),
stream_socket_client(), and
stream_socket_server().

stream_socket_recvfrom
stream_socket_server
Stream 函数


Create an Internet or Unix domain server socket

stream_socket_sendto
stream_socket_shutdown
Stream 函数
PHP 手册

stream_socket_server

(PHP 5)

stream_socket_server — Create an Internet or Unix domain server socket

Description

resource stream_socket_server ( string $local_socket [, int &$errno [, string &$errstr [, int $flags=STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context ]]]] )

Creates a stream or datagram socket on the specified local_socket . The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. flags is a bitmask field which may be set to any combination of socket creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

Note: For UDP sockets, you must use STREAM_SERVER_BIND as the flags parameter.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See 所支持的套接字传输器（Socket Transports）列表 for a list of bulitin transports.

Example #1 Using TCP server sockets

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Note: Most systems require root access to create a server socket on a port below 1024.

Example #2 Using UDP server sockets

<?php
$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    die("$errstr ($errno)");
}

do {
    $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
    echo "$peer\n";
    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

?>

Note: 当指定数字的 IPv6 地址（例如 fe80::1）时必须将 IP 地址放在方括号内。例如 tcp://[fe80::1]:80。

See also stream_socket_client(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

stream_socket_sendto
stream_socket_shutdown
Stream 函数


Shutdown a full-duplex connection

stream_socket_server
stream_supports_lock
Stream 函数
PHP 手册

stream_socket_shutdown

(PHP 5 >= 5.2.1)

stream_socket_shutdown — Shutdown a full-duplex connection

说明

bool stream_socket_shutdown ( resource $stream , int $how )

Shutdowns (partially or not) a full-duplex connection.

参数

stream

An open stream (opened with stream_socket_client(), for example)

how

One of the following constants: STREAM_SHUT_RD (disable further receptions), STREAM_SHUT_WR (disable further transmissions) or STREAM_SHUT_RDWR (disable further receptions and transmissions).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A stream_socket_shutdown() example

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "hello"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "hello")); // doesn't work now

?>

上例的输出类似于：

int(5)

Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

参见

  • fclose() - 关闭一个已打开的文件指针

stream_socket_server
stream_supports_lock
Stream 函数


Tells wether the stream supports locking.

stream_socket_shutdown
stream_register_wrapper
Stream 函数
PHP 手册

stream_supports_lock

(PHP 5 >= 5.3.0)

stream_supports_lock — Tells wether the stream supports locking.

说明

resource stream_supports_locking ( resource $stream )

Tells wether the stream supports locking through flock().

参数

stream

The stream to check.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • flock() - 轻便的咨询文件锁定

stream_socket_shutdown
stream_register_wrapper
Stream 函数


注册一个用 PHP 类实现的 URL 封装协议

stream_supports_lock
stream_wrapper_restore
Stream 函数
PHP 手册

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5)

stream_register_wrapper — 注册一个用 PHP 类实现的 URL 封装协议

说明

boolean stream_register_wrapper ( string $protocol , string $classname )

stream_register_wrapper() 允许用户实现自定义的协议处理器和流，用于所有其它的文件系统函数中（例如 fopen()，fread() 等）。

要实现一个封装协议，需要按照如下定义声明一个包含有一些函数的类。当有人对你的流使用 fopen 时，PHP 将创建一个 classname 的实例并调用该实例的方法。必须严格按照如下的描述实现方法 - 否则将导致不明确的行为。

如果 protocol 已经有了处理协议，则 stream_register_wrapper() 将返回 FALSE。

boolean stream_open ( string $path , string $mode , int $options , string $opened_path )

当你的流对象被创建之后立即会调用此方法。path 指定了传入 fopen() 以及此对象需要取回的 URL。可以用 parse_url() 来将此 URL 分割成几部分。

mode 用来打开文件的模式，和 fopen() 中的一样。你有责任检查 mode 对于所请求的 path 是否合法。

options 保存了通过流 API 设定的附加标志。可以保存以下一个值或者用 OR 合并的多个值。

标志 | 说明
STREAM_USE_PATH | 如果 path 是相对路径，则用 include_path 搜索资源。
STREAM_REPORT_ERRORS | 如果设定了本标志，你有责任在打开流时用 trigger_error() 来唤起错误。如果没有设定这个标志，那么你不需要唤起任何错误。

如果成功打开了 path ，并且在 options 中设定了 STREAM_USE_PATH，你需要将 opened_path 设定为实际被打开的文件／资源的完整路径。

如果成功打开了所请求的资源，应该返回 TRUE，否则返回 FALSE。

void stream_close ( void $ )

本方法在流关闭时被调用，使用 fclose()。必须释放被流锁定或分配的任何资源。

string stream_read ( int $count )

当对流进行 fread() 和 fgets() 操作时本方法被调用。必须从当前读写位置以字符串返回最多 count 字节的数据。如果可用数据少于 count 字节，则返回尽可能多的数据。如果没有可供返回的数据，返回 FALSE 或者空字符串。必须用成功读取的字节数去更新流的读写位置。

int stream_write ( string $data )

当对流进行 fwrite() 操作时本方法被调用。必须将 data 储存到你的流使用的底层存储空间去。如果没有足够的空间了，则试着保存尽可能多的字节。应该返回成功被保存入流的字节数，或者没有保存时返回 0。必须用成功写入的字节数去更新流的读写位置。

boolean stream_eof ( void $ )

当对流进行 feof() 操作时本方法被调用。如果读写位置到了流的尽头或者没有更多数据可读时返回 TRUE，否则返回 FALSE。

int stream_tell ( void $ )

当对流进行 ftell() 操作时本方法被调用。应该返回流的当前读写位置。

boolean stream_seek ( int $offset , int $whence )

当对流进行 fseek() 操作时本方法被调用。应该根据 offset 和 whence 来更新流的读写位置。这些参数的更多信息见 fseek()。如果位置成功更新了则返回 TRUE，否则返回 FALSE。

boolean stream_flush ( void $ )

当对流进行 fflush() 操作时本方法被调用。如果你在流中缓存了数据还没有写入底层存储空间时，那现在应该做了。如果缓存数据被成功保存（或没有数据可供保存）时返回 TRUE，当数据无法被保存时返回 FALSE。

下面的例子实现了一个 var:// 协议处理器，可以允许使用标准的文件系统流函数来对指定的全局变量进行读写操作，例如 fread()。var:// 协议的实现如下，给出 url "var://foo" 将可以读写 $GLOBALS["foo"]。

Example #1 读写全局变量的流

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }
}

stream_register_wrapper("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while(!feof($fp)) {
    echo fgets($fp)
}
fclose($fp);
var_dump($myvar);

stream_supports_lock
stream_wrapper_restore
Stream 函数


Restores a previously unregistered built-in wrapper

stream_register_wrapper
stream_wrapper_unregister
Stream 函数
PHP 手册

stream_wrapper_restore

(PHP 5 >= 5.1.0)

stream_wrapper_restore — Restores a previously unregistered built-in wrapper

说明

bool stream_wrapper_restore ( string $protocol )

Restores a built-in wrapper previously unregistered with stream_wrapper_unregister().

参数

protocol

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

stream_register_wrapper
stream_wrapper_unregister
Stream 函数


Unregister a URL wrapper

stream_wrapper_restore
Tidy
Stream 函数
PHP 手册

stream_wrapper_unregister

(PHP 5 >= 5.1.0)

stream_wrapper_unregister — Unregister a URL wrapper

说明

bool stream_wrapper_unregister ( string $protocol )

Allows you to disable an already defined stream wrapper. Once the wrapper has been disabled you may override it with a user-defined wrapper using stream_wrapper_register() or reenable it later on with stream_wrapper_restore().

参数

protocol

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

stream_wrapper_restore
Tidy
Stream 函数


Tidy

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • 范例
  • Tidy 函数
    • ob_tidyhandler — ob_start callback function to repair the buffer
    • tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document
    • tidy_clean_repair — Execute configured cleanup and repair operations on parsed markup
    • tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document
    • tidy::__construct — Constructs a new tidy object
    • tidy_diagnose — Run configured diagnostics on parsed and repaired markup
    • tidy_error_count — Returns the Number of Tidy errors encountered for specified document
    • tidy_get_body — Returns a tidyNode Object starting from the tag of the tidy parse tree
    • tidy_get_config — Get current Tidy configuration
    • tidy_get_error_buffer — Return warnings and errors which occurred parsing the specified document
    • tidy_get_head — Returns a tidyNode Object starting from the tag of the tidy parse tree
    • tidy_get_html_ver — Get the Detected HTML version for the specified document
    • tidy_get_html — Returns a tidyNode Object starting from the tag of the tidy parse tree
    • tidy_get_opt_doc — Returns the documentation for the given option name
    • tidy_get_output — Return a string representing the parsed tidy markup
    • tidy_get_release — Get release date (version) for Tidy library
    • tidy_get_root — Returns a tidyNode object representing the root of the tidy parse tree
    • tidy_get_status — Get status of specified document
    • tidy_getopt — Returns the value of the specified configuration option for the tidy document
    • tidy_is_xhtml — Indicates if the document is a XHTML document
    • tidy_is_xml — Indicates if the document is a generic (non HTML/XHTML) XML document
    • tidy_load_config — Load an ASCII Tidy configuration file with the specified encoding
    • tidy_node->get_attr — Return the attribute with the provided attribute id
    • tidy_node->get_nodes — Return an array of nodes under this node with the specified id
    • tidy_node->next — Returns the next sibling to this node
    • tidy_node->prev — Returns the previous sibling to this node
    • tidy_parse_file — Parse markup in file or URI
    • tidy_parse_string — Parse a document stored in a string
    • tidy_repair_file — Repair a file and return it as a string
    • tidy_repair_string — Repair a string using an optionally provided configuration file
    • tidy_reset_config — Restore Tidy configuration to default values
    • tidy_save_config — Save current settings to named file
    • tidy_set_encoding — Set the input/output character encoding for parsing markup
    • tidy_setopt — Updates the configuration settings for the specified tidy document
    • tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document
    • tidyNode->hasChildren — Returns true if this node has children
    • tidyNode->hasSiblings — Returns true if this node has siblings
    • tidyNode->isAsp — Returns true if this node is ASP
    • tidyNode->isComment — Returns true if this node represents a comment
    • tidyNode->isHtml — Returns true if this node is part of a HTML document
    • tidyNode->isJste — Returns true if this node is JSTE
    • tidyNode->isPhp — Returns true if this node is PHP
    • tidyNode->isText — Returns true if this node represents text (no markup)
    • tidyNode::getParent — returns the parent node of the current node
stream_wrapper_unregister
简介
其它基本扩展


简介

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML documents, but also traverse the document tree.

Tidy
安装/配置
Tidy


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Tidy


需求

To use Tidy, you will need libtidy installed, available on the tidy homepage » http://tidy.sourceforge.net/.

安装/配置
安装
安装/配置


安装

Tidy is currently available for PHP 4.3.x and PHP 5 as a PECL extension from » http://pecl.php.net/package/tidy.

Note: Tidy 1.0 is just for PHP 4.3.x, while Tidy 2.0 is just for PHP 5.

If » PEAR is available on your *nix-like system you can use the pear installer to install the tidy extension, by the following command: pecl install tidy.

You can always download the tar.gz package and install tidy by hand:

Example #1 tidy install by hand in PHP 4.3.x

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windows users can download the extension dll from » http://pecl4win.php.net/ext.php/php_tidy.dll.

In PHP 5 you need only to compile using the --with-tidy option.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Tidy Configuration Options
Name | Default | Changeable | Changelog
tidy.default_config | "" | PHP_INI_SYSTEM | Available since PHP 5.0.0.
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR in PHP 5. Available since PHP 5.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

tidy.default_config string

Default path for tidy config file.

tidy.clean_output boolean

Turns on/off the output repairing by Tidy.

Warning

Do not turn on tidy.clean_output if you are generating non-html content such as dynamic images.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Each TIDY_TAG_XXX represents a HTML tag. For example, TIDY_TAG_A represents a <a href="XX">link</a> tag. Each TIDY_ATTR_XXX represents a HTML atribute. For example TIDY_ATTR_HREF would represent the href atribute in the previous example.

The following constants are defined:

tidy tag constants
constant
TIDY_TAG_UNKNOWN
TIDY_TAG_A
TIDY_TAG_ABBR
TIDY_TAG_ACRONYM
TIDY_TAG_ALIGN
TIDY_TAG_APPLET
TIDY_TAG_AREA
TIDY_TAG_B
TIDY_TAG_BASE
TIDY_TAG_BASEFONT
TIDY_TAG_BDO
TIDY_TAG_BGSOUND
TIDY_TAG_BIG
TIDY_TAG_BLINK
TIDY_TAG_BLOCKQUOTE
TIDY_TAG_BODY
TIDY_TAG_BR
TIDY_TAG_BUTTON
TIDY_TAG_CAPTION
TIDY_TAG_CENTER
TIDY_TAG_CITE
TIDY_TAG_CODE
TIDY_TAG_COL
TIDY_TAG_COLGROUP
TIDY_TAG_COMMENT
TIDY_TAG_DD
TIDY_TAG_DEL
TIDY_TAG_DFN
TIDY_TAG_DIR
TIDY_TAG_DIV
TIDY_TAG_DL
TIDY_TAG_DT
TIDY_TAG_EM
TIDY_TAG_EMBED
TIDY_TAG_FIELDSET
TIDY_TAG_FONT
TIDY_TAG_FORM
TIDY_TAG_FRAME
TIDY_TAG_FRAMESET
TIDY_TAG_H1
TIDY_TAG_H2
TIDY_TAG_H3
TIDY_TAG_H4
TIDY_TAG_H5
TIDY_TAG_H6
TIDY_TAG_HEAD
TIDY_TAG_HR
TIDY_TAG_HTML
TIDY_TAG_I
TIDY_TAG_IFRAME
TIDY_TAG_ILAYER
TIDY_TAG_IMG
TIDY_TAG_INPUT
TIDY_TAG_INS
TIDY_TAG_ISINDEX
TIDY_TAG_KBD
TIDY_TAG_KEYGEN
TIDY_TAG_LABEL
TIDY_TAG_LAYER
TIDY_TAG_LEGEND
TIDY_TAG_LI
TIDY_TAG_LINK
TIDY_TAG_LISTING
TIDY_TAG_MAP
TIDY_TAG_MARQUEE
TIDY_TAG_MENU
TIDY_TAG_META
TIDY_TAG_MULTICOL
TIDY_TAG_NOBR
TIDY_TAG_NOEMBED
TIDY_TAG_NOFRAMES
TIDY_TAG_NOLAYER
TIDY_TAG_NOSAVE
TIDY_TAG_NOSCRIPT
TIDY_TAG_OBJECT
TIDY_TAG_OL
TIDY_TAG_OPTGROUP
TIDY_TAG_OPTION
TIDY_TAG_P
TIDY_TAG_PARAM
TIDY_TAG_PLAINTEXT
TIDY_TAG_PRE
TIDY_TAG_Q
TIDY_TAG_RP
TIDY_TAG_RT
TIDY_TAG_RTC
TIDY_TAG_RUBY
TIDY_TAG_S
TIDY_TAG_SAMP
TIDY_TAG_SCRIPT
TIDY_TAG_SELECT
TIDY_TAG_SERVER
TIDY_TAG_SERVLET
TIDY_TAG_SMALL
TIDY_TAG_SPACER
TIDY_TAG_SPAN
TIDY_TAG_STRIKE
TIDY_TAG_STRONG
TIDY_TAG_STYLE
TIDY_TAG_SUB
TIDY_TAG_TABLE
TIDY_TAG_TBODY
TIDY_TAG_TD
TIDY_TAG_TEXTAREA
TIDY_TAG_TFOOT
TIDY_TAG_TH
TIDY_TAG_THEAD
TIDY_TAG_TITLE
TIDY_TAG_TR
TIDY_TAG_TR
TIDY_TAG_TT
TIDY_TAG_U
TIDY_TAG_UL
TIDY_TAG_VAR
TIDY_TAG_WBR
TIDY_TAG_XMP

tidy attribute constants
constant
TIDY_ATTR_UNKNOWN
TIDY_ATTR_ABBR
TIDY_ATTR_ACCEPT
TIDY_ATTR_ACCEPT_CHARSET
TIDY_ATTR_ACCESSKEY
TIDY_ATTR_ACTION
TIDY_ATTR_ADD_DATE
TIDY_ATTR_ALIGN
TIDY_ATTR_ALINK
TIDY_ATTR_ALT
TIDY_ATTR_ARCHIVE
TIDY_ATTR_AXIS
TIDY_ATTR_BACKGROUND
TIDY_ATTR_BGCOLOR
TIDY_ATTR_BGPROPERTIES
TIDY_ATTR_BORDER
TIDY_ATTR_BORDERCOLOR
TIDY_ATTR_BOTTOMMARGIN
TIDY_ATTR_CELLPADDING
TIDY_ATTR_CELLSPACING
TIDY_ATTR_CHAR
TIDY_ATTR_CHAROFF
TIDY_ATTR_CHARSET
TIDY_ATTR_CHECKED
TIDY_ATTR_CITE
TIDY_ATTR_CLASS
TIDY_ATTR_CLASSID
TIDY_ATTR_CLEAR
TIDY_ATTR_CODE
TIDY_ATTR_CODEBASE
TIDY_ATTR_CODETYPE
TIDY_ATTR_COLOR
TIDY_ATTR_COLS
TIDY_ATTR_COLSPAN
TIDY_ATTR_COMPACT
TIDY_ATTR_CONTENT
TIDY_ATTR_COORDS
TIDY_ATTR_DATA
TIDY_ATTR_DATAFLD
TIDY_ATTR_DATAPAGESIZE
TIDY_ATTR_DATASRC
TIDY_ATTR_DATETIME
TIDY_ATTR_DECLARE
TIDY_ATTR_DEFER
TIDY_ATTR_DIR
TIDY_ATTR_DISABLED
TIDY_ATTR_ENCODING
TIDY_ATTR_ENCTYPE
TIDY_ATTR_FACE
TIDY_ATTR_FOR
TIDY_ATTR_FRAME
TIDY_ATTR_FRAMEBORDER
TIDY_ATTR_FRAMESPACING
TIDY_ATTR_GRIDX
TIDY_ATTR_GRIDY
TIDY_ATTR_HEADERS
TIDY_ATTR_HEIGHT
TIDY_ATTR_HREF
TIDY_ATTR_HREFLANG
TIDY_ATTR_HSPACE
TIDY_ATTR_HTTP_EQUIV
TIDY_ATTR_ID
TIDY_ATTR_ISMAP
TIDY_ATTR_LABEL
TIDY_ATTR_LANG
TIDY_ATTR_LANGUAGE
TIDY_ATTR_LAST_MODIFIED
TIDY_ATTR_LAST_VISIT
TIDY_ATTR_LEFTMARGIN
TIDY_ATTR_LINK
TIDY_ATTR_LONGDESC
TIDY_ATTR_LOWSRC
TIDY_ATTR_MARGINHEIGHT
TIDY_ATTR_MARGINWIDTH
TIDY_ATTR_MAXLENGTH
TIDY_ATTR_MEDIA
TIDY_ATTR_METHOD
TIDY_ATTR_MULTIPLE
TIDY_ATTR_NAME
TIDY_ATTR_NOHREF
TIDY_ATTR_NORESIZE
TIDY_ATTR_NOSHADE
TIDY_ATTR_NOWRAP
TIDY_ATTR_OBJECT
TIDY_ATTR_OnAFTERUPDATE
TIDY_ATTR_OnBEFOREUNLOAD
TIDY_ATTR_OnBEFOREUPDATE
TIDY_ATTR_OnBLUR
TIDY_ATTR_OnCHANGE
TIDY_ATTR_OnCLICK
TIDY_ATTR_OnDATAAVAILABLE
TIDY_ATTR_OnDATASETCHANGED
TIDY_ATTR_OnDATASETCOMPLETE
TIDY_ATTR_OnDBLCLICK
TIDY_ATTR_OnERRORUPDATE
TIDY_ATTR_OnFOCUS
TIDY_ATTR_OnKEYDOWN
TIDY_ATTR_OnKEYPRESS
TIDY_ATTR_OnKEYUP
TIDY_ATTR_OnLOAD
TIDY_ATTR_OnMOUSEDOWN
TIDY_ATTR_OnMOUSEMOVE
TIDY_ATTR_OnMOUSEOUT
TIDY_ATTR_OnMOUSEOVER
TIDY_ATTR_OnMOUSEUP
TIDY_ATTR_OnRESET
TIDY_ATTR_OnROWENTER
TIDY_ATTR_OnROWEXIT
TIDY_ATTR_OnSELECT
TIDY_ATTR_OnSUBMIT
TIDY_ATTR_OnUNLOAD
TIDY_ATTR_PROFILE
TIDY_ATTR_PROMPT
TIDY_ATTR_RBSPAN
TIDY_ATTR_READONLY
TIDY_ATTR_REL
TIDY_ATTR_REV
TIDY_ATTR_RIGHTMARGIN
TIDY_ATTR_ROWS
TIDY_ATTR_ROWSPAN
TIDY_ATTR_RULES
TIDY_ATTR_SCHEME
TIDY_ATTR_SCOPE
TIDY_ATTR_SCROLLING
TIDY_ATTR_SELECTED
TIDY_ATTR_SHAPE
TIDY_ATTR_SHOWGRID
TIDY_ATTR_SHOWGRIDX
TIDY_ATTR_SHOWGRIDY
TIDY_ATTR_SIZE
TIDY_ATTR_SPAN
TIDY_ATTR_SRC
TIDY_ATTR_STANDBY
TIDY_ATTR_START
TIDY_ATTR_STYLE
TIDY_ATTR_SUMMARY
TIDY_ATTR_TABINDEX
TIDY_ATTR_TARGET
TIDY_ATTR_TEXT
TIDY_ATTR_TITLE
TIDY_ATTR_TOPMARGIN
TIDY_ATTR_TYPE
TIDY_ATTR_USEMAP
TIDY_ATTR_VALIGN
TIDY_ATTR_VALUE
TIDY_ATTR_VALUETYPE
TIDY_ATTR_VERSION
TIDY_ATTR_VLINK
TIDY_ATTR_VSPACE
TIDY_ATTR_WIDTH
TIDY_ATTR_WRAP
TIDY_ATTR_XML_LANG
TIDY_ATTR_XML_SPACE
TIDY_ATTR_XMLNS

tidy nodetype constants
constant | description
TIDY_NODETYPE_ROOT | root node
TIDY_NODETYPE_DOCTYPE | doctype
TIDY_NODETYPE_COMMENT | HTML comment
TIDY_NODETYPE_PROCINS | Processing Instruction
TIDY_NODETYPE_TEXT | Text
TIDY_NODETYPE_START | start tag
TIDY_NODETYPE_END | end tag
TIDY_NODETYPE_STARTEND | empty tag
TIDY_NODETYPE_CDATA | CDATA
TIDY_NODETYPE_SECTION | XML section
TIDY_NODETYPE_ASP | ASP code
TIDY_NODETYPE_JSTE | JSTE code
TIDY_NODETYPE_PHP | PHP code
TIDY_NODETYPE_XMLDECL | XML declaration

资源类型
范例
Tidy


范例
Tidy
PHP 手册

范例

Table of Contents

  • 范例
预定义常量
范例
Tidy


范例
Tidy 函数
范例
PHP 手册

范例

This simple example shows basic Tidy usage.

Example #1 Basic Tidy usage

<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();

// Specify configuration
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>

范例
Tidy 函数
范例
PHP 手册


Tidy 函数

预定义类

tidyNode

方法

  • tidyNode::getParent - Returns the parent of the current node

  • tidyNode->hasChildren - Returns TRUE if the current node has children

  • tidyNode->hasSiblings - Returns TRUE if the current node has siblings

  • tidyNode->isAsp - Returns TRUE if the current node is ASP code

  • tidyNode->isComment - Returns TRUE if the current node is a comment

  • tidyNode->isHtml - Returns TRUE if the current node is HTML

  • tidyNode->isJste - Returns TRUE if the current node is JSTE

  • tidyNode->isPhp - Returns TRUE if the current node is PHP

  • tidyNode->isText - Returns TRUE if the current node is Text (no markup)

属性

  • value - the value of the node (e.g. the html text)

  • name - the name of the tag (e.g. html, a, etc..)

  • type - the type of the node (one of the constants above, e.g. TIDY_NODETYPE_PHP)

  • line* - the line where the node starts

  • column* - the column where the node starts

  • proprietary* - TRUE if the node refers to a proprietary tag

  • id - the ID of the tag (one of the constants above, e.g. TIDY_TAG_FRAME)

  • attribute - an array with the attributes of the current node, or NULL if there aren't any

  • child - an array with the child tidyNodes, or NULL if there aren't any

Note: The properties marked with * are just available since PHP 5.1.0.

Table of Contents

  • ob_tidyhandler — ob_start callback function to repair the buffer
  • tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_clean_repair — Execute configured cleanup and repair operations on parsed markup
  • tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document
  • tidy::__construct — Constructs a new tidy object
  • tidy_diagnose — Run configured diagnostics on parsed and repaired markup
  • tidy_error_count — Returns the Number of Tidy errors encountered for specified document
  • tidy_get_body — Returns a tidyNode Object starting from the tag of the tidy parse tree
  • tidy_get_config — Get current Tidy configuration
  • tidy_get_error_buffer — Return warnings and errors which occurred parsing the specified document
  • tidy_get_head — Returns a tidyNode Object starting from the tag of the tidy parse tree
  • tidy_get_html_ver — Get the Detected HTML version for the specified document
  • tidy_get_html — Returns a tidyNode Object starting from the tag of the tidy parse tree
  • tidy_get_opt_doc — Returns the documentation for the given option name
  • tidy_get_output — Return a string representing the parsed tidy markup
  • tidy_get_release — Get release date (version) for Tidy library
  • tidy_get_root — Returns a tidyNode object representing the root of the tidy parse tree
  • tidy_get_status — Get status of specified document
  • tidy_getopt — Returns the value of the specified configuration option for the tidy document
  • tidy_is_xhtml — Indicates if the document is a XHTML document
  • tidy_is_xml — Indicates if the document is a generic (non HTML/XHTML) XML document
  • tidy_load_config — Load an ASCII Tidy configuration file with the specified encoding
  • tidy_node->get_attr — Return the attribute with the provided attribute id
  • tidy_node->get_nodes — Return an array of nodes under this node with the specified id
  • tidy_node->next — Returns the next sibling to this node
  • tidy_node->prev — Returns the previous sibling to this node
  • tidy_parse_file — Parse markup in file or URI
  • tidy_parse_string — Parse a document stored in a string
  • tidy_repair_file — Repair a file and return it as a string
  • tidy_repair_string — Repair a string using an optionally provided configuration file
  • tidy_reset_config — Restore Tidy configuration to default values
  • tidy_save_config — Save current settings to named file
  • tidy_set_encoding — Set the input/output character encoding for parsing markup
  • tidy_setopt — Updates the configuration settings for the specified tidy document
  • tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document
  • tidyNode->hasChildren — Returns true if this node has children
  • tidyNode->hasSiblings — Returns true if this node has siblings
  • tidyNode->isAsp — Returns true if this node is ASP
  • tidyNode->isComment — Returns true if this node represents a comment
  • tidyNode->isHtml — Returns true if this node is part of a HTML document
  • tidyNode->isJste — Returns true if this node is JSTE
  • tidyNode->isPhp — Returns true if this node is PHP
  • tidyNode->isText — Returns true if this node represents text (no markup)
  • tidyNode::getParent — returns the parent node of the current node
范例
ob_tidyhandler
Tidy


ob_start callback function to repair the buffer

Tidy 函数
tidy_access_count
Tidy 函数
PHP 手册

ob_tidyhandler

(PHP 5)

ob_tidyhandler — ob_start callback function to repair the buffer

说明

string ob_tidyhandler ( string $input [, int $mode ] )

ob_tidyhandler() is intended to be used as a callback function for ob_start() to repair the buffer.

参数

input

The buffer.

mode

The buffer mode.

返回值

Returns the modified buffer.

范例

Example #1 ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

上例将输出：

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

参见

  • ob_start() - Turn on output buffering

Tidy 函数
tidy_access_count
Tidy 函数


Returns the Number of Tidy accessibility warnings encountered for specified document

ob_tidyhandler
tidy_clean_repair
Tidy 函数
PHP 手册

tidy_access_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document

说明

int tidy_access_count ( tidy $object )

tidy_access_count() returns the number of accessibility warnings found for the specified document.

参数

object

The Tidy object.

返回值

Returns the number of warnings.

范例

Example #1 tidy_access_count() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

// select the accessibility check level: 1, 2 or 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->CleanRepair();

/* Never forget to call this! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

注释

Note: Due to the design of the TidyLib, you must call tidy_diagnose() before tidy_access_count() or it will return always 0. You must also need to enable the accessibility-check option.

参见

  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document

ob_tidyhandler
tidy_clean_repair
Tidy 函数


Execute configured cleanup and repair operations on parsed markup

tidy_access_count
tidy_config_count
Tidy 函数
PHP 手册

tidy_clean_repair

(PHP 5, PECL tidy >= 0.5.2)

tidy_clean_repair — Execute configured cleanup and repair operations on parsed markup

Description

Procedural style:

bool tidy_clean_repair ( tidy $object )

Object oriented style:

bool tidy->cleanRepair ( void )

This function cleans and repairs the given tidy object .

Example #1 tidy_clean_repair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
tidy_clean_repair($tidy);

echo $tidy;
?>

上例将输出：

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also tidy_repair_file() and tidy_repair_string().

tidy_access_count
tidy_config_count
Tidy 函数


Returns the Number of Tidy configuration errors encountered for specified document

tidy_clean_repair
tidy::__construct
Tidy 函数
PHP 手册

tidy_config_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document

Description

int tidy_config_count ( tidy $object )

tidy_config_count() returns the number of errors encountered in the configuration of the specified tidy object .

Example #1 tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* This outputs 1, because 'bogus' isn't a valid doctype */
echo tidy_config_count($tidy);
?>

tidy_clean_repair
tidy::__construct
Tidy 函数


Constructs a new tidy object

tidy_config_count
tidy_diagnose
Tidy 函数
PHP 手册

tidy::__construct

(No version information available, might be only in CVS)

tidy::__construct — Constructs a new tidy object

Description

tidy tidy::__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )

tidy::__construct() constructs a new tidy object.

If the filename parameter is given, this function will also read that file and initialize the object with the file, acting like tidy_parse_file().

config 参数可以以数组或者字符串方式传递。如果以字符串传递，则代表配置文件名，否则就解释为选项本身。每个选项的解释见 » http://tidy.sourceforge.net/docs/quickref.html。

encoding 参数设置了输入／输出文档的编码方式。encoding 的可能值有：ascii，latin0，latin1，raw，utf8，iso2022，mac，win1252，ibm858，utf16，utf16le，utf16be，big5 和 shiftjis。

Example #1 tidy::__construct() example

<?php

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy;
$tidy->parseString($html);

$tidy->CleanRepair();

if ($tidy->errorBuffer) {
    echo "The following errors were detected:\n";
    echo $tidy->errorBuffer;
}

?>

上例将输出：

The following errors were detected:
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

See also tidy_parse_file() and tidy_parse_string().

tidy_config_count
tidy_diagnose
Tidy 函数


Run configured diagnostics on parsed and repaired markup

tidy::__construct
tidy_error_count
Tidy 函数
PHP 手册

tidy_diagnose

(PHP 5, PECL tidy >= 0.5.2)

tidy_diagnose — Run configured diagnostics on parsed and repaired markup

Description

Procedural style:

bool tidy_diagnose ( tidy $object )

Object oriented style:

bool tidy->diagnose ( void )

tidy_diagnose() runs diagnostic tests on the given tidy object , adding some more information about the document in the error buffer.

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 tidy_diagnose() example

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->CleanRepair();

// note the difference between the two outputs
echo tidy_get_error_buffer($tidy) . "\n";

$tidy->diagnose();
echo tidy_get_error_buffer($tidy);

?>

上例将输出：

line 5 column 1 - Warning: <p> isn't allowed in <head> elements
line 5 column 1 - Warning: inserting missing 'title' element

line 5 column 1 - Warning: <p> isn't allowed in <head> elements
line 5 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

See also tidy_get_error_buffer().

tidy::__construct
tidy_error_count
Tidy 函数


Returns the Number of Tidy errors encountered for specified document

tidy_diagnose
tidy_get_body
Tidy 函数
PHP 手册

tidy_error_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_error_count — Returns the Number of Tidy errors encountered for specified document

Description

int tidy_error_count ( tidy $object )

tidy_error_count() returns the number of Tidy errors encountered for the specified document.

Example #1 tidy_error_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->errorBuffer;
?>

上例将输出：

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count() and tidy_warning_count().

tidy_diagnose
tidy_get_body
Tidy 函数


Returns a tidyNode Object starting from the

tidy_error_count
tidy_get_config
Tidy 函数
PHP 手册

tidy_get_body

(PHP 5, PECL tidy 0.5.2-1.0)

tidy_get_body — Returns a tidyNode Object starting from the <body> tag of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_body ( tidy $object )

Object oriented style:

tidyNode tidy->body ( void )

This function returns a tidyNode object starting from the <body> tag of the tidy parse tree.

Example #1 tidy_get_body() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = tidy_get_body($tidy);
echo $body->value;
?>

上例将输出：

<body>
<p>paragraph</p>
</body>

Note: 本函数仅能用于 Zend Engine 2，这意味着 PHP >= 5.0.0。

See also tidy_get_head() and tidy_get_html().

tidy_error_count
tidy_get_config
Tidy 函数


Get current Tidy configuration

tidy_get_body
tidy_get_error_buffer
Tidy 函数
PHP 手册

tidy_get_config

(PHP 5, PECL tidy >= 0.7.0)

tidy_get_config — Get current Tidy configuration

Description

Procedural style:

array tidy_get_config ( tidy $object )

Object oriented style:

array tidy->getConfig ( void )

tidy_get_config() returns an array with the configuration options in use by the given tidy object .

For an explanation about each option, visit » http://tidy.sourceforge.net/docs/quickref.html.

Example #1 tidy_get_config() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r(tidy_get_config($tidy));
?>

上例将输出：

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

See also tidy_reset_config() and tidy_save_config().

tidy_get_body
tidy_get_error_buffer
Tidy 函数


Return warnings and errors which occurred parsing the specified document

tidy_get_config
tidy_get_head
Tidy 函数
PHP 手册

tidy_get_error_buffer

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_error_buffer — Return warnings and errors which occurred parsing the specified document

Description

Procedural style:

string tidy_get_error_buffer ( tidy $object )

Object oriented style (property):

tidy
string $errorBuffer;

tidy_get_error_buffer() returns warnings and errors which occurred parsing the specified document.

Example #1 tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* or in OO: */
echo $tidy->errorBuffer;
?>

上例将输出：

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count(),
tidy_error_count() and
tidy_warning_count().

tidy_get_config
tidy_get_head
Tidy 函数


Returns a tidyNode Object starting from the

tidy_get_error_buffer
tidy_get_html_ver
Tidy 函数
PHP 手册

tidy_get_head

(PHP 5, PECL tidy 0.5.2-1.0.0)

tidy_get_head — Returns a tidyNode Object starting from the <head> tag of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_head ( tidy $object )

Object oriented style:

tidyNode tidy->head ( void )

This function returns a tidyNode object starting from the <head> tag of the tidy parse tree.

Example #1 tidy_get_head() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = tidy_get_head($tidy);
echo $head->value;
?>

上例将输出：

<head>
<title>test</title>
</head>

Note: 本函数仅能用于 Zend Engine 2，这意味着 PHP >= 5.0.0。

See also tidy_get_body() and tidy_get_html().

tidy_get_error_buffer
tidy_get_html_ver
Tidy 函数


Get the Detected HTML version for the specified document

tidy_get_head
tidy_get_html
Tidy 函数
PHP 手册

tidy_get_html_ver

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_html_ver — Get the Detected HTML version for the specified document

Description

Procedural style:

int tidy_get_html_ver ( tidy $object )

Object oriented style:

int tidy->getHtmlVer ( void )

tidy_get_html_ver() returns the detected HTML version for the specified tidy object .

Warning

This function is not yet implemented in the Tidylib itself, so it always return 0.

tidy_get_head
tidy_get_html
Tidy 函数


Returns a tidyNode Object starting from the

tidy_get_html_ver
tidy_get_opt_doc
Tidy 函数
PHP 手册

tidy_get_html

(PHP 5, PECL tidy 0.5.2-1.0.0)

tidy_get_html — Returns a tidyNode Object starting from the <html> tag of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_html ( tidy $object )

Object oriented style:

tidyNode tidy->html ( void )

This function returns a tidyNode object starting from the <html> tag of the tidy parse tree.

Example #1 tidy_get_html() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = tidy_get_html($tidy);
echo $html->value;
?>

上例将输出：

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Note: 本函数仅能用于 Zend Engine 2，这意味着 PHP >= 5.0.0。

See also tidy_get_body() and tidy_get_head().

tidy_get_html_ver
tidy_get_opt_doc
Tidy 函数


Returns the documentation for the given option name

tidy_get_html
tidy_get_output
Tidy 函数
PHP 手册

tidy_get_opt_doc

(PHP 5 >= 5.1.0)

tidy_get_opt_doc — Returns the documentation for the given option name

说明

Procedural style:

string tidy_get_opt_doc ( tidy $object , string $optname )

Object oriented style:

string tidy->getOptDoc ( string $optname )

tidy_get_opt_doc() returns the documentation for the given option name.

Note: You need at least libtidy from 25 April, 2005 for this function be available.

参数

object

A tidy object

optname

The option name

返回值

Returns a string if the option exists and has documentation available, or FALSE otherwise.

范例

Example #1 Print all options along with their documentation and default value

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'no documentation available!';

    $val = ($tidy->getOpt($opt) === true)  ? 'true'  : $val;
    $val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

    echo "<p><b>$opt</b> (default: '$val')<br />".
         "$doc</p><hr />\n";
}

?>

参见

  • tidy_get_config() - Get current Tidy configuration
  • tidy_getopt() - Returns the value of the specified configuration option for the tidy document

tidy_get_html
tidy_get_output
Tidy 函数


Return a string representing the parsed tidy markup

tidy_get_opt_doc
tidy_get_release
Tidy 函数
PHP 手册

tidy_get_output

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_output — Return a string representing the parsed tidy markup

说明

string tidy_get_output ( tidy $object )

Gets a string with the repaired html.

参数

object

The tidy object.

返回值

Returns the parsed tidy markup.

范例

Example #1 tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->CleanRepair();

echo tidy_get_output($tidy);
?>

上例将输出：

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

tidy_get_opt_doc
tidy_get_release
Tidy 函数


Get release date (version) for Tidy library

tidy_get_output
tidy_get_root
Tidy 函数
PHP 手册

tidy_get_release

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_release — Get release date (version) for Tidy library

说明

Procedural style:

string tidy_get_release ( void )

Object oriented style:

string tidy->getRelease ( void )

Gets the release date of the Tidy library.

返回值

Returns a string with the release date of the Tidy library.

tidy_get_output
tidy_get_root
Tidy 函数


Returns a tidyNode object representing the root of the tidy parse tree

tidy_get_release
tidy_get_status
Tidy 函数
PHP 手册

tidy_get_root

(PHP 5, PECL tidy 0.5.2-1.0.0)

tidy_get_root — Returns a tidyNode object representing the root of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_root ( tidy $object )

Object oriented style:

tidyNode tidy->root ( void )

Returns a tidyNode object representing the root of the tidy parse tree.

Example #1 dump nodes

<?php

$html = <<< HTML
<html><body>

<p>paragraph</p>
<br/>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
dump_nodes($tidy->root(), 1);

function dump_nodes($node, $indent) {

    if($node->hasChildren()) {
        foreach($node->child as $child) {
            echo str_repeat('.', $indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

            dump_nodes($child, $indent+1);
        }
    }
}
?>

上例将输出：

..html
....head
......title
....body
......p
........"paragraph"
......br

Note: 本函数仅能用于 Zend Engine 2，这意味着 PHP >= 5.0.0。

tidy_get_release
tidy_get_status
Tidy 函数


Get status of specified document

tidy_get_root
tidy_getopt
Tidy 函数
PHP 手册

tidy_get_status

(PHP 5, PECL tidy >= 0.5.2)

tidy_get_status — Get status of specified document

Description

Procedural style:

int tidy_get_status ( tidy $object )

Object oriented style:

int tidy->getStatus ( void )

tidy_get_status() returns the status for the specified tidy object . It returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Example #1 tidy_get_status() example

<?php
$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$html2 = '<bogus>test</bogus>';
$tidy2 = tidy_parse_string($html2);

echo tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>

tidy_get_root
tidy_getopt
Tidy 函数


Returns the value of the specified configuration option for the tidy document

tidy_get_status
tidy_is_xhtml
Tidy 函数
PHP 手册

tidy_getopt

(PHP 5, PECL tidy >= 0.5.2)

tidy_getopt — Returns the value of the specified configuration option for the tidy document

Description

Procedural style:

mixed tidy_getopt ( tidy $object , string $option )

Object oriented style:

mixed tidy->getOpt ( string $option )

tidy_getopt() returns the value of the specified option for the specified tidy object . The return type depends on the type of the specified option . You will find a list with each configuration option and their types at: » http://tidy.sourceforge.net/docs/quickref.html.

Example #1 tidy_getopt() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

$config = array('accessibility-check' => 3,
                'alt-text' => 'some text');

$tidy = new tidy();
$tidy->parseString($html, $config);

var_dump($tidy->getOpt('accessibility-check')); //integer
var_dump($tidy->getOpt('lower-literals')); //boolean
var_dump($tidy->getOpt('alt-text')); //string

?>

上例将输出：

int(3)
bool(true)
string(9) "some text"

tidy_get_status
tidy_is_xhtml
Tidy 函数


Indicates if the document is a XHTML document

tidy_getopt
tidy_is_xml
Tidy 函数
PHP 手册

tidy_is_xhtml

(PHP 5, PECL tidy >= 0.5.2)

tidy_is_xhtml — Indicates if the document is a XHTML document

Description

Procedural style:

bool tidy_is_xhtml ( tidy $object )

Object oriented style:

bool tidy->isXhtml ( void )

This function returns TRUE if the specified tidy object is a XHTML document, or FALSE otherwise.

Warning

This function is not yet implemented in the Tidylib itself, so it always return FALSE.

tidy_getopt
tidy_is_xml
Tidy 函数


Indicates if the document is a generic (non HTML/XHTML) XML document

tidy_is_xhtml
tidy_load_config
Tidy 函数
PHP 手册

tidy_is_xml

(PHP 5, PECL tidy >= 0.5.2)

tidy_is_xml — Indicates if the document is a generic (non HTML/XHTML) XML document

Description

Procedural style:

bool tidy_is_xml ( tidy $object )

Object oriented style:

bool tidy->isXml ( void )

This function returns TRUE if the specified tidy object is a generic XML document (non HTML/XHTML), or FALSE otherwise.

Warning

This function is not yet implemented in the Tidylib itself, so it always return FALSE.

tidy_is_xhtml
tidy_load_config
Tidy 函数


Load an ASCII Tidy configuration file with the specified encoding

tidy_is_xml
tidy_node->get_attr
Tidy 函数
PHP 手册

tidy_load_config

(PECL tidy >= 0.5.2)

tidy_load_config — Load an ASCII Tidy configuration file with the specified encoding

说明

void tidy_load_config ( string $filename , string $encoding )

This function loads a Tidy configuration file, with the specified encoding .

参数

filename

encoding

返回值

无返回值。

注释

Note: 本函数只在 Tidy 1.0 中存在。在 Tidy 2.0 中，该函数已过时并被移除。

tidy_is_xml
tidy_node->get_attr
Tidy 函数


Return the attribute with the provided attribute id

tidy_load_config
tidy_node->get_nodes
Tidy 函数
PHP 手册

tidy_node->get_attr

(No version information available, might be only in CVS)

tidy_node->get_attr — Return the attribute with the provided attribute id

说明

tidy_attr tidy_node->get_attr ( int $attrib_id )
Warning

本函数暂无文档，仅有参数列表。

tidy_load_config
tidy_node->get_nodes
Tidy 函数


Return an array of nodes under this node with the specified id

tidy_node->get_attr
tidy_node->next
Tidy 函数
PHP 手册

tidy_node->get_nodes

(No version information available, might be only in CVS)

tidy_node->get_nodes — Return an array of nodes under this node with the specified id

说明

array tidy_node->get_nodes ( int $node_id )
Warning

本函数暂无文档，仅有参数列表。

tidy_node->get_attr
tidy_node->next
Tidy 函数


Returns the next sibling to this node

tidy_node->get_nodes
tidy_node->prev
Tidy 函数
PHP 手册

tidy_node->next

(No version information available, might be only in CVS)

tidy_node->next — Returns the next sibling to this node

说明

tidy_node tidy_node->next ( void )
Warning

本函数暂无文档，仅有参数列表。

tidy_node->get_nodes
tidy_node->prev
Tidy 函数


Returns the previous sibling to this node

tidy_node->next
tidy_parse_file
Tidy 函数
PHP 手册

tidy_node->prev

(No version information available, might be only in CVS)

tidy_node->prev — Returns the previous sibling to this node

说明

tidy_node tidy_node->prev ( void )
Warning

本函数暂无文档，仅有参数列表。

tidy_node->next
tidy_parse_file
Tidy 函数


Parse markup in file or URI

tidy_node->prev
tidy_parse_string
Tidy 函数
PHP 手册

tidy_parse_file

(PHP 5, PECL tidy >= 0.5.2)

tidy_parse_file — Parse markup in file or URI

Description

Procedural style:

tidy tidy_parse_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path=false ]]] )

Object oriented style:

bool tidy->parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path=false ]]] )

This function parses the given file.

config 参数可以以数组或者字符串方式传递。如果以字符串传递，则代表配置文件名，否则就解释为选项本身。每个选项的解释见 » http://tidy.sourceforge.net/docs/quickref.html。

encoding 参数设置了输入／输出文档的编码方式。encoding 的可能值有：ascii，latin0，latin1，raw，utf8，iso2022，mac，win1252，ibm858，utf16，utf16le，utf16be，big5 和 shiftjis。

Example #1 tidy_parse_file() example

<?php
$tidy = tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty($tidy->errorBuffer)) {
    echo "The following errors or warnings occured:\n";
    echo $tidy->errorBuffer;
}
?>

Note: 可选参数 config 和 encoding 是在 Tidy 2.0 中新加的。

See also tidy_parse_string(),
tidy_repair_file() and
tidy_repair_string().

tidy_node->prev
tidy_parse_string
Tidy 函数


Parse a document stored in a string

tidy_parse_file
tidy_repair_file
Tidy 函数
PHP 手册

tidy_parse_string

(PHP 5, PECL tidy >= 0.5.2)

tidy_parse_string — Parse a document stored in a string

Description

Procedural style:

tidy tidy_parse_string ( string $input [, mixed $config [, string $encoding ]] )

Object oriented style:

bool tidy->parseString ( string $input [, mixed $config [, string $encoding ]] )

tidy_parse_string() parses a document stored in a string.

config 参数可以以数组或者字符串方式传递。如果以字符串传递，则代表配置文件名，否则就解释为选项本身。每个选项的解释见 » http://tidy.sourceforge.net/docs/quickref.html。

encoding 参数设置了输入／输出文档的编码方式。encoding 的可能值有：ascii，latin0，latin1，raw，utf8，iso2022，mac，win1252，ibm858，utf16，utf16le，utf16be，big5 和 shiftjis。

Example #1 tidy_parse_string() example

<?php
ob_start();
?>

<html>
  <head>
   <title>test</title>
  </head>
  <body>
   <p>error<br>another line</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

上例将输出：

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      test
    </title>
  </head>
  <body>
    <p>
      error<br />
      another line
    </p>
  </body>
</html>

Note: 可选参数 config 和 encoding 是在 Tidy 2.0 中新加的。

See also tidy_parse_file(),
tidy_repair_file() and
tidy_repair_string().

tidy_parse_file
tidy_repair_file
Tidy 函数


Repair a file and return it as a string

tidy_parse_string
tidy_repair_string
Tidy 函数
PHP 手册

tidy_repair_file

(PHP 5, PECL tidy >= 0.7.0)

tidy_repair_file — Repair a file and return it as a string

Description

string tidy_repair_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path=false ]]] )

This function repairs the given file and returns it as a string.

config 参数可以以数组或者字符串方式传递。如果以字符串传递，则代表配置文件名，否则就解释为选项本身。每个选项的解释见 » http://tidy.sourceforge.net/docs/quickref.html。

encoding 参数设置了输入／输出文档的编码方式。encoding 的可能值有：ascii，latin0，latin1，raw，utf8，iso2022，mac，win1252，ibm858，utf16，utf16le，utf16be，big5 和 shiftjis。

Example #1 tidy_repair_file() example

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Note: 可选参数 config 和 encoding 是在 Tidy 2.0 中新加的。

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_string().

tidy_parse_string
tidy_repair_string
Tidy 函数


Repair a string using an optionally provided configuration file

tidy_repair_file
tidy_reset_config
Tidy 函数
PHP 手册

tidy_repair_string

(PHP 5, PECL tidy >= 0.7.0)

tidy_repair_string — Repair a string using an optionally provided configuration file

Description

string tidy_repair_string ( string $data [, mixed $config [, string $encoding ]] )

This function repairs the given string.

config 参数可以以数组或者字符串方式传递。如果以字符串传递，则代表配置文件名，否则就解释为选项本身。每个选项的解释见 » http://tidy.sourceforge.net/docs/quickref.html。

encoding 参数设置了输入／输出文档的编码方式。encoding 的可能值有：ascii，latin0，latin1，raw，utf8，iso2022，mac，win1252，ibm858，utf16，utf16le，utf16be，big5 和 shiftjis。

Example #1 tidy_repair_string() example

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);

echo $tidy;
?>

上例将输出：

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Note: 可选参数 config 和 encoding 是在 Tidy 2.0 中新加的。

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_file().

tidy_repair_file
tidy_reset_config
Tidy 函数


Restore Tidy configuration to default values

tidy_repair_string
tidy_save_config
Tidy 函数
PHP 手册

tidy_reset_config

(PECL tidy >= 0.7.0)

tidy_reset_config — Restore Tidy configuration to default values

说明

bool tidy_reset_config ( void )

This function restores the Tidy configuration to the default values.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数只在 Tidy 1.0 中存在。在 Tidy 2.0 中，该函数已过时并被移除。

tidy_repair_string
tidy_save_config
Tidy 函数


Save current settings to named file

tidy_reset_config
tidy_set_encoding
Tidy 函数
PHP 手册

tidy_save_config

(PECL tidy >= 0.5.2)

tidy_save_config — Save current settings to named file

说明

bool tidy_save_config ( string $filename )

Saves current settings to the specified file. Only non-default values are written.

参数

filename

Path to the config file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数只在 Tidy 1.0 中存在。在 Tidy 2.0 中，该函数已过时并被移除。

参见

  • tidy_get_config() - Get current Tidy configuration
  • tidy_getopt() - Returns the value of the specified configuration option for the tidy document
  • tidy_reset_config() - Restore Tidy configuration to default values
  • tidy_setopt() - Updates the configuration settings for the specified tidy document

tidy_reset_config
tidy_set_encoding
Tidy 函数


Set the input/output character encoding for parsing markup

tidy_save_config
tidy_setopt
Tidy 函数
PHP 手册

tidy_set_encoding

(PECL tidy >= 0.5.2)

tidy_set_encoding — Set the input/output character encoding for parsing markup

说明

bool tidy_set_encoding ( string $encoding )

Sets the encoding for input/output documents.

参数

encoding

Possible values for encoding are ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 and shiftjis.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数只在 Tidy 1.0 中存在。在 Tidy 2.0 中，该函数已过时并被移除。

tidy_save_config
tidy_setopt
Tidy 函数


Updates the configuration settings for the specified tidy document

tidy_set_encoding
tidy_warning_count
Tidy 函数
PHP 手册

tidy_setopt

(PECL tidy >= 0.5.2)

tidy_setopt — Updates the configuration settings for the specified tidy document

Description

bool tidy_setopt ( string $option , mixed $value )

tidy_setopt() updates the specified option with a new value . You will find a list with each configuration option at: » http://tidy.sourceforge.net/docs/quickref.html.

Example #1 tidy_setopt() example

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

See also tidy_getopt(),
tidy_get_config(),
tidy_reset_config() and
tidy_save_config().

Note: 本函数只在 Tidy 1.0 中存在。在 Tidy 2.0 中，该函数已过时并被移除。

tidy_set_encoding
tidy_warning_count
Tidy 函数


Returns the Number of Tidy warnings encountered for specified document

tidy_setopt
tidyNode->hasChildren
Tidy 函数
PHP 手册

tidy_warning_count

(PHP 5, PECL tidy >= 0.5.2)

tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document

说明

int tidy_warning_count ( tidy $object )

tidy_warning_count() returns the number of Tidy warnings encountered for the specified document.

参数

object

The Tidy object.

返回值

Returns the number of warnings.

范例

Example #1 tidy_warning_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

参见

  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document

tidy_setopt
tidyNode->hasChildren
Tidy 函数


Returns true if this node has children

tidy_warning_count
tidyNode->hasSiblings
Tidy 函数
PHP 手册

tidyNode->hasChildren

(No version information available, might be only in CVS)

tidyNode->hasChildren — Returns true if this node has children

Description

bool tidyNode->hasChildren ( void )
Warning

本函数暂无文档，仅有参数列表。

Note: This function was named tidy_node->has_children() in PHP 4/Tidy 1.

tidy_warning_count
tidyNode->hasSiblings
Tidy 函数


Returns true if this node has siblings

tidyNode->hasChildren
tidyNode->isAsp
Tidy 函数
PHP 手册

tidyNode->hasSiblings

(No version information available, might be only in CVS)

tidyNode->hasSiblings — Returns true if this node has siblings

Description

bool tidyNode->hasSiblings ( void )
Warning

本函数暂无文档，仅有参数列表。

Note: This function was named tidy_node->has_siblings() in PHP 4/Tidy 1.

tidyNode->hasChildren
tidyNode->isAsp
Tidy 函数


Returns true if this node is ASP

tidyNode->hasSiblings
tidyNode->isComment
Tidy 函数
PHP 手册

tidyNode->isAsp

(No version information available, might be only in CVS)

tidyNode->isAsp — Returns true if this node is ASP

Description

bool tidyNode->isAsp ( void )

This functions returns TRUE if the current node is ASP, or FALSE otherwise.

Note: This function was named tidy_node->is_asp() in PHP 4/Tidy 1.

tidyNode->hasSiblings
tidyNode->isComment
Tidy 函数


Returns true if this node represents a comment

tidyNode->isAsp
tidyNode->isHtml
Tidy 函数
PHP 手册

tidyNode->isComment

(No version information available, might be only in CVS)

tidyNode->isComment — Returns true if this node represents a comment

Description

bool tidyNode->isComment ( void )
Warning

本函数暂无文档，仅有参数列表。

Note: This function was named tidy_node->is_comment() in PHP 4/Tidy 1.

tidyNode->isAsp
tidyNode->isHtml
Tidy 函数


Returns true if this node is part of a HTML document

tidyNode->isComment
tidyNode->isJste
Tidy 函数
PHP 手册

tidyNode->isHtml

(No version information available, might be only in CVS)

tidyNode->isHtml — Returns true if this node is part of a HTML document

Description

bool tidyNode->isHtml ( void )
Warning

本函数暂无文档，仅有参数列表。

Note: This function was named tidy_node->is_html() in PHP 4/Tidy 1.

tidyNode->isComment
tidyNode->isJste
Tidy 函数


Returns true if this node is JSTE

tidyNode->isHtml
tidyNode->isPhp
Tidy 函数
PHP 手册

tidyNode->isJste

(No version information available, might be only in CVS)

tidyNode->isJste — Returns true if this node is JSTE

Description

bool tidyNode->isJste ( void )
Warning

本函数暂无文档，仅有参数列表。

Note: This function was named tidy_node->is_jste() in PHP 4/Tidy 1.

tidyNode->isHtml
tidyNode->isPhp
Tidy 函数


Returns true if this node is PHP

tidyNode->isJste
tidyNode->isText
Tidy 函数
PHP 手册

tidyNode->isPhp

(No version information available, might be only in CVS)

tidyNode->isPhp — Returns true if this node is PHP

Description

bool tidyNode->isPhp ( void )

Returns TRUE if the current node is PHP code, FALSE otherwise.

Example #1 get the PHP code from a mixed HTML/PHP document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
</head>
<body>

<?php
echo 'hello world!';
?>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_php($tidy->html());

function get_php($node) {

    // check if the current node is PHP code
    if($node->isPhp()) {
        echo "\n\n# PHP node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_php($child);
        }
    }
}

?>

上例将输出：

# PHP node #1
<?php echo '<title>title</title>'; ?>

# PHP node #2
<?php
echo 'hello world!';
?>

Note: This function was named tidy_node->is_php() in PHP 4/Tidy 1.

tidyNode->isJste
tidyNode->isText
Tidy 函数


Returns true if this node represents text (no markup)

tidyNode->isPhp
tidyNode::getParent
Tidy 函数
PHP 手册

tidyNode->isText

(No version information available, might be only in CVS)

tidyNode->isText — Returns true if this node represents text (no markup)

Description

bool tidyNode->isText ( void )
Warning

本函数暂无文档，仅有参数列表。

Note: This function was named tidy_node->is_text() in PHP 4/Tidy 1.

tidyNode->isPhp
tidyNode::getParent
Tidy 函数


returns the parent node of the current node

tidyNode->isText
Tokenizer
Tidy 函数
PHP 手册

tidyNode::getParent

(PHP 5 >= 5.2.2)

tidyNode::getParent — returns the parent node of the current node

说明

tidyNode tidyNode::getParent ( void )

Returns the parent node of the current node.

返回值

Returns a tidyNode if the node has a parent, or NULL otherwise.

tidyNode->isText
Tokenizer
Tidy 函数


Tokenizer

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Tokenizer 函数
    • token_get_all — Split given source into PHP tokens
    • token_name — Get the symbolic name of a given PHP token
tidyNode::getParent
简介
其它基本扩展


简介

The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level.

See also the appendix about tokens.

Tokenizer
安装/配置
Tokenizer


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Tokenizer


安装

Beginning with PHP 4.3.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-tokenizer. You can disable tokenizer support with --disable-tokenizer.

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

Note: Built-in support for tokenizer is available as of PHP 4.3.0.

需求
运行时配置
安装/配置


预定义常量

When the extension has either been compiled into PHP or dynamically loaded at runtime, the tokens listed in 解析器代号列表 are defined as constants.

资源类型
范例
Tokenizer


范例

Here is a simple example PHP scripts using the tokenizer that will read in a PHP file, strip all comments from the source and print the pure code only.

Example #1 Strip comments with the tokenizer

<?php
/*
* T_ML_COMMENT does not exist in PHP 5.
* The following three lines define it in order to
* preserve backwards compatibility.
*
* The next two lines define the PHP 5 only T_DOC_COMMENT,
* which we will mask as T_ML_COMMENT for PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
   define('T_ML_COMMENT', T_COMMENT);
} else {
   define('T_DOC_COMMENT', T_ML_COMMENT);
}

$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
   if (is_string($token)) {
       // simple 1-character token
       echo $token;
   } else {
       // token array
       list($id, $text) = $token;

       switch ($id) {
           case T_COMMENT:
           case T_ML_COMMENT: // we've defined this
           case T_DOC_COMMENT: // and this
               // no action on comments
               break;

           default:
               // anything else -> output "as is"
               echo $text;
               break;
       }
   }
}
?>
预定义常量
Tokenizer 函数
Tokenizer


Tokenizer 函数

Table of Contents

  • token_get_all — Split given source into PHP tokens
  • token_name — Get the symbolic name of a given PHP token
范例
token_get_all
Tokenizer


Split given source into PHP tokens

Tokenizer 函数
token_name
Tokenizer 函数
PHP 手册

token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_all — Split given source into PHP tokens

说明

array token_get_all ( string $source )

token_get_all() parses the given source string into PHP language tokens using the Zend engine's lexical scanner.

For a list of parser tokens, see 解析器代号列表, or use token_name() to translate a token value into its string representation.

参数

source

The PHP source to parse.

返回值

An array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a three element array containing the token index in element 0, the string content of the original token in element 1 and the line number in element 2.

范例

Example #1 token_get_all() examples

<?php
$tokens = token_get_all('<?php echo; ?>'); /* => array(
                                                  array(T_OPEN_TAG, '<?php'),
                                                  array(T_ECHO, 'echo'),
                                                  ';',
                                                  array(T_CLOSE_TAG, '?>') ); */

/* Note in the following example that the string is parsed as T_INLINE_HTML
   rather than the otherwise expected T_COMMENT (T_ML_COMMENT in PHP <5).
   This is because no open/close tags were used in the "code" provided.
   This would be equivalent to putting a comment outside of <?php ?> tags in a normal file. */
$tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

更新日志

版本 | 说明
5.2.2 | Line numbers are returned in element 2

Tokenizer 函数
token_name
Tokenizer 函数


Get the symbolic name of a given PHP token

token_get_all
URLs
Tokenizer 函数
PHP 手册

token_name

(PHP 4 >= 4.2.0, PHP 5)

token_name — Get the symbolic name of a given PHP token

说明

string token_name ( int $token )

token_name() gets the symbolic name for a PHP token value.

参数

token

The token value.

返回值

The symbolic name of the given token . The returned name returned matches the name of the matching token constant.

范例

Example #1 token_name() example

<?php
// 260 is the token value for the T_REQUIRE token
echo token_name(260);        // -> "T_REQUIRE"

// a token constant maps to its own name
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

参见

  • List of Parser Tokens

token_get_all
URLs
Tokenizer 函数


URLs

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • URL 函数
    • base64_decode — 对使用 MIME base64 编码的数据进行解码
    • base64_encode — 使用 MIME base64 对数据进行编码
    • get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头
    • get_meta_tags — 从一个文件中提取所有的 meta 标签 content 属性，返回一个数组
    • http_build_query — 生成 URL-encode 之后的请求字符串
    • parse_url — 解析 URL，返回其组成部分
    • rawurldecode — 对已编码的 URL 字符串进行解码
    • rawurlencode — 按照 RFC 1738 对 URL 进行编码
    • urldecode — 解码已编码的 URL 字符串
    • urlencode — 编码 URL 字符串
token_name
简介
其它基本扩展


简介

Dealing with URL strings: encoding, decoding and parsing.

URLs
安装/配置
URLs


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
URLs


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The following constants are meant to be used with parse_url() and are available since PHP 5.1.2.

PHP_URL_SCHEME (integer)
PHP_URL_HOST (integer)
PHP_URL_PORT (integer)
PHP_URL_USER (integer)
PHP_URL_PASS (integer)
PHP_URL_PATH (integer)
PHP_URL_QUERY (integer)
PHP_URL_FRAGMENT (integer)
资源类型
URL 函数
URLs


URL 函数

Table of Contents

  • base64_decode — 对使用 MIME base64 编码的数据进行解码
  • base64_encode — 使用 MIME base64 对数据进行编码
  • get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头
  • get_meta_tags — 从一个文件中提取所有的 meta 标签 content 属性，返回一个数组
  • http_build_query — 生成 URL-encode 之后的请求字符串
  • parse_url — 解析 URL，返回其组成部分
  • rawurldecode — 对已编码的 URL 字符串进行解码
  • rawurlencode — 按照 RFC 1738 对 URL 进行编码
  • urldecode — 解码已编码的 URL 字符串
  • urlencode — 编码 URL 字符串
预定义常量
base64_decode
URLs


对使用 MIME base64 编码的数据进行解码

URL 函数
base64_encode
URL 函数
PHP 手册

base64_decode

(PHP 4, PHP 5)

base64_decode — 对使用 MIME base64 编码的数据进行解码

说明

string base64_decode ( string $encoded_data )

base64_decode() 对 encoded_data 进行解码，返回原始数据，失败则返回 FALSE。返回的数据可能是二进制的。

Example #1 base64_decode() 示例

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

此示例将显示：

This is an encoded string

参见 base64_encode() 和 » RFC 2045 的 6.8 章节。

URL 函数
base64_encode
URL 函数


使用 MIME base64 对数据进行编码

base64_decode
get_headers
URL 函数
PHP 手册

base64_encode

(PHP 4, PHP 5)

base64_encode — 使用 MIME base64 对数据进行编码

说明

string base64_encode ( string $data )

base64_encode() returns 使用 base64 对 data 进行编码。设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输，例如电子邮件的主体。

Base64-encoded 数据要比原始数据多占用 33% 左右的空间。

Example #1 base64_encode() 示例

<?php
  $str = 'This is an encoded string';
  echo base64_encode($str);
?>

此示例将显示：

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

参见 base64_decode()、chunk_split()，convert_uuencode() 和 » RFC 2045 6.8 章节。

base64_decode
get_headers
URL 函数


取得服务器响应一个 HTTP 请求所发送的所有标头

base64_encode
get_meta_tags
URL 函数
PHP 手册

get_headers

(PHP 5)

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头

说明

array get_headers ( string $url [, int $format ] )

get_headers() 返回一个数组，包含有服务器响应一个 HTTP 请求所发送的标头。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息。

如果将可选的 format 参数设为 1，则 get_headers() 会解析相应的信息并设定数组的键名。

Note: 自 PHP 5.1.3 起本函数使用默认的流上下文，其可以用 stream_context_get_default() 函数设定和修改。

Example #1 get_headers() 例子

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

上例的输出类似于：

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

base64_encode
get_meta_tags
URL 函数


从一个文件中提取所有的 meta 标签 content 属性，返回一个数组

get_headers
http_build_query
URL 函数
PHP 手册

get_meta_tags

(PHP 4, PHP 5)

get_meta_tags — 从一个文件中提取所有的 meta 标签 content 属性，返回一个数组

描述

array get_meta_tags ( string $filename [, bool $use_include_path ] )

打开 filename 逐行解析文件中的 <meta> 标签。此参数可以是本地文件也可以是一个 URL。解析工作将在 </head> 处停止。

将 use_include_path 设置为 TRUE 将使 PHP 尝试按照 include_path 标准包含路径中的每个指向去打开文件。这只用于本地文件，不适用于 URL。

Example #1 get_meta_tags() 解析些什么

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- 解析工作在此处停止 -->

（注意回车换行 － PHP 使用一个本地函数来解析输入，所以 Mac 上的文件将不能在 Unix 上正常工作）。

返回的关联数组以属性 name 的值作为键，属性 content 的值作为值，所以你可以很容易地使用标准数组函数遍历此关联数组或访问某个值。属性 name 中的特殊字符将使用‘_’替换，而其它字符则转换成小写。如果有两个 meta 标签拥有相同的 name，则只返回最后出现的那一个。

Example #2 get_meta_tags() 的返回值

<?php
// 假设上边的标签是在 www.example.com 中
$tags = get_meta_tags('http://www.example.com/');

// 注意所有的键（key）均为小写，而键中的‘.’则转换成了‘_’。
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Note: 从 PHP 4.0.5 开始，get_meta_tags() 支持没有使用引号括起来的 HTML 属性。

参见 htmlentities() 和 urlencode()。

get_headers
http_build_query
URL 函数


生成 URL-encode 之后的请求字符串

get_meta_tags
parse_url
URL 函数
PHP 手册

http_build_query

(PHP 5)

http_build_query — 生成 URL-encode 之后的请求字符串

说明

string http_build_query ( array $formdata [, string $numeric_prefix ] )

使用给出的关联（或下标）数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构，也可以是由数组组成的数组（其依次可以包含其它数组）。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数，此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。

Note: 用 arg_separator.output 来分隔参数。

Example #1 http_build_query() 使用示例

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>

Example #2 http_build_query() 使用数字下标的元素

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);
/* 输出：
      0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
 */

echo http_build_query($data, 'myvar_');
/* 输出：
      myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
 */
?>

Example #3 http_build_query() 使用复杂的数组

<?php
$data = array('user'=>array('name'=>'Bob Smith',
                            'age'=>47,
                            'sex'=>'M',
                            'dob'=>'5/12/1956'),
              'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
              'children'=>array('bobby'=>array('age'=>12,
                                               'sex'=>'M'),
                                'sally'=>array('age'=>8,
                                               'sex'=>'F')),
              'CEO');

echo http_build_query($data, 'flags_');
?>

本例将输出（为可读性进行了折行）：

      user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
      pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
      children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
      children[sally][sex]=F&flags_0=CEO

Note: 只有基础数组中的数字下标元素“CEO”才获取了前缀，其它数字下标元素（如 pastimes 下的元素）则不需要为了合法的变量名而加上前缀。

Example #4 http_build_query() 使用对象

<?php
class myClass {
  var $foo;
  var $baz;

  function myClass()
  {
    $this->foo = 'bar';
    $this->baz = 'boom';
  }
}

$data = new myClass();

echo http_build_query($data); // foo=bar&baz=boom
?>

参见 parse_str()，parse_url()，urlencode() 和 array_walk()。

get_meta_tags
parse_url
URL 函数


解析 URL，返回其组成部分

http_build_query
rawurldecode
URL 函数
PHP 手册

parse_url

(PHP 4, PHP 5)

parse_url — 解析 URL，返回其组成部分

说明

array parse_url ( string $url )

本函数解析一个 URL 并返回一个关联数组，包含在 URL 中出现的各种组成部分。

本函数不是用来验证给定 URL 的合法性的，只是将其分解为下面列出的部分。不完整的 URL 也被接受，parse_url() 会尝试尽量正确地将其解析。

参数

url

要解析的 URL

返回值

对严重不合格的 URL，parse_url() 可能会返回 FALSE 并发出 E_WARNING。否则会返回一个关联数组，其组成部分为（至少有一个）：

  • scheme - 如 http
  • host
  • port
  • user
  • pass
  • path
  • query - 在问号 ? 之后
  • fragment - 在散列符号 # 之后

范例

Example #1 parse_url() 例子

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));
?>

上例将输出：

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

注释

Note: 本函数不能用于相对 URL。

Note: parse_url() 是专门用来解析 URL 而不是 URI 的。不过为遵从 PHP 向后兼容的需要有个例外，对 file:// 协议允许三个斜线（file:///...）。其它任何协议都不能这样。

参见

  • pathinfo() - 返回文件路径的信息
  • parse_str() - Parses the string into variables
  • dirname() - 返回路径中的目录部分
  • basename() - 返回路径中的文件名部分

http_build_query
rawurldecode
URL 函数


对已编码的 URL 字符串进行解码

parse_url
rawurlencode
URL 函数
PHP 手册

rawurldecode

(PHP 4, PHP 5)

rawurldecode — 对已编码的 URL 字符串进行解码

说明

string rawurldecode ( string $str )

返回字符串，此字符串中百分号（%）后跟两位十六进制数的序列都将被替换成原义字符。

Example #1 rawurldecode() 示例

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Note: rawurldecode() 不会把加号（'+'）解码为空格，而 urldecode() 可以。

参见 rawurlencode()，urldecode() 和 urlencode()。

parse_url
rawurlencode
URL 函数


按照 RFC 1738 对 URL 进行编码

rawurldecode
urldecode
URL 函数
PHP 手册

rawurlencode

(PHP 4, PHP 5)

rawurlencode — 按照 RFC 1738 对 URL 进行编码

说明

string rawurlencode ( string $str )

返回字符串，此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号（%）后跟两位十六进制数。这是在 RFC 1738 中描述的编码，是为了保护原义字符以免其被解释为特殊的 URL 定界符，同时保护 URL 格式以免其被传输媒体（像一些邮件系统）使用字符转换时弄乱。例如，如果你想在 FTP 的 URL 中包含密码：

Example #1 rawurlencode() 示例 1

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

或者，如果你想通过 URL 的 PATH_INFO 构成部分去传递信息：

Example #2 rawurlencode() 示例 2

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

参见 rawurldecode()、urldecode()、urlencode() 与 » RFC 1738。

rawurldecode
urldecode
URL 函数


解码已编码的 URL 字符串

rawurlencode
urlencode
URL 函数
PHP 手册

urldecode

(PHP 4, PHP 5)

urldecode — 解码已编码的 URL 字符串

说明

string urldecode ( string $str )

解码给出的已编码字符串中的任何 %##。返回解码后的字符串。

Example #1 urldecode() 例子

<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
    $b = split('=', $a[$i]);
    echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
         ' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
    $i++;
}
?>

参见 urlencode()，rawurlencode() 和 rawurldecode()。

rawurlencode
urlencode
URL 函数


编码 URL 字符串

urldecode
其它服务
URL 函数
PHP 手册

urlencode

(PHP 4, PHP 5)

urlencode — 编码 URL 字符串

说明

string urlencode ( string $str )

返回字符串，此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号（%）后跟两位十六进制数，空格则编码为加号（+）。此编码与 WWW 表单 POST 数据的编码方式是一样的，同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因，此编码在将空格编码为加号（+）方面与 RFC1738 编码（参见 rawurlencode()）不同。此函数便于将字符串编码并将其用于 URL 的请求部分，同时它还便于将变量传递给下一页：

Example #1 urlencode() 例子

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

注意：小心与 HTML 实体相匹配的变量。像 &amp、&copy 和 &pound 都将被浏览器解析，并使用实际实体替代所期待的变量名。这是明显的混乱，W3C 已经告诫人们好几年了。参考地址：» http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2。PHP 通过 arg_separator.ini 指令，支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 &amp; 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &，而仅使用 htmlentities() 或 htmlspecialchars() 对你的 URL 进行编码。

Example #2 urlencode() 与 htmlentities() 例子

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

参见 urldecode()，htmlentities()，rawurldecode() 和 rawurlencode()。

urldecode
其它服务
URL 函数


其它服务

  • cURL — Client URL Library
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • cURL 函数
  • FAM — File Alteration Monitor
    • 简介
    • 安装/配置
    • 预定义常量
    • FAM 函数
  • FTP
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • FTP 函数
  • Hyperwave
    • 简介
    • 安装/配置
    • 预定义常量
    • Integration with Apache
    • Hyperwave 函数
  • Hyperwave API
    • 简介
    • 安装/配置
    • 预定义常量
    • Hyperwave API 函数
  • HTTP
    • 简介
    • 安装/配置
    • 预定义常量
    • Request Options — Options usable with the HttpRequest class and request functions
    • The HttpDeflateStream class
    • The HttpInflateStream class
    • The HttpMessage class
    • The HttpQueryString class
    • The HttpRequest
    • The HttpRequestPool class
    • The HttpResponse
    • HTTP 函数
  • Java — PHP / Java Integration
    • 简介
    • 安装/配置
    • 预定义常量
    • Java Servlet SAPI
    • 范例
    • Java 函数
  • LDAP — Lightweight Directory Access Protocol
    • 简介
    • 安装/配置
    • 预定义常量
    • Using the PHP LDAP calls
    • 范例
    • LDAP 函数
  • Lotus Notes
    • 简介
    • 安装/配置
    • 预定义常量
    • Lotus Notes 函数
  • Memcache
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Memcache 函数
  • Memcached
    • 简介
    • 安装/配置
    • 预定义常量
    • Expiration Times
    • Callbacks
    • Sessions support
    • Memcached — The Memcached class
  • mqseries
    • 简介
    • 安装/配置
    • 预定义常量
    • mqseries 函数
  • Gopher — Net Gopher
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Gopher 函数
  • Network
    • 简介
    • 安装/配置
    • 预定义常量
    • Network 函数
  • SAM — Simple Asynchronous Messaging
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • SAM 函数
  • SNMP
    • 简介
    • 安装/配置
    • 预定义常量
    • SNMP 函数
  • Sockets
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Socket Errors
    • Socket 函数
  • SSH2 — Secure Shell2
    • 简介
    • 安装/配置
    • 预定义常量
    • SSH2 函数
  • SVN — Subversion
    • 简介
    • 安装/配置
    • 预定义常量
    • SVN 函数
  • TCP — TCP Wrappers
    • 简介
    • 安装/配置
    • 预定义常量
    • TCP 函数
  • YAZ
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • YAZ 函数
  • YP/NIS
    • 简介
    • 安装/配置
    • 预定义常量
    • YP/NIS 函数
urlencode
cURL
函数参考


Client URL Library

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Using PHP's cURL module to fetch the example.com homepage
  • cURL 函数
    • curl_close — Close a cURL session
    • curl_copy_handle — Copy a cURL handle along with all of its preferences
    • curl_errno — Return the last error number
    • curl_error — Return a string containing the last error for the current session
    • curl_exec — Perform a cURL session
    • curl_getinfo — Get information regarding a specific transfer
    • curl_init — Initialize a cURL session
    • curl_multi_add_handle — Add a normal cURL handle to a cURL multi handle
    • curl_multi_close — Close a set of cURL handles
    • curl_multi_exec — Run the sub-connections of the current cURL handle
    • curl_multi_getcontent — Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
    • curl_multi_info_read — Get information about the current transfers
    • curl_multi_init — Returns a new cURL multi handle
    • curl_multi_remove_handle — Remove a multi handle from a set of cURL handles
    • curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
    • curl_setopt_array — Set multiple options for a cURL transfer
    • curl_setopt — Set an option for a cURL transfer
    • curl_version — Gets cURL version information
其它服务
简介
其它服务


简介

PHP supports libcurl, a library created by Daniel Stenberg, that allows you to connect and communicate to many different types of servers with many different types of protocols. libcurl currently supports the http, https, ftp, gopher, telnet, dict, file, and ldap protocols. libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading (this can also be done with PHP's ftp extension), HTTP form based upload, proxies, cookies, and user+password authentication.

These functions have been added in PHP 4.0.2.

cURL
安装/配置
cURL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
cURL


需求

In order to use PHP's cURL functions you need to install the » libcurl package. PHP requires that you use libcurl 7.0.2-beta or higher. In PHP 4.2.3, you will need libcurl version 7.9.0 or higher. From PHP 4.3.0, you will need a libcurl version that's 7.9.8 or higher. PHP 5.0.0 requires a libcurl version 7.10.5 or greater.

安装/配置
安装
安装/配置


安装

To use PHP's cURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories. In the "include" directory there should be a folder named "curl" which should contain the easy.h and curl.h files. There should be a file named libcurl.a located in the "lib" directory. Beginning with PHP 4.3.0 you can configure PHP to use cURL for URL streams --with-curlwrappers.

Note: Note to Win32 Users
In order to enable this module on a Windows environment, libeay32.dll and ssleay32.dll must be present in your PATH. You don't need libcurl.dll from the cURL site.

需求
运行时配置
安装/配置


资源类型

This extension defines two resource types: a cURL handle and a cURL multi handle.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Descriptions and uses for these constants are described within the curl_setopt() and curl_getinfo() documentation.

CURLOPT_AUTOREFERER (integer)
Available since PHP 5.1.0
CURLOPT_COOKIESESSION (integer)
Available since PHP 5.1.0
CURLOPT_DNS_USE_GLOBAL_CACHE (integer)
CURLOPT_DNS_CACHE_TIMEOUT (integer)
CURLOPT_FTP_SSL (integer)
Available since PHP 5.2.0
CURLFTPSSL_TRY (integer)
Available since PHP 5.2.0
CURLFTPSSL_ALL (integer)
Available since PHP 5.2.0
CURLFTPSSL_CONTROL (integer)
Available since PHP 5.2.0
CURLFTPSSL_NONE (integer)
Available since PHP 5.2.0
CURLOPT_PRIVATE (integer)
Available since PHP 5.2.4
CURLOPT_FTPSSLAUTH (integer)
Available since PHP 5.1.0
CURLOPT_PORT (integer)
CURLOPT_FILE (integer)
CURLOPT_INFILE (integer)
CURLOPT_INFILESIZE (integer)
CURLOPT_URL (integer)
CURLOPT_PROXY (integer)
CURLOPT_VERBOSE (integer)
CURLOPT_HEADER (integer)
CURLOPT_HTTPHEADER (integer)
CURLOPT_NOPROGRESS (integer)
CURLOPT_NOBODY (integer)
CURLOPT_FAILONERROR (integer)
CURLOPT_UPLOAD (integer)
CURLOPT_POST (integer)
CURLOPT_FTPLISTONLY (integer)
CURLOPT_FTPAPPEND (integer)
CURLOPT_FTP_CREATE_MISSING_DIRS (integer)
CURLOPT_NETRC (integer)
CURLOPT_FOLLOWLOCATION (integer)
This constant is not available when open_basedir or safe_mode are enabled.
CURLOPT_FTPASCII (integer)
CURLOPT_PUT (integer)
CURLOPT_MUTE (integer)
CURLOPT_USERPWD (integer)
CURLOPT_PROXYUSERPWD (integer)
CURLOPT_RANGE (integer)
CURLOPT_TIMEOUT (integer)
CURLOPT_TIMEOUT_MS (integer)
CURLOPT_TCP_NODELAY (integer)
Available since PHP 5.2.1
CURLOPT_POSTFIELDS (integer)
CURLOPT_REFERER (integer)
CURLOPT_USERAGENT (integer)
CURLOPT_FTPPORT (integer)
CURLOPT_FTP_USE_EPSV (integer)
CURLOPT_LOW_SPEED_LIMIT (integer)
CURLOPT_LOW_SPEED_TIME (integer)
CURLOPT_RESUME_FROM (integer)
CURLOPT_COOKIE (integer)
CURLOPT_SSLCERT (integer)
CURLOPT_SSLCERTPASSWD (integer)
CURLOPT_WRITEHEADER (integer)
CURLOPT_SSL_VERIFYHOST (integer)
CURLOPT_COOKIEFILE (integer)
CURLOPT_SSLVERSION (integer)
CURLOPT_TIMECONDITION (integer)
CURLOPT_TIMEVALUE (integer)
CURLOPT_CUSTOMREQUEST (integer)
CURLOPT_STDERR (integer)
CURLOPT_TRANSFERTEXT (integer)
CURLOPT_RETURNTRANSFER (integer)
CURLOPT_QUOTE (integer)
CURLOPT_POSTQUOTE (integer)
CURLOPT_INTERFACE (integer)
CURLOPT_KRB4LEVEL (integer)
CURLOPT_HTTPPROXYTUNNEL (integer)
CURLOPT_FILETIME (integer)
CURLOPT_WRITEFUNCTION (integer)
CURLOPT_READFUNCTION (integer)
CURLOPT_PASSWDFUNCTION (integer)
CURLOPT_HEADERFUNCTION (integer)
CURLOPT_MAXREDIRS (integer)
CURLOPT_MAXCONNECTS (integer)
CURLOPT_CLOSEPOLICY (integer)
CURLOPT_FRESH_CONNECT (integer)
CURLOPT_FORBID_REUSE (integer)
CURLOPT_RANDOM_FILE (integer)
CURLOPT_EGDSOCKET (integer)
CURLOPT_CONNECTTIMEOUT (integer)
CURLOPT_CONNECTTIMEOUT_MS (integer)
CURLOPT_SSL_VERIFYPEER (integer)
CURLOPT_CAINFO (integer)
CURLOPT_CAPATH (integer)
CURLOPT_COOKIEJAR (integer)
CURLOPT_SSL_CIPHER_LIST (integer)
CURLOPT_BINARYTRANSFER (integer)
CURLOPT_NOSIGNAL (integer)
CURLOPT_PROXYTYPE (integer)
CURLOPT_BUFFERSIZE (integer)
CURLOPT_HTTPGET (integer)
CURLOPT_HTTP_VERSION (integer)
CURLOPT_SSLKEY (integer)
CURLOPT_SSLKEYTYPE (integer)
CURLOPT_SSLKEYPASSWD (integer)
CURLOPT_SSLENGINE (integer)
CURLOPT_SSLENGINE_DEFAULT (integer)
CURLOPT_SSLCERTTYPE (integer)
CURLOPT_CRLF (integer)
CURLOPT_ENCODING (integer)
CURLOPT_PROXYPORT (integer)
CURLOPT_UNRESTRICTED_AUTH (integer)
CURLOPT_FTP_USE_EPRT (integer)
CURLOPT_HTTP200ALIASES (integer)
CURLOPT_HTTPAUTH (integer)
CURLAUTH_BASIC (integer)
CURLAUTH_DIGEST (integer)
CURLAUTH_GSSNEGOTIATE (integer)
CURLAUTH_NTLM (integer)
CURLAUTH_ANY (integer)
CURLAUTH_ANYSAFE (integer)
CURLOPT_PROXYAUTH (integer)
CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)
CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)
CURLCLOSEPOLICY_SLOWEST (integer)
CURLCLOSEPOLICY_CALLBACK (integer)
CURLCLOSEPOLICY_OLDEST (integer)
CURLINFO_PRIVATE (integer)
Available since PHP 5.2.4
CURLINFO_EFFECTIVE_URL (integer)
CURLINFO_HTTP_CODE (integer)
CURLINFO_HEADER_OUT (integer)
Available since PHP 5.1.3
CURLINFO_HEADER_SIZE (integer)
CURLINFO_REQUEST_SIZE (integer)
CURLINFO_TOTAL_TIME (integer)
CURLINFO_NAMELOOKUP_TIME (integer)
CURLINFO_CONNECT_TIME (integer)
CURLINFO_PRETRANSFER_TIME (integer)
CURLINFO_SIZE_UPLOAD (integer)
CURLINFO_SIZE_DOWNLOAD (integer)
CURLINFO_SPEED_DOWNLOAD (integer)
CURLINFO_SPEED_UPLOAD (integer)
CURLINFO_FILETIME (integer)
CURLINFO_SSL_VERIFYRESULT (integer)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)
CURLINFO_CONTENT_LENGTH_UPLOAD (integer)
CURLINFO_STARTTRANSFER_TIME (integer)
CURLINFO_CONTENT_TYPE (integer)
CURLINFO_REDIRECT_TIME (integer)
CURLINFO_REDIRECT_COUNT (integer)
CURL_TIMECOND_IFMODSINCE (integer)
CURL_TIMECOND_IFUNMODSINCE (integer)
CURL_TIMECOND_LASTMOD (integer)
CURL_VERSION_IPV6 (integer)
CURL_VERSION_KERBEROS4 (integer)
CURL_VERSION_SSL (integer)
CURL_VERSION_LIBZ (integer)
CURLVERSION_NOW (integer)
CURLE_OK (integer)
CURLE_UNSUPPORTED_PROTOCOL (integer)
CURLE_FAILED_INIT (integer)
CURLE_URL_MALFORMAT (integer)
CURLE_URL_MALFORMAT_USER (integer)
CURLE_COULDNT_RESOLVE_PROXY (integer)
CURLE_COULDNT_RESOLVE_HOST (integer)
CURLE_COULDNT_CONNECT (integer)
CURLE_FTP_WEIRD_SERVER_REPLY (integer)
CURLE_FTP_ACCESS_DENIED (integer)
CURLE_FTP_USER_PASSWORD_INCORRECT (integer)
CURLE_FTP_WEIRD_PASS_REPLY (integer)
CURLE_FTP_WEIRD_USER_REPLY (integer)
CURLE_FTP_WEIRD_PASV_REPLY (integer)
CURLE_FTP_WEIRD_227_FORMAT (integer)
CURLE_FTP_CANT_GET_HOST (integer)
CURLE_FTP_CANT_RECONNECT (integer)
CURLE_FTP_COULDNT_SET_BINARY (integer)
CURLE_PARTIAL_FILE (integer)
CURLE_FTP_COULDNT_RETR_FILE (integer)
CURLE_FTP_WRITE_ERROR (integer)
CURLE_FTP_QUOTE_ERROR (integer)
CURLE_HTTP_NOT_FOUND (integer)
CURLE_WRITE_ERROR (integer)
CURLE_MALFORMAT_USER (integer)
CURLE_FTP_COULDNT_STOR_FILE (integer)
CURLE_READ_ERROR (integer)
CURLE_OUT_OF_MEMORY (integer)
CURLE_OPERATION_TIMEOUTED (integer)
CURLE_FTP_COULDNT_SET_ASCII (integer)
CURLE_FTP_PORT_FAILED (integer)
CURLE_FTP_COULDNT_USE_REST (integer)
CURLE_FTP_COULDNT_GET_SIZE (integer)
CURLE_HTTP_RANGE_ERROR (integer)
CURLE_HTTP_POST_ERROR (integer)
CURLE_SSL_CONNECT_ERROR (integer)
CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)
CURLE_FILE_COULDNT_READ_FILE (integer)
CURLE_LDAP_CANNOT_BIND (integer)
CURLE_LDAP_SEARCH_FAILED (integer)
CURLE_LIBRARY_NOT_FOUND (integer)
CURLE_FUNCTION_NOT_FOUND (integer)
CURLE_ABORTED_BY_CALLBACK (integer)
CURLE_BAD_FUNCTION_ARGUMENT (integer)
CURLE_BAD_CALLING_ORDER (integer)
CURLE_HTTP_PORT_FAILED (integer)
CURLE_BAD_PASSWORD_ENTERED (integer)
CURLE_TOO_MANY_REDIRECTS (integer)
CURLE_UNKNOWN_TELNET_OPTION (integer)
CURLE_TELNET_OPTION_SYNTAX (integer)
CURLE_OBSOLETE (integer)
CURLE_SSL_PEER_CERTIFICATE (integer)
CURLE_GOT_NOTHING (integer)
CURLE_SSL_ENGINE_NOTFOUND (integer)
CURLE_SSL_ENGINE_SETFAILED (integer)
CURLE_SEND_ERROR (integer)
CURLE_RECV_ERROR (integer)
CURLE_SHARE_IN_USE (integer)
CURLE_SSL_CERTPROBLEM (integer)
CURLE_SSL_CIPHER (integer)
CURLE_SSL_CACERT (integer)
CURLE_BAD_CONTENT_ENCODING (integer)
CURLE_LDAP_INVALID_URL (integer)
CURLE_FILESIZE_EXCEEDED (integer)
CURLE_FTP_SSL_FAILED (integer)
CURLFTPAUTH_DEFAULT (integer)
Available since PHP 5.1.0
CURLFTPAUTH_SSL (integer)
Available since PHP 5.1.0
CURLFTPAUTH_TLS (integer)
Available since PHP 5.1.0
CURLPROXY_HTTP (integer)
CURLPROXY_SOCKS5 (integer)
CURL_NETRC_OPTIONAL (integer)
CURL_NETRC_IGNORED (integer)
CURL_NETRC_REQUIRED (integer)
CURL_HTTP_VERSION_NONE (integer)
CURL_HTTP_VERSION_1_0 (integer)
CURL_HTTP_VERSION_1_1 (integer)
CURLM_CALL_MULTI_PERFORM (integer)
CURLM_OK (integer)
CURLM_BAD_HANDLE (integer)
CURLM_BAD_EASY_HANDLE (integer)
CURLM_OUT_OF_MEMORY (integer)
CURLM_INTERNAL_ERROR (integer)
CURLMSG_DONE (integer)
资源类型
范例
cURL


范例

Table of Contents

  • Using PHP's cURL module to fetch the example.com homepage
预定义常量
Using PHP's cURL module to fetch the example.com homepage
cURL


Using PHP's cURL module to fetch the example.com homepage

范例
cURL 函数
范例
PHP 手册

Once you've compiled PHP with cURL support, you can begin using the cURL functions. The basic idea behind the cURL functions is that you initialize a cURL session using the curl_init(), then you can set all your options for the transfer via the curl_setopt(), then you can execute the session with the curl_exec() and then you finish off your session using the curl_close(). Here is an example that uses the cURL functions to fetch the example.com homepage into a file:

Example #1 Using PHP's cURL module to fetch the example.com homepage

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

范例
cURL 函数
范例


cURL 函数

Table of Contents

  • curl_close — Close a cURL session
  • curl_copy_handle — Copy a cURL handle along with all of its preferences
  • curl_errno — Return the last error number
  • curl_error — Return a string containing the last error for the current session
  • curl_exec — Perform a cURL session
  • curl_getinfo — Get information regarding a specific transfer
  • curl_init — Initialize a cURL session
  • curl_multi_add_handle — Add a normal cURL handle to a cURL multi handle
  • curl_multi_close — Close a set of cURL handles
  • curl_multi_exec — Run the sub-connections of the current cURL handle
  • curl_multi_getcontent — Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
  • curl_multi_info_read — Get information about the current transfers
  • curl_multi_init — Returns a new cURL multi handle
  • curl_multi_remove_handle — Remove a multi handle from a set of cURL handles
  • curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
  • curl_setopt_array — Set multiple options for a cURL transfer
  • curl_setopt — Set an option for a cURL transfer
  • curl_version — Gets cURL version information
Using PHP's cURL module to fetch the example.com homepage
curl_close
cURL


Close a cURL session

cURL 函数
curl_copy_handle
cURL 函数
PHP 手册

curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_close — Close a cURL session

说明

void curl_close ( resource $ch )

Closes a cURL session and frees all resources. The cURL handle, ch , is also deleted.

参数

ch

A cURL handle returned by curl_init().

返回值

无返回值。

范例

Example #1 Initializing a new cURL session and fetching a web page

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

参见

  • curl_init() - Initialize a cURL session
  • curl_multi_close() - Close a set of cURL handles

cURL 函数
curl_copy_handle
cURL 函数


Copy a cURL handle along with all of its preferences

curl_close
curl_errno
cURL 函数
PHP 手册

curl_copy_handle

(PHP 5)

curl_copy_handle — Copy a cURL handle along with all of its preferences

说明

resource curl_copy_handle ( resource $ch )

Copies a cURL handle keeping the same preferences.

参数

ch

A cURL handle returned by curl_init().

返回值

Returns a new cURL handle.

范例

Example #1 Copying a cURL handle

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// copy the handle
$ch2 = curl_copy_handle($ch);

// grab URL (http://www.example.com/) and pass it to the browser
curl_exec($ch2);

// close cURL resources, and free up system resources
curl_close($ch2);
curl_close($ch);
?>

curl_close
curl_errno
cURL 函数


Return the last error number

curl_copy_handle
curl_error
cURL 函数
PHP 手册

curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errno — Return the last error number

说明

int curl_errno ( resource $ch )

Returns the error number for the last cURL operation.

参数

ch

A cURL handle returned by curl_init().

返回值

Returns the error number or 0 (zero) if no error occurred.

范例

Example #1 curl_errno() example

<?php
// Create a curl handle to a non-existing location
$ch = curl_init('http://404.php.net/');

// Execute
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Check if any error occured
if(curl_errno($ch))
{
    echo 'Curl error: ' . curl_error($ch);
}

// Close handle
curl_close($ch);
?>

参见

  • curl_error() - Return a string containing the last error for the current session
  • » Curl error codes

curl_copy_handle
curl_error
cURL 函数


Return a string containing the last error for the current session

curl_errno
curl_exec
cURL 函数
PHP 手册

curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_error — Return a string containing the last error for the current session

说明

string curl_error ( resource $ch )

Returns a clear text error message for the last cURL operation.

参数

ch

A cURL handle returned by curl_init().

返回值

Returns the error message or '' (the empty string) if no error occurred.

范例

Example #1 curl_error() example

<?php
// Create a curl handle to a non-existing location
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors';
}

// Close handle
curl_close($ch);
?>

参见

  • curl_errno() - Return the last error number
  • » Curl error codes

curl_errno
curl_exec
cURL 函数


Perform a cURL session

curl_error
curl_getinfo
cURL 函数
PHP 手册

curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_exec — Perform a cURL session

说明

mixed curl_exec ( resource $ch )

Execute the given cURL session.

This function should be called after initializing a cURL session and all the options for the session are set.

参数

ch

A cURL handle returned by curl_init().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure.

范例

Example #1 Fetching a web page

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

参见

  • curl_multi_exec() - Run the sub-connections of the current cURL handle

curl_error
curl_getinfo
cURL 函数


Get information regarding a specific transfer

curl_exec
curl_init
cURL 函数
PHP 手册

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfo — Get information regarding a specific transfer

说明

mixed curl_getinfo ( resource $ch [, int $opt=0 ] )

Gets information about the last transfer,

参数

ch

A cURL handle returned by curl_init().

opt

This may be one of the following constants:

  • CURLINFO_EFFECTIVE_URL - Last effective URL
  • CURLINFO_HTTP_CODE - Last received HTTP code
  • CURLINFO_FILETIME - Remote time of the retrieved document, if -1 is returned the time of the document is unknown
  • CURLINFO_TOTAL_TIME - Total transaction time in seconds for last transfer
  • CURLINFO_NAMELOOKUP_TIME - Time in seconds until name resolving was complete
  • CURLINFO_CONNECT_TIME - Time in seconds it took to establish the connection
  • CURLINFO_PRETRANSFER_TIME - Time in seconds from start until just before file transfer begins
  • CURLINFO_STARTTRANSFER_TIME - Time in seconds until the first byte is about to be transferred
  • CURLINFO_REDIRECT_TIME - Time in seconds of all redirection steps before final transaction was started
  • CURLINFO_SIZE_UPLOAD - Total number of bytes uploaded
  • CURLINFO_SIZE_DOWNLOAD - Total number of bytes downloaded
  • CURLINFO_SPEED_DOWNLOAD - Average download speed
  • CURLINFO_SPEED_UPLOAD - Average upload speed
  • CURLINFO_HEADER_SIZE - Total size of all headers received
  • CURLINFO_HEADER_OUT - The request string sent. Available since PHP 5.1.3
  • CURLINFO_REQUEST_SIZE - Total size of issued requests, currently only for HTTP requests
  • CURLINFO_SSL_VERIFYRESULT - Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - content-length of download, read from Content-Length: field
  • CURLINFO_CONTENT_LENGTH_UPLOAD - Specified size of upload
  • CURLINFO_CONTENT_TYPE - Content-type of downloaded object, NULL indicates server did not send valid Content-Type: header

返回值

If opt is given, returns its value as a string. Otherwise, returns an associative array with the following elements (which correspond to opt ):

  • "url"
  • "content_type"
  • "http_code"
  • "header_size"
  • "request_size"
  • "filetime"
  • "ssl_verify_result"
  • "redirect_count"
  • "total_time"
  • "namelookup_time"
  • "connect_time"
  • "pretransfer_time"
  • "size_upload"
  • "size_download"
  • "speed_download"
  • "speed_upload"
  • "download_content_length"
  • "upload_content_length"
  • "starttransfer_time"
  • "redirect_time"

范例

Example #1 curl_getinfo() example

<?php
// Create a curl handle to a non-existing location
$ch = curl_init('http://www.yahoo.com/');

// Execute
curl_exec($ch);

// Check if any error occured
if(!curl_errno($ch))
{
    $info = curl_getinfo($ch);

    echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
}

// Close handle
curl_close($ch);
?>

curl_exec
curl_init
cURL 函数


Initialize a cURL session

curl_getinfo
curl_multi_add_handle
cURL 函数
PHP 手册

curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init — Initialize a cURL session

说明

resource curl_init ([ string $url=NULL ] )

Initializes a new session and return a cURL handle for use with the curl_setopt(), curl_exec(), and curl_close() functions.

参数

url

If provided, the CURLOPT_URL option will be set to its value. You can manually set this using the curl_setopt() function.

返回值

Returns a cURL handle on success, FALSE on errors.

范例

Example #1 Initializing a new cURL session and fetching a web page

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

参见

  • curl_close() - Close a cURL session
  • curl_multi_init() - Returns a new cURL multi handle

curl_getinfo
curl_multi_add_handle
cURL 函数


Add a normal cURL handle to a cURL multi handle

curl_init
curl_multi_close
cURL 函数
PHP 手册

curl_multi_add_handle

(PHP 5)

curl_multi_add_handle — Add a normal cURL handle to a cURL multi handle

说明

int curl_multi_add_handle ( resource $mh , resource $ch )

Adds the ch handle to the multi handle mh

参数

mh

A cURL multi handle returned by curl_multi_init().

ch

A cURL handle returned by curl_init().

返回值

Returns 0 on success, or one of the CURLM_XXX errors code.

范例

Example #1 curl_multi_add_handle() example

This example will create two cURL handles, add them to a multi handle, and then run them in parallel.

<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//create the multiple cURL handle
$mh = curl_multi_init();

//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
//execute the handles
do {
    curl_multi_exec($mh,$running);
} while($running > 0);

//close all the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

参见

  • curl_multi_remove_handle() - Remove a multi handle from a set of cURL handles
  • curl_multi_init() - Returns a new cURL multi handle
  • curl_init() - Initialize a cURL session

curl_init
curl_multi_close
cURL 函数


Close a set of cURL handles

curl_multi_add_handle
curl_multi_exec
cURL 函数
PHP 手册

curl_multi_close

(PHP 5)

curl_multi_close — Close a set of cURL handles

说明

void curl_multi_close ( resource $mh )

Closes a set of cURL handles.

参数

mh

A cURL multi handle returned by curl_multi_init().

返回值

无返回值。

范例

Example #1 curl_multi_close() example

This example will create two cURL handles, add them to a multi handle, and then run them in parallel.

<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//create the multiple cURL handle
$mh = curl_multi_init();

//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
//execute the handles
do {
    curl_multi_exec($mh,$running);
} while ($running > 0)

//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

参见

  • curl_multi_init() - Returns a new cURL multi handle
  • curl_close() - Close a cURL session

curl_multi_add_handle
curl_multi_exec
cURL 函数


Run the sub-connections of the current cURL handle

curl_multi_close
curl_multi_getcontent
cURL 函数
PHP 手册

curl_multi_exec

(PHP 5)

curl_multi_exec — Run the sub-connections of the current cURL handle

说明

int curl_multi_exec ( resource $mh , int &$still_running )

Processes each of the handles in the stack. This method can be called whether or not a handle needs to read or write data.

参数

mh

A cURL multi handle returned by curl_multi_init().

still_running

A reference to a flag to tell whether the operations are still running.

返回值

A cURL code defined in the cURL Predefined Constants.

Note: This only returns errors regarding the whole multi stack. There might still have occurred problems on individual transfers even when this function returns CURLM_OK.

范例

Example #1 curl_multi_exec() example

This example will create two cURL handles, add them to a multi handle, and then run them in parallel.

<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//create the multiple cURL handle
$mh = curl_multi_init();

//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$active = null;
//execute the handles
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

参见

  • curl_multi_init() - Returns a new cURL multi handle
  • curl_exec() - Perform a cURL session

curl_multi_close
curl_multi_getcontent
cURL 函数


Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set

curl_multi_exec
curl_multi_info_read
cURL 函数
PHP 手册

curl_multi_getcontent

(PHP 5)

curl_multi_getcontent — Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set

说明

string curl_multi_getcontent ( resource $ch )

If CURLOPT_RETURNTRANSFER is an option that is set for a specific handle, then this function will return the content of that cURL handle in the form of a string.

参数

ch

A cURL handle returned by curl_init().

返回值

Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set.

参见

  • curl_multi_init() - Returns a new cURL multi handle

curl_multi_exec
curl_multi_info_read
cURL 函数


Get information about the current transfers

curl_multi_getcontent
curl_multi_init
cURL 函数
PHP 手册

curl_multi_info_read

(PHP 5)

curl_multi_info_read — Get information about the current transfers

说明

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue=NULL ] )

Ask the multi handle if there are any messages or information from the individual transfers. Messages may include information such as an error code from the transfer or just the fact that a transfer is completed.

Repeated calls to this function will return a new result each time, until a FALSE is returned as a signal that there is no more to get at this point. The integer pointed to with msgs_in_queue will contain the number of remaining messages after this function was called.

Warning

The data the returned resource points to will not survive calling curl_multi_remove_handle().

参数

mh

A cURL multi handle returned by curl_multi_init().

msgs_in_queue

Number of messages that are still in the queue

返回值

On success, returns an associative array for the message, FALSE on failure.

更新日志

版本 | 说明
5.2.0 | msgs_in_queue was added.

参见

  • curl_multi_init() - Returns a new cURL multi handle

curl_multi_getcontent
curl_multi_init
cURL 函数


Returns a new cURL multi handle

curl_multi_info_read
curl_multi_remove_handle
cURL 函数
PHP 手册

curl_multi_init

(PHP 5)

curl_multi_init — Returns a new cURL multi handle

说明

resource curl_multi_init ( void )

Allows the processing of multiple cURL handles in parallel.

参数

mh

A cURL multi handle returned by curl_multi_init().

返回值

Returns a cURL on handle on success, FALSE on failure.

范例

Example #1 curl_multi_init() example

This example will create two cURL handles, add them to a multi handle, and then run them in parallel.

<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//create the multiple cURL handle
$mh = curl_multi_init();

//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
//execute the handles
do {
    curl_multi_exec($mh,$running);
} while ($running > 0);

//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

参见

  • curl_init() - Initialize a cURL session
  • curl_multi_close() - Close a set of cURL handles

curl_multi_info_read
curl_multi_remove_handle
cURL 函数


Remove a multi handle from a set of cURL handles

curl_multi_init
curl_multi_select
cURL 函数
PHP 手册

curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handle — Remove a multi handle from a set of cURL handles

说明

int curl_multi_remove_handle ( resource $mh , resource $ch )

Removes a given ch handle from the given mh handle. When the ch handle has been removed, it is again perfectly legal to run curl_exec() on this handle. Removing a handle while being used, will effectively halt all transfers in progress.

参数

mh

A cURL multi handle returned by curl_multi_init().

ch

A cURL handle returned by curl_init().

返回值

On success, returns a cURL handle, FALSE on failure.

参见

  • curl_init() - Initialize a cURL session
  • curl_multi_init() - Returns a new cURL multi handle
  • curl_multi_add_handle() - Add a normal cURL handle to a cURL multi handle

curl_multi_init
curl_multi_select
cURL 函数


Get all the sockets associated with the cURL extension, which can then be "selected"

curl_multi_remove_handle
curl_setopt_array
cURL 函数
PHP 手册

curl_multi_select

(PHP 5)

curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"

说明

int curl_multi_select ( resource $mh [, float $timeout=1.0 ] )

Get all the sockets associated with the cURL extension, which can then be "selected".

参数

mh

A cURL multi handle returned by curl_multi_init().

timeout

Time, in seconds, to wait for a response.

返回值

On success, returns the number of descriptors contained in, the descriptor sets. On failure, this function will return FALSE.

参见

  • curl_multi_init() - Returns a new cURL multi handle

curl_multi_remove_handle
curl_setopt_array
cURL 函数


Set multiple options for a cURL transfer

curl_multi_select
curl_setopt
cURL 函数
PHP 手册

curl_setopt_array

(PHP 5 >= 5.1.3)

curl_setopt_array — Set multiple options for a cURL transfer

说明

bool curl_setopt_array ( resource $ch , array $options )

Sets multiple options for a cURL session. This function is useful for setting a large amount of cURL options without repetitively calling curl_setopt().

参数

ch

A cURL handle returned by curl_init().

options

An array specifying which options to set and their values. The keys should be valid curl_setopt() constants or their integer equivalents.

返回值

Returns TRUE if all options were successfully set. If an option could not be successfully set, FALSE is immediately returned, ignoring any future options in the options array.

范例

Example #1 Initializing a new cURL session and fetching a web page

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

Prior to PHP 5.1.4 this function can be simulated with:

Example #2 Our own implementation of curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}
?>

参见

  • curl_setopt() - Set an option for a cURL transfer

curl_multi_select
curl_setopt
cURL 函数


Set an option for a cURL transfer

curl_setopt_array
curl_version
cURL 函数
PHP 手册

curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt — Set an option for a cURL transfer

说明

bool curl_setopt ( resource $ch , int $option , mixed $value )

Sets an option on the given cURL session handle.

参数

ch

A cURL handle returned by curl_init().

option

The CURLOPT_XXX option to set.

value

The value to be set on option .

value should be a bool for the following values of the option parameter:

Option | Set value to | Notes
CURLOPT_AUTOREFERER | TRUE to automatically set the Referer: field in requests where it follows a Location: redirect. | Available since PHP 5.1.0.
CURLOPT_BINARYTRANSFER | TRUE to return the raw output when CURLOPT_RETURNTRANSFER is used.
CURLOPT_COOKIESESSION | TRUE to mark this as a new cookie "session". It will force libcurl to ignore all cookies it is about to load that are "session cookies" from the previous session. By default, libcurl always stores and loads all cookies, independent if they are session cookies or not. Session cookies are cookies without expiry date and they are meant to be alive and existing for this "session" only. | Available since PHP 5.1.0.
CURLOPT_CRLF | TRUE to convert Unix newlines to CRLF newlines on transfers.
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUE to use a global DNS cache. This option is not thread-safe and is enabled by default.
CURLOPT_FAILONERROR | TRUE to fail silently if the HTTP code returned is greater than or equal to 400. The default behavior is to return the page normally, ignoring the code.
CURLOPT_FILETIME | TRUE to attempt to retrieve the modification date of the remote document. This value can be retrieved using the CURLINFO_FILETIME option with curl_getinfo().
CURLOPT_FOLLOWLOCATION | TRUE to follow any "Location: " header that the server sends as part of the HTTP header (note this is recursive, PHP will follow as many "Location: " headers that it is sent, unless CURLOPT_MAXREDIRS is set).
CURLOPT_FORBID_REUSE | TRUE to force the connection to explicitly close when it has finished processing, and not be pooled for reuse.
CURLOPT_FRESH_CONNECT | TRUE to force the use of a new connection instead of a cached one.
CURLOPT_FTP_USE_EPRT | TRUE to use EPRT (and LPRT) when doing active FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT only. | Added in PHP 5.0.0.
CURLOPT_FTP_USE_EPSV | TRUE to first try an EPSV command for FTP transfers before reverting back to PASV. Set to FALSE to disable EPSV.
CURLOPT_FTPAPPEND | TRUE to append to the remote file instead of overwriting it.
CURLOPT_FTPASCII | An alias of CURLOPT_TRANSFERTEXT. Use that instead.
CURLOPT_FTPLISTONLY | TRUE to only list the names of an FTP directory.
CURLOPT_HEADER | TRUE to include the header in the output.
CURLOPT_HTTPGET | TRUE to reset the HTTP request method to GET. Since GET is the default, this is only necessary if the request method has been changed.
CURLOPT_HTTPPROXYTUNNEL | TRUE to tunnel through a given HTTP proxy.
CURLOPT_MUTE | TRUE to be completely silent with regards to the cURL functions.
CURLOPT_NETRC | TRUE to scan the ~/.netrc file to find a username and password for the remote site that a connection is being established with.
CURLOPT_NOBODY | TRUE to exclude the body from the output. Request method is then set to HEAD. Changing this to FALSE does not change it to GET.
CURLOPT_NOPROGRESS

TRUE to disable the progress meter for cURL transfers.

Note: PHP automatically sets this option to TRUE, this should only be changed for debugging purposes.

CURLOPT_NOSIGNAL | TRUE to ignore any cURL function that causes a signal to be sent to the PHP process. This is turned on by default in multi-threaded SAPIs so timeout options can still be used. | Added in cURL 7.10 and PHP 5.0.0.
CURLOPT_POST | TRUE to do a regular HTTP POST. This POST is the normal application/x-www-form-urlencoded kind, most commonly used by HTML forms.
CURLOPT_PUT | TRUE to HTTP PUT a file. The file to PUT must be set with CURLOPT_INFILE and CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
CURLOPT_SSL_VERIFYPEER | FALSE to stop cURL from verifying the peer's certificate. Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or a certificate directory can be specified with the CURLOPT_CAPATH option. CURLOPT_SSL_VERIFYHOST may also need to be TRUE or FALSE if CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2). | TRUE by default as of cURL 7.10. Default bundle installed as of cURL 7.10.
CURLOPT_TRANSFERTEXT | TRUE to use ASCII mode for FTP transfers. For LDAP, it retrieves data in plain text instead of HTML. On Windows systems, it will not set STDOUT to binary mode.
CURLOPT_UNRESTRICTED_AUTH | TRUE to keep sending the username and password when following locations (using CURLOPT_FOLLOWLOCATION), even when the hostname has changed. | Added in PHP 5.0.0.
CURLOPT_UPLOAD | TRUE to prepare for an upload.
CURLOPT_VERBOSE | TRUE to output verbose information. Writes output to STDERR, or the file specified using CURLOPT_STDERR.

value should be an integer for the following values of the option parameter:

Option | Set value to | Notes
CURLOPT_BUFFERSIZE | The size of the buffer to use for each read. There is no guarantee this request will be fulfilled, however. | Added in cURL 7.10 and PHP 5.0.0.
CURLOPT_CLOSEPOLICY | Either CURLCLOSEPOLICY_LEAST_RECENTLY_USED or CURLCLOSEPOLICY_OLDEST . There are three other CURLCLOSEPOLICY_ constants, but cURL does not support them yet.
CURLOPT_CONNECTTIMEOUT | The number of seconds to wait whilst trying to connect. Use 0 to wait indefinitely.
CURLOPT_DNS_CACHE_TIMEOUT | The number of seconds to keep DNS entries in memory. This option is set to 120 (2 minutes) by default.
CURLOPT_FTPSSLAUTH | The FTP authentication method (when is activated): CURLFTPAUTH_SSL (try SSL first), CURLFTPAUTH_TLS (try TLS first), or CURLFTPAUTH_DEFAULT (let cURL decide). | Added in cURL 7.12.2 and PHP 5.1.0.
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (default, lets CURL decide which version to use), CURL_HTTP_VERSION_1_0 (forces HTTP/1.0), or CURL_HTTP_VERSION_1_1 (forces HTTP/1.1).
CURLOPT_HTTPAUTH

The HTTP authentication method(s) to use. The options are: CURLAUTH_BASIC , CURLAUTH_DIGEST , CURLAUTH_GSSNEGOTIATE , CURLAUTH_NTLM , CURLAUTH_ANY , and CURLAUTH_ANYSAFE .

The bitwise | (or) operator can be used to combine more than one method. If this is done, cURL will poll the server to see what methods it supports and pick the best one.

CURLAUTH_ANY is an alias for CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE is an alias for CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

Added in PHP 5.0.0.
CURLOPT_INFILESIZE | The expected size, in bytes, of the file when uploading a file to a remote site.
CURLOPT_LOW_SPEED_LIMIT | The transfer speed, in bytes per second, that the transfer should be below during CURLOPT_LOW_SPEED_TIME seconds for PHP to consider the transfer too slow and abort.
CURLOPT_LOW_SPEED_TIME | The number of seconds the transfer should be below CURLOPT_LOW_SPEED_LIMIT for PHP to consider the transfer too slow and abort.
CURLOPT_MAXCONNECTS | The maximum amount of persistent connections that are allowed. When the limit is reached, CURLOPT_CLOSEPOLICY is used to determine which connection to close.
CURLOPT_MAXREDIRS | The maximum amount of HTTP redirections to follow. Use this option alongside CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT | An alternative port number to connect to.
CURLOPT_PROXYAUTH | The HTTP authentication method(s) to use for the proxy connection. Use the same bitmasks as described in CURLOPT_HTTPAUTH. For proxy authentication, only CURLAUTH_BASIC and CURLAUTH_NTLM are currently supported. | Added in cURL 7.10.7 and PHP 5.1.0.
CURLOPT_PROXYPORT | The port number of the proxy to connect to. This port number can also be set in CURLOPT_PROXY. | Added in PHP 5.0.0.
CURLOPT_PROXYTYPE | Either CURLPROXY_HTTP (default) or CURLPROXY_SOCKS5 . | Added in cURL 7.10 and PHP 5.0.0.
CURLOPT_RESUME_FROM | The offset, in bytes, to resume a transfer from.
CURLOPT_SSL_VERIFYHOST | 1 to check the existence of a common name in the SSL peer certificate. 2 to check the existence of a common name and also verify that it matches the hostname provided.
CURLOPT_SSLVERSION | The SSL version (2 or 3) to use. By default PHP will try to determine this itself, although in some cases this must be set manually.
CURLOPT_TIMECONDITION | How CURLOPT_TIMEVALUE is treated. Use CURL_TIMECOND_IFMODSINCE to return the page only if it has been modified since the time specified in CURLOPT_TIMEVALUE. If it hasn't been modified, a "304 Not Modified" header will be returned assuming CURLOPT_HEADER is TRUE. Use CURL_TIMECOND_IFUNMODSINCE for the reverse effect. CURL_TIMECOND_IFMODSINCE is the default. | Added in PHP 5.1.0.
CURLOPT_TIMEOUT | The maximum number of seconds to allow cURL functions to execute.
CURLOPT_TIMEVALUE | The time in seconds since January 1st, 1970. The time will be used by CURLOPT_TIMECONDITION. By default, CURL_TIMECOND_IFMODSINCE is used.

value should be a string for the following values of the option parameter:

Option | Set value to | Notes
CURLOPT_CAINFO | The name of a file holding one or more certificates to verify the peer with. This only makes sense when used in combination with CURLOPT_SSL_VERIFYPEER.
CURLOPT_CAPATH | A directory that holds multiple CA certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE | The contents of the "Set-Cookie: " header to be used in the HTTP request.
CURLOPT_COOKIEFILE | The name of the file containing the cookie data. The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file.
CURLOPT_COOKIEJAR | The name of a file to save all internal cookies to when the connection closes.
CURLOPT_CUSTOMREQUEST

A custom request method to use instead of "GET" or "HEAD" when doing a HTTP request. This is useful for doing "DELETE" or other, more obscure HTTP requests. Valid values are things like "GET", "POST", "CONNECT" and so on; i.e. Do not enter a whole HTTP request line here. For instance, entering "GET /index.html HTTP/1.0\r\n\r\n" would be incorrect.

Note: Don't do this without making sure the server supports the custom request method first.

CURLOPT_EGDSOCKET | Like CURLOPT_RANDOM_FILE, except a filename to an Entropy Gathering Daemon socket.
CURLOPT_ENCODING | The contents of the "Accept-Encoding: " header. This enables decoding of the response. Supported encodings are "identity", "deflate", and "gzip". If an empty string, "", is set, a header containing all supported encoding types is sent. | Added in cURL 7.10.
CURLOPT_FTPPORT | The value which will be used to get the IP address to use for the FTP "POST" instruction. The "POST" instruction tells the remote server to connect to our specified IP address. The string may be a plain IP address, a hostname, a network interface name (under Unix), or just a plain '-' to use the systems default IP address.
CURLOPT_INTERFACE | The name of the outgoing network interface to use. This can be an interface name, an IP address or a host name.
CURLOPT_KRB4LEVEL | The KRB4 (Kerberos 4) security level. Any of the following values (in order from least to most powerful) are valid: "clear", "safe", "confidential", "private".. If the string does not match one of these, "private" is used. Setting this option to NULL will disable KRB4 security. Currently KRB4 security only works with FTP transactions.
CURLOPT_POSTFIELDS | The full data to post in a HTTP "POST" operation. To post a file, prepend a filename with @ and use the full path. This can either be passed as a urlencoded string like 'para1=val1&para2=val2&...' or as an array with the field name as key and field data as value.
CURLOPT_PROXY | The HTTP proxy to tunnel requests through.
CURLOPT_PROXYUSERPWD | A username and password formatted as "[username]:[password]" to use for the connection to the proxy.
CURLOPT_RANDOM_FILE | A filename to be used to seed the random number generator for SSL.
CURLOPT_RANGE | Range(s) of data to retrieve in the format "X-Y" where X or Y are optional. HTTP transfers also support several intervals, separated with commas in the format "X-Y,N-M".
CURLOPT_REFERER | The contents of the "Referer: " header to be used in a HTTP request.
CURLOPT_SSL_CIPHER_LIST | A list of ciphers to use for SSL. For example, RC4-SHA and TLSv1 are valid cipher lists.
CURLOPT_SSLCERT | The name of a file containing a PEM formatted certificate.
CURLOPT_SSLCERTPASSWD | The password required to use the CURLOPT_SSLCERT certificate.
CURLOPT_SSLCERTTYPE | The format of the certificate. Supported formats are "PEM" (default), "DER", and "ENG". | Added in cURL 7.9.3 and PHP 5.0.0.
CURLOPT_SSLENGINE | The identifier for the crypto engine of the private SSL key specified in CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT | The identifier for the crypto engine used for asymmetric crypto operations.
CURLOPT_SSLKEY | The name of a file containing a private SSL key.
CURLOPT_SSLKEYPASSWD

The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY.

Note: Since this option contains a sensitive password, remember to keep the PHP script it is contained within safe.

CURLOPT_SSLKEYTYPE | The key type of the private SSL key specified in CURLOPT_SSLKEY. Supported key types are "PEM" (default), "DER", and "ENG".
CURLOPT_URL | The URL to fetch. This can also be set when initializing a session with curl_init().
CURLOPT_USERAGENT | The contents of the "User-Agent: " header to be used in a HTTP request.
CURLOPT_USERPWD | A username and password formatted as "[username]:[password]" to use for the connection.

value should be an array for the following values of the option parameter:

Option | Set value to | Notes
CURLOPT_HTTP200ALIASES | An array of HTTP 200 responses that will be treated as valid responses and not as errors. | Added in cURL 7.10.3 and PHP 5.0.0.
CURLOPT_HTTPHEADER | An array of HTTP header fields to set.
CURLOPT_POSTQUOTE | An array of FTP commands to execute on the server after the FTP request has been performed.
CURLOPT_QUOTE | An array of FTP commands to execute on the server prior to the FTP request.

value should be a stream resource (using fopen(), for example) for the following values of the option parameter:

Option | Set value to | Notes
CURLOPT_FILE | The file that the transfer should be written to. The default is STDOUT (the browser window).
CURLOPT_INFILE | The file that the transfer should be read from when uploading.
CURLOPT_STDERR | An alternative location to output errors to instead of STDERR.
CURLOPT_WRITEHEADER | The file that the header part of the transfer is written to.

value should be a string that is the name of a valid callback function for the following values of the option parameter:

Option | Set value to | Notes
CURLOPT_HEADERFUNCTION | The name of a callback function where the callback function takes two parameters. The first is the cURL resource, the second is a string with the header data to be written. The header data must be written when using this callback function. Return the number of bytes written.
CURLOPT_PASSWDFUNCTION | The name of a callback function where the callback function takes three parameters. The first is the cURL resource, the second is a string containing a password prompt, and the third is the maximum password length. Return the string containing the password.
CURLOPT_READFUNCTION | The name of a callback function where the callback function takes two parameters. The first is the cURL resource, and the second is a string with the data to be read. The data must be read by using this callback function. Return the number of bytes read. Return 0 to signal EOF.
CURLOPT_WRITEFUNCTION | The name of a callback function where the callback function takes two parameters. The first is the cURL resource, and the second is a string with the data to be written. The data must be written by using this callback function. Must return the exact number of bytes written or this will fail.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Initializing a new cURL session and fetching a web page

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

Example #2 Uploading file

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

上例将输出：

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

参见

  • curl_setopt_array() - Set multiple options for a cURL transfer

curl_setopt_array
curl_version
cURL 函数


Gets cURL version information

curl_setopt
FAM
cURL 函数
PHP 手册

curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_version — Gets cURL version information

说明

array curl_version ([ int $age=CURLVERSION_NOW ] )

Returns information about the cURL version.

参数

age

返回值

Returns an associative array with the following elements:

Indice | Value description
version_number | cURL 24 bit version number
version | cURL version number, as a string
ssl_version_number | OpenSSL 24 bit version number
ssl_version | OpenSSL version number, as a string
libz_version | zlib version number, as a string
host | Information about the host where cURL was built
age |
features | A bitmask of the CURL_VERSION_XXX constants
protocols | An array of protocols names supported by cURL

范例

Example #1 curl_version() example

This example will check which features that's available in cURL build by using the 'features' bitmask returned by curl_version().

<?php
// Get curl version array
$version = curl_version();

// These are the bitfields that can be used
// to check for features in the curl build
$bitfields = Array(
            'CURL_VERSION_IPV6',
            'CURL_VERSION_KERBEROS4',
            'CURL_VERSION_SSL',
            'CURL_VERSION_LIBZ'
            );

foreach($bitfields as $feature)
{
    echo $feature . ($version['features'] & constant($feature) ? ' matches' : ' does not match');
    echo PHP_EOL;
}
?>

curl_setopt
FAM
cURL 函数


File Alteration Monitor

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • FAM 函数
    • fam_cancel_monitor — Terminate monitoring
    • fam_close — Close FAM connection
    • fam_monitor_collection — Monitor a collection of files in a directory for changes
    • fam_monitor_directory — Monitor a directory for changes
    • fam_monitor_file — Monitor a regular file for changes
    • fam_next_event — Get next pending FAM event
    • fam_open — Open connection to FAM daemon
    • fam_pending — Check for pending FAM events
    • fam_resume_monitor — Resume suspended monitoring
    • fam_suspend_monitor — Temporarily suspend monitoring
curl_version
简介
其它服务


简介

FAM monitors files and directories, notifying interested applications of changes. More information about FAM is available at » http://oss.sgi.com/projects/fam/.

A PHP script may specify a list of files for FAM to monitor using the functions provided by this extension.

The FAM process is started when the first connection from any application to it is opened. It exits after all connections to it have been closed.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

Note: 本扩展模块在 Windows 平台下不可用。

FAM
安装/配置
FAM


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
FAM


需求

This extension uses the functions of the » FAM library, developed by SGI. Therefore you have to download and install the FAM library.

安装/配置
安装
安装/配置


安装

To use PHP's FAM support you must compile PHP --with-fam[=DIR] where DIR is the location of the directory containing the lib and include directories.

需求
运行时配置
安装/配置


资源类型

There are two resource types used in the FAM module. The first one is the connection to the FAM service returned by fam_open(), the second a monitoring resource returned by the fam_monitor_XXX functions.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FAM event constants
Constant | Description
FAMChanged (integer) | Some value which can be obtained with fstat(1) changed for a file or directory.
FAMDeleted (integer) | A file or directory was deleted or renamed.
FAMStartExecuting (integer) | An executable file started executing.
FAMStopExecuting (integer) | An executable file that was running finished.
FAMCreated (integer) | A file was created in a directory.
FAMMoved (integer) | This event never occurs.
FAMAcknowledge (integer) | An event in response to fam_cancel_monitor().
FAMExists (integer) | An event upon request to monitor a file or directory. When a directory is monitored, an event for that directory and every file contained in that directory is issued.
FAMEndExist (integer) | Event after the last FAMEExists event.
资源类型
FAM 函数
FAM


FAM 函数

Table of Contents

  • fam_cancel_monitor — Terminate monitoring
  • fam_close — Close FAM connection
  • fam_monitor_collection — Monitor a collection of files in a directory for changes
  • fam_monitor_directory — Monitor a directory for changes
  • fam_monitor_file — Monitor a regular file for changes
  • fam_next_event — Get next pending FAM event
  • fam_open — Open connection to FAM daemon
  • fam_pending — Check for pending FAM events
  • fam_resume_monitor — Resume suspended monitoring
  • fam_suspend_monitor — Temporarily suspend monitoring
预定义常量
fam_cancel_monitor
FAM


Terminate monitoring

FAM 函数
fam_close
FAM 函数
PHP 手册

fam_cancel_monitor

(PHP 5 <= 5.0.5)

fam_cancel_monitor — Terminate monitoring

说明

bool fam_cancel_monitor ( resource $fam , resource $fam_monitor )

Terminates monitoring on a resource.

In addition an FAMAcknowledge event occurs.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

fam_monitor

A resource returned by one of the fam_monitor_XXX functions

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fam_monitor_file() - Monitor a regular file for changes
  • fam_monitor_directory() - Monitor a directory for changes
  • fam_monitor_collection() - Monitor a collection of files in a directory for changes
  • fam_suspend_monitor() - Temporarily suspend monitoring

FAM 函数
fam_close
FAM 函数


Close FAM connection

fam_cancel_monitor
fam_monitor_collection
FAM 函数
PHP 手册

fam_close

(PHP 5 <= 5.0.5)

fam_close — Close FAM connection

说明

void fam_close ( resource $fam )

Closes a connection to the FAM service.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

返回值

无返回值。

参见

  • fam_monitor_open()

fam_cancel_monitor
fam_monitor_collection
FAM 函数


Monitor a collection of files in a directory for changes

fam_close
fam_monitor_directory
FAM 函数
PHP 手册

fam_monitor_collection

(PHP 5 <= 5.0.5)

fam_monitor_collection — Monitor a collection of files in a directory for changes

说明

resource fam_monitor_collection ( resource $fam , string $dirname , int $depth , string $mask )

Requests monitoring for a collection of files within a directory.

A FAM event will be generated whenever the status of the files change. The possible event codes are described in detail in the constants part of this section.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

dirname

Directory path to the monitored files

depth

The maximum search depth starting from this directory

mask

A shell pattern mask restricting the file names to look for

返回值

Returns a monitoring resource or FALSE on errors.

参见

  • fam_monitor_file() - Monitor a regular file for changes
  • fam_monitor_directory() - Monitor a directory for changes
  • fam_cancel_monitor() - Terminate monitoring
  • fam_suspend_monitor() - Temporarily suspend monitoring
  • fam_resume_monitor() - Resume suspended monitoring

fam_close
fam_monitor_directory
FAM 函数


Monitor a directory for changes

fam_monitor_collection
fam_monitor_file
FAM 函数
PHP 手册

fam_monitor_directory

(PHP 5 <= 5.0.5)

fam_monitor_directory — Monitor a directory for changes

说明

resource fam_monitor_directory ( resource $fam , string $dirname )

Requests monitoring for a directory and all contained files.

A FAM event will be generated whenever the status of the directory (i.e. the result of function stat() on that directory) or its content (i.e. the results of readdir()) changes.

The possible event codes are described in detail in the constants part of this section.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

dirname

Path to the monitored directory

返回值

Returns a monitoring resource or FALSE on errors.

参见

  • fam_monitor_file() - Monitor a regular file for changes
  • fam_monitor_collection() - Monitor a collection of files in a directory for changes
  • fam_cancel_monitor() - Terminate monitoring
  • fam_suspend_monitor() - Temporarily suspend monitoring
  • fam_resume_monitor() - Resume suspended monitoring

fam_monitor_collection
fam_monitor_file
FAM 函数


Monitor a regular file for changes

fam_monitor_directory
fam_next_event
FAM 函数
PHP 手册

fam_monitor_file

(PHP 5 <= 5.0.5)

fam_monitor_file — Monitor a regular file for changes

说明

resource fam_monitor_file ( resource $fam , string $filename )

Requests monitoring for a single file. A FAM event will be generated whenever the file status changes (i.e. the result of function stat() on that file).

The possible event codes are described in detail in the constants part of this section.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

filename

Path to the monitored file

返回值

Returns a monitoring resource or FALSE on errors.

参见

  • fam_monitor_directory() - Monitor a directory for changes
  • fam_monitor_collection() - Monitor a collection of files in a directory for changes
  • fam_cancel_monitor() - Terminate monitoring
  • fam_suspend_monitor() - Temporarily suspend monitoring
  • fam_resume_monitor() - Resume suspended monitoring

fam_monitor_directory
fam_next_event
FAM 函数


Get next pending FAM event

fam_monitor_file
fam_open
FAM 函数
PHP 手册

fam_next_event

(PHP 5 <= 5.0.5)

fam_next_event — Get next pending FAM event

说明

array fam_next_event ( resource $fam )

Returns the next pending FAM event.

The function will block until an event is available which can be checked for using fam_pending().

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

返回值

Returns an array that contains a FAM event code in the 'code' element, the path of the file this event applies to in the 'filename' element and optionally a hostname in the 'hostname' element.

The possible event codes are described in detail in the constants part of this section.

参见

  • fam_pending() - Check for pending FAM events

fam_monitor_file
fam_open
FAM 函数


Open connection to FAM daemon

fam_next_event
fam_pending
FAM 函数
PHP 手册

fam_open

(PHP 5 <= 5.0.5)

fam_open — Open connection to FAM daemon

说明

resource fam_open ([ string $appname ] )

Opens a connection to the FAM service daemon.

参数

appname

A string identifying the application for logging reasons

返回值

Returns a resource representing a connection to the FAM service on success or FALSE on errors.

参见

  • fam_close() - Close FAM connection

fam_next_event
fam_pending
FAM 函数


Check for pending FAM events

fam_open
fam_resume_monitor
FAM 函数
PHP 手册

fam_pending

(PHP 5 <= 5.0.5)

fam_pending — Check for pending FAM events

说明

int fam_pending ( resource $fam )

Checks for pending FAM events.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

返回值

Returns non-zero if events are available to be fetched using fam_next_event(), zero otherwise.

参见

  • fam_next_event() - Get next pending FAM event

fam_open
fam_resume_monitor
FAM 函数


Resume suspended monitoring

fam_pending
fam_suspend_monitor
FAM 函数
PHP 手册

fam_resume_monitor

(PHP 5 <= 5.0.5)

fam_resume_monitor — Resume suspended monitoring

说明

bool fam_resume_monitor ( resource $fam , resource $fam_monitor )

Resumes monitoring of a resource previously suspended using fam_suspend_monitor().

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

fam_monitor

A resource returned by one of the fam_monitor_XXX functions

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fam_suspend_monitor() - Temporarily suspend monitoring

fam_pending
fam_suspend_monitor
FAM 函数


Temporarily suspend monitoring

fam_resume_monitor
FTP
FAM 函数
PHP 手册

fam_suspend_monitor

(PHP 5 <= 5.0.5)

fam_suspend_monitor — Temporarily suspend monitoring

说明

bool fam_suspend_monitor ( resource $fam , resource $fam_monitor )

fam_suspend_monitor() temporarily suspend monitoring of a resource.

Monitoring can later be continued using fam_resume_monitor() without the need of requesting a complete new monitor.

参数

fam

A resource representing a connection to the FAM service returned by fam_open()

fam_monitor

A resource returned by one of the fam_monitor_XXX functions

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • fam_cancel_monitor() - Terminate monitoring
  • fam_resume_monitor() - Resume suspended monitoring

fam_resume_monitor
FTP
FAM 函数


FTP

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • FTP example
  • FTP 函数
    • ftp_alloc — Allocates space for a file to be uploaded
    • ftp_cdup — 切换到当前目录的父目录
    • ftp_chdir — 在 FTP 服务器上改变当前目录
    • ftp_chmod — Set permissions on a file via FTP
    • ftp_close — 关闭一个 FTP 连接
    • ftp_connect — 建立一个新的 FTP 连接
    • ftp_delete — 删除 FTP 服务器上的一个文件
    • ftp_exec — 请求运行一条 FTP 命令
    • ftp_fget — 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
    • ftp_fput — 上传一个已经打开的文件到 FTP 服务器
    • ftp_get_option — 返回当前 FTP 连接的各种不同的选项设置
    • ftp_get — 从 FTP 服务器上下载一个文件
    • ftp_login — 登录 FTP 服务器
    • ftp_mdtm — 返回指定文件的最后修改时间
    • ftp_mkdir — 建立新目录
    • ftp_nb_continue — 连续获取／发送文件（non-blocking）
    • ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)
    • ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)
    • ftp_nb_get — 从 FTP 服务器上获取文件并写入本地文件（non-blocking）
    • ftp_nb_put — 存储一个文件至 FTP 服务器（non-blocking）
    • ftp_nlist — 返回给定目录的文件列表
    • ftp_pasv — 返回当前 FTP 被动模式是否打开
    • ftp_put — 上传文件到 FTP 服务器
    • ftp_pwd — 返回当前目录名
    • ftp_quit — ftp_close 的 别名
    • ftp_raw — Sends an arbitrary command to an FTP server
    • ftp_rawlist — 返回指定目录下文件的详细列表
    • ftp_rename — 更改 FTP 服务器上的文件或目录名
    • ftp_rmdir — 删除 FTP 服务器上的一个目录
    • ftp_set_option — 设置各种 FTP 运行时选项
    • ftp_site — 向服务器发送 SITE 命令
    • ftp_size — 返回指定文件的大小
    • ftp_ssl_connect — Opens an Secure SSL-FTP connection
    • ftp_systype — 返回远程 FTP 服务器的操作系统类型
fam_suspend_monitor
简介
其它服务


简介

The functions in this extension implement client access to file servers speaking the File Transfer Protocol (FTP) as defined in » http://www.faqs.org/rfcs/rfc959. This extension is meant for detailed access to an FTP server providing a wide range of control to the executing script. If you only wish to read from or write to a file on an FTP server, consider using the ftp:// wrapper with the filesystem functions which provide a simpler and more intuitive interface.

FTP
安装/配置
FTP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
FTP


安装

要使用这些 FTP 相关函数，在编译的时候请添加 --enable-ftp 选项。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


资源类型

This extension uses one resource type, which is the link identifier of the FTP connection, returned by ftp_connect() or ftp_ssl_connect().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

FTP_ASCII (integer)
FTP_TEXT (integer)

FTP_BINARY (integer)

FTP_IMAGE (integer)

FTP_TIMEOUT_SEC (integer)

更多设置参考函数 ftp_set_option()。

下列变量在 PHP 4.3.0 以后版本中被加入。

FTP_AUTOSEEK (integer)

参考函数 ftp_set_option()。

FTP_AUTORESUME (integer)

为 GET 和 PUT 请求自动决定恢复和开始的位置 (只能工作在 FTP_AUTOSEEK 打开的情况下)

FTP_FAILED (integer)

异步传输失败

FTP_FINISHED (integer)

异步传输成功

FTP_MOREDATA (integer)

异步传输是活动状态的

资源类型
范例
FTP


范例

Table of Contents

  • FTP example
预定义常量
FTP example
FTP


FTP example

范例
FTP 函数
范例
PHP 手册

Example #1 FTP example

<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name";
    }

// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// check upload status
if (!$upload) {
        echo "FTP upload has failed!";
    } else {
        echo "Uploaded $source_file to $ftp_server as $destination_file";
    }

// close the FTP stream
ftp_close($conn_id);
?>

范例
FTP 函数
范例


FTP 函数

Table of Contents

  • ftp_alloc — Allocates space for a file to be uploaded
  • ftp_cdup — 切换到当前目录的父目录
  • ftp_chdir — 在 FTP 服务器上改变当前目录
  • ftp_chmod — Set permissions on a file via FTP
  • ftp_close — 关闭一个 FTP 连接
  • ftp_connect — 建立一个新的 FTP 连接
  • ftp_delete — 删除 FTP 服务器上的一个文件
  • ftp_exec — 请求运行一条 FTP 命令
  • ftp_fget — 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
  • ftp_fput — 上传一个已经打开的文件到 FTP 服务器
  • ftp_get_option — 返回当前 FTP 连接的各种不同的选项设置
  • ftp_get — 从 FTP 服务器上下载一个文件
  • ftp_login — 登录 FTP 服务器
  • ftp_mdtm — 返回指定文件的最后修改时间
  • ftp_mkdir — 建立新目录
  • ftp_nb_continue — 连续获取／发送文件（non-blocking）
  • ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)
  • ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)
  • ftp_nb_get — 从 FTP 服务器上获取文件并写入本地文件（non-blocking）
  • ftp_nb_put — 存储一个文件至 FTP 服务器（non-blocking）
  • ftp_nlist — 返回给定目录的文件列表
  • ftp_pasv — 返回当前 FTP 被动模式是否打开
  • ftp_put — 上传文件到 FTP 服务器
  • ftp_pwd — 返回当前目录名
  • ftp_quit — ftp_close 的 别名
  • ftp_raw — Sends an arbitrary command to an FTP server
  • ftp_rawlist — 返回指定目录下文件的详细列表
  • ftp_rename — 更改 FTP 服务器上的文件或目录名
  • ftp_rmdir — 删除 FTP 服务器上的一个目录
  • ftp_set_option — 设置各种 FTP 运行时选项
  • ftp_site — 向服务器发送 SITE 命令
  • ftp_size — 返回指定文件的大小
  • ftp_ssl_connect — Opens an Secure SSL-FTP connection
  • ftp_systype — 返回远程 FTP 服务器的操作系统类型
FTP example
ftp_alloc
FTP


Allocates space for a file to be uploaded

FTP 函数
ftp_cdup
FTP 函数
PHP 手册

ftp_alloc

(PHP 5)

ftp_alloc — Allocates space for a file to be uploaded

说明

bool ftp_alloc ( resource $ftp_stream , int $filesize [, string &$result ] )

Sends an ALLO command to the remote FTP server to allocate space for a file to be uploaded.

Note: Many FTP servers do not support this command. These servers may return a failure code (FALSE) indicating the command is not supported or a success code (TRUE) to indicate that pre-allocation is not necessary and the client should continue as though the operation were successful. Because of this, it may be best to reserve this function for servers which explicitly require preallocation.

参数

ftp_stream

The link identifier of the FTP connection.

filesize

The number of bytes to allocate.

return

A textual representation of the servers response will be returned by reference in result if a variable is provided.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_alloc() example

<?php

$file = "/home/user/myfile";

// connect to the server
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Space successfully allocated on server.  Sending $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Unable to allocate space on server.  Server said: $result\n";
}

ftp_close($conn_id);

?>

参见

  • ftp_put() - 上传文件到 FTP 服务器
  • ftp_fput() - 上传一个已经打开的文件到 FTP 服务器

FTP 函数
ftp_cdup
FTP 函数


切换到当前目录的父目录

ftp_alloc
ftp_chdir
FTP 函数
PHP 手册

ftp_cdup

(PHP 4, PHP 5)

ftp_cdup — 切换到当前目录的父目录

说明

bool ftp_cdup ( resource $ftp_stream )

切换目录至当前目录的父目录 (上级目录)。

参数

ftp_stream

FTP 连接的标识符。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_cdup() 例子

<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// change the current directory to html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// return to the parent directory
if (ftp_cdup($conn_id)) {
  echo "cdup successful\n";
} else {
  echo "cdup not successful\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

参见

  • ftp_chdir() - 在 FTP 服务器上改变当前目录
  • ftp_pwd() - 返回当前目录名

ftp_alloc
ftp_chdir
FTP 函数


在 FTP 服务器上改变当前目录

ftp_cdup
ftp_chmod
FTP 函数
PHP 手册

ftp_chdir

(PHP 4, PHP 5)

ftp_chdir — 在 FTP 服务器上改变当前目录

说明

bool ftp_chdir ( resource $ftp_stream , string $directory )

将当前目录切换为指定的目录。

参数

ftp_stream

FTP 连接的标识符。

directory

目标目录。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。如果切换目录失败，PHP 还会发出一条警告。

范例

Example #1 ftp_chdir() 例子

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

echo "Current directory: " . ftp_pwd($conn_id) . "\n";

// try to change the directory to somedir
if (ftp_chdir($conn_id, "somedir")) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Couldn't change directory\n";
}

// close the connection
ftp_close($conn_id);
?>

参见

  • ftp_cdup() - 切换到当前目录的父目录
  • ftp_pwd() - 返回当前目录名

ftp_cdup
ftp_chmod
FTP 函数


Set permissions on a file via FTP

ftp_chdir
ftp_close
FTP 函数
PHP 手册

ftp_chmod

(PHP 5)

ftp_chmod — Set permissions on a file via FTP

说明

int ftp_chmod ( resource $ftp_stream , int $mode , string $filename )

Sets the permissions on the specified remote file to mode .

参数

ftp_stream

The link identifier of the FTP connection.

mode

The new permissions, given as an octal value.

filename

The remote file.

返回值

Returns the new file permissions on success or FALSE on error.

范例

Example #1 ftp_chmod() example

<?php
$file = 'public_html/index.php';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to chmod $file to 644
if (ftp_chmod($conn_id, 0644, $file) !== false) {
 echo "$file chmoded successfully to 644\n";
} else {
 echo "could not chmod $file\n";
}

// close the connection
ftp_close($conn_id);
?>

参见

  • chmod() - 改变文件模式

ftp_chdir
ftp_close
FTP 函数


关闭一个 FTP 连接

ftp_chmod
ftp_connect
FTP 函数
PHP 手册

ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_close — 关闭一个 FTP 连接

说明

bool ftp_close ( resource $ftp_stream )

ftp_close() 关闭给出的连接标识符并释放资源。

Note: 调用本函数后，将不能再使用 FTP 连接，必须用 ftp_connect() 建立一个新连接。

参数

ftp_stream

FTP 连接的标识符。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_close() 例子

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// print the current directory
echo ftp_pwd($conn_id); // /

// close this connection
ftp_close($conn_id);
?>

参见

  • ftp_connect() - 建立一个新的 FTP 连接

ftp_chmod
ftp_connect
FTP 函数


建立一个新的 FTP 连接

ftp_close
ftp_delete
FTP 函数
PHP 手册

ftp_connect

(PHP 4, PHP 5)

ftp_connect — 建立一个新的 FTP 连接

说明

resource ftp_connect ( string $host [, int $port [, int $timeout ]] )

如果成功返回一个连接标识，失败则返回 FALSE 。

ftp_connect() 打开一个 FTP 连接，参数 host 为要连接的服务器。host 后面不应以斜线结尾，前面也不需要用 ftp:// 开头。可选参数port 为要连接到的 FTP 器的端口号，如果没有设置或者为0，则会使用默认的端口 21 来连接。

可选参数 timeout 用来设置网络传输的超时时间限制。如果此选项留空，则默认的值为 90 秒。超时时间可以在任何时候通过函数 ftp_set_option() 及 ftp_get_option() 来改变和获取。

Note: 参数 timeout 仅适用于 PHP 4.2.0 及以上版本.

Example #1 ftp_connect() 例子

<?php

$ftp_server = "ftp.example.com";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

?>

参见 ftp_close() 和 ftp_ssl_connect()。

ftp_close
ftp_delete
FTP 函数


删除 FTP 服务器上的一个文件

ftp_connect
ftp_exec
FTP 函数
PHP 手册

ftp_delete

(PHP 4, PHP 5)

ftp_delete — 删除 FTP 服务器上的一个文件

描述

bool ftp_delete ( resource $ftp_stream , string $path )

ftp_delete() 函数用来删除 FTP 服务器上的一个由参数 path 指定的的文件。

如果成功则返回 TRUE，失败则返回 FALSE。

ftp_connect
ftp_exec
FTP 函数


请求运行一条 FTP 命令

ftp_delete
ftp_fget
FTP 函数
PHP 手册

ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_exec — 请求运行一条 FTP 命令

说明

bool ftp_exec ( resource $ftp_stream , string $command )

发送一个 SITE EXEC command 请求到 FTP 服务器。如果成功（服务器发送响应代码 200）则返回 TRUE，否则返回 FALSE。

Example #1 ftp_exec() 例子

<?php
$command = 'ls -al';
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if($res = ftp_exec($conn_id, $command)) {
    echo "$command executed successfully<br />\n";
    echo nl2br($res);
} else {
    echo 'could not execute ' . $command;
}
?>

参见 ftp_raw()。

ftp_delete
ftp_fget
FTP 函数


从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中

ftp_exec
ftp_fput
FTP 函数
PHP 手册

ftp_fget

(PHP 4, PHP 5)

ftp_fget — 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中

说明

bool ftp_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos ] )

ftp_fget() 函数用来下载由 remote_file 指定的文件，并写入到本地已经被打开的一个文件中。参数 handle 为本地已经打开的文件的句柄。传送模式参数 mode 必须是 (文本模式) FTP_ASCII 或 (二进制模式) FTP_BINARY 中的一个。

Note: 参数 resumepos 仅适用于 PHP 4.3.0 以上版本.

如果成功则返回 TRUE，失败则返回 FALSE。

参见 ftp_get()，ftp_nb_get() 和 ftp_nb_fget()。

ftp_exec
ftp_fput
FTP 函数


上传一个已经打开的文件到 FTP 服务器

ftp_fget
ftp_get_option
FTP 函数
PHP 手册

ftp_fput

(PHP 4, PHP 5)

ftp_fput — 上传一个已经打开的文件到 FTP 服务器

说明

bool ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos ] )

ftp_fput() 函数用来上传一个在已经打开的文件中的数据到 FTP 服务器，参数 handle 为所打开文件的句柄。参数 remote_file 为上传到服务器上的文件名。传输模式参数 mode 只能为 (文本模式) FTP_ASCII 或 (二进制模式) FTP_BINARY 其中的一个。

Example #1 ftp_fput() example

<?php

// open some file for reading
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// connect to the server
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to upload the file
if(ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "Successfully uploaded $file\n";
} else {
    echo "There was a problem while uploading $file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($fp);

?>

Note: 参数 startpos 只适用于 4.3.0 以上版本。

如果成功则返回 TRUE，失败则返回 FALSE。

参见 ftp_put()，ftp_nb_fput() 和 ftp_nb_put()。

ftp_fget
ftp_get_option
FTP 函数


返回当前 FTP 连接的各种不同的选项设置

ftp_fput
ftp_get
FTP 函数
PHP 手册

ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_option — 返回当前 FTP 连接的各种不同的选项设置

说明

mixed ftp_get_option ( resource $ftp_stream , int $option )

如果成功则返回选项的值，否则，如果给定的参数 option 选项如果不被支持则返回 FALSE 同时会提示一条错误信息。

此函数会返回连接句柄为 ftp_stream ，指定键值 option 的值，截止到目前，以下选项被支持:

支持 FTP 超时选项
FTP_TIMEOUT_SEC 返回当前设定的网络操作的超时时间。

Example #1 ftp_get_option() 实例

<?php
// Get the timeout of the given FTP stream
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

参见 ftp_set_option()。

ftp_fput
ftp_get
FTP 函数


从 FTP 服务器上下载一个文件

ftp_get_option
ftp_login
FTP 函数
PHP 手册

ftp_get

(PHP 4, PHP 5)

ftp_get — 从 FTP 服务器上下载一个文件

说明

bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos ] )

ftp_get() 函数用来下载 FTP 服务器上由 remote_file 参数指定的文件，并保存到由参数 local_file 指定的本地文件。传送模式参数 mode 只能为 (文本模式) FTP_ASCII 或 (二进制模式) FTP_BINARY 中的其中一个。

Note: 参数 resumepos 仅在适用于 PHP 4.3.0 以上版本.

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 ftp_get() 例子

<?php
// define some variables
$local_file = 'local.zip';
$server_file = 'server.zip';
// connect to the FTP server
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// try to download
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Successfully written to $local_file\n";
} else {
    echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);
?>

参见 ftp_fget()，ftp_nb_get() 和 ftp_nb_fget()。

ftp_get_option
ftp_login
FTP 函数


登录 FTP 服务器

ftp_get
ftp_mdtm
FTP 函数
PHP 手册

ftp_login

(PHP 4, PHP 5)

ftp_login — 登录 FTP 服务器

说明

bool ftp_login ( resource $ftp_stream , string $username , string $password )

使用用户名和密码登录入给定的 FTP 连接。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 ftp_login() 例子

<?php
$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connected as $ftp_user@$ftp_server\n";
} else {
    echo "Couldn't connect as $ftp_user\n";
}
?>
ftp_get
ftp_mdtm
FTP 函数


返回指定文件的最后修改时间

ftp_login
ftp_mkdir
FTP 函数
PHP 手册

ftp_mdtm

(PHP 4, PHP 5)

ftp_mdtm — 返回指定文件的最后修改时间

说明

int ftp_mdtm ( resource $ftp_stream , string $remote_file )

ftp_mdtm() 检查指定文件的最后修改时间，并以 UNIX 时间戳的方式返回。如果发生错误，或文件不存在则返回 -1。

Example #1 ftp_mdtm() 例子

<?php
$file = 'somefile.txt';

// connect to the server
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  get the last modified time
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt was last modified on: March 26 2003 14:16:41.
    echo "$file was last modified on : " . date ("F d Y H:i:s.", $buff);
} else {
    echo "Couldn't get mdtime";
}

// close the connection
ftp_close($conn_id);
?>

如果成功返回一个 UNIX 时间戳，否则返回 -1。

Note: 某些 FTP 服务器可能会不支持这个特性。

Note: ftp_mdtm() 函数不适用于检查目录。

ftp_login
ftp_mkdir
FTP 函数


建立新目录

ftp_mdtm
ftp_nb_continue
FTP 函数
PHP 手册

ftp_mkdir

(PHP 4, PHP 5)

ftp_mkdir — 建立新目录

说明

string ftp_mkdir ( resource $ftp_stream , string $directory )

在 FTP 服务器上建立一个目录名为参数 directory 的新目录。

如果成功返回新建的目录名，否则返回 FALSE。

参见 ftp_rmdir()。

ftp_mdtm
ftp_nb_continue
FTP 函数


连续获取／发送文件（non-blocking）

ftp_mkdir
ftp_nb_fget
FTP 函数
PHP 手册

ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continue — 连续获取／发送文件（non-blocking）

说明

int ftp_nb_continue ( resource $ftp_stream )

以不分块的方式连续获取／发送一个文件。

返回常量 FTP_FAILED 或 FTP_FINISHED 或 FTP_MOREDATA。

ftp_mkdir
ftp_nb_fget
FTP 函数


Retrieves a file from the FTP server and writes it to an open file (non-blocking)

ftp_nb_continue
ftp_nb_fput
FTP 函数
PHP 手册

ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)

说明

int ftp_nb_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos=0 ] )

ftp_nb_fget() retrieves a remote file from the FTP server.

The difference between this function and ftp_fget() is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded.

参数

ftp_stream

The link identifier of the FTP connection.

handle

An open file pointer in which we store the data.

remote_file

The remote file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

resumepos

返回值

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA.

范例

Example #1 ftp_nb_fget() example

<?php

// open some file for reading
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initate the download
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}

// close filepointer
fclose($fp);
?>

参见

  • ftp_nb_get() - 从 FTP 服务器上获取文件并写入本地文件（non-blocking）
  • ftp_nb_continue() - 连续获取／发送文件（non-blocking）
  • ftp_fget() - 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
  • ftp_get() - 从 FTP 服务器上下载一个文件

ftp_nb_continue
ftp_nb_fput
FTP 函数


Stores a file from an open file to the FTP server (non-blocking)

ftp_nb_fget
ftp_nb_get
FTP 函数
PHP 手册

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)

说明

int ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos=0 ] )

ftp_nb_fput() uploads the data from a file pointer to a remote file on the FTP server.

The difference between this function and the ftp_fput() is that this function uploads the file asynchronously, so your program can perform other operations while the file is being uploaded.

参数

ftp_stream

The link identifier of the FTP connection.

remote_file

The remote file path.

handle

An open file pointer on the local file. Reading stops at end of file.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

startpos

返回值

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA.

范例

Example #1 ftp_nb_fput() example

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initate the upload
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue upload...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error uploading the file...";
   exit(1);
}

fclose($fp);
?>

参见

  • ftp_nb_put() - 存储一个文件至 FTP 服务器（non-blocking）
  • ftp_nb_continue() - 连续获取／发送文件（non-blocking）
  • ftp_put() - 上传文件到 FTP 服务器
  • ftp_fput() - 上传一个已经打开的文件到 FTP 服务器

ftp_nb_fget
ftp_nb_get
FTP 函数


从 FTP 服务器上获取文件并写入本地文件（non-blocking）

ftp_nb_fput
ftp_nb_put
FTP 函数
PHP 手册

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get — 从 FTP 服务器上获取文件并写入本地文件（non-blocking）

说明

bool ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos ] )

ftp_nb_get() 函数用来获取参数 remote_file 指定的的远程文件，并保存到由参数 local_file 指定的本地文件。传输模式参数 mode 只能为 FTP_ASCII (文本模式) 或 FTP_BINARY (二进制模式) 两种。与 ftp_get() 函数不同的是，此函数上传文件的时候采用的是异步传输模式，也就意味着在文件传送的过程中，你的程序可以继续干其它的事情。

返回 FTP_FAILED，FTP_FINISHED 或 FTP_MOREDATA。

Example #1 ftp_nb_get() 实例

<?php
// 开始下载
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // 这里可以插入其它代码
   echo ".";

   // 继续下载...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "下载中出错...";
   exit(1);
}
?>

Example #2 使用 ftp_nb_get() 函数断线续传

<?php
// 开始
$ret = ftp_nb_get ($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// 或: $ret = ftp_nb_get ($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // 可以插入其它代码
   echo ".";

   // 继续传送...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "下载出错...";
   exit(1);
}
?>

Example #3 用 ftp_nb_get() 在 100 的位置断线续传并存为 "newfile"

// 禁止自动搜寻
ftp_set_option ($my_connection, FTP_AUTOSEEK, FALSE);

// 开始
$ret = ftp_nb_get ($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   ...

   // 继续下载...
   $ret = ftp_nb_continue ($my_connection);
}

在上边的例子中，"newfile" 文件比服务器上的文件 "README" 要小 100 字节。这是因为我们是从文件的偏移量 100 处开始读取的，如果没有禁止 FTP_AUTOSEEK，则 "newfile" 的前 100 字节将会是 '\0'。

参见 ftp_nb_fget()，ftp_nb_continue()，ftp_get() 和 ftp_fget()。

ftp_nb_fput
ftp_nb_put
FTP 函数


存储一个文件至 FTP 服务器（non-blocking）

ftp_nb_get
ftp_nlist
FTP 函数
PHP 手册

ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put — 存储一个文件至 FTP 服务器（non-blocking）

说明

int ftp_nb_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos ] )

ftp_nb_put() 函数用来把本地文件 local_file 存储到 FTP 服务器上由 remote_file 参数指定的路径。传输模式参数 mode 只能为 FTP_ASCII (文本模式) 或 FTP_BINARY (二进制模式) 两种。与函数 ftp_put() 不同的是，此函数上传文件的时候采用的是异步传输模式，也就意味着在文件传送的过程中，你的程序可以继续干其它的事情。

返回 FTP_FAILED，FTP_FINISHED 或 FTP_MOREDATA。

Example #1 ftp_nb_put() 实例

<?php
// 开始上传
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // 在这里可以加入其它代码
   echo ".";

   // 继续传送...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "上传文件中发生错误...";
   exit(1);
}
?>

Example #2 使用 ftp_nb_put() 来断线续传

<?php
// 开始
$ret = ftp_nb_put ($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// 或: $ret = ftp_nb_put ($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // 加入其它要执行的代码
   echo ".";

   // 继续传送...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "上传文件中发生错误...";
   exit(1);
}
?>

参见 ftp_nb_fput()，ftp_nb_continue()，ftp_put() 和 ftp_fput()。

ftp_nb_get
ftp_nlist
FTP 函数


返回给定目录的文件列表

ftp_nb_put
ftp_pasv
FTP 函数
PHP 手册

ftp_nlist

(PHP 4, PHP 5)

ftp_nlist — 返回给定目录的文件列表

说明

array ftp_nlist ( resource $ftp_stream , string $directory )

参数

ftp_stream

FTP 连接资源。

directory

指定要列表的目录。本参数接受带参数的形式，例如： ftp_nlist($conn_id, "-la /you/dir"); 注意此参数不对传入值做处理，在目录或者文件名包括空格或特殊的情况下，可能会存在问题。

返回值

如果成功则返回给定目录下的文件名组成的数组，否则返回 FALSE。

范例

Example #1 ftp_nlist() 例子

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

// get contents of the root directory
$contents = ftp_nlist($conn_id, "/");

// output $contents
var_dump($contents);

?>

上例的输出类似于：

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

参见

  • ftp_rawlist() - 返回指定目录下文件的详细列表

ftp_nb_put
ftp_pasv
FTP 函数


返回当前 FTP 被动模式是否打开

ftp_nlist
ftp_put
FTP 函数
PHP 手册

ftp_pasv

(PHP 4, PHP 5)

ftp_pasv — 返回当前 FTP 被动模式是否打开

说明

bool ftp_pasv ( resource $ftp_stream , bool $pasv )

在被动模式打开的情况下，数据的传送由客户机启动，而不是由服务器开始。

请注意 ftp_pasv() 只能在 FTP 登录成功后方可调用，否则会失败。

参数

ftp_stream

FTP 连接资源。

pasv

如果参数 pasv 为 TRUE，打开被动模式传输 (PASV MODE) ，否则则关闭被动传输模式。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_pasv() 实例

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// turn passive mode on
ftp_pasv($conn_id, true);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
?>

ftp_nlist
ftp_put
FTP 函数


上传文件到 FTP 服务器

ftp_pasv
ftp_pwd
FTP 函数
PHP 手册

ftp_put

(PHP 4, PHP 5)

ftp_put — 上传文件到 FTP 服务器

说明

bool ftp_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos ] )

ftp_put() 函数用来上传由 local_file 参数指定的文件到 FTP 服务器，上传后的位置由 remote_file 指定。传输模式参数

参数

ftp_stream

FTP 连接资源。

remote_file

远程文件路径。

local_file

本地文件路径。

mode

传送模式，只能为 FTP_ASCII（文本模式）或 FTP_BINARY（二进制模式）。

startpos

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_put() 实例

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
?>

更新日志

版本 | 说明
4.3.0 | 增加 startpos 参数。

参见

  • ftp_pasv() - 返回当前 FTP 被动模式是否打开
  • ftp_fput() - 上传一个已经打开的文件到 FTP 服务器
  • ftp_nb_fput() - Stores a file from an open file to the FTP server (non-blocking)
  • ftp_nb_put() - 存储一个文件至 FTP 服务器（non-blocking）

ftp_pasv
ftp_pwd
FTP 函数


返回当前目录名

ftp_put
ftp_quit
FTP 函数
PHP 手册

ftp_pwd

(PHP 4, PHP 5)

ftp_pwd — 返回当前目录名

说明

string ftp_pwd ( resource $ftp_stream )

参数

ftp_stream

FTP 连接资源。

返回值

返回当前目录名称，发生错误则返回 FALSE。

范例

Example #1 ftp_pwd() 例子

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// change directory to public_html
ftp_chdir($conn_id, 'public_html');

// print current directory
echo ftp_pwd($conn_id); // /public_html

// close the connection
ftp_close($conn_id);
?>

参见

  • ftp_chdir() - 在 FTP 服务器上改变当前目录
  • ftp_cdup() - 切换到当前目录的父目录

ftp_put
ftp_quit
FTP 函数


ftp_close 的 别名

ftp_pwd
ftp_raw
FTP 函数
PHP 手册

ftp_quit

(PHP 4, PHP 5)

ftp_quit — ftp_close() 的 别名

说明

本函数是该函数的别名： ftp_close()

ftp_pwd
ftp_raw
FTP 函数


Sends an arbitrary command to an FTP server

ftp_quit
ftp_rawlist
FTP 函数
PHP 手册

ftp_raw

(PHP 5)

ftp_raw — Sends an arbitrary command to an FTP server

说明

array ftp_raw ( resource $ftp_stream , string $command )

Sends an arbitrary command to the FTP server.

参数

ftp_stream

The link identifier of the FTP connection.

command

The command to execute.

返回值

Returns the server's response as an array of strings. No parsing is performed on the response string, nor does ftp_raw() determine if the command succeeded.

范例

Example #1 Using ftp_raw() to login to an FTP server manually.

<?php
$fp = ftp_connect("ftp.example.com");

/* This is the same as:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

参见

  • ftp_exec() - 请求运行一条 FTP 命令

ftp_quit
ftp_rawlist
FTP 函数


返回指定目录下文件的详细列表

ftp_raw
ftp_rename
FTP 函数
PHP 手册

ftp_rawlist

(PHP 4, PHP 5)

ftp_rawlist — 返回指定目录下文件的详细列表

说明

array ftp_rawlist ( resource $ftp_stream , string $directory )

ftp_rawlist() 函数将执行 FTP LIST 命令，并把结果做为一个数组返回。

参数

ftp_stream

FTP 连接资源。

directory

目录路径。

recursive

如果此参数为 TRUE，实际执行的命令将会为 LIST -R。

返回值

返回一个数组，数组的每个元素为返回文本的每一行，输出结构不会被解析。使用函数 ftp_systype() 可以用来判断 FTP 服务器的类型，从而可以用来判断返回列表的类型。

范例

Example #1 ftp_rawlist() 例子

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get the file list for /
$buff = ftp_rawlist($conn_id, '/');

// close the connection
ftp_close($conn_id);

// output the buffer
var_dump($buff);
?>

上例的输出类似于：

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

更新日志

版本 | 说明
4.3.0 | 增加 recursive 参数。

参见

  • ftp_nlist() - 返回给定目录的文件列表

ftp_raw
ftp_rename
FTP 函数


更改 FTP 服务器上的文件或目录名

ftp_rawlist
ftp_rmdir
FTP 函数
PHP 手册

ftp_rename

(PHP 4, PHP 5)

ftp_rename — 更改 FTP 服务器上的文件或目录名

说明

bool ftp_rename ( resource $ftp_stream , string $oldname , string $newname )

ftp_rename() 将 FTP 服务器上的一个文件或目录改名。

参数

ftp_stream

FTP 连接的标识符。

oldname

原来的文件／目录名。

newname

新名字。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_rename() 例子

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to rename $old_file to $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
    echo "successfully renamed $old_file to $new_file\n";
} else {
    echo "There was a problem while renaming $old_file to $new_file\n";
}

// close the connection
ftp_close($conn_id);
?>

ftp_rawlist
ftp_rmdir
FTP 函数


删除 FTP 服务器上的一个目录

ftp_rename
ftp_set_option
FTP 函数
PHP 手册

ftp_rmdir

(PHP 4, PHP 5)

ftp_rmdir — 删除 FTP 服务器上的一个目录

说明

bool ftp_rmdir ( resource $ftp_stream , string $directory )

删除由参数 directory 指定的目录。

参数

ftp_stream

FTP 连接资源。

directory

要删除的目录，必须是一个空目录的绝对路径或相对路径。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 ftp_rmdir() 例子

<?php
$dir = 'www/';

$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_rmdir($conn_id, $dir)) {
    echo 'Successfully deleted ' . $dir;
} else {
    echo 'There was a problem while deleting ' . $dir;
}

ftp_close($conn_id);
?>

参见

  • ftp_mkdir() - 建立新目录

ftp_rename
ftp_set_option
FTP 函数


设置各种 FTP 运行时选项

ftp_rmdir
ftp_site
FTP 函数
PHP 手册

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_option — 设置各种 FTP 运行时选项

说明

bool ftp_set_option ( resource $ftp_stream , int $option , mixed $value )

本函数控制指定 FTP 流的各种运行时选项。

参数

ftp_stream

FTP 连接的标识符。

option

目前支持以下选项：

所支持的 FTP 运行时选项
FTP_TIMEOUT_SEC | 改变网络传输的超时时间。参数 value 必须为整数且大于 0。默认的超时时间为 90 秒。
FTP_AUTOSEEK | 当此选项打开时，带 resumepos 或 startpos 参数的GET 或 PUT 请求 将先检索到文件中指定的位置。此选项默认是打开的。

value

本参数取决于要修改哪个 option 。

返回值

如果选项能够被设置，返回 TRUE，否则返回 FALSE。如果参数 option 不被支持或者给定的参数 value 的值与参数 option 不匹配，则会同时返回一条警告信息。

范例

Example #1 ftp_set_option() 例子

<?php
// 设置网络传输超时时间为 10 秒
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

参见

  • ftp_get_option() - 返回当前 FTP 连接的各种不同的选项设置

ftp_rmdir
ftp_site
FTP 函数


向服务器发送 SITE 命令

ftp_set_option
ftp_size
FTP 函数
PHP 手册

ftp_site

(PHP 4, PHP 5)

ftp_site — 向服务器发送 SITE 命令

说明

bool ftp_site ( resource $ftp_stream , string $cmd )

ftp_site() 函数向 FTP 服务器发送由参数 cmd 指定的命令。

SITE 命令是非标准化的，不同的服务器不尽相同。主要用于处理文件权限以及组成员等事情。

参数

ftp_stream

FTP 连接资源。

command

SITE 命令。注意本参数没有经过处理，在文件名有存在空格或其它特殊字符的情况下可能会有问题。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 向一个 FTP 服务器发送一条 SITE 命令

<?php
/* Connect to FTP server */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Unable to connect to ftp.example.com');

/* Login as "user" with password "pass" */
if (!ftp_login($conn, 'user', 'pass')) die('Error logging into ftp.example.com');

/* Issue: "SITE CHMOD 0600 /home/user/privatefile" command to ftp server */
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "Command executed successfully.\n";
} else {
   die('Command failed.');
}
?>

参见

  • ftp_raw() - Sends an arbitrary command to an FTP server

ftp_set_option
ftp_size
FTP 函数


返回指定文件的大小

ftp_site
ftp_ssl_connect
FTP 函数
PHP 手册

ftp_size

(PHP 4, PHP 5)

ftp_size — 返回指定文件的大小

说明

int ftp_size ( resource $ftp_stream , string $remote_file )

ftp_size() 函数以字节返回远程文件 remote_file 的大小。如果指定文件不存在或发生错误，则返回 -1。有些 FTP 服务器可能不支持此特性。

Note: 获取成功返回文件大小，否则返回 -1。

参数

ftp_stream

FTP 连接资源。

remote_file

远程文件。

返回值

执行成功返回文件大小，失败返回 -1。

范例

Example #1 ftp_size() 例子

<?php
$file = 'somefile.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get the size of $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "size of $file is $res bytes";
} else {
    echo "couldn't get the size";
}

//close the conntion
ftp_close($conn_id);
?>

参见

  • ftp_rawlist() - 返回指定目录下文件的详细列表

ftp_site
ftp_ssl_connect
FTP 函数


Opens an Secure SSL-FTP connection

ftp_size
ftp_systype
FTP 函数
PHP 手册

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connect — Opens an Secure SSL-FTP connection

说明

resource ftp_ssl_connect ( string $host [, int $port=21 [, int $timeout=90 ]] )

ftp_ssl_connect() opens a SSL-FTP connection to the specified host .

Note: Why this function may not exist
ftp_ssl_connect() is only available if both the ftp module and the OpenSSL support is built statically into php, this means that on Windows this function will be undefined in the official PHP builds. To make this function available on Windows you must compile your own PHP binaries.

参数

host

The FTP server address. This parameter shouldn't have any trailing slashes and shouldn't be prefixed with ftp://.

port

This parameter specifies an alternate port to connect to. If it is omitted or set to zero, then the default FTP port, 21, will be used.

timeout

This parameter specifies the timeout for all subsequent network operations. If omitted, the default value is 90 seconds. The timeout can be changed and queried at any time with ftp_set_option() and ftp_get_option().

返回值

Returns a SSL-FTP stream on success or FALSE on error.

更新日志

版本 | 说明
5.2.2 | The function was changed to return FALSE when it can't use an SSL connection, instead of fallbacking to a non-SSL one as previously.

范例

Example #1 ftp_ssl_connect() example

<?php

// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo ftp_pwd($conn_id); // /

// close the ssl connection
ftp_close($conn_id);
?>

参见

  • ftp_connect() - 建立一个新的 FTP 连接

ftp_size
ftp_systype
FTP 函数


返回远程 FTP 服务器的操作系统类型

ftp_ssl_connect
Hyperwave
FTP 函数
PHP 手册

ftp_systype

(PHP 4, PHP 5)

ftp_systype — 返回远程 FTP 服务器的操作系统类型

说明

string ftp_systype ( resource $ftp_stream )

返回远程服务器的系统类型，发生错误则返回 FALSE。

参数

ftp_stream

FTP 连接资源。

返回值

返回远程服务器类型，失败返回 FALSE。

范例

Example #1 ftp_systype() 例子

<?php
// ftp connection
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// get the system type
if ($type = ftp_systype($ftp)) {
    echo "Example.com is powered by $type\n";
} else {
    echo "Couldn't get the systype";
}
?>

上例的输出类似于：

Example.com is powerd by UNIX

ftp_ssl_connect
Hyperwave
FTP 函数


Hyperwave

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Integration with Apache
  • Hyperwave 函数
    • hw_Array2Objrec — Convert attributes from object array to object record
    • hw_changeobject — Changes attributes of an object (obsolete)
    • hw_Children — Object ids of children
    • hw_ChildrenObj — Object records of children
    • hw_Close — Closes the Hyperwave connection
    • hw_Connect — Opens a connection
    • hw_connection_info — Prints information about the connection to Hyperwave server
    • hw_cp — Copies objects
    • hw_Deleteobject — Deletes object
    • hw_DocByAnchor — Object id object belonging to anchor
    • hw_DocByAnchorObj — Object record object belonging to anchor
    • hw_Document_Attributes — Object record of hw_document
    • hw_Document_BodyTag — Body tag of hw_document
    • hw_Document_Content — Returns content of hw_document
    • hw_Document_SetContent — Sets/replaces content of hw_document
    • hw_Document_Size — Size of hw_document
    • hw_dummy — Hyperwave dummy function
    • hw_EditText — Retrieve text document
    • hw_Error — Error number
    • hw_ErrorMsg — Returns error message
    • hw_Free_Document — Frees hw_document
    • hw_GetAnchors — Object ids of anchors of document
    • hw_GetAnchorsObj — Object records of anchors of document
    • hw_GetAndLock — Return object record and lock object
    • hw_GetChildColl — Object ids of child collections
    • hw_GetChildCollObj — Object records of child collections
    • hw_GetChildDocColl — Object ids of child documents of collection
    • hw_GetChildDocCollObj — Object records of child documents of collection
    • hw_GetObject — Object record
    • hw_GetObjectByQuery — Search object
    • hw_GetObjectByQueryColl — Search object in collection
    • hw_GetObjectByQueryCollObj — Search object in collection
    • hw_GetObjectByQueryObj — Search object
    • hw_GetParents — Object ids of parents
    • hw_GetParentsObj — Object records of parents
    • hw_getrellink — Get link from source to dest relative to rootid
    • hw_GetRemote — Gets a remote document
    • hw_getremotechildren — Gets children of remote document
    • hw_GetSrcByDestObj — Returns anchors pointing at object
    • hw_GetText — Retrieve text document
    • hw_getusername — Name of currently logged in user
    • hw_Identify — Identifies as user
    • hw_InCollections — Check if object ids in collections
    • hw_Info — Info about connection
    • hw_InsColl — Insert collection
    • hw_InsDoc — Insert document
    • hw_insertanchors — Inserts only anchors into text
    • hw_InsertDocument — Upload any document
    • hw_InsertObject — Inserts an object record
    • hw_mapid — Maps global id on virtual local id
    • hw_Modifyobject — Modifies object record
    • hw_mv — Moves objects
    • hw_New_Document — Create new document
    • hw_objrec2array — Convert attributes from object record to object array
    • hw_Output_Document — Prints hw_document
    • hw_pConnect — Make a persistent database connection
    • hw_PipeDocument — Retrieve any document
    • hw_Root — Root object id
    • hw_setlinkroot — Set the id to which links are calculated
    • hw_stat — Returns status string
    • hw_Unlock — Unlock object
    • hw_Who — List of currently logged in users
ftp_systype
简介
其它服务


简介

Hyperwave has been developed at » IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5 is available at » http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave API module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user. An attribute is a name/value pair of the form name=value. The complete object record contains as many of those pairs as the user likes. The name of an attribute does not have to be unique, e.g. a title may appear several times within an object record. This makes sense if you want to specify a title in several languages. In such a case there is a convention, that each title value is preceded by the two letter language abbreviation followed by a colon, e.g. 'en:Title in English' or 'de:Titel in deutsch'. Other attributes like a description or keywords are potential candidates. You may also replace the language abbreviation by any other string as long as it separated by colon from the rest of the attribute value.

Each object record has native a string representation with each name/value pair separated by a newline. The Hyperwave extension also knows a second representation which is an associated array with the attribute name being the key. Multilingual attribute values itself form another associated array with the key being the language abbreviation. Actually any multiple attribute forms an associated array with the string left to the colon in the attribute value being the key. (This is not fully implemented. Only the attributes Title, Description and Keyword are treated properly yet.)

Besides the documents, all hyper links contained in a document are stored as object records as well. Hyper links which are in a document will be removed from it and stored as individual objects, when the document is inserted into the database. The object record of the link contains information about where it starts and where it ends. In order to gain the original document you will have to retrieve the plain document without the links and the list of links and reinsert them. The functions hw_pipedocument() and hw_gettext() do this for you. The advantage of separating links from the document is obvious. Once a document to which a link is pointing to changes its name, the link can easily be modified accordingly. The document containing the link is not affected at all. You may even add a link to a document without modifying the document itself.

Saying that hw_pipedocument() and hw_gettext() do the link insertion automatically is not as simple as it sounds. Inserting links implies a certain hierarchy of the documents. On a web server this is given by the file system, but Hyperwave has its own hierarchy and names do not reflect the position of an object in that hierarchy. Therefore creation of links first of all requires a mapping from the Hyperwave hierarchy and namespace into a web hierarchy respective web namespace. The fundamental difference between Hyperwave and the web is the clear distinction between names and hierarchy in Hyperwave. The name does not contain any information about the objects position in the hierarchy. In the web the name also contains the information on where the object is located in the hierarchy. This leads to two possibles ways of mapping. Either the Hyperwave hierarchy and name of the Hyperwave object is reflected in the URL or the name only. To make things simple the second approach is used. Hyperwave object with name my_object is mapped to http://host/my_object disregarding where it resides in the Hyperwave hierarchy. An object with name parent/my_object could be the child of my_object in the Hyperwave hierarchy, though in a web namespace it appears to be just the opposite and the user might get confused. This can only be prevented by selecting reasonable object names.

Having made this decision a second problem arises. How do you involve PHP? The URL http://host/my_object will not call any PHP script unless you tell your web server to rewrite it to e.g. http://host/php_script/my_object and the script php_script evaluates the $PATH_INFO variable and retrieves the object with name my_object from the Hyperwave server. Their is just one little drawback which can be fixed easily. Rewriting any URL would not allow any access to other document on the web server. A PHP script for searching in the Hyperwave server would be impossible. Therefore you will need at least a second rewriting rule to exclude certain URLs like all e.g. starting with http://host/Hyperwave This is basically sharing of a namespace by the web and Hyperwave server.

Based on the above mechanism links are insert into documents.

It gets more complicated if PHP is not run as a server module or CGI script but as a standalone application e.g. to dump the content of the Hyperwave server on a CD-ROM. In such a case it makes sense to retain the Hyperwave hierarchy and map in onto the file system. This conflicts with the object names if they reflect its own hierarchy (e.g. by choosing names including '/'). Therefore '/' has to be replaced by another character, e.g. '_'.

The network protocol to communicate with the Hyperwave server is called » HG-CSP (Hyper-G Client/Server Protocol). It is based on messages to initiate certain actions, e.g. get object record. In early versions of the Hyperwave Server two native clients (Harmony, Amadeus) were provided for communication with the server. Those two disappeared when Hyperwave was commercialised. As a replacement a so called wavemaster was provided. The wavemaster is like a protocol converter from HTTP to HG-CSP. The idea is to do all the administration of the database and visualisation of documents by a web interface. The wavemaster implements a set of placeholders for certain actions to customise the interface. This set of placeholders is called the PLACE Language. PLACE lacks a lot of features of a real programming language and any extension to it only enlarges the list of placeholders. This has led to the use of JavaScript which IMO does not make life easier.

Adding Hyperwave support to PHP should fill in the gap of a missing programming language for interface customisation. It implements all the messages as defined by the HG-CSP but also provides more powerful commands to e.g. retrieve complete documents.

Hyperwave has its own terminology to name certain pieces of information. This has widely been taken over and extended. Almost all functions operate on one of the following data types.

  • object ID: A unique integer value for each object in the Hyperwave server. It is also one of the attributes of the object record (ObjectID). Object ids are often used as an input parameter to specify an object.
  • object record: A string with attribute-value pairs of the form attribute=value. The pairs are separated by a carriage return from each other. An object record can easily be converted into an object array with hw_object2array(). Several functions return object records. The names of those functions end with obj.
  • object array: An associative array with all attributes of an object. The keys are the attribute names. If an attribute occurs more than once in an object record it will result in another indexed or associative array. Attributes which are language depended (like the title, keyword, description) will form an associative array with the keys set to the language abbreviations. All other multiple attributes will form an indexed array. PHP functions never return object arrays.
  • hw_document: This is a complete new data type which holds the actual document, e.g. HTML, PDF etc. It is somewhat optimized for HTML documents but may be used for any format.

Several functions which return an array of object records do also return an associative array with statistical information about them. The array is the last element of the object record array. The statistical array contains the following entries:

Hidden
Number of object records with attribute PresentationHints set to Hidden.
CollectionHead
Number of object records with attribute PresentationHints set to CollectionHead.
FullCollectionHead
Number of object records with attribute PresentationHints set to FullCollectionHead.
CollectionHeadNr
Index in array of object records with attribute PresentationHints set to CollectionHead.
FullCollectionHeadNr
Index in array of object records with attribute PresentationHints set to FullCollectionHead.
Total
Total: Number of object records.

Hyperwave
安装/配置
Hyperwave


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Hyperwave


需求

This extension needs a Hyperwave server downloadable from » http://www.hyperwave.com/.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

In order to use these functions you must compile PHP with Hyperwave support by using the --with-hyperwave[=DIR] configure option.

Windows users will enable php_hyperwave.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Hyperwave configuration options
Name | Default | Changeable | Changelog
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM | Available since PHP 4.3.2. Removed in PHP 5.0.0.
hyperwave.default_port | "418" | PHP_INI_ALL | Removed in PHP 5.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

HW_ATTR_LANG (integer)
HW_ATTR_NR (integer)
HW_ATTR_NONE (integer)
资源类型
Integration with Apache
Hyperwave


Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]

Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]

This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with

RewriteEngine on

You will need scripts:

  • to return the object itself
  • to allow searching
  • to identify yourself
  • to set your profile
  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.

预定义常量
Hyperwave 函数
Hyperwave


Hyperwave 函数

Todo

There are still some things to do:

  • The hw_InsertDocument has to be split into hw_insertobject() and hw_putdocument().
  • The names of several functions are not fixed, yet.
  • Most functions require the current connection as its first parameter. This leads to a lot of typing, which is quite often not necessary if there is just one open connection. A default connection will improve this.
  • Conversion form object record into object array needs to handle any multiple attribute.

Table of Contents

  • hw_Array2Objrec — Convert attributes from object array to object record
  • hw_changeobject — Changes attributes of an object (obsolete)
  • hw_Children — Object ids of children
  • hw_ChildrenObj — Object records of children
  • hw_Close — Closes the Hyperwave connection
  • hw_Connect — Opens a connection
  • hw_connection_info — Prints information about the connection to Hyperwave server
  • hw_cp — Copies objects
  • hw_Deleteobject — Deletes object
  • hw_DocByAnchor — Object id object belonging to anchor
  • hw_DocByAnchorObj — Object record object belonging to anchor
  • hw_Document_Attributes — Object record of hw_document
  • hw_Document_BodyTag — Body tag of hw_document
  • hw_Document_Content — Returns content of hw_document
  • hw_Document_SetContent — Sets/replaces content of hw_document
  • hw_Document_Size — Size of hw_document
  • hw_dummy — Hyperwave dummy function
  • hw_EditText — Retrieve text document
  • hw_Error — Error number
  • hw_ErrorMsg — Returns error message
  • hw_Free_Document — Frees hw_document
  • hw_GetAnchors — Object ids of anchors of document
  • hw_GetAnchorsObj — Object records of anchors of document
  • hw_GetAndLock — Return object record and lock object
  • hw_GetChildColl — Object ids of child collections
  • hw_GetChildCollObj — Object records of child collections
  • hw_GetChildDocColl — Object ids of child documents of collection
  • hw_GetChildDocCollObj — Object records of child documents of collection
  • hw_GetObject — Object record
  • hw_GetObjectByQuery — Search object
  • hw_GetObjectByQueryColl — Search object in collection
  • hw_GetObjectByQueryCollObj — Search object in collection
  • hw_GetObjectByQueryObj — Search object
  • hw_GetParents — Object ids of parents
  • hw_GetParentsObj — Object records of parents
  • hw_getrellink — Get link from source to dest relative to rootid
  • hw_GetRemote — Gets a remote document
  • hw_getremotechildren — Gets children of remote document
  • hw_GetSrcByDestObj — Returns anchors pointing at object
  • hw_GetText — Retrieve text document
  • hw_getusername — Name of currently logged in user
  • hw_Identify — Identifies as user
  • hw_InCollections — Check if object ids in collections
  • hw_Info — Info about connection
  • hw_InsColl — Insert collection
  • hw_InsDoc — Insert document
  • hw_insertanchors — Inserts only anchors into text
  • hw_InsertDocument — Upload any document
  • hw_InsertObject — Inserts an object record
  • hw_mapid — Maps global id on virtual local id
  • hw_Modifyobject — Modifies object record
  • hw_mv — Moves objects
  • hw_New_Document — Create new document
  • hw_objrec2array — Convert attributes from object record to object array
  • hw_Output_Document — Prints hw_document
  • hw_pConnect — Make a persistent database connection
  • hw_PipeDocument — Retrieve any document
  • hw_Root — Root object id
  • hw_setlinkroot — Set the id to which links are calculated
  • hw_stat — Returns status string
  • hw_Unlock — Unlock object
  • hw_Who — List of currently logged in users
Integration with Apache
hw_Array2Objrec
Hyperwave


Convert attributes from object array to object record

Hyperwave 函数
hw_changeobject
Hyperwave 函数
PHP 手册

hw_Array2Objrec

(PHP 4)

hw_Array2Objrec — Convert attributes from object array to object record

说明

string hw_array2objrec ( array $object_array )

Converts an object_array into an object record. Multiple attributes like 'Title' in different languages are treated properly.

参数

object_array

The array.

返回值

Returns an object record.

参见

  • hw_objrec2array() - Convert attributes from object record to object array

Hyperwave 函数
hw_changeobject
Hyperwave 函数


Changes attributes of an object (obsolete)

hw_Array2Objrec
hw_Children
Hyperwave 函数
PHP 手册

hw_changeobject

(PHP 4)

hw_changeobject — Changes attributes of an object (obsolete)

说明

bool hw_changeobject ( int $link , int $objid , array $attributes )

Warning

本函数暂无文档，仅有参数列表。

hw_Array2Objrec
hw_Children
Hyperwave 函数


Object ids of children

hw_changeobject
hw_ChildrenObj
Hyperwave 函数
PHP 手册

hw_Children

(PHP 4)

hw_Children — Object ids of children

说明

array hw_children ( int $connection , int $objectID )

Returns the identifiers of the collection children.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object ids. Each id belongs to a child of the collection with ID objectID . The array contains all children both documents and collections.

hw_changeobject
hw_ChildrenObj
Hyperwave 函数


Object records of children

hw_Children
hw_Close
Hyperwave 函数
PHP 手册

hw_ChildrenObj

(PHP 4)

hw_ChildrenObj — Object records of children

说明

array hw_childrenobj ( int $connection , int $objectID )

Returns the object records of the collection children.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object records. Each object record belongs to a child of the collection with ID objectID . The array contains all children both documents and collections.

hw_Children
hw_Close
Hyperwave 函数


Closes the Hyperwave connection

hw_ChildrenObj
hw_Connect
Hyperwave 函数
PHP 手册

hw_Close

(PHP 4)

hw_Close — Closes the Hyperwave connection

说明

bool hw_close ( int $connection )

Closes down the connection to a Hyperwave server.

参数

connection

The connection identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

hw_ChildrenObj
hw_Connect
Hyperwave 函数


Opens a connection

hw_Close
hw_connection_info
Hyperwave 函数
PHP 手册

hw_Connect

(PHP 4)

hw_Connect — Opens a connection

说明

int hw_connect ( string $host , int $port [, string $username ], string $password )

Opens a connection to a Hyperwave server. You can have multiple connections open at once.

参数

host

The server host name.

port

The server port number.

username

The Hyperwave user name. If omitted, no identification with the server will be done. It is similar to identify as user anonymous.

password

The password for username . Keep in mind, that the password is not encrypted.

返回值

Returns a connection index on success, or FALSE if the connection could not be made.

参见

  • hw_pconnect() - Make a persistent database connection

hw_Close
hw_connection_info
Hyperwave 函数


Prints information about the connection to Hyperwave server

hw_Connect
hw_cp
Hyperwave 函数
PHP 手册

hw_connection_info

(PHP 4)

hw_connection_info — Prints information about the connection to Hyperwave server

说明

void hw_connection_info ( int $link )

Warning

本函数暂无文档，仅有参数列表。

hw_Connect
hw_cp
Hyperwave 函数


Copies objects

hw_connection_info
hw_Deleteobject
Hyperwave 函数
PHP 手册

hw_cp

(PHP 4)

hw_cp — Copies objects

说明

int hw_cp ( int $connection , array $object_id_array , int $destination_id )

Copies the objects with object ids as specified in the second parameter to the collection with the id destination id .

参数

connection

The connection identifier.

object_id_array

An array of object ids.

destination_id

The target collection id.

返回值

Returns the number of copied objects.

参见

  • hw_mv() - Moves objects

hw_connection_info
hw_Deleteobject
Hyperwave 函数


Deletes object

hw_cp
hw_DocByAnchor
Hyperwave 函数
PHP 手册

hw_Deleteobject

(PHP 4)

hw_Deleteobject — Deletes object

说明

bool hw_deleteobject ( int $connection , int $object_to_delete )

Deletes the object with the given object id in the second parameter. It will delete all instances of the object.

参数

connection

The connection identifier.

object_to_delete

The object identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_mv() - Moves objects

hw_cp
hw_DocByAnchor
Hyperwave 函数


Object id object belonging to anchor

hw_Deleteobject
hw_DocByAnchorObj
Hyperwave 函数
PHP 手册

hw_DocByAnchor

(PHP 4)

hw_DocByAnchor — Object id object belonging to anchor

说明

int hw_docbyanchor ( int $connection , int $anchorID )

Returns an th object id of the document to which anchorID belongs.

参数

connection

The connection identifier.

anchorID

The anchor identifier.

返回值

Returns the document object id.

hw_Deleteobject
hw_DocByAnchorObj
Hyperwave 函数


Object record object belonging to anchor

hw_DocByAnchor
hw_Document_Attributes
Hyperwave 函数
PHP 手册

hw_DocByAnchorObj

(PHP 4)

hw_DocByAnchorObj — Object record object belonging to anchor

说明

string hw_docbyanchorobj ( int $connection , int $anchorID )

Returns an th object record of the document to which anchorID belongs.

参数

connection

The connection identifier.

anchorID

The anchor identifier.

返回值

Returns an object record.

hw_DocByAnchor
hw_Document_Attributes
Hyperwave 函数


Object record of hw_document

hw_DocByAnchorObj
hw_Document_BodyTag
Hyperwave 函数
PHP 手册

hw_Document_Attributes

(PHP 4)

hw_Document_Attributes — Object record of hw_document

说明

string hw_document_attributes ( int $hw_document )

Returns the object record of the document.

For backward compatibility, hw_documentattributes() is also accepted. This is deprecated, however.

参数

hw_document

The document identifier.

返回值

Returns the object record of the document.

参见

  • hw_document_bodytag() - Body tag of hw_document
  • hw_document_size() - Size of hw_document

hw_DocByAnchorObj
hw_Document_BodyTag
Hyperwave 函数


Body tag of hw_document

hw_Document_Attributes
hw_Document_Content
Hyperwave 函数
PHP 手册

hw_Document_BodyTag

(PHP 4)

hw_Document_BodyTag — Body tag of hw_document

说明

string hw_document_bodytag ( int $hw_document [, string $prefix ] )

Returns the BODY tag of the document. If the document is an HTML document the BODY tag should be printed before the document.

For backward compatibility, hw_documentbodytag() is also accepted. This is deprecated, however.

参数

hw_document

The document identifier.

prefix

返回值

Returns the BODY tag as a string.

参见

  • hw_document_attributes() - Object record of hw_document
  • hw_document_size() - Size of hw_document

hw_Document_Attributes
hw_Document_Content
Hyperwave 函数


Returns content of hw_document

hw_Document_BodyTag
hw_Document_SetContent
Hyperwave 函数
PHP 手册

hw_Document_Content

(PHP 4)

hw_Document_Content — Returns content of hw_document

说明

string hw_document_content ( int $hw_document )

Gets the content of the document.

参数

hw_document

The document identifier.

返回值

Returns the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record.

参见

  • hw_document_attributes() - Object record of hw_document
  • hw_document_size() - Size of hw_document
  • hw_document_setcontent() - Sets/replaces content of hw_document

hw_Document_BodyTag
hw_Document_SetContent
Hyperwave 函数


Sets/replaces content of hw_document

hw_Document_Content
hw_Document_Size
Hyperwave 函数
PHP 手册

hw_Document_SetContent

(PHP 4)

hw_Document_SetContent — Sets/replaces content of hw_document

说明

bool hw_document_setcontent ( int $hw_document , string $content )

Sets or replaces the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record. If you provide this information in the content of the document too, the Hyperwave server will change the object record accordingly when the document is inserted. Probably not a very good idea. If this functions fails the document will retain its old content.

参数

hw_document

The document identifier.

content

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_document_attributes() - Object record of hw_document
  • hw_document_size() - Size of hw_document
  • hw_document_content() - Returns content of hw_document

hw_Document_Content
hw_Document_Size
Hyperwave 函数


Size of hw_document

hw_Document_SetContent
hw_dummy
Hyperwave 函数
PHP 手册

hw_Document_Size

(PHP 4)

hw_Document_Size — Size of hw_document

说明

int hw_document_size ( int $hw_document )

Gets the size of the document.

For backward compatibility, hw_documentsize() is also accepted. This is deprecated, however.

参数

hw_document

The document identifier.

返回值

Returns the size in bytes of the document.

参见

  • hw_document_attributes() - Object record of hw_document
  • hw_document_bodytag() - Body tag of hw_document

hw_Document_SetContent
hw_dummy
Hyperwave 函数


Hyperwave dummy function

hw_Document_Size
hw_EditText
Hyperwave 函数
PHP 手册

hw_dummy

(PHP 4)

hw_dummy — Hyperwave dummy function

说明

string hw_dummy ( int $link , int $id , int $msgid )

Warning

本函数暂无文档，仅有参数列表。

hw_Document_Size
hw_EditText
Hyperwave 函数


Retrieve text document

hw_dummy
hw_Error
Hyperwave 函数
PHP 手册

hw_EditText

(PHP 4)

hw_EditText — Retrieve text document

说明

bool hw_edittext ( int $connection , int $hw_document )

Uploads the text document to the server. The object record of the document may not be modified while the document is edited.

This function will only works for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

参数

connection

The connection identifier.

hw_document

The document identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_pipedocument() - Retrieve any document
  • hw_free_document() - Frees hw_document
  • hw_document_bodytag() - Body tag of hw_document
  • hw_document_size() - Size of hw_document
  • hw_output_document() - Prints hw_document
  • hw_gettext() - Retrieve text document

hw_dummy
hw_Error
Hyperwave 函数


Error number

hw_EditText
hw_ErrorMsg
Hyperwave 函数
PHP 手册

hw_Error

(PHP 4)

hw_Error — Error number

说明

int hw_error ( int $connection )

Returns the last error number, for the last command.

参数

connection

The connection identifier.

返回值

Returns the last error number or 0 if no error occurred.

参见

  • hw_errormsg() - Returns error message

hw_EditText
hw_ErrorMsg
Hyperwave 函数


Returns error message

hw_Error
hw_Free_Document
Hyperwave 函数
PHP 手册

hw_ErrorMsg

(PHP 4)

hw_ErrorMsg — Returns error message

说明

string hw_errormsg ( int $connection )

Returns a string containing the last error message related to the last command.

参数

connection

The connection identifier.

返回值

Returns a string containing the last error message or 'No Error'. If FALSE is returned, this function failed.

参见

  • hw_error() - Error number

hw_Error
hw_Free_Document
Hyperwave 函数


Frees hw_document

hw_ErrorMsg
hw_GetAnchors
Hyperwave 函数
PHP 手册

hw_Free_Document

(PHP 4)

hw_Free_Document — Frees hw_document

说明

bool hw_free_document ( int $hw_document )

Frees the memory occupied by the Hyperwave document.

参数

hw_document

The document identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

hw_ErrorMsg
hw_GetAnchors
Hyperwave 函数


Object ids of anchors of document

hw_Free_Document
hw_GetAnchorsObj
Hyperwave 函数
PHP 手册

hw_GetAnchors

(PHP 4)

hw_GetAnchors — Object ids of anchors of document

说明

array hw_getanchors ( int $connection , int $objectID )

Returns an array of object ids with anchors of the specified document.

参数

connection

The connection identifier.

objectID

The document object id.

返回值

Returns an array of object ids.

hw_Free_Document
hw_GetAnchorsObj
Hyperwave 函数


Object records of anchors of document

hw_GetAnchors
hw_GetAndLock
Hyperwave 函数
PHP 手册

hw_GetAnchorsObj

(PHP 4)

hw_GetAnchorsObj — Object records of anchors of document

说明

array hw_getanchorsobj ( int $connection , int $objectID )

Returns records with anchors of the document with object ID objectID .

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object records.

hw_GetAnchors
hw_GetAndLock
Hyperwave 函数


Return object record and lock object

hw_GetAnchorsObj
hw_GetChildColl
Hyperwave 函数
PHP 手册

hw_GetAndLock

(PHP 4)

hw_GetAndLock — Return object record and lock object

说明

string hw_getandlock ( int $connection , int $objectID )

Returns the object record for the object with ID objectID . It will also lock the object, so other users cannot access it until it is unlocked.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns the object record for the object with ID objectID .

参见

  • hw_unlock() - Unlock object
  • hw_getobject() - Object record

hw_GetAnchorsObj
hw_GetChildColl
Hyperwave 函数


Object ids of child collections

hw_GetAndLock
hw_GetChildCollObj
Hyperwave 函数
PHP 手册

hw_GetChildColl

(PHP 4)

hw_GetChildColl — Object ids of child collections

说明

array hw_getchildcoll ( int $connection , int $objectID )

Returns object ids. Each object ID belongs to a child collection of the collection with ID objectID . The function will not return child documents.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object ids.

参见

  • hw_children() - Object ids of children
  • hw_getchilddoccoll() - Object ids of child documents of collection

hw_GetAndLock
hw_GetChildCollObj
Hyperwave 函数


Object records of child collections

hw_GetChildColl
hw_GetChildDocColl
Hyperwave 函数
PHP 手册

hw_GetChildCollObj

(PHP 4)

hw_GetChildCollObj — Object records of child collections

说明

array hw_getchildcollobj ( int $connection , int $objectID )

Returns object records. Each object records belongs to a child collection of the collection with ID objectID . The function will not return child documents.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object records.

参见

  • hw_childrenobj() - Object records of children
  • hw_getchilddoccollobj() - Object records of child documents of collection

hw_GetChildColl
hw_GetChildDocColl
Hyperwave 函数


Object ids of child documents of collection

hw_GetChildCollObj
hw_GetChildDocCollObj
Hyperwave 函数
PHP 手册

hw_GetChildDocColl

(PHP 4)

hw_GetChildDocColl — Object ids of child documents of collection

说明

array hw_getchilddoccoll ( int $connection , int $objectID )

Returns array of object ids for child documents of a collection.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object ids.

参见

  • hw_children() - Object ids of children
  • hw_getchildcoll() - Object ids of child collections

hw_GetChildCollObj
hw_GetChildDocCollObj
Hyperwave 函数


Object records of child documents of collection

hw_GetChildDocColl
hw_GetObject
Hyperwave 函数
PHP 手册

hw_GetChildDocCollObj

(PHP 4)

hw_GetChildDocCollObj — Object records of child documents of collection

说明

array hw_getchilddoccollobj ( int $connection , int $objectID )

Returns an array of object records for child documents of a collection.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an array of object records.

参见

  • hw_childrenobj() - Object records of children
  • hw_getchildcollobj() - Object records of child collections

hw_GetChildDocColl
hw_GetObject
Hyperwave 函数


Object record

hw_GetChildDocCollObj
hw_GetObjectByQuery
Hyperwave 函数
PHP 手册

hw_GetObject

(PHP 4)

hw_GetObject — Object record

说明

mixed hw_getobject ( int $connection , mixed $objectID [, string $query ] )

Gets an object record. If the second parameter is an array of integer the function will

参数

connection

The connection identifier.

objectID

The object identifier, or an array of identifiers.

query

The query string has the following syntax:

<expr> ::= "(" <expr> ")" |
           "!" &lt;expr> |          /* NOT */
           <expr> "||" <expr> |  /* OR */
           <expr> "&amp;&amp;" <expr> |  /* AND */
           <attribute> <operator> <value>

<attribute> ::= /* any attribute name (Title, Author, DocumentType ...) */

<operator> ::= "=" |    /* equal */
               "<" |    /* less than (string compare) */
               ">" |    /* greater than (string compare) */
               "~"      /* regular expression matching */
The query allows to further select certain objects from the list of given objects. Unlike the other query functions, this query may use not indexed attributes. How many object records are returned depends on the query and if access to the object is allowed.

返回值

Returns the object record for the given object ID if the second parameter is an integer.

If the second parameter is an array of integer the function will return an array of object records. In such a case the last parameter is also evaluated which is a query string.

参见

  • hw_getandlock() - Return object record and lock object
  • hw_getobjectbyquery() - Search object

hw_GetChildDocCollObj
hw_GetObjectByQuery
Hyperwave 函数


Search object

hw_GetObject
hw_GetObjectByQueryColl
Hyperwave 函数
PHP 手册

hw_GetObjectByQuery

(PHP 4)

hw_GetObjectByQuery — Search object

说明

array hw_getobjectbyquery ( int $connection , string $query , int $max_hits )

Searches for objects on the whole server and returns an array of object ids.

参数

connection

The connection identifier.

query

The query will only work with indexed attributes.

max_hits

The maximum number of matches is limited to max_hits . If max_hits is set to -1 the maximum number of matches is unlimited.

返回值

Returns an array of object ids.

参见

  • hw_getobjectbyqueryobj() - Search object

hw_GetObject
hw_GetObjectByQueryColl
Hyperwave 函数


Search object in collection

hw_GetObjectByQuery
hw_GetObjectByQueryCollObj
Hyperwave 函数
PHP 手册

hw_GetObjectByQueryColl

(PHP 4)

hw_GetObjectByQueryColl — Search object in collection

说明

array hw_getobjectbyquerycoll ( int $connection , int $objectID , string $query , int $max_hits )

Searches for objects in collection with ID objectID and returns an array of object ids.

参数

connection

The connection identifier.

objectID

The collection id.

query

The query will only work with indexed attributes.

max_hits

The maximum number of matches is limited to max_hits . If max_hits is set to -1 the maximum number of matches is unlimited.

返回值

Returns an array of object ids.

参见

  • hw_getobjectbyquerycollobj() - Search object in collection

hw_GetObjectByQuery
hw_GetObjectByQueryCollObj
Hyperwave 函数


Search object in collection

hw_GetObjectByQueryColl
hw_GetObjectByQueryObj
Hyperwave 函数
PHP 手册

hw_GetObjectByQueryCollObj

(PHP 4)

hw_GetObjectByQueryCollObj — Search object in collection

说明

array hw_getobjectbyquerycollobj ( int $connection , int $objectID , string $query , int $max_hits )

Searches for objects in collection with ID objectID and returns an array of object records.

参数

connection

The connection identifier.

objectID

The collection id.

query

The query will only work with indexed attributes.

max_hits

The maximum number of matches is limited to max_hits . If max_hits is set to -1 the maximum number of matches is unlimited.

返回值

Returns an array of object records.

参见

  • hw_getobjectbyquerycoll() - Search object in collection

hw_GetObjectByQueryColl
hw_GetObjectByQueryObj
Hyperwave 函数


Search object

hw_GetObjectByQueryCollObj
hw_GetParents
Hyperwave 函数
PHP 手册

hw_GetObjectByQueryObj

(PHP 4)

hw_GetObjectByQueryObj — Search object

说明

array hw_getobjectbyqueryobj ( int $connection , string $query , int $max_hits )

Searches for objects on the whole server and returns an array of object records.

参数

connection

The connection identifier.

query

The query will only work with indexed attributes.

max_hits

The maximum number of matches is limited to max_hits . If max_hits is set to -1 the maximum number of matches is unlimited.

返回值

Returns an array of object records.

参见

  • hw_getobjectbyquery() - Search object

hw_GetObjectByQueryCollObj
hw_GetParents
Hyperwave 函数


Object ids of parents

hw_GetObjectByQueryObj
hw_GetParentsObj
Hyperwave 函数
PHP 手册

hw_GetParents

(PHP 4)

hw_GetParents — Object ids of parents

说明

array hw_getparents ( int $connection , int $objectID )

Returns the object identifiers of the parents of an object.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an indexed array of object ids. Each object id belongs to a parent of the object with ID objectID .

hw_GetObjectByQueryObj
hw_GetParentsObj
Hyperwave 函数


Object records of parents

hw_GetParents
hw_getrellink
Hyperwave 函数
PHP 手册

hw_GetParentsObj

(PHP 4)

hw_GetParentsObj — Object records of parents

说明

array hw_getparentsobj ( int $connection , int $objectID )

Returns object records and statistical information about the object records. Each object record belongs to a parent of the object with ID objectID .

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns an indexed array of object records plus an associated array with statistical information about the object records. The associated array is the last entry of the returned array.

hw_GetParents
hw_getrellink
Hyperwave 函数


Get link from source to dest relative to rootid

hw_GetParentsObj
hw_GetRemote
Hyperwave 函数
PHP 手册

hw_getrellink

(PHP 4)

hw_getrellink — Get link from source to dest relative to rootid

说明

string hw_getrellink ( int $link , int $rootid , int $sourceid , int $destid )

Warning

本函数暂无文档，仅有参数列表。

hw_GetParentsObj
hw_GetRemote
Hyperwave 函数


Gets a remote document

hw_getrellink
hw_getremotechildren
Hyperwave 函数
PHP 手册

hw_GetRemote

(PHP 4)

hw_GetRemote — Gets a remote document

说明

int hw_getremote ( int $connection , int $objectID )

Gets a remote document.

Remote documents in Hyperwave notation are documents retrieved from an external source. Common remote documents are for example external web pages or queries in a database.

In order to be able to access external sources through remote documents Hyperwave introduces the HGI (Hyperwave Gateway Interface) which is similar to the CGI. Currently, only ftp, http-servers and some databases can be accessed by the HGI.

Calling hw_getremote() returns the document from the external source. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

参数

connection

The connection identifier.

objectID

The object identifier.

返回值

Returns a remote document.

参见

  • hw_getremotechildren() - Gets children of remote document

hw_getrellink
hw_getremotechildren
Hyperwave 函数


Gets children of remote document

hw_GetRemote
hw_GetSrcByDestObj
Hyperwave 函数
PHP 手册

hw_getremotechildren

(PHP 4)

hw_getremotechildren — Gets children of remote document

说明

mixed hw_getremotechildren ( int $connection , string $object_record )

Returns the children of a remote document. Children of a remote document are remote documents itself. This makes sense if a database query has to be narrowed and is explained in Hyperwave Programmers' Guide.

If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

参数

connection

The connection identifier.

object_record

The object record.

返回值

If the number of children is 1 the function will return the document itself formatted by the Hyperwave Gateway Interface (HGI). If the number of children is greater than 1 it will return an array of object record with each maybe the input value for another call to hw_getremotechildren(). Those object records are virtual and do not exist in the Hyperwave server, therefore they do not have a valid object ID. How exactly such an object record looks like is up to the HGI.

参见

  • hw_getremote() - Gets a remote document

hw_GetRemote
hw_GetSrcByDestObj
Hyperwave 函数


Returns anchors pointing at object

hw_getremotechildren
hw_GetText
Hyperwave 函数
PHP 手册

hw_GetSrcByDestObj

(PHP 4)

hw_GetSrcByDestObj — Returns anchors pointing at object

说明

array hw_getsrcbydestobj ( int $connection , int $objectID )

Gets the object records of all anchors pointing to the object with ID objectID .

参数

connection

The connection identifier.

objectID

The object identifier. The object can either be a document or an anchor of type destination.

返回值

Returns an array of object records.

参见

  • hw_getanchors() - Object ids of anchors of document

hw_getremotechildren
hw_GetText
Hyperwave 函数


Retrieve text document

hw_GetSrcByDestObj
hw_getusername
Hyperwave 函数
PHP 手册

hw_GetText

(PHP 4)

hw_GetText — Retrieve text document

说明

int hw_gettext ( int $connection , int $objectID [, mixed $rootID/prefix ] )

Returns the document with object ID objectID . If the document has anchors which can be inserted, they will be inserted already.

This function will only work for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

参数

connection

The connection identifier.

objectID

The object identifier.

rootID/prefix

The optional parameter rootID/prefix can be a string or an integer. If it is an integer it determines how links are inserted into the document. The default is 0 and will result in links that are constructed from the name of the link's destination object. This is useful for web applications. If a link points to an object with name 'internet_movie' the HTML link will be <A href="/internet_movie">. The actual location of the source and destination object in the document hierarchy is disregarded. You will have to set up your web browser, to rewrite that URL to for example '/my_script.php/internet_movie'. 'my_script.php' will have to evaluate $PATH_INFO and retrieve the document. All links will have the prefix '/my_script.php/'. If you do not want this you can set the optional parameter rootID/prefix to any prefix which is used instead. Is this case it has to be a string.

If rootID/prefix is an integer and unequal to 0 the link is constructed from all the names starting at the object with the id rootID/prefix separated by a slash relative to the current object.

If for example the above document 'internet_movie' is located at 'a-b-c-internet_movie' with '-' being the separator between hierarchy levels on the Hyperwave server and the source document is located at 'a-b-d-source' the resulting HTML link would be: <A HREF="../c/internet_movie">. This is useful if you want to download the whole server content onto disk and map the document hierarchy onto the file system.

返回值

Returns the text document.

参见

  • hw_pipedocument() - Retrieve any document
  • hw_free_document() - Frees hw_document
  • hw_document_bodytag() - Body tag of hw_document
  • hw_document_size() - Size of hw_document
  • hw_output_document() - Prints hw_document

hw_GetSrcByDestObj
hw_getusername
Hyperwave 函数


Name of currently logged in user

hw_GetText
hw_Identify
Hyperwave 函数
PHP 手册

hw_getusername

(PHP 4)

hw_getusername — Name of currently logged in user

说明

string hw_getusername ( int $connection )

Returns the username of the connection.

参数

connection

The connection identifier.

返回值

Returns the username as a string.

hw_GetText
hw_Identify
Hyperwave 函数


Identifies as user

hw_getusername
hw_InCollections
Hyperwave 函数
PHP 手册

hw_Identify

(PHP 4)

hw_Identify — Identifies as user

说明

string hw_identify ( int $link , string $username , string $password )

Identifies as user with username and password . Identification is only valid for the current session. I do not think this function will be needed very often. In most cases it will be easier to identify with the opening of the connection.

参数

link

The connection identifier.

username

The username.

password

The password.

参见

  • hw_connect() - Opens a connection

hw_getusername
hw_InCollections
Hyperwave 函数


Check if object ids in collections

hw_Identify
hw_Info
Hyperwave 函数
PHP 手册

hw_InCollections

(PHP 4)

hw_InCollections — Check if object ids in collections

说明

array hw_incollections ( int $connection , array $object_id_array , array $collection_id_array , int $return_collections )

Checks whether a set of objects (documents or collections) specified by the object_id_array is part of the collections listed in collection_id_array .

参数

connection

The connection identifier.

object_id_array

An array of object ids.

collection_id_array

An array of collection ids.

return_collections

When set to 0, the subset of object ids that is part of the collections (i.e., the documents or collections that are children of one or more collections of collection ids or their subcollections, recursively) is returned as an array.

When set to 1, the set of collections that have one or more objects of this subset as children are returned as an array. This option allows a client to, e.g., highlight the part of the collection hierarchy that contains the matches of a previous query, in a graphical overview.

返回值

Returns an array of object ids.

hw_Identify
hw_Info
Hyperwave 函数


Info about connection

hw_InCollections
hw_InsColl
Hyperwave 函数
PHP 手册

hw_Info

(PHP 4)

hw_Info — Info about connection

说明

string hw_info ( int $connection )

Returns information about the current connection.

参数

connection

The connection identifier.

返回值

The returned string has the following format: <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>

hw_InCollections
hw_InsColl
Hyperwave 函数


Insert collection

hw_Info
hw_InsDoc
Hyperwave 函数
PHP 手册

hw_InsColl

(PHP 4)

hw_InsColl — Insert collection

说明

int hw_inscoll ( int $connection , int $objectID , array $object_array )

Inserts a new collection with attributes as in object_array into collection with object ID objectID .

参数

connection

The connection identifier.

objectID

object_array

返回值

hw_Info
hw_InsDoc
Hyperwave 函数


Insert document

hw_InsColl
hw_insertanchors
Hyperwave 函数
PHP 手册

hw_InsDoc

(PHP 4)

hw_InsDoc — Insert document

说明

int hw_insdoc ( resource $connection , int $parentID , string $object_record [, string $text ] )

Inserts a new document with attributes as in object_record into acollection.

If you want to insert a general document of any kind use hw_insertdocument() instead.

参数

connection

The connection identifier.

parentID

The collection id.

object_record

Object attributes.

text

If provided, this ascii text will be inserted too.

返回值

参见

  • hw_insertdocument() - Upload any document
  • hw_inscoll() - Insert collection

hw_InsColl
hw_insertanchors
Hyperwave 函数


Inserts only anchors into text

hw_InsDoc
hw_InsertDocument
Hyperwave 函数
PHP 手册

hw_insertanchors

(PHP 4 >= 4.0.4)

hw_insertanchors — Inserts only anchors into text

说明

bool hw_insertanchors ( int $hwdoc , array $anchorecs , array $dest [, array $urlprefixes ] )

Warning

本函数暂无文档，仅有参数列表。

hw_InsDoc
hw_InsertDocument
Hyperwave 函数


Upload any document

hw_insertanchors
hw_InsertObject
Hyperwave 函数
PHP 手册

hw_InsertDocument

(PHP 4)

hw_InsertDocument — Upload any document

说明

int hw_insertdocument ( int $connection , int $parent_id , int $hw_document )

Uploads a document into the given collection.

The document has to be created before with hw_new_document(). Make sure that the object record of the new document contains at least the attributes: Type, DocumentType, Title and Name. Possibly you also want to set the MimeType.

参数

connection

The connection identifier.

parent_id

The collection identifier.

hw_document

The document identifier.

返回值

The functions returns the object id of the new document or FALSE.

参见

  • hw_pipedocument() - Retrieve any document

hw_insertanchors
hw_InsertObject
Hyperwave 函数


Inserts an object record

hw_InsertDocument
hw_mapid
Hyperwave 函数
PHP 手册

hw_InsertObject

(PHP 4)

hw_InsertObject — Inserts an object record

说明

int hw_insertobject ( int $connection , string $object_rec , string $parameter )

Inserts an object into the server.

Note: If you want to insert an Anchor, the attribute Position has always been set either to a start/end value or to 'invisible'. Invisible positions are needed if the annotation has no corresponding link in the annotation text.

参数

connection

The connection identifier.

object_rec

The object can be any valid hyperwave object.

parameter

See the HG-CSP documentation for a detailed information on how the parameters have to be.

参见

  • hw_pipedocument() - Retrieve any document
  • hw_insertdocument() - Upload any document
  • hw_insdoc() - Insert document
  • hw_inscoll() - Insert collection

hw_InsertDocument
hw_mapid
Hyperwave 函数


Maps global id on virtual local id

hw_InsertObject
hw_Modifyobject
Hyperwave 函数
PHP 手册

hw_mapid

(PHP 4)

hw_mapid — Maps global id on virtual local id

说明

int hw_mapid ( int $connection , int $server_id , int $object_id )

Maps a global object id on any hyperwave server, even those you did not connect to with hw_connect(), onto a virtual object id.

This virtual object id can then be used as any other object id, e.g. to obtain the object record with hw_getobject().

Note: In order to use this function you will have to set the F_DISTRIBUTED flag, which can currently only be set at compile time in hg_comm.c. It is not set by default. Read the comment at the beginning of hg_comm.c

参数

connection

The connection identifier.

server_id

The server id is the first part of the global object id (GOid) of the object which is actually the IP number as an integer.

object_id

The object identifier.

返回值

Returns the virtual object id.

hw_InsertObject
hw_Modifyobject
Hyperwave 函数


Modifies object record

hw_mapid
hw_mv
Hyperwave 函数
PHP 手册

hw_Modifyobject

(PHP 4)

hw_Modifyobject — Modifies object record

说明

bool hw_modifyobject ( int $connection , int $object_to_change , array $remove , array $add [, int $mode ] )

This command allows to remove, add, or modify individual attributes of an object record. The object is specified by the Object ID object_to_change . In order to modify an attribute one will have to remove the old one and add a new one. hw_modifyobject() will always remove the attributes before it adds attributes unless the value of the attribute to remove is not a string or array.

The keys of both arrays are the attributes name. The value of each array element can either be an array, a string or anything else. If it is an array each attribute value is constructed by the key of each element plus a colon and the value of each element. If it is a string it is taken as the attribute value. An empty string will result in a complete removal of that attribute. If the value is neither a string nor an array but something else, e.g. an integer, no operation at all will be performed on the attribute. This is necessary if you want to add a completely new attribute not just a new value for an existing attribute. If the remove array contained an empty string for that attribute, the attribute would be tried to be removed which would fail since it doesn't exist. The following addition of a new value for that attribute would also fail. Setting the value for that attribute to e.g. 0 would not even try to remove it and the addition will work.

If you would like to change the attribute 'Name' with the current value 'books' into 'articles' you will have to create two arrays and call hw_modifyobject().

Example #1 modifying an attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => "books");
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

In order to delete/add a name=value pair from/to the object record just pass the remove/add array and set the last/third parameter to an empty array. If the attribute is the first one with that name to add, set attribute value in the remove array to an integer.

Example #2 adding a completely new attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => 0);
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Note: Multilingual attributes, e.g. 'Title', can be modified in two ways. Either by providing the attributes value in its native form 'language':'title' or by providing an array with elements for each language as described above. The above example would than be:

Example #3 modifying Title attribute

<?php
       $remarr = array("Title" => "en:Books");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

or

Example #4 modifying Title attribute

<?php
       $remarr = array("Title" => array("en" => "Books"));
       $addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

This removes the English title 'Books' and adds the English title 'Articles' and the German title 'Artikel'.

Example #5 removing attribute

<?php
       $remarr = array("Title" => "");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Note: This will remove all attributes with the name 'Title' and adds a new 'Title' attribute. This comes in handy if you want to remove attributes recursively.

Note: If you need to delete all attributes with a certain name you will have to pass an empty string as the attribute value.

Note: Only the attributes 'Title', 'Description' and 'Keyword' will properly handle the language prefix. If those attributes don't carry a language prefix, the prefix 'xx' will be assigned.

Note: The 'Name' attribute is somewhat special. In some cases it cannot be complete removed. You will get an error message 'Change of base attribute' (not clear when this happens). Therefore you will always have to add a new Name first and than remove the old one.

Note: You may not surround this function by calls to hw_getandlock() and hw_unlock(). hw_modifyobject() does this internally.

参数

connection

The connection identifier.

object_to_change

The object to be changed.

remove

An array of attributes to remove.

add

An array of attributes to add.

mode

The last parameter determines if the modification is performed recursively. 1 means recursive modification. If some of the objects cannot be modified they will be skipped without notice. hw_error() may not indicate an error though some of the objects could not be modified.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

hw_mapid
hw_mv
Hyperwave 函数


Moves objects

hw_Modifyobject
hw_New_Document
Hyperwave 函数
PHP 手册

hw_mv

(PHP 4)

hw_mv — Moves objects

说明

int hw_mv ( int $connection , array $object_id_array , int $source_id , int $destination_id )

Moves the specified objects from a collection to another.

参数

connection

The connection identifier.

object_id_array

An array of object ids.

source_id

The source collection id.

destination_id

The target collection id. If set to 0 the objects will be unlinked from the source collection. If this is the last instance of that object it will be deleted. If you want to delete all instances at once, use hw_deleteobject().

返回值

Returns the number of moved objects.

参见

  • hw_cp() - Copies objects
  • hw_deleteobject() - Deletes object

hw_Modifyobject
hw_New_Document
Hyperwave 函数


Create new document

hw_mv
hw_objrec2array
Hyperwave 函数
PHP 手册

hw_New_Document

(PHP 4)

hw_New_Document — Create new document

说明

int hw_new_document ( string $object_record , string $document_data , int $document_size )

Returns a new Hyperwave document with the given document data and object record.

This function does not insert the document into the Hyperwave server.

参数

object_record

The object record.

document_data

The document data.

document_size

The document size. Must be the length of document_data .

返回值

Returns the new Hyperwave document.

参见

  • hw_free_document() - Frees hw_document
  • hw_document_size() - Size of hw_document
  • hw_document_bodytag() - Body tag of hw_document
  • hw_output_document() - Prints hw_document
  • hw_insertdocument() - Upload any document

hw_mv
hw_objrec2array
Hyperwave 函数


Convert attributes from object record to object array

hw_New_Document
hw_Output_Document
Hyperwave 函数
PHP 手册

hw_objrec2array

(PHP 4)

hw_objrec2array — Convert attributes from object record to object array

说明

array hw_objrec2array ( string $object_record [, array $format ] )

Converts an object_record into an object array.

参数

object_record

The object record.

format

An associative array with the attribute name as its key and the value being one of HW_ATTR_LANG or HW_ATTR_NONE.

返回值

Returns an array. The keys of the resulting array are the attributes names. Multi-value attributes like 'Title' in different languages form its own array. The keys of this array are the left part to the colon of the attribute value. This left part must be two characters long.

Other multi-value attributes without a prefix form an indexed array. If the optional parameter is missing the attributes 'Title', 'Description' and 'Keyword' are treated as language attributes and the attributes 'Group', 'Parent' and 'HtmlAttr' as non-prefixed multi-value attributes. By passing an array holding the type for each attribute you can alter this behaviour.

参见

  • hw_array2objrec() - Convert attributes from object array to object record

hw_New_Document
hw_Output_Document
Hyperwave 函数


Prints hw_document

hw_objrec2array
hw_pConnect
Hyperwave 函数
PHP 手册

hw_Output_Document

(PHP 4)

hw_Output_Document — Prints hw_document

说明

bool hw_output_document ( int $hw_document )

Prints the document without the BODY tag.

For backward compatibility, hw_outputdocument() is also accepted. This is deprecated, however.

参数

hw_document

The document identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

hw_objrec2array
hw_pConnect
Hyperwave 函数


Make a persistent database connection

hw_Output_Document
hw_PipeDocument
Hyperwave 函数
PHP 手册

hw_pConnect

(PHP 4)

hw_pConnect — Make a persistent database connection

说明

int hw_pconnect ( string $host , int $port [, string $username ], string $password )

Opens a persistent connection to a Hyperwave server. You can have multiple persistent connections open at once.

参数

host

The server host name.

port

The server port number.

username

The Hyperwave user name. If omitted, no identification with the server will be done. It is similar to identify as user anonymous.

password

The password for username . Keep in mind, that the password is not encrypted.

返回值

Returns a connection index on success, or FALSE if the connection could not be made.

参见

  • hw_connect() - Opens a connection

hw_Output_Document
hw_PipeDocument
Hyperwave 函数


Retrieve any document

hw_pConnect
hw_Root
Hyperwave 函数
PHP 手册

hw_PipeDocument

(PHP 4)

hw_PipeDocument — Retrieve any document

说明

int hw_pipedocument ( int $connection , int $objectID [, array $url_prefixes ] )

Gets the Hyperwave document with the given object ID. If the document has anchors which can be inserted, they will have been inserted already.

The document will be transferred via a special data connection which does not block the control connection.

参数

connection

The connection identifier.

objectID

The object identifier.

url_prefixes

返回值

Returns the Hyperwave document.

参见

  • hw_gettext() - Retrieve text document
  • hw_free_document() - Frees hw_document
  • hw_document_size() - Size of hw_document
  • hw_document_bodytag() - Body tag of hw_document
  • hw_output_document() - Prints hw_document

hw_pConnect
hw_Root
Hyperwave 函数


Root object id

hw_PipeDocument
hw_setlinkroot
Hyperwave 函数
PHP 手册

hw_Root

(PHP 4)

hw_Root — Root object id

说明

int hw_root ( void )

Returns the object ID of the hyperroot collection. Currently this is always 0. The child collection of the hyperroot is the root collection of the connected server.

返回值

Returns 0.

hw_PipeDocument
hw_setlinkroot
Hyperwave 函数


Set the id to which links are calculated

hw_Root
hw_stat
Hyperwave 函数
PHP 手册

hw_setlinkroot

(PHP 4)

hw_setlinkroot — Set the id to which links are calculated

说明

int hw_setlinkroot ( int $link , int $rootid )

Warning

本函数暂无文档，仅有参数列表。

hw_Root
hw_stat
Hyperwave 函数


Returns status string

hw_setlinkroot
hw_Unlock
Hyperwave 函数
PHP 手册

hw_stat

(PHP 4)

hw_stat — Returns status string

说明

string hw_stat ( int $link )

Warning

本函数暂无文档，仅有参数列表。

hw_setlinkroot
hw_Unlock
Hyperwave 函数


Unlock object

hw_stat
hw_Who
Hyperwave 函数
PHP 手册

hw_Unlock

(PHP 4)

hw_Unlock — Unlock object

说明

bool hw_unlock ( int $connection , int $objectID )

Unlocks a document, so other users regain access.

参数

connection

The connection identifier.

objectID

The document object identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_getandlock() - Return object record and lock object

hw_stat
hw_Who
Hyperwave 函数


List of currently logged in users

hw_Unlock
Hyperwave API
Hyperwave 函数
PHP 手册

hw_Who

(PHP 4)

hw_Who — List of currently logged in users

说明

array hw_who ( int $connection )

Gets the list of currently logged in users.

参数

connection

The connection identifier.

返回值

Returns an array of users currently logged into the Hyperwave server. Each entry in this array is an array itself containing the elements id, name, system, onSinceDate, onSinceTime, TotalTime and self. 'self' is 1 if this entry belongs to the user who initiated the request.

hw_Unlock
Hyperwave API
Hyperwave 函数


Hyperwave API

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Hyperwave API 函数
    • hw_api_attribute->key — Returns key of the attribute
    • hw_api_attribute->langdepvalue — Returns value for a given language
    • hw_api_attribute->value — Returns value of the attribute
    • hw_api_attribute->values — Returns all values of the attribute
    • hw_api_attribute — Creates instance of class hw_api_attribute
    • hw_api->checkin — Checks in an object
    • hw_api->checkout — Checks out an object
    • hw_api->children — Returns children of an object
    • hw_api_content->mimetype — Returns mimetype
    • hw_api_content->read — Read content
    • hw_api->content — Returns content of an object
    • hw_api->copy — Copies physically
    • hw_api->dbstat — Returns statistics about database server
    • hw_api->dcstat — Returns statistics about document cache server
    • hw_api->dstanchors — Returns a list of all destination anchors
    • hw_api->dstofsrcanchor — Returns destination of a source anchor
    • hw_api_error->count — Returns number of reasons
    • hw_api_error->reason — Returns reason of error
    • hw_api->find — Search for objects
    • hw_api->ftstat — Returns statistics about fulltext server
    • hwapi_hgcsp — Returns object of class hw_api
    • hw_api->hwstat — Returns statistics about Hyperwave server
    • hw_api->identify — Log into Hyperwave Server
    • hw_api->info — Returns information about server configuration
    • hw_api->insert — Inserts a new object
    • hw_api->insertanchor — Inserts a new object of type anchor
    • hw_api->insertcollection — Inserts a new object of type collection
    • hw_api->insertdocument — Inserts a new object of type document
    • hw_api->link — Creates a link to an object
    • hw_api->lock — Locks an object
    • hw_api->move — Moves object between collections
    • hw_api_content — Create new instance of class hw_api_content
    • hw_api_object->assign — Clones object
    • hw_api_object->attreditable — Checks whether an attribute is editable
    • hw_api_object->count — Returns number of attributes
    • hw_api_object->insert — Inserts new attribute
    • hw_api_object — Creates a new instance of class hw_api_object
    • hw_api_object->remove — Removes attribute
    • hw_api_object->title — Returns the title attribute
    • hw_api_object->value — Returns value of attribute
    • hw_api->object — Retrieve attribute information
    • hw_api->objectbyanchor — Returns the object an anchor belongs to
    • hw_api->parents — Returns parents of an object
    • hw_api_reason->description — Returns description of reason
    • hw_api_reason->type — Returns type of reason
    • hw_api->remove — Delete an object
    • hw_api->replace — Replaces an object
    • hw_api->setcommittedversion — Commits version other than last version
    • hw_api->srcanchors — Returns a list of all source anchors
    • hw_api->srcsofdst — Returns source of a destination object
    • hw_api->unlock — Unlocks a locked object
    • hw_api->user — Returns the own user object
    • hw_api->userlist — Returns a list of all logged in users
hw_Who
简介
其它服务


简介

Hyperwave has been developed at » IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at » http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.2.0.

Hyperwave API
安装/配置
Hyperwave API


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Hyperwave API


需求

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

安装/配置
安装
安装/配置


安装

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Hyperwave API configuration options
Name | Default | Changeable | Changelog
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Hyperwave API 函数
Hyperwave API


Hyperwave API 函数

Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API
  • HW_API_Object
  • HW_API_Attribute
  • HW_API_Error
  • HW_API_Content
  • HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".
  • parentIdentifier The name or id of an object which is considered to be a parent.
  • object An instance of class HW_API_Object.
  • parameters An instance of class HW_API_Object.
  • version The version of an object.
  • mode An integer value determine the way an operation is executed.
  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.
  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

Note: Methods returning boolean can return TRUE, FALSE or HW_API_Error object.

Table of Contents

  • hw_api_attribute->key — Returns key of the attribute
  • hw_api_attribute->langdepvalue — Returns value for a given language
  • hw_api_attribute->value — Returns value of the attribute
  • hw_api_attribute->values — Returns all values of the attribute
  • hw_api_attribute — Creates instance of class hw_api_attribute
  • hw_api->checkin — Checks in an object
  • hw_api->checkout — Checks out an object
  • hw_api->children — Returns children of an object
  • hw_api_content->mimetype — Returns mimetype
  • hw_api_content->read — Read content
  • hw_api->content — Returns content of an object
  • hw_api->copy — Copies physically
  • hw_api->dbstat — Returns statistics about database server
  • hw_api->dcstat — Returns statistics about document cache server
  • hw_api->dstanchors — Returns a list of all destination anchors
  • hw_api->dstofsrcanchor — Returns destination of a source anchor
  • hw_api_error->count — Returns number of reasons
  • hw_api_error->reason — Returns reason of error
  • hw_api->find — Search for objects
  • hw_api->ftstat — Returns statistics about fulltext server
  • hwapi_hgcsp — Returns object of class hw_api
  • hw_api->hwstat — Returns statistics about Hyperwave server
  • hw_api->identify — Log into Hyperwave Server
  • hw_api->info — Returns information about server configuration
  • hw_api->insert — Inserts a new object
  • hw_api->insertanchor — Inserts a new object of type anchor
  • hw_api->insertcollection — Inserts a new object of type collection
  • hw_api->insertdocument — Inserts a new object of type document
  • hw_api->link — Creates a link to an object
  • hw_api->lock — Locks an object
  • hw_api->move — Moves object between collections
  • hw_api_content — Create new instance of class hw_api_content
  • hw_api_object->assign — Clones object
  • hw_api_object->attreditable — Checks whether an attribute is editable
  • hw_api_object->count — Returns number of attributes
  • hw_api_object->insert — Inserts new attribute
  • hw_api_object — Creates a new instance of class hw_api_object
  • hw_api_object->remove — Removes attribute
  • hw_api_object->title — Returns the title attribute
  • hw_api_object->value — Returns value of attribute
  • hw_api->object — Retrieve attribute information
  • hw_api->objectbyanchor — Returns the object an anchor belongs to
  • hw_api->parents — Returns parents of an object
  • hw_api_reason->description — Returns description of reason
  • hw_api_reason->type — Returns type of reason
  • hw_api->remove — Delete an object
  • hw_api->replace — Replaces an object
  • hw_api->setcommittedversion — Commits version other than last version
  • hw_api->srcanchors — Returns a list of all source anchors
  • hw_api->srcsofdst — Returns source of a destination object
  • hw_api->unlock — Unlocks a locked object
  • hw_api->user — Returns the own user object
  • hw_api->userlist — Returns a list of all logged in users
预定义常量
hw_api_attribute->key
Hyperwave API


Returns key of the attribute

Hyperwave API 函数
hw_api_attribute->langdepvalue
Hyperwave API 函数
PHP 手册

hw_api_attribute->key

(No version information available, might be only in CVS)

hw_api_attribute->key — Returns key of the attribute

说明

hw_api_attribute
string key ( void )

Returns the name of the attribute.

返回值

Returns the name of the attribute as a string.

参见

  • hw_api_attribute->value

Hyperwave API 函数
hw_api_attribute->langdepvalue
Hyperwave API 函数


Returns value for a given language

hw_api_attribute->key
hw_api_attribute->value
Hyperwave API 函数
PHP 手册

hw_api_attribute->langdepvalue

(No version information available, might be only in CVS)

hw_api_attribute->langdepvalue — Returns value for a given language

说明

hw_api_attribute
string langdepvalue ( string $language )

Returns the value in the given language of the attribute.

参数

language

返回值

Returns the value of the attribute as a string.

参见

  • hw_api_attribute->value

hw_api_attribute->key
hw_api_attribute->value
Hyperwave API 函数


Returns value of the attribute

hw_api_attribute->langdepvalue
hw_api_attribute->values
Hyperwave API 函数
PHP 手册

hw_api_attribute->value

(No version information available, might be only in CVS)

hw_api_attribute->value — Returns value of the attribute

说明

hw_api_attribute
string value ( void )

Gets the value of the attribute.

返回值

Returns the value, as a string.

参见

  • hw_api_attribute->key
  • hw_api_attribute->values

hw_api_attribute->langdepvalue
hw_api_attribute->values
Hyperwave API 函数


Returns all values of the attribute

hw_api_attribute->value
hw_api_attribute
Hyperwave API 函数
PHP 手册

hw_api_attribute->values

(No version information available, might be only in CVS)

hw_api_attribute->values — Returns all values of the attribute

说明

hw_api_attribute
array values ( void )

Gets all values of the attribute.

返回值

Returns an array of attribute values.

参见

  • hw_api_attribute->value

hw_api_attribute->value
hw_api_attribute
Hyperwave API 函数


Creates instance of class hw_api_attribute

hw_api_attribute->values
hw_api->checkin
Hyperwave API 函数
PHP 手册

hw_api_attribute

(No version information available, might be only in CVS)

hw_api_attribute — Creates instance of class hw_api_attribute

说明

HW_API_Attribute hw_api_attribute ([ string $name [, string $value ]] )

Creates a new instance of hw_api_attribute with the given name and value.

参数

name

The attribute name.

value

The attribute value.

返回值

Returns an instance of hw_api_attribute.

hw_api_attribute->values
hw_api->checkin
Hyperwave API 函数


Checks in an object

hw_api_attribute
hw_api->checkout
Hyperwave API 函数
PHP 手册

hw_api->checkin

(No version information available, might be only in CVS)

hw_api->checkin — Checks in an object

说明

hw_api
bool checkin ( array $parameter )

This function checks in an object or a whole hierarchy of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL
Checks in and commits the object. The object must be a document.
HW_API_CHECKIN_RECURSIVE
If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.
HW_API_CHECKIN_FORCE_VERSION_CONTROL
Checks in an object even if it is not under version control.
HW_API_CHECKIN_REVERT_IF_NOT_CHANGED
Check if the new version is different from the last version. Unless this is the case the object will be checked in.
HW_API_CHECKIN_KEEP_TIME_MODIFIED
Keeps the time modified from the most recent object.
HW_API_CHECKIN_NO_AUTO_COMMIT
The object is not automatically committed on check-in.

参数

parameter

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_api->checkout

hw_api_attribute
hw_api->checkout
Hyperwave API 函数


Checks out an object

hw_api->checkin
hw_api->children
Hyperwave API 函数
PHP 手册

hw_api->checkout

(No version information available, might be only in CVS)

hw_api->checkout — Checks out an object

说明

hw_api
bool checkout ( array $parameter )

This function checks out an object or a whole hierarchy of objects.

参数

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL
Checks out an object. The object must be a document.
HW_API_CHECKIN_RECURSIVE
If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_api->checkin

hw_api->checkin
hw_api->children
Hyperwave API 函数


Returns children of an object

hw_api->checkout
hw_api_content->mimetype
Hyperwave API 函数
PHP 手册

hw_api->children

(No version information available, might be only in CVS)

hw_api->children — Returns children of an object

说明

hw_api
array children ( array $parameter )

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query.

参数

parameter

The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

返回值

The return value is an array of objects of type HW_API_Object or HW_API_Error.

参见

  • hw_api->parents

hw_api->checkout
hw_api_content->mimetype
Hyperwave API 函数


Returns mimetype

hw_api->children
hw_api_content->read
Hyperwave API 函数
PHP 手册

hw_api_content->mimetype

(No version information available, might be only in CVS)

hw_api_content->mimetype — Returns mimetype

说明

hw_api_content
string mimetype ( void )

Returns the mimetype of the content.

返回值

Returns the mimetype as a string.

hw_api->children
hw_api_content->read
Hyperwave API 函数


Read content

hw_api_content->mimetype
hw_api->content
Hyperwave API 函数
PHP 手册

hw_api_content->read

(No version information available, might be only in CVS)

hw_api_content->read — Read content

说明

hw_api_content
string read ( string $buffer , int $len )

Reads len bytes from the content into the given buffer.

参数

buffer

len

Number of bytes to read.

返回值

hw_api_content->mimetype
hw_api->content
Hyperwave API 函数


Returns content of an object

hw_api_content->read
hw_api->copy
Hyperwave API 函数
PHP 手册

hw_api->content

(No version information available, might be only in CVS)

hw_api->content — Returns content of an object

说明

hw_api
HW_API_Content content ( array $parameter )

This function returns the content of a document as an object of type hw_api_content.

参数

parameter

The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN.

HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable.

HW_API_CONTENT_REACHABLELINKS tells this method to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

返回值

Returns an instance of hw_api_content.

hw_api_content->read
hw_api->copy
Hyperwave API 函数


Copies physically

hw_api->content
hw_api->dbstat
Hyperwave API 函数
PHP 手册

hw_api->copy

(No version information available, might be only in CVS)

hw_api->copy — Copies physically

说明

hw_api
hw_api_content copy ( array $parameter )

This function will make a physical copy including the content if it exists and returns the new object or an error object.

参数

parameter

The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

返回值

Returns the copied object.

参见

  • hw_api->move
  • hw_api->link

hw_api->content
hw_api->dbstat
Hyperwave API 函数


Returns statistics about database server

hw_api->copy
hw_api->dcstat
Hyperwave API 函数
PHP 手册

hw_api->dbstat

(No version information available, might be only in CVS)

hw_api->dbstat — Returns statistics about database server

说明

hw_api
hw_api_object dbstat ( array $parameter )

Returns statistics about database server.

参数

parameter

返回值

参见

  • hw_api->dcstat
  • hw_api->hwstat
  • hw_api->ftstat

hw_api->copy
hw_api->dcstat
Hyperwave API 函数


Returns statistics about document cache server

hw_api->dbstat
hw_api->dstanchors
Hyperwave API 函数
PHP 手册

hw_api->dcstat

(No version information available, might be only in CVS)

hw_api->dcstat — Returns statistics about document cache server

说明

hw_api
hw_api_object dcstat ( array $parameter )

Returns statistics about document cache server.

参数

parameter

返回值

参见

  • hw_api->dbstat
  • hw_api->hwstat
  • hw_api->ftstat

hw_api->dbstat
hw_api->dstanchors
Hyperwave API 函数


Returns a list of all destination anchors

hw_api->dcstat
hw_api->dstofsrcanchor
Hyperwave API 函数
PHP 手册

hw_api->dstanchors

(No version information available, might be only in CVS)

hw_api->dstanchors — Returns a list of all destination anchors

说明

hw_api
array dstanchors ( array $parameter )

Retrieves all destination anchors of an object.

参数

parameter

The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

返回值

参见

  • hw_api->srcanchors

hw_api->dcstat
hw_api->dstofsrcanchor
Hyperwave API 函数


Returns destination of a source anchor

hw_api->dstanchors
hw_api_error->count
Hyperwave API 函数
PHP 手册

hw_api->dstofsrcanchor

(No version information available, might be only in CVS)

hw_api->dstofsrcanchor — Returns destination of a source anchor

说明

hw_api
hw_api_object dstofsrcanchor ( array $parameter )

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document.

参数

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

返回值

参见

  • hw_api->srcanchors
  • hw_api->dstanchors
  • hw_api->objectbyanchor

hw_api->dstanchors
hw_api_error->count
Hyperwave API 函数


Returns number of reasons

hw_api->dstofsrcanchor
hw_api_error->reason
Hyperwave API 函数
PHP 手册

hw_api_error->count

(No version information available, might be only in CVS)

hw_api_error->count — Returns number of reasons

说明

hw_api_error
int count ( void )

Returns the number of error reasons.

返回值

Returns the number of errors, as an integer.

参见

  • hw_api_error->reason

hw_api->dstofsrcanchor
hw_api_error->reason
Hyperwave API 函数


Returns reason of error

hw_api_error->count
hw_api->find
Hyperwave API 函数
PHP 手册

hw_api_error->reason

(No version information available, might be only in CVS)

hw_api_error->reason — Returns reason of error

说明

hw_api_error
HW_API_Reason reason ( void )

Returns the first error reason.

返回值

参见

  • hw_api_error->count

hw_api_error->count
hw_api->find
Hyperwave API 函数


Search for objects

hw_api_error->reason
hw_api->ftstat
Hyperwave API 函数
PHP 手册

hw_api->find

(No version information available, might be only in CVS)

hw_api->find — Search for objects

说明

hw_api
array find ( array $parameter )

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index.

参数

parameter

The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', 'numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

返回值

hw_api_error->reason
hw_api->ftstat
Hyperwave API 函数


Returns statistics about fulltext server

hw_api->find
hwapi_hgcsp
Hyperwave API 函数
PHP 手册

hw_api->ftstat

(No version information available, might be only in CVS)

hw_api->ftstat — Returns statistics about fulltext server

说明

hw_api
hw_api_object ftstat ( array $parameter )

Returns statistics about fulltext server.

参数

parameter

返回值

参见

  • hw_api->dcstat
  • hw_api->dbstat
  • hw_api->hwstat

hw_api->find
hwapi_hgcsp
Hyperwave API 函数


Returns object of class hw_api

hw_api->ftstat
hw_api->hwstat
Hyperwave API 函数
PHP 手册

hwapi_hgcsp

(No version information available, might be only in CVS)

hwapi_hgcsp — Returns object of class hw_api

说明

HW_API hwapi_hgcsp ( string $hostname [, int $port ] )

Opens a connection to the Hyperwave server on host hostname . The protocol used is HGCSP.

参数

hostname

The host name.

port

If you do not pass a port number, 418 is used.

返回值

Returns an instance of HW_API.

hw_api->ftstat
hw_api->hwstat
Hyperwave API 函数


Returns statistics about Hyperwave server

hwapi_hgcsp
hw_api->identify
Hyperwave API 函数
PHP 手册

hw_api->hwstat

(No version information available, might be only in CVS)

hw_api->hwstat — Returns statistics about Hyperwave server

说明

hw_api
hw_api_object hwstat ( array $parameter )

Returns statistics about Hyperwave server.

参数

parameter

返回值

参见

  • hw_api->dcstat
  • hw_api->dbstat
  • hw_api->ftstat

hwapi_hgcsp
hw_api->identify
Hyperwave API 函数


Log into Hyperwave Server

hw_api->hwstat
hw_api->info
Hyperwave API 函数
PHP 手册

hw_api->identify

(No version information available, might be only in CVS)

hw_api->identify — Log into Hyperwave Server

说明

hw_api
bool identify ( array $parameter )

Logs into the Hyperwave Server.

参数

parameter

The parameter array must contain the elements 'username' and 'password'.

返回值

Returns an object of typeHW_API_Error if identification failed or TRUE if it was successful.

hw_api->hwstat
hw_api->info
Hyperwave API 函数


Returns information about server configuration

hw_api->identify
hw_api->insert
Hyperwave API 函数
PHP 手册

hw_api->info

(No version information available, might be only in CVS)

hw_api->info — Returns information about server configuration

说明

hw_api
array info ( array $parameter )

Returns information about server configuration.

参数

parameter

返回值

参见

  • hw_api->dcstat
  • hw_api->dbstat
  • hw_api->ftstat
  • hw_api->hwstat

hw_api->identify
hw_api->insert
Hyperwave API 函数


Inserts a new object

hw_api->info
hw_api->insertanchor
Hyperwave API 函数
PHP 手册

hw_api->insert

(No version information available, might be only in CVS)

hw_api->insert — Inserts a new object

说明

hw_api
hw_api_object insert ( array $parameter )

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set.

参数

parameter

The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL
The object in inserted into the server.
HW_API_INSERT_FORCE_VERSION_CONTROL
HW_API_INSERT_AUTOMATIC_CHECKOUT
HW_API_INSERT_PLAIN
HW_API_INSERT_KEEP_TIME_MODIFIED
HW_API_INSERT_DELAY_INDEXING

返回值

参见

  • hw_api->replace

hw_api->info
hw_api->insertanchor
Hyperwave API 函数


Inserts a new object of type anchor

hw_api->insert
hw_api->insertcollection
Hyperwave API 函数
PHP 手册

hw_api->insertanchor

(No version information available, might be only in CVS)

hw_api->insertanchor — Inserts a new object of type anchor

说明

hw_api
hw_api_object insertanchor ( array $parameter )

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor.

参数

parameter

The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

返回值

参见

  • hw_api->insert
  • hw_api->insertdocument
  • hw_api->insertcollection

hw_api->insert
hw_api->insertcollection
Hyperwave API 函数


Inserts a new object of type collection

hw_api->insertanchor
hw_api->insertdocument
Hyperwave API 函数
PHP 手册

hw_api->insertcollection

(No version information available, might be only in CVS)

hw_api->insertcollection — Inserts a new object of type collection

说明

hw_api
hw_api_object insertcollection ( array $parameter )

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection.

参数

parameter

The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

返回值

参见

  • hw_api->insert
  • hw_api->insertdocument
  • hw_api->insertanchor

hw_api->insertanchor
hw_api->insertdocument
Hyperwave API 函数


Inserts a new object of type document

hw_api->insertcollection
hw_api->link
Hyperwave API 函数
PHP 手册

hw_api->insertdocument

(No version information available, might be only in CVS)

hw_api->insertdocument — Inserts a new object of type document

说明

hw_api
hw_api_object insertdocument ( array $parameter )

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document.

参数

parameter

The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'.

See hwapi_insert() for the meaning of each element.

返回值

参见

  • hw_api->insert
  • hw_api->insertcollection
  • hw_api->insertanchor

hw_api->insertcollection
hw_api->link
Hyperwave API 函数


Creates a link to an object

hw_api->insertdocument
hw_api->lock
Hyperwave API 函数
PHP 手册

hw_api->link

(No version information available, might be only in CVS)

hw_api->link — Creates a link to an object

说明

hw_api
bool link ( array $parameter )

Creates a link to an object. Accessing this link is like accessing the object to links points to.

参数

parameter

The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

返回值

The function returns TRUE on success or an error object.

参见

  • hw_api->copy

hw_api->insertdocument
hw_api->lock
Hyperwave API 函数


Locks an object

hw_api->link
hw_api->move
Hyperwave API 函数
PHP 手册

hw_api->lock

(No version information available, might be only in CVS)

hw_api->lock — Locks an object

说明

hw_api
bool lock ( array $parameter )

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user.

参数

parameter

The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'.

'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within the collection and possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_api->unlock

hw_api->link
hw_api->move
Hyperwave API 函数


Moves object between collections

hw_api->lock
hw_api_content
Hyperwave API 函数
PHP 手册

hw_api->move

(No version information available, might be only in CVS)

hw_api->move — Moves object between collections

说明

hw_api
bool move ( array $parameter )

Moves object between collections.

参数

parameter

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_objrec2array() - Convert attributes from object record to object array

hw_api->lock
hw_api_content
Hyperwave API 函数


Create new instance of class hw_api_content

hw_api->move
hw_api_object->assign
Hyperwave API 函数
PHP 手册

hw_api_content

(No version information available, might be only in CVS)

hw_api_content — Create new instance of class hw_api_content

说明

HW_API_Content hw_api_content ( string $content , string $mimetype )

Creates a new content object from the string content .

参数

content

mimetype

The mimetype for the contents.

返回值

hw_api->move
hw_api_object->assign
Hyperwave API 函数


Clones object

hw_api_content
hw_api_object->attreditable
Hyperwave API 函数
PHP 手册

hw_api_object->assign

(No version information available, might be only in CVS)

hw_api_object->assign — Clones object

说明

hw_api_object
bool assign ( array $parameter )

Clones the attributes of an object.

参数

parameter

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

hw_api_content
hw_api_object->attreditable
Hyperwave API 函数


Checks whether an attribute is editable

hw_api_object->assign
hw_api_object->count
Hyperwave API 函数
PHP 手册

hw_api_object->attreditable

(No version information available, might be only in CVS)

hw_api_object->attreditable — Checks whether an attribute is editable

说明

hw_api_object
bool attreditable ( array $parameter )

Checks whether an attribute is editable.

参数

parameter

返回值

Returns TRUE if the attribute is editable, FALSE otherwise.

hw_api_object->assign
hw_api_object->count
Hyperwave API 函数


Returns number of attributes

hw_api_object->attreditable
hw_api_object->insert
Hyperwave API 函数
PHP 手册

hw_api_object->count

(No version information available, might be only in CVS)

hw_api_object->count — Returns number of attributes

说明

hw_api_object
int count ( array $parameter )

Returns the number of attributes.

参数

parameter

返回值

Returns the number as an integer.

hw_api_object->attreditable
hw_api_object->insert
Hyperwave API 函数


Inserts new attribute

hw_api_object->count
hw_api_object
Hyperwave API 函数
PHP 手册

hw_api_object->insert

(No version information available, might be only in CVS)

hw_api_object->insert — Inserts new attribute

说明

hw_api_object
bool insert ( HW_API_Attribute $attribute )

Adds an attribute to the object.

参数

attribute

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_api_object->remove

hw_api_object->count
hw_api_object
Hyperwave API 函数


Creates a new instance of class hw_api_object

hw_api_object->insert
hw_api_object->remove
Hyperwave API 函数
PHP 手册

hw_api_object

(No version information available, might be only in CVS)

hw_api_object — Creates a new instance of class hw_api_object

说明

hw_api_object hw_api_object ( array $parameter )

Creates a new instance of the class hw_api_object.

参数

parameter

返回值

参见

  • hw_api->lock

hw_api_object->insert
hw_api_object->remove
Hyperwave API 函数


Removes attribute

hw_api_object
hw_api_object->title
Hyperwave API 函数
PHP 手册

hw_api_object->remove

(No version information available, might be only in CVS)

hw_api_object->remove — Removes attribute

说明

hw_api_object
bool remove ( string $name )

Removes the attribute with the given name.

参数

name

The attribute name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_api_object->insert

hw_api_object
hw_api_object->title
Hyperwave API 函数


Returns the title attribute

hw_api_object->remove
hw_api_object->value
Hyperwave API 函数
PHP 手册

hw_api_object->title

(No version information available, might be only in CVS)

hw_api_object->title — Returns the title attribute

说明

hw_api_object
string title ( array $parameter )

Returns the title attribute.

参数

parameter

返回值

Returns the title as a string.

hw_api_object->remove
hw_api_object->value
Hyperwave API 函数


Returns value of attribute

hw_api_object->title
hw_api->object
Hyperwave API 函数
PHP 手册

hw_api_object->value

(No version information available, might be only in CVS)

hw_api_object->value — Returns value of attribute

说明

hw_api_object
string value ( string $name )

Returns value of an attribute.

参数

name

The attribute name.

返回值

Returns the value of the attribute with the given name or FALSE if an error occurred.

hw_api_object->title
hw_api->object
Hyperwave API 函数


Retrieve attribute information

hw_api_object->value
hw_api->objectbyanchor
Hyperwave API 函数
PHP 手册

hw_api->object

(No version information available, might be only in CVS)

hw_api->object — Retrieve attribute information

说明

hw_api
hw_api_object object ( array $parameter )

This function retrieves the attribute information of an object of any version. It will not return the document content.

参数

parameter

The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

返回值

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occurred.

范例

This simple example retrieves an object and checks for errors.

Example #1 Retrieve an object

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

参见

  • hw_api->content

hw_api_object->value
hw_api->objectbyanchor
Hyperwave API 函数


Returns the object an anchor belongs to

hw_api->object
hw_api->parents
Hyperwave API 函数
PHP 手册

hw_api->objectbyanchor

(No version information available, might be only in CVS)

hw_api->objectbyanchor — Returns the object an anchor belongs to

说明

hw_api
hw_api_object objectbyanchor ( array $parameter )

This function retrieves an object the specified anchor belongs to.

参数

parameter

The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

返回值

参见

  • hw_api->dstofsrcanchor
  • hw_api->srcanchors
  • hw_api->dstanchors

hw_api->object
hw_api->parents
Hyperwave API 函数


Returns parents of an object

hw_api->objectbyanchor
hw_api_reason->description
Hyperwave API 函数
PHP 手册

hw_api->parents

(No version information available, might be only in CVS)

hw_api->parents — Returns parents of an object

说明

hw_api
array parents ( array $parameter )

Retrieves the parents of an object. The parents can be further filtered by specifying an object query.

参数

parameter

The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

返回值

The return value is an array of objects of type HW_API_Object or HW_API_Error.

参见

  • hw_api->children

hw_api->objectbyanchor
hw_api_reason->description
Hyperwave API 函数


Returns description of reason

hw_api->parents
hw_api_reason->type
Hyperwave API 函数
PHP 手册

hw_api_reason->description

(No version information available, might be only in CVS)

hw_api_reason->description — Returns description of reason

说明

hw_api_reason
string description ( void )

Returns the description of a reason

返回值

Returns the description, as a string.

hw_api->parents
hw_api_reason->type
Hyperwave API 函数


Returns type of reason

hw_api_reason->description
hw_api->remove
Hyperwave API 函数
PHP 手册

hw_api_reason->type

(No version information available, might be only in CVS)

hw_api_reason->type — Returns type of reason

说明

hw_api_reason
HW_API_Reason type ( void )

Returns the type of a reason.

返回值

Returns an instance of HW_API_Reason.

hw_api_reason->description
hw_api->remove
Hyperwave API 函数


Delete an object

hw_api_reason->type
hw_api->replace
Hyperwave API 函数
PHP 手册

hw_api->remove

(No version information available, might be only in CVS)

hw_api->remove — Delete an object

说明

hw_api
bool remove ( array $parameter )

Removes an object from the specified parent. Collections will be removed recursively.

参数

parameter

You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance.

The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skipped.

The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted immediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • hw_api->move

hw_api_reason->type
hw_api->replace
Hyperwave API 函数


Replaces an object

hw_api->remove
hw_api->setcommittedversion
Hyperwave API 函数
PHP 手册

hw_api->replace

(No version information available, might be only in CVS)

hw_api->replace — Replaces an object

说明

hw_api
hw_api_object replace ( array $parameter )

Replaces the attributes and the content of an object.

参数

parameter

The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document.

'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL
The object on the server is replace with the object passed.
HW_API_REPLACE_FORCE_VERSION_CONTROL
HW_API_REPLACE_AUTOMATIC_CHECKOUT
HW_API_REPLACE_AUTOMATIC_CHECKIN
HW_API_REPLACE_PLAIN
HW_API_REPLACE_REVERT_IF_NOT_CHANGED
HW_API_REPLACE_KEEP_TIME_MODIFIED

返回值

参见

  • hw_api->insert

hw_api->remove
hw_api->setcommittedversion
Hyperwave API 函数


Commits version other than last version

hw_api->replace
hw_api->srcanchors
Hyperwave API 函数
PHP 手册

hw_api->setcommittedversion

(No version information available, might be only in CVS)

hw_api->setcommittedversion — Commits version other than last version

说明

hw_api
hw_api_object setcommittedversion ( array $parameter )

Commits a version of a document. The committed version is the one which is visible to users with read access. By default the last version is the committed version.

参数

parameter

返回值

参见

  • hw_api->checkin
  • hw_api->checkout

hw_api->replace
hw_api->srcanchors
Hyperwave API 函数


Returns a list of all source anchors

hw_api->setcommittedversion
hw_api->srcsofdst
Hyperwave API 函数
PHP 手册

hw_api->srcanchors

(No version information available, might be only in CVS)

hw_api->srcanchors — Returns a list of all source anchors

说明

hw_api
array srcanchors ( array $parameter )

Retrieves all source anchors of an object.

参数

parameter

The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

返回值

参见

  • hw_api->dstanchors

hw_api->setcommittedversion
hw_api->srcsofdst
Hyperwave API 函数


Returns source of a destination object

hw_api->srcanchors
hw_api->unlock
Hyperwave API 函数
PHP 手册

hw_api->srcsofdst

(No version information available, might be only in CVS)

hw_api->srcsofdst — Returns source of a destination object

说明

hw_api
array srcsofdst ( array $parameter )

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document.

参数

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

返回值

参见

  • hw_api->dstofsrcanchor

hw_api->srcanchors
hw_api->unlock
Hyperwave API 函数


Unlocks a locked object

hw_api->srcsofdst
hw_api->user
Hyperwave API 函数
PHP 手册

hw_api->unlock

(No version information available, might be only in CVS)

hw_api->unlock — Unlocks a locked object

说明

hw_api
bool unlock ( array $parameter )

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object.

参数

parameter

The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

返回值

Returns TRUE on success or an object of class HW_API_Error.

参见

  • hw_api->lock

hw_api->srcsofdst
hw_api->user
Hyperwave API 函数


Returns the own user object

hw_api->unlock
hw_api->userlist
Hyperwave API 函数
PHP 手册

hw_api->user

(No version information available, might be only in CVS)

hw_api->user — Returns the own user object

说明

hw_api
hw_api_object user ( array $parameter )

Returns the own user object.

参数

parameter

返回值

参见

  • hw_api->userlist

hw_api->unlock
hw_api->userlist
Hyperwave API 函数


Returns a list of all logged in users

hw_api->user
HTTP
Hyperwave API 函数
PHP 手册

hw_api->userlist

(No version information available, might be only in CVS)

hw_api->userlist — Returns a list of all logged in users

说明

hw_api
array userlist ( array $parameter )

Returns a list of all logged in users.

参数

parameter

返回值

参见

  • hw_api->user

hw_api->user
HTTP
Hyperwave API 函数


HTTP

  • 简介
  • 安装/配置
    • 需求
    • Installing the HTTP extension — Installation/Configuration
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Request Options — Options usable with the HttpRequest class and request functions
  • The HttpDeflateStream class
    • HttpDeflateStream::__construct — HttpDeflateStream class constructor
    • HttpDeflateStream::factory — HttpDeflateStream class factory
    • HttpDeflateStream::finish — Finalize deflate stream
    • HttpDeflateStream::flush — Flush deflate stream
    • HttpDeflateStream::update — Update deflate stream
  • The HttpInflateStream class
    • HttpInflateStream::__construct — HttpInflateStream class constructor
    • HttpInflateStream::factory — HttpInflateStream class factory
    • HttpInflateStream::finish — Finalize inflate stream
    • HttpInflateStream::flush — Flush inflate stream
    • HttpInflateStream::update — Update inflate stream
  • The HttpMessage class
    • HttpMessage::addHeaders — Add headers
    • HttpMessage::__construct — HttpMessage constructor
    • HttpMessage::detach — Detach HttpMessage
    • HttpMessage::factory — Create HttpMessage from string
    • HttpMessage::fromEnv — Create HttpMessage from environment
    • HttpMessage::fromString — Create HttpMessage from string
    • HttpMessage::getBody — Get message body
    • HttpMessage::getHeader — Get header
    • HttpMessage::getHeaders — Get message headers
    • HttpMessage::getHttpVersion — Get HTTP version
    • HttpMessage::getParentMessage — Get parent message
    • HttpMessage::getRequestMethod — Get request method
    • HttpMessage::getRequestUrl — Get request URL
    • HttpMessage::getResponseCode — Get response code
    • HttpMessage::getResponseStatus — Get response status
    • HttpMessage::getType — Get message type
    • HttpMessage::guessContentType — Guess content type
    • HttpMessage::prepend — Prepend message(s)
    • HttpMessage::reverse — Reverse message chain
    • HttpMessage::send — Send message
    • HttpMessage::setBody — Set message body
    • HttpMessage::setHeaders — Set headers
    • HttpMessage::setHttpVersion — Set HTTP version
    • HttpMessage::setRequestMethod — Set request method
    • HttpMessage::setRequestUrl — Set request URL
    • HttpMessage::setResponseCode — Set response code
    • HttpMessage::setResponseStatus — Set response status
    • HttpMessage::setType — Set message type
    • HttpMessage::toMessageTypeObject — Create HTTP object regarding message type
    • HttpMessage::toString — Get string representation
  • The HttpQueryString class
    • HttpQueryString::__construct — HttpQueryString constructor
    • HttpQueryString::get — Get (part of) query string
    • HttpQueryString::mod — Modifiy query string copy
    • HttpQueryString::set — Set query string params
    • HttpQueryString::singleton — HttpQueryString singleton
    • HttpQueryString::toArray — Get query string as array
    • HttpQueryString::toString — Get query string
    • HttpQueryString::xlate — Change query strings charset
  • The HttpRequest
    • HttpRequest::addCookies — Add cookies
    • HttpRequest::addHeaders — Add headers
    • HttpRequest::addPostFields — Add post fields
    • HttpRequest::addPostFile — Add post file
    • HttpRequest::addPutData — Add put data
    • HttpRequest::addQueryData — Add query data
    • HttpRequest::addRawPostData — Add raw post data
    • HttpRequest::addSslOptions — Add ssl options
    • HttpRequest::clearHistory — Clear history
    • HttpRequest::__construct — HttpRequest constructor
    • HttpRequest::enableCookies — Enable cookies
    • HttpRequest::getContentType — Get content type
    • HttpRequest::getCookies — Get cookies
    • HttpRequest::getHeaders — Get headers
    • HttpRequest::getHistory — Get history
    • HttpRequest::getMethod — Get method
    • HttpRequest::getOptions — Get options
    • HttpRequest::getPostFields — Get post fields
    • HttpRequest::getPostFiles — Get post files
    • HttpRequest::getPutData — Get put data
    • HttpRequest::getPutFile — Get put file
    • HttpRequest::getQueryData — Get query data
    • HttpRequest::getRawPostData — Get raw post data
    • HttpRequest::getRawRequestMessage — Get raw request message
    • HttpRequest::getRawResponseMessage — Get raw response message
    • HttpRequest::getRequestMessage — Get request message
    • HttpRequest::getResponseBody — Get response body
    • HttpRequest::getResponseCode — Get response code
    • HttpRequest::getResponseCookies — Get response cookie(s)
    • HttpRequest::getResponseData — Get response data
    • HttpRequest::getResponseHeader — Get response header(s)
    • HttpRequest::getResponseInfo — Get response info
    • HttpRequest::getResponseMessage — Get response message
    • HttpRequest::getResponseStatus — Get response status
    • HttpRequest::getSslOptions — Get ssl options
    • HttpRequest::getUrl — Get url
    • HttpRequest::resetCookies — Reset cookies
    • HttpRequest::send — Send request
    • HttpRequest::setContentType — Set content type
    • HttpRequest::setCookies — Set cookies
    • HttpRequest::setHeaders — Set headers
    • HttpRequest::setMethod — Set method
    • HttpRequest::setOptions — Set options
    • HttpRequest::setPostFields — Set post fields
    • HttpRequest::setPostFiles — Set post files
    • HttpRequest::setPutData — Set put data
    • HttpRequest::setPutFile — Set put file
    • HttpRequest::setQueryData — Set query data
    • HttpRequest::setRawPostData — Set raw post data
    • HttpRequest::setSslOptions — Set ssl options
    • HttpRequest::setUrl — Set URL
  • The HttpRequestPool class
    • HttpRequestPool::attach — Attach HttpRequest
    • HttpRequestPool::__construct — HttpRequestPool constructor
    • HttpRequestPool::__destruct — HttpRequestPool destructor
    • HttpRequestPool::detach — Detach HttpRequest
    • HttpRequestPool::getAttachedRequests — Get attached requests
    • HttpRequestPool::getFinishedRequests — Get finished requests
    • HttpRequestPool::reset — Reset request pool
    • HttpRequestPool::send — Send all requests
    • HttpRequestPool::socketPerform — Perform socket actions
    • HttpRequestPool::socketSelect — Perform socket select
  • The HttpResponse
    • HttpResponse::capture — Capture script output
    • HttpResponse::getBufferSize — Get buffer size
    • HttpResponse::getCache — Get cache
    • HttpResponse::getCacheControl — Get cache control
    • HttpResponse::getContentDisposition — Get content disposition
    • HttpResponse::getContentType — Get content type
    • HttpResponse::getData — Get data
    • HttpResponse::getETag — Get ETag
    • HttpResponse::getFile — Get file
    • HttpResponse::getGzip — Get gzip
    • HttpResponse::getHeader — Get header
    • HttpResponse::getLastModified — Get last modified
    • HttpResponse::getRequestBody — Get request body
    • HttpResponse::getRequestBodyStream — Get request body stream
    • HttpResponse::getRequestHeaders — Get request headers
    • HttpResponse::getStream — Get Stream
    • HttpResponse::getThrottleDelay — Get throttle delay
    • HttpResponse::guessContentType — Guess content type
    • HttpResponse::redirect — Redirect
    • HttpResponse::send — Send response
    • HttpResponse::setBufferSize — Set buffer size
    • HttpResponse::setCache — Set cache
    • HttpResponse::setCacheControl — Set cache control
    • HttpResponse::setContentDisposition — Set content disposition
    • HttpResponse::setContentType — Set content type
    • HttpResponse::setData — Set data
    • HttpResponse::setETag — Set ETag
    • HttpResponse::setFile — Set file
    • HttpResponse::setGzip — Set gzip
    • HttpResponse::setHeader — Set header
    • HttpResponse::setLastModified — Set last modified
    • HttpResponse::setStream — Set stream
    • HttpResponse::setThrottleDelay — Set throttle delay
    • HttpResponse::status — Send HTTP response status
  • HTTP 函数
    • http_cache_etag — Caching by ETag
    • http_cache_last_modified — Caching by last modification
    • http_chunked_decode — Decode chunked-encoded data
    • http_deflate — Deflate data
    • http_inflate — Inflate data
    • http_build_cookie — Build cookie string
    • http_date — Compose HTTP RFC compliant date
    • http_get_request_body_stream — Get request body as stream
    • http_get_request_body — Get request body as string
    • http_get_request_headers — Get request headers as array
    • http_match_etag — Match ETag
    • http_match_modified — Match last modification
    • http_match_request_header — Match any header
    • http_support — Check built-in HTTP support
    • http_negotiate_charset — Negotiate clients preferred character set
    • http_negotiate_content_type — Negotiate clients preferred content type
    • http_negotiate_language — Negotiate clients preferred language
    • ob_deflatehandler — Deflate output handler
    • ob_etaghandler — ETag output handler
    • ob_inflatehandler — Inflate output handler
    • http_parse_cookie — Parse HTTP cookie
    • http_parse_headers — Parse HTTP headers
    • http_parse_message — Parse HTTP messages
    • http_parse_params — Parse parameter list
    • http_persistent_handles_clean — Clean up persistent handles
    • http_persistent_handles_count — Stat persistent handles
    • http_persistent_handles_ident — Get/set ident of persistent handles
    • http_get — Perform GET request
    • http_head — Perform HEAD request
    • http_post_data — Perform POST request with pre-encoded data
    • http_post_fields — Perform POST request with data to be encoded
    • http_put_data — Perform PUT request with data
    • http_put_file — Perform PUT request with file
    • http_put_stream — Perform PUT request with stream
    • http_request_body_encode — Encode request body
    • http_request_method_exists — Check whether request method exists
    • http_request_method_name — Get request method name
    • http_request_method_register — Register request method
    • http_request_method_unregister — Unregister request method
    • http_request — Perform custom request
    • http_redirect — Issue HTTP redirect
    • http_send_content_disposition — Send Content-Disposition
    • http_send_content_type — Send Content-Type
    • http_send_data — Send arbitrary data
    • http_send_file — Send file
    • http_send_last_modified — Send Last-Modified
    • http_send_status — Send HTTP response status
    • http_send_stream — Send stream
    • http_throttle — HTTP throttling
    • http_build_str — Build query string
    • http_build_url — Build an URL
hw_api->userlist
简介
其它服务


简介

This HTTP extension aims to provide a convenient and powerful set of functionality for one of PHPs major applications.

It eases handling of HTTP URLs, dates, redirects, headers and messages, provides means for negotiation of clients preferred language and charset, as well as a convenient way to send any arbitrary data with caching and resuming capabilities.

It provides powerful request functionality, if built with CURL support. Parallel requests are available for PHP 5 and greater.

Additionally to the API reference in this manual you can find information about how to install and configure as well as which global constants are predefined in the following sections:

HTTP
安装/配置
HTTP


安装/配置

Table of Contents

  • 需求
  • Installation/Configuration
  • 运行时配置
  • 资源类型
简介
需求
HTTP


需求

The HttpResponse class requires at least PHP v5.1. Any other class is available as of PHP v5.0.

Note: Be aware though, that some methods are not available with PHP v5.0.

Installation requirements on Windows

In order to be able to load this extension on Windows, you additionally need to load the following PHP extensions: hash, iconv 和 SPL.

Installation requirements on other platforms

The extension must be built with » libcurl support to enable request functionality (--with-http-curl-requests). A library version equal or greater to v7.12.3 is required.

To enable support for sending and receiving compressed responses, the extension must be built with » zlib support (--with-http-zlib-compression). A library version equal or greater than v1.2.2 is required.

Content type quessing can be enabled by building this extension with » libmagic support (--with-http-magic-mime).

安装/配置
Installing the HTTP extension
安装/配置


Installation/Configuration

安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/pecl_http.

Note: The official name of this extension is pecl_http.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

HTTP Configuration Options
Name | Default | Changeable | Description
http.etag.mode | "MD5" | PHP_INI_ALL | The hashing algorithm used to generate the ETag. MD5, SHA1, and CRC32 are always available. If the hash extension is enabled, any hashing algorithms this extension provides are available, too.
http.log.cache | "" | PHP_INI_ALL | The path (or stream wrapper url) to a log file in which to write successful cache hits.
http.log.redirect | "" | PHP_INI_ALL | The path (or stream wrapper url) to a log file in which to write redirects.
http.log.not_found | "" | PHP_INI_ALL | The path (or stream wrapper url) to a log file in which to write "file not found" errors.
http.log.allowed_methods | "" | PHP_INI_ALL | The path (or stream wrapper url) to a log file in which to write "allowed methods" violations.
http.log.composite | "" | PHP_INI_ALL | The path (or stream wrapper url) to a log file in which to write all events.
http.request.methods.allowed | "" | PHP_INI_ALL | Allowed request methods. If a client issues a request with a request method other than listed here, PHP exits with a status of "405 Method not allowed". See the INI 设定 http.force_exit for what "exits" means.
http.request.methods.custom | "" | PHP_INI_PERDIR|PHP_INI_SYSTEM | Custom request methods. If you want to use any non-standard request methods, you can register them with this INI setting or http_request_method_register().
http.request.datashare.cookie | "0" | PHP_INI_SYSTEM | Whether the global HttpRequestDataShare should by default share cookie information.
http.request.datashare.dns | "1" | PHP_INI_SYSTEM | Whether the global HttpRequestDataShare should by default share name lookup information.
http.request.datashare.ssl | "0" | PHP_INI_SYSTEM | Whether the global HttpRequestDataShare should by default share SSL session information. This is not yet implemented in libcurl.
http.request.datashare.connect | "0" | PHP_INI_SYSTEM | Whether the global HttpRequestDataShare should by default share connect information. This is not yet implemented in libcurl.
http.persistent.handles.limit | "-1" | PHP_INI_SYSTEM | The maximum amount of persistent handles to keep alive.
http.persistent.handles.ident | "GLOBAL" | PHP_INI_ALL | The ident of persistent handles.
http.send.inflate.start_auto | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM | Whether to automatically start the inflate output handler.
http.send.inflate.start_flags | "0" | PHP_INI_ALL | Initialization settings for the inflate output handler.
http.send.deflate.start_auto | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM | Whether to automatically start the deflate output handler.
http.send.deflate.start_flags | "0" | PHP_INI_ALL | Initialization settings for the deflate output handler. See deflate constants.
http.send.not_found_404 | "1" | PHP_INI_ALL | Whether to automatically exit with a status of "404 Not found", if http_send_file() was not able to find the specified file. See the INI 设定 http.force_exit for what "exits" means.
http.only_exceptions | "0" | PHP_INI_ALL | Whether all notices/warnings/errors should be thrown as exceptions.
http.force_exit | "1" | PHP_INI_ALL | Each occasion where "exits with a status of..." is mentioned, usually causes the halt of the scripting engine. Disable this option if you alternatively want to start a discarding (dev/null) output handler and continue script execution.

Installing the HTTP extension
资源类型
安装/配置


资源类型

This extension defines a stream resource returned by http_get_request_body_stream() and (thereafter) HttpResponse::getStream().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Constants usable with http_support()
HTTP_SUPPORT (integer)
querying for this constant will always return TRUE
HTTP_SUPPORT_REQUESTS (integer)
whether support to issue HTTP requests is given, ie. libcurl support was compiled in
HTTP_SUPPORT_MAGICMIME (integer)
whether support to guess the Content-Type of HTTP messages is given, ie. libmagic support was compiled in
HTTP_SUPPORT_ENCODINGS (integer)
whether support for zlib encodings is given, ie. libz support was compiled in
HTTP_SUPPORT_SSLREQUESTS (integer)
whether support to issue HTTP requests over SSL is given, ie. linked libcurl was built with SSL support
Constants usable with http_parse_params()
HTTP_PARAMS_ALLOW_COMMA (integer)
allow commands additionally to semicolons as separator
HTTP_PARAMS_ALLOW_FAILURE (integer)
continue parsing after an error occurred
HTTP_PARAMS_RAISE_ERROR (integer)
raise PHP warnings on parse errors
HTTP_PARAMS_DEFAULT (integer)
all three values above, bitwise or'ed
Constants usable with http_parse_cookie() and its return value
HTTP_COOKIE_PARSE_RAW (integer)
don't urldecode values
HTTP_COOKIE_SECURE (integer)
whether "secure" was found in the cookie's parameters list
HTTP_COOKIE_HTTPONLY (integer)
whether "httpOnly" was found in the cookie's parameter list
Constants usable with http_deflate() and HttpDeflateStream
HTTP_DEFLATE_LEVEL_DEF (integer)
HTTP_DEFLATE_LEVEL_MIN (integer)
HTTP_DEFLATE_LEVEL_MAX (integer)
HTTP_DEFLATE_TYPE_ZLIB (integer)
HTTP_DEFLATE_TYPE_GZIP (integer)
HTTP_DEFLATE_TYPE_RAW (integer)
HTTP_DEFLATE_STRATEGY_DEF (integer)
HTTP_DEFLATE_STRATEGY_FILT (integer)
HTTP_DEFLATE_STRATEGY_HUFF (integer)
HTTP_DEFLATE_STRATEGY_RLE (integer)
HTTP_DEFLATE_STRATEGY_FIXED (integer)
Constants usable with HttpDeflateStream and HttpInflateStream
HTTP_ENCODING_STREAM_FLUSH_NONE (integer)
don't flush
HTTP_ENCODING_STREAM_FLUSH_SYNC (integer)
synchronized flush only
HTTP_ENCODING_STREAM_FLUSH_FULL (integer)
full data flush
Constants used for error reporting and Exceptions
HTTP_E_RUNTIME (integer)
runtime error
HTTP_E_INVALID_PARAM (integer)
an invalid parameter was passed
HTTP_E_HEADER (integer)
header() or similar operation failed
HTTP_E_MALFORMED_HEADERS (integer)
HTTP header parse error
HTTP_E_REQUEST_METHOD (integer)
unknown/invalid request method
HTTP_E_MESSAGE_TYPE (integer)
with operation incompatible message type
HTTP_E_ENCODING (integer)
encoding/decoding error
HTTP_E_REQUEST (integer)
request failure
HTTP_E_REQUEST_POOL (integer)
request pool failure
HTTP_E_SOCKET (integer)
socket exception
HTTP_E_RESPONSE (integer)
response failure
HTTP_E_URL (integer)
invalid URL
HTTP_E_QUERYSTRING (integer)
querystring operation failure
Constants usable with HttpMessage
HTTP_MSG_NONE (integer)
the message is of no specific type
HTTP_MSG_REQUEST (integer)
request style message
HTTP_MSG_RESPONSE (integer)
response style message
Constants usable with HttpQueryString
HTTP_QUERYSTRING_TYPE_BOOL (integer)
HTTP_QUERYSTRING_TYPE_INT (integer)
HTTP_QUERYSTRING_TYPE_FLOAT (integer)
HTTP_QUERYSTRING_TYPE_STRING (integer)
HTTP_QUERYSTRING_TYPE_ARRAY (integer)
HTTP_QUERYSTRING_TYPE_OBJECT (integer)
Constants used for the httpauthtype request option
HTTP_AUTH_BASIC (integer)
use "basic" authentication
HTTP_AUTH_DIGEST (integer)
use "digest" authentication
HTTP_AUTH_NTLM (integer)
use "NTLM" authentication
HTTP_AUTH_GSSNEG (integer)
use "GSS-NEGOTIATE" authentication
HTTP_AUTH_ANY (integer)
try any authentication scheme
Constants used for the HTTP protocol version request option
HTTP_VERSION_ANY (integer)
no specific HTTP protocol version
HTTP_VERSION_1_0 (integer)
HTTP version 1.0
HTTP_VERSION_1_1 (integer)
HTTP version 1.1
Constants used for the SSL protocol type and version request option
HTTP_SSL_VERSION_ANY (integer)
no specific SSL protocol version
HTTP_SSL_VERSION_TLSv1 (integer)
use TLSv1 only
HTTP_SSL_VERSION_SSLv3 (integer)
use SSLv3 only
HTTP_SSL_VERSION_SSLv2 (integer)
use SSLv2 only
Constants used for the proxytype request option
HTTP_PROXY_SOCKS4 (integer)
the proxy is a SOCKS4 type proxy
HTTP_PROXY_SOCKS5 (integer)
the proxy is a SOCKS5 type proxy
HTTP_PROXY_HTTP (integer)
standard HTTP proxy
Constants used for the ipresolve request option
HTTP_IPRESOLVE_V4 (integer)
use IPv4 only for name lookups
HTTP_IPRESOLVE_V6 (integer)
use IPv6 only for name lookups
HTTP_IPRESOLVE_ANY (integer)
use any IP mechanism only for name lookups
Predefined HTTP request method constants
HTTP_METH_GET (integer)
HTTP_METH_HEAD (integer)
HTTP_METH_POST (integer)
HTTP_METH_PUT (integer)
HTTP_METH_DELETE (integer)
HTTP_METH_OPTIONS (integer)
HTTP_METH_TRACE (integer)
HTTP_METH_CONNECT (integer)
HTTP_METH_PROPFIND (integer)
HTTP_METH_PROPPATCH (integer)
HTTP_METH_MKCOL (integer)
HTTP_METH_COPY (integer)
HTTP_METH_MOVE (integer)
HTTP_METH_LOCK (integer)
HTTP_METH_UNLOCK (integer)
HTTP_METH_VERSION_CONTROL (integer)
HTTP_METH_REPORT (integer)
HTTP_METH_CHECKOUT (integer)
HTTP_METH_CHECKIN (integer)
HTTP_METH_UNCHECKOUT (integer)
HTTP_METH_MKWORKSPACE (integer)
HTTP_METH_UPDATE (integer)
HTTP_METH_LABEL (integer)
HTTP_METH_MERGE (integer)
HTTP_METH_BASELINE_CONTROL (integer)
HTTP_METH_MKACTIVITY (integer)
HTTP_METH_ACL (integer)
Constants usable with http_redirect()
HTTP_REDIRECT (integer)
guess applicable redirect method
HTTP_REDIRECT_PERM (integer)
permanent redirect (301 Moved permanently)
HTTP_REDIRECT_FOUND (integer)
standard redirect (302 Found)

Note: RFC 1945 and RFC 2068 specify that the client is not allowed to change the method on the redirected request. However, most existing user agent implementations treat 302 as if it were a 303 response, performing a GET on the Location field-value regardless of the original request method. The status codes 303 and 307 have been added for servers that wish to make unambiguously clear which kind of reaction is expected of the client.

HTTP_REDIRECT_POST (integer)
redirect applicable to POST requests (303 See other)
HTTP_REDIRECT_PROXY (integer)
proxy redirect (305 Use proxy)
HTTP_REDIRECT_TEMP (integer)
temporary redirect (307 Temporary Redirect)
Constants usable with http_build_url()
HTTP_URL_REPLACE (integer)
replace every part of the first URL when there's one of the second URL
HTTP_URL_JOIN_PATH (integer)
join relative paths
HTTP_URL_JOIN_QUERY (integer)
join query strings
HTTP_URL_STRIP_USER (integer)
strip any user authentication information
HTTP_URL_STRIP_PASS (integer)
strip any password authentication information
HTTP_URL_STRIP_AUTH (integer)
strip any authentication information
HTTP_URL_STRIP_PORT (integer)
strip explicit port numbers
HTTP_URL_STRIP_PATH (integer)
strip complete path
HTTP_URL_STRIP_QUERY (integer)
strip query string
HTTP_URL_STRIP_FRAGMENT (integer)
strip any fragments (#identifier)
HTTP_URL_STRIP_ALL (integer)
strip anything but scheme and host
资源类型
Request Options
HTTP


Options usable with the HttpRequest class and request functions

Options related to time outs
timeout (integer)
seconds the whole request may take to complete
connecttimeout (integer)
seconds the connect, including name resolving, may take
dns_cache_timeout (integer)
seconds after an dns cache entry times out
Options related to urls
url (string)
the request url
port (integer)
use another port as specified in the url
redirect (integer)
whether and how many redirects to follow; defaults to 0
unrestrictedauth (bool)
whether to continue sending credentials on redirects to a different host
referer (string)
the referring url to send
Options related to cookies
encodecookies (bool)
whether custom cookies should be urlencode()d prior sending
cookies (array)
list of cookies as associative array like array("cookie" => "value")
cookiestore (string)
path to a file where cookies are/will be stored
cookiesession (bool)
don't load session cookies from cookiestore if TRUE
Options related to headers
useragent (string)
the user agent to send; defaults to PECL::HTTP/x.y.z (PHP/x.y.z); omitted if explicitly set to an empty string
lastmodified (int)
timestamp for If-(Un)Modified-Since header
etag (string)
quoted etag for If-(None-)Match header
headers (array)
list of custom headers as associative array like array("header" => "value")
Options related to authentication
httpauth (string)
http credentials in "user:pass" format
httpauthtype (int)
HTTP authentication type constant
(array)
Options related to proxies
proxyhost (string)
proxy host in "host[:port]" format
proxyport (int)
use another proxy port as specified in proxyhost
proxytype (int)
HTTP proxy type constant
proxyauth (string)
proxy credentials in "user:pass" format
proxyauthtype (int)
HTTP authentication type constant
Options related to the transfer
compress (bool)
whether to request and accept a gzip/deflate content encoded response
resume (int)
start the download at the specified byte offset if server support is given (indicated by a 206 response code)
range (array)
array of arrays, each containing two integers, specifying the ranges to download if server support is given (indicated by a 206 response code); only recognized if the resume option is empty
Options imposing limits
maxfilesize (integer)
maximum file size that should be downloaded; has no effect, if the size of the requested entity is unknown (eg. dynamic pages with chunked transfer encoding etc.)
low_speed_limit (int)
the lowest transfer speed a successful request may have
low_speed_time (int)
the time in which low_speed_limit must be transferred for a successful request
max_send_speed (int)
maximum send speed in bytes per second
max_recv_speed (int)
maximum receive speed in bytes per second
Callback options
onprogress (callback)
progress callback
Network options
interface (string)
outgoing network interface (ifname, ip or hostname)
portrange (array)
2 integers specifying outgoing portrange to try
SSL options
ssl (array)

Note: SSL options are set through an array with the single "ssl" request option name.

cert (string)
path to certificate
certtype (string)
type of certificate
certpasswd (string)
password for certificate
key (string)
path to key
keytype (string)
type of key
keypasswd (string)
password for key
engine (string)
ssl engine to use
version (int)
ssl version to use
verifypeer (bool)
whether to verify the peer
verifyhost (bool)
whether to verify the host
cipher_list (string)
list of allowed ciphers
cainfo (string)
capath (string)
random_file (string)
egdsocket (string)
预定义常量
The HttpDeflateStream class
HTTP


The HttpDeflateStream class

Class synopsis

HttpDeflateStream
HttpDeflateStream {
public void __construct ([ int $flags=0 ] )
public HttpDeflateStream factory ([ int $flags=0 [, string $class_name="HttpDeflateStream" ]] )
public string finish ([ string $data ] )
public string flush ([ string $data ] )
public string update ( string $data )
}

Class Members

预定义常量

Type | Name | Description
int | TYPE_GZIP | gzip encoding
int | TYPE_ZLIB | zlib AKA deflate encoding
int | TYPE_RAW | raw deflate encoding
int | LEVEL_DEF | default compression level
int | LEVEL_MIN | minimum compression level
int | LEVEL_MAX | maximum compression level
int | STRATEGY_DEF | default strategy
int | STRATEGY_FILT | filtered strategy
int | STRATEGY_HUFF | Huffman strategy
int | STRATEGY_RLE | RLE strategy
int | STRATEGY_FIXED | fixed strategy
int | FLUSH_NONE | no forced flush
int | FLUSH_SYNC | synching flush
int | FLUSH_FULL | full flush

范例

Example #1 A HttpDeflateStream example

<?php
$stream = new HttpDeflateStream(
    HttpDeflateStream::TYPE_GZIP |
    HttpDeflateStream::LEVEL_MAX |
    HttpDeflateStream::FLUSH_SYNC);

echo $stream->update($data);
echo $stream->finish();
?>

Table of Contents

  • HttpDeflateStream::__construct — HttpDeflateStream class constructor
  • HttpDeflateStream::factory — HttpDeflateStream class factory
  • HttpDeflateStream::finish — Finalize deflate stream
  • HttpDeflateStream::flush — Flush deflate stream
  • HttpDeflateStream::update — Update deflate stream
Request Options
HttpDeflateStream::__construct
HTTP


HttpDeflateStream class constructor

The HttpDeflateStream class
HttpDeflateStream::factory
The HttpDeflateStream class
PHP 手册

HttpDeflateStream::__construct

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::__construct — HttpDeflateStream class constructor

说明

public void HttpDeflateStream::__construct ([ int $flags=0 ] )

Creates a new HttpDeflateStream object instance.

See the deflate stream constants table for possible flags .

参数

flags

initialization flags

参见

  • HttpDeflateStream::factory - HttpDeflateStream class factory

The HttpDeflateStream class
HttpDeflateStream::factory
The HttpDeflateStream class


HttpDeflateStream class factory

HttpDeflateStream::__construct
HttpDeflateStream::finish
The HttpDeflateStream class
PHP 手册

HttpDeflateStream::factory

(PECL pecl_http >= 1.4.0)

HttpDeflateStream::factory — HttpDeflateStream class factory

说明

public HttpDeflateStream HttpDeflateStream::factory ([ int $flags=0 [, string $class_name="HttpDeflateStream" ]] )

Creates a new HttpDeflateStream object instance.

See the deflate stream constants table for possible flags .

参数

flags

initialization flags

class_name

name of a subclass of HttpDeflateStream

参见

  • HttpDeflateStream::__construct - HttpDeflateStream class constructor

HttpDeflateStream::__construct
HttpDeflateStream::finish
The HttpDeflateStream class


Finalize deflate stream

HttpDeflateStream::factory
HttpDeflateStream::flush
The HttpDeflateStream class
PHP 手册

HttpDeflateStream::finish

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::finish — Finalize deflate stream

说明

public string HttpDeflateStream::finish ([ string $data ] )

Finalizes the deflate stream. The deflate stream can be reused after finalizing.

参数

data

data to deflate

返回值

Returns the final part of deflated data.

HttpDeflateStream::factory
HttpDeflateStream::flush
The HttpDeflateStream class


Flush deflate stream

HttpDeflateStream::finish
HttpDeflateStream::update
The HttpDeflateStream class
PHP 手册

HttpDeflateStream::flush

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::flush — Flush deflate stream

说明

public string HttpDeflateStream::flush ([ string $data ] )

Flushes the deflate stream.

参数

data

more data to deflate

返回值

Returns some deflated data as string on success or FALSE on failure.

HttpDeflateStream::finish
HttpDeflateStream::update
The HttpDeflateStream class


Update deflate stream

HttpDeflateStream::flush
The HttpInflateStream class
The HttpDeflateStream class
PHP 手册

HttpDeflateStream::update

(PECL pecl_http >= 0.21.0)

HttpDeflateStream::update — Update deflate stream

说明

public string HttpDeflateStream::update ( string $data )

Passes more data through the deflate stream.

参数

data

data to deflate

返回值

Returns deflated data on success or FALSE on failure.

HttpDeflateStream::flush
The HttpInflateStream class
The HttpDeflateStream class


The HttpInflateStream class

Class synopsis

HttpInflateStream
HttpInflateStream {
public void __construct ([ int $flags=0 ] )
public HttpInflateStream factory ([ int $flags=0 [, string $class_name="HttpInflateStream" ]] )
public string finish ([ string $data ] )
public string flush ([ string $data ] )
public string update ( string $data )
}

Class Members

Constants

Type | Name | Description
int | FLUSH_NONE | no forced flush
int | FLUSH_SYNC | synching flush
int | FLUSH_FULL | full flush

Note: Flushing usually has no effect on inflate streams.

范例

Example #1 A HttpInflateStream example

<?php
$stream = new HttpInflateStream;
echo $stream->update($data);
echo $stream->finish();
?>

Table of Contents

  • HttpInflateStream::__construct — HttpInflateStream class constructor
  • HttpInflateStream::factory — HttpInflateStream class factory
  • HttpInflateStream::finish — Finalize inflate stream
  • HttpInflateStream::flush — Flush inflate stream
  • HttpInflateStream::update — Update inflate stream
HttpDeflateStream::update
HttpInflateStream::__construct
HTTP


HttpInflateStream class constructor

The HttpInflateStream class
HttpInflateStream::factory
The HttpInflateStream class
PHP 手册

HttpInflateStream::__construct

(PECL pecl_http >= 1.0.0)

HttpInflateStream::__construct — HttpInflateStream class constructor

说明

public void HttpInflateStream::__construct ([ int $flags=0 ] )

Creates a new HttpInflateStream object instance.

See the inflate constants table for possible flags .

参数

flags

initialization flags

参见

  • HttpInflateStream::factory - HttpInflateStream class factory

The HttpInflateStream class
HttpInflateStream::factory
The HttpInflateStream class


HttpInflateStream class factory

HttpInflateStream::__construct
HttpInflateStream::finish
The HttpInflateStream class
PHP 手册

HttpInflateStream::factory

(PECL pecl_http >= 1.4.0)

HttpInflateStream::factory — HttpInflateStream class factory

说明

public HttpInflateStream HttpInflateStream::factory ([ int $flags=0 [, string $class_name="HttpInflateStream" ]] )

Creates a new HttpInflateStream object instance.

See the inflate constants table for possible flags .

参数

flags

initialization flags

class_name

name of a subclass of HttpInflateStream

参见

  • HttpInflateStream::__construct - HttpInflateStream class constructor

HttpInflateStream::__construct
HttpInflateStream::finish
The HttpInflateStream class


Finalize inflate stream

HttpInflateStream::factory
HttpInflateStream::flush
The HttpInflateStream class
PHP 手册

HttpInflateStream::finish

(PECL pecl_http >= 0.21.0)

HttpInflateStream::finish — Finalize inflate stream

说明

public string HttpInflateStream::finish ([ string $data ] )

Finalizes the inflate stream. The inflate stream can be reused after finalizing.

参数

data

data to inflate

返回值

Returns the final part of inflated data.

HttpInflateStream::factory
HttpInflateStream::flush
The HttpInflateStream class


Flush inflate stream

HttpInflateStream::finish
HttpInflateStream::update
The HttpInflateStream class
PHP 手册

HttpInflateStream::flush

(PECL pecl_http >= 0.21.0)

HttpInflateStream::flush — Flush inflate stream

说明

public string HttpInflateStream::flush ([ string $data ] )

Flushes the inflate stream.

Note: Flushing usually has no effect on inflate streams.

参数

data

more data to inflate

返回值

Returns some inflated data as string on success or FALSE on failure.

HttpInflateStream::finish
HttpInflateStream::update
The HttpInflateStream class


Update inflate stream

HttpInflateStream::flush
The HttpMessage class
The HttpInflateStream class
PHP 手册

HttpInflateStream::update

(PECL pecl_http >= 0.21.0)

HttpInflateStream::update — Update inflate stream

说明

public string HttpInflateStream::update ( string $data )

Passes more data through the inflate stream.

参数

data

data to inflate

返回值

Returns inflated data on success or FALSE on failure.

HttpInflateStream::flush
The HttpMessage class
The HttpInflateStream class


The HttpMessage class

Class synopsis

HttpMessage
HttpMessage implements Iterator , Countable , Serializable {
public void addHeaders ( array $headers [, bool $append=false ] )
public void __construct ([ string $message ] )
public HttpMessage detach ( void )
static public HttpMessage factory ([ string $raw_message [, string $class_name="HttpMessage" ]] )
static public HttpMessage fromEnv ( int $message_type [, string $class_name="HttpMessage" ] )
static public HttpMessage fromString ([ string $raw_message [, string $class_name="HttpMessage" ]] )
public string getBody ( void )
public string getHeader ( string $header )
public array getHeaders ( void )
public string getHttpVersion ( void )
public HttpMessage getParentMessage ( void )
public string getRequestMethod ( void )
public string getRequestUrl ( void )
public int getResponseCode ( void )
public string getResponseStatus ( void )
public int getType ( void )
public string guessContentType ( string $magic_file [, int $magic_mode=MAGIC_MIME ] )
public void prepend ( HttpMessage $message [, bool $top=true ] )
public HttpMessage reverse ( void )
public bool send ( void )
public void setBody ( string $body )
public void setHeaders ( array $headers )
public bool setHttpVersion ( string $version )
public bool setRequestMethod ( string $method )
public bool setRequestUrl ( string $url )
public bool setResponseCode ( int $code )
public bool setResponseStatus ( string $status )
public void setType ( int $type )
public HttpRequest|HttpResponse toMessageTypeObject ( void )
public string toString ([ bool $include_parent=false ] )
}

Class Members

属性

Instance Properties
Modifiers | Type | Name | Description
protected | int | type | message type
protected | string | body | message body
protected | float | httpVersion | HTTP protocol version
protected | array | headers | message headers
protected | string | requestMethod | request method name
protected | requestUrl | string | request URL
protected | int | responseCode | response code
protected | string | responseStatus | response status message
protected | HttpMessage | parentMessage | reference to parent message

Note: None of these default properties can be accessed by reference, array key/index notation nor be used in increment or decrement operations.

预定义常量

Type | Name | Description
int | TYPE_NONE | message has is of no specific type
int | TYPE_REQUEST | message is a request style HTTP message
int | TYPE_RESPONSE | message is a response style HTTP message

Table of Contents

  • HttpMessage::addHeaders — Add headers
  • HttpMessage::__construct — HttpMessage constructor
  • HttpMessage::detach — Detach HttpMessage
  • HttpMessage::factory — Create HttpMessage from string
  • HttpMessage::fromEnv — Create HttpMessage from environment
  • HttpMessage::fromString — Create HttpMessage from string
  • HttpMessage::getBody — Get message body
  • HttpMessage::getHeader — Get header
  • HttpMessage::getHeaders — Get message headers
  • HttpMessage::getHttpVersion — Get HTTP version
  • HttpMessage::getParentMessage — Get parent message
  • HttpMessage::getRequestMethod — Get request method
  • HttpMessage::getRequestUrl — Get request URL
  • HttpMessage::getResponseCode — Get response code
  • HttpMessage::getResponseStatus — Get response status
  • HttpMessage::getType — Get message type
  • HttpMessage::guessContentType — Guess content type
  • HttpMessage::prepend — Prepend message(s)
  • HttpMessage::reverse — Reverse message chain
  • HttpMessage::send — Send message
  • HttpMessage::setBody — Set message body
  • HttpMessage::setHeaders — Set headers
  • HttpMessage::setHttpVersion — Set HTTP version
  • HttpMessage::setRequestMethod — Set request method
  • HttpMessage::setRequestUrl — Set request URL
  • HttpMessage::setResponseCode — Set response code
  • HttpMessage::setResponseStatus — Set response status
  • HttpMessage::setType — Set message type
  • HttpMessage::toMessageTypeObject — Create HTTP object regarding message type
  • HttpMessage::toString — Get string representation
HttpInflateStream::update
HttpMessage::addHeaders
HTTP


Add headers

The HttpMessage class
HttpMessage::__construct
The HttpMessage class
PHP 手册

HttpMessage::addHeaders

(PECL pecl_http >= 0.10.0)

HttpMessage::addHeaders — Add headers

说明

public void HttpMessage::addHeaders ( array $headers [, bool $append=false ] )

Add headers. If append is true, headers with the same name will be separated, else overwritten.

参数

headers

associative array containing the additional HTTP headers to add to the messages existing headers

append

if true, and a header with the same name of one to add exists already, this respective header will be converted to an array containing both header values, otherwise it will be overwritten with the new header value

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

The HttpMessage class
HttpMessage::__construct
The HttpMessage class


HttpMessage constructor

HttpMessage::addHeaders
HttpMessage::detach
The HttpMessage class
PHP 手册

HttpMessage::__construct

(PECL pecl_http >= 0.10.0)

HttpMessage::__construct — HttpMessage constructor

说明

public void HttpMessage::__construct ([ string $message ] )

Instantiate a new HttpMessage object.

The constructed object will actually represent the last message of the passed string. If there were prior messages, those can be accessed by HttpMessage::getParentMessage().

参数

message

a single or several consecutive HTTP messages

错误／异常

Throws HttpMalformedHeaderException.

HttpMessage::addHeaders
HttpMessage::detach
The HttpMessage class


Detach HttpMessage

HttpMessage::__construct
HttpMessage::factory
The HttpMessage class
PHP 手册

HttpMessage::detach

(PECL pecl_http >= 0.22.0)

HttpMessage::detach — Detach HttpMessage

说明

public HttpMessage HttpMessage::detach ( void )

Returns a clone of an HttpMessage object detached from any parent messages.

参数

返回值

Returns detached HttpMessage object copy.

HttpMessage::__construct
HttpMessage::factory
The HttpMessage class


Create HttpMessage from string

HttpMessage::detach
HttpMessage::fromEnv
The HttpMessage class
PHP 手册

HttpMessage::factory

(PECL pecl_http >= 1.4.0)

HttpMessage::factory — Create HttpMessage from string

说明

static public HttpMessage HttpMessage::factory ([ string $raw_message [, string $class_name="HttpMessage" ]] )

Create an HttpMessage object from a string.

参数

raw_message

a single or several consecutive HTTP messages

class_name

a class extending HttpMessage

返回值

Returns an HttpMessage object on success or NULL on failure.

错误／异常

Throws HttpMalformedHeadersException.

参见

  • HttpMessage::fromEnv() - Create HttpMessage from environment.

HttpMessage::detach
HttpMessage::fromEnv
The HttpMessage class


Create HttpMessage from environment

HttpMessage::factory
HttpMessage::fromString
The HttpMessage class
PHP 手册

HttpMessage::fromEnv

(PECL pecl_http >= 1.5.0)

HttpMessage::fromEnv — Create HttpMessage from environment

说明

static public HttpMessage HttpMessage::fromEnv ( int $message_type [, string $class_name="HttpMessage" ] )

Create an HttpMessage object from script environment.

参数

message_type

The message type. See HttpMessage type constants.

class_name

a class extending HttpMessage

返回值

Returns an HttpMessage object on success or NULL on failure.

参见

  • HttpMessage::factory() - Create HttpMessage from string.

HttpMessage::factory
HttpMessage::fromString
The HttpMessage class


Create HttpMessage from string

HttpMessage::fromEnv
HttpMessage::getBody
The HttpMessage class
PHP 手册

HttpMessage::fromString

(PECL pecl_http 0.10.0-1.3.3)

HttpMessage::fromString — Create HttpMessage from string

说明

static public HttpMessage HttpMessage::fromString ([ string $raw_message [, string $class_name="HttpMessage" ]] )

Create an HttpMessage object from a string.

本函数别名已废弃，仅为了向后兼容性而存在。建议不要使用它，因为或许哪天它便会从 PHP 中删除。

参数

raw_message

a single or several consecutive HTTP messages

class_name

a class extending HttpMessage

返回值

Returns an HttpMessage object on success or NULL on failure.

错误／异常

Throws HttpMalformedHeadersException.

参见

  • HttpMessage::factory() - Create HttpMessage from string.

HttpMessage::fromEnv
HttpMessage::getBody
The HttpMessage class


Get message body

HttpMessage::fromString
HttpMessage::getHeader
The HttpMessage class
PHP 手册

HttpMessage::getBody

(PECL pecl_http >= 0.10.0)

HttpMessage::getBody — Get message body

说明

public string HttpMessage::getBody ( void )

Get the body of the parsed HttpMessage.

返回值

Returns the message body as string.

HttpMessage::fromString
HttpMessage::getHeader
The HttpMessage class


Get header

HttpMessage::getBody
HttpMessage::getHeaders
The HttpMessage class
PHP 手册

HttpMessage::getHeader

(PECL pecl_http >= 1.1.0)

HttpMessage::getHeader — Get header

说明

public string HttpMessage::getHeader ( string $header )

Get message header.

参数

header

header name

返回值

Returns the header value on success or NULL if the header does not exist.

HttpMessage::getBody
HttpMessage::getHeaders
The HttpMessage class


Get message headers

HttpMessage::getHeader
HttpMessage::getHttpVersion
The HttpMessage class
PHP 手册

HttpMessage::getHeaders

(PECL pecl_http >= 0.10.0)

HttpMessage::getHeaders — Get message headers

说明

public array HttpMessage::getHeaders ( void )

Get message headers.

返回值

Returns an associative array containing the messages HTTP headers.

HttpMessage::getHeader
HttpMessage::getHttpVersion
The HttpMessage class


Get HTTP version

HttpMessage::getHeaders
HttpMessage::getParentMessage
The HttpMessage class
PHP 手册

HttpMessage::getHttpVersion

(PECL pecl_http >= 0.10.0)

HttpMessage::getHttpVersion — Get HTTP version

说明

public string HttpMessage::getHttpVersion ( void )

Get the HTTP Protocol Version of the Message.

返回值

Returns the HTTP protocol version as string.

HttpMessage::getHeaders
HttpMessage::getParentMessage
The HttpMessage class


Get parent message

HttpMessage::getHttpVersion
HttpMessage::getRequestMethod
The HttpMessage class
PHP 手册

HttpMessage::getParentMessage

(PECL pecl_http >= 0.10.0)

HttpMessage::getParentMessage — Get parent message

说明

public HttpMessage HttpMessage::getParentMessage ( void )

Get parent Message.

返回值

Returns the parent HttpMessage object.

错误／异常

Throws HttpRuntimeException.

HttpMessage::getHttpVersion
HttpMessage::getRequestMethod
The HttpMessage class


Get request method

HttpMessage::getParentMessage
HttpMessage::getRequestUrl
The HttpMessage class
PHP 手册

HttpMessage::getRequestMethod

(PECL pecl_http >= 0.10.0)

HttpMessage::getRequestMethod — Get request method

说明

public string HttpMessage::getRequestMethod ( void )

Get the Request Method of the Message.

返回值

Returns the request method name on success, or FALSE if the message is not of type HttpMessage::TYPE_REQUEST.

HttpMessage::getParentMessage
HttpMessage::getRequestUrl
The HttpMessage class


Get request URL

HttpMessage::getRequestMethod
HttpMessage::getResponseCode
The HttpMessage class
PHP 手册

HttpMessage::getRequestUrl

(PECL pecl_http >= 0.21.0)

HttpMessage::getRequestUrl — Get request URL

说明

public string HttpMessage::getRequestUrl ( void )

Get the Request URL of the Message.

参数

返回值

Returns the request URL as string on success, or FALSE if the message is not of type HttpMessage::TYPE_REQUEST.

HttpMessage::getRequestMethod
HttpMessage::getResponseCode
The HttpMessage class


Get response code

HttpMessage::getRequestUrl
HttpMessage::getResponseStatus
The HttpMessage class
PHP 手册

HttpMessage::getResponseCode

(PECL pecl_http >= 0.10.0)

HttpMessage::getResponseCode — Get response code

说明

public int HttpMessage::getResponseCode ( void )

Get the Response Code of the Message.

返回值

Returns the HTTP response code if the message is of type HttpMessage::TYPE_RESPONSE, else FALSE.

HttpMessage::getRequestUrl
HttpMessage::getResponseStatus
The HttpMessage class


Get response status

HttpMessage::getResponseCode
HttpMessage::getType
The HttpMessage class
PHP 手册

HttpMessage::getResponseStatus

(PECL pecl_http >= 0.23.0)

HttpMessage::getResponseStatus — Get response status

说明

public string HttpMessage::getResponseStatus ( void )

Get the Response Status of the message (i.e. the string following the response code).

返回值

Returns the HTTP response status string if the message is of type HttpMessage::TYPE_RESPONSE, else FALSE.

HttpMessage::getResponseCode
HttpMessage::getType
The HttpMessage class


Get message type

HttpMessage::getResponseStatus
HttpMessage::guessContentType
The HttpMessage class
PHP 手册

HttpMessage::getType

(PECL pecl_http >= 0.10.0)

HttpMessage::getType — Get message type

说明

public int HttpMessage::getType ( void )

Get Message Type. Either HTTP_MSG_NONE, HTTP_MSG_REQUEST or HTTP_MSG_RESPONSE.

返回值

Returns the HttpMessage::TYPE.

HttpMessage::getResponseStatus
HttpMessage::guessContentType
The HttpMessage class


Guess content type

HttpMessage::getType
HttpMessage::prepend
The HttpMessage class
PHP 手册

HttpMessage::guessContentType

(PECL pecl_http >= 1.0.0)

HttpMessage::guessContentType — Guess content type

说明

public string HttpMessage::guessContentType ( string $magic_file [, int $magic_mode=MAGIC_MIME ] )

Attempts to guess the content type of the message body through libmagic.

参数

magic_file

the magic.mime database to use

magic_mode

flags for libmagic

返回值

Returns the guessed content type on success, or FALSE on failure.

错误／异常

Throws HttpRuntimeException, HttpInvalidParamException.

HttpMessage::getType
HttpMessage::prepend
The HttpMessage class


Prepend message(s)

HttpMessage::guessContentType
HttpMessage::reverse
The HttpMessage class
PHP 手册

HttpMessage::prepend

(PECL pecl_http >= 0.22.0)

HttpMessage::prepend — Prepend message(s)

说明

public void HttpMessage::prepend ( HttpMessage $message [, bool $top=true ] )

Prepends message(s) to the HTTP message.

参数

message

HttpMessage object to prepend

top

whether to prepend to the top most or right this message

错误／异常

Throws HttpInvalidParamException if the message is located within the same message chain.

HttpMessage::guessContentType
HttpMessage::reverse
The HttpMessage class


Reverse message chain

HttpMessage::prepend
HttpMessage::send
The HttpMessage class
PHP 手册

HttpMessage::reverse

(PECL pecl_http >= 0.23.0)

HttpMessage::reverse — Reverse message chain

说明

public HttpMessage HttpMessage::reverse ( void )

Reorders the message chain in reverse order.

返回值

Returns the most parent HttpMessage object.

HttpMessage::prepend
HttpMessage::send
The HttpMessage class


Send message

HttpMessage::reverse
HttpMessage::setBody
The HttpMessage class
PHP 手册

HttpMessage::send

(PECL pecl_http >= 0.10.0)

HttpMessage::send — Send message

说明

public bool HttpMessage::send ( void )

Send the Message according to its type as Response or Request.

This provides limited functionality compared to HttpRequest and HttpResponse.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpMessage::reverse
HttpMessage::setBody
The HttpMessage class


Set message body

HttpMessage::send
HttpMessage::setHeaders
The HttpMessage class
PHP 手册

HttpMessage::setBody

(PECL pecl_http >= 0.14.0)

HttpMessage::setBody — Set message body

说明

public void HttpMessage::setBody ( string $body )

Set the body of the HttpMessage.

Note: Don't forget to update any headers accordingly.

参数

body

the new body of the message

HttpMessage::send
HttpMessage::setHeaders
The HttpMessage class


Set headers

HttpMessage::setBody
HttpMessage::setHttpVersion
The HttpMessage class
PHP 手册

HttpMessage::setHeaders

(PECL pecl_http >= 0.10.0)

HttpMessage::setHeaders — Set headers

说明

public void HttpMessage::setHeaders ( array $headers )

Sets new headers.

参数

headers

associative array containing the new HTTP headers, which will replace all previous HTTP headers of the message

HttpMessage::setBody
HttpMessage::setHttpVersion
The HttpMessage class


Set HTTP version

HttpMessage::setHeaders
HttpMessage::setRequestMethod
The HttpMessage class
PHP 手册

HttpMessage::setHttpVersion

(PECL pecl_http >= 0.10.0)

HttpMessage::setHttpVersion — Set HTTP version

说明

public bool HttpMessage::setHttpVersion ( string $version )

Set the HTTP Protocol version of the Message.

参数

version

the HTTP protocol version

返回值

Returns TRUE on success, or FALSE if supplied version is out of range (1.0/1.1).

HttpMessage::setHeaders
HttpMessage::setRequestMethod
The HttpMessage class


Set request method

HttpMessage::setHttpVersion
HttpMessage::setRequestUrl
The HttpMessage class
PHP 手册

HttpMessage::setRequestMethod

(PECL pecl_http >= 0.10.0)

HttpMessage::setRequestMethod — Set request method

说明

public bool HttpMessage::setRequestMethod ( string $method )

Set the Request Method of the HTTP Message.

参数

method

the request method name

返回值

Returns TRUE on success, or FALSE if the message is not of type HttpMessage::TYPE_REQUEST or an invalid request method was supplied.

HttpMessage::setHttpVersion
HttpMessage::setRequestUrl
The HttpMessage class


Set request URL

HttpMessage::setRequestMethod
HttpMessage::setResponseCode
The HttpMessage class
PHP 手册

HttpMessage::setRequestUrl

(PECL pecl_http >= 0.21.0)

HttpMessage::setRequestUrl — Set request URL

说明

public bool HttpMessage::setRequestUrl ( string $url )

Set the Request URL of the HTTP Message.

参数

url

the request URL

返回值

Returns TRUE on success, or FALSE if the message is not of type HttpMessage::TYPE_REQUEST or supplied URL was empty.

HttpMessage::setRequestMethod
HttpMessage::setResponseCode
The HttpMessage class


Set response code

HttpMessage::setRequestUrl
HttpMessage::setResponseStatus
The HttpMessage class
PHP 手册

HttpMessage::setResponseCode

(PECL pecl_http >= 0.10.0)

HttpMessage::setResponseCode — Set response code

说明

public bool HttpMessage::setResponseCode ( int $code )

Set the response code of an HTTP Response Message.

参数

code

HTTP response code

返回值

Returns TRUE on success, or FALSE if the message is not of type HttpMessage::TYPE_RESPONSE or the response code is out of range (100-510).

HttpMessage::setRequestUrl
HttpMessage::setResponseStatus
The HttpMessage class


Set response status

HttpMessage::setResponseCode
HttpMessage::setType
The HttpMessage class
PHP 手册

HttpMessage::setResponseStatus

(PECL pecl_http >= 0.23.0)

HttpMessage::setResponseStatus — Set response status

说明

public bool HttpMessage::setResponseStatus ( string $status )

Set the Response Status of the HTTP message (i.e. the string following the response code).

参数

status

the response status text

返回值

Returns TRUE on success or FALSE if the message is not of type HttpMessage::TYPE_RESPONSE.

HttpMessage::setResponseCode
HttpMessage::setType
The HttpMessage class


Set message type

HttpMessage::setResponseStatus
HttpMessage::toMessageTypeObject
The HttpMessage class
PHP 手册

HttpMessage::setType

(PECL pecl_http >= 0.10.0)

HttpMessage::setType — Set message type

说明

public void HttpMessage::setType ( int $type )

Set Message Type. Either HTTP_MSG_NONE, HTTP_MSG_REQUEST or HTTP_MSG_RESPONSE.

参数

type

the HttpMessage::TYPE

HttpMessage::setResponseStatus
HttpMessage::toMessageTypeObject
The HttpMessage class


Create HTTP object regarding message type

HttpMessage::setType
HttpMessage::toString
The HttpMessage class
PHP 手册

HttpMessage::toMessageTypeObject

(PECL pecl_http >= 0.22.0)

HttpMessage::toMessageTypeObject — Create HTTP object regarding message type

说明

public HttpRequest|HttpResponse HttpMessage::toMessageTypeObject ( void )

Creates an object regarding to the type of the message.

参数

返回值

Returns either an HttpRequest or HttpResponse object on success, or NULL on failure.

错误／异常

Throws HttpRuntimeException, HttpMessageTypeException, HttpHeaderException.

HttpMessage::setType
HttpMessage::toString
The HttpMessage class


Get string representation

HttpMessage::toMessageTypeObject
The HttpQueryString class
The HttpMessage class
PHP 手册

HttpMessage::toString

(PECL pecl_http >= 0.10.0)

HttpMessage::toString — Get string representation

说明

public string HttpMessage::toString ([ bool $include_parent=false ] )

Get the string representation of the Message.

参数

include_parent

specifies whether the returned string should also contain any parent messages

返回值

Returns the message as string.

HttpMessage::toMessageTypeObject
The HttpQueryString class
The HttpMessage class


The HttpQueryString class

Class synopsis

HttpQueryString
HttpQueryString implements ArrayAccess , Serializable {
final public void __construct ([ bool $global=true [, mixed $add ]] )
public mixed get ([ string $key [, mixed $type=0 [, mixed $defval=NULL [, bool $delete=false ]]]] )
public HttpQueryString mod ( mixed $params )
public string set ( mixed $params )
static public HttpQueryString singleton ([ bool $global=true ] )
public array toArray ( void )
public string toString ( void )
public bool xlate ( string $ie , string $oe )
}

Class Members

属性

Instance Properties
Modifiers | Type | Name | Description
private | array | queryArray | query parameters
private | string | queryString | serialized query parameters
Static Properties
Modifiers | Type | Name | Description
private | array | instance | holds singletons

预定义常量

Type | Name | Description
int | TYPE_BOOL | retrieve query param as bool
int | TYPE_INT | retrieve query param as int
int | TYPE_FLOAT | retrieve query param as float
int | TYPE_STRING | retrieve query param as string
int | TYPE_ARRAY | retrieve query param as array
int | TYPE_OBJECT | retrieve query param as object

Table of Contents

  • HttpQueryString::__construct — HttpQueryString constructor
  • HttpQueryString::get — Get (part of) query string
  • HttpQueryString::mod — Modifiy query string copy
  • HttpQueryString::set — Set query string params
  • HttpQueryString::singleton — HttpQueryString singleton
  • HttpQueryString::toArray — Get query string as array
  • HttpQueryString::toString — Get query string
  • HttpQueryString::xlate — Change query strings charset
HttpMessage::toString
HttpQueryString::__construct
HTTP


HttpQueryString constructor

The HttpQueryString class
HttpQueryString::get
The HttpQueryString class
PHP 手册

HttpQueryString::__construct

(PECL pecl_http >= 0.22.0)

HttpQueryString::__construct — HttpQueryString constructor

说明

final public void HttpQueryString::__construct ([ bool $global=true [, mixed $add ]] )

Creates a new HttpQueryString object instance.

Operates on and modifies $_GET and $_SERVER['QUERY_STRING'] if global is TRUE.

参数

global

whether to operate on $_GET and $_SERVER['QUERY_STRING']

add

additional/initial query string parameters

错误／异常

Throws HttpRuntimeException.

The HttpQueryString class
HttpQueryString::get
The HttpQueryString class


Get (part of) query string

HttpQueryString::__construct
HttpQueryString::mod
The HttpQueryString class
PHP 手册

HttpQueryString::get

(PECL pecl_http >= 0.22.0)

HttpQueryString::get — Get (part of) query string

说明

public mixed HttpQueryString::get ([ string $key [, mixed $type=0 [, mixed $defval=NULL [, bool $delete=false ]]]] )

Get (part of) the query string.

The type parameter is either one of the HttpQueryString::TYPE_* constants or a type abbreviation like "b" for bool, "i" for int, "f" for float, "s" for string, "a" for array and "o" for a stdClass object.

参数

key

key of the query string param to retrieve

type

which variable type to enforce

defval

default value if key does not exist

delete

whether to remove the key/value pair from the query string

返回值

Returns the value of the query string param or the whole query string if no key was specified on success or defval if key does not exist.

HttpQueryString::__construct
HttpQueryString::mod
The HttpQueryString class


Modifiy query string copy

HttpQueryString::get
HttpQueryString::set
The HttpQueryString class
PHP 手册

HttpQueryString::mod

(PECL pecl_http >= 1.1.0)

HttpQueryString::mod — Modifiy query string copy

说明

public HttpQueryString HttpQueryString::mod ( mixed $params )

Copies the query string object and sets provided params at the clone.

参数

params

query string params to add

返回值

Returns a new HttpQueryString object

HttpQueryString::get
HttpQueryString::set
The HttpQueryString class


Set query string params

HttpQueryString::mod
HttpQueryString::singleton
The HttpQueryString class
PHP 手册

HttpQueryString::set

(PECL pecl_http >= 0.22.0)

HttpQueryString::set — Set query string params

说明

public string HttpQueryString::set ( mixed $params )

Set query string entry/entries. NULL values will unset the variable.

参数

params

query string params to add

返回值

Returns the current query string.

HttpQueryString::mod
HttpQueryString::singleton
The HttpQueryString class


HttpQueryString singleton

HttpQueryString::set
HttpQueryString::toArray
The HttpQueryString class
PHP 手册

HttpQueryString::singleton

(PECL pecl_http >= 0.25.0)

HttpQueryString::singleton — HttpQueryString singleton

说明

static public HttpQueryString HttpQueryString::singleton ([ bool $global=true ] )

Get a single instance (differentiates between the global setting).

参数

global

whether to operate on $_GET and $_SERVER['QUERY_STRING']

返回值

Returns always the same HttpQueryString instance regarding the global setting.

错误／异常

Throws HttpRuntimeException.

HttpQueryString::set
HttpQueryString::toArray
The HttpQueryString class


Get query string as array

HttpQueryString::singleton
HttpQueryString::toString
The HttpQueryString class
PHP 手册

HttpQueryString::toArray

(PECL pecl_http >= 0.22.0)

HttpQueryString::toArray — Get query string as array

说明

public array HttpQueryString::toArray ( void )

Get the query string represented as associative array.

返回值

Returns the array representation of the query string.

HttpQueryString::singleton
HttpQueryString::toString
The HttpQueryString class


Get query string

HttpQueryString::toArray
HttpQueryString::xlate
The HttpQueryString class
PHP 手册

HttpQueryString::toString

(PECL pecl_http >= 0.22.0)

HttpQueryString::toString — Get query string

说明

public string HttpQueryString::toString ( void )

Get the query string.

参数

返回值

Returns the string representation of the query string.

HttpQueryString::toArray
HttpQueryString::xlate
The HttpQueryString class


Change query strings charset

HttpQueryString::toString
The HttpRequest
The HttpQueryString class
PHP 手册

HttpQueryString::xlate

(PECL pecl_http >= 0.25.0)

HttpQueryString::xlate — Change query strings charset

说明

public bool HttpQueryString::xlate ( string $ie , string $oe )

Converts the query string from the source encoding ie to the target encoding oe.

Warning

Don't use any character set that can contain NUL bytes like UTF-16.

Note: This method requires ext/iconv to be enabled and loaded.

参数

ie

input encoding

oe

output encoding

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpQueryString::toString
The HttpRequest
The HttpQueryString class


The HttpRequest

Class synopsis

HttpRequest
HttpRequest {
public bool addCookies ( array $cookies )
public bool addHeaders ( array $headers )
public bool addPostFields ( array $post_data )
public bool addPostFile ( string $name , string $file [, string $content_type="application/x-octetstream" ] )
public bool addPutData ( string $put_data )
public bool addQueryData ( array $query_params )
public bool addRawPostData ( string $raw_post_data )
public bool addSslOptions ( array $options )
public void clearHistory ( void )
public void __construct ([ string $url [, int $request_method=HTTP_METH_GET [, array $options ]]] )
public bool enableCookies ( void )
public string getContentType ( void )
public array getCookies ( void )
public array getHeaders ( void )
public HttpMessage getHistory ( void )
public int getMethod ( void )
public array getOptions ( void )
public array getPostFields ( void )
public array getPostFiles ( void )
public string getPutData ( void )
public string getPutFile ( void )
public string getQueryData ( void )
public string getRawPostData ( void )
public string getRawRequestMessage ( void )
public string getRawResponseMessage ( void )
public HttpMessage getRequestMessage ( void )
public string getResponseBody ( void )
public int getResponseCode ( void )
public array getResponseCookies ([ int $flags [, array $allowed_extras ]] )
public array getResponseData ( void )
public mixed getResponseHeader ([ string $name ] )
public mixed getResponseInfo ([ string $name ] )
public HttpMessage getResponseMessage ( void )
public string getResponseStatus ( void )
public array getSslOptions ( void )
public string getUrl ( void )
public bool resetCookies ([ bool $session_only=false ] )
public HttpMessage send ( void )
public bool setContentType ( string $content_type )
public bool setCookies ([ array $cookies ] )
public bool setHeaders ([ array $headers ] )
public bool setMethod ( int $request_method )
public bool setOptions ([ array $options ] )
public bool setPostFields ( array $post_data )
public bool setPostFiles ( array $post_files )
public bool setPutData ([ string $put_data ] )
public bool setPutFile ([ string $file ] )
public bool setQueryData ( mixed $query_data )
public bool setRawPostData ([ string $raw_post_data ] )
public bool setSslOptions ([ array $options ] )
public bool setUrl ( string $url )
}

Class Members

属性

Instance Properties
Modifiers | Type | Name | Description
protected | array | options | request options to configure the request; see 请求选项
protected array postFields form data:
array("fieldname" => "fieldvalue")
protected array postFiles files to upload:
array(array("name" => "image", "file" => "/home/u/images/u.png", "type" => "image/png"))
protected | array | responseInfo | information (statistical) about the request/response; see 请求／响应信息
protected | HttpMessage | responseMessage | the response message
protected | integer | responseCode | the numerical response code
protected | string | responseStatus | the literal response status text
protected | integer | method | the request method to use
protected | string | url | the request url
protected | string | contentType | the content type to use for raw post requests
protected | string | rawPostData | raw post data
protected | string | queryData | query parameters
protected | string | putFile | the file to upload with a PUT request
protected | string | putData | raw data to upload with a PUT request
protected | HttpMessage | history | the whole request/response history if history logging is enabled
public | boolean | recordHistory | whether to enable history logging

预定义常量

Type | Name | Description
integer | METH_GET | GET request method
integer | METH_HEAD | HEAD request method
integer | METH_POST | POST request method
integer | METH_PUT | PUT request method
integer | METH_DELETE | DELETE request method
integer | METH_OPTIONS | OPTIONS request method
integer | METH_TRACE | TRACE request method
integer | METH_CONNECT | CONNECT request method
integer | METH_PROPFIND | PROPFIND request method
integer | METH_PROPPATCH | PROPPATCH request method
integer | METH_MKCOL | MKCOL request method
integer | METH_COPY | COPY request method
integer | METH_MOVE | MOVE request method
integer | METH_LOCK | LOCK request method
integer | METH_UNLOCK | UNLOCK request method
integer | METH_VERSION_CONTROL | VERSION-CONTROL request method
integer | METH_REPORT | REPORT request method
integer | METH_CHECKOUT | CHECKOUT request method
integer | METH_CHECKIN | CHECKIN request method
integer | METH_UNCHECKOUT | UNCHECKOUT request method
integer | METH_MKWORKSPACE | MKWORKSPACE request method
integer | METH_UPDATE | UPDATE request method
integer | METH_LABEL | LABEL request method
integer | METH_MERGE | MERGE request method
integer | METH_BASELINE_CONTROL | BASELINE-CONTROL request method
integer | METH_MKACTIVITY | MKACTIVITY request method
integer | METH_ACL | ACL request method
integer | VERSION_1_0 | HTTP protocol version 1.0
integer | VERSION_1_1 | HTTP protocol version 1.1
integer | VERSION_ANY | any HTTP protocol version
integer | AUTH_BASIC | basic authentication
integer | AUTH_DIGEST | digest authentication
integer | AUTH_NTLM | NTLM authentication
integer | AUTH_GSSNEG | GSS negotiate authentication
integer | AUTH_ANY | any authentication
integer | PROXY_SOCKS4 | SOCKS v4 proxy
integer | PROXY_SOCKS5 | SOCKS v5 proxy
integer | PROXY_HTTP | HTTP proxy
integer | SSL_VERSION_TLSv1 | use TLS v1
integer | SSL_VERSION_SSLv2 | use SSL v2
integer | SSL_VERSION_SSLv3 | use SSL v3
integer | SSL_VERSION_ANY | use any SSL/TLS method
integer | IPRESOLVE_V4 | resolve via IPv4 only
integer | IPRESOLVE_V6 | resolve via IPv6 only
integer | IPRESOLVE_ANY | use any resolving methods

Table of Contents

  • HttpRequest::addCookies — Add cookies
  • HttpRequest::addHeaders — Add headers
  • HttpRequest::addPostFields — Add post fields
  • HttpRequest::addPostFile — Add post file
  • HttpRequest::addPutData — Add put data
  • HttpRequest::addQueryData — Add query data
  • HttpRequest::addRawPostData — Add raw post data
  • HttpRequest::addSslOptions — Add ssl options
  • HttpRequest::clearHistory — Clear history
  • HttpRequest::__construct — HttpRequest constructor
  • HttpRequest::enableCookies — Enable cookies
  • HttpRequest::getContentType — Get content type
  • HttpRequest::getCookies — Get cookies
  • HttpRequest::getHeaders — Get headers
  • HttpRequest::getHistory — Get history
  • HttpRequest::getMethod — Get method
  • HttpRequest::getOptions — Get options
  • HttpRequest::getPostFields — Get post fields
  • HttpRequest::getPostFiles — Get post files
  • HttpRequest::getPutData — Get put data
  • HttpRequest::getPutFile — Get put file
  • HttpRequest::getQueryData — Get query data
  • HttpRequest::getRawPostData — Get raw post data
  • HttpRequest::getRawRequestMessage — Get raw request message
  • HttpRequest::getRawResponseMessage — Get raw response message
  • HttpRequest::getRequestMessage — Get request message
  • HttpRequest::getResponseBody — Get response body
  • HttpRequest::getResponseCode — Get response code
  • HttpRequest::getResponseCookies — Get response cookie(s)
  • HttpRequest::getResponseData — Get response data
  • HttpRequest::getResponseHeader — Get response header(s)
  • HttpRequest::getResponseInfo — Get response info
  • HttpRequest::getResponseMessage — Get response message
  • HttpRequest::getResponseStatus — Get response status
  • HttpRequest::getSslOptions — Get ssl options
  • HttpRequest::getUrl — Get url
  • HttpRequest::resetCookies — Reset cookies
  • HttpRequest::send — Send request
  • HttpRequest::setContentType — Set content type
  • HttpRequest::setCookies — Set cookies
  • HttpRequest::setHeaders — Set headers
  • HttpRequest::setMethod — Set method
  • HttpRequest::setOptions — Set options
  • HttpRequest::setPostFields — Set post fields
  • HttpRequest::setPostFiles — Set post files
  • HttpRequest::setPutData — Set put data
  • HttpRequest::setPutFile — Set put file
  • HttpRequest::setQueryData — Set query data
  • HttpRequest::setRawPostData — Set raw post data
  • HttpRequest::setSslOptions — Set ssl options
  • HttpRequest::setUrl — Set URL
HttpQueryString::xlate
HttpRequest::addCookies
HTTP


Add cookies

The HttpRequest
HttpRequest::addHeaders
The HttpRequest
PHP 手册

HttpRequest::addCookies

(PECL pecl_http >= 0.10.0)

HttpRequest::addCookies — Add cookies

说明

public bool HttpRequest::addCookies ( array $cookies )

Add custom cookies.

Note: The request option encodecookies controls whether the cookie values should be urlencode()d.

Note: Affects any request method.

参数

cookies

an associative array containing any cookie name/value pairs to add

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A HttpRequest::addCookies() example

<?php
$r = new HttpRequest;
$r->addCookies(
    array(
        "cookie_name" => "cookie value",
    )
);
?>

参见

  • HttpRequest::setCookies() - Set cookies

The HttpRequest
HttpRequest::addHeaders
The HttpRequest


Add headers

HttpRequest::addCookies
HttpRequest::addPostFields
The HttpRequest
PHP 手册

HttpRequest::addHeaders

(PECL pecl_http >= 0.10.0)

HttpRequest::addHeaders — Add headers

说明

public bool HttpRequest::addHeaders ( array $headers )

Add request header name/value pairs.

参数

headers

an associative array as parameter containing additional header name/value pairs

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::addCookies
HttpRequest::addPostFields
The HttpRequest


Add post fields

HttpRequest::addHeaders
HttpRequest::addPostFile
The HttpRequest
PHP 手册

HttpRequest::addPostFields

(PECL pecl_http >= 0.10.0)

HttpRequest::addPostFields — Add post fields

说明

public bool HttpRequest::addPostFields ( array $post_data )

Adds POST data entries, leaving previously set unchanged, unless a post entry with the same name already exists.

Affects only POST and custom requests.

参数

post_data

an associative array as parameter containing the post fields

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::addHeaders
HttpRequest::addPostFile
The HttpRequest


Add post file

HttpRequest::addPostFields
HttpRequest::addPutData
The HttpRequest
PHP 手册

HttpRequest::addPostFile

(PECL pecl_http >= 0.10.0)

HttpRequest::addPostFile — Add post file

说明

public bool HttpRequest::addPostFile ( string $name , string $file [, string $content_type="application/x-octetstream" ] )

Add a file to the POST request, leaving previously set files unchanged.

Affects only POST and custom requests. Cannot be used with raw post data.

参数

name

the form element name

file

the path to the file

content_type

the content type of the file

返回值

Returns TRUE on success, or FALSE if the content type seems not to contain a primary and a secondary content type part.

HttpRequest::addPostFields
HttpRequest::addPutData
The HttpRequest


Add put data

HttpRequest::addPostFile
HttpRequest::addQueryData
The HttpRequest
PHP 手册

HttpRequest::addPutData

(PECL pecl_http >= 0.25.0)

HttpRequest::addPutData — Add put data

说明

public bool HttpRequest::addPutData ( string $put_data )

Add PUT data, leaving previously set PUT data unchanged.

Affects only PUT requests.

参数

put_data

the data to concatenate

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::addPostFile
HttpRequest::addQueryData
The HttpRequest


Add query data

HttpRequest::addPutData
HttpRequest::addRawPostData
The HttpRequest
PHP 手册

HttpRequest::addQueryData

(PECL pecl_http >= 0.10.0)

HttpRequest::addQueryData — Add query data

说明

public bool HttpRequest::addQueryData ( array $query_params )

Add parameters to the query parameter list, leaving previously set unchanged.

Affects any request type.

参数

query_params

an associative array as parameter containing the query fields to add

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::addPutData
HttpRequest::addRawPostData
The HttpRequest


Add raw post data

HttpRequest::addQueryData
HttpRequest::addSslOptions
The HttpRequest
PHP 手册

HttpRequest::addRawPostData

(PECL pecl_http 0.14.0-1.4.1)

HttpRequest::addRawPostData — Add raw post data

说明

public bool HttpRequest::addRawPostData ( string $raw_post_data )

Add raw post data, leaving previously set raw post data unchanged.

Affects only POST and custom requests.

参数

raw_post_data

the raw post data to concatenate

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::addQueryData
HttpRequest::addSslOptions
The HttpRequest


Add ssl options

HttpRequest::addRawPostData
HttpRequest::clearHistory
The HttpRequest
PHP 手册

HttpRequest::addSslOptions

(PECL pecl_http >= 0.12.0)

HttpRequest::addSslOptions — Add ssl options

说明

public bool HttpRequest::addSslOptions ( array $options )

Set additional SSL options.

参数

options

an associative array as parameter containing additional SSL specific options

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::addRawPostData
HttpRequest::clearHistory
The HttpRequest


Clear history

HttpRequest::addSslOptions
HttpRequest::__construct
The HttpRequest
PHP 手册

HttpRequest::clearHistory

(PECL pecl_http >= 0.15.0)

HttpRequest::clearHistory — Clear history

说明

public void HttpRequest::clearHistory ( void )

Clears all history messages.

Note: History is only logged if recordHistory was enabled.

HttpRequest::addSslOptions
HttpRequest::__construct
The HttpRequest


HttpRequest constructor

HttpRequest::clearHistory
HttpRequest::enableCookies
The HttpRequest
PHP 手册

HttpRequest::__construct

(PECL pecl_http >= 0.10.0)

HttpRequest::__construct — HttpRequest constructor

说明

public void HttpRequest::__construct ([ string $url [, int $request_method=HTTP_METH_GET [, array $options ]]] )

Instantiate a new HttpRequest object.

参数

url

the target request url

request_method

the request method to use

options

an associative array with request options

错误／异常

Throws HttpException.

HttpRequest::clearHistory
HttpRequest::enableCookies
The HttpRequest


Enable cookies

HttpRequest::__construct
HttpRequest::getContentType
The HttpRequest
PHP 手册

HttpRequest::enableCookies

(PECL pecl_http >= 1.0.0)

HttpRequest::enableCookies — Enable cookies

说明

public bool HttpRequest::enableCookies ( void )

Enable automatic sending of received cookies.

Note: Note that custom set cookies will be sent anyway.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::__construct
HttpRequest::getContentType
The HttpRequest


Get content type

HttpRequest::enableCookies
HttpRequest::getCookies
The HttpRequest
PHP 手册

HttpRequest::getContentType

(PECL pecl_http >= 0.10.0)

HttpRequest::getContentType — Get content type

说明

public string HttpRequest::getContentType ( void )

Get the previously set content type.

返回值

Returns the previously set content type as string.

HttpRequest::enableCookies
HttpRequest::getCookies
The HttpRequest


Get cookies

HttpRequest::getContentType
HttpRequest::getHeaders
The HttpRequest
PHP 手册

HttpRequest::getCookies

(PECL pecl_http >= 0.10.0)

HttpRequest::getCookies — Get cookies

说明

public array HttpRequest::getCookies ( void )

Get previously set cookies.

返回值

Returns an associative array containing any previously set cookies.

HttpRequest::getContentType
HttpRequest::getHeaders
The HttpRequest


Get headers

HttpRequest::getCookies
HttpRequest::getHistory
The HttpRequest
PHP 手册

HttpRequest::getHeaders

(PECL pecl_http >= 0.10.0)

HttpRequest::getHeaders — Get headers

说明

public array HttpRequest::getHeaders ( void )

Get previously set request headers.

返回值

Returns an associative array containing all currently set headers.

HttpRequest::getCookies
HttpRequest::getHistory
The HttpRequest


Get history

HttpRequest::getHeaders
HttpRequest::getMethod
The HttpRequest
PHP 手册

HttpRequest::getHistory

(PECL pecl_http >= 0.15.0)

HttpRequest::getHistory — Get history

说明

public HttpMessage HttpRequest::getHistory ( void )

Get all sent requests and received responses as an HttpMessage object.

If you want to record history, set the instance variable HttpRequest::recordHistory to TRUE.

The returned object references the last received response, use HttpMessage::getParentMessage() to access the data of previously sent requests and received responses.

返回值

Returns an HttpMessage object representing the complete request/response history.

错误／异常

Throws HttpRuntimeException.

HttpRequest::getHeaders
HttpRequest::getMethod
The HttpRequest


Get method

HttpRequest::getHistory
HttpRequest::getOptions
The HttpRequest
PHP 手册

HttpRequest::getMethod

(PECL pecl_http >= 0.10.0)

HttpRequest::getMethod — Get method

说明

public int HttpRequest::getMethod ( void )

Get the previously set request method.

返回值

Returns the currently set request method.

HttpRequest::getHistory
HttpRequest::getOptions
The HttpRequest


Get options

HttpRequest::getMethod
HttpRequest::getPostFields
The HttpRequest
PHP 手册

HttpRequest::getOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::getOptions — Get options

说明

public array HttpRequest::getOptions ( void )

Get currently set options.

返回值

Returns an associative array containing currently set options.

HttpRequest::getMethod
HttpRequest::getPostFields
The HttpRequest


Get post fields

HttpRequest::getOptions
HttpRequest::getPostFiles
The HttpRequest
PHP 手册

HttpRequest::getPostFields

(PECL pecl_http >= 0.10.0)

HttpRequest::getPostFields — Get post fields

说明

public array HttpRequest::getPostFields ( void )

Get previously set POST data.

参数

返回值

Returns the currently set post fields as associative array.

HttpRequest::getOptions
HttpRequest::getPostFiles
The HttpRequest


Get post files

HttpRequest::getPostFields
HttpRequest::getPutData
The HttpRequest
PHP 手册

HttpRequest::getPostFiles

(PECL pecl_http >= 0.10.0)

HttpRequest::getPostFiles — Get post files

说明

public array HttpRequest::getPostFiles ( void )

Get all previously added POST files.

返回值

Returns an array containing currently set post files.

HttpRequest::getPostFields
HttpRequest::getPutData
The HttpRequest


Get put data

HttpRequest::getPostFiles
HttpRequest::getPutFile
The HttpRequest
PHP 手册

HttpRequest::getPutData

(PECL pecl_http >= 0.25.0)

HttpRequest::getPutData — Get put data

说明

public string HttpRequest::getPutData ( void )

Get previously set PUT data.

返回值

Returns a string containing the currently set PUT data.

HttpRequest::getPostFiles
HttpRequest::getPutFile
The HttpRequest


Get put file

HttpRequest::getPutData
HttpRequest::getQueryData
The HttpRequest
PHP 手册

HttpRequest::getPutFile

(PECL pecl_http >= 0.10.0)

HttpRequest::getPutFile — Get put file

说明

public string HttpRequest::getPutFile ( void )

Get previously set put file.

返回值

Returns a string containing the path to the currently set put file.

HttpRequest::getPutData
HttpRequest::getQueryData
The HttpRequest


Get query data

HttpRequest::getPutFile
HttpRequest::getRawPostData
The HttpRequest
PHP 手册

HttpRequest::getQueryData

(PECL pecl_http >= 0.10.0)

HttpRequest::getQueryData — Get query data

说明

public string HttpRequest::getQueryData ( void )

Get the current query data in form of an urlencoded query string.

返回值

Returns a string containing the urlencoded query.

HttpRequest::getPutFile
HttpRequest::getRawPostData
The HttpRequest


Get raw post data

HttpRequest::getQueryData
HttpRequest::getRawRequestMessage
The HttpRequest
PHP 手册

HttpRequest::getRawPostData

(PECL pecl_http 0.14.0-1.4.1)

HttpRequest::getRawPostData — Get raw post data

说明

public string HttpRequest::getRawPostData ( void )

Get previously set raw post data.

参数

返回值

Returns a string containing the currently set raw post data.

HttpRequest::getQueryData
HttpRequest::getRawRequestMessage
The HttpRequest


Get raw request message

HttpRequest::getRawPostData
HttpRequest::getRawResponseMessage
The HttpRequest
PHP 手册

HttpRequest::getRawRequestMessage

(PECL pecl_http >= 0.21.0)

HttpRequest::getRawRequestMessage — Get raw request message

说明

public string HttpRequest::getRawRequestMessage ( void )

Get sent HTTP message.

参数

返回值

Returns an HttpMessage in a form of a string.

HttpRequest::getRawPostData
HttpRequest::getRawResponseMessage
The HttpRequest


Get raw response message

HttpRequest::getRawRequestMessage
HttpRequest::getRequestMessage
The HttpRequest
PHP 手册

HttpRequest::getRawResponseMessage

(PECL pecl_http >= 0.21.0)

HttpRequest::getRawResponseMessage — Get raw response message

说明

public string HttpRequest::getRawResponseMessage ( void )

Get the entire HTTP response.

参数

返回值

Returns the complete web server response, including the headers in a form of a string.

HttpRequest::getRawRequestMessage
HttpRequest::getRequestMessage
The HttpRequest


Get request message

HttpRequest::getRawResponseMessage
HttpRequest::getResponseBody
The HttpRequest
PHP 手册

HttpRequest::getRequestMessage

(PECL pecl_http >= 0.11.0)

HttpRequest::getRequestMessage — Get request message

说明

public HttpMessage HttpRequest::getRequestMessage ( void )

Get sent HTTP message.

If redirects were allowed and several responses were received, the data references the last received response. Use HttpMessage::getParentMessage() to access the data of previously sent requests within this request cycle.

Note: Note that the internal request message is immutable, that means that the request message received through HttpRequest::getRequestMessage() will always look the same for the same request, regardless of any changes you may have made to the returned object.

返回值

Returns an HttpMessage object representing the sent request.

错误／异常

Throws HttpMalformedHeadersException, HttpEncodingException.

HttpRequest::getRawResponseMessage
HttpRequest::getResponseBody
The HttpRequest


Get response body

HttpRequest::getRequestMessage
HttpRequest::getResponseCode
The HttpRequest
PHP 手册

HttpRequest::getResponseBody

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseBody — Get response body

说明

public string HttpRequest::getResponseBody ( void )

Get the response body after the request has been sent.

If redirects were allowed and several responses were received, the data references the last received response.

参数

返回值

Returns a string containing the response body.

HttpRequest::getRequestMessage
HttpRequest::getResponseCode
The HttpRequest


Get response code

HttpRequest::getResponseBody
HttpRequest::getResponseCookies
The HttpRequest
PHP 手册

HttpRequest::getResponseCode

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseCode — Get response code

说明

public int HttpRequest::getResponseCode ( void )

Get the response code after the request has been sent.

If redirects were allowed and several responses were received, the data references the last received response.

返回值

Returns an int representing the response code.

HttpRequest::getResponseBody
HttpRequest::getResponseCookies
The HttpRequest


Get response cookie(s)

HttpRequest::getResponseCode
HttpRequest::getResponseData
The HttpRequest
PHP 手册

HttpRequest::getResponseCookies

(PECL pecl_http >= 0.23.0)

HttpRequest::getResponseCookies — Get response cookie(s)

说明

public array HttpRequest::getResponseCookies ([ int $flags [, array $allowed_extras ]] )

Get response cookie(s) after the request has been sent.

If redirects were allowed and several responses were received, the data references the last received response.

参数

flags

http_parse_cookie() flags

allowed_extras

allowed keys treated as extra information instead of cookie names

返回值

Returns an array of stdClass objects like http_parse_cookie() would return.

HttpRequest::getResponseCode
HttpRequest::getResponseData
The HttpRequest


Get response data

HttpRequest::getResponseCookies
HttpRequest::getResponseHeader
The HttpRequest
PHP 手册

HttpRequest::getResponseData

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseData — Get response data

说明

public array HttpRequest::getResponseData ( void )

* Get all response data after the request has been sent.

If redirects were allowed and several responses were received, the data references the last received response.

返回值

Returns an associative array with the key "headers" containing an associative array holding all response headers, as well as the key "body" containing a string with the response body.

HttpRequest::getResponseCookies
HttpRequest::getResponseHeader
The HttpRequest


Get response header(s)

HttpRequest::getResponseData
HttpRequest::getResponseInfo
The HttpRequest
PHP 手册

HttpRequest::getResponseHeader

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseHeader — Get response header(s)

说明

public mixed HttpRequest::getResponseHeader ([ string $name ] )

Get response header(s) after the request has been sent.

If redirects were allowed and several responses were received, the data references the last received response.

参数

name

header to read; if empty, all response headers will be returned

返回值

Returns either a string with the value of the header matching name if requested, FALSE on failure, or an associative array containing all response headers.

HttpRequest::getResponseData
HttpRequest::getResponseInfo
The HttpRequest


Get response info

HttpRequest::getResponseHeader
HttpRequest::getResponseMessage
The HttpRequest
PHP 手册

HttpRequest::getResponseInfo

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseInfo — Get response info

说明

public mixed HttpRequest::getResponseInfo ([ string $name ] )

Get response info after the request has been sent.

See http_get() for a full list of returned info.

If redirects were allowed and several responses were received, the data references the last received response.

参数

name

the info to read; if empty or omitted, an associative array containing all available info will be returned

返回值

Returns either a scalar containing the value of the info matching name if requested, FALSE on failure, or an associative array containing all available info.

HttpRequest::getResponseHeader
HttpRequest::getResponseMessage
The HttpRequest


Get response message

HttpRequest::getResponseInfo
HttpRequest::getResponseStatus
The HttpRequest
PHP 手册

HttpRequest::getResponseMessage

(PECL pecl_http >= 0.10.0)

HttpRequest::getResponseMessage — Get response message

说明

public HttpMessage HttpRequest::getResponseMessage ( void )

Get the full response as HttpMessage object after the request has been sent.

If redirects were allowed and several responses were received, the data references the last received response. Use HttpMessage::getParentMessage() to access the data of previously received responses within this request cycle.

返回值

Returns an HttpMessage object of the response.

错误／异常

Throws HttpException, HttpRuntimeException.

HttpRequest::getResponseInfo
HttpRequest::getResponseStatus
The HttpRequest


Get response status

HttpRequest::getResponseMessage
HttpRequest::getSslOptions
The HttpRequest
PHP 手册

HttpRequest::getResponseStatus

(PECL pecl_http >= 0.23.0)

HttpRequest::getResponseStatus — Get response status

说明

public string HttpRequest::getResponseStatus ( void )

Get the response status (i.e. the string after the response code) after the message has been sent.

返回值

Returns a string containing the response status text.

HttpRequest::getResponseMessage
HttpRequest::getSslOptions
The HttpRequest


Get ssl options

HttpRequest::getResponseStatus
HttpRequest::getUrl
The HttpRequest
PHP 手册

HttpRequest::getSslOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::getSslOptions — Get ssl options

说明

public array HttpRequest::getSslOptions ( void )

Get previously set SSL options.

返回值

Returns an associative array containing any previously set SSL options.

HttpRequest::getResponseStatus
HttpRequest::getUrl
The HttpRequest


Get url

HttpRequest::getSslOptions
HttpRequest::resetCookies
The HttpRequest
PHP 手册

HttpRequest::getUrl

(PECL pecl_http >= 0.10.0)

HttpRequest::getUrl — Get url

说明

public string HttpRequest::getUrl ( void )

Get the previously set request URL.

返回值

Returns the currently set request url as string.

HttpRequest::getSslOptions
HttpRequest::resetCookies
The HttpRequest


Reset cookies

HttpRequest::getUrl
HttpRequest::send
The HttpRequest
PHP 手册

HttpRequest::resetCookies

(PECL pecl_http >= 1.0.0)

HttpRequest::resetCookies — Reset cookies

说明

public bool HttpRequest::resetCookies ([ bool $session_only=false ] )

Reset all automatically received/sent cookies.

Note: Note that custom set cookies are not affected.

参数

session_only

whether only session cookies should be reset (needs libcurl >= v7.15.4, else libcurl >= v7.14.1)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::getUrl
HttpRequest::send
The HttpRequest


Send request

HttpRequest::resetCookies
HttpRequest::setContentType
The HttpRequest
PHP 手册

HttpRequest::send

(PECL pecl_http >= 0.10.0)

HttpRequest::send — Send request

说明

public HttpMessage HttpRequest::send ( void )

Send the HTTP request.

Note: While an exception may be thrown, the transfer could have succeeded at least partially, so you might want to check the return values of various HttpRequest::getResponse*() methods.

返回值

Returns the received response as HttpMessage object.

错误／异常

Throws HttpRuntimeException, HttpRequestException, HttpMalformedHeaderException, HttpEncodingException.

范例

Example #1 GET example

<?php
$r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_GET);
$r->setOptions(array('lastmodified' => filemtime('local.rss')));
$r->addQueryData(array('category' => 3));
try {
    $r->send();
    if ($r->getResponseCode() == 200) {
        file_put_contents('local.rss', $r->getResponseBody());
    }
} catch (HttpException $ex) {
    echo $ex;
}
?>

Example #2 POST example

<?php
$r = new HttpRequest('http://example.com/form.php', HttpRequest::METH_POST);
$r->setOptions(array('cookies' => array('lang' => 'de')));
$r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
$r->addPostFile('image', 'profile.jpg', 'image/jpeg');
try {
    echo $r->send()->getBody();
} catch (HttpException $ex) {
    echo $ex;
}
?>

HttpRequest::resetCookies
HttpRequest::setContentType
The HttpRequest


Set content type

HttpRequest::send
HttpRequest::setCookies
The HttpRequest
PHP 手册

HttpRequest::setContentType

(PECL pecl_http >= 0.10.0)

HttpRequest::setContentType — Set content type

说明

public bool HttpRequest::setContentType ( string $content_type )

Set the content type the post request should have.

参数

content_type

the content type of the request (primary/secondary)

返回值

Returns TRUE on success, or FALSE if the content type does not seem to contain a primary and a secondary part.

HttpRequest::send
HttpRequest::setCookies
The HttpRequest


Set cookies

HttpRequest::setContentType
HttpRequest::setHeaders
The HttpRequest
PHP 手册

HttpRequest::setCookies

(PECL pecl_http >= 0.12.0)

HttpRequest::setCookies — Set cookies

说明

public bool HttpRequest::setCookies ([ array $cookies ] )

Set custom cookies.

参数

cookies

an associative array as parameter containing cookie name/value pairs; if empty or omitted, all previously set cookies will be unset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setContentType
HttpRequest::setHeaders
The HttpRequest


Set headers

HttpRequest::setCookies
HttpRequest::setMethod
The HttpRequest
PHP 手册

HttpRequest::setHeaders

(PECL pecl_http >= 0.12.0)

HttpRequest::setHeaders — Set headers

说明

public bool HttpRequest::setHeaders ([ array $headers ] )

Set request header name/value pairs.

参数

headers

an associative array as parameter containing header name/value pairs; if empty or omitted, all previously set headers will be unset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setCookies
HttpRequest::setMethod
The HttpRequest


Set method

HttpRequest::setHeaders
HttpRequest::setOptions
The HttpRequest
PHP 手册

HttpRequest::setMethod

(PECL pecl_http >= 0.10.0)

HttpRequest::setMethod — Set method

说明

public bool HttpRequest::setMethod ( int $request_method )

Set the request method.

参数

request_method

the request method to use

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setHeaders
HttpRequest::setOptions
The HttpRequest


Set options

HttpRequest::setMethod
HttpRequest::setPostFields
The HttpRequest
PHP 手册

HttpRequest::setOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::setOptions — Set options

说明

public bool HttpRequest::setOptions ([ array $options ] )

Set the request options to use.

可用参数的完整列表见 http_get() 函数和 选项。

参数

options

an associative array, which values will overwrite the currently set request options; if empty or omitted, the options of the HttpRequest object will be reset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setMethod
HttpRequest::setPostFields
The HttpRequest


Set post fields

HttpRequest::setOptions
HttpRequest::setPostFiles
The HttpRequest
PHP 手册

HttpRequest::setPostFields

(PECL pecl_http >= 0.10.0)

HttpRequest::setPostFields — Set post fields

说明

public bool HttpRequest::setPostFields ( array $post_data )

Set the POST data entries, overwriting previously set POST data.

Affects only POST and custom requests.

参数

post_data

an associative array containing the post fields; if empty, the post data will be unset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setOptions
HttpRequest::setPostFiles
The HttpRequest


Set post files

HttpRequest::setPostFields
HttpRequest::setPutData
The HttpRequest
PHP 手册

HttpRequest::setPostFiles

(PECL pecl_http >= 0.10.0)

HttpRequest::setPostFiles — Set post files

说明

public bool HttpRequest::setPostFiles ( array $post_files )

Set files to post, overwriting previously set post files.

Affects only POST and requests. Cannot be used with raw post data.

参数

post_files

an array containing the files to post; if empty, the post files will be unset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setPostFields
HttpRequest::setPutData
The HttpRequest


Set put data

HttpRequest::setPostFiles
HttpRequest::setPutFile
The HttpRequest
PHP 手册

HttpRequest::setPutData

(PECL pecl_http >= 0.25.0)

HttpRequest::setPutData — Set put data

说明

public bool HttpRequest::setPutData ([ string $put_data ] )

Set PUT data to send, overwriting previously set PUT data.

Affects only PUT requests.

Only either PUT data or PUT file can be used for each request. PUT data has higher precedence and will be used even if a PUT file is set.

参数

put_data

the data to upload

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setPostFiles
HttpRequest::setPutFile
The HttpRequest


Set put file

HttpRequest::setPutData
HttpRequest::setQueryData
The HttpRequest
PHP 手册

HttpRequest::setPutFile

(PECL pecl_http >= 0.10.0)

HttpRequest::setPutFile — Set put file

说明

public bool HttpRequest::setPutFile ([ string $file ] )

Set file to put. Affects only PUT requests.

参数

file

the path to the file to send; if empty or omitted the put file will be unset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setPutData
HttpRequest::setQueryData
The HttpRequest


Set query data

HttpRequest::setPutFile
HttpRequest::setRawPostData
The HttpRequest
PHP 手册

HttpRequest::setQueryData

(PECL pecl_http >= 0.10.0)

HttpRequest::setQueryData — Set query data

说明

public bool HttpRequest::setQueryData ( mixed $query_data )

Set the URL query parameters to use, overwriting previously set query parameters.

Affects any request types.

参数

query_data

a string or associative array parameter containing the pre-encoded query string or to be encoded query fields; if empty, the query data will be unset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setPutFile
HttpRequest::setRawPostData
The HttpRequest


Set raw post data

HttpRequest::setQueryData
HttpRequest::setSslOptions
The HttpRequest
PHP 手册

HttpRequest::setRawPostData

(PECL pecl_http 0.14.0-1.4.1)

HttpRequest::setRawPostData — Set raw post data

说明

public bool HttpRequest::setRawPostData ([ string $raw_post_data ] )

Set raw post data to send, overwriting previously set raw post data. Don't forget to specify a content type. Affects only POST and custom requests.

Only either post fields or raw post data can be used for each request. Raw post data has higher precedence and will be used even if post fields are set.

参数

raw_post_data

raw post data

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setQueryData
HttpRequest::setSslOptions
The HttpRequest


Set ssl options

HttpRequest::setRawPostData
HttpRequest::setUrl
The HttpRequest
PHP 手册

HttpRequest::setSslOptions

(PECL pecl_http >= 0.10.0)

HttpRequest::setSslOptions — Set ssl options

说明

public bool HttpRequest::setSslOptions ([ array $options ] )

Set SSL options.

参数

options

an associative array containing any SSL specific options; if empty or omitted, the SSL options will be reset

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setRawPostData
HttpRequest::setUrl
The HttpRequest


Set URL

HttpRequest::setSslOptions
The HttpRequestPool class
The HttpRequest
PHP 手册

HttpRequest::setUrl

(PECL pecl_http >= 0.10.0)

HttpRequest::setUrl — Set URL

说明

public bool HttpRequest::setUrl ( string $url )

Set the request URL.

参数

url

the request url

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequest::setSslOptions
The HttpRequestPool class
The HttpRequest


The HttpRequestPool class

Class synopsis

HttpRequestPool
HttpRequestPool implements Iterator , Countable {
public bool attach ( HttpRequest $request )
void __construct ([ HttpRequest $request ] )
void __destruct ( void )
bool detach ( HttpRequest $request )
array getAttachedRequests ( void )
array getFinishedRequests ( void )
void reset ( void )
bool send ( void )
protected bool socketPerform ( void )
protected bool socketSelect ( void )
}

Class Members

属性

The HttpRequestPool class does not have any properties.

预定义常量

The HttpRequestPool class does not have any constants.

Table of Contents

  • HttpRequestPool::attach — Attach HttpRequest
  • HttpRequestPool::__construct — HttpRequestPool constructor
  • HttpRequestPool::__destruct — HttpRequestPool destructor
  • HttpRequestPool::detach — Detach HttpRequest
  • HttpRequestPool::getAttachedRequests — Get attached requests
  • HttpRequestPool::getFinishedRequests — Get finished requests
  • HttpRequestPool::reset — Reset request pool
  • HttpRequestPool::send — Send all requests
  • HttpRequestPool::socketPerform — Perform socket actions
  • HttpRequestPool::socketSelect — Perform socket select
HttpRequest::setUrl
HttpRequestPool::attach
HTTP


Attach HttpRequest

The HttpRequestPool class
HttpRequestPool::__construct
The HttpRequestPool class
PHP 手册

HttpRequestPool::attach

(PECL pecl_http >= 0.10.0)

HttpRequestPool::attach — Attach HttpRequest

说明

public bool HttpRequestPool::attach ( HttpRequest $request )

Attach an HttpRequest object to this HttpRequestPool.

Warning

Set all options prior attaching!

参数

request

an HttpRequest object not already attached to any HttpRequestPool object

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Throws HttpInvalidParamException, HttpRequestException, HttpRequestPoolException, HttpEncodingException.

The HttpRequestPool class
HttpRequestPool::__construct
The HttpRequestPool class


HttpRequestPool constructor

HttpRequestPool::attach
HttpRequestPool::__destruct
The HttpRequestPool class
PHP 手册

HttpRequestPool::__construct

(PECL pecl_http >= 0.10.0)

HttpRequestPool::__construct — HttpRequestPool constructor

说明

void HttpRequestPool::__construct ([ HttpRequest $request ] )

Instantiate a new HttpRequestPool object. An HttpRequestPool is able to send several HttpRequests in parallel.

Accepts virtually infinite optional parameters each referencing an HttpRequest object.

参数

request

HttpRequest object to attach

错误／异常

Throws HttpRequestPoolException (HttpRequestException, HttpInvalidParamException).

范例

Example #1 A HttpRequestPool example

<?php
try {
    $pool = new HttpRequestPool(
        new HttpRequest('http://www.google.com/', HttpRequest::METH_HEAD),
        new HttpRequest('http://www.php.net/', HttpRequest::METH_HEAD)
    );
    $pool->send();
    foreach($pool as $request) {
        printf("%s is %s (%d)\n",
            $request->getUrl(),
            $request->getResponseCode() ? 'alive' : 'not alive',
            $request->getResponseCode()
        );
    }
} catch (HttpException $e) {
    echo $e;
}
?>

HttpRequestPool::attach
HttpRequestPool::__destruct
The HttpRequestPool class


HttpRequestPool destructor

HttpRequestPool::__construct
HttpRequestPool::detach
The HttpRequestPool class
PHP 手册

HttpRequestPool::__destruct

(PECL pecl_http >= 0.10.0)

HttpRequestPool::__destruct — HttpRequestPool destructor

说明

void HttpRequestPool::__destruct ( void )

Clean up HttpRequestPool object.

HttpRequestPool::__construct
HttpRequestPool::detach
The HttpRequestPool class


Detach HttpRequest

HttpRequestPool::__destruct
HttpRequestPool::getAttachedRequests
The HttpRequestPool class
PHP 手册

HttpRequestPool::detach

(PECL pecl_http >= 0.10.0)

HttpRequestPool::detach — Detach HttpRequest

说明

bool HttpRequestPool::detach ( HttpRequest $request )

Detach an HttpRequest object from this HttpRequestPool.

参数

request

an HttpRequest object attached to this HttpRequestPool object

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Throws HttpInvalidParamException, HttpRequestPoolException.

HttpRequestPool::__destruct
HttpRequestPool::getAttachedRequests
The HttpRequestPool class


Get attached requests

HttpRequestPool::detach
HttpRequestPool::getFinishedRequests
The HttpRequestPool class
PHP 手册

HttpRequestPool::getAttachedRequests

(PECL pecl_http >= 0.16.0)

HttpRequestPool::getAttachedRequests — Get attached requests

说明

array HttpRequestPool::getAttachedRequests ( void )

Get attached HttpRequest objects.

参数

返回值

Returns an array containing all currently attached HttpRequest objects.

HttpRequestPool::detach
HttpRequestPool::getFinishedRequests
The HttpRequestPool class


Get finished requests

HttpRequestPool::getAttachedRequests
HttpRequestPool::reset
The HttpRequestPool class
PHP 手册

HttpRequestPool::getFinishedRequests

(PECL pecl_http >= 0.16.0)

HttpRequestPool::getFinishedRequests — Get finished requests

说明

array HttpRequestPool::getFinishedRequests ( void )

Get attached HttpRequest objects that already have finished their work.

参数

返回值

Returns an array containing all attached HttpRequest objects that already have finished their work.

HttpRequestPool::getAttachedRequests
HttpRequestPool::reset
The HttpRequestPool class


Reset request pool

HttpRequestPool::getFinishedRequests
HttpRequestPool::send
The HttpRequestPool class
PHP 手册

HttpRequestPool::reset

(PECL pecl_http >= 0.10.0)

HttpRequestPool::reset — Reset request pool

说明

void HttpRequestPool::reset ( void )

Detach all attached HttpRequest objects.

HttpRequestPool::getFinishedRequests
HttpRequestPool::send
The HttpRequestPool class


Send all requests

HttpRequestPool::reset
HttpRequestPool::socketPerform
The HttpRequestPool class
PHP 手册

HttpRequestPool::send

(PECL pecl_http >= 0.10.0)

HttpRequestPool::send — Send all requests

说明

bool HttpRequestPool::send ( void )

Send all attached HttpRequest objects in parallel.

参数

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Throws HttpRequestPoolException (HttpSocketException, HttpRequestException, HttpMalformedHeaderException).

HttpRequestPool::reset
HttpRequestPool::socketPerform
The HttpRequestPool class


Perform socket actions

HttpRequestPool::send
HttpRequestPool::socketSelect
The HttpRequestPool class
PHP 手册

HttpRequestPool::socketPerform

(PECL pecl_http >= 0.15.0)

HttpRequestPool::socketPerform — Perform socket actions

说明

protected bool HttpRequestPool::socketPerform ( void )

Returns TRUE until each request has finished its transaction.

返回值

Returns TRUE until each request has finished its transaction.

范例

Example #1 A HttpRequestPool::socketPerform() example

<?php
class MyPool extends HttpRequestPool
{
    public function send()
    {
        while ($this->socketPerform()) {
            if (!$this->socketSelect()) {
                throw new HttpSocketExcpetion;
            }
        }
    }

    protected final function socketPerform()
    {
        $result = parent::socketPerform();
        foreach ($this->getFinishedRequests() as $r) {
            $this->detach($r);
            // handle response of finished request
        }
        return $result;
    }
}
?>

HttpRequestPool::send
HttpRequestPool::socketSelect
The HttpRequestPool class


Perform socket select

HttpRequestPool::socketPerform
The HttpResponse
The HttpRequestPool class
PHP 手册

HttpRequestPool::socketSelect

(PECL pecl_http >= 0.10.0)

HttpRequestPool::socketSelect — Perform socket select

说明

protected bool HttpRequestPool::socketSelect ( void )

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

HttpRequestPool::socketPerform
The HttpResponse
The HttpRequestPool class


The HttpResponse

Class synopsis

HttpResponse
HttpResponse {
static void capture ( void )
static int getBufferSize ( void )
static bool getCache ( void )
static string getCacheControl ( void )
static string getContentDisposition ( void )
static string getContentType ( void )
static string getData ( void )
static string getETag ( void )
static string getFile ( void )
static bool getGzip ( void )
static mixed getHeader ([ string $name ] )
static int getLastModified ( void )
static string getRequestBody ( void )
static resource getRequestBodyStream ( void )
static array getRequestHeaders ( void )
static resource getStream ( void )
static double getThrottleDelay ( void )
static string guessContentType ( string $magic_file [, int $magic_mode=MAGIC_MIME ] )
static void redirect ([ string $url [, array $params [, bool $session=false [, int $status ]]]] )
static bool send ([ bool $clean_ob=true ] )
static bool setBufferSize ( int $bytes )
static bool setCache ( bool $cache )
static bool setCacheControl ( string $control [, int $max_age=0 [, bool $must_revalidate=true ]] )
static bool setContentDisposition ( string $filename [, bool $inline=false ] )
static bool setContentType ( string $content_type )
static bool setData ( mixed $data )
static bool setETag ( string $etag )
static bool setFile ( string $file )
static bool setGzip ( bool $gzip )
static bool setHeader ( string $name [, mixed $value [, bool $replace=true ]] )
static bool setLastModified ( int $timestamp )
static bool setStream ( resource $stream )
static bool setThrottleDelay ( float $seconds )
static bool status ( int $status )
}

Class Members

属性

Static Properties
Modifiers | Type | Name | Description
protected | boolean | cache | whether caching the response should be attempted
protected | boolean | gzip | whether the sent entity should be gzip'ed on the fly
protected | string | eTag | the generated or custom ETag
protected | integer | lastModified | the generated or custom timestamp of last modification
protected | string | cacheControl | Cache-Control setting
protected | string | contentType | the Content-Type of the sent entity
protected | string | contentDisposition | the Content-Disposition of the sent entity
protected | integer | bufferSize | the chunk buffer size used for throttling
protected | double | throttleDelay | the seconds to delay when throttling

预定义常量

Type | Name | Description
integer | REDIRECT | guess applicable redirect method
integer | REDIRECT_PERM | permanent redirect (301 Moved permanently)
integer | REDIRECT_FOUND | standard redirect (302 Found)
integer | REDIRECT_POST | redirect applicable to POST requests (303 See other)
integer | REDIRECT_PROXY | proxy redirect (305 Use proxy)
integer | REDIRECT_TEMP | temporary redirect (307 Temporary Redirect)

Table of Contents

  • HttpResponse::capture — Capture script output
  • HttpResponse::getBufferSize — Get buffer size
  • HttpResponse::getCache — Get cache
  • HttpResponse::getCacheControl — Get cache control
  • HttpResponse::getContentDisposition — Get content disposition
  • HttpResponse::getContentType — Get content type
  • HttpResponse::getData — Get data
  • HttpResponse::getETag — Get ETag
  • HttpResponse::getFile — Get file
  • HttpResponse::getGzip — Get gzip
  • HttpResponse::getHeader — Get header
  • HttpResponse::getLastModified — Get last modified
  • HttpResponse::getRequestBody — Get request body
  • HttpResponse::getRequestBodyStream — Get request body stream
  • HttpResponse::getRequestHeaders — Get request headers
  • HttpResponse::getStream — Get Stream
  • HttpResponse::getThrottleDelay — Get throttle delay
  • HttpResponse::guessContentType — Guess content type
  • HttpResponse::redirect — Redirect
  • HttpResponse::send — Send response
  • HttpResponse::setBufferSize — Set buffer size
  • HttpResponse::setCache — Set cache
  • HttpResponse::setCacheControl — Set cache control
  • HttpResponse::setContentDisposition — Set content disposition
  • HttpResponse::setContentType — Set content type
  • HttpResponse::setData — Set data
  • HttpResponse::setETag — Set ETag
  • HttpResponse::setFile — Set file
  • HttpResponse::setGzip — Set gzip
  • HttpResponse::setHeader — Set header
  • HttpResponse::setLastModified — Set last modified
  • HttpResponse::setStream — Set stream
  • HttpResponse::setThrottleDelay — Set throttle delay
  • HttpResponse::status — Send HTTP response status
HttpRequestPool::socketSelect
HttpResponse::capture
HTTP


Capture script output

The HttpResponse
HttpResponse::getBufferSize
The HttpResponse
PHP 手册

HttpResponse::capture

(PECL pecl_http >= 0.10.0)

HttpResponse::capture — Capture script output

说明

static void HttpResponse::capture ( void )

Capture script output.

范例

Example #1 A HttpResponse::capture() example

<?php
HttpResponse::setCache(true);
HttpResponse::capture();
// script follows
?>

参见

  • HttpResponse::send - Send response

The HttpResponse
HttpResponse::getBufferSize
The HttpResponse


Get buffer size

HttpResponse::capture
HttpResponse::getCache
The HttpResponse
PHP 手册

HttpResponse::getBufferSize

(PECL pecl_http >= 0.10.0)

HttpResponse::getBufferSize — Get buffer size

说明

static int HttpResponse::getBufferSize ( void )

Get current buffer size.

返回值

Returns an int representing the current buffer size in bytes.

参见

  • HttpResponse::setBufferSize - Set buffer size
  • HttpResponse::getThrottleDelay - Get throttle delay
  • HttpResponse::setThrottleDelay - Set throttle delay

HttpResponse::capture
HttpResponse::getCache
The HttpResponse


Get cache

HttpResponse::getBufferSize
HttpResponse::getCacheControl
The HttpResponse
PHP 手册

HttpResponse::getCache

(PECL pecl_http >= 0.10.0)

HttpResponse::getCache — Get cache

说明

static bool HttpResponse::getCache ( void )

Get current caching setting.

返回值

Returns TRUE if caching should be attempted, else FALSE.

参见

  • HttpResponse::setCacheControl - Set cache control
  • HttpResponse::getCacheControl - Get cache control
  • HttpResponse::setCache - Set cache

HttpResponse::getBufferSize
HttpResponse::getCacheControl
The HttpResponse


Get cache control

HttpResponse::getCache
HttpResponse::getContentDisposition
The HttpResponse
PHP 手册

HttpResponse::getCacheControl

(PECL pecl_http >= 0.10.0)

HttpResponse::getCacheControl — Get cache control

说明

static string HttpResponse::getCacheControl ( void )

Get current Cache-Control header setting.

返回值

Returns the current cache control setting as a string like sent in a header.

参见

  • HttpResponse::setCacheControl - Set cache control
  • HttpResponse::setCache - Set cache
  • HttpResponse::getCache - Get cache

HttpResponse::getCache
HttpResponse::getContentDisposition
The HttpResponse


Get content disposition

HttpResponse::getCacheControl
HttpResponse::getContentType
The HttpResponse
PHP 手册

HttpResponse::getContentDisposition

(PECL pecl_http >= 0.10.0)

HttpResponse::getContentDisposition — Get content disposition

说明

static string HttpResponse::getContentDisposition ( void )

Get current Content-Disposition setting.

返回值

Returns the current content disposition as string like sent in a header.

参见

  • HttpResponse::setContentDisposition - Set content disposition
  • HttpResponse::getContentType - Get content type
  • HttpResponse::setContentType - Set content type

HttpResponse::getCacheControl
HttpResponse::getContentType
The HttpResponse


Get content type

HttpResponse::getContentDisposition
HttpResponse::getData
The HttpResponse
PHP 手册

HttpResponse::getContentType

(PECL pecl_http >= 0.10.0)

HttpResponse::getContentType — Get content type

说明

static string HttpResponse::getContentType ( void )

Get current Content-Type header setting.

返回值

Returns the currently set content type as string.

参见

  • HttpResponse::getContentDisposition - Get content disposition
  • HttpResponse::setContentDisposition - Set content disposition
  • HttpResponse::setContentType - Set content type
  • HttpResponse::guessContentType - Guess content type

HttpResponse::getContentDisposition
HttpResponse::getData
The HttpResponse


Get data

HttpResponse::getContentType
HttpResponse::getETag
The HttpResponse
PHP 手册

HttpResponse::getData

(PECL pecl_http >= 0.10.0)

HttpResponse::getData — Get data

说明

static string HttpResponse::getData ( void )

Get the previously set data to be sent.

返回值

Returns a string containing the previously set data to send.

参见

  • HttpResponse::setData - Set data
  • HttpResponse::getFile - Get file
  • HttpResponse::setFile - Set file
  • HttpResponse::getStream - Get Stream
  • HttpResponse::setStream - Set stream

HttpResponse::getContentType
HttpResponse::getETag
The HttpResponse


Get ETag

HttpResponse::getData
HttpResponse::getFile
The HttpResponse
PHP 手册

HttpResponse::getETag

(PECL pecl_http >= 0.10.0)

HttpResponse::getETag — Get ETag

说明

static string HttpResponse::getETag ( void )

Get calculated or previously set custom ETag.

返回值

Returns the calculated or previously set ETag as unquoted string.

参见

  • HttpResponse::getLastModified - Get last modified
  • HttpResponse::setLastModified - Set last modified
  • HttpResponse::setETag - Set ETag

HttpResponse::getData
HttpResponse::getFile
The HttpResponse


Get file

HttpResponse::getETag
HttpResponse::getGzip
The HttpResponse
PHP 手册

HttpResponse::getFile

(PECL pecl_http >= 0.10.0)

HttpResponse::getFile — Get file

说明

static string HttpResponse::getFile ( void )

Get the previously set file to be sent.

返回值

Returns the previously set path to the file to send as string.

参见

  • HttpResponse::getData - Get data
  • HttpResponse::setData - Set data
  • HttpResponse::setFile - Set file
  • HttpResponse::getStream - Get Stream
  • HttpResponse::setStream - Set stream

HttpResponse::getETag
HttpResponse::getGzip
The HttpResponse


Get gzip

HttpResponse::getFile
HttpResponse::getHeader
The HttpResponse
PHP 手册

HttpResponse::getGzip

(PECL pecl_http >= 0.10.0)

HttpResponse::getGzip — Get gzip

说明

static bool HttpResponse::getGzip ( void )

Get current gzip'ing setting.

返回值

Returns TRUE if GZip compression is enabled, else FALSE.

参见

  • HttpResponse::setGzip - Set gzip

HttpResponse::getFile
HttpResponse::getHeader
The HttpResponse


Get header

HttpResponse::getGzip
HttpResponse::getLastModified
The HttpResponse
PHP 手册

HttpResponse::getHeader

(PECL pecl_http >= 0.12.0)

HttpResponse::getHeader — Get header

说明

static mixed HttpResponse::getHeader ([ string $name ] )

Get header(s) about to be sent.

Note: This may not work as expected with the following SAPI(s): Apache2 w/PHP < 5.1.3.

参数

name

specifies the name of the header to read; if empty or omitted, an associative array with all headers will be returned

返回值

Returns either a string containing the value of the header matching name, FALSE on failure, or an associative array with all headers.

参见

  • HttpResponse::setHeader - Set header

HttpResponse::getGzip
HttpResponse::getLastModified
The HttpResponse


Get last modified

HttpResponse::getHeader
HttpResponse::getRequestBody
The HttpResponse
PHP 手册

HttpResponse::getLastModified

(PECL pecl_http >= 0.12.0)

HttpResponse::getLastModified — Get last modified

说明

static int HttpResponse::getLastModified ( void )

Get calculated or previously set custom Last-Modified date.

返回值

Returns the calculated or previously set Unix timestamp.

参见

  • HttpResponse::setLastModified - Set last modified
  • HttpResponse::getETag - Get ETag
  • HttpResponse::setETag - Set ETag

HttpResponse::getHeader
HttpResponse::getRequestBody
The HttpResponse


Get request body

HttpResponse::getLastModified
HttpResponse::getRequestBodyStream
The HttpResponse
PHP 手册

HttpResponse::getRequestBody

(PECL pecl_http >= 0.10.0)

HttpResponse::getRequestBody — Get request body

说明

static string HttpResponse::getRequestBody ( void )

本函数是该函数的别名： http_get_request_body().

HttpResponse::getLastModified
HttpResponse::getRequestBodyStream
The HttpResponse


Get request body stream

HttpResponse::getRequestBody
HttpResponse::getRequestHeaders
The HttpResponse
PHP 手册

HttpResponse::getRequestBodyStream

(PECL pecl_http >= 0.10.0)

HttpResponse::getRequestBodyStream — Get request body stream

说明

static resource HttpResponse::getRequestBodyStream ( void )

本函数是该函数的别名： http_get_request_body_stream().

HttpResponse::getRequestBody
HttpResponse::getRequestHeaders
The HttpResponse


Get request headers

HttpResponse::getRequestBodyStream
HttpResponse::getStream
The HttpResponse
PHP 手册

HttpResponse::getRequestHeaders

(PECL pecl_http >= 0.10.0)

HttpResponse::getRequestHeaders — Get request headers

说明

static array HttpResponse::getRequestHeaders ( void )

本函数是该函数的别名： http_get_request_headers().

HttpResponse::getRequestBodyStream
HttpResponse::getStream
The HttpResponse


Get Stream

HttpResponse::getRequestHeaders
HttpResponse::getThrottleDelay
The HttpResponse
PHP 手册

HttpResponse::getStream

(PECL pecl_http >= 0.10.0)

HttpResponse::getStream — Get Stream

说明

static resource HttpResponse::getStream ( void )

Get the previously set resource to be sent.

参数

返回值

Returns the previously set resource.

参见

  • HttpResponse::getData - Get data
  • HttpResponse::setData - Set data
  • HttpResponse::getFile - Get file
  • HttpResponse::setFile - Set file
  • HttpResponse::setStream - Set stream

HttpResponse::getRequestHeaders
HttpResponse::getThrottleDelay
The HttpResponse


Get throttle delay

HttpResponse::getStream
HttpResponse::guessContentType
The HttpResponse
PHP 手册

HttpResponse::getThrottleDelay

(PECL pecl_http >= 0.10.0)

HttpResponse::getThrottleDelay — Get throttle delay

说明

static double HttpResponse::getThrottleDelay ( void )

Get the current throttle delay.

返回值

Returns a double representing the throttle delay in seconds.

参见

  • HttpResponse::getBufferSize - Get buffer size
  • HttpResponse::setBufferSize - Set buffer size
  • HttpResponse::setThrottleDelay - Set throttle delay

HttpResponse::getStream
HttpResponse::guessContentType
The HttpResponse


Guess content type

HttpResponse::getThrottleDelay
HttpResponse::redirect
The HttpResponse
PHP 手册

HttpResponse::guessContentType

(PECL pecl_http >= 0.13.0)

HttpResponse::guessContentType — Guess content type

说明

static string HttpResponse::guessContentType ( string $magic_file [, int $magic_mode=MAGIC_MIME ] )

Attempts to guess the content type of supplied payload through libmagic.

If the attempt is successful, the guessed Content-Type will automatically be set as response Content-Type.

参数

magic_file

specifies the magic.mime database to use

magic_mode

flags for libmagic

返回值

Returns the guessed content type on success, or FALSE on failure.

错误／异常

Throws HttpRuntimeException, HttpInvalidParamException.

参见

  • HttpResponse::getContentType - Get content type
  • HttpResponse::setContentType - Set content type

HttpResponse::getThrottleDelay
HttpResponse::redirect
The HttpResponse


Redirect

HttpResponse::guessContentType
HttpResponse::send
The HttpResponse
PHP 手册

HttpResponse::redirect

(PECL pecl_http >= 0.10.0)

HttpResponse::redirect — Redirect

说明

static void HttpResponse::redirect ([ string $url [, array $params [, bool $session=false [, int $status ]]]] )

本函数是该函数的别名： http_redirect().

HttpResponse::guessContentType
HttpResponse::send
The HttpResponse


Send response

HttpResponse::redirect
HttpResponse::setBufferSize
The HttpResponse
PHP 手册

HttpResponse::send

(PECL pecl_http >= 0.10.0)

HttpResponse::send — Send response

说明

static bool HttpResponse::send ([ bool $clean_ob=true ] )

Finally send the entity.

A successful caching attempt will exit PHP, and write a log entry if the INI 设定 http.log.cache is set. See the INI 设定 http.force_exit for what "exits" means.

参数

clean_ob

whether to destroy all previously started output handlers and their buffers

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A HttpResponse::send() example

<?php
HttpResponse::setCache(true);
HttpResponse::setContentType('application/pdf');
HttpResponse::setContentDisposition("$user.pdf", false);
HttpResponse::setFile('sheet.pdf');
HttpResponse::send();
?>

参见

  • HttpResponse::capture - Capture script output

HttpResponse::redirect
HttpResponse::setBufferSize
The HttpResponse


Set buffer size

HttpResponse::send
HttpResponse::setCache
The HttpResponse
PHP 手册

HttpResponse::setBufferSize

(PECL pecl_http >= 0.10.0)

HttpResponse::setBufferSize — Set buffer size

说明

static bool HttpResponse::setBufferSize ( int $bytes )

Sets the send buffer size of the throttling mechanism.

Note: Provides a basic throttling mechanism, which will yield the current process or thread until the entity has been completely sent.

Note: This may not work as expected with the following SAPI(s): FastCGI.

参数

bytes

the chunk size in bytes

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getBufferSize - Get buffer size
  • HttpResponse::getThrottleDelay - Get throttle delay
  • HttpResponse::setThrottleDelay - Set throttle delay

HttpResponse::send
HttpResponse::setCache
The HttpResponse


Set cache

HttpResponse::setBufferSize
HttpResponse::setCacheControl
The HttpResponse
PHP 手册

HttpResponse::setCache

(PECL pecl_http >= 0.10.0)

HttpResponse::setCache — Set cache

说明

static bool HttpResponse::setCache ( bool $cache )

Whether it should be attempted to cache the entity.

This will result in necessary caching headers and checks of clients If-Modified-Since and If-None-Match headers. If one of those headers matches a 304 Not Modified status code will be issued.

Note: If you're using sessions, be sure that you set session.cache_limiter to something more appropriate than "no-cache"!

参数

cache

whether caching should be attempted

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::setCacheControl - Set cache control
  • HttpResponse::getCacheControl - Get cache control
  • HttpResponse::getCachel

HttpResponse::setBufferSize
HttpResponse::setCacheControl
The HttpResponse


Set cache control

HttpResponse::setCache
HttpResponse::setContentDisposition
The HttpResponse
PHP 手册

HttpResponse::setCacheControl

(PECL pecl_http >= 0.10.0)

HttpResponse::setCacheControl — Set cache control

说明

static bool HttpResponse::setCacheControl ( string $control [, int $max_age=0 [, bool $must_revalidate=true ]] )

Define a custom Cache-Control header, usually being private or public;

参数

control

the primary cache control setting

max_age

the max-age in seconds, suggesting how long the cache entry is valid on the client side

must_revalidate

whether the cached entity should be revalidated by the client for every request

返回值

Returns TRUE on success, or FALSE if control does not match one of public, private or no-cache.

参见

  • HttpResponse::getCacheControl() - Get cache control
  • HttpResponse::setCache() - Set cache
  • HttpResponse::getCache() - Get cache

HttpResponse::setCache
HttpResponse::setContentDisposition
The HttpResponse


Set content disposition

HttpResponse::setCacheControl
HttpResponse::setContentType
The HttpResponse
PHP 手册

HttpResponse::setContentDisposition

(PECL pecl_http >= 0.10.0)

HttpResponse::setContentDisposition — Set content disposition

说明

static bool HttpResponse::setContentDisposition ( string $filename [, bool $inline=false ] )

Set the Content-Disposition. The Content-Disposition header is very useful if the data actually being sent came from a file or something similar, that should be "saved" by the client/user (i.e. by the browser's "Save as..." popup window).

参数

filename

the file name the "Save as..." dialog should display

inline

if set to true and the user agent knows how to handle the content type, it will probably not cause the popup window to be shown

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getContentDisposition - Get content disposition
  • HttpResponse::getContentType - Get content type
  • HttpResponse::setContentType - Set content type

HttpResponse::setCacheControl
HttpResponse::setContentType
The HttpResponse


Set content type

HttpResponse::setContentDisposition
HttpResponse::setData
The HttpResponse
PHP 手册

HttpResponse::setContentType

(PECL pecl_http >= 0.10.0)

HttpResponse::setContentType — Set content type

说明

static bool HttpResponse::setContentType ( string $content_type )

Set the Content-Type of the sent entity.

参数

content_type

the content type of the sent entity (primary/secondary)

返回值

Returns TRUE on success, or FALSE if the content type does not seem to contain a primary and secondary content type part.

参见

  • HttpResponse::getContentDisposition - Get content disposition
  • HttpResponse::setContentDisposition - Set content disposition
  • HttpResponse::getContentType - Get content type
  • HttpResponse::guessContentType - Guess content type

HttpResponse::setContentDisposition
HttpResponse::setData
The HttpResponse


Set data

HttpResponse::setContentType
HttpResponse::setETag
The HttpResponse
PHP 手册

HttpResponse::setData

(PECL pecl_http >= 0.10.0)

HttpResponse::setData — Set data

说明

static bool HttpResponse::setData ( mixed $data )

Set the data to be sent.

Note: Previously calculated or defined ETag and Last-Modified will be recalculated and redefined.

参数

data

data to send

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getData - Get data
  • HttpResponse::getFile - Get file
  • HttpResponse::setFile - Set file
  • HttpResponse::getStream - Get Stream
  • HttpResponse::setStream - Set stream

HttpResponse::setContentType
HttpResponse::setETag
The HttpResponse


Set ETag

HttpResponse::setData
HttpResponse::setFile
The HttpResponse
PHP 手册

HttpResponse::setETag

(PECL pecl_http >= 0.10.0)

HttpResponse::setETag — Set ETag

说明

static bool HttpResponse::setETag ( string $etag )

Set a custom ETag. Use this only if you know what you're doing.

参数

etag

unquoted string as parameter containing the ETag

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getLastModified - Get last modified
  • HttpResponse::setLastModified - Set last modified
  • HttpResponse::getETag - Get ETag

HttpResponse::setData
HttpResponse::setFile
The HttpResponse


Set file

HttpResponse::setETag
HttpResponse::setGzip
The HttpResponse
PHP 手册

HttpResponse::setFile

(PECL pecl_http >= 0.10.0)

HttpResponse::setFile — Set file

说明

static bool HttpResponse::setFile ( string $file )

Set the file to be sent.

Note: Previously calculated or defined ETag and Last-Modified will be recalculated and redefined.

参数

file

the path to the file to send

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getData - Get data
  • HttpResponse::setData - Set data
  • HttpResponse::getFile - Get file
  • HttpResponse::getStream - Get Stream
  • HttpResponse::setStream - Set stream

HttpResponse::setETag
HttpResponse::setGzip
The HttpResponse


Set gzip

HttpResponse::setFile
HttpResponse::setHeader
The HttpResponse
PHP 手册

HttpResponse::setGzip

(PECL pecl_http >= 0.10.0)

HttpResponse::setGzip — Set gzip

说明

static bool HttpResponse::setGzip ( bool $gzip )

Enable on-thy-fly gzip'ing of the sent entity.

参数

gzip

whether GZip compression should be enabled

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getGzip - Get gzip

HttpResponse::setFile
HttpResponse::setHeader
The HttpResponse


Set header

HttpResponse::setGzip
HttpResponse::setLastModified
The HttpResponse
PHP 手册

HttpResponse::setHeader

(PECL pecl_http >= 0.12.0)

HttpResponse::setHeader — Set header

说明

static bool HttpResponse::setHeader ( string $name [, mixed $value [, bool $replace=true ]] )

Send an HTTP header.

参数

name

the name of the header

value

the value of the header; if not set, no header with this name will be sent

replace

whether an existing header should be replaced

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getHeader - Get header

HttpResponse::setGzip
HttpResponse::setLastModified
The HttpResponse


Set last modified

HttpResponse::setHeader
HttpResponse::setStream
The HttpResponse
PHP 手册

HttpResponse::setLastModified

(PECL pecl_http >= 0.12.0)

HttpResponse::setLastModified — Set last modified

说明

static bool HttpResponse::setLastModified ( int $timestamp )

Set a custom Last-Modified date.

参数

timestamp

Unix timestamp representing the last modification time of the sent entity

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getLastModified - Get last modified
  • HttpResponse::getETag - Get ETag
  • HttpResponse::setETag - Set ETag

HttpResponse::setHeader
HttpResponse::setStream
The HttpResponse


Set stream

HttpResponse::setLastModified
HttpResponse::setThrottleDelay
The HttpResponse
PHP 手册

HttpResponse::setStream

(PECL pecl_http >= 0.10.0)

HttpResponse::setStream — Set stream

说明

static bool HttpResponse::setStream ( resource $stream )

Set the resource to be sent.

Note: Previously calculated or defined ETag and Last-Modified will be recalculated and redefined.

参数

stream

already opened stream from which the data to send will be read

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getData - Get data
  • HttpResponse::setData - Set data
  • HttpResponse::getFile - Get file
  • HttpResponse::setFile - Set file
  • HttpResponse::getStream - Get Stream

HttpResponse::setLastModified
HttpResponse::setThrottleDelay
The HttpResponse


Set throttle delay

HttpResponse::setStream
HttpResponse::status
The HttpResponse
PHP 手册

HttpResponse::setThrottleDelay

(PECL pecl_http >= 0.10.0)

HttpResponse::setThrottleDelay — Set throttle delay

说明

static bool HttpResponse::setThrottleDelay ( float $seconds )

Sets the throttle delay.

Note: Provides a basic throttling mechanism, which will yield the current process or thread until the entity has been completely sent.

Note: This may not work as expected with the following SAPI(s): FastCGI.

参数

seconds

seconds to sleep after each chunk sent

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • HttpResponse::getBufferSize - Get buffer size
  • HttpResponse::setBufferSize - Set buffer size
  • HttpResponse::getThrottleDelay - Get throttle delay

HttpResponse::setStream
HttpResponse::status
The HttpResponse


Send HTTP response status

HttpResponse::setThrottleDelay
HTTP 函数
The HttpResponse
PHP 手册

HttpResponse::status

(PECL pecl_http >= 0.12.0)

HttpResponse::status — Send HTTP response status

说明

static bool HttpResponse::status ( int $status )

本函数是该函数的别名： http_send_status().

HttpResponse::setThrottleDelay
HTTP 函数
The HttpResponse


HTTP 函数

Built-in HTTP related functions previously listed on this page can be found in the networking category.

The following functions do not need the HTTP module to be present: header(), headers_list(), headers_sent(), setcookie() 和 setrawcookie().

Function groups

Caching

  • http_cache_etag()
  • http_cache_last_modified()

Encodings

  • http_chunked_decode()
  • http_deflate()
  • http_inflate()

Miscellaneous

  • http_build_cookie()
  • http_date()
  • http_get_request_body_stream()
  • http_get_request_body()
  • http_get_request_headers()
  • http_match_etag()
  • http_match_modified()
  • http_match_request_header()
  • http_support()

Negotiation

  • http_negotiate_charset()
  • http_negotiate_content_type()
  • http_negotiate_language()

Outputhandlers

  • ob_deflatehandler()
  • ob_etaghandler()
  • ob_inflatehandler()

Parsers

  • http_parse_cookie()
  • http_parse_headers()
  • http_parse_message()
  • http_parse_params()

Requests

  • http_get()
  • http_head()
  • http_post_data()
  • http_post_fields()
  • http_put_data()
  • http_put_file()
  • http_put_stream()
  • http_request_body_encode()
  • http_request_method_exists()
  • http_request_method_name()
  • http_request_method_register()
  • http_request_method_unregister()
  • http_request()

Responses

  • http_redirect()
  • http_send_content_disposition()
  • http_send_content_type()
  • http_send_data()
  • http_send_file()
  • http_send_last_modified()
  • http_send_status()
  • http_send_stream()
  • http_throttle()

URLs

  • http_build_str()
  • http_build_url()

Persistent Handles

  • http_persistent_handles_count()
  • http_persistent_handles_ident()
  • http_persistent_handles_clean()

Table of Contents

  • http_cache_etag — Caching by ETag
  • http_cache_last_modified — Caching by last modification
  • http_chunked_decode — Decode chunked-encoded data
  • http_deflate — Deflate data
  • http_inflate — Inflate data
  • http_build_cookie — Build cookie string
  • http_date — Compose HTTP RFC compliant date
  • http_get_request_body_stream — Get request body as stream
  • http_get_request_body — Get request body as string
  • http_get_request_headers — Get request headers as array
  • http_match_etag — Match ETag
  • http_match_modified — Match last modification
  • http_match_request_header — Match any header
  • http_support — Check built-in HTTP support
  • http_negotiate_charset — Negotiate clients preferred character set
  • http_negotiate_content_type — Negotiate clients preferred content type
  • http_negotiate_language — Negotiate clients preferred language
  • ob_deflatehandler — Deflate output handler
  • ob_etaghandler — ETag output handler
  • ob_inflatehandler — Inflate output handler
  • http_parse_cookie — Parse HTTP cookie
  • http_parse_headers — Parse HTTP headers
  • http_parse_message — Parse HTTP messages
  • http_parse_params — Parse parameter list
  • http_persistent_handles_clean — Clean up persistent handles
  • http_persistent_handles_count — Stat persistent handles
  • http_persistent_handles_ident — Get/set ident of persistent handles
  • http_get — Perform GET request
  • http_head — Perform HEAD request
  • http_post_data — Perform POST request with pre-encoded data
  • http_post_fields — Perform POST request with data to be encoded
  • http_put_data — Perform PUT request with data
  • http_put_file — Perform PUT request with file
  • http_put_stream — Perform PUT request with stream
  • http_request_body_encode — Encode request body
  • http_request_method_exists — Check whether request method exists
  • http_request_method_name — Get request method name
  • http_request_method_register — Register request method
  • http_request_method_unregister — Unregister request method
  • http_request — Perform custom request
  • http_redirect — Issue HTTP redirect
  • http_send_content_disposition — Send Content-Disposition
  • http_send_content_type — Send Content-Type
  • http_send_data — Send arbitrary data
  • http_send_file — Send file
  • http_send_last_modified — Send Last-Modified
  • http_send_status — Send HTTP response status
  • http_send_stream — Send stream
  • http_throttle — HTTP throttling
  • http_build_str — Build query string
  • http_build_url — Build an URL
HttpResponse::status
http_cache_etag
HTTP


Caching by ETag

HTTP 函数
http_cache_last_modified
HTTP 函数
PHP 手册

http_cache_etag

(PECL pecl_http >= 0.1.0)

http_cache_etag — Caching by ETag

说明

bool http_cache_etag ([ string $etag ] )

Attempts to cache the sent entity by its ETag, either supplied or generated by the hash algorithm specified by the INI 设定 http.etag.mode.

If the clients If-None-Match header matches the supplied/calculated ETag, the body is considered cached on the clients side and a 304 Not Modified status code is issued.

A log entry is written to the cache log if the INI 设定 http.log.cache is set and the cache attempt was successful.

Note: This function may be used in conjunction with http_send_data(), http_send_file() 和 http_send_stream().

If this function is used outside the http_send_*() API, it facilitates the ob_etaghandler().

参数

etag

custom ETag

返回值

Returns FALSE or exits on success with 304 Not Modified if the entity is cached. See the INI 设定 http.force_exit for what "exits" means.

范例

Example #1 A http_cache_etag() example

<?php
http_cache_etag();
http_send_data("data");
?>

参见

  • http_cache_last_modified() - Caching by last modification
  • ob_etaghandler() - ETag output handler
  • http_match_etag() - Match ETag
  • the HttpResponse class if you are using PHP 5.1.0 and above

HTTP 函数
http_cache_last_modified
HTTP 函数


Caching by last modification

http_cache_etag
http_chunked_decode
HTTP 函数
PHP 手册

http_cache_last_modified

(PECL pecl_http >= 0.1.0)

http_cache_last_modified — Caching by last modification

说明

bool http_cache_last_modified ([ int $timestamp_or_expires ] )

Attempts to cache the sent entity by its last modification date.

If the supplied argument is greater than 0, it is handled as timestamp and will be sent as date of last modification. If it is 0 or omitted, the current time will be sent as Last-Modified date. If it's negative, it is handled as expiration time in seconds, which means that if the requested last modification date is not between the calculated timespan, the Last-Modified header is updated and the actual body will be sent.

A log entry will be written to the cache log if the INI 设定 http.log.cache is set and the cache attempt was successful.

Note: This function may be used in conjunction with http_send_data(), http_send_file() 和 http_send_stream().

参数

timestamp_or_expires

Unix timestamp

返回值

Returns FALSE or exits on success with 304 Not Modified if the entity is cached. See the INI 设定 http.force_exit for what "exits" means.

范例

Example #1 A http_cache_last_modified() example

Caching for 5 seconds.

<?php
http_cache_last_modified(-5);
printf("%s\n", http_date());
?>

参见

  • http_cache_etag() - Caching by ETag
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_cache_etag
http_chunked_decode
HTTP 函数


Decode chunked-encoded data

http_cache_last_modified
http_deflate
HTTP 函数
PHP 手册

http_chunked_decode

(PECL pecl_http >= 0.1.0)

http_chunked_decode — Decode chunked-encoded data

说明

string http_chunked_decode ( string $encoded )

Decodes a string which is HTTP-chunked encoded.

参数

encoded

chunked encoded string

返回值

Returns the decoded string on success or FALSE on failure.

范例

Example #1 A http_chunked_decode() example

<?php
$string = "".
    "05\r\n".
    "this \r\n".
    "07\r\n".
    "string \r\n".
    "12\r\n".
    "is chunked encoded\r\n".
    "01\n\r\n".
    "00";
echo http_chunked_decode($string);
?>

上例将输出：

this string is chunked encoded

http_cache_last_modified
http_deflate
HTTP 函数


Deflate data

http_chunked_decode
http_inflate
HTTP 函数
PHP 手册

http_deflate

(PECL pecl_http >= 0.15.0)

http_deflate — Deflate data

说明

string http_deflate ( string $data [, int $flags=0 ] )

Compress data with gzip, zlib AKA deflate or raw deflate encoding.

See the deflate constants table for possible values for the flags parameter.

参数

data

String containing the data that should be encoded

flags

deflate options

返回值

Returns the encoded string on success, or NULL on failure.

参见

  • http_inflate() - Inflate data
  • HttpDeflateStream

http_chunked_decode
http_inflate
HTTP 函数


Inflate data

http_deflate
http_build_cookie
HTTP 函数
PHP 手册

http_inflate

(PECL pecl_http >= 0.15.0)

http_inflate — Inflate data

说明

string http_inflate ( string $data )

Decompress data compressed with either gzip, deflate AKA zlib or raw deflate encoding.

参数

data

string containing the compressed data

返回值

Returns the decoded string on success, or NULL on failure.

参见

  • http_deflate() - Deflate data
  • HttpInflateStream

http_deflate
http_build_cookie
HTTP 函数


Build cookie string

http_inflate
http_date
HTTP 函数
PHP 手册

http_build_cookie

(PECL pecl_http >= 1.2.0)

http_build_cookie — Build cookie string

说明

string http_build_cookie ( array $cookie )

Build a cookie string from an array/object like returned by http_parse_cookie().

参数

cookie

a cookie list like returned from http_parse_cookie()

返回值

Returns the cookie(s) as string.

参见

  • http_parse_cookie() - Parse HTTP cookie

http_inflate
http_date
HTTP 函数


Compose HTTP RFC compliant date

http_build_cookie
http_get_request_body_stream
HTTP 函数
PHP 手册

http_date

(PECL pecl_http >= 0.1.0)

http_date — Compose HTTP RFC compliant date

说明

string http_date ([ int $timestamp ] )

Compose a valid HTTP date regarding RFC 1123 looking like: Wed, 22 Dec 2004 11:34:47 GMT.

参数

timestamp

Unix timestamp; current time if omitted

返回值

Returns the HTTP date as string.

参见

  • date() - 格式化一个本地时间／日期

http_build_cookie
http_get_request_body_stream
HTTP 函数


Get request body as stream

http_date
http_get_request_body
HTTP 函数
PHP 手册

http_get_request_body_stream

(PECL pecl_http >= 0.22.0)

http_get_request_body_stream — Get request body as stream

说明

resource http_get_request_body_stream ( void )

Create a stream to read the raw request body (e.g. POST or PUT data).

This function can only be used once if the request method was another than POST.

参数

返回值

Returns the raw request body as stream on success or NULL on failure.

参见

  • http_get_request_body() - Get request body as string
  • http_get_request_headers() - Get request headers as array
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_date
http_get_request_body
HTTP 函数


Get request body as string

http_get_request_body_stream
http_get_request_headers
HTTP 函数
PHP 手册

http_get_request_body

(PECL pecl_http >= 0.10.0)

http_get_request_body — Get request body as string

说明

string http_get_request_body ( void )

Get the raw request body (e.g. POST or PUT data).

This function can not be used after http_get_request_body_stream() if the request method was another than POST.

参数

返回值

Returns the raw request body as string on success or NULL on failure.

参见

  • http_get_request_body_stream() - Get request body as stream
  • http_get_request_headers() - Get request headers as array
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_get_request_body_stream
http_get_request_headers
HTTP 函数


Get request headers as array

http_get_request_body
http_match_etag
HTTP 函数
PHP 手册

http_get_request_headers

(PECL pecl_http >= 0.10.0)

http_get_request_headers — Get request headers as array

说明

array http_get_request_headers ( void )

Get a list of incoming HTTP headers.

参数

返回值

Returns an associative array of incoming request headers.

参见

  • http_get_request_body() - Get request body as string
  • http_get_request_body_stream() - Get request body as stream
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_get_request_body
http_match_etag
HTTP 函数


Match ETag

http_get_request_headers
http_match_modified
HTTP 函数
PHP 手册

http_match_etag

(PECL pecl_http >= 0.1.0)

http_match_etag — Match ETag

说明

bool http_match_etag ( string $etag [, bool $for_range=false ] )

Matches the given ETag against the clients If-Match resp. If-None-Match HTTP headers.

参数

etag

the ETag to match

for_range

if set to TRUE, the header usually used to validate HTTP ranges will be checked

返回值

Returns TRUE if ETag matches or the header contained the asterisk ("*"), else FALSE.

参见

  • http_match_last_modified()
  • http_match_request_header() - Match any header
  • http_cache_etag() - Caching by ETag
  • http_cache_last_modified() - Caching by last modification
  • ob_etaghandler() - ETag output handler

http_get_request_headers
http_match_modified
HTTP 函数


Match last modification

http_match_etag
http_match_request_header
HTTP 函数
PHP 手册

http_match_modified

(PECL pecl_http >= 0.1.0)

http_match_modified — Match last modification

说明

bool http_match_modified ([ int $timestamp [, bool $for_range=false ]] )

Matches the given Unix timestamp against the clients If-Modified-Since resp. If-Unmodified-Since HTTP headers.

参数

timestamp

Unix timestamp; current time, if omitted

for_range

if set to TRUE, the header usually used to validate HTTP ranges will be checked

返回值

Returns TRUE if timestamp represents an earlier date than the header, else FALSE.

参见

  • http_match_etag() - Match ETag
  • http_match_request_header() - Match any header
  • http_cache_etag() - Caching by ETag
  • http_cache_last_modified() - Caching by last modification

http_match_etag
http_match_request_header
HTTP 函数


Match any header

http_match_modified
http_support
HTTP 函数
PHP 手册

http_match_request_header

(PECL pecl_http >= 0.10.0)

http_match_request_header — Match any header

说明

bool http_match_request_header ( string $header , string $value [, bool $match_case=false ] )

Match an incoming HTTP header.

参数

header

the header name (case-insensitive)

value

the header value that should be compared

match_case

whether the value should be compared case sensitively

返回值

Returns TRUE if header value matches, else FALSE.

参见

  • http_match_etag() - Match ETag
  • http_match_last_modified()

http_match_modified
http_support
HTTP 函数


Check built-in HTTP support

http_match_request_header
http_negotiate_charset
HTTP 函数
PHP 手册

http_support

(PECL pecl_http >= 0.15.0)

http_support — Check built-in HTTP support

说明

int http_support ([ int $feature=0 ] )

Check for features that require external libraries.

See the feature support constants table for possible values for the feature argument.

参数

feature

feature to probe for

返回值

Returns integer, whether requested feature is supported, or a bitmask with all supported features if feature was omitted.

范例

Example #1 A http_support() example

<?php
if (!http_support(HTTP_SUPPORT_REQUESTS)) {
    die("Need HTTP request support!\n");
}
?>

http_match_request_header
http_negotiate_charset
HTTP 函数


Negotiate clients preferred character set

http_support
http_negotiate_content_type
HTTP 函数
PHP 手册

http_negotiate_charset

(PECL pecl_http >= 0.1.0)

http_negotiate_charset — Negotiate clients preferred character set

说明

string http_negotiate_charset ( array $supported [, array &$result ] )

This function negotiates the clients preferred charset based on its Accept-Charset HTTP header. The qualifier is recognized and charsets without qualifier are rated highest.

参数

supported

array containing the supported charsets as values

result

will be filled with an array containing the negotiation results

返回值

Returns the negotiated charset or the default charset (i.e. first array entry) if none match.

范例

Example #1 Using http_negotiate_charset()

<?php
$charsets = array(
        'iso-8859-1', // default
        'iso-8859-2',
        'iso-8859-15',
        'utf-8'
);

$pref = http_negotiate_charset($charsets, $result);

if (strcmp($pref, 'iso-8859-1')) {
        iconv_set_encoding('internal_encoding', 'iso-8859-1');
        iconv_set_encoding('output_encoding', $pref);
        ob_start('ob_iconv_handler');
}

print_r($result);
?>

http_support
http_negotiate_content_type
HTTP 函数


Negotiate clients preferred content type

http_negotiate_charset
http_negotiate_language
HTTP 函数
PHP 手册

http_negotiate_content_type

(PECL pecl_http >= 0.19.0)

http_negotiate_content_type — Negotiate clients preferred content type

说明

string http_negotiate_content_type ( array $supported [, array &$result ] )

This function negotiates the clients preferred content type based on its Accept HTTP header. The qualifier is recognized and content types without qualifier are rated highest.

参数

supported

array containing the supported content types as values

result

will be filled with an array containing the negotiation results

返回值

Returns the negotiated content type or the default content type (i.e. first array entry) if none match.

范例

Example #1 Using http_negotiate_content_type()

<?php
$content_types = array('application/xhtml+xml', 'text/html');
http_send_content_type(http_negotiate_content_type($content_types));
?>

http_negotiate_charset
http_negotiate_language
HTTP 函数


Negotiate clients preferred language

http_negotiate_content_type
ob_deflatehandler
HTTP 函数
PHP 手册

http_negotiate_language

(PECL pecl_http >= 0.1.0)

http_negotiate_language — Negotiate clients preferred language

说明

string http_negotiate_language ( array $supported [, array &$result ] )

This function negotiates the clients preferred language based on its Accept-Language HTTP header. The qualifier is recognized and languages without qualifier are rated highest. The qualifier will be decreased by 10% for partial matches (i.e. matching primary language).

参数

supported

array containing the supported languages as values

result

will be filled with an array containing the negotiation results

返回值

Returns the negotiated language or the default language (i.e. first array entry) if none match.

范例

Example #1 Using http_negotiate_language()

<?php
$langs = array(
        'en-US',// default
        'fr',
        'fr-FR',
        'de',
        'de-DE',
        'de-AT',
        'de-CH',
);

include './langs/'. http_negotiate_language($langs, $result) .'.php';

print_r($result);
?>

http_negotiate_content_type
ob_deflatehandler
HTTP 函数


Deflate output handler

http_negotiate_language
ob_etaghandler
HTTP 函数
PHP 手册

ob_deflatehandler

(PECL pecl_http:0.21.0-1.5.5)

ob_deflatehandler — Deflate output handler

说明

string ob_deflatehandler ( string $data , int $mode )

For use with ob_start().

Note: This output handler can only be used once.

The deflate output buffer handler can only be used once.

It conflicts with ob_gzhandler() and zlib.output_compression as well and should not be used after mbstring extension's mb_output_handler() and session extension's URL-Rewriter (AKA session.use_trans_sid).

参见

  • ob_inflatehandler() - Inflate output handler
  • ob_start() - Turn on output buffering

http_negotiate_language
ob_etaghandler
HTTP 函数


ETag output handler

ob_deflatehandler
ob_inflatehandler
HTTP 函数
PHP 手册

ob_etaghandler

(PECL pecl_http:0.10.0-1.5.5)

ob_etaghandler — ETag output handler

说明

string ob_etaghandler ( string $data , int $mode )

For use with ob_start().

Output buffer handler generating an ETag with the hash algorithm specified with the INI 设定 http.etag.mode.

This output handler is used by http_cache_etag().

参见

  • http_cache_etag() - Caching by ETag
  • http_match_etag() - Match ETag

ob_deflatehandler
ob_inflatehandler
HTTP 函数


Inflate output handler

ob_etaghandler
http_parse_cookie
HTTP 函数
PHP 手册

ob_inflatehandler

(PECL pecl_http:0.21.0-1.5.5)

ob_inflatehandler — Inflate output handler

说明

string ob_inflatehandler ( string $data , int $mode )

For use with ob_start().

Same restrictions as with ob_deflatehandler() apply.

参见

  • ob_deflatehandler() - Deflate output handler
  • ob_start() - Turn on output buffering

ob_etaghandler
http_parse_cookie
HTTP 函数


Parse HTTP cookie

ob_inflatehandler
http_parse_headers
HTTP 函数
PHP 手册

http_parse_cookie

(PECL pecl_http >= 0.20.0)

http_parse_cookie — Parse HTTP cookie

说明

object http_parse_cookie ( string $cookie [, int $flags [, array $allowed_extras ]] )

Parses HTTP cookies like sent in a response into a struct.

参数

cookie

string containing the value of a Set-Cookie response header

flags

parse flags (HTTP_COOKIE_PARSE_RAW)

allowed_extras

array containing recognized extra keys; by default all unknown keys will be treated as cookie names

返回值

Returns a stdClass object on success or FALSE on failure.

范例

Example #1 Using http_parse_cookie()

<?php
print_r(http_parse_cookie("foo=bar; bar=baz; path=/; domain=example.com; comment=; secure", 0, array("comment")));
?>

上例将输出：

stdClass Object
(
  [cookies] => Array
  (
    [foo] => bar
    [bar] => baz
  )

  [extras] => Array
  (
    [comment] =>
  )

  [flags] => 16
  [expires] => 0
  [path] => /
  [domain] => example.com
)

参见

  • http_parse_headers() - Parse HTTP headers
  • http_parse_message() - Parse HTTP messages
  • http_build_cookie() - Build cookie string

ob_inflatehandler
http_parse_headers
HTTP 函数


Parse HTTP headers

http_parse_cookie
http_parse_message
HTTP 函数
PHP 手册

http_parse_headers

(PECL pecl_http >= 0.10.0)

http_parse_headers — Parse HTTP headers

说明

array http_parse_headers ( string $header )

Parses HTTP headers into an associative array.

参数

header

string containing HTTP headers

返回值

Returns an array on success, or FALSE on failure.

范例

Example #1 Using http_parse_headers()

<?php
$headers = "content-type: text/html; charset=UTF-8\r\n".
  "Server: Funky/1.0\r\n".
  "Set-Cookie: foo=bar\r\n".
  "Set-Cookie: baz=quux\r\n".
  "Folded: works\r\n\ttoo\r\n";
print_r(http_parse_headers($headers));
?>

上例将输出：

Array
(
  [Content-Type] => text/html; chatset=UTF-8
  [Server] => Funky/1.0
  [Set-Cookie] => Array
  (
    [0] => foo=bar
    [1] => baz=quux
  )
  [Folded] => works
    too
)

参见

  • http_parse_message() - Parse HTTP messages
  • http_parse_cookie() - Parse HTTP cookie

http_parse_cookie
http_parse_message
HTTP 函数


Parse HTTP messages

http_parse_headers
http_parse_params
HTTP 函数
PHP 手册

http_parse_message

(PECL pecl_http >= 0.12.0)

http_parse_message — Parse HTTP messages

说明

object http_parse_message ( string $message )

Parses the HTTP message into a simple recursive object.

参数

message

string containing a single HTTP message or several consecutive HTTP messages

返回值

Returns a hierarchical object structure of the parsed messages.

范例

Example #1 Using http_parse_message()

<?php
define ('URL', 'http://www.example.com/');
print_r(http_parse_message(http_get(URL, array('redirect' => 3))));
?>

上例的输出类似于：

stdClass object
(
  [type] => 2
  [httpVersion] => 1.1
  [responseCode] => 200
  [headers] => Array
  (
    [Content-Length] => 3
    [Server] => Apache
  )
  [body] => Hi!
  [parentMessage] => stdClass object
  (
    [type] => 2
    [httpVersion] => 1.1
    [responseCode] => 302
    [headers] => Array
    (
      [Content-Length] => 0
      [Location] => ...
    )
    [body] =>
    [parentMessage] => ...
  )
)

参见

  • http_parse_headers() - Parse HTTP headers
  • the HttpMessage class

http_parse_headers
http_parse_params
HTTP 函数


Parse parameter list

http_parse_message
http_persistent_handles_clean
HTTP 函数
PHP 手册

http_parse_params

(PECL pecl_http >= 1.0.0)

http_parse_params — Parse parameter list

说明

object http_parse_params ( string $param [, int $flags=HTTP_PARAMS_DEFAULT ] )

Parse parameter list.

See the params parsing constants table for possible values of the flags argument.

参数

param

Parameters

flags

Parse flags

返回值

Returns parameter list as stdClass object.

范例

Example #1 A http_parse_params() example

<?php
var_dump(http_parse_params("text/html; charset=\"utf8\""));
?>

上例将输出：

object(stdClass)#1 (1) {
  ["params"]=>
  array(2) {
    [0]=>
    string(9) "text/html"
    [1]=>
    array(1) {
      ["charset"]=>
      string(4) "utf8"
    }
  }
}

参见

  • http_parse_headers() - Parse HTTP headers
  • http_parse_cookie() - Parse HTTP cookie
  • http_parse_message() - Parse HTTP messages

http_parse_message
http_persistent_handles_clean
HTTP 函数


Clean up persistent handles

http_parse_params
http_persistent_handles_count
HTTP 函数
PHP 手册

http_persistent_handles_clean

(PECL pecl_http >= 1.5.0)

http_persistent_handles_clean — Clean up persistent handles

说明

string http_persistent_handles_clean ([ string $ident ] )

Clean up (close) persistent handles, optionally identified with ident.

参数

clean

the identification string

返回值

无返回值。

参见

  • http_persistent_handles_ident() - Get/set ident of persistent handles
  • http_persistent_handles_count() - Stat persistent handles

http_parse_params
http_persistent_handles_count
HTTP 函数


Stat persistent handles

http_persistent_handles_clean
http_persistent_handles_ident
HTTP 函数
PHP 手册

http_persistent_handles_count

(PECL pecl_http >= 1.5.0)

http_persistent_handles_count — Stat persistent handles

说明

object http_persistent_handles_count ( void )

List statistics about persistent handles usage.

参数

返回值

Returns persistent handles statistics as stdClass object on success or FALSE on failure.

范例

Example #1 A http_persistent_handles_count() example

<?php
print_r(http_persistent_handles_count());
?>

上例将输出：

stdClass Object
(
    [http_request] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 0
                    [free] => 1
                )

        )

    [http_request_datashare] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 1
                    [free] => 0
                )

        )

    [http_request_pool] => Array
        (
        )

)

参见

  • http_persistent_handles_ident() - Get/set ident of persistent handles
  • http_persistent_handles_clean() - Clean up persistent handles

http_persistent_handles_clean
http_persistent_handles_ident
HTTP 函数


Get/set ident of persistent handles

http_persistent_handles_count
http_get
HTTP 函数
PHP 手册

http_persistent_handles_ident

(PECL pecl_http >= 1.5.0)

http_persistent_handles_ident — Get/set ident of persistent handles

说明

string http_persistent_handles_ident ( string $ident )

Query or define the ident of persistent handles.

参数

ident

the identification string

返回值

Returns the prior ident as string on success or FALSE on failure.

范例

Example #1 A http_persistent_handles_ident() example

<?php
echo http_persistent_handles_ident("CUSTOM"), "\n";
echo http_persistent_handles_ident("MyApp1"), "\n";
http_get("http://www.example.com/");
print_r(http_persistent_handles_count());
?>

上例将输出：

GLOBAL
CUSTOM
stdClass Object
(
[http_request] => Array
(
[MyApp1] => Array
(
[used] => 0
[free] => 1
)

)

[http_request_datashare] => Array
(
[GLOBAL] => Array
(
[used] => 1
[free] => 0
)

)

[http_request_pool] => Array
(
)

)

参见

  • http_persistent_handles_count() - Stat persistent handles
  • http_persistent_handles_clean() - Clean up persistent handles

http_persistent_handles_count
http_get
HTTP 函数


Perform GET request

http_persistent_handles_ident
http_head
HTTP 函数
PHP 手册

http_get

(PECL pecl_http >= 0.1.0)

http_get — Perform GET request

说明

string http_get ( string $url [, array $options [, array &$info ]] )

Performs an HTTP GET request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

options

请求选项

info

Will be filled with request/response information

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

范例

Example #1 A http_get() example

<?php
$response = http_get("http://www.example.com/", array("timeout"=>1), $info);
print_r($info);
?>

上例将输出：

array (
  'effective_url' => 'http://www.example.com/',
  'response_code' => 302,
  'connect_code' => 0,
  'filetime' => -1,
  'total_time' => 0.212348,
  'namelookup_time' => 0.038296,
  'connect_time' => 0.104144,
  'pretransfer_time' => 0.104307,
  'starttransfer_time' => 0.212077,
  'redirect_time' => 0,
  'redirect_count' => 0,
  'size_upload' => 0,
  'size_download' => 218,
  'speed_download' => 1026,
  'speed_upload' => 0,
  'header_size' => 307,
  'request_size' => 103,
  'ssl_verifyresult' => 0,
  'ssl_engines' =>
  array (
    0 => 'dynamic',
    1 => 'cswift',
    2 => 'chil',
    3 => 'atalla',
    4 => 'nuron',
    5 => 'ubsec',
    6 => 'aep',
    7 => 'sureware',
    8 => '4758cca',
  ),
  'content_length_download' => 218,
  'content_length_upload' => 0,
  'content_type' => 'text/html',
  'httpauth_avail' => 0,
  'proxyauth_avail' => 0,
  'num_connects' => 1,
  'os_errno' => 0,
  'error' => '',
)

http_persistent_handles_ident
http_head
HTTP 函数


Perform HEAD request

http_get
http_post_data
HTTP 函数
PHP 手册

http_head

(PECL pecl_http >= 0.1.0)

http_head — Perform HEAD request

说明

string http_head ([ string $url [, array $options [, array &$info ]]] )

Performs an HTTP HEAD request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

http_get
http_post_data
HTTP 函数


Perform POST request with pre-encoded data

http_head
http_post_fields
HTTP 函数
PHP 手册

http_post_data

(PECL pecl_http >= 0.1.0)

http_post_data — Perform POST request with pre-encoded data

说明

string http_post_data ( string $url [, string $data [, array $options [, array &$info ]]] )

Performs an HTTP POST request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

data

String containing the pre-encoded post data

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

http_head
http_post_fields
HTTP 函数


Perform POST request with data to be encoded

http_post_data
http_put_data
HTTP 函数
PHP 手册

http_post_fields

(PECL pecl_http >= 0.10.0)

http_post_fields — Perform POST request with data to be encoded

说明

string http_post_fields ( string $url [, array $data [, array $files [, array $options [, array &$info ]]]] )

Performs an HTTP POST request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

data

Associative array of POST values

files

Array of files to post

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

范例

Example #1 A http_post_fields() example

<?php
$fields = array(
    'name' => 'mike',
    'pass' => 'se_ret'
);
$files = array(
    array(
        'name' => 'uimg',
        'type' => 'image/jpeg',
        'file' => './profile.jpg',
    )
);

$response = http_post_fields("http://www.example.com/", $fields, $files);
?>

http_post_data
http_put_data
HTTP 函数


Perform PUT request with data

http_post_fields
http_put_file
HTTP 函数
PHP 手册

http_put_data

(PECL pecl_http >= 0.25.0)

http_put_data — Perform PUT request with data

说明

string http_put_data ( string $url [, string $data [, array $options [, array &$info ]]] )

Performs an HTTP PUT request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

data

PUT request body

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

http_post_fields
http_put_file
HTTP 函数


Perform PUT request with file

http_put_data
http_put_stream
HTTP 函数
PHP 手册

http_put_file

(PECL pecl_http >= 0.10.0)

http_put_file — Perform PUT request with file

说明

string http_put_file ( string $url [, string $file [, array $options [, array &$info ]]] )

Performs an HTTP PUT request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

file

The file to put

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

http_put_data
http_put_stream
HTTP 函数


Perform PUT request with stream

http_put_file
http_request_body_encode
HTTP 函数
PHP 手册

http_put_stream

(PECL pecl_http >= 0.10.0)

http_put_stream — Perform PUT request with stream

说明

string http_put_stream ( string $url [, resource $stream [, array $options [, array &$info ]]] )

Performs an HTTP PUT request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

url

URL

stream

The stream to read the PUT request body from

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

http_put_file
http_request_body_encode
HTTP 函数


Encode request body

http_put_stream
http_request_method_exists
HTTP 函数
PHP 手册

http_request_body_encode

(PECL pecl_http >= 1.0.0)

http_request_body_encode — Encode request body

说明

string http_request_body_encode ( array $fields , array $files )

Generate x-www-form-urlencoded resp. form-data encoded request body.

参数

fields

POST fields

files

POST files

返回值

Returns encoded string on success, or FALSE on failure

http_put_stream
http_request_method_exists
HTTP 函数


Check whether request method exists

http_request_body_encode
http_request_method_name
HTTP 函数
PHP 手册

http_request_method_exists

(PECL pecl_http >= 0.10.0)

http_request_method_exists — Check whether request method exists

说明

int http_request_method_exists ( mixed $method )

Check if a request method is registered (or available by default).

参数

method

request method name or ID

返回值

Returns TRUE if the request method is known, else FALSE.

http_request_body_encode
http_request_method_name
HTTP 函数


Get request method name

http_request_method_exists
http_request_method_register
HTTP 函数
PHP 手册

http_request_method_name

(PECL pecl_http >= 0.10.0)

http_request_method_name — Get request method name

说明

string http_request_method_name ( int $method )

Get the literal string representation of a standard or registered request method.

参数

method

request method ID

返回值

Returns the request method name as string on success, or FALSE on failure.

http_request_method_exists
http_request_method_register
HTTP 函数


Register request method

http_request_method_name
http_request_method_unregister
HTTP 函数
PHP 手册

http_request_method_register

(PECL pecl_http >= 0.10.0)

http_request_method_register — Register request method

说明

int http_request_method_register ( string $method )

Register a custom request method.

参数

method

the request method name to register

返回值

Returns the ID of the request method on success, or FALSE on failure.

http_request_method_name
http_request_method_unregister
HTTP 函数


Unregister request method

http_request_method_register
http_request
HTTP 函数
PHP 手册

http_request_method_unregister

(PECL pecl_http >= 0.10.0)

http_request_method_unregister — Unregister request method

说明

bool http_request_method_unregister ( mixed $method )

Unregister a previously registered custom request method.

参数

method

The request method name or ID

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

http_request_method_register
http_request
HTTP 函数


Perform custom request

http_request_method_unregister
http_redirect
HTTP 函数
PHP 手册

http_request

(PECL pecl_http >= 1.0.0)

http_request — Perform custom request

说明

string http_request ( int $method [, string $url [, string $body [, array $options [, array &$info ]]]] )

Performs a custom HTTP request on the supplied url.

可用参数的完整列表见 http_get() 函数和 选项。

参数

method

Request method

url

URL

body

Request body

options

请求选项

info

请求／响应信息

返回值

成功时以字符串返回 HTTP 响应，失败时返回 FALSE。

http_request_method_unregister
http_redirect
HTTP 函数


Issue HTTP redirect

http_request
http_send_content_disposition
HTTP 函数
PHP 手册

http_redirect

(PECL pecl_http >= 0.1.0)

http_redirect — Issue HTTP redirect

说明

void http_redirect ([ string $url [, array $params [, bool $session=false [, int $status ]]]] )

Redirect to the given url.

The supplied url will be expanded with http_build_url(), the params array will be treated with http_build_str() and the session identification will be appended if session is true. The HTTP response code will be set according to status . You can use one of the redirect constants for convenience. Please see » RFC 2616 for which redirect response code to use in which situation. By default PHP will decide which response status fits best.

To be RFC compliant, "Redirecting to <a>URL</a>." will be displayed, if the client doesn't redirect immediately, and the request method was another one than HEAD.

A log entry will be written to the redirect log, if the INI 设定 http.log.redirect is set and the redirect attempt was successful.

参数

url

the URL to redirect to

params

associative array of query parameters

session

whether to append session information

status

custom response status code

返回值

Returns FALSE or exits on success with the specified redirection status code. See the INI 设定 http.force_exit for what "exits" means.

范例

Example #1 A http_redirect() example

<?php
http_redirect("relpath", array("name" => "value"), true, HTTP_REDIRECT_PERM);
?>

上例将输出：

HTTP/1.1 301 Moved Permanently
X-Powered-By: PHP/5.2.2
Content-Type: text/html
Location: http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc

Redirecting to <a href="http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc">http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc</a>.

参见

  • the HttpResponse class if you are using PHP 5.1.0 and above

http_request
http_send_content_disposition
HTTP 函数


Send Content-Disposition

http_redirect
http_send_content_type
HTTP 函数
PHP 手册

http_send_content_disposition

(PECL pecl_http >= 0.10.0)

http_send_content_disposition — Send Content-Disposition

说明

bool http_send_content_disposition ( string $filename [, bool $inline=false ] )

Send the Content-Disposition. The Content-Disposition header is very useful if the data actually being sent came from a file or something similar, that should be "saved" by the client/user (i.e. by the browser's "Save as..." popup window).

Note: This function should be used in conjunction with http_send_data(), http_send_file() 和 http_send_stream().

参数

filename

the file name the "Save as..." dialog should display

inline

if set to TRUE and the user agent knows how to handle the content type, it will probably not cause the popup window to be shown

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • http_send_data() - Send arbitrary data
  • http_send_file() - Send file
  • http_send_stream() - Send stream
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_redirect
http_send_content_type
HTTP 函数


Send Content-Type

http_send_content_disposition
http_send_data
HTTP 函数
PHP 手册

http_send_content_type

(PECL pecl_http >= 0.10.0)

http_send_content_type — Send Content-Type

说明

bool http_send_content_type ([ string $content_type="application/x-octetstream" ] )

Send the Content-Type of the sent entity.

Note: This function should be used in conjunction with http_send_data(), http_send_file() 和 http_send_stream().

参数

content_type

the desired content type (primary/secondary)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Raises an E_WARNING when the content_type doesn't seem to contain a primary and a secondary part.

参见

  • http_send_data() - Send arbitrary data
  • http_send_file() - Send file
  • http_send_stream() - Send stream
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_content_disposition
http_send_data
HTTP 函数


Send arbitrary data

http_send_content_type
http_send_file
HTTP 函数
PHP 手册

http_send_data

(PECL pecl_http >= 0.1.0)

http_send_data — Send arbitrary data

说明

bool http_send_data ( string $data )

Sends raw data with support for (multiple) range requests.

参数

data

data to send

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • http_send_file() - Send file
  • http_send_stream() - Send stream
  • http_throttle() - HTTP throttling
  • http_send_content_type() - Send Content-Type
  • http_send_content_disposition() - Send Content-Disposition
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_content_type
http_send_file
HTTP 函数


Send file

http_send_data
http_send_last_modified
HTTP 函数
PHP 手册

http_send_file

(PECL pecl_http >= 0.1.0)

http_send_file — Send file

说明

bool http_send_file ( string $file )

Sends a file with support for (multiple) range requests.

This functions behaviour and further action is dependent on the following INI 设定s: http.send.not_found_404 和 http.log.not_found.

If the INI 设定 http.send.not_found_404 is enabled and the INI 设定 http.log.not_found points to a writable file, a log message is written when the file was not found.

参数

file

the file to send

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 A http_send_file() example

<?php
http_send_content_disposition("document.pdf", true);
http_send_content_type("application/pdf");
http_throttle(0.1, 2048);
http_send_file("../report.pdf");
?>

上例将输出：

HTTP/1.1 206 Partial Content
X-Powered-By: PHP/5.2.2
Accept-Ranges: bytes
Content-Length: 12345
Content-Range: bytes 0-12344
Content-Type: application/pdf
Content-Disposition: inline; filename="document.pdf"

%PDF...

参见

  • http_send_data() - Send arbitrary data
  • http_send_stream() - Send stream
  • http_throttle() - HTTP throttling
  • http_send_content_type() - Send Content-Type
  • http_send_content_disposition() - Send Content-Disposition
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_data
http_send_last_modified
HTTP 函数


Send Last-Modified

http_send_file
http_send_status
HTTP 函数
PHP 手册

http_send_last_modified

(PECL pecl_http >= 0.1.0)

http_send_last_modified — Send Last-Modified

说明

bool http_send_last_modified ([ int $timestamp ] )

Send a Last-Modified header with a valid HTTP date.

Note: This function should be used in conjunction with http_send_data(), http_send_file() 和 http_send_stream().

参数

timestamp

a Unix timestamp, converted to a valid HTTP date; if omitted, the current time will be sent

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_file
http_send_status
HTTP 函数


Send HTTP response status

http_send_last_modified
http_send_stream
HTTP 函数
PHP 手册

http_send_status

(PECL pecl_http >= 0.1.0)

http_send_status — Send HTTP response status

说明

bool http_send_status ( int $status )

Send HTTP status code.

参数

status

HTTP status code (100-599)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_last_modified
http_send_stream
HTTP 函数


Send stream

http_send_status
http_throttle
HTTP 函数
PHP 手册

http_send_stream

(PECL pecl_http >= 0.1.0)

http_send_stream — Send stream

说明

bool http_send_stream ( resource $stream )

Sends an already opened stream with support for (multiple) range requests.

参数

stream

stream to read from (must be seekable)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • http_send_data() - Send arbitrary data
  • http_send_file() - Send file
  • http_throttle() - HTTP throttling
  • http_send_content_type() - Send Content-Type
  • http_send_content_disposition() - Send Content-Disposition
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_status
http_throttle
HTTP 函数


HTTP throttling

http_send_stream
http_build_str
HTTP 函数
PHP 手册

http_throttle

(PECL pecl_http >= 0.10.0)

http_throttle — HTTP throttling

说明

void http_throttle ([ float $sec [, int $bytes=40960 ]] )

Sets the throttle delay and send buffer size.

Note: This function should be used in conjunction with http_send_data(), http_send_file() 和 http_send_stream().

Note: Provides a basic throttling mechanism, which will yield the current process or thread until the entity has been completely sent.

Note: This may not work as expected with the following SAPI(s): FastCGI.

参数

sec

seconds to sleep after each chunk sent

bytes

the chunk size in bytes

范例

Example #1 A http_throttle() example

Send file with approximately 20 kbyte/s.

<?php
// ~ 20 kbyte/s
# http_throttle(1, 20000);
# http_throttle(0.5, 10000);
http_throttle(0.1, 2000);
http_send_file('document.pdf');
?>

参见

  • http_send_data() - Send arbitrary data
  • http_send_file() - Send file
  • http_send_stream() - Send stream
  • the HttpResponse class if you are using PHP 5.1.0 and above

http_send_stream
http_build_str
HTTP 函数


Build query string

http_throttle
http_build_url
HTTP 函数
PHP 手册

http_build_str

(PECL pecl_http >= 0.23.0)

http_build_str — Build query string

说明

string http_build_str ( array $query [, string $prefix [, string $arg_separator ]] )

Opponent to parse_str().

参数

query

associative array of query string parameters

prefix

top level prefix

arg_separator

argument separator to use (by default the INI setting arg_separator.output will be used, or "&" if neither is set

返回值

Returns the built query as string on success or FALSE on failure.

参见

  • standard http_build_query() - 生成 URL-encode 之后的请求字符串
  • http_build_url() - Build an URL

http_throttle
http_build_url
HTTP 函数


Build an URL

http_build_str
Java
HTTP 函数
PHP 手册

http_build_url

(PECL pecl_http >= 0.21.0)

http_build_url — Build an URL

说明

string http_build_url ([ mixed $url [, mixed $parts [, int $flags=HTTP_URL_REPLACE [, array &$new_url ]]]] )

Build an URL.

The parts of the second URL will be merged into the first according to the flags argument.

参数

url

(part(s) of) an URL in form of a string or associative array like parse_url() returns

parts

same as the first argument

flags

a bitmask of binary or'ed HTTP_URL constants; HTTP_URL_REPLACE is the default

new_url

if set, it will be filled with the parts of the composed url like parse_url() would return

返回值

Returns the new URL as string on success or FALSE on failure.

范例

Example #1 A http_build_url() example

<?php
echo http_build_url("http://user@www.example.com/pub/index.php?a=b#files",
    array(
        "scheme" => "ftp",
        "host" => "ftp.example.com",
        "path" => "files/current/",
        "query" => "a=c"
    ),
    HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT
);
?>

上例将输出：

ftp://ftp.example.com/pub/files/current/?a=b&a=c

参见

  • parse_url() - 解析 URL，返回其组成部分
  • http_build_str() - Build query string

http_build_str
Java
HTTP 函数


PHP / Java Integration

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Java Servlet SAPI
  • 范例
    • Java Example
  • Java 函数
    • java_last_exception_clear — Clear last Java exception
    • java_last_exception_get — Get last Java exception
http_build_url
简介
其它服务


简介

There are two possible ways to bridge PHP and Java: you can either integrate PHP into a Java Servlet environment, which is the more stable and efficient solution, or integrate Java support into PHP. The former is provided by a SAPI module that interfaces with the Servlet server, the latter by this Java extension.

The Java extension provides a simple and effective means for creating and invoking methods on Java objects from PHP. The JVM is created using JNI, and everything runs in-process.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Java
安装/配置
Java


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Java


需求

You need a Java VM installed on your machine to use this extension.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

在 PHP 4 中本 PECL 扩展的源程序位于 PHP 源程序中的 ext/ 目录下或者在上面的 PECL 连接中。 In order to use these functions you must compile PHP with Java support by using the --with-java[=DIR] where DIR points to the base install directory of your JDK. This extension can only be built as a shared extension. Additional build instructions can be found in php-src/ext/java/README.

Windows users will enable php_java.dll inside of php.ini in order to use these functions. 在 PHP 4 中本 DLL 位于 PHP Windows 执行包中的 extensions/ 目录下。 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

Note: In order to enable this module on a Windows environment with PHP <= 4.0.6, you must make jvm.dll available to your systems PATH. No additional DLL is needed for PHP versions > 4.0.6.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Java configuration options
Name | Default | Changeable | Changelog
java.class.path | NULL | PHP_INI_ALL |
java.home | NULL | PHP_INI_ALL |
java.library.path | NULL | PHP_INI_ALL |
java.library | JAVALIB | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Java Servlet SAPI
Java


Java Servlet SAPI

The Java Servlet SAPI builds upon the mechanism defined by the Java extension to enable the entire PHP processor to be run as a servlet. The primary advantage of this from a PHP perspective is that web servers which support servlets typically take great care in pooling and reusing JVMs. Build instructions for the Servlet SAPI module can be found in php4/sapi/README. Notes:

  • While this code is intended to be able to run on any servlet engine, it has only been tested on Apache's Jakarta/tomcat to date. Bug reports, success stories and/or patches required to get this code to run on other engines would be appreciated.
  • PHP has a habit of changing the working directory. sapi/servlet will eventually change it back, but while PHP is running the servlet engine may not be able to load any classes from the CLASSPATH which are specified using a relative directory syntax, or find the work directory used for administration and JSP compilation tasks.

预定义常量
范例
Java


范例

Table of Contents

  • Java Example
Java Servlet SAPI
Java Example
Java


Java Example

范例
Java 函数
范例
PHP 手册

Example #1 Java Example

<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
             $system->getProperty('os.version') . ' on ' .
             $system->getProperty('os.arch') . ' <br />';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
                      "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));
?>

Example #2 AWT Example

<?php
// This example is only intended to be run using the CLI.

$frame  = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');

$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>

Notes:

  • new Java() will create an instance of a class if a suitable constructor is available. If no parameters are passed and the default constructor is useful as it provides access to classes like java.lang.System which expose most of their functionality through static methods.
  • Accessing a member of an instance will first look for bean properties then public fields. In other words, print $date.time will first attempt to be resolved as $date.getTime(), then as $date.time.
  • Both static and instance members can be accessed on an object with the same syntax. Furthermore, if the java object is of type java.lang.Class, then static members of the class (fields and methods) can be accessed.

  • Exceptions raised result in PHP warnings, and NULL results. The warnings may be eliminated by prefixing the method call with an "@" sign. The following APIs may be used to retrieve and reset the last error:

    • java_last_exception_get()
    • java_last_exception_clear()

  • Overload resolution is in general a hard problem given the differences in types between the two languages. The PHP Java extension employs a simple, but fairly effective, metric for determining which overload is the best match. Additionally, method names in PHP are not case sensitive, potentially increasing the number of overloads to select from. Once a method is selected, the parameters are coerced if necessary, possibly with a loss of data (example: double precision floating point numbers will be converted to boolean).
  • In the tradition of PHP, arrays and hashtables may pretty much be used interchangeably. Note that hashtables in PHP may only be indexed by integers or strings; and that arrays of primitive types in Java can not be sparse. Also note that these constructs are passed by value, so may be expensive in terms of memory and time.

范例
Java 函数
范例


Java 函数

Table of Contents

  • java_last_exception_clear — Clear last Java exception
  • java_last_exception_get — Get last Java exception
Java Example
java_last_exception_clear
Java


Clear last Java exception

Java 函数
java_last_exception_get
Java 函数
PHP 手册

java_last_exception_clear

(PHP 4 >= 4.0.2)

java_last_exception_clear — Clear last Java exception

说明

void java_last_exception_clear ( void )

Clears last Java exception.

返回值

无返回值。

范例

See java_last_exception_get() for an example.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Java 函数
java_last_exception_get
Java 函数


Get last Java exception

java_last_exception_clear
LDAP
Java 函数
PHP 手册

java_last_exception_get

(PHP 4 >= 4.0.2)

java_last_exception_get — Get last Java exception

说明

object java_last_exception_get ( void )

Gets last Java exception.

返回值

Returns an exception object.

范例

The following example demonstrates the usage of Java's exception handler from within PHP:

Example #1 Java exception handler

<?php
$stack = new Java('java.util.Stack');
$stack->push(1);

// This should succeed
$result = $stack->pop();
$ex = java_last_exception_get();
if (!$ex) {
  echo "$result\n";
}

// This should fail (error suppressed by @)
$result = @$stack->pop();
$ex = java_last_exception_get();
if ($ex) {
  echo $ex->toString();
}

// Clear last exception
java_last_exception_clear();
?>

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

java_last_exception_clear
LDAP
Java 函数


Lightweight Directory Access Protocol

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Using the PHP LDAP calls
  • 范例
    • LDAP search example
  • LDAP 函数
    • ldap_8859_to_t61 — Translate 8859 characters to t61 characters
    • ldap_add — Add entries to LDAP directory
    • ldap_bind — Bind to LDAP directory
    • ldap_close — 别名 ldap_unbind
    • ldap_compare — Compare value of attribute found in entry specified with DN
    • ldap_connect — Connect to an LDAP server
    • ldap_count_entries — Count the number of entries in a search
    • ldap_delete — Delete an entry from a directory
    • ldap_dn2ufn — Convert DN to User Friendly Naming format
    • ldap_err2str — Convert LDAP error number into string error message
    • ldap_errno — Return the LDAP error number of the last LDAP command
    • ldap_error — Return the LDAP error message of the last LDAP command
    • ldap_explode_dn — Splits DN into its component parts
    • ldap_first_attribute — Return first attribute
    • ldap_first_entry — Return first result id
    • ldap_first_reference — Return first reference
    • ldap_free_result — Free result memory
    • ldap_get_attributes — Get attributes from a search result entry
    • ldap_get_dn — Get the DN of a result entry
    • ldap_get_entries — Get all result entries
    • ldap_get_option — Get the current value for given option
    • ldap_get_values_len — Get all binary values from a result entry
    • ldap_get_values — Get all values from a result entry
    • ldap_list — Single-level search
    • ldap_mod_add — Add attribute values to current attributes
    • ldap_mod_del — Delete attribute values from current attributes
    • ldap_mod_replace — Replace attribute values with new ones
    • ldap_modify — Modify an LDAP entry
    • ldap_next_attribute — Get the next attribute in result
    • ldap_next_entry — Get next result entry
    • ldap_next_reference — Get next reference
    • ldap_parse_reference — Extract information from reference entry
    • ldap_parse_result — Extract information from result
    • ldap_read — Read an entry
    • ldap_rename — Modify the name of an entry
    • ldap_sasl_bind — Bind to LDAP directory using SASL
    • ldap_search — Search LDAP tree
    • ldap_set_option — Set the value of the given option
    • ldap_set_rebind_proc — Set a callback function to do re-binds on referral chasing
    • ldap_sort — Sort LDAP result entries
    • ldap_start_tls — Start TLS
    • ldap_t61_to_8859 — Translate t61 characters to 8859 characters
    • ldap_unbind — Unbind from LDAP directory
java_last_exception_get
简介
其它服务


简介

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.

The concept is similar to your hard disk directory structure, except that in this context, the root directory is "The world" and the first level subdirectories are "countries". Lower levels of the directory structure contain entries for companies, organisations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

To refer to a file in a subdirectory on your hard disk, you might use something like:

   /usr/local/myapp/docs

The forwards slash marks each division in the reference, and the sequence is read from left to right.

The equivalent to the fully qualified file reference in LDAP is the "distinguished name", referred to simply as "dn". An example dn might be:

   cn=John Smith,ou=Accounts,o=My Company,c=US

The comma marks each division in the reference, and the sequence is read from right to left. You would read this dn as:

   country = US
   organization = My Company
   organizationalUnit = Accounts
   commonName = John Smith

In the same way as there are no hard rules about how you organise the directory structure of a hard disk, a directory server manager can set up any structure that is meaningful for the purpose. However, there are some conventions that are used. The message is that you can not write code to access a directory server unless you know something about its structure, any more than you can use a database without some knowledge of what is available.

Lots of information about LDAP can be found at

  • » Mozilla

  • » OpenLDAP Project

The Netscape SDK contains a helpful » Programmer's Guide in HTML format.

LDAP
安装/配置
LDAP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
LDAP


需求

You will need to get and compile LDAP client libraries from either » OpenLDAP or » Bind9.net in order to compile PHP with LDAP support.

安装/配置
安装
安装/配置


安装

LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory. To enable SASL support, be sure --with-ldap-sasl[=DIR] is used, and that sasl.h exists on the system.

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: libeay32.dll and ssleay32.dll
Versions before PHP 4.3.0 additionally require libsasl.dll.

In order to use Oracle LDAP libraries, proper Oracle environment has to be set.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

LDAP configuration options
Name | Default | Changeable | Changelog
ldap.max_links | "-1" | PHP_INI_SYSTEM |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


资源类型

Most LDAP functions operate on or return resources (e.g. ldap_connect() returns a positive LDAP link identifier required by most LDAP functions).

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

LDAP_DEREF_NEVER (integer)
LDAP_DEREF_SEARCHING (integer)
LDAP_DEREF_FINDING (integer)
LDAP_DEREF_ALWAYS (integer)
LDAP_OPT_DEREF (integer)
LDAP_OPT_SIZELIMIT (integer)
LDAP_OPT_TIMELIMIT (integer)
LDAP_OPT_NETWORK_TIMEOUT (integer)
Option for ldap_set_option() to allow setting network timeout. (Available as of PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (integer)
LDAP_OPT_ERROR_NUMBER (integer)
LDAP_OPT_REFERRALS (integer)
LDAP_OPT_RESTART (integer)
LDAP_OPT_HOST_NAME (integer)
LDAP_OPT_ERROR_STRING (integer)
LDAP_OPT_MATCHED_DN (integer)
LDAP_OPT_SERVER_CONTROLS (integer)
LDAP_OPT_CLIENT_CONTROLS (integer)
LDAP_OPT_DEBUG_LEVEL (integer)
GSLC_SSL_NO_AUTH (integer)
GSLC_SSL_ONEWAY_AUTH (integer)
GSLC_SSL_TWOWAY_AUTH (integer)
资源类型
Using the PHP LDAP calls
LDAP


Using the PHP LDAP calls

Before you can use the LDAP calls you will need to know ..

  • The name or address of the directory server you will use

  • The "base dn" of the server (the part of the world directory that is held on this server, which could be "o=My Company,c=US")

  • Whether you need a password to access the server (many servers will provide read access for an "anonymous bind" but require a password for anything else)

The typical sequence of LDAP calls you will make in an application will follow this pattern:

  ldap_connect()    // establish connection to server
     |
  ldap_bind()       // anonymous or authenticated "login"
     |
  do something like search or update the directory
  and display the results
     |
  ldap_close()      // "logout"

预定义常量
范例
LDAP


范例

Table of Contents

  • LDAP search example
Using the PHP LDAP calls
LDAP search example
LDAP


LDAP search example

范例
LDAP 函数
范例
PHP 手册

Retrieve information for all entries where the surname starts with "S" from a directory server, displaying an extract with name and email address.

Example #1 LDAP search example

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost");  // must be a valid LDAP server!
echo "connect result is " . $ds . "<br />";

if ($ds) {
    echo "Binding ...";
    $r=ldap_bind($ds);     // this is an "anonymous" bind, typically
                           // read-only access
    echo "Bind result is " . $r . "<br />";

    echo "Searching for (sn=S*) ...";
    // Search surname entry
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*");
    echo "Search result is " . $sr . "<br />";

    echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";

    echo "Getting entries ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Data for " . $info["count"] . " items returned:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn is: " . $info[$i]["dn"] . "<br />";
        echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
        echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
    }

    echo "Closing connection";
    ldap_close($ds);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}
?>
范例
LDAP 函数
范例


LDAP 函数

Table of Contents

  • ldap_8859_to_t61 — Translate 8859 characters to t61 characters
  • ldap_add — Add entries to LDAP directory
  • ldap_bind — Bind to LDAP directory
  • ldap_close — 别名 ldap_unbind
  • ldap_compare — Compare value of attribute found in entry specified with DN
  • ldap_connect — Connect to an LDAP server
  • ldap_count_entries — Count the number of entries in a search
  • ldap_delete — Delete an entry from a directory
  • ldap_dn2ufn — Convert DN to User Friendly Naming format
  • ldap_err2str — Convert LDAP error number into string error message
  • ldap_errno — Return the LDAP error number of the last LDAP command
  • ldap_error — Return the LDAP error message of the last LDAP command
  • ldap_explode_dn — Splits DN into its component parts
  • ldap_first_attribute — Return first attribute
  • ldap_first_entry — Return first result id
  • ldap_first_reference — Return first reference
  • ldap_free_result — Free result memory
  • ldap_get_attributes — Get attributes from a search result entry
  • ldap_get_dn — Get the DN of a result entry
  • ldap_get_entries — Get all result entries
  • ldap_get_option — Get the current value for given option
  • ldap_get_values_len — Get all binary values from a result entry
  • ldap_get_values — Get all values from a result entry
  • ldap_list — Single-level search
  • ldap_mod_add — Add attribute values to current attributes
  • ldap_mod_del — Delete attribute values from current attributes
  • ldap_mod_replace — Replace attribute values with new ones
  • ldap_modify — Modify an LDAP entry
  • ldap_next_attribute — Get the next attribute in result
  • ldap_next_entry — Get next result entry
  • ldap_next_reference — Get next reference
  • ldap_parse_reference — Extract information from reference entry
  • ldap_parse_result — Extract information from result
  • ldap_read — Read an entry
  • ldap_rename — Modify the name of an entry
  • ldap_sasl_bind — Bind to LDAP directory using SASL
  • ldap_search — Search LDAP tree
  • ldap_set_option — Set the value of the given option
  • ldap_set_rebind_proc — Set a callback function to do re-binds on referral chasing
  • ldap_sort — Sort LDAP result entries
  • ldap_start_tls — Start TLS
  • ldap_t61_to_8859 — Translate t61 characters to 8859 characters
  • ldap_unbind — Unbind from LDAP directory
LDAP search example
ldap_8859_to_t61
LDAP


Translate 8859 characters to t61 characters

LDAP 函数
ldap_add
LDAP 函数
PHP 手册

ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61 — Translate 8859 characters to t61 characters

说明

string ldap_8859_to_t61 ( string $value )

Translate ISO-8859 characters to t61 characters.

This function is useful if you have to talk to a legacy LDAPv2 server.

参数

value

The text to be translated.

返回值

Return the t61 translation of value .

参见

  • ldap_t61_to_8859() - Translate t61 characters to 8859 characters

LDAP 函数
ldap_add
LDAP 函数


Add entries to LDAP directory

ldap_8859_to_t61
ldap_bind
LDAP 函数
PHP 手册

ldap_add

(PHP 4, PHP 5)

ldap_add — Add entries to LDAP directory

说明

bool ldap_add ( resource $link_identifier , string $dn , array $entry )

Add entries in the LDAP directory.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

An array that specifies the information about the entry. The values in the entries are indexed by individual attributes. In case of multiple values for an attribute, they are indexed using integers starting with 0.

<?php
$entree["attribut1"] = "value";
$entree["attribut2"][0] = "value1";
$entree["attribut2"][1] = "value2";
?>

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Complete example with authenticated bind

<?php
$ds = ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $r = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // prepare data
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
    $info["mail"] = "jonj@example.com";
    $info["objectclass"] = "person";

    // add data to directory
    $r = ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • ldap_delete() - Delete an entry from a directory

ldap_8859_to_t61
ldap_bind
LDAP 函数


Bind to LDAP directory

ldap_add
ldap_close
LDAP 函数
PHP 手册

ldap_bind

(PHP 4, PHP 5)

ldap_bind — Bind to LDAP directory

说明

bool ldap_bind ( resource $link_identifier [, string $bind_rdn=NULL [, string $bind_password=NULL ]] )

Binds to the LDAP directory with specified RDN and password.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

bind_rdn

bind_password

If bind_rdn and bind_password are not specified, an anonymous bind is attempted.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Using LDAP Bind

<?php

// using ldap bind
$ldaprdn  = 'uname';     // ldap rdn or dn
$ldappass = 'password';  // associated password

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }

}

?>

Example #2 Using LDAP Bind Anonymously

<?php

//using ldap bind anonymously

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding anonymously
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "LDAP bind anonymous successful...";
    } else {
        echo "LDAP bind anonymous failed...";
    }

}

?>

参见

  • ldap_unbind() - Unbind from LDAP directory

ldap_add
ldap_close
LDAP 函数


别名 ldap_unbind

ldap_bind
ldap_compare
LDAP 函数
PHP 手册

ldap_close

(PHP 4, PHP 5)

ldap_close — 别名 ldap_unbind()

说明

本函数是该函数的别名： ldap_unbind().

ldap_bind
ldap_compare
LDAP 函数


Compare value of attribute found in entry specified with DN

ldap_close
ldap_connect
LDAP 函数
PHP 手册

ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare — Compare value of attribute found in entry specified with DN

说明

mixed ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value )

Compare value of attribute with value of same attribute in an LDAP directory entry.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

attribute

The attribute name.

value

The compared value.

返回值

Returns TRUE if value matches otherwise returns FALSE. Returns -1 on error.

范例

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Example #1 Complete example of password check

<?php

$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {

    // bind
    if (ldap_bind($ds)) {

        // prepare data
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // compare value
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Password correct.";
        } elseif ($r === false) {
            echo "Wrong guess! Password incorrect.";
        }

    } else {
        echo "Unable to bind to LDAP server.";
    }

    ldap_close($ds);

} else {
    echo "Unable to connect to LDAP server.";
}
?>

注释

Warning

ldap_compare() can NOT be used to compare BINARY values!

ldap_close
ldap_connect
LDAP 函数


Connect to an LDAP server

ldap_compare
ldap_count_entries
LDAP 函数
PHP 手册

ldap_connect

(PHP 4, PHP 5)

ldap_connect — Connect to an LDAP server

说明

resource ldap_connect ([ string $hostname=NULL [, int $port=389 ]] )

Establishes a connection to a LDAP server on a specified hostname and port .

参数

hostname

If you are using OpenLDAP 2.x.x you can specify a URL instead of the hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL support, configure PHP with SSL, and set this parameter as ldaps://hostname/.

port

The port to connect to. Not used when using URLs. Defaults to 389.

返回值

Returns a positive LDAP link identifier on success, or FALSE on error. When OpenLDAP 2.x.x is used, ldap_connect() will always return a resource as it does not actually connect but just initializes the connecting parameters. The actual connect happens with the next calls to ldap_* funcs, usually with ldap_bind().

If no arguments are specified then the link identifier of the already opened link will be returned.

更新日志

版本 | 说明
4.0.4 | URL and SSL support was added.

范例

Example #1 Example of connecting to LDAP server.

<?php

// LDAP variables
$ldaphost = "ldap.example.com";  // your ldap servers
$ldapport = 389;                 // your ldap server's port number

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");

?>

Example #2 Example of connecting securely to LDAP server.

<?php

// make sure your host is the correct one
// that you issued your secure certificate to
$ldaphost = "ldaps://ldap.example.com/";

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Could not connect to {$ldaphost}");

?>

参见

  • ldap_bind() - Bind to LDAP directory

ldap_compare
ldap_count_entries
LDAP 函数


Count the number of entries in a search

ldap_connect
ldap_delete
LDAP 函数
PHP 手册

ldap_count_entries

(PHP 4, PHP 5)

ldap_count_entries — Count the number of entries in a search

说明

int ldap_count_entries ( resource $link_identifier , resource $result_identifier )

Returns the number of entries stored in the result of previous search operations.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_identifier

The internal LDAP result.

返回值

Returns number of entries in the result or FALSE on error.

ldap_connect
ldap_delete
LDAP 函数


Delete an entry from a directory

ldap_count_entries
ldap_dn2ufn
LDAP 函数
PHP 手册

ldap_delete

(PHP 4, PHP 5)

ldap_delete — Delete an entry from a directory

说明

bool ldap_delete ( resource $link_identifier , string $dn )

Deletes a particular entry in LDAP directory.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ldap_add() - Add entries to LDAP directory

ldap_count_entries
ldap_dn2ufn
LDAP 函数


Convert DN to User Friendly Naming format

ldap_delete
ldap_err2str
LDAP 函数
PHP 手册

ldap_dn2ufn

(PHP 4, PHP 5)

ldap_dn2ufn — Convert DN to User Friendly Naming format

说明

string ldap_dn2ufn ( string $dn )

Turns the specified dn , into a more user-friendly form, stripping off type names.

参数

dn

The distinguished name of an LDAP entity.

返回值

Returns the user friendly name.

ldap_delete
ldap_err2str
LDAP 函数


Convert LDAP error number into string error message

ldap_dn2ufn
ldap_errno
LDAP 函数
PHP 手册

ldap_err2str

(PHP 4, PHP 5)

ldap_err2str — Convert LDAP error number into string error message

说明

string ldap_err2str ( int $errno )

Returns the string error message explaining the error number errno . While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

参数

errno

The error number.

返回值

Returns the error message, as a string.

范例

Example #1 Enumerating all LDAP error messages

<?php
  for ($i=0; $i<100; $i++) {
    printf("Error $i: %s<br />\n", ldap_err2str($i));
  }
?>

参见

  • ldap_errno() - Return the LDAP error number of the last LDAP command
  • ldap_error() - Return the LDAP error message of the last LDAP command

ldap_dn2ufn
ldap_errno
LDAP 函数


Return the LDAP error number of the last LDAP command

ldap_err2str
ldap_error
LDAP 函数
PHP 手册

ldap_errno

(PHP 4, PHP 5)

ldap_errno — Return the LDAP error number of the last LDAP command

说明

int ldap_errno ( resource $link_identifier )

Returns the standardized error number returned by the last LDAP command. This number can be converted into a textual error message using ldap_err2str().

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

返回值

Return the LDAP error number of the last LDAP command for this link.

范例

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

Example #1 Generating and catching an error

<?php
// This example contains an error, which we will catch.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// syntax error in filter expression (errno 87),
// must be "objectclass=*" to work.
$res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
    echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
    echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
    die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " matching entries.<br />\n";
?>

参见

  • ldap_err2str() - Convert LDAP error number into string error message
  • ldap_error() - Return the LDAP error message of the last LDAP command

ldap_err2str
ldap_error
LDAP 函数


Return the LDAP error message of the last LDAP command

ldap_errno
ldap_explode_dn
LDAP 函数
PHP 手册

ldap_error

(PHP 4, PHP 5)

ldap_error — Return the LDAP error message of the last LDAP command

说明

string ldap_error ( resource $link_identifier )

Returns the string error message explaining the error generated by the last LDAP command for the given link_identifier . While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

返回值

Returns string error message.

参见

  • ldap_err2str() - Convert LDAP error number into string error message
  • ldap_errno() - Return the LDAP error number of the last LDAP command

ldap_errno
ldap_explode_dn
LDAP 函数


Splits DN into its component parts

ldap_error
ldap_first_attribute
LDAP 函数
PHP 手册

ldap_explode_dn

(PHP 4, PHP 5)

ldap_explode_dn — Splits DN into its component parts

说明

array ldap_explode_dn ( string $dn , int $with_attrib )

Splits the DN returned by ldap_get_dn() and breaks it up into its component parts. Each part is known as Relative Distinguished Name, or RDN.

参数

dn

The distinguished name of an LDAP entity.

with_attrib

Used to request if the RDNs are returned with only values or their attributes as well. To get RDNs with the attributes (i.e. in attribute=value format) set with_attrib to 0 and to get only values set it to 1.

返回值

Returns an array of all DN components. The first element in this array has count key and represents the number of returned values, next elements are numerically indexed DN components.

ldap_error
ldap_first_attribute
LDAP 函数


Return first attribute

ldap_explode_dn
ldap_first_entry
LDAP 函数
PHP 手册

ldap_first_attribute

(PHP 4, PHP 5)

ldap_first_attribute — Return first attribute

说明

string ldap_first_attribute ( resource $link_identifier , resource $result_entry_identifier )

Gets the first attribute in the given entry. Remaining attributes are retrieved by calling ldap_next_attribute() successively.

Similar to reading entries, attributes are also read one by one from a particular entry.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

ber_identifier

ber_identifier is the identifier to internal memory location pointer. It is passed by reference. The same ber_identifier is passed to ldap_next_attribute() , which modifies that pointer.

Note: This parameter is no longer used as this is now handled automatically by PHP. For backwards compatibility PHP will not throw an error if this parameter is passed.

返回值

Returns the first attribute in the entry on success and FALSE on error.

更新日志

版本 | 说明
5.2.4 | The ber_identifier was removed. This is now handled automatically by PHP.

参见

  • ldap_next_attribute() - Get the next attribute in result
  • ldap_get_attributes() - Get attributes from a search result entry

ldap_explode_dn
ldap_first_entry
LDAP 函数


Return first result id

ldap_first_attribute
ldap_first_reference
LDAP 函数
PHP 手册

ldap_first_entry

(PHP 4, PHP 5)

ldap_first_entry — Return first result id

说明

resource ldap_first_entry ( resource $link_identifier , resource $result_identifier )

Returns the entry identifier for first entry in the result. This entry identifier is then supplied to ldap_next_entry() routine to get successive entries from the result.

Entries in the LDAP result are read sequentially using the ldap_first_entry() and ldap_next_entry() functions.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_identifier

返回值

Returns the result entry identifier for the first entry on success and FALSE on error.

参见

  • ldap_get_entries() - Get all result entries

ldap_first_attribute
ldap_first_reference
LDAP 函数


Return first reference

ldap_first_entry
ldap_free_result
LDAP 函数
PHP 手册

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_reference — Return first reference

说明

resource ldap_first_reference ( resource $link , resource $result )
Warning

本函数暂无文档，仅有参数列表。

ldap_first_entry
ldap_free_result
LDAP 函数


Free result memory

ldap_first_reference
ldap_get_attributes
LDAP 函数
PHP 手册

ldap_free_result

(PHP 4, PHP 5)

ldap_free_result — Free result memory

说明

bool ldap_free_result ( resource $result_identifier )

Frees up the memory allocated internally to store the result. All result memory will be automatically freed when the script terminates.

Typically all the memory allocated for the LDAP result gets freed at the end of the script. In case the script is making successive searches which return large result sets, ldap_free_result() could be called to keep the runtime memory usage by the script low.

参数

result_identifier

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

ldap_first_reference
ldap_get_attributes
LDAP 函数


Get attributes from a search result entry

ldap_free_result
ldap_get_dn
LDAP 函数
PHP 手册

ldap_get_attributes

(PHP 4, PHP 5)

ldap_get_attributes — Get attributes from a search result entry

说明

array ldap_get_attributes ( resource $link_identifier , resource $result_entry_identifier )

Reads attributes and values from an entry in the search result.

Having located a specific entry in the directory, you can find out what information is held for that entry by using this call. You would use this call for an application which "browses" directory entries and/or where you do not know the structure of the directory entries. In many applications you will be searching for a specific attribute such as an email address or a surname, and won't care what other data is held.

return_value["count"] = number of attributes in the entry
return_value[0] = first attribute
return_value[n] = nth attribute

return_value["attribute"]["count"] = number of values for attribute
return_value["attribute"][0] = first value of the attribute
return_value["attribute"][i] = (i+1)th value of the attribute

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

返回值

Returns a complete entry information in a multi-dimensional array on success and FALSE on error.

范例

Example #1 Show the list of attributes held for a particular directory entry

<?php
// $ds is the link identifier for the directory

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributes held for this entry:<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

参见

  • ldap_first_attribute() - Return first attribute
  • ldap_next_attribute() - Get the next attribute in result

ldap_free_result
ldap_get_dn
LDAP 函数


Get the DN of a result entry

ldap_get_attributes
ldap_get_entries
LDAP 函数
PHP 手册

ldap_get_dn

(PHP 4, PHP 5)

ldap_get_dn — Get the DN of a result entry

说明

string ldap_get_dn ( resource $link_identifier , resource $result_entry_identifier )

Finds out the DN of an entry in the result.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

返回值

Returns the DN of the result entry and FALSE on error.

ldap_get_attributes
ldap_get_entries
LDAP 函数


Get all result entries

ldap_get_dn
ldap_get_option
LDAP 函数
PHP 手册

ldap_get_entries

(PHP 4, PHP 5)

ldap_get_entries — Get all result entries

说明

array ldap_get_entries ( resource $link_identifier , resource $result_identifier )

Reads multiple entries from the given result, and then reading the attributes and multiple values.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_identifier

返回值

Returns a complete result information in a multi-dimensional array on success and FALSE on error.

The structure of the array is as follows. The attribute index is converted to lowercase. (Attributes are case-insensitive for directory servers, but not when used as array indices.)

return_value["count"] = number of entries in the result
return_value[0] : refers to the details of first entry

return_value[i]["dn"] =  DN of the ith entry in the result

return_value[i]["count"] = number of attributes in ith entry
return_value[i][j] = jth attribute in the ith entry in the result

return_value[i]["attribute"]["count"] = number of values for
                                        attribute in ith entry
return_value[i]["attribute"][j] = jth value of attribute in ith entry

参见

  • ldap_first_entry() - Return first result id
  • ldap_next_entry() - Get next result entry

ldap_get_dn
ldap_get_option
LDAP 函数


Get the current value for given option

ldap_get_entries
ldap_get_values_len
LDAP 函数
PHP 手册

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_option — Get the current value for given option

说明

bool ldap_get_option ( resource $link_identifier , int $option , mixed &$retval )

Sets retval to the value of the specified option.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

option

The parameter option can be one of:

Option | Type
LDAP_OPT_DEREF | integer
LDAP_OPT_SIZELIMIT | integer
LDAP_OPT_TIMELIMIT | integer
LDAP_OPT_NETWORK_TIMEOUT | integer
LDAP_OPT_PROTOCOL_VERSION | integer
LDAP_OPT_ERROR_NUMBER | integer
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array

retval

This will be set to the option value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Check protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Using protocol version $version\n";
} else {
    echo "Unable to determine protocol version\n";
}
?>

注释

Note: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

参见

  • ldap_set_option() - Set the value of the given option

ldap_get_entries
ldap_get_values_len
LDAP 函数


Get all binary values from a result entry

ldap_get_option
ldap_get_values
LDAP 函数
PHP 手册

ldap_get_values_len

(PHP 4, PHP 5)

ldap_get_values_len — Get all binary values from a result entry

说明

array ldap_get_values_len ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Reads all the values of the attribute in the entry in the result.

This function is used exactly like ldap_get_values() except that it handles binary data and not string data.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

attribute

返回值

Returns an array of values for the attribute on success and FALSE on error. Individual values are accessed by integer index in the array. The first index is 0. The number of values can be found by indexing "count" in the resultant array.

参见

  • ldap_get_values() - Get all values from a result entry

ldap_get_option
ldap_get_values
LDAP 函数


Get all values from a result entry

ldap_get_values_len
ldap_list
LDAP 函数
PHP 手册

ldap_get_values

(PHP 4, PHP 5)

ldap_get_values — Get all values from a result entry

说明

array ldap_get_values ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Reads all the values of the attribute in the entry in the result.

This call needs a result_entry_identifier , so needs to be preceded by one of the ldap search calls and one of the calls to get an individual entry.

You application will either be hard coded to look for certain attributes (such as "surname" or "mail") or you will have to use the ldap_get_attributes() call to work out what attributes exist for a given entry.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

attribute

返回值

Returns an array of values for the attribute on success and FALSE on error. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

LDAP allows more than one entry for an attribute, so it can, for example, store a number of email addresses for one person's directory entry all labeled with the attribute "mail"

    return_value["count"] = number of values for attribute
    return_value[0] = first value of attribute
    return_value[i] = ith value of attribute

范例

Example #1 List all values of the "mail" attribute for a directory entry

<?php
// $ds is a valid link identifier for a directory server

// $sr is a valid search result from a prior call to
//     one of the ldap directory search calls

// $entry is a valid entry identifier from a prior call to
//        one of the calls that returns a directory entry

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " email addresses for this entry.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

参见

  • ldap_get_values_len() - Get all binary values from a result entry

ldap_get_values_len
ldap_list
LDAP 函数


Single-level search

ldap_get_values
ldap_mod_add
LDAP 函数
PHP 手册

ldap_list

(PHP 4, PHP 5)

ldap_list — Single-level search

说明

resource ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Performs the search for a specified filter on the directory with the scope LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL means that the search should only return information that is at the level immediately below the base_dn given in the call. (Equivalent to typing "ls" and getting a list of files and folders in the current working directory.)

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

base_dn

The base DN for the directory.

filter

attributes

An array of the required attributes, e.g. array("mail", "sn", "cn"). Note that the "dn" is always returned irrespective of which attributes types are requested.

Using this parameter is much more efficient than the default action (which is to return all attributes and their associated values). The use of this parameter should therefore be considered good practice.

attrsonly

Should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

sizelimit

Enables you to limit the count of entries fetched. Setting this to 0 means no limit.

Note: This parameter can NOT override server-side preset sizelimit. You can set it lower though.
Some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This also occurs if you use this parameter to limit the count of fetched entries.

timelimit

Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.

Note: This parameter can NOT override server-side preset timelimit. You can set it lower though.

deref

Specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.
  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.
  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.
  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

返回值

Returns a search result identifier or FALSE on error.

更新日志

版本 | 说明
4.0.5 | Parallel searches support was added. See ldap_search() for details.
4.0.2 | The attrsonly , sizelimit , timelimit and deref were added.

范例

Example #1 Produce a list of all organizational units of an organization

// $ds is a valid link identifier for a directory server

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr=ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i<$info["count"]; $i++) {
    echo $info[$i]["ou"][0] ;
}

参见

  • ldap_search() - Search LDAP tree

ldap_get_values
ldap_mod_add
LDAP 函数


Add attribute values to current attributes

ldap_list
ldap_mod_del
LDAP 函数
PHP 手册

ldap_mod_add

(PHP 4, PHP 5)

ldap_mod_add — Add attribute values to current attributes

说明

bool ldap_mod_add ( resource $link_identifier , string $dn , array $entry )

Adds one or more attributes to the specified dn . It performs the modification at the attribute level as opposed to the object level. Object-level additions are done by the ldap_add() function.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数可安全用于二进制对象。

参见

  • ldap_mod_del() - Delete attribute values from current attributes
  • ldap_mod_replace() - Replace attribute values with new ones

ldap_list
ldap_mod_del
LDAP 函数


Delete attribute values from current attributes

ldap_mod_add
ldap_mod_replace
LDAP 函数
PHP 手册

ldap_mod_del

(PHP 4, PHP 5)

ldap_mod_del — Delete attribute values from current attributes

说明

bool ldap_mod_del ( resource $link_identifier , string $dn , array $entry )

Removes one or more attributes from the specified dn . It performs the modification at the attribute level as opposed to the object level. Object-level deletions are done by the ldap_delete() function.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ldap_mod_add() - Add attribute values to current attributes
  • ldap_mod_replace() - Replace attribute values with new ones

ldap_mod_add
ldap_mod_replace
LDAP 函数


Replace attribute values with new ones

ldap_mod_del
ldap_modify
LDAP 函数
PHP 手册

ldap_mod_replace

(PHP 4, PHP 5)

ldap_mod_replace — Replace attribute values with new ones

说明

bool ldap_mod_replace ( resource $link_identifier , string $dn , array $entry )

Replaces one or more attributes from the specified dn . It performs the modification at the attribute level as opposed to the object level. Object-level modifications are done by the ldap_modify() function.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数可安全用于二进制对象。

参见

  • ldap_mod_del() - Delete attribute values from current attributes
  • ldap_mod_add() - Add attribute values to current attributes

ldap_mod_del
ldap_modify
LDAP 函数


Modify an LDAP entry

ldap_mod_replace
ldap_next_attribute
LDAP 函数
PHP 手册

ldap_modify

(PHP 4, PHP 5)

ldap_modify — Modify an LDAP entry

说明

bool ldap_modify ( resource $link_identifier , string $dn , array $entry )

Modify the existing entries in the LDAP directory. The structure of the entry is same as in ldap_add().

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 本函数可安全用于二进制对象。

参见

  • ldap_rename() - Modify the name of an entry

ldap_mod_replace
ldap_next_attribute
LDAP 函数


Get the next attribute in result

ldap_modify
ldap_next_entry
LDAP 函数
PHP 手册

ldap_next_attribute

(PHP 4, PHP 5)

ldap_next_attribute — Get the next attribute in result

说明

string ldap_next_attribute ( resource $link_identifier , resource $result_entry_identifier )

Retrieves the attributes in an entry. The first call to ldap_next_attribute() is made with the result_entry_identifier returned from ldap_first_attribute().

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

ber_identifier

The internal state of the pointer is maintained by this parameter.

Note: This parameter is no longer used as this is now handled automatically by PHP. For backwards compatibility PHP will not throw an error if this parameter is passed.

返回值

Returns the next attribute in an entry on success and FALSE on error.

更新日志

版本 | 说明
5.2.4 | The ber_identifier was removed. This is now handled automatically by PHP.

参见

  • ldap_get_attributes() - Get attributes from a search result entry

ldap_modify
ldap_next_entry
LDAP 函数


Get next result entry

ldap_next_attribute
ldap_next_reference
LDAP 函数
PHP 手册

ldap_next_entry

(PHP 4, PHP 5)

ldap_next_entry — Get next result entry

说明

resource ldap_next_entry ( resource $link_identifier , resource $result_entry_identifier )

Retrieve the entries stored in the result. Successive calls to the ldap_next_entry() return entries one by one till there are no more entries. The first call to ldap_next_entry() is made after the call to ldap_first_entry() with the result_entry_identifier as returned from the ldap_first_entry().

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

result_entry_identifier

返回值

Returns entry identifier for the next entry in the result whose entries are being read starting with ldap_first_entry(). If there are no more entries in the result then it returns FALSE.

参见

  • ldap_get_entries() - Get all result entries

ldap_next_attribute
ldap_next_reference
LDAP 函数


Get next reference

ldap_next_entry
ldap_parse_reference
LDAP 函数
PHP 手册

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_reference — Get next reference

说明

resource ldap_next_reference ( resource $link , resource $entry )
Warning

本函数暂无文档，仅有参数列表。

ldap_next_entry
ldap_parse_reference
LDAP 函数


Extract information from reference entry

ldap_next_reference
ldap_parse_result
LDAP 函数
PHP 手册

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_reference — Extract information from reference entry

说明

bool ldap_parse_reference ( resource $link , resource $entry , array &$referrals )
Warning

本函数暂无文档，仅有参数列表。

ldap_next_reference
ldap_parse_result
LDAP 函数


Extract information from result

ldap_parse_reference
ldap_read
LDAP 函数
PHP 手册

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_result — Extract information from result

说明

bool ldap_parse_result ( resource $link , resource $result , int &$errcode [, string &$matcheddn [, string &$errmsg [, array &$referrals ]]] )
Warning

本函数暂无文档，仅有参数列表。

ldap_parse_reference
ldap_read
LDAP 函数


Read an entry

ldap_parse_result
ldap_rename
LDAP 函数
PHP 手册

ldap_read

(PHP 4, PHP 5)

ldap_read — Read an entry

说明

resource ldap_read ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Performs the search for a specified filter on the directory with the scope LDAP_SCOPE_BASE. So it is equivalent to reading an entry from the directory.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

base_dn

The base DN for the directory.

filter

An empty filter is not allowed. If you want to retrieve absolutely all information for this entry, use a filter of objectClass=*. If you know which entry types are used on the directory server, you might use an appropriate filter such as objectClass=inetOrgPerson.

attributes

An array of the required attributes, e.g. array("mail", "sn", "cn"). Note that the "dn" is always returned irrespective of which attributes types are requested.

Using this parameter is much more efficient than the default action (which is to return all attributes and their associated values). The use of this parameter should therefore be considered good practice.

attrsonly

Should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

sizelimit

Enables you to limit the count of entries fetched. Setting this to 0 means no limit.

Note: This parameter can NOT override server-side preset sizelimit. You can set it lower though.
Some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This also occurs if you use this parameter to limit the count of fetched entries.

timelimit

Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.

Note: This parameter can NOT override server-side preset timelimit. You can set it lower though.

deref

Specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.
  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.
  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.
  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

返回值

Returns a search result identifier or FALSE on error.

更新日志

版本 | 说明
4.0.5 | Parallel searches support was added. See ldap_search() for details.
4.0.2 | The attrsonly , sizelimit , timelimit and deref were added.

ldap_parse_result
ldap_rename
LDAP 函数


Modify the name of an entry

ldap_read
ldap_sasl_bind
LDAP 函数
PHP 手册

ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_rename — Modify the name of an entry

说明

bool ldap_rename ( resource $link_identifier , string $dn , string $newrdn , string $newparent , bool $deleteoldrdn )

The entry specified by dn is renamed/moved.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

newrdn

The new RDN.

newparent

The new parent/superior entry.

deleteoldrdn

If TRUE the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: This function currently only works with LDAPv3. You may have to use ldap_set_option() prior to binding to use LDAPv3. This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

参见

  • ldap_modify() - Modify an LDAP entry

ldap_read
ldap_sasl_bind
LDAP 函数


Bind to LDAP directory using SASL

ldap_rename
ldap_search
LDAP 函数
PHP 手册

ldap_sasl_bind

(PHP 5)

ldap_sasl_bind — Bind to LDAP directory using SASL

说明

bool ldap_sasl_bind ( resource $link [, string $binddn=NULL [, string $password=NULL [, string $sasl_mech=NULL [, string $sasl_realm=NULL [, string $sasl_authc_id=NULL [, string $sasl_authz_id=NULL [, string $props=NULL ]]]]]]] )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: Requirement
ldap_sasl_bind() requires SASL support (sasl.h). Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined.

ldap_rename
ldap_search
LDAP 函数


Search LDAP tree

ldap_sasl_bind
ldap_set_option
LDAP 函数
PHP 手册

ldap_search

(PHP 4, PHP 5)

ldap_search — Search LDAP tree

说明

resource ldap_search ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Performs the search for a specified filter on the directory with the scope of LDAP_SCOPE_SUBTREE. This is equivalent to searching the entire directory.

From 4.0.5 on it's also possible to do parallel searches. To do this you use an array of link identifiers, rather than a single identifier, as the first argument. If you don't want the same base DN and the same filter for all the searches, you can also use an array of base DNs and/or an array of filters. Those arrays must be of the same size as the link identifier array since the first entries of the arrays are used for one search, the second entries are used for another, and so on. When doing parallel searches an array of search result identifiers is returned, except in case of error, then the entry corresponding to the search will be FALSE. This is very much like the value normally returned, except that a result identifier is always returned when a search was made. There are some rare cases where the normal search returns FALSE while the parallel search returns an identifier.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

base_dn

The base DN for the directory.

filter

The search filter can be simple or advanced, using boolean operators in the format described in the LDAP documentation (see the » Netscape Directory SDK for full information on filters).

attributes

An array of the required attributes, e.g. array("mail", "sn", "cn"). Note that the "dn" is always returned irrespective of which attributes types are requested.

Using this parameter is much more efficient than the default action (which is to return all attributes and their associated values). The use of this parameter should therefore be considered good practice.

attrsonly

Should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

sizelimit

Enables you to limit the count of entries fetched. Setting this to 0 means no limit.

Note: This parameter can NOT override server-side preset sizelimit. You can set it lower though.
Some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This also occurs if you use this parameter to limit the count of fetched entries.

timelimit

Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.

Note: This parameter can NOT override server-side preset timelimit. You can set it lower though.

deref

Specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.
  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.
  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.
  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

返回值

Returns a search result identifier or FALSE on error.

更新日志

版本 | 说明
4.0.5 | Parallel searches support was added.
4.0.2 | The attrsonly , sizelimit , timelimit and deref were added.

范例

The example below retrieves the organizational unit, surname, given name and email address for all people in "My Company" where the surname or given name contains the substring $person. This example uses a boolean filter to tell the server to look for information in more than one attribute.

Example #1 LDAP search

<?php
// $ds is a valid link identifier for a directory server

// $person is all or part of a person's name, eg "Jo"

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>

ldap_sasl_bind
ldap_set_option
LDAP 函数


Set the value of the given option

ldap_search
ldap_set_rebind_proc
LDAP 函数
PHP 手册

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option — Set the value of the given option

说明

bool ldap_set_option ( resource $link_identifier , int $option , mixed $newval )

Sets the value of the specified option to be newval .

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

option

The parameter option can be one of:

Option | Type
LDAP_OPT_DEREF | integer
LDAP_OPT_SIZELIMIT | integer
LDAP_OPT_TIMELIMIT | integer
LDAP_OPT_NETWORK_TIMEOUT | integer
LDAP_OPT_PROTOCOL_VERSION | integer
LDAP_OPT_ERROR_NUMBER | integer
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array

LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of controls, this means that the value must be an array of controls. A control consists of an oid identifying the control, an optional value, and an optional flag for criticality. In PHP a control is given by an array containing an element with the key oid and string value, and two optional elements. The optional elements are key value with string value and key iscritical with boolean value. iscritical defaults to FALSE if not supplied. See » draft-ietf-ldapext-ldap-c-api-xx.txt for details. See also the second example below.

newval

The new value for the specified option .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Set protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Using LDAPv3";
} else {
    echo "Failed to set protocol version to 3";
}
?>

Example #2 Set server controls

<?php
// $ds is a valid link identifier for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
    echo "Failed to set server controls";
}
?>

注释

Note: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

参见

  • ldap_get_option() - Get the current value for given option

ldap_search
ldap_set_rebind_proc
LDAP 函数


Set a callback function to do re-binds on referral chasing

ldap_set_option
ldap_sort
LDAP 函数
PHP 手册

ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_proc — Set a callback function to do re-binds on referral chasing

说明

bool ldap_set_rebind_proc ( resource $link , callback $callback )
Warning

本函数暂无文档，仅有参数列表。

ldap_set_option
ldap_sort
LDAP 函数


Sort LDAP result entries

ldap_set_rebind_proc
ldap_start_tls
LDAP 函数
PHP 手册

ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sort — Sort LDAP result entries

说明

bool ldap_sort ( resource $link , resource $result , string $sortfilter )
Warning

本函数暂无文档，仅有参数列表。

ldap_set_rebind_proc
ldap_start_tls
LDAP 函数


Start TLS

ldap_sort
ldap_t61_to_8859
LDAP 函数
PHP 手册

ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tls — Start TLS

说明

bool ldap_start_tls ( resource $link )
Warning

本函数暂无文档，仅有参数列表。

ldap_sort
ldap_t61_to_8859
LDAP 函数


Translate t61 characters to 8859 characters

ldap_start_tls
ldap_unbind
LDAP 函数
PHP 手册

ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859 — Translate t61 characters to 8859 characters

说明

string ldap_t61_to_8859 ( string $value )
Warning

本函数暂无文档，仅有参数列表。

ldap_start_tls
ldap_unbind
LDAP 函数


Unbind from LDAP directory

ldap_t61_to_8859
Lotus Notes
LDAP 函数
PHP 手册

ldap_unbind

(PHP 4, PHP 5)

ldap_unbind — Unbind from LDAP directory

说明

bool ldap_unbind ( resource $link_identifier )

Unbinds from the LDAP directory.

参数

link_identifier

An LDAP link identifier, returned by ldap_connect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • ldap_bind() - Bind to LDAP directory

ldap_t61_to_8859
Lotus Notes
LDAP 函数


Lotus Notes

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Lotus Notes 函数
    • notes_body — Open the message msg_number in the specified mailbox on the specified server (leave serv
    • notes_copy_db — Copy a Lotus Notes database
    • notes_create_db — Create a Lotus Notes database
    • notes_create_note — Create a note using form form_name
    • notes_drop_db — Drop a Lotus Notes database
    • notes_find_note — Returns a note id found in database_name
    • notes_header_info — Open the message msg_number in the specified mailbox on the specified server (leave serv
    • notes_list_msgs — Returns the notes from a selected database_name
    • notes_mark_read — Mark a note_id as read for the User user_name
    • notes_mark_unread — Mark a note_id as unread for the User user_name
    • notes_nav_create — Create a navigator name, in database_name
    • notes_search — Find notes that match keywords in database_name
    • notes_unread — Returns the unread note id's for the current User user_name
    • notes_version — Get the version Lotus Notes
ldap_unbind
简介
其它服务


简介

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0. 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/notes.

Warning

This extension is currently not supported, thus looking for a maintainer.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Lotus Notes
安装/配置
Lotus Notes


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Lotus Notes


预定义常量

本扩展模块未定义任何常量。

资源类型
Lotus Notes 函数
Lotus Notes


Lotus Notes 函数

Table of Contents

  • notes_body — Open the message msg_number in the specified mailbox on the specified server (leave serv
  • notes_copy_db — Copy a Lotus Notes database
  • notes_create_db — Create a Lotus Notes database
  • notes_create_note — Create a note using form form_name
  • notes_drop_db — Drop a Lotus Notes database
  • notes_find_note — Returns a note id found in database_name
  • notes_header_info — Open the message msg_number in the specified mailbox on the specified server (leave serv
  • notes_list_msgs — Returns the notes from a selected database_name
  • notes_mark_read — Mark a note_id as read for the User user_name
  • notes_mark_unread — Mark a note_id as unread for the User user_name
  • notes_nav_create — Create a navigator name, in database_name
  • notes_search — Find notes that match keywords in database_name
  • notes_unread — Returns the unread note id's for the current User user_name
  • notes_version — Get the version Lotus Notes
预定义常量
notes_body
Lotus Notes


Open the message msg_number in the specified mailbox on the specified server (leave serv

Lotus Notes 函数
notes_copy_db
Lotus Notes 函数
PHP 手册

notes_body

(PHP 4 >= 4.0.5)

notes_body — Open the message msg_number in the specified mailbox on the specified server (leave serv

说明

array notes_body ( string $server , string $mailbox , int $msg_number )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

Lotus Notes 函数
notes_copy_db
Lotus Notes 函数


Copy a Lotus Notes database

notes_body
notes_create_db
Lotus Notes 函数
PHP 手册

notes_copy_db

(PHP 4 >= 4.0.5)

notes_copy_db — Copy a Lotus Notes database

说明

bool notes_copy_db ( string $from_database_name , string $to_database_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_body
notes_create_db
Lotus Notes 函数


Create a Lotus Notes database

notes_copy_db
notes_create_note
Lotus Notes 函数
PHP 手册

notes_create_db

(PHP 4 >= 4.0.5)

notes_create_db — Create a Lotus Notes database

说明

bool notes_create_db ( string $database_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_copy_db
notes_create_note
Lotus Notes 函数


Create a note using form form_name

notes_create_db
notes_drop_db
Lotus Notes 函数
PHP 手册

notes_create_note

(PHP 4 >= 4.0.5)

notes_create_note — Create a note using form form_name

说明

bool notes_create_note ( string $database_name , string $form_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_create_db
notes_drop_db
Lotus Notes 函数


Drop a Lotus Notes database

notes_create_note
notes_find_note
Lotus Notes 函数
PHP 手册

notes_drop_db

(PHP 4 >= 4.0.5)

notes_drop_db — Drop a Lotus Notes database

说明

bool notes_drop_db ( string $database_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_create_note
notes_find_note
Lotus Notes 函数


Returns a note id found in database_name

notes_drop_db
notes_header_info
Lotus Notes 函数
PHP 手册

notes_find_note

(PHP 4 >= 4.0.5)

notes_find_note — Returns a note id found in database_name

说明

int notes_find_note ( string $database_name , string $name [, string $type ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_drop_db
notes_header_info
Lotus Notes 函数


Open the message msg_number in the specified mailbox on the specified server (leave serv

notes_find_note
notes_list_msgs
Lotus Notes 函数
PHP 手册

notes_header_info

(PHP 4 >= 4.0.5)

notes_header_info — Open the message msg_number in the specified mailbox on the specified server (leave serv

说明

object notes_header_info ( string $server , string $mailbox , int $msg_number )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_find_note
notes_list_msgs
Lotus Notes 函数


Returns the notes from a selected database_name

notes_header_info
notes_mark_read
Lotus Notes 函数
PHP 手册

notes_list_msgs

(PHP 4 >= 4.0.5)

notes_list_msgs — Returns the notes from a selected database_name

说明

bool notes_list_msgs ( string $db )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_header_info
notes_mark_read
Lotus Notes 函数


Mark a note_id as read for the User user_name

notes_list_msgs
notes_mark_unread
Lotus Notes 函数
PHP 手册

notes_mark_read

(PHP 4 >= 4.0.5)

notes_mark_read — Mark a note_id as read for the User user_name

说明

bool notes_mark_read ( string $database_name , string $user_name , string $note_id )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_list_msgs
notes_mark_unread
Lotus Notes 函数


Mark a note_id as unread for the User user_name

notes_mark_read
notes_nav_create
Lotus Notes 函数
PHP 手册

notes_mark_unread

(PHP 4 >= 4.0.5)

notes_mark_unread — Mark a note_id as unread for the User user_name

说明

bool notes_mark_unread ( string $database_name , string $user_name , string $note_id )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_mark_read
notes_nav_create
Lotus Notes 函数


Create a navigator name, in database_name

notes_mark_unread
notes_search
Lotus Notes 函数
PHP 手册

notes_nav_create

(PHP 4 >= 4.0.5)

notes_nav_create — Create a navigator name, in database_name

说明

bool notes_nav_create ( string $database_name , string $name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_mark_unread
notes_search
Lotus Notes 函数


Find notes that match keywords in database_name

notes_nav_create
notes_unread
Lotus Notes 函数
PHP 手册

notes_search

(PHP 4 >= 4.0.5)

notes_search — Find notes that match keywords in database_name

说明

array notes_search ( string $database_name , string $keywords )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_nav_create
notes_unread
Lotus Notes 函数


Returns the unread note id's for the current User user_name

notes_search
notes_version
Lotus Notes 函数
PHP 手册

notes_unread

(PHP 4 >= 4.0.5)

notes_unread — Returns the unread note id's for the current User user_name

说明

array notes_unread ( string $database_name , string $user_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_search
notes_version
Lotus Notes 函数


Get the version Lotus Notes

notes_unread
Memcache
Lotus Notes 函数
PHP 手册

notes_version

(PHP 4 >= 4.0.5)

notes_version — Get the version Lotus Notes

说明

float notes_version ( string $database_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

notes_unread
Memcache
Lotus Notes 函数


Memcache

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • memcache extension overview example
  • Memcache 函数
    • Memcache::add — Add an item to the server
    • Memcache::addServer — Add a memcached server to connection pool
    • Memcache::close — Close memcached server connection
    • Memcache::connect — Open memcached server connection
    • memcache_debug — Turn debug output on/off
    • Memcache::decrement — Decrement item's value
    • Memcache::delete — Delete item from the server
    • Memcache::flush — Flush all existing items at the server
    • Memcache::get — Retrieve item from the server
    • Memcache::getExtendedStats — Get statistics from all servers in pool
    • Memcache::getServerStatus — Returns server status
    • Memcache::getStats — Get statistics of the server
    • Memcache::getVersion — Return version of the server
    • Memcache::increment — Increment item's value
    • Memcache::pconnect — Open memcached server persistent connection
    • Memcache::replace — Replace value of the existing item
    • Memcache::set — Store data at the server
    • Memcache::setCompressThreshold — Enable automatic compression of large values
    • Memcache::setServerParams — Changes server parameters and status at runtime
notes_version
简介
其它服务


简介

Memcache module provides handy procedural and object oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications.

The Memcache module also provides a session handler (memcache).

More information about memcached can be found at » http://www.danga.com/memcached/.

Memcache
安装/配置
Memcache


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Memcache


需求

This module uses functions of » zlib to support on-the-fly data compression. Zlib is required to install this module.

PHP 4.3.3 or newer is required to use the memcache extension.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/memcache.

In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option. You may optionally disable memcache session handler support by specifying --disable-memcache-session.

Windows users will enable php_memcache.dll inside of php.ini in order to use these functions. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Memcache Configuration Options
Name | Default | Changeable | Changelog
memcache.allow_failover | "1" | PHP_INI_ALL | Available since memcache 2.0.2.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Available since memcache 2.1.0.
memcache.chunk_size | "8192" | PHP_INI_ALL | Available since memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Available since memcache 2.0.2.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Available since memcache 2.2.0.
memcache.hash_function | "crc32" | PHP_INI_ALL | Available since memcache 2.2.0.
session.save_handler | "files" | PHP_INI_ALL | Supported since memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Supported since memcache 2.1.2

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

memcache.allow_failover boolean

Whether to transparently failover to other servers on errors.

memcache.max_failover_attempts integer

Defines how many servers to try when setting and getting data. Used only in conjunction with memcache.allow_failover.

memcache.chunk_size integer

Data will be transferred in chunks of this size, setting the value lower requires more network writes. Try increasing this value to 32768 if noticing otherwise inexplicable slowdowns.

memcache.default_port string

The default TCP port number to use when connecting to the memcached server if no other port is specified.

memcache.hash_strategy string

Controls which strategy to use when mapping keys to servers. Set this value to consistent to enable consistent hashing which allows servers to be added or removed from the pool without causing keys to be remapped. Setting this value to standard results in the old strategy being used.

memcache.hash_function string

Controls which hash function to apply when mapping keys to servers, crc32 uses the standard CRC32 hash while fnv uses FNV-1a.

session.save_handler string

Use memcache as a session handler by setting this value to memcache.

session.save_path string

Defines a comma separated of server urls to use for session storage, for example "tcp://host1:11211, tcp://host2:11211".

Each url may contain parameters which are applied to that server, they are the same as for the Memcache::addServer() method. For example "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

安装
资源类型
安装/配置


资源类型

There is only one resource type used in memcache module - it's the link identifier for a cache server connection.

运行时配置
预定义常量
安装/配置


预定义常量

Memcache Constants
Name | Description
MEMCACHE_COMPRESSED (integer) | Used to turn on-the-fly data compression on with Memcache::set(), Memcache::add() 和 Memcache::replace().
MEMCACHE_HAVE_SESSION (integer) | 1 if this Memcache session handler is available, 0 otherwise.
资源类型
范例
Memcache


范例

Table of Contents

  • memcache extension overview example
预定义常量
memcache extension overview example
Memcache


memcache extension overview example

范例
Memcache 函数
范例
PHP 手册

Example #1 memcache extension overview example

In this example, an object is being saved in the cache and then retrieved back. Object and other non-scalar types are serialized before saving, so it's impossible to store resources (i.e. connection identifiers and others) in the cache.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);

?>

Example #2 Using memcache session handler

<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,  ,tcp://$host:$port  ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>

范例
Memcache 函数
范例


Memcache 函数

Table of Contents

  • Memcache::add — Add an item to the server
  • Memcache::addServer — Add a memcached server to connection pool
  • Memcache::close — Close memcached server connection
  • Memcache::connect — Open memcached server connection
  • memcache_debug — Turn debug output on/off
  • Memcache::decrement — Decrement item's value
  • Memcache::delete — Delete item from the server
  • Memcache::flush — Flush all existing items at the server
  • Memcache::get — Retrieve item from the server
  • Memcache::getExtendedStats — Get statistics from all servers in pool
  • Memcache::getServerStatus — Returns server status
  • Memcache::getStats — Get statistics of the server
  • Memcache::getVersion — Return version of the server
  • Memcache::increment — Increment item's value
  • Memcache::pconnect — Open memcached server persistent connection
  • Memcache::replace — Replace value of the existing item
  • Memcache::set — Store data at the server
  • Memcache::setCompressThreshold — Enable automatic compression of large values
  • Memcache::setServerParams — Changes server parameters and status at runtime
memcache extension overview example
Memcache::add
Memcache


Add an item to the server

Memcache 函数
Memcache::addServer
Memcache 函数
PHP 手册

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::add — Add an item to the server

说明

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::add() stores variable var with key only if such key doesn't exist at the server yet. Also you can use memcache_add() function.

参数

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Returns FALSE if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().

范例

Example #1 Memcache::add() example

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* procedural API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* OO API */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

参见

  • Memcache::set() - Store data at the server
  • Memcache::replace() - Replace value of the existing item

Memcache 函数
Memcache::addServer
Memcache 函数


Add a memcached server to connection pool

Memcache::add
Memcache::close
Memcache 函数
PHP 手册

Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServer — Add a memcached server to connection pool

说明

bool Memcache::addServer ( string $host [, int $port [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )

Memcache::addServer() adds a server to the connection pool. The connection, which was opened using Memcache::addServer() will be automatically closed at the end of script execution, you can also close it manually with Memcache::close(). You can also use the memcache_add_server() function.

When using this method (as opposed to Memcache::connect() and Memcache::pconnect()) the network connection is not established until actually needed. Thus there is no overhead in adding a large number of servers to the pool, even though they might not all be used.

Failover may occur at any stage in any of the methods, as long as other servers are available the request the user won't notice. Any kind of socket or Memcached server level errors (except out-of-memory) may trigger the failover. Normal client errors such as adding an existing key will not trigger a failover.

Note: This function has been added to Memcache version 2.0.0.

参数

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. This parameter is optional and its default value is 11211. Set this parameter to 0 when using UNIX domain sockets.

persistent

Controls the use of a persistent connection. Default to TRUE.

weight

Number of buckets to create for this server which in turn control its probability of it being selected. The probability is relative to the total weight of all servers.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

Each failed connection struct has its own timeout and before it has expired the struct will be skipped when selecting backends to serve a request. Once expired the connection will be successfully reconnected or marked as failed for another retry_interval seconds. The typical effect is that each web server child will retry the connection about every retry_interval seconds when serving a page.

status

Controls if the server should be flagged as online. Setting this parameter to FALSE and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to TRUE, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

timeoutms

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::addServer() example

<?php

/* OO API */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

参见

  • Memcache::connect() - Open memcached server connection
  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Close memcached server connection
  • Memcache::setServerParams() - Changes server parameters and status at runtime
  • Memcache::getServerStatus() - Returns server status

Memcache::add
Memcache::close
Memcache 函数


Close memcached server connection

Memcache::addServer
Memcache::connect
Memcache 函数
PHP 手册

Memcache::close

(PECL memcache >= 0.4.0)

Memcache::close — Close memcached server connection

说明

bool Memcache::close ( void )

Memcache::close() closes connection to memcached server. This function doesn't close persistent connections, which are closed only during web-server shutdown/restart. Also you can use memcache_close() function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::close() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
do something here ..
*/
memcache_close($memcache_obj);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
do something here ..
*/
$memcache_obj->close();

?>

参见

  • Memcache::connect() - Open memcached server connection
  • Memcache::pconnect() - Open memcached server persistent connection

Memcache::addServer
Memcache::connect
Memcache 函数


Open memcached server connection

Memcache::close
memcache_debug
Memcache 函数
PHP 手册

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connect — Open memcached server connection

说明

bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )

Memcache::connect() establishes a connection to the memcached server. The connection, which was opened using Memcache::connect() will be automatically closed at the end of script execution. Also you can close it with Memcache::close(). Also you can use memcache_connect() function.

参数

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::connect() example

<?php

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* OO API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

参见

  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Close memcached server connection

Memcache::close
memcache_debug
Memcache 函数


Turn debug output on/off

Memcache::connect
Memcache::decrement
Memcache 函数
PHP 手册

memcache_debug

(PECL memcache >= 0.2.0)

memcache_debug — Turn debug output on/off

说明

bool memcache_debug ( bool $on_off )

memcache_debug() turns on debug output if parameter on_off is equal to TRUE and turns off if it's FALSE.

Note: memcache_debug() is accessible only if PHP was built with --enable-debug option and always returns TRUE in this case. Otherwise, this function has no effect and always returns FALSE.

参数

on_off

Turns debug output on if equals to TRUE. Turns debug output off if equals to FALSE.

返回值

Returns TRUE if PHP was built with --enable-debug option, otherwise returns FALSE.

Memcache::connect
Memcache::decrement
Memcache 函数


Decrement item's value

memcache_debug
Memcache::delete
Memcache 函数
PHP 手册

Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrement — Decrement item's value

说明

int Memcache::decrement ( string $key [, int $value ] )

Memcache::decrement() decrements value of the item by value . Similarly to Memcache::increment(), current value of the item is being converted to numerical and after that value is substracted.

Note: New item's value will not be less than zero.

Note: Do not use Memcache::decrement() with item, which was stored compressed, because consequent call to Memcache::get() will fail.

Memcache::decrement() does not create an item if it didn't exist. Also you can use memcache_decrement() function.

参数

key

Key of the item do decrement.

value

Decrement the item by value . Optional and defaults to 1.

返回值

Returns item's new value on success or FALSE on failure.

范例

Example #1 Memcache::decrement() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* decrement item by 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* decrement item by 3 */
$new_value = $memcache_obj->decrement('test_item', 3);
?>

参见

  • Memcache::increment() - Increment item's value
  • Memcache::replace() - Replace value of the existing item

memcache_debug
Memcache::delete
Memcache 函数


Delete item from the server

Memcache::decrement
Memcache::flush
Memcache 函数
PHP 手册

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::delete — Delete item from the server

说明

bool Memcache::delete ( string $key [, int $timeout ] )

Memcache::delete() deletes item with the key . If parameter timeout is specified, the item will expire after timeout seconds. Also you can use memcache_delete() function.

参数

key

The key associated with the item to delete.

timeout

Execution time of the item. If it's equal to zero, the item will be deleted right away whereas if you set it to 30, the item will be deleted in 30 seconds.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::delete() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* after 10 seconds item will be deleted by the server */
memcache_delete($memcache_obj, 'key_to_delete', 10);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete', 10);

?>

参见

  • Memcache::set() - Store data at the server
  • Memcache::replace() - Replace value of the existing item

Memcache::decrement
Memcache::flush
Memcache 函数


Flush all existing items at the server

Memcache::delete
Memcache::get
Memcache 函数
PHP 手册

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush — Flush all existing items at the server

说明

bool Memcache::flush ( void )

Memcache::flush() immediately invalidates all existing items. Memcache::flush() doesn't actually free any resources, it only marks all the items as expired, so occupied memory will be overwritten by new items. Also you can use memcache_flush() function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::flush() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>

Memcache::delete
Memcache::get
Memcache 函数


Retrieve item from the server

Memcache::flush
Memcache::getExtendedStats
Memcache 函数
PHP 手册

Memcache::get

(PECL memcache >= 0.2.0)

Memcache::get — Retrieve item from the server

说明

string Memcache::get ( string $key [, int &$flags ] )
array Memcache::get ( array $keys [, array &$flags ] )

Memcache::get() returns previously stored data if an item with such key exists on the server at this moment.

You can pass array of keys to Memcache::get() to get array of values. The result array will contain only found key-value pairs.

参数

key

The key or array of keys to fetch.

flags

If present, flags fetched along with the values will be written to this parameter. These flags are the same as the ones given to for example Memcache::set(). The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate compression and serialization status).

返回值

Returns the string associated with the key or FALSE on failure or if such key was not found.

范例

Example #1 Memcache::get() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
You also can use array of keys as a parameter.
If such item wasn't found at the server, the result
array simply will not include such key.
*/

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>

Memcache::flush
Memcache::getExtendedStats
Memcache 函数


Get statistics from all servers in pool

Memcache::get
Memcache::getServerStatus
Memcache 函数
PHP 手册

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStats — Get statistics from all servers in pool

说明

array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit ]]] )

Memcache::getExtendedStats() returns a two-dimensional associative array with server statistics. Array keys correspond to host:port of server and values contain the individual server statistics. A failed server will have its corresponding entry set to FALSE. You can also use the memcache_get_extended_stats() function.

Note: This function has been added to Memcache version 2.0.0.

参数

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump. Default value is 100.

返回值

Returns a two-dimensional associative array of server statistics or FALSE on failure.

范例

Example #1 Memcache::getExtendedStats() example

<?php
    $memcache_obj = new Memcache;
    $memcache_obj->addServer('memcache_host', 11211);
    $memcache_obj->addServer('failed_host', 11211);

    $stats = $memcache_obj->getExtendedStats();
    print_r($stats);
?>

上例将输出：

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

参见

  • Memcache::getVersion() - Return version of the server
  • Memcache::getStats() - Get statistics of the server

Memcache::get
Memcache::getServerStatus
Memcache 函数


Returns server status

Memcache::getExtendedStats
Memcache::getStats
Memcache 函数
PHP 手册

Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatus — Returns server status

说明

int Memcache::getServerStatus ( string $host [, int $port ] )

Memcache::getServerStatus() returns a the servers online/offline status. You can also use memcache_get_server_status() function.

Note: This function has been added to Memcache version 2.1.0.

参数

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections. This parameter is optional and its default value is 11211.

返回值

Returns a the servers status. 0 if server is failed, non-zero otherwise

范例

Example #1 Memcache::getServerStatus() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211);

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);

?>

参见

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::setServerParams() - Changes server parameters and status at runtime

Memcache::getExtendedStats
Memcache::getStats
Memcache 函数


Get statistics of the server

Memcache::getServerStatus
Memcache::getVersion
Memcache 函数
PHP 手册

Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStats — Get statistics of the server

说明

array Memcache::getStats ([ string $type [, int $slabid [, int $limit ]]] )

Memcache::getStats() returns an associative array with server's statistics. Array keys correspond to stats parameters and values to parameter's values. Also you can use memcache_get_stats() function.

参数

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump. Default value is 100.

返回值

Returns an associative array of server statistics or FALSE on failure.

参见

  • Memcache::getVersion() - Return version of the server
  • Memcache::getExtendedStats() - Get statistics from all servers in pool

Memcache::getServerStatus
Memcache::getVersion
Memcache 函数


Return version of the server

Memcache::getStats
Memcache::increment
Memcache 函数
PHP 手册

Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersion — Return version of the server

说明

string Memcache::getVersion ( void )

Memcache::getVersion() returns a string with server's version number. Also you can use memcache_get_version() function.

返回值

Returns a string of server version number or FALSE on failure.

范例

Example #1 Memcache::getVersion() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

参见

  • Memcache::getExtendedStats() - Get statistics from all servers in pool
  • Memcache::getStats() - Get statistics of the server

Memcache::getStats
Memcache::increment
Memcache 函数


Increment item's value

Memcache::getVersion
Memcache::pconnect
Memcache 函数
PHP 手册

Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment — Increment item's value

说明

int Memcache::increment ( string $key [, int $value ] )

Memcache::increment() increments value of the item on the specified value . If item with key key was not numeric and cannot be converted to number, it will change it's value to value . Memcache::increment() does not create an item if it didn't exist.

Note: Do not use Memcache::increment() with item, which was stored compressed, because consequent call to Memcache::get() will fail.

Also you can use memcache_increment() function.

参数

key

Key of the item to increment.

value

Increment the item by value . Optional and defaults to 1.

返回值

Returns new item's value on success or FALSE on failure.

范例

Example #1 Memcache::increment() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* increment counter by 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* increment counter by 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

参见

  • Memcache::decrement() - Decrement item's value
  • Memcache::replace() - Replace value of the existing item

Memcache::getVersion
Memcache::pconnect
Memcache 函数


Open memcached server persistent connection

Memcache::increment
Memcache::replace
Memcache 函数
PHP 手册

Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnect — Open memcached server persistent connection

说明

bool Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )

Memcache::pconnect() is similar to Memcache::connect() with the difference, that the connection it establishes is persistent. This connection is not closed after the end of script execution and by Memcache::close() function. Also you can use memcache_pconnect() function.

参数

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::pconnect() example

<?php

/* procedural API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

参见

  • Memcache::connect() - Open memcached server connection

Memcache::increment
Memcache::replace
Memcache 函数


Replace value of the existing item

Memcache::pconnect
Memcache::set
Memcache 函数
PHP 手册

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace — Replace value of the existing item

说明

bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::replace() should be used to replace value of existing item with key . In case if item with such key doesn't exists, Memcache::replace() returns FALSE. For the rest Memcache::replace() behaves similarly to Memcache::set(). Also you can use memcache_replace() function.

参数

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::replace() example

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* procedural API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* OO API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

参见

  • Memcache::set() - Store data at the server
  • Memcache::add() - Add an item to the server

Memcache::pconnect
Memcache::set
Memcache 函数


Store data at the server

Memcache::replace
Memcache::setCompressThreshold
Memcache 函数
PHP 手册

Memcache::set

(PECL memcache >= 0.2.0)

Memcache::set — Store data at the server

说明

bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::set() stores an item var with key on the memcached server. Parameter expire is expiration time in seconds. If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time, it could be deleted from the cache to make place for other items). You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).

Note: Remember that resource variables (i.e. file and connection descriptors) cannot be stored in the cache, because they cannot be adequately represented in serialized state.

Also you can use memcache_set() function.

参数

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::set() example

<?php
/* procedural API */

/* connect to memcached server */
$memcache_obj = memcache_connect('memcache_host', 11211);

/*
set value of item with key 'var_key'
using 0 as flag value, compression is not used
expire time is 30 seconds
*/
memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30);

echo memcache_get($memcache_obj, 'var_key');

?>

Example #2 Memcache::set() example

<?php
/* OO API */

$memcache_obj = new Memcache;

/* connect to memcached server */
$memcache_obj->connect('memcache_host', 11211);

/*
set value of item with key 'var_key', using on-the-fly compression
expire time is 50 seconds
*/
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get('var_key');

?>

参见

  • Memcache::add() - Add an item to the server
  • Memcache::replace() - Replace value of the existing item

Memcache::replace
Memcache::setCompressThreshold
Memcache 函数


Enable automatic compression of large values

Memcache::set
Memcache::setServerParams
Memcache 函数
PHP 手册

Memcache::setCompressThreshold

(PECL memcache >= 2.0.0)

Memcache::setCompressThreshold — Enable automatic compression of large values

说明

bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )

Memcache::setCompressThreshold() enables automatic compression of large values. You can also use the memcache_set_compress_threshold() function.

Note: This function has been added to Memcache version 2.0.0.

参数

threshold

Controls the minimum value length before attempting to compress automatically.

min_saving

Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::setCompressThreshold() example

<?php

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>

Memcache::set
Memcache::setServerParams
Memcache 函数


Changes server parameters and status at runtime

Memcache::setCompressThreshold
Memcached
Memcache 函数
PHP 手册

Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams — Changes server parameters and status at runtime

说明

bool Memcache::setServerParams ( string $host [, int $port [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback ]]]]] )

Memcache::setServerParams() changes server parameters at runtime. You can also use the memcache_set_server_params() function.

Note: This function has been added to Memcache version 2.1.0.

参数

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections. This parameter is optional and its default value is 11211.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

status

Controls if the server should be flagged as online. Setting this parameter to FALSE and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algoritm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to TRUE, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcache::setServerParams() example

<?php

function _callback_memcache_failure($host, $port) {
    print "memcache '$host:$port' failed";
}

/* OO API */

$memcache = new Memcache;

// Add the server in offline mode
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// Bring the server back online
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

?>

参见

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::getServerStatus() - Returns server status

Memcache::setCompressThreshold
Memcached
Memcache 函数


Memcached

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Expiration Times
  • Callbacks
    • Result callbacks
    • Read-through cache callbacks
  • Sessions support
  • Memcached — The Memcached class
    • Memcached::add — Add an item under a new key
    • Memcached::addByKey — Add an item under a new key on a specific server
    • Memcached::addServer — Add a server to the server pool
    • Memcached::addServers — Add multiple servers to the server pool
    • Memcached::append — Append data to an existing item
    • Memcached::appendByKey — Append data to an existing item on a specific server
    • Memcached::cas — Compare and swap an item
    • Memcached::casByKey — Compare and swap an item on a specific server
    • Memcached::__construct — Create a Memcached instance
    • Memcached::decrement — Decrement numeric item's value
    • Memcached::delete — Delete an item
    • Memcached::deleteByKey — Delete an item from a specific server
    • Memcached::fetch — Fetch the next result
    • Memcached::fetchAll — Fetch all the remaining results
    • Memcached::flush — Invalidate all items in the cache
    • Memcached::get — Retrieve an item
    • Memcached::getByKey — Retrieve an item from a specific server
    • Memcached::getDelayed — Request multiple items
    • Memcached::getDelayedByKey — Request multiple items from a specific server
    • Memcached::getMulti — Retrieve multiple items
    • Memcached::getMultiByKey — Retrieve multiple items from a specific server
    • Memcached::getOption — Retrieve a Memcached option value
    • Memcached::getResultCode — Return the result code of the last operation
    • Memcached::getServerByKey — Map a key to a server
    • Memcached::getServerList — Get the list of the servers in the pool
    • Memcached::getStats — Get server pool statistics
    • Memcached::increment — Increment numeric item's value
    • Memcached::prepend — Prepend data to an existing item
    • Memcached::prependByKey — Prepend data to an existing item on a specific server
    • Memcached::replace — Replace the item under an existing key
    • Memcached::replaceByKey — Replace the item under an existing key on a specific server
    • Memcached::set — Store an item
    • Memcached::setByKey — Store an item on a specific server
    • Memcached::setMulti — Store multiple items
    • Memcached::setMultiByKey — Store multiple items on a specific server
    • Memcached::setOption — Set a Memcached option
Memcache::setServerParams
简介
其它服务


简介

» memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

This extension uses libmemcached library to provide API for communicating with memcached servers. It also provides a session handler (memcached).

Information about libmemcached can be found at » http://tangent.org/552/libmemcached.html.

Memcached
安装/配置
Memcached


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Memcached


需求

This extension requires » libmemcached client library.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/memcached

If libmemcached is installed in a non-standard location, use --with-libmemcached-dir=DIR switch, where DIR is the libmemcached install prefix. This directory has to contain the include/libmemcached/memcached.h file.

Zlib is required for compression support. To specify non-standard installation of Zlib, use --with-zlib-dir=DIR switch, where DIR is the Zlib install prefix.

Session handler support is enabled by default. To disable it, use --disable-memcached-session switch.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Memcached::OPT_COMPRESSION

Enables or disables payload compression. When enabled, item values longer than a certain threshold (currently 100 bytes) will be compressed during storage and decompressed during retrieval transparently.

Type: boolean, default: TRUE.

Memcached::OPT_SERIALIZER

Specifies the serializer to use for serializing non-scalar values. The valid serializers are Memcached::SERIALIZER_PHP or Memcached::SERIALIZER_IGBINARY. The latter is supported only when memcached is configured with --enable-memcached-igbinary option and the igbinary extension is loaded.

Type: integer, default: Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

The default PHP serializer.

Memcached::SERIALIZER_IGBINARY

The » igbinary serializer. Instead of textual representation it stores PHP data structures in a compact binary form, resulting in space and time gains.

Memcached::OPT_PREFIX_KEY

This can be used to create a "domain" for your item keys. The value specified here will be prefixed to each of the keys. It cannot be longer than 128 characters and will reduce the maximum available key size. The prefix is applied only to the item keys, not to the server keys.

Type: string, default: "".

Memcached::OPT_HASH

Specifies the hashing algorithm used for the item keys. The valid values are supplied via Memcached::HASH_* constants. Each hash algorithm has its advantages and its disadvantages. Go with the default if you don't know or don't care.

Type: integer, default: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

The default (Jenkins one-at-a-time) item key hashing algorithm.

Memcached::HASH_MD5

MD5 item key hashing algorithm.

Memcached::HASH_CRC

CRC item key hashing algorithm.

Memcached::HASH_FNV1_64

FNV1_64 item key hashing algorithm.

Memcached::HASH_FNV1A_64

FNV1_64A item key hashing algorithm.

Memcached::HASH_FNV1_32

FNV1_32 item key hashing algorithm.

Memcached::HASH_FNV1A_32

FNV1_32A item key hashing algorithm.

Memcached::HASH_HSIEH

Hsieh item key hashing algorithm.

Memcached::HASH_MURMUR

Murmur item key hashing algorithm.

Memcached::OPT_DISTRIBUTION

Specifies the method of distributing item keys to the servers. Currently supported methods are modulo and consistent hashing. Consistent hashing delivers better distribution and allows servers to be added to the cluster with minimal cache losses.

Type: integer, default: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Modulo-based key distribution algorithm.

Memcached::DISTRIBUTION_CONSISTENT

Consistent hashing key distribution algorithm (based on libketama).

Memcached::OPT_LIBKETAMA_COMPATIBLE

Enables or disables compatibility with libketama-like behavior. When enabled, the item key hashing algorithm is set to MD5 and distribution is set to be weighted consistent hashing distribution. This is useful because other libketama-based clients (Python, Ruby, etc.) with the same server configuration will be able to access the keys transparently.

Note: It is highly recommended to enable this option if you want to use consistent hashing, and it may be enabled by default in future releases.

Type: boolean, default: FALSE.

Memcached::OPT_BUFFER_WRITES

Enables or disables buffered I/O. Enabling buffered I/O causes storage commands to "buffer" instead of being sent. Any action that retrieves data causes this buffer to be sent to the remote connection. Quitting the connection or closing down the connection will also cause the buffered data to be pushed to the remote connection.

Type: boolean, default: FALSE.

Memcached::OPT_BINARY_PROTOCOL

Enable the use of the binary protocol. Please note that you cannot toggle this option on an open connection.

Type: boolean, default: FALSE.

Memcached::OPT_NO_BLOCK

Enables or disables asynchronous I/O. This is the fastest transport available for storage functions.

Type: boolean, default: FALSE.

Memcached::OPT_TCP_NODELAY

Enables or disables the no-delay feature for connecting sockets (may be faster in some environments).

Type: boolean, default: FALSE.

Memcached::OPT_SOCKET_SEND_SIZE

The maximum socket send buffer in bytes.

Type: integer, default: varies by platform/kernel configuration.

Memcached::OPT_SOCKET_RECV_SIZE

The maximum socket receive buffer in bytes.

Type: integer, default: varies by platform/kernel configuration.

Memcached::OPT_CONNECT_TIMEOUT

In non-blocking mode this set the value of the timeout during socket connection, in milliseconds.

Type: integer, default: 1000.

Memcached::OPT_RETRY_TIMEOUT

The amount of time, in seconds, to wait until retrying a failed connection attempt.

Type: integer, default: 0.

Memcached::OPT_SEND_TIMEOUT

Socket sending timeout, in microseconds. In cases where you cannot use non-blocking I/O this will allow you to still have timeouts on the sending of data.

Type: integer, default: 0.

Memcached::OPT_RECV_TIMEOUT

Socket reading timeout, in microseconds. In cases where you cannot use non-blocking I/O this will allow you to still have timeouts on the reading of data.

Type: integer, default: 0.

Memcached::OPT_POLL_TIMEOUT

Timeout for connection polling, in milliseconds.

Type: integer, default: 1000.

Memcached::OPT_CACHE_LOOKUPS

Enables or disables caching of DNS lookups.

Type: boolean, default: FALSE.

Memcached::OPT_SERVER_FAILURE_LIMIT

Specifies the failure limit for server connection attempts. The server will be removed after this many continuous connection failures.

Type: integer, default: 0.

Memcached::RES_SUCCESS

The operation was successful.

Memcached::RES_FAILURE

The operation failed in some fashion.

Memcached::RES_HOST_LOOKUP_FAILURE

DNS lookup failed.

Memcached::RES_UNKNOWN_READ_FAILURE

Failed to read network data.

Memcached::RES_PROTOCOL_ERROR

Bad command in memcached protocol.

Memcached::RES_CLIENT_ERROR

Error on the client side.

Memcached::RES_SERVER_ERROR

Error on the server side.

Memcached::RES_WRITE_FAILURE

Failed to write network data.

Memcached::RES_DATA_EXISTS

Failed to do compare-and-swap: item you are trying to store has been modified since you last fetched it.

Memcached::RES_NOTSTORED

Item was not stored: but not because of an error. This normally means that either the condition for an "add" or a "replace" command wasn't met, or that the item is in a delete queue.

Memcached::RES_NOTFOUND

Item with this key was not found (with "get" operation or "cas" operations).

Memcached::RES_PARTIAL_READ

Partial network data read error.

Memcached::RES_SOME_ERRORS

Some errors occurred during multi-get.

Memcached::RES_NO_SERVERS

Server list is empty.

Memcached::RES_END

End of result set.

Memcached::RES_ERRNO

System error.

Memcached::RES_BUFFERED

The operation was buffered.

Memcached::RES_TIMEOUT

The operation timed out.

Memcached::RES_BAD_KEY_PROVIDED

Bad key.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Failed to create network socket.

Memcached::RES_PAYLOAD_FAILURE

Payload failre: could not compress/decompress or serialize/unserialize the value.

资源类型
Expiration Times
Memcached


Expiration Times

Some storage commands involve sending an expiration value (relative to an item or to an operation requested by the client) to the server. In all such cases, the actual value sent may either be Unix time (number of seconds since January 1, 1970, as an integer), or a number of seconds starting from current time. In the latter case, this number of seconds may not exceed 60*60*24*30 (number of seconds in 30 days); if the expiration value is larger than that, the server will consider it to be real Unix time value rather than an offset from current time.

If the expiration value is 0 (the default), the item never expires (although it may be deleted from the server to make place for other items).

预定义常量
Callbacks
Memcached


Callbacks

Table of Contents

  • Result callbacks
  • Read-through cache callbacks
Expiration Times
Result callbacks
Memcached


Result callbacks

Result callbacks are invoked by Memcached::getDelayed or Memcached::getDelayedBykey methods for each item in the result set. The callback is passed the Memcached object and the array with the item information. The callback does not have to return anything.

Example #1 Result callback example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$m->getDelayed(array('key1', 'key3'), true, 'result_cb');

function result_cb($memc, $item)
{
    var_dump($item);
}
?>

上例的输出类似于：

array(3) {
  ["key"]=>
  string(4) "key1"
  ["value"]=>
  string(6) "value1"
  ["cas"]=>
  float(49)
}
array(3) {
  ["key"]=>
  string(4) "key3"
  ["value"]=>
  string(6) "value3"
  ["cas"]=>
  float(50)
}
Callbacks
Read-through cache callbacks
Callbacks


Read-through cache callbacks

Read-through cache callbacks are invoked when an item cannot be retrieved from the server. The callback is passed the Memcached object, the requested key, and the by-reference value variable. The callback is responsible for setting the value and returning true or false. If the callback returns true, Memcached will store the populated value on the server and return it to the original calling function. Only Memcached::get and Memcached::getByKey support these callbacks, because the memcache protocol does not provide information on which keys were not found in the multi-key request.

Example #1 Read-through callback example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$profile_info = $m->get('user:'.$user_id, 'user_info_cb');

function user_info_cb($memc, $key, &$value)
{
    $user_id = substr($key, 5);
    /* lookup profile info in the DB */
    ...
    $value = $profile_info;
    return true;
}
?>
Result callbacks
Sessions support
Callbacks


Sessions support

Memcached provides a custom session handler that can be used to store user sessions in memcache. A completely separate memcached instance is used for that internally, so you can a different server pool if necessary. The session keys are stored under the prefix memc.sess.lock_key., so be aware of this if you use the same server pool for sessions and generic caching.

session.save_handler string

Set to memcached to enable sessions support.

session.save_path string

Defines a comma separated of hostname:port entries to use for session server pool, for example "sess1:11211, sess2:11211".

Read-through cache callbacks
Memcached
Memcached


The Memcached class

简介

Represents a connection to a set of memcached servers.

Class synopsis

Memcached
Memcached {
__construct ([ string $persistent_id ] )
public bool add ( string $key , mixed $value [, int $expiration ] )
public bool addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool addServer ( string $host , int $port [, int $weight ] )
public bool addServers ( array $servers )
public bool append ( string $key , string $value )
public bool appendByKey ( string $server_key , string $key , string $value )
public bool cas ( double $cas_token , string $key , mixed $value [, int $expiration ] )
public bool casByKey ( double $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )
public bool decrement ( string $key [, int $offset ] )
public bool delete ( string $key [, int $time ] )
public bool deleteByKey ( string $server_key , string $key [, int $time ] )
public mixed fetch ( void )
public mixed fetchAll ( void )
public bool flush ([ int $delay ] )
public mixed get ( string $key [, callback $cache_cb [, double &$cas_token ]] )
public mixed getByKey ( string $server_key , string $key [, callback $cache_cb [, double &$cas_token ]] )
public bool getDelayed ( array $keys [, bool $with_cas [, callback $value_cb ]] )
public bool getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callback $value_cb ]] )
public mixed getMulti ( array $keys [, array &$cas_tokens ] )
public void getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens ] )
public void getOption ( int $option )
public int getResultCode ( void )
public array getServerByKey ( string $server_key )
public array getServerList ( void )
public array getStats ( void )
public bool increment ( string $key [, int $offset ] )
public bool prepend ( string $key , string $value )
public bool prependByKey ( string $server_key , string $key , string $value )
public bool replace ( string $key , mixed $value [, int $expiration ] )
public bool replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool set ( string $key , mixed $value [, int $expiration ] )
public bool set ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool setMulti ( array $items [, int $expiration ] )
public bool setMultiByKey ( string $server_key , array $items [, int $expiration ] )
public void setOption ( int $option , mixed $value )
}

Table of Contents

  • Memcached::add — Add an item under a new key
  • Memcached::addByKey — Add an item under a new key on a specific server
  • Memcached::addServer — Add a server to the server pool
  • Memcached::addServers — Add multiple servers to the server pool
  • Memcached::append — Append data to an existing item
  • Memcached::appendByKey — Append data to an existing item on a specific server
  • Memcached::cas — Compare and swap an item
  • Memcached::casByKey — Compare and swap an item on a specific server
  • Memcached::__construct — Create a Memcached instance
  • Memcached::decrement — Decrement numeric item's value
  • Memcached::delete — Delete an item
  • Memcached::deleteByKey — Delete an item from a specific server
  • Memcached::fetch — Fetch the next result
  • Memcached::fetchAll — Fetch all the remaining results
  • Memcached::flush — Invalidate all items in the cache
  • Memcached::get — Retrieve an item
  • Memcached::getByKey — Retrieve an item from a specific server
  • Memcached::getDelayed — Request multiple items
  • Memcached::getDelayedByKey — Request multiple items from a specific server
  • Memcached::getMulti — Retrieve multiple items
  • Memcached::getMultiByKey — Retrieve multiple items from a specific server
  • Memcached::getOption — Retrieve a Memcached option value
  • Memcached::getResultCode — Return the result code of the last operation
  • Memcached::getServerByKey — Map a key to a server
  • Memcached::getServerList — Get the list of the servers in the pool
  • Memcached::getStats — Get server pool statistics
  • Memcached::increment — Increment numeric item's value
  • Memcached::prepend — Prepend data to an existing item
  • Memcached::prependByKey — Prepend data to an existing item on a specific server
  • Memcached::replace — Replace the item under an existing key
  • Memcached::replaceByKey — Replace the item under an existing key on a specific server
  • Memcached::set — Store an item
  • Memcached::setByKey — Store an item on a specific server
  • Memcached::setMulti — Store multiple items
  • Memcached::setMultiByKey — Store multiple items on a specific server
  • Memcached::setOption — Set a Memcached option
Sessions support
Memcached::add
Memcached


Add an item under a new key

Memcached
Memcached::addByKey
Memcached
PHP 手册

Memcached::add

(PECL memcached >= 0.1.0)

Memcached::add — Add an item under a new key

说明

public bool Memcached::add ( string $key , mixed $value [, int $expiration ] )

Memcached::add() is similar to Memcached::set, but the operation fails if the key already exists on the server.

参数

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key already exists.

参见

  • Memcached::addByKey - Add an item under a new key on a specific server
  • Memcached::set - Store an item
  • Memcached::replace - Replace the item under an existing key

Memcached
Memcached::addByKey
Memcached


Add an item under a new key on a specific server

Memcached::add
Memcached::addServer
Memcached
PHP 手册

Memcached::addByKey

(PECL memcached >= 0.1.0)

Memcached::addByKey — Add an item under a new key on a specific server

说明

public bool Memcached::addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::addByKey() is functionally equivalent to Memcached::add, except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

参数

server_key

The key identifying the server to store the value on.

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key already exists.

参见

  • Memcached::add - Add an item under a new key
  • Memcached::set - Store an item
  • Memcached::replace - Replace the item under an existing key

Memcached::add
Memcached::addServer
Memcached


Add a server to the server pool

Memcached::addByKey
Memcached::addServers
Memcached
PHP 手册

Memcached::addServer

(PECL memcached >= 0.1.0)

Memcached::addServer — Add a server to the server pool

说明

public bool Memcached::addServer ( string $host , int $port [, int $weight ] )

Memcached::addServer() adds the specified server to the server pool. No connection is established to the server at this time, but if you are using consistent key distribution option (via Memcached::DISTRIBUTION_CONSISTENT or Memcached::OPT_LIBKETAMA_COMPATIBLE), some of the internal data structures will have to be updated. Thus, if you need to add multiple servers, it is better to use Memcached::addServers as the update then happens only once.

The same server may appear multiple times in the server pool, because no duplication checks are made. This is not advisable; instead, use the weight option to increase the selection weighting of this server.

参数

host

The hostname of the memcache server. If the hostname is invalid, data-related operations will set Memcached::RES_HOST_LOOKUP_FAILURE result code.

port

The port on which memcache is running. Usually, this is 11211.

weight

The weight of the server relative to the total weight of all the servers in the pool. This controls the probability of the server being selected for operations. This is used only with consistent distribution option and usually corresponds to the amount of memory available to memcache on that server.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcached::addServer() example

<?php
$m = new Memcached();

/* Add 2 servers, so that the second one
   is twice as likely to be selected. */
$m->addServer('mem1.domain.com', 11211, 33);
$m->addServer('mem2.domain.com', 11211, 67);
?>

参见

  • Memcached::addServers - Add multiple servers to the server pool

Memcached::addByKey
Memcached::addServers
Memcached


Add multiple servers to the server pool

Memcached::addServer
Memcached::append
Memcached
PHP 手册

Memcached::addServers

(PECL memcached >= 0.1.1)

Memcached::addServers — Add multiple servers to the server pool

说明

public bool Memcached::addServers ( array $servers )

Memcached::addServers() adds servers to the server pool. Each entry in servers is supposed to an array containing hostname, port, and, optionally, weight of the server. No connection is established to the servers at this time.

The same server may appear multiple times in the server pool, because no duplication checks are made. This is not advisable; instead, use the weight option to increase the selection weighting of this server.

参数

array

Array of the servers to add to the pool.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Memcached::addServers() example

<?php
$m = new Memcached();

$servers = array(
    array('mem1.domain.com', 11211, 33),
    array('mem2.domain.com', 11211, 67)
);
$m->addServers($servers);
?>

参见

  • Classname::Method

Memcached::addServer
Memcached::append
Memcached


Append data to an existing item

Memcached::addServers
Memcached::appendByKey
Memcached
PHP 手册

Memcached::append

(PECL memcached >= 0.1.0)

Memcached::append — Append data to an existing item

说明

public bool Memcached::append ( string $key , string $value )

Memcached::append() appends the given value string to the value of an existing item. The reason that value is forced to be a string is that appending mixed types is not well-defined.

Note: If the Memcached::OPT_COMPRESSION is enabled, the operation will fail and a warning will be issued, because appending compressed data to a value that is potentially already compressed is not possible.

参数

key

The key of the item to append the data to.

value

The string to append.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key does not exist.

范例

Example #1 Memcached::append() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>

上例将输出：

string(6) "abcdef"

参见

  • Memcached::appendByKey - Append data to an existing item on a specific server
  • Memcached::prepend - Prepend data to an existing item

Memcached::addServers
Memcached::appendByKey
Memcached


Append data to an existing item on a specific server

Memcached::append
Memcached::cas
Memcached
PHP 手册

Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKey — Append data to an existing item on a specific server

说明

public bool Memcached::appendByKey ( string $server_key , string $key , string $value )

Memcached::appendByKey() is functionally equivalent to Memcached::append, except that the free-form server_key can be used to map the key to a specific server.

参数

server_key

The key identifying the server where the item is.

key

The key of the item to append the data to.

value

The string to append.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key does not exist.

参见

  • Memcached::append - Append data to an existing item
  • Memcached::prepend - Prepend data to an existing item

Memcached::append
Memcached::cas
Memcached


Compare and swap an item

Memcached::appendByKey
Memcached::casByKey
Memcached
PHP 手册

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Compare and swap an item

说明

public bool Memcached::cas ( double $cas_token , string $key , mixed $value [, int $expiration ] )

Memcached::cas() performs a "check and set" operation, so that the item will be stored only if no other client has updated it since it was last fetched by this client. The check is done via the cas_token parameter which is a unique 64-bit value assigned to the existing item by memcache. See the documentation for Memcached::get* methods for how to obtain this token. Note that the token is represented as a double due to the limitations of PHP's integer space.

参数

cas_token

Unique value associated with the existing item. Generated by memcache.

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_DATA_EXISTS if the item you are trying to store has been modified since you last fetched it.

范例

Example #1 Memcached::cas() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

do {
    /* fetch IP list and its token */
    $ips = $m->get('ip_block', null, $cas);
    /* if list doesn't exist yet, create it and do
       an atomic add which will fail if someone else already added it */
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ips = array($_SERVER['REMOTE_ADDR']);
        $m->add('ip_block', $ips);
    /* otherwise, add IP to the list and store via compare-and-swap
       with the token, which will fail if someone else updated the list */
    } else {
        $ips[] = $_SERVER['REMOTE_ADDR'];
        $m->cas($cas, 'ip_block', $ips);
    }
} while ($m->getResultCode() != Memcached::RES_SUCCESS);

?>

参见

  • Memcached::casByKey - Compare and swap an item on a specific server

Memcached::appendByKey
Memcached::casByKey
Memcached


Compare and swap an item on a specific server

Memcached::cas
Memcached::__construct
Memcached
PHP 手册

Memcached::casByKey

(PECL memcached >= 0.1.0)

Memcached::casByKey — Compare and swap an item on a specific server

说明

public bool Memcached::casByKey ( double $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::casByKey() is functionally equivalent to Memcached::cas, except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

参数

cas_token

Unique value associated with the existing item. Generated by memcache.

server_key

The key identifying the server to store the value on.

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_DATA_EXISTS if the item you are trying to store has been modified since you last fetched it.

参见

  • Memcached::cas - Compare and swap an item

Memcached::cas
Memcached::__construct
Memcached


Create a Memcached instance

Memcached::casByKey
Memcached::decrement
Memcached
PHP 手册

Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__construct — Create a Memcached instance

说明

Memcached::__construct ([ string $persistent_id ] )

Creates a Memcached instance representing the connection to the memcache servers.

参数

persistent_id

By default the Memcached instances are destroyed at the end of the request. To create an instance that persists between requests, use persistent_id to specify a unique ID for the instance. All instances created with the same persistent_id will share the same connection.

返回值

A Memcached object.

范例

Example #1 Creating a Memcached object

<?php
/* Create a regular instance */
$m1 = new Memcached();
echo get_class($m);

/* Create a persistent instance */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* now $m2 and $m3 share the same connection */
?>

Memcached::casByKey
Memcached::decrement
Memcached


Decrement numeric item's value

Memcached::__construct
Memcached::delete
Memcached
PHP 手册

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement — Decrement numeric item's value

说明

public bool Memcached::decrement ( string $key [, int $offset ] )

Memcached::decrement() decrements a numeric item's value by the specified offset . If the item's value is not numeric, it is treated as if the value were 0. If the operation would decrease the value below 0, the new value will be 0. Memcached::decrement() will fail if the item does not exist.

参数

key

The key of the item to decrement.

offset

The amount by which to decrement the item's value; defaults to 1.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.

范例

Example #1 Memcached::decrement() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 5);
$m->decrement('counter');
var_dump($m->get('counter'));

$m->decrement('counter', 10);
var_dump($m->get('counter'));
?>

上例将输出：

int(4)
int(0)

参见

  • Memcached::increment - Increment numeric item's value

Memcached::__construct
Memcached::delete
Memcached


Delete an item

Memcached::decrement
Memcached::deleteByKey
Memcached
PHP 手册

Memcached::delete

(PECL memcached >= 0.1.0)

Memcached::delete — Delete an item

说明

public bool Memcached::delete ( string $key [, int $time ] )

Memcached::delete() deletes the key from the server. The time parameter is the amount of time in seconds (or Unix time until which) the client wishes the server to refuse add and replace commands for this key. For this amount of time, the item is put into a delete queue, which means that it won't possible to retrieve it by the get command, but add and replace command with this key will also fail (the set command will succeed, however). After the time passes, the item is finally deleted from server memory. The parameter time defaults to 0 (which means that the item will be deleted immediately and further storage commands with this key will succeed).

参数

key

The key to be deleted.

time

The amount of time the server will wait to delete the item. Defaults to 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.

范例

Example #1 Memcached::delete() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->delete('key1');
?>

参见

  • Memcached::deleteByKey - Delete an item from a specific server

Memcached::decrement
Memcached::deleteByKey
Memcached


Delete an item from a specific server

Memcached::delete
Memcached::fetch
Memcached
PHP 手册

Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKey — Delete an item from a specific server

说明

public bool Memcached::deleteByKey ( string $server_key , string $key [, int $time ] )

Memcached::deleteByKey() is functionally equivalent to Memcached::delete, except that the free-form server_key can be used to map the key to a specific server.

参数

server_key

The key identifying the server to delete the item from.

key

The key to be deleted.

time

The amount of time the server will wait to delete the item. Defaults to 0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.

参见

  • Memcached::delete - Delete an item

Memcached::delete
Memcached::fetch
Memcached


Fetch the next result

Memcached::deleteByKey
Memcached::fetchAll
Memcached
PHP 手册

Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetch — Fetch the next result

说明

public mixed Memcached::fetch ( void )

Memcached::fetch() retrieves the next result from the last request.

参数

This function has no parameters.

返回值

Returns the next result or FALSE otherwise. The Memcached::getResultCode will return Memcached::RES_END if result set is exhausted.

范例

Example #1 Memcached::fetch() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
while ($result = $m->fetch()) {
    var_dump($result);
}
?>

上例的输出类似于：

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

参见

  • Memcached::fetchAll - Fetch all the remaining results
  • Memcached::getDelayed - Request multiple items

Memcached::deleteByKey
Memcached::fetchAll
Memcached


Fetch all the remaining results

Memcached::fetch
Memcached::flush
Memcached
PHP 手册

Memcached::fetchAll

(PECL memcached >= 0.1.0)

Memcached::fetchAll — Fetch all the remaining results

说明

public mixed Memcached::fetchAll ( void )

Memcached::fetchAll() retrieves all the remaining results from the last request.

参数

This function has no parameters.

返回值

Returns the results or FALSE on failure. Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::getDelayed() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

上例将输出：

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

参见

  • Memcached::fetch - Fetch the next result
  • Memcached::getDelayed - Request multiple items

Memcached::fetch
Memcached::flush
Memcached


Invalidate all items in the cache

Memcached::fetchAll
Memcached::get
Memcached
PHP 手册

Memcached::flush

(PECL memcached >= 0.1.0)

Memcached::flush — Invalidate all items in the cache

说明

public bool Memcached::flush ([ int $delay ] )

Memcached::flush() invalidates all existing cache items immediately (by default) or after the delay specified. After invalidation none of the items will be returned in response to a retrieval command (unless it's stored again under the same key after Memcached::flush() has invalidated the items). The flush does not actually free all the memory taken up by the existing items; that will happen gradually as new items are stored.

参数

delay

Numer of seconds to wait before invalidating the items.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::flush() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* flush all items in 10 seconds */
$m->flush(10);
?>

Memcached::fetchAll
Memcached::get
Memcached


Retrieve an item

Memcached::flush
Memcached::getByKey
Memcached
PHP 手册

Memcached::get

(PECL memcached >= 0.1.0)

Memcached::get — Retrieve an item

说明

public mixed Memcached::get ( string $key [, callback $cache_cb [, double &$cas_token ]] )

Memcached::get() returns the item that was previously stored under the key . If the item is found and cas_token variable is provided, it will contain the CAS token value for the item. See Memcached::cas for how to use CAS tokens. Read-through caching callback may be specified via cache_cb parameter.

参数

key

The key of the item to retrieve.

cache_cb

Read-through caching callback or NULL.

cas_token

The variable to store the CAS token in.

返回值

Returns the value stored in the cache or FALSE otherwise. The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.

范例

Example #1 Memcached::get() example #1

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

上例将输出：

int(100)

Example #2 Memcached::get() example #2

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

if (!($ip = $m->get('ip_block'))) {
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ip = array();
        $m->set('ip_block', $ip);
    } else {
        /* log error */
        ...
    }
}
?>

参见

  • Memcached::getByKey - Retrieve an item from a specific server
  • Memcached::getMulti - Retrieve multiple items
  • Memcached::getDelayed - Request multiple items

Memcached::flush
Memcached::getByKey
Memcached


Retrieve an item from a specific server

Memcached::get
Memcached::getDelayed
Memcached
PHP 手册

Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKey — Retrieve an item from a specific server

说明

public mixed Memcached::getByKey ( string $server_key , string $key [, callback $cache_cb [, double &$cas_token ]] )

Memcached::getByKey() is functionally equivalent to Memcached::get, except that the free-form server_key can be used to map the key to a specific server.

参数

server_key

The key identifying the server to fetch the item from.

key

The key of the item to fetch.

cache_cb

Read-through caching callback or NULL

cas_token

The variable to store the CAS token in.

返回值

Returns the value stored in the cache or FALSE otherwise. The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.

参见

  • Memcached::get - Retrieve an item
  • Memcached::getMulti - Retrieve multiple items
  • Memcached::getDelayed - Request multiple items

Memcached::get
Memcached::getDelayed
Memcached


Request multiple items

Memcached::getByKey
Memcached::getDelayedByKey
Memcached
PHP 手册

Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayed — Request multiple items

说明

public bool Memcached::getDelayed ( array $keys [, bool $with_cas [, callback $value_cb ]] )

Memcached::getDelayed() issues a request to memcache for multiple items the keys of which are specified in the keys array. The method does not wait for response and returns right away. When you are ready to collect the items, call either Memcached::fetch or Memcached::fetchAll. If with_cas is true, the CAS token values will also be requested.

Instead of fetching the results explicitly, you can specify a result callback via value_cb parameter.

参数

keys

Array of keys to request.

with_cas

Whether to request CAS token values also.

value_cb

The result callback or NULL.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::getDelayed() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

上例将输出：

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

参见

  • Memcached::getDelayedByKey - Request multiple items from a specific server
  • Memcached::fetch - Fetch the next result
  • Memcached::fetchAll - Fetch all the remaining results

Memcached::getByKey
Memcached::getDelayedByKey
Memcached


Request multiple items from a specific server

Memcached::getDelayed
Memcached::getMulti
Memcached
PHP 手册

Memcached::getDelayedByKey

(PECL memcached >= 0.1.0)

Memcached::getDelayedByKey — Request multiple items from a specific server

说明

public bool Memcached::getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callback $value_cb ]] )

Memcached::getDelayedByKey() is functionally equivalent to Memcached::getDelayed, except that the free-form server_key can be used to map the keys to a specific server.

参数

server_key

The key identifying the server to request the items from.

keys

Array of keys to request.

with_cas

Whether to request CAS token values also.

value_cb

The result callback or NULL.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

参见

  • Memcached::getDelayed - Request multiple items
  • Memcached::fetch - Fetch the next result
  • Memcached::fetchAll - Fetch all the remaining results

Memcached::getDelayed
Memcached::getMulti
Memcached


Retrieve multiple items

Memcached::getDelayedByKey
Memcached::getMultiByKey
Memcached
PHP 手册

Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — Retrieve multiple items

说明

public mixed Memcached::getMulti ( array $keys [, array &$cas_tokens ] )

Memcached::getMulti() is similar to Memcached::get, but instead of a single key item, it retrievess multiple items the keys of which are specified in the keys array. If cas_tokens variable is provided, it is filled with the CAS token values for the found items.

Note: Unlike Memcached::get it is not possible to specify a read-through cache callback for Memcached::getMulti(), because the memcache protocol does not provide information on which keys were not found in the multi-key request.

参数

keys

Array of keys to retrieve.

cas_tokens

The variable to store the CAS tokens for the found items.

返回值

Returns the array of found items or FALSE on failure. Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::getMulti() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>

上例的输出类似于：

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

参见

  • Memcached::getMultiByKey - Retrieve multiple items from a specific server
  • Memcached::get - Retrieve an item
  • Memcached::getDelayed - Request multiple items

Memcached::getDelayedByKey
Memcached::getMultiByKey
Memcached


Retrieve multiple items from a specific server

Memcached::getMulti
Memcached::getOption
Memcached
PHP 手册

Memcached::getMultiByKey

(PECL memcached >= 0.1.0)

Memcached::getMultiByKey — Retrieve multiple items from a specific server

说明

public void Memcached::getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens ] )

Memcached::getMultiByKey() is functionally equivalent to Memcached::getMulti, except that the free-form server_key can be used to map the keys to a specific server.

参数

server_key

The key identifying the server to fetch the items from.

keys

Array of keys to retrieve.

cas_tokens

The variable to store the CAS tokens for the found items.

返回值

Returns the array of found items or FALSE on failure. Use Memcached::getResultCode if necessary.

参见

  • Memcached::getMulti - Retrieve multiple items
  • Memcached::get - Retrieve an item
  • Memcached::getDelayed - Request multiple items

Memcached::getMulti
Memcached::getOption
Memcached


Retrieve a Memcached option value

Memcached::getMultiByKey
Memcached::getResultCode
Memcached
PHP 手册

Memcached::getOption

(PECL memcached >= 0.1.0)

Memcached::getOption — Retrieve a Memcached option value

说明

public void Memcached::getOption ( int $option )

This method returns the value of a Memcached option . Some options correspond to the ones defined by libmemcached, and some are specific to the extension. See Memcached Constants for more information.

参数

option

One of the Memcached::OPT_* constants.

返回值

Returns the value of the requested option, or FALSE on error.

范例

Example #1 Retrieving Memcached options

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_COMPRESSION));
var_dump($m->getOption(Memcached::OPT_POLL_TIMEOUT));
?>

上例的输出类似于：

bool(true)
int(1000)

参见

  • Classname::Method

Memcached::getMultiByKey
Memcached::getResultCode
Memcached


Return the result code of the last operation

Memcached::getOption
Memcached::getServerByKey
Memcached
PHP 手册

Memcached::getResultCode

(PECL memcached >= 0.1.0)

Memcached::getResultCode — Return the result code of the last operation

说明

public int Memcached::getResultCode ( void )

Memcached::getResultCode() returns one of the Memcached::RES_* constants that is the result of the last executed Memcached method.

参数

This function has no parameters.

返回值

Result code of the last Memcached operation.

范例

Example #1 Memcached::getResultCode() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar');
if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
    ...
}
?>

Memcached::getOption
Memcached::getServerByKey
Memcached


Map a key to a server

Memcached::getResultCode
Memcached::getServerList
Memcached
PHP 手册

Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKey — Map a key to a server

说明

public array Memcached::getServerByKey ( string $server_key )

Memcached::getServerByKey() returns the server that would be selected by a particular server_key in all the Memcached::*ByKey() operations.

参数

server_key

The key identifying the server.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::getServerByKey() example

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 40),
    array('mem2.domain.com', 11211, 40),
    array('mem3.domain.com', 11211, 20),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>

上例的输出类似于：

array(3) {
  ["host"]=>
  string(15) "mem3.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(20)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}

Memcached::getResultCode
Memcached::getServerList
Memcached


Get the list of the servers in the pool

Memcached::getServerByKey
Memcached::getStats
Memcached
PHP 手册

Memcached::getServerList

(PECL memcached >= 0.1.0)

Memcached::getServerList — Get the list of the servers in the pool

说明

public array Memcached::getServerList ( void )

Memcached::getServerList() returns the list of all servers that are in its server pool.

参数

This function has no parameters.

返回值

The list of all servers in the server pool.

范例

Example #1 Memcached::getServerList() example

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 20),
    array('mem2.domain.com', 11311, 80),
));
var_dump($m->getServerList());
?>

上例将输出：

array(2) {
  [0]=>
  array(3) {
    ["host"]=>
    string(15) "mem1.domain.com"
    ["port"]=>
    int(11211)
    ["weight"]=>
    int(20)
  }
  [1]=>
  array(3) {
    ["host"]=>
    string(15) "mem2.domain.com"
    ["port"]=>
    int(11311)
    ["weight"]=>
    int(80)
  }
}

Memcached::getServerByKey
Memcached::getStats
Memcached


Get server pool statistics

Memcached::getServerList
Memcached::increment
Memcached
PHP 手册

Memcached::getStats

(PECL memcached >= 0.1.0)

Memcached::getStats — Get server pool statistics

说明

public array Memcached::getStats ( void )

Memcached::getStats() returns an array containing the state of all available memcache servers. See » memcache protocol specification for details on the these statistics.

参数

This function has no parameters.

返回值

Array of server statistics, one entry per server.

范例

Example #1 Memcached::getStats() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

上例的输出类似于：

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)

Memcached::getServerList
Memcached::increment
Memcached


Increment numeric item's value

Memcached::getStats
Memcached::prepend
Memcached
PHP 手册

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment — Increment numeric item's value

说明

public bool Memcached::increment ( string $key [, int $offset ] )

Memcached::increment() increments a numeric item's value by the specified offset . If the item's value is not numeric, it is treated as if the value were 0. Memcached::increment() will fail if the item does not exist.

参数

key

The key of the item to increment.

offset

The amount by which to increment the item's value; defaults to 1.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.

范例

Example #1 Memcached::increment() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 0);
$m->increment('counter');
$m->increment('counter', 10);
var_dump($m->get('counter'));

$m->set('key', 'abc');
$m->increment('counter');
?>

上例将输出：

int(11)
string(1) "1"

参见

  • Memcached::decrement - Decrement numeric item's value

Memcached::getStats
Memcached::prepend
Memcached


Prepend data to an existing item

Memcached::increment
Memcached::prependByKey
Memcached
PHP 手册

Memcached::prepend

(PECL memcached >= 0.1.0)

Memcached::prepend — Prepend data to an existing item

说明

public bool Memcached::prepend ( string $key , string $value )

Memcached::prepend() prepends the given value string to the value of an existing item. The reason that value is forced to be a string is that prepending mixed types is not well-defined.

Note: If the Memcached::OPT_COMPRESSION is enabled, the operation will fail and a warning will be issued, because prepending compressed data to a value that is potentially already compressed is not possible.

参数

key

The key of the item to prepend the data to.

value

The string to prepend.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key does not exist.

范例

Example #1 Memcached::prepend() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->prepend('foo', 'def');
var_dump($m->get('foo'));
?>

上例将输出：

string(6) "defabc"

参见

  • Memcached::prependByKey - Prepend data to an existing item on a specific server
  • Memcached::append - Append data to an existing item

Memcached::increment
Memcached::prependByKey
Memcached


Prepend data to an existing item on a specific server

Memcached::prepend
Memcached::replace
Memcached
PHP 手册

Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKey — Prepend data to an existing item on a specific server

说明

public bool Memcached::prependByKey ( string $server_key , string $key , string $value )

Memcached::prependByKey() is functionally equivalent to Memcached::prepend, except that the free-form server_key can be used to map the key to a specific server.

参数

server_key

The key identifying the server where the item is.

key

The key of the item to prepend the data to.

value

The string to prepend.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key does not exist.

参见

  • Memcached::prepend - Prepend data to an existing item
  • Memcached::append - Append data to an existing item

Memcached::prepend
Memcached::replace
Memcached


Replace the item under an existing key

Memcached::prependByKey
Memcached::replaceByKey
Memcached
PHP 手册

Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replace — Replace the item under an existing key

说明

public bool Memcached::replace ( string $key , mixed $value [, int $expiration ] )

Memcached::replace() is similar to Memcached::set, but the operation fails if the key does not exist on the server.

参数

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key does not exist.

参见

  • Memcached::replaceByKey - Replace the item under an existing key on a specific server
  • Memcached::set - Store an item
  • Memcached::add - Add an item under a new key

Memcached::prependByKey
Memcached::replaceByKey
Memcached


Replace the item under an existing key on a specific server

Memcached::replace
Memcached::set
Memcached
PHP 手册

Memcached::replaceByKey

(PECL memcached >= 0.1.0)

Memcached::replaceByKey — Replace the item under an existing key on a specific server

说明

public bool Memcached::replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::replaceByKey() is functionally equivalent to Memcached::replace, except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

参数

server_key

The key identifying the server to store the value on.

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The Memcached::getResultCode will return Memcached::RES_NOTSTORED if the key does not exist.

参见

  • Memcached::replace - Replace the item under an existing key
  • Memcached::set - Store an item
  • Memcached::add - Add an item under a new key

Memcached::replace
Memcached::set
Memcached


Store an item

Memcached::replaceByKey
Memcached::setByKey
Memcached
PHP 手册

Memcached::set

(PECL memcached >= 0.1.0)

Memcached::set — Store an item

说明

public bool Memcached::set ( string $key , mixed $value [, int $expiration ] )

Memcached::set() stores the value on a memcache server under the specified key . The expiration parameter can be used to control when the value is considered expired.

The value can be any valid PHP type except for resources, because those cannot be represented in a serialized form. If the Memcached::OPT_COMPRESSION option is turned on, the serialized value will also be compressed before storage.

参数

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::set() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdclass, time() + 300);

var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>

上例的输出类似于：

int(99)
string(15) "a simple string"
array(2) {
  [0]=>
  int(11)
  [1]=>
  int(12)
}
object(stdClass)#1 (0) {
}

参见

  • Memcached::setByKey - Store an item on a specific server
  • Memcached::add - Add an item under a new key
  • Memcached::replace - Replace the item under an existing key

Memcached::replaceByKey
Memcached::setByKey
Memcached


Store an item on a specific server

Memcached::set
Memcached::setMulti
Memcached
PHP 手册

Memcached::setByKey

(PECL memcached >= 0.1.0)

Memcached::setByKey — Store an item on a specific server

说明

public bool Memcached::set ( string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::setByKey() is functionally equivalent to Memcached::set, except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

参数

server_key

The key identifying the server to store the value on.

key

The key under which to store the value.

value

The value to store.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::setByKey() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* keep IP blocks on a certain server */
$m->setByKey('api-cache', 'block-ip:169.254.253.252', 1);
$m->setByKey('api-cache', 'block-ip:169.127.127.202', 1);
?>

参见

  • Memcached::set - Store an item

Memcached::set
Memcached::setMulti
Memcached


Store multiple items

Memcached::setByKey
Memcached::setMultiByKey
Memcached
PHP 手册

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti — Store multiple items

说明

public bool Memcached::setMulti ( array $items [, int $expiration ] )

Memcached::setMulti() is similar to Memcached::set, but instead of a single key/value item, it works on multiple items specified in items . The expiration time applies to all the items at once.

参数

items

An array of key/value pairs to store on the server.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

范例

Example #1 Memcached::setMulti() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->set($items, time() + 300);
?>

参见

  • Memcached::setMultiByKey - Store multiple items on a specific server
  • Memcached::set - Store an item

Memcached::setByKey
Memcached::setMultiByKey
Memcached


Store multiple items on a specific server

Memcached::setMulti
Memcached::setOption
Memcached
PHP 手册

Memcached::setMultiByKey

(PECL memcached >= 0.1.0)

Memcached::setMultiByKey — Store multiple items on a specific server

说明

public bool Memcached::setMultiByKey ( string $server_key , array $items [, int $expiration ] )

Memcached::setMultiByKey() is functionally equivalent to Memcached::setMulti, except that the free-form server_key can be used to map the keys from items to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

参数

server_key

The key identifying the server to store the items on.

items

An array of key/value pairs to store on the server.

expiration

The expiration time, defaults to 0. See Expiration Times for more info.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 Use Memcached::getResultCode if necessary.

参见

  • Memcached::setMulti - Store multiple items
  • Memcached::set - Store an item

Memcached::setMulti
Memcached::setOption
Memcached


Set a Memcached option

Memcached::setMultiByKey
mqseries
Memcached
PHP 手册

Memcached::setOption

(PECL memcached >= 0.1.0)

Memcached::setOption — Set a Memcached option

说明

public void Memcached::setOption ( int $option , mixed $value )

This method sets the value of a Memcached option . Some options correspond to the ones defined by libmemcached, and some are specific to the extension. See Memcached Constants for more information.

The options listed below require values specified via constants.

  • Memcached::OPT_HASH requires Memcached::HASH_* values.

  • Memcached::OPT_DISTRIBUTION requires Memcached::DISTRIBUTION_* values.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Setting a Memcached option

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASH, Memcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY, "widgets");
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

上例将输出：

bool(true)
Prefix key is now: widgets

参见

  • Memcached::getOption - Retrieve a Memcached option value

Memcached::setMultiByKey
mqseries
Memcached


mqseries

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • mqseries 函数
    • mqseries_back — MQSeries MQBACK
    • mqseries_begin — MQseries MQBEGIN
    • mqseries_close — MQSeries MQCLOSE
    • mqseries_cmit — MQSeries MQCMIT
    • mqseries_conn — MQSeries MQCONN
    • mqseries_connx — MQSeries MQCONNX
    • mqseries_disc — MQSeries MQDISC
    • mqseries_get — MQSeries MQGET
    • mqseries_inq — MQSeries MQINQ
    • mqseries_open — MQSeries MQOPEN
    • mqseries_put1 — MQSeries MQPUT1
    • mqseries_put — MQSeries MQPUT
    • mqseries_set — MQSeries MQSET
    • mqseries_strerror — Returns the error message corresponding to a result code (MQRC).
Memcached::setOption
简介
其它服务


简介

This extension aims to provide an interface for communicating with IBMs WebSphere MQ series Queue managers.

The interface mimics the C-API client interface of WebSphere MQ Series as close as possible. Using the same naming conventions and possibilities of the C-API. In order to understand the workings of this extension some level of understanding the C-API is required.

For MQ-options, MQ-structures, MQ-results etc. please read the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference.

mqseries
安装/配置
mqseries


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
mqseries


需求

A working IBM WebSphere MQ installation. If building the extension the SDK for IBM WebSphere MQ is also required.

Note: Be aware that when running against a IBM WebSphere MQ Client installation some methods are not available. This is not a problem of the extension but just the way the WebSphere MQ Client Interface works.

Installation requirements on non windows platforms

Build the extension and put it in the PHP extension directory.

Installation requirements on Windows

No additional requirements.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/mqseries.

Note: The official name of this extension is mqseries.

There are two ways to connect to to a queue manager. These depend on the way the extension is compiled and linked.

  • First one and also the default one is using the mqic libraries. Compiling and linking the extension against these IBM WebSphere MQSeries libraries allows the extension to connect to the Queue manager using the client interface. Remote connections are possible this way.

  • The other way is to compile and link against the mqm libraries. Using these libraries it is possible to make use of the transaction management of a queue manager.

Currently selecting the libraries to use is done by changing the config.m4 file.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

No extra configuration parameters exists.

安装
资源类型
安装/配置


资源类型

This extension defines a connection and object_handle resources.

The mqseries_conn() and mqseries_connx() define the connectionn handles.

The mqseries_open() defines the object handle.

运行时配置
预定义常量
安装/配置


预定义常量

For each WebSphere MQ Constant there is a mqseries counterpart.

For definitions and usage see the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference red books.

The name of the mqseries counterpart is made by appending the WebSphere MQ constant with MQSERIES_, for example the CompletionCode constants are:

mqseries constants
PHP Constant | MQ Constant
MQSERIES_MQCC_OK | MQCC_OK
MQSERIES_MQCC_WARNING | MQCC_WARNING
MQSERIES_MQCC_FAILED | MQCC_FAILED
MQSERIES_MQCC_UNKNOWN | MQCC_UNKNOWN

资源类型
mqseries 函数
mqseries


mqseries 函数

Table of Contents

  • mqseries_back — MQSeries MQBACK
  • mqseries_begin — MQseries MQBEGIN
  • mqseries_close — MQSeries MQCLOSE
  • mqseries_cmit — MQSeries MQCMIT
  • mqseries_conn — MQSeries MQCONN
  • mqseries_connx — MQSeries MQCONNX
  • mqseries_disc — MQSeries MQDISC
  • mqseries_get — MQSeries MQGET
  • mqseries_inq — MQSeries MQINQ
  • mqseries_open — MQSeries MQOPEN
  • mqseries_put1 — MQSeries MQPUT1
  • mqseries_put — MQSeries MQPUT
  • mqseries_set — MQSeries MQSET
  • mqseries_strerror — Returns the error message corresponding to a result code (MQRC).
预定义常量
mqseries_back
mqseries


MQSeries MQBACK

mqseries 函数
mqseries_begin
mqseries 函数
PHP 手册

mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_back — MQSeries MQBACK

说明

void mqseries_back ( resource $hconn , resource &$compCode , resource &$reason )

The mqseries_back() (MQBACK) call indicates to the queue manager that all the message gets and puts that have occurred since the last syncpoint are to be backed out. Messages put as part of a unit of work are deleted; messages retrieved as part of a unit of work are reinstated on the queue.

Using mqseries_back() only works in conjunction with mqseries_begin() and only function when connecting directly to a Queueu manager. Not via the mqclient interface.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_back() example

<?php
    mqseries_back($conn, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

注释

Note: mqseries_back() will not function when using MQSeries Client to connect to a Queueu Manager.

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_begin() - MQseries MQBEGIN

mqseries 函数
mqseries_begin
mqseries 函数


MQseries MQBEGIN

mqseries_back
mqseries_close
mqseries 函数
PHP 手册

mqseries_begin

(PECL mqseries >= 0.10.0)

mqseries_begin — MQseries MQBEGIN

说明

void mqseries_begin ( resource $hconn , array $beginOptions , resource &$compCode , resource &$reason )

The mqseries_begin() (MQBEGIN) call begins a unit of work that is coordinated by the queue manager, and that may involve external resource managers.

Using mqseries_begin() starts the unit of work. Either mqseries_back() or mqseries_cmit() ends the unit of work.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_begin() example

<?php
    $mqbo = array();
    mqseries_begin(    $conn,
                    $mqbo,
                    $comp_code,
                    $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        /* reason code 2121 is a warning for more information see MQSeries reference manual.*/
        if ($reason !== 2121) {
            printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        }
    }
?>

注释

Note: mqseries_begin() will not function when using MQSeries Client to connect to a Queueu Manager.

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_back() - MQSeries MQBACK
  • mqseries_cmit() - MQSeries MQCMIT

mqseries_back
mqseries_close
mqseries 函数


MQSeries MQCLOSE

mqseries_begin
mqseries_cmit
mqseries 函数
PHP 手册

mqseries_close

(PECL mqseries >= 0.10.0)

mqseries_close — MQSeries MQCLOSE

说明

void mqseries_close ( resource $hconn , resource $hobj , int $options , resource &$compCode , resource &$reason )

The mqseries_close() (MQCLOSE) call relinquishes access to an object, and is the inverse of the mqseries_open() (MQOPEN) call.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

options
compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_close() example

<?php
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("close CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

参见

  • mqseries_open() - MQSeries MQOPEN
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX

mqseries_begin
mqseries_cmit
mqseries 函数


MQSeries MQCMIT

mqseries_close
mqseries_conn
mqseries 函数
PHP 手册

mqseries_cmit

(PECL mqseries >= 0.10.0)

mqseries_cmit — MQSeries MQCMIT

说明

void mqseries_cmit ( resource $hconn , resource &$compCode , resource &$reason )

The mqseries_cmit() (MQCMIT) call indicates to the queue manager that the application has reached a syncpoint, and that all of the message gets and puts that have occurred since the last syncpoint are to be made permanent. Messages put as part of a unit of work are made available to other applications; messages retrieved as part of a unit of work are deleted.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_cmit() example

<?php
    mqseries_cmit($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("cmit CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

注释

Note: mqseries_back() will not function when using MQSeries Client to connect to a Queueu Manager.

参见

  • mqseries_begin() - MQseries MQBEGIN
  • mqseries_back() - MQSeries MQBACK
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX

mqseries_close
mqseries_conn
mqseries 函数


MQSeries MQCONN

mqseries_cmit
mqseries_connx
mqseries 函数
PHP 手册

mqseries_conn

(PECL mqseries >= 0.10.0)

mqseries_conn — MQSeries MQCONN

说明

void mqseries_conn ( string $qManagerName , resource &$hconn , resource &$compCode , resource &$reason )

The mqseries_conn() (MQCONN) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent message queuing calls.

参数

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_conn() example

<?php
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("conn CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

参见

  • mqseries_disc() - MQSeries MQDISC

mqseries_cmit
mqseries_connx
mqseries 函数


MQSeries MQCONNX

mqseries_conn
mqseries_disc
mqseries 函数
PHP 手册

mqseries_connx

(PECL mqseries >= 0.10.0)

mqseries_connx — MQSeries MQCONNX

说明

void mqseries_connx ( string $qManagerName , array &$connOptions , resource &$hconn , resource &$compCode , resource &$reason )

The mqseries_connx() (MQCONNX) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent MQ calls.

参数

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

connOps

Options that control the action of function

See also the MQCNO structure.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_connx() example

<?php
    $mqcno = array(
        'Version' => MQSERIES_MQCNO_VERSION_2,
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array('ChannelName' => 'MQNX9420.CLIENT',
        'ConnectionName' => 'localhost',
        'TransportType' => MQSERIES_MQXPT_TCP)
    );

    mqseries_connx('MQNX9420', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

参见

  • mqseries_disc() - MQSeries MQDISC

mqseries_conn
mqseries_disc
mqseries 函数


MQSeries MQDISC

mqseries_connx
mqseries_get
mqseries 函数
PHP 手册

mqseries_disc

(PECL mqseries >= 0.10.0)

mqseries_disc — MQSeries MQDISC

说明

void mqseries_disc ( resource $hconn , resource &$compCode , resource &$reason )

The mqseries_disc() (MQDISC) call breaks the connection between the queue manager and the application program, and is the inverse of the mqseries_conn() (MQCONN) or mqseries_connx() (MQCONNX) call.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_disc() example

<?php
    mqseries_disc($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("disc CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX

mqseries_connx
mqseries_get
mqseries 函数


MQSeries MQGET

mqseries_disc
mqseries_inq
mqseries 函数
PHP 手册

mqseries_get

(PECL mqseries >= 0.10.0)

mqseries_get — MQSeries MQGET

说明

void mqseries_get ( resource $hConn , resource $hObj , array &$md , array &$gmo , int &$bufferLength , string &$msg , int &$data_length , resource &$compCode , resource &$reason )

The mqseries_get() (MQGET) call retrieves a message from a local queue that has been opened using the mqseries_open() (MQOPEN) call

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

gmo

Get message options (MQGMO).

bufferLength

Expected length of the result buffer

msg

Buffer holding the message that was retrieved from the object.

data_length

Actual buffer length

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_get() example

<?php
// open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj now holds the reference to the object (TESTQ)

// setup empty message descriptor.
    mdg = array();
// setup get message options
    $gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING | MQSERIES_MQGMO_WAIT, 'WaitInterval' => 3000);

// get the message from the queueu
    mqseries_get($conn, $obj, $mdg, $gmo, 255, $msg, $data_length, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("GET CompCode:%d Reason:%d Text:%s<br>", $comp_code, $reason, mqseries_strerror($reason));
    }

 // open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj now holds the reference to the object (TESTQ)

?>

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_put() - MQSeries MQPUT

mqseries_disc
mqseries_inq
mqseries 函数


MQSeries MQINQ

mqseries_get
mqseries_open
mqseries 函数
PHP 手册

mqseries_inq

(PECL mqseries >= 0.10.0)

mqseries_inq — MQSeries MQINQ

说明

void mqseries_inq ( resource $hconn , resource $hobj , int $selectorCount , array $selectors , int $intAttrCount , resource &$intAttr , int $charAttrLength , resource &$charAttr , resource &$compCode , resource &$reason )

The mqseries_inq() (MQINQ) call returns an array of integers and a set of character strings containing the attributes of an object.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

selectorCount

Count of selectors.

selectors

Array of attribute selectors.

intAttrLength

Count of integer attributes.

intAttr

Array of integer attributes.

charAttrLength

Length of character attributes buffer.

charAttr

Character attributes.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_inq() example

<?php
    $int_attr = array();
    $char_attr = "";

    mqseries_inq($conn, $obj, 1, array(MQSERIES_MQCA_Q_MGR_NAME), 0, $int_attr, 48, $char_attr, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("INQ CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    } else {
        echo "INQ QManager name result ".$char_attr."<br>\n";
    }
?>

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN

mqseries_get
mqseries_open
mqseries 函数


MQSeries MQOPEN

mqseries_inq
mqseries_put1
mqseries 函数
PHP 手册

mqseries_open

(PECL mqseries >= 0.10.0)

mqseries_open — MQSeries MQOPEN

说明

void mqseries_open ( resource $hconn , array &$objDesc , int $option , resource &$hobj , resource &$compCode , resource &$reason )

The mqseries_open() (MQOPEN) call establishes access to an object.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

options

Options that control the action of the function.

hObj

Object handle.

This handle represents the object to be used.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_open() example

<?php
    mqods = array('ObjectName' => 'TESTQ');
    mqseries_open(
                $conn,
                $mqods,
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

参见

  • mqseries_close() - MQSeries MQCLOSE

mqseries_inq
mqseries_put1
mqseries 函数


MQSeries MQPUT1

mqseries_open
mqseries_put
mqseries 函数
PHP 手册

mqseries_put1

(PECL mqseries >= 0.10.0)

mqseries_put1 — MQSeries MQPUT1

说明

void mqseries_put1 ( resource $hconn , resource &$objDesc , resource &$msgDesc , resource &$pmo , string $buffer , resource &$compCode , resource &$reason )

The mqseries_put1() (MQPUT1) call puts one message on a queue. The queue need not be open.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

This is a structure which identifies the queue to which the message is added.

msgDesc

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET

mqseries_open
mqseries_put
mqseries 函数


MQSeries MQPUT

mqseries_put1
mqseries_set
mqseries 函数
PHP 手册

mqseries_put

(PECL mqseries >= 0.10.0)

mqseries_put — MQSeries MQPUT

说明

void mqseries_put ( resource $hConn , resource $hObj , array &$md , array &$pmo , string $message , resource &$compCode , resource &$reason )

The mqseries_put() (MQPUT) call puts a message on a queue or distribution list. The queue or distribution list must already be open.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

message

The actual message to put onto the queue.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

范例

Example #1 mqseries_put() example

<?php
// open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connectio to the testq queueu
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj now holds the reference to the object (TESTQ)

// setup the message descriptor array. Check MQSeries reference manuals.
    $md =     array(
                'Version' => MQSERIES_MQMD_VERSION_1,
                'Expiry' => MQSERIES_MQEI_UNLIMITED,
                'Report' => MQSERIES_MQRO_NONE,
                'MsgType' => MQSERIES_MQMT_DATAGRAM,
                'Format' => MQSERIES_MQFMT_STRING,
                'Priority' => 1,
                'Persistence' => MQSERIES_MQPER_PERSISTENT);

// setup the put message options.
    $pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);

// put the message 'Ping' on the queueu.
    mqseries_put($conn, $obj, $md, $pmo, 'Ping', $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("put CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }

// close the object reference $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// disconnect from the queue manager.
    mqseries_disc($conn, $comp_code, $reason);

?>

参见

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET

mqseries_put1
mqseries_set
mqseries 函数


MQSeries MQSET

mqseries_put
mqseries_strerror
mqseries 函数
PHP 手册

mqseries_set

(PECL mqseries >= 0.10.0)

mqseries_set — MQSeries MQSET

说明

void mqseries_set ( resource $hconn , resource $hobj , int $selectorcount , array $selectors , int $intattrcount , array $intattrs , int $charattrlength , array $charattrs , resource &$compCode , resource &$reason )

The mqseries_set() (MQSET) call is used to change the attributes of an object represented by a handle. The object must be a queue.

参数

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

返回值

无返回值。

参见

  • mqseries_inq() - MQSeries MQINQ

mqseries_put
mqseries_strerror
mqseries 函数


Returns the error message corresponding to a result code (MQRC).

mqseries_set
Gopher
mqseries 函数
PHP 手册

mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerror — Returns the error message corresponding to a result code (MQRC).

说明

string mqseries_strerror ( int $reason )

mqseries_strerror() returns the message that correspond to the reason result code.

参数

reason

Reason code qualifying the compCode.

返回值

string representation of the reason code message.

范例

Example #1 mqseries_strerror() example

<?php
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

上例将输出：

Connx CompCode:2 Reason:2059 Text:Queue manager not available for connection.

mqseries_set
Gopher
mqseries 函数


Net Gopher

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic Example
  • Gopher 函数
    • gopher_parsedir — Translate a gopher formatted directory entry into an associative array.
mqseries_strerror
简介
其它服务


简介

The gopher protocol, as defined by » RFC 1436, is generally considered the ancestor of the modern HTTP protocol. However, gopher was also intended to provide references to non-gopher resources including telnet, wais, nntp, and even http. This extension adds gopher support to PHP's URL Wrappers, and provides a helper function gopher_parsedir() to make sense of gopher formatted directory listings.

Gopher
安装/配置
Gopher


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Gopher


安装

Prerequisite: PHP 4.3.0 or higher.

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/net_gopher

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Net_Gopher constants
Constant | Value | Description
GOPHER_DOCUMENT | 0 | Standard text/plain document.
GOPHER_DIRECTORY | 1 | A resource containing a gopher formatted directory listing.
GOPHER_BINHEX | 4 | A BinHex encoded binary file.
GOPHER_DOSBINARY | 5 | A DOS formatted binary archive.
GOPHER_UUENCODED | 6 | A UUEncoded file.
GOPHER_BINARY | 9 | A generic binary file.
GOPHER_INFO | 255 | An Informational entry
GOPHER_HTTP | 254 | A reference to an HTTP resource.
GOPHER_UNKNOWN | -1 | An unrecognized entry.
资源类型
范例
Gopher


范例

Table of Contents

  • Basic Example
预定义常量
Basic Example
Gopher


Basic Example

<?php
readfile("gopher://gopher.example.com/somedocument");
?>
范例
Gopher 函数
范例


Gopher 函数

Table of Contents

  • gopher_parsedir — Translate a gopher formatted directory entry into an associative array.
Basic Example
gopher_parsedir
Gopher


Translate a gopher formatted directory entry into an associative array.

Gopher 函数
Network
Gopher 函数
PHP 手册

gopher_parsedir

(PECL net_gopher >= 0.1)

gopher_parsedir — Translate a gopher formatted directory entry into an associative array.

说明

array gopher_parsedir ( string $dirent )

gopher_parsedir() parses a gopher formatted directory entry into an associative array.

While gopher returns text/plain documents for actual document requests. A request to a directory (such as /) will return specially encoded series of lines with each line being one directory entry or information line.

参数

dirent

The directory entry.

返回值

Returns an associative array whose components are:

  • type - One of the GOPHER_XXX constants.
  • title - The name of the resource.
  • path - The path of the resource.
  • host - The domain name of the host that has this document (or directory).
  • port - The port at which to connect on host.

Upon failure, the additional data entry of the returned array will hold the parsed line.

范例

Example #1 Hypothetical output from gopher://gopher.example.com/

0All about my gopher site.               /allabout.txt               gopher.example.com    70
9A picture of my cat.                    /pics/cat.png               gopher.example.com    70
1A collection of my writings.            /stories                    gopher.example.com    70
hThe HTTP version of this site.          URL:http://www.example.com  gopher.example.com    70
1Mirror of this site in Spain.           /                           gopher.ejemplo.co.es  70
iWelcome to my gopher site.                                          error.host            1
iPlease select one of the options above                              error.host            1
iSend complaints to /dev/null                                        error.host            1
iLong live gopher!                                                   error.host            1

In the example above, the root directory at gopher.example.com knows about one DOCUMENT identified by 0 located at gopher://gopher.example.com:70/allabout.txt. It also knows about two other directory (which have their own listing files) at gopher://gopher.exmaple.com:70/stories and at gopher://gopher.ejemplo.co.es:70/. In addition there is a binary file, a link to an HTTP url, and several informative lines.

By passing each line of the directory listing into gopher_parsedir(), an associative array is formed containing a parsed out version of the data.

Example #2 Using gopher_parsedir()

<?php
$directory = file("gopher://gopher.example.com");

foreach($directory as $dirent) {
    print_r(gopher_parsedir($dirent));
}
?>

上例将输出：

Array (
  [type] => 0
  [title] => All about my gopher site.
  [path] => /allabout.txt
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 9
  [title] => A picture of my cat.
  [path] => /pics/cat.png
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => A collection of my writings.
  [path] => /stories
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 254
  [title] => The HTTP version of this site.
  [path] => URL:http://www.example.com
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => Mirror of this site in Spain.
  [path] => /
  [host] => gopher.ejemplo.co.es
  [port] => 70
)
Array (
  [type] => 255
  [title] => Welcome to my gopher site.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Please select one of the options above.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Send complaints to /dev/null
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Long live gopher!
  [path] =>
  [host] => error.host
  [port] => 1
)

Gopher 函数
Network
Gopher 函数


Network

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Network 函数
    • checkdnsrr — Check DNS records corresponding to a given Internet host name or IP address
    • closelog — Close connection to system logger
    • define_syslog_variables — Initializes all syslog related variables
    • dns_check_record — 别名 checkdnsrr
    • dns_get_mx — 别名 getmxrr
    • dns_get_record — Fetch DNS Resource Records associated with a hostname
    • fsockopen — Open Internet or Unix domain socket connection
    • gethostbyaddr — Get the Internet host name corresponding to a given IP address
    • gethostbyname — Get the IP address corresponding to a given Internet host name
    • gethostbynamel — Get a list of IP addresses corresponding to a given Internet host name
    • getmxrr — Get MX records corresponding to a given Internet host name
    • getprotobyname — Get protocol number associated with protocol name
    • getprotobynumber — Get protocol name associated with protocol number
    • getservbyname — Get port number associated with an Internet service and protocol
    • getservbyport — Get Internet service which corresponds to port and protocol
    • header — Send a raw HTTP header
    • headers_list — Returns a list of response headers sent (or ready to send)
    • headers_sent — Checks if or where headers have been sent
    • inet_ntop — Converts a packed internet address to a human readable representation
    • inet_pton — Converts a human readable IP address to its packed in_addr representation
    • ip2long — Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address
    • long2ip — Converts an (IPv4) Internet network address into a string in Internet standard dotted format
    • openlog — Open connection to system logger
    • pfsockopen — Open persistent Internet or Unix domain socket connection
    • setcookie — Send a cookie
    • setrawcookie — Send a cookie without urlencoding the cookie value
    • socket_get_status — 别名 stream_get_meta_data
    • socket_set_blocking — 别名 stream_set_blocking
    • socket_set_timeout — 别名 stream_set_timeout
    • syslog — Generate a system log message
gopher_parsedir
简介
其它服务


简介

Provides various networking functions.

Network
安装/配置
Network


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Network


运行时配置

这些函数的行为受 php.ini 的影响。

Network Configuration Options
Name | Default | Changeable | Changelog
define_syslog_variables | "0" | PHP_INI_ALL | Removed in PHP 6.0.0

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

define_syslog_variables boolean

Whether or not to define the various syslog variables (e.g. $LOG_PID, $LOG_CRON, etc.). Turning it off is a good idea performance-wise. At runtime, you can define these variables by calling define_syslog_variables().

安装
资源类型
安装/配置


资源类型

This extension defines a file pointer resource returned by fsockopen() and pfsockopen().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量作为 PHP 核心的一部分一直有效。

openlog() Options
Constant | Description
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console
LOG_NDELAY | open the connection to the logger immediately
LOG_ODELAY | (default) delay opening the connection until the first message is logged
LOG_NOWAIT |
LOG_PERROR | print log message also to standard error
LOG_PID | include PID with each message
openlog() Facilities
Constant | Description
LOG_AUTH | security/authorization messages (use LOG_AUTHPRIV instead in systems where that constant is defined)
LOG_AUTHPRIV | security/authorization messages (private)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | other system daemons
LOG_KERN | kernel messages
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows
LOG_LPR | line printer subsystem
LOG_MAIL | mail subsystem
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | messages generated internally by syslogd
LOG_USER | generic user-level messages
LOG_UUCP | UUCP subsystem
syslog() Priorities (in descending order)
Constant | Description
LOG_EMERG | system is unusable
LOG_ALERT | action must be taken immediately
LOG_CRIT | critical conditions
LOG_ERR | error conditions
LOG_WARNING | warning conditions
LOG_NOTICE | normal, but significant, condition
LOG_INFO | informational message
LOG_DEBUG | debug-level message
dns_get_record() Options
Constant | Description
DNS_A | IPv4 Address Resource
DNS_MX | Mail Exchanger Resource
DNS_CNAME | Alias (Canonical Name) Resource
DNS_NS | Authoritative Name Server Resource
DNS_PTR | Pointer Resource
DNS_HINFO | Host Info Resource (See IANA's » Operating System Names for the meaning of these values)
DNS_SOA | Start of Authority Resource
DNS_TXT | Text Resource
DNS_ANY | Any Resource Record. On most systems this returns all resource records, however it should not be counted upon for critical uses. Try DNS_ALL instead.
DNS_AAAA | IPv6 Address Resource
DNS_ALL | Iteratively query the name server for each available record type.
资源类型
Network 函数
Network


Network 函数

Table of Contents

  • checkdnsrr — Check DNS records corresponding to a given Internet host name or IP address
  • closelog — Close connection to system logger
  • define_syslog_variables — Initializes all syslog related variables
  • dns_check_record — 别名 checkdnsrr
  • dns_get_mx — 别名 getmxrr
  • dns_get_record — Fetch DNS Resource Records associated with a hostname
  • fsockopen — Open Internet or Unix domain socket connection
  • gethostbyaddr — Get the Internet host name corresponding to a given IP address
  • gethostbyname — Get the IP address corresponding to a given Internet host name
  • gethostbynamel — Get a list of IP addresses corresponding to a given Internet host name
  • getmxrr — Get MX records corresponding to a given Internet host name
  • getprotobyname — Get protocol number associated with protocol name
  • getprotobynumber — Get protocol name associated with protocol number
  • getservbyname — Get port number associated with an Internet service and protocol
  • getservbyport — Get Internet service which corresponds to port and protocol
  • header — Send a raw HTTP header
  • headers_list — Returns a list of response headers sent (or ready to send)
  • headers_sent — Checks if or where headers have been sent
  • inet_ntop — Converts a packed internet address to a human readable representation
  • inet_pton — Converts a human readable IP address to its packed in_addr representation
  • ip2long — Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address
  • long2ip — Converts an (IPv4) Internet network address into a string in Internet standard dotted format
  • openlog — Open connection to system logger
  • pfsockopen — Open persistent Internet or Unix domain socket connection
  • setcookie — Send a cookie
  • setrawcookie — Send a cookie without urlencoding the cookie value
  • socket_get_status — 别名 stream_get_meta_data
  • socket_set_blocking — 别名 stream_set_blocking
  • socket_set_timeout — 别名 stream_set_timeout
  • syslog — Generate a system log message
预定义常量
checkdnsrr
Network


Check DNS records corresponding to a given Internet host name or IP address

Network 函数
closelog
Network 函数
PHP 手册

checkdnsrr

(PHP 4, PHP 5)

checkdnsrr — Check DNS records corresponding to a given Internet host name or IP address

说明

bool checkdnsrr ( string $host [, string $type ] )

Searches DNS for records of type type corresponding to host .

参数

host

host may either be the IP address in dotted-quad notation or the host name.

type

type may be any one of: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT or ANY. The default is MX.

返回值

Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.
5.2.4 | TXT type was added.
5.0.0 | AAAA type was added.

注释

Note: For compatiblity with Windows before this was implemented, then try the » PEAR class » Net_DNS.

参见

  • dns_get_record() - Fetch DNS Resource Records associated with a hostname
  • getmxrr() - Get MX records corresponding to a given Internet host name
  • gethostbyaddr() - Get the Internet host name corresponding to a given IP address
  • gethostbyname() - Get the IP address corresponding to a given Internet host name
  • gethostbynamel() - Get a list of IP addresses corresponding to a given Internet host name
  • the named(8) manual page

Network 函数
closelog
Network 函数


Close connection to system logger

checkdnsrr
define_syslog_variables
Network 函数
PHP 手册

closelog

(PHP 4, PHP 5)

closelog — Close connection to system logger

说明

bool closelog ( void )

closelog() closes the descriptor being used to write to the system logger. The use of closelog() is optional.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • syslog() - Generate a system log message
  • openlog() - Open connection to system logger

checkdnsrr
define_syslog_variables
Network 函数


Initializes all syslog related variables

closelog
dns_check_record
Network 函数
PHP 手册

define_syslog_variables

(PHP 4, PHP 5)

define_syslog_variables — Initializes all syslog related variables

说明

void define_syslog_variables ( void )

Initializes all variables used in the syslog functions.

返回值

无返回值。

Syslog variables
Variable | Constant equal | Meaning | Notes
$LOG_EMERG | LOG_EMERG | System is unusable |
$LOG_ALERT | LOG_ALERT | Immediate action required |
$LOG_CRIT | LOG_CRIT | Critical conditions |
$LOG_ERR | LOG_ERR |  |
$LOG_WARNING | LOG_WARNING |  |
$LOG_NOTICE | LOG_NOTICE |  |
$LOG_INFO | LOG_INFO |  |
$LOG_DEBUG | LOG_DEBUG |  |
$LOG_KERN | LOG_KERN |  |
$LOG_USER | LOG_USER | Genetic user level |
$LOG_MAIL | LOG_MAIL | Log to email |
$LOG_DAEMON | LOG_DAEMON | Other system daemons |
$LOG_AUTH | LOG_AUTH |  |
$LOG_SYSLOG | LOG_SYSLOG |  | Not available on Netware
$LOG_LPR | LOG_LPR |  |
$LOG_NEWS | LOG_NEWS | Usenet new | Not available on HP-UX
$LOG_CRON | LOG_CRON |  | Not available on all platforms
$LOG_AUTHPRIV | LOG_AUTHPRIV |  | Not available on AIX
$LOG_LOCAL0 | LOG_LOCAL0 |  | Not available on Windows and Netware
$LOG_LOCAL1 | LOG_LOCAL1 |  | Not available on Windows and Netware
$LOG_LOCAL2 | LOG_LOCAL2 |  | Not available on Windows and Netware
$LOG_LOCAL3 | LOG_LOCAL3 |  | Not available on Windows and Netware
$LOG_LOCAL4 | LOG_LOCAL4 |  | Not available on Windows and Netware
$LOG_LOCAL5 | LOG_LOCAL5 |  | Not available on Windows and Netware
$LOG_LOCAL6 | LOG_LOCAL6 |  | Not available on Windows and Netware
$LOG_LOCAL7 | LOG_LOCAL7 |  | Not available on Windows and Netware
$LOG_PID | LOG_PID |  |
$LOG_CONS | LOG_CONS |  |
$LOG_ODELAY | LOG_ODELAY |  |
$LOG_NDELAY | LOG_NDELAY |  |
$LOG_NOWAIT | LOG_NOWAIT |  | Not available on BeOS
$LOG_PERROR | LOG_PERROR |  | Not available on AIX

范例

Example #1 define_syslog_variables() example

<?php
// Check if syslog variables already is defined
if(!get_cfg_var('define_syslog_variables'))
{
    define_syslog_variables();
}

// Open the log
openlog('', $LOG_ODELAY, $LOG_MAIL | $LOG_USER);

// Continue script ...
?>

更新日志

版本 | 说明
6.0.0 | This function was removed from PHP.
5.3.0 | This function now throws an E_DEPRECATED notice.

参见

  • openlog() - Open connection to system logger
  • syslog() - Generate a system log message
  • closelog() - Close connection to system logger

closelog
dns_check_record
Network 函数


别名 checkdnsrr

define_syslog_variables
dns_get_mx
Network 函数
PHP 手册

dns_check_record

(PHP 5)

dns_check_record — 别名 checkdnsrr()

说明

本函数是该函数的别名： checkdnsrr().

define_syslog_variables
dns_get_mx
Network 函数


别名 getmxrr

dns_check_record
dns_get_record
Network 函数
PHP 手册

dns_get_mx

(PHP 5)

dns_get_mx — 别名 getmxrr()

说明

本函数是该函数的别名： getmxrr().

dns_check_record
dns_get_record
Network 函数


Fetch DNS Resource Records associated with a hostname

dns_get_mx
fsockopen
Network 函数
PHP 手册

dns_get_record

(PHP 5)

dns_get_record — Fetch DNS Resource Records associated with a hostname

说明

array dns_get_record ( string $hostname [, int $type=DNS_ANY [, array &$authns [, array &$addtl ]]] )

Fetch DNS Resource Records associated with the given hostname .

参数

hostname

hostname should be a valid DNS hostname such as "www.example.com". Reverse lookups can be generated using in-addr.arpa notation, but gethostbyaddr() is more suitable for the majority of reverse lookups.

Note: Per DNS standards, email addresses are given in user.host format (for example: hostmaster.example.com as opposed to hostmaster@example.com), be sure to check this value and modify if necessary before using it with a functions such as mail().

type

By default, dns_get_record() will search for any resource records associated with hostname . To limit the query, specify the optional type parameter. May be any one of the following: DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL or DNS_ANY. The default is DNS_ANY.

Note: Because of eccentricities in the performance of libresolv between platforms, DNS_ANY will not always return every record, the slower DNS_ALL will collect all records more reliably.

authns

Passed by reference and, if given, will be populated with Resource Records for the Authoritative Name Servers.

addtl

Passed by reference and, if given, will be populated with any Additional Records.

返回值

This function returns an array of associative arrays. Each associative array contains at minimum the following keys:

Basic DNS attributes
Attribute | Meaning
host | The record in the DNS namespace to which the rest of the associated data refers.
class | dns_get_record() only returns Internet class records and as such this parameter will always return IN.
type | String containing the record type. Additional attributes will also be contained in the resulting array dependant on the value of type. See table below.
ttl | Time To Live remaining for this record. This will not equal the record's original ttl, but will rather equal the original ttl minus whatever length of time has passed since the authoritative name server was queried.

Other keys in associative arrays dependant on 'type'
Type | Extra Columns
A | ip: An IPv4 addresses in dotted decimal notation.
MX | pri: Priority of mail exchanger. Lower numbers indicate greater priority. target: FQDN of the mail exchanger. See also dns_get_mx().
CNAME | target: FQDN of location in DNS namespace to which the record is aliased.
NS | target: FQDN of the name server which is authoritative for this hostname.
PTR | target: Location within the DNS namespace to which this record points.
TXT | txt: Arbitrary string data associated with this record.
HINFO | cpu: IANA number designating the CPU of the machine referenced by this record. os: IANA number designating the Operating System on the machine referenced by this record. See IANA's » Operating System Names for the meaning of these values.
SOA | mname: FQDN of the machine from which the resource records originated. rname: Email address of the administrative contain for this domain. serial: Serial # of this revision of the requested domain. refresh: Refresh interval (seconds) secondary name servers should use when updating remote copies of this domain. retry: Length of time (seconds) to wait after a failed refresh before making a second attempt. expire: Maximum length of time (seconds) a secondary DNS server should retain remote copies of the zone data without a successful refresh before discarding. minimum-ttl: Minimum length of time (seconds) a client can continue to use a DNS resolution before it should request a new resolution from the server. Can be overridden by individual resource records.
AAAA | ipv6: IPv6 address
A6(PHP >= 5.1.0) | masklen: Length (in bits) to inherit from the target specified by chain . ipv6: Address for this specific record to merge with chain . chain: Parent record to merge with ipv6 data.
SRV | pri: (Priority) lowest priorities should be used first. weight: Ranking to weight which of commonly prioritized targets should be chosen at random. target and port: hostname and port where the requested service can be found. For additional information see: » RFC 2782
NAPTR | order and pref: Equivalent to pri and weight above. flags, services, regex, and replacement: Parameters as defined by » RFC 2915.

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

范例

Example #1 Using dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

上例的输出类似于：

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Example #2 Using dns_get_record() and DNS_ANY

Since it's very common to want the IP address of a mail server once the MX record has been resolved, dns_get_record() also returns an array in addtl which contains associate records. authns is returned as well containing a list of authoritative name servers.

<?php
/* Request "ANY" record for php.net,
   and create $authns and $addtl arrays
   containing list of name servers and
   any additional records which go with
   them */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

上例的输出类似于：

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

注释

Note: For compatibility with versions before this function was implemented on such platforms as Windows, *BSD and MAC. Try the » PEAR class » Net_DNS.

参见

  • dns_get_mx() - 别名 getmxrr
  • dns_check_record() - 别名 checkdnsrr

dns_get_mx
fsockopen
Network 函数


Open Internet or Unix domain socket connection

dns_get_record
gethostbyaddr
Network 函数
PHP 手册

fsockopen

(PHP 4, PHP 5)

fsockopen — Open Internet or Unix domain socket connection

说明

resource fsockopen ( string $hostname [, int $port=-1 [, int &$errno [, string &$errstr [, float $timeout=ini_get("default_socket_timeout") ]]]] )

Initiates a socket connection to the resource specified by hostname .

PHP supports targets in the Internet and Unix domains as described in 所支持的套接字传输器（Socket Transports）列表. A list of supported transports can also be retrieved using stream_get_transports().

The socket will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

参数

hostname

If you have compiled in OpenSSL support, you may prefix the hostname with either ssl:// or tls:// to use an SSL or TLS client connection over TCP/IP to connect to the remote host.

port

The port number.

errno

If provided, holds the system level error number that occurred in the system-level connect() call.

If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket.

errstr

The error message as a string.

timeout

The connection timeout, in seconds.

Note: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to fsockopen() only applies while connecting the socket.

返回值

fsockopen() returns a file pointer which may be used together with the other file functions (such as fgets(), fgetss(), fwrite(), fclose(), and feof()). If the call fails, it will return FALSE

错误／异常

Throws E_WARNING if hostname is not a valid domain.

更新日志

版本 | 说明
4.3.0 | Added support for the timeout parameter on win32.
4.3.0 | SSL and TLS over TCP/IP support was added.
4.0.0 | UDP support was added.

范例

Example #1 fsockopen() Example

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Example #2 Using UDP connection

The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

注释

Note: Depending on the environment, the Unix domain or the optional connect timeout may not be available.

Warning

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Note: 当指定数字的 IPv6 地址（例如 fe80::1）时必须将 IP 地址放在方括号内。例如 tcp://[fe80::1]:80。

参见

  • pfsockopen() - Open persistent Internet or Unix domain socket connection
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • fgets() - 从文件指针中读取一行
  • fgetss() - 从文件指针中读取一行并过滤掉 HTML 标记
  • fwrite() - 写入文件（可安全用于二进制文件）
  • fclose() - 关闭一个已打开的文件指针
  • feof() - 测试文件指针是否到了文件结束的位置
  • The Curl extension

dns_get_record
gethostbyaddr
Network 函数


Get the Internet host name corresponding to a given IP address

fsockopen
gethostbyname
Network 函数
PHP 手册

gethostbyaddr

(PHP 4, PHP 5)

gethostbyaddr — Get the Internet host name corresponding to a given IP address

说明

string gethostbyaddr ( string $ip_address )

Returns the host name of the Internet host specified by ip_address .

参数

ip_address

The host IP address.

返回值

Returns the host name or the unmodified ip_address on failure.

范例

Example #1 A simple gethostbyaddr() example

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

参见

  • gethostbyname() - Get the IP address corresponding to a given Internet host name
  • gethostbynamel() - Get a list of IP addresses corresponding to a given Internet host name

fsockopen
gethostbyname
Network 函数


Get the IP address corresponding to a given Internet host name

gethostbyaddr
gethostbynamel
Network 函数
PHP 手册

gethostbyname

(PHP 4, PHP 5)

gethostbyname — Get the IP address corresponding to a given Internet host name

说明

string gethostbyname ( string $hostname )

Returns the IP address of the Internet host specified by hostname .

参数

hostname

The host name.

返回值

Returns the IP address or a string containing the unmodified hostname on failure.

范例

Example #1 A simple gethostbyname() example

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

参见

  • gethostbyaddr() - Get the Internet host name corresponding to a given IP address
  • gethostbynamel() - Get a list of IP addresses corresponding to a given Internet host name

gethostbyaddr
gethostbynamel
Network 函数


Get a list of IP addresses corresponding to a given Internet host name

gethostbyname
getmxrr
Network 函数
PHP 手册

gethostbynamel

(PHP 4, PHP 5)

gethostbynamel — Get a list of IP addresses corresponding to a given Internet host name

说明

array gethostbynamel ( string $hostname )

Returns a list of IP addresses to which the Internet host specified by hostname resolves.

参数

hostname

The host name.

返回值

Returns an array of IP addresses or FALSE if hostname could not be resolved.

范例

Example #1 gethostbynamel() example

<?php
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>

上例将输出：

Array
(
    [0] => 192.0.34.166
)

参见

  • gethostbyname() - Get the IP address corresponding to a given Internet host name
  • gethostbyaddr() - Get the Internet host name corresponding to a given IP address
  • checkdnsrr() - Check DNS records corresponding to a given Internet host name or IP address
  • getmxrr() - Get MX records corresponding to a given Internet host name
  • the named(8) manual page

gethostbyname
getmxrr
Network 函数


Get MX records corresponding to a given Internet host name

gethostbynamel
getprotobyname
Network 函数
PHP 手册

getmxrr

(PHP 4, PHP 5)

getmxrr — Get MX records corresponding to a given Internet host name

说明

bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )

Searches DNS for MX records corresponding to hostname .

参数

hostname

The Internet host name.

mxhosts

A list of the MX records found is placed into the array mxhosts .

weight

If the weight array is given, it will be filled with the weight information gathered.

返回值

Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

注释

Note: This function should not be used for the purposes of address verification. Only the mailexchangers found in DNS are returned, however, according to » RFC 2821 when no mail exchangers are listed, hostname itself should be used as the only mail exchanger with a priority of 0.

Note: For compatiblity with Windows before this was implemented, then try the » PEAR class » Net_DNS.

参见

  • checkdnsrr() - Check DNS records corresponding to a given Internet host name or IP address
  • dns_get_record() - Fetch DNS Resource Records associated with a hostname
  • gethostbyname() - Get the IP address corresponding to a given Internet host name
  • gethostbynamel() - Get a list of IP addresses corresponding to a given Internet host name
  • gethostbyaddr() - Get the Internet host name corresponding to a given IP address
  • the named(8) manual page

gethostbynamel
getprotobyname
Network 函数


Get protocol number associated with protocol name

getmxrr
getprotobynumber
Network 函数
PHP 手册

getprotobyname

(PHP 4, PHP 5)

getprotobyname — Get protocol number associated with protocol name

说明

int getprotobyname ( string $name )

getprotobyname() returns the protocol number associated with the protocol name as per /etc/protocols.

参数

name

The protocol name.

返回值

Returns the protocol number or -1 if the protocol is not found.

范例

Example #1 getprotobyname() example

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot == -1) {
    echo 'Invalid Protocol';
} else {
    echo 'Protocol #' . $get_prot;
}
?>

参见

  • getprotobynumber() - Get protocol name associated with protocol number

getmxrr
getprotobynumber
Network 函数


Get protocol name associated with protocol number

getprotobyname
getservbyname
Network 函数
PHP 手册

getprotobynumber

(PHP 4, PHP 5)

getprotobynumber — Get protocol name associated with protocol number

说明

string getprotobynumber ( int $number )

getprotobynumber() returns the protocol name associated with protocol number as per /etc/protocols.

参数

number

The protocol number.

返回值

Returns the protocol name as a string.

参见

  • getprotobyname() - Get protocol number associated with protocol name

getprotobyname
getservbyname
Network 函数


Get port number associated with an Internet service and protocol

getprotobynumber
getservbyport
Network 函数
PHP 手册

getservbyname

(PHP 4, PHP 5)

getservbyname — Get port number associated with an Internet service and protocol

说明

int getservbyname ( string $service , string $protocol )

getservbyname() returns the Internet port which corresponds to service for the specified protocol as per /etc/services.

参数

service

The Internet service name, as a string.

protocol

protocol is either "tcp" or "udp" (in lowercase).

返回值

Returns the port number, or FALSE if service or protocol is not found.

范例

Example #1 getservbyname() example

<?php
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

foreach ($services as $service) {
    $port = getservbyname($service, 'tcp');
    echo $service . ": " . $port . "<br />\n";
}
?>

参见

  • getservbyport() - Get Internet service which corresponds to port and protocol
  • » http://www.iana.org/assignments/port-numbers for a complete list of port numbers.

getprotobynumber
getservbyport
Network 函数


Get Internet service which corresponds to port and protocol

getservbyname
header
Network 函数
PHP 手册

getservbyport

(PHP 4, PHP 5)

getservbyport — Get Internet service which corresponds to port and protocol

说明

string getservbyport ( int $port , string $protocol )

getservbyport() returns the Internet service associated with port for the specified protocol as per /etc/services.

参数

port

The port number.

protocol

protocol is either "tcp" or "udp" (in lowercase).

返回值

Returns the Internet service name as a string.

参见

  • getservbyname() - Get port number associated with an Internet service and protocol

getservbyname
header
Network 函数


Send a raw HTTP header

getservbyport
headers_list
Network 函数
PHP 手册

header

(PHP 4, PHP 5)

header — Send a raw HTTP header

说明

void header ( string $string [, bool $replace=true [, int $http_response_code ]] )

header() is used to send a raw HTTP header. See the » HTTP/1.1 specification for more information on HTTP headers.

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

<html>
<?php
/* This will give an error. Note the output
 * above, which is before the header() call */
header('Location: http://www.example.com/');
?>

参数

string

The header string.

There are two special-case header calls. The first is a header that starts with the string "HTTP/" (case is not significant), which will be used to figure out the HTTP status code to send. For example, if you have configured Apache to use a PHP script to handle requests for missing files (using the ErrorDocument directive), you may want to make sure that your script generates the proper status code.

<?php
header("HTTP/1.0 404 Not Found");
?>

The second special case is the "Location:" header. Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless some 3xx status code has already been set.

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

replace

The optional replace parameter indicates whether the header should replace a previous similar header, or add a second header of the same type. By default it will replace, but if you pass in FALSE as the second argument you can force multiple headers of the same type. For example:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

http_response_code

Forces the HTTP response code to the specified value.

返回值

无返回值。

更新日志

版本 | 说明
4.4.2 and 5.1.2 | This function now prevents more than one header to be sent at once as a protection against header injection attacks.
4.3.0 | The http_response_code parameter was added.
4.0.4 | The replace parameter was added.

范例

Example #1 Download dialog

If you want the user to be prompted to save the data you are sending, such as a generated PDF file, you can use the » Content-Disposition header to supply a recommended filename and force the browser to display the save dialog.

<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>

Example #2 Caching directives

PHP scripts often generate dynamic content that must not be cached by the client browser or any proxy caches between the server and the client browser. Many proxies and clients can be forced to disable caching with:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

Note: You may find that your pages aren't cached even if you don't output all of the headers above. There are a number of options that users may be able to set for their browser that change its default caching behavior. By sending the headers above, you should override any settings that may otherwise cause the output of your script to be cached.
Additionally, session_cache_limiter() and the session.cache_limiter configuration setting can be used to automatically generate the correct caching-related headers when sessions are being used.

注释

Note: As of PHP 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

Note: The HTTP status header line will always be the first sent to the client, regardless of the actual header() call being the first or not. The status may be overridden by calling header() with a new status line at any time unless the HTTP headers have already been sent.

Note: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from working. There is no workaround. There is also a bug in Microsoft Internet Explorer 5.5 that interferes with this, which can be resolved by upgrading to Service Pack 2 or later.

Note: If safe mode is enabled the uid of the script is added to the realm part of the WWW-Authenticate header if you set this header (used for HTTP Authentication).

Note: HTTP/1.1 requires an absolute URI as argument to » Location: including the scheme, hostname and absolute path, but some clients accept relative URIs. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yourself:

<?php
/* Redirect to a different page in the current directory that was requested */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Note: Session ID is not passed with Location header even if session.use_trans_sid is enabled. It must by passed manually using SID constant.

参见

  • headers_sent() - Checks if or where headers have been sent
  • setcookie() - Send a cookie
  • The section on HTTP authentication

getservbyport
headers_list
Network 函数


Returns a list of response headers sent (or ready to send)

header
headers_sent
Network 函数
PHP 手册

headers_list

(PHP 5)

headers_list — Returns a list of response headers sent (or ready to send)

说明

array headers_list ( void )

headers_list() will return a list of headers to be sent to the browser / client. To determine whether or not these headers have been sent yet, use headers_sent().

返回值

Returns a numerically indexed array of headers.

范例

Example #1 Examples using headers_list()

<?php

/* setcookie() will add a response header on its own */
setcookie('foo', 'bar');

/* Define a custom response header
   This will be ignored by most clients */
header("X-Sample-Test: foo");

/* Specify plain text content in our response */
header('Content-type: text/plain');

/* What headers are going to be sent? */
var_dump(headers_list());

?>

上例将输出：

array(4) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.1.3"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

参见

  • headers_sent() - Checks if or where headers have been sent
  • header() - Send a raw HTTP header
  • setcookie() - Send a cookie
  • apache_response_headers() - Fetch all HTTP response headers

header
headers_sent
Network 函数


Checks if or where headers have been sent

headers_list
inet_ntop
Network 函数
PHP 手册

headers_sent

(PHP 4, PHP 5)

headers_sent — Checks if or where headers have been sent

说明

bool headers_sent ([ string &$file [, int &$line ]] )

Checks if or where headers have been sent.

You can't add any more header lines using the header() function once the header block has already been sent. Using this function you can at least prevent getting HTTP header related error messages. Another option is to use Output Buffering.

参数

file

If the optional file and line parameters are set, headers_sent() will put the PHP source file name and line number where output started in the file and line variables.

line

The line number where the output started.

返回值

headers_sent() will return FALSE if no HTTP headers have already been sent or TRUE otherwise.

更新日志

版本 | 说明
4.3.0 | The optional file and line parameters were added.

范例

Example #1 Examples using headers_sent()

<?php

// If no headers are sent, send one
if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

// An example using the optional file and line parameters, as of PHP 4.3.0
// Note that $filename and $linenum are passed in for later use.
// Do not assign them values beforehand.
if (!headers_sent($filename, $linenum)) {
    header('Location: http://www.example.com/');
    exit;

// You would most likely trigger an error here.
} else {

    echo "Headers already sent in $filename on line $linenum\n" .
          "Cannot redirect, for now please click this <a " .
          "href=\"http://www.example.com\">link</a> instead\n";
    exit;
}

?>

参见

  • ob_start() - Turn on output buffering
  • trigger_error() - Generates a user-level error/warning/notice message
  • headers_list() - Returns a list of response headers sent (or ready to send)
  • header() - Send a raw HTTP header for a more detailed discussion of the matters involved.

headers_list
inet_ntop
Network 函数


Converts a packed internet address to a human readable representation

headers_sent
inet_pton
Network 函数
PHP 手册

inet_ntop

(PHP 5 >= 5.1.0)

inet_ntop — Converts a packed internet address to a human readable representation

说明

string inet_ntop ( string $in_addr )

This function converts a 32bit IPv4, or 128bit IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate string representation.

参数

in_addr

A 32bit IPv4, or 128bit IPv6 address.

返回值

Returns a string representation of the address or FALSE on failure.

范例

Example #1 inet_ntop() Example

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Outputs: 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Outputs: ::1 */
echo $expanded;
?>

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

参见

  • long2ip() - Converts an (IPv4) Internet network address into a string in Internet standard dotted format
  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address
  • inet_pton() - Converts a human readable IP address to its packed in_addr representation

headers_sent
inet_pton
Network 函数


Converts a human readable IP address to its packed in_addr representation

inet_ntop
ip2long
Network 函数
PHP 手册

inet_pton

(PHP 5 >= 5.1.0)

inet_pton — Converts a human readable IP address to its packed in_addr representation

说明

string inet_pton ( string $address )

This function converts a human readable IPv4 or IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate 32bit or 128bit binary structure.

参数

address

A human readable IPv4 or IPv6 address.

返回值

Returns the in_addr representation of the given address

范例

Example #1 inet_pton() Example

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

更新日志

版本 | 说明
5.3.0 | This function is now available on Windows platforms.

参见

  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address
  • long2ip() - Converts an (IPv4) Internet network address into a string in Internet standard dotted format
  • inet_ntop() - Converts a packed internet address to a human readable representation

inet_ntop
ip2long
Network 函数


Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address

inet_pton
long2ip
Network 函数
PHP 手册

ip2long

(PHP 4, PHP 5)

ip2long — Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address

说明

int ip2long ( string $ip_address )

The function ip2long() generates an IPv4 Internet network address from its Internet standard format (dotted string) representation.

ip2long() will also work with non-complete IP addresses. Read » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm for more info.

参数

ip_address

A standard format address.

返回值

Returns the IPv4 address or FALSE if ip_address is invalid.

更新日志

版本 | 说明
5.0.0 | Prior to this version, ip2long() returned -1 on failure.

范例

Example #1 ip2long() Example

<?php
$ip = gethostbyname('www.example.com');
$out = "The following URLs are equivalent:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Example #2 Displaying an IP address

This second example shows how to print a converted address with the printf() function in both PHP 4 and PHP 5:

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'Invalid IP, please try again';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Example #3 IP validation

ip2long() should not be used as the sole form of IP validation. Combine it with long2ip():

<?php
// make sure IPs are valid. also converts a non-complete IP into
// a proper dotted quad as explained below.
$ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
$ip = long2ip(ip2long("10.0.0")); // "10.0.0.0"
$ip = long2ip(ip2long("10.0.256")); // "10.0.1.0"
?>

注释

Note: Because PHP's integer type is signed, and many IP addresses will result in negative integers, you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address.

Note: ip2long() will return FALSE for the IP 255.255.255.255 in PHP 5 <= 5.0.2. It was fixed in PHP 5.0.3 where it returns -1 (same as PHP 4).

参见

  • long2ip() - Converts an (IPv4) Internet network address into a string in Internet standard dotted format
  • sprintf() - Return a formatted string

inet_pton
long2ip
Network 函数


Converts an (IPv4) Internet network address into a string in Internet standard dotted format

ip2long
openlog
Network 函数
PHP 手册

long2ip

(PHP 4, PHP 5)

long2ip — Converts an (IPv4) Internet network address into a string in Internet standard dotted format

说明

string long2ip ( string $proper_address )

The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the proper address representation.

参数

proper_address

A proper address representation.

返回值

Returns the Internet IP address as a string.

参见

  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address

ip2long
openlog
Network 函数


Open connection to system logger

long2ip
pfsockopen
Network 函数
PHP 手册

openlog

(PHP 4, PHP 5)

openlog — Open connection to system logger

说明

bool openlog ( string $ident , int $option , int $facility )

openlog() opens a connection to the system logger for a program.

The use of openlog() is optional. It will automatically be called by syslog() if necessary, in which case ident will default to FALSE.

参数

ident

The string ident is added to each message.

option

The option argument is used to indicate what logging options will be used when generating a log message.

openlog() Options
Constant | Description
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console
LOG_NDELAY | open the connection to the logger immediately
LOG_ODELAY | (default) delay opening the connection until the first message is logged
LOG_PERROR | print log message also to standard error
LOG_PID | include PID with each message

You can use one or more of this options. When using multiple options you need to OR them, i.e. to open the connection immediately, write to the console and include the PID in each message, you will use: LOG_CONS | LOG_NDELAY | LOG_PID

facility

The facility argument is used to specify what type of program is logging the message. This allows you to specify (in your machine's syslog configuration) how messages coming from different facilities will be handled.

openlog() Facilities
Constant | Description
LOG_AUTH | security/authorization messages (use LOG_AUTHPRIV instead in systems where that constant is defined)
LOG_AUTHPRIV | security/authorization messages (private)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | other system daemons
LOG_KERN | kernel messages
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows
LOG_LPR | line printer subsystem
LOG_MAIL | mail subsystem
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | messages generated internally by syslogd
LOG_USER | generic user-level messages
LOG_UUCP | UUCP subsystem

Note: LOG_USER is the only valid log type under Windows operating systems

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • syslog() - Generate a system log message
  • closelog() - Close connection to system logger

long2ip
pfsockopen
Network 函数


Open persistent Internet or Unix domain socket connection

openlog
setcookie
Network 函数
PHP 手册

pfsockopen

(PHP 4, PHP 5)

pfsockopen — Open persistent Internet or Unix domain socket connection

说明

resource pfsockopen ( string $hostname [, int $port=-1 [, int &$errno [, string &$errstr [, float $timeout=ini_get("default_socket_timeout") ]]]] )

This function behaves exactly as fsockopen() with the difference that the connection is not closed after the script finishes. It is the persistent version of fsockopen().

参数

For parameter information, see the fsockopen() documentation.

参见

  • fsockopen() - Open Internet or Unix domain socket connection

openlog
setcookie
Network 函数


Send a cookie

pfsockopen
setrawcookie
Network 函数
PHP 手册

setcookie

(PHP 4, PHP 5)

setcookie — Send a cookie

说明

bool setcookie ( string $name [, string $value [, int $expire=0 [, string $path [, string $domain [, bool $secure=false [, bool $httponly=false ]]]]]] )

setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.

Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE or $HTTP_COOKIE_VARS arrays. Note, superglobals such as $_COOKIE became available in PHP 4.1.0. Cookie values also exist in $_REQUEST.

参数

All the arguments except the name argument are optional. You may also replace an argument with an empty string ("") in order to skip that argument. Because the expire argument is integer, it cannot be skipped with an empty string, use a zero (0) instead.

See » Netscape cookie specification for specifics on how each setcookie() parameter works

name

The name of the cookie.

value

The value of the cookie. This value is stored on the clients computer; do not store sensitive information. Assuming the name is 'cookiename', this value is retrieved through $_COOKIE['cookiename']

expire

The time the cookie expires. This is a Unix timestamp so is in number of seconds since the epoch. In other words, you'll most likely set this with the time() function plus the number of seconds before you want it to expire. Or you might use mktime(). time()+60*60*24*30 will set the cookie to expire in 30 days. If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).

Note: You may notice the expire parameter takes on a Unix timestamp, as opposed to the date format Wdy, DD-Mon-YYYY HH:MM:SS GMT, this is because PHP does this conversion internally.
expire is compared to the client's time which can differ from server's time.

path

The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain . If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain . The default value is the current directory that the cookie is being set in.

domain

The domain that the cookie is available. To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the » spec for details.

secure

Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. When set to TRUE, the cookie will only be set if a secure connection exists. The default is FALSE. On the server-side, it's on the programmer to send this kind of cookie only on secure connection (e.g. with respect to $_SERVER["HTTPS"]).

httponly

When TRUE the cookie will be made accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. This setting can effectively help to reduce identity theft through XSS attacks (although it is not supported by all browsers). Added in PHP 5.2.0. TRUE or FALSE

返回值

If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.

范例

Some examples follow how to send cookies:

Example #1 setcookie() send example

<?php
$value = 'something from somewhere';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
?>

Note that the value portion of the cookie will automatically be urlencoded when you send the cookie, and when it is received, it is automatically decoded and assigned to a variable by the same name as the cookie name. If you don't want this, you can use setrawcookie() instead if you are using PHP 5. To see the contents of our test cookie in a script, simply use one of the following examples:

<?php
// Print an individual cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];

// Another way to debug/test is to view all cookies
print_r($_COOKIE);
?>

Example #2 setcookie() delete example

When deleting a cookie you should assure that the expiration date is in the past, to trigger the removal mechanism in your browser. Examples follow how to delete cookies sent in previous example:

<?php
// set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>

Example #3 setcookie() and arrays

You may also set array cookies by using array notation in the cookie name. This has the effect of setting as many cookies as you have array elements, but when the cookie is received by your script, the values are all placed in an array with the cookie's name:

<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
    }
}
?>

上例将输出：

three : cookiethree
two : cookietwo
one : cookieone

更新日志

版本 | 说明
5.2.0 | The httponly parameter was added.

注释

Note: As of PHP 4, you can use output buffering to send output prior to the call of this function, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

Note: If the PHP directive register_globals is set to on then cookie values will also be made into variables. In our examples below, $TestCookie will exist. It's recommended to use $_COOKIE.

Common Pitfalls:

  • Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.
  • Cookies must be deleted with the same parameters as they were set with. If the value argument is an empty string, or FALSE, and all other arguments match a previous call to setcookie, then the cookie with the specified name will be deleted from the remote client. This is internally achieved by setting value to 'deleted' and expiration time to one year in past.
  • Because setting a cookie with a value of FALSE will try to delete the cookie, you should not use boolean values. Instead, use 0 for FALSE and 1 for TRUE.
  • Cookies names can be set as array names and will be available to your PHP scripts as arrays but separate cookies are stored on the users system. Consider explode() to set one cookie with multiple names and values. It is not recommended to use serialize() for this purpose, because it can result in security holes.

Multiple calls to setcookie() are performed in the order called.

参见

  • header() - Send a raw HTTP header
  • setrawcookie() - Send a cookie without urlencoding the cookie value
  • cookies section
  • » RFC 2109
  • » RFC 2965

pfsockopen
setrawcookie
Network 函数


Send a cookie without urlencoding the cookie value

setcookie
socket_get_status
Network 函数
PHP 手册

setrawcookie

(PHP 5)

setrawcookie — Send a cookie without urlencoding the cookie value

说明

bool setrawcookie ( string $name [, string $value [, int $expire=0 [, string $path [, string $domain [, bool $secure=false [, bool $httponly=false ]]]]]] )

setrawcookie() is exactly the same as setcookie() except that the cookie value will not be automatically urlencoded when sent to the browser.

参数

For parameter information, see the setcookie() documentation.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.2.0 | The httponly parameter was added.

参见

  • setcookie() - Send a cookie

setcookie
socket_get_status
Network 函数


别名 stream_get_meta_data

setrawcookie
socket_set_blocking
Network 函数
PHP 手册

socket_get_status

(PHP 4, PHP 5)

socket_get_status — 别名 stream_get_meta_data()

说明

本函数是该函数的别名： stream_get_meta_data().

setrawcookie
socket_set_blocking
Network 函数


别名 stream_set_blocking

socket_get_status
socket_set_timeout
Network 函数
PHP 手册

socket_set_blocking

(PHP 4, PHP 5)

socket_set_blocking — 别名 stream_set_blocking()

说明

本函数是该函数的别名： stream_set_blocking().

socket_get_status
socket_set_timeout
Network 函数


别名 stream_set_timeout

socket_set_blocking
syslog
Network 函数
PHP 手册

socket_set_timeout

(PHP 4, PHP 5)

socket_set_timeout — 别名 stream_set_timeout()

说明

本函数是该函数的别名： stream_set_timeout().

socket_set_blocking
syslog
Network 函数


Generate a system log message

socket_set_timeout
SAM
Network 函数
PHP 手册

syslog

(PHP 4, PHP 5)

syslog — Generate a system log message

说明

bool syslog ( int $priority , string $message )

syslog() generates a log message that will be distributed by the system logger.

For information on setting up a user defined log handler, see the syslog.conf (5) Unix manual page. More information on the syslog facilities and option can be found in the man pages for syslog (3) on Unix machines.

参数

priority

priority is a combination of the facility and the level. Possible values are:

syslog() Priorities (in descending order)
Constant | Description
LOG_EMERG | system is unusable
LOG_ALERT | action must be taken immediately
LOG_CRIT | critical conditions
LOG_ERR | error conditions
LOG_WARNING | warning conditions
LOG_NOTICE | normal, but significant, condition
LOG_INFO | informational message
LOG_DEBUG | debug-level message

message

The message to send, except that the two characters %m will be replaced by the error message string (strerror) corresponding to the present value of errno.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Using syslog()

<?php
// open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// some code

if (authorized_client()) {
    // do something
} else {
    // unauthorized client!
    // log the attempt
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

注释

On Windows NT, the syslog service is emulated using the Event Log.

Note: Use of LOG_LOCAL0 through LOG_LOCAL7 for the facility parameter of openlog() is not available in Windows.

参见

  • openlog() - Open connection to system logger
  • closelog() - Close connection to system logger

socket_set_timeout
SAM
Network 函数


Simple Asynchronous Messaging

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Connections
    • Messages
    • Messaging operations
    • Publish/Subscribe and subscriptions to topics
    • Error handling
  • SAM 函数
    • SAMConnection->commit — Commits (completes) the current unit of work.
    • SAMConnection->connect — Establishes a connection to a Messaging Server
    • SAMConnection->__construct — Creates a new connection to a Messaging Server
    • SAMConnection->disconnect — Disconnects from a Messaging Server
    • SAMConnection->errno — Contains the unique numeric error code of the last executed SAM operation.
    • SAMConnection->error — Contains the text description of the last failed SAM operation.
    • SAMConnection->isConnected — Queries whether a connection is established to a Messaging Server
    • SAMConnection->peek — Read a message from a queue without removing it from the queue.
    • SAMConnection->peekAll — Read one or more messages from a queue without removing it from the queue.
    • SAMConnection->receive — Receive a message from a queue or subscription.
    • SAMConnection->remove — Remove a message from a queue.
    • SAMConnection->rollback — Cancels (rolls back) an in-flight unit of work.
    • SAMConnection->send — Send a message to a queue or publish an item to a topic.
    • SAMConnection::setDebug — Turn on or off additional debugging output.
    • SAMConnection->subscribe — Create a subscription to a specified topic.
    • SAMConnection->unsubscribe — Cancel a subscription to a specified topic.
    • SAMMessage->body — The body of the message.
    • SAMMessage->__construct — Creates a new Message object
    • SAMMessage->header — The header properties of the message.
syslog
简介
其它服务


简介

This extension provides access to the functionality of messaging and queueing systems, such as the IBM WebSphere MQSeries family of products, from PHP scripts. The interface is designed to make it extremely simple to do the more commonly required tasks such as deliver simple text messages to queues while still allowing skilled users to do more complex messaging operations. For many users the complexities of setting up numerous options can be simply ignored.

The SAM extension is a framework that provides a very simple API that can be used to access a number of messaging middleware systems. Currently the package includes built-in support for the MQTT (MQ Telemetry Transport) messaging protocol and support for the IBM Messaging and Queuing middleware products. SAM is designed to be readily extended to support other messaging systems and extension modules may be written in C or PHP.

SAM
安装/配置
SAM


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SAM


需求

The SAM extension interfaces to the IBM Messaging and Queuing middleware products using a set of libraries and some client side code referred to as XMS. This package is available as a free download in the guise of IBM support pack IA94. There is a description of this package and download links in the article » Introducing XMS - The IBM Message Service API.

If you intend to use SAM to access the Messaging and Queuing infrastructure within WebSphere MQ then you will also need to have installed a local MQ queue manager or installed the WebSphere MQ clients package. The clients package is freely available as a support pack (» MQC6).

If you are only aiming to experiment with sending messages to and from WebSphere Application Server queues using the WebSphere Platform Messaging protocol (WPM) then you do not need to install the MQC6 package.

After installing these packages you will need to ensure the XMS binary and, if you are using it, the MQ client bin directory are included in the PATH environment variable so that Apache and PHP can find the dependent .DLLs/libraries.

安装/配置
安装
安装/配置


安装

The SAM framework and MQTT support can be built and used without any other prerequisites. Support for protocols other than MQTT is provided via a set of libraries and some client side code referred to as XMS.

If you only intend to use the built-in MQTT support then you can build and configure SAM as an extension or simply refer to "php_sam.php" with a "requires" or "requires_once" clause in your PHP script. In this case you need only install the code without building the extension using the pear installer:

pecl install -B SAM

Linux installation steps

The sam extension is supplied as a PECL module, which you should be able to download and install in one step as follows:

pecl install sam
(Depending on your php environment, you will probably need to be root to do this.)

Make sure that the module is loaded by PHP, by adding following line to php.ini:

extension=sam.so
If you intend to use the XMS support to access the IBM Messaging and Queuing family you must also enable the SAM XMS extension.
extension=sam_xms.so

If you cannot use the PEAR installer, you can download the extension and build it manually:

pear download sam          #downloads sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #you may need to be root for this step

To work with the very latest source, you'll need to extract it from cvs and build manually as above.

Windows installation steps

You will probably need to build the sam extension for Windows as there are only a limited range of pre-built binaries available from the SAM website. The extension can be built using the standard Windows extension build procedures.

You will need the PHP source tree for the version of PHP you wish to build the SAM extension against which you can obtain from php.net. This should be unpacked into a working directory of your choice.

You will also need the libraries and headers used by PHP extensions available from http://www.php.net/extra/win32build.zip and this should be unzipped so that is in your working directory.

You should have something like:

c:\php-build\-
              |
              |---php-5.0.5--|---build
              |              |---ext
              |              |--- ...
              |
              |---win32build--|---bin
                              |---include
                              |---lib

You will need a compiler such as the free version of Visual Studio C++ Express from the Microsoft web site. Also you need the Microsoft Windows Platform SDK which again can be downloaded from the Microsoft web site.

Obtain the SAM extension source using pear (pecl download sam) or by using CVS and copy the files to a new "sam" directory under the "ext" directory in your PHP source tree.

To build the extension open a build environment window by going to the start menu->all programs->microsoft platform SDK for windows-> open build environment window->windows 200 build environment-> set windows 2000 build environment (retail)

This should open a command prompt with all the environment variables set up to access the platform SDK etc. You then need to set the environment variables for Visual Studio by issuing the command "vcvars32.bat" in the window.

Change directory to your working directory e.g. cd c:\php-build. Then make sure the win32build tools are accessible by adding them to the PATH environment variable:

set PATH=..\win32build\bin;%PATH%

Run the buildconf.bat command. This should rebuild the configure.js file.

Run the cscript command with the appropriate options. To build just the SAM extension framework and MQTT support use:

cscript /nologo configure.js --with-sam
To build the SAM framework and the XMS support use:
cscript /nologo configure.js --with-sam --with-sam_xms="c:\program files\ibm\xms"

The additional parameter passed for sam_xms is the installation path to the XMS libraries and runtime that were installed as described under prerequisites at the top of this page.

You can specify whatever other cscript parameters you require to include or exclude items from the php build or select options.

Assuming all has gone well so far you can now finally run a make for the SAM framework!

nmake php_sam.dll
Also if you are using the XMS support you must make the sam_xms extensions:
nmake php_sam_xms.dll

If you have used Visual Studio 2005 to build the DLLs please see below for additional steps that must be carried out before proceeding further.

The DLLs created (php_sam.dll and optionally php_sam_xms.dll) can now be copied to the subdirectory appropriate for your PHP set-up. Make sure that the module(s) are loaded by PHP, by adding following line to php.ini:

extension=php_sam.dll
If you intend to use the XMS support to access the IBM Messaging and Queuing family you must also enable the SAM XMS extension.
extension=php_sam_xms.dll

Additional steps for Visual Studio 2005

If you build the SAM extension with the Microsoft Visual Studio 2005 compiler and tools you need to perform an additional step in the build process to ensure the php_sam.dll is able to link with the C runtime libraries at runtime. This step includes the dependancy manifest into the DLL. Switch to the directory where the php_sam.dll has been generated (usually Release_TS or Debug_TS below the php source directory) and issue the following magic incantation:

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
If you are using the XMS capabilities you will need to do the same with the SAM XMS DLL:
mt.exe -manifest php_sam_xms.dll.manifest -outputresource:php_sam_xms.dll;2

If you build the SAM extension using the compiler and libraries from Microsoft Visual Studio 2005 you will also need to ensure that the runtime components are installed on the system on which you intend to use SAM. This can be accomplished by installing Visual Studio 2005 or by using the freely distributable » runtime package.

需求
运行时配置
安装/配置


运行时配置

Protocol support and mapping

The SAM framework can be extended to support other messaging protocols and connection mechanisms. To add support for a new protocol or connection library a support class has to be defined, either as a C extension or as a PHP script, and a "factory" script must be created. The support class must implement all the methods of the SAMConnection class though it should not inherit from SAMConnection. The factory script will be called by the SAM framework to create an instance of the implemented class. The way SAM chooses which factory to call is based on the protocol specified as the first parameter of the "connect" call.

By default the built-in MQTT support will be used if a connect call specifies a protocol of SAM_MQTT ("mqtt"), for any other protocol SAM will attempt to use the XMS support extension. To add support for additional protocols or to modify the default behavior entries may be added to php.ini in the [sam] section. The default mapping is equivalent to the following entries:

[sam]
sam.factory.mqtt=mqtt
sam.factory.wmq=xms
sam.factory.wmq:client=xms
sam.factory.wmq:bindings=xms
sam.factory.wpm=xms
sam.factory.rtt=xms
As can be seen from these examples the entries take the form of "sam.factory.pppp=xxx" where pppp is the protocol string specified on the connect call and xxx is a factory suffix. Note: SAM defines constants for these protocol strings such that SAM_WMQ=wmq, SAM_WPM=wpm, SAM_RTT=rtt, SAM_MQTT=mqtt, etc.

When identifying the support code to use on a connect call SAM looks up the protocol name in the php.ini entries and then invokes a factory script named sam_factory_xxx.php. If no entry is found the support will default to XMS.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SAM_AUTO (string)
Automatic behaviour
SAM_BOOLEAN (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_BUS (string)
Connect attribute used to set the name of the enterprise service bus to connect to.
SAM_BYTE (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_BYTES (string)
Message body type descriptor.
SAM_CORRELID (string)
Attribute used on receive, send and remove requests to identify specific messages.
SAM_DELIVERYMODE (string)
Message header property.
SAM_DOUBLE (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_ENDPOINTS (string)
Connect attribute used to define the possible endpoints to connect to.
SAM_FLOAT (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_HOST (string)
Connect attribute used to set the hostname of the required messaging server.
SAM_INT (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_LONG (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_MANUAL (string)
Manual (script controlled) behaviour
SAM_MESSAGEID (string)
Attribute used on receive and remove requests to identify specific messages.
SAM_MQTT (string)
Connect protocol definition for selecting the MQTT (MQ Telemetry Transport) protocol.
SAM_MQTT_CLEANSTART (bool)
Optional connect option to indicate to an MQTT server that all previous connection data for this client should be removed and that subscriptions should be deleted when the client disconnects explicitly or unexpectedly.
SAM_NON_PERSISTENT (string)
Connect attribute value used to request messages are not made persistent on the messaging server.
SAM_PASSWORD (string)
Connect attribute used to define the password to be used for the user account being used to connect to a messaging server that requires authorisation for connections.
SAM_PERSISTENT (string)
Connect attribute value used to request messages are made persistent on the messaging server to protect against loss of messages in the event of failure.
SAM_PORT (string)
Connect attribute used to set the port number on which to communicate with the messaging server.
SAM_PRIORITY (string)
Option name used on send requests to specify a delivery priority value.
SAM_REPLY_TO (string)
Message property used to specify the queue identity on to which the script expects response or reply messages to be posted.
SAM_RTT (string)
Connect protocol definition for selecting the IBM Realtime Transport protocol for communication with a business integration messaging server.
SAM_STRING (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_TARGETCHAIN (string)
Connection attribute used to set the required target chain identifier.
SAM_TEXT (string)
Message body type descriptor.
SAM_TIMETOLIVE (string)
Message send option name used to specify the length of time a message should be retained in milliseconds.
SAM_TRANSACTIONS (string)
Connection attribute used to set required transactional behaviour. May be set to SAM_AUTO (default) or SAM_MANUAL.
SAM_USERID (string)
Connect attribute used to define the account to being used to connect to a messaging server that requires authorisation for connections.
SAM_WAIT (string)
Receive property used to specify the wait timeout to be used when receiving a message from a queue or subscription.
SAM_WMQ (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with the desired messaging server.
SAM_WMQ_BINDINGS (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with a local messaging server.
SAM_WMQ_CLIENT (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with a remote messaging server.
SAM_WMQ_TARGET_CLIENT (string)
Option name used on send requests to specify the target client mode. This can either be default to 'jms' or 'mq'. The default is 'jms' which means an RFH2 header is sent with the message whereas the 'mq' setting means no RFH2 is included.
SAM_WPM (string)
Connect protocol definition for selecting the IBM WebSphere Platform Messaging protocol for communication with a WebSphere Application Server messaging server.
资源类型
范例
SAM


范例

Table of Contents

  • Connections
  • Messages
  • Messaging operations
  • Publish/Subscribe and subscriptions to topics
  • Error handling
预定义常量
Connections
SAM


Connections

In order to perform any messaging and queueing functions a connection must be established with a messaging server by creating a SAMConnection object and calling its "connect" method, with a set of connection properties, to connect the PHP script to the messaging server. Until such time as the SAMConnection object is destroyed the connection will be maintained and available for use. All SAMConnection objects are destroyed when the PHP script exits.

A set of default properties may be used in connecting to a messaging server but as a minimum the PHP script must specify a protocol to be used.

Example #1 Creating a connection and connecting to a remote WebSphere MQSeries Messaging Server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'myhost.mycompany.com',
                              SAM_PORT => 1506,
                              SAM_BROKER => 'mybroker'));
?>

Example #2 Creating a connection and connecting to a remote WebSphere Application Server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging'));
?>

Example #3 Creating a connection and connecting to an MQTT server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_MQTT, array(SAM_HOST => 'myhost.mycompany.com',
                               SAM_PORT => 1883));
?>

范例
Messages
范例


Messages

Messages sent to and received from queues are represented by the SAMMessage object. The SAMMessage object encapsulates the body of the message (if one exists) and the header properties associated with the message. A SAMMessage object is either supplied as a parameter to a messaging operation or returned as a result.

Example #1 Creating a message with a simple text body

<?php
$msg = new SAMMessage('This is a simple text message');
?>

Messages may have header properties associated with them that provide control over the transport of the message or further information to the receiving application. By default message properties are delivered to the underlying messaging system as strings and in this case they may be set with the following simple syntax:

Example #2 Setting a text format property using the default syntax

<?php
$msg->header->myPropertyName = 'textData';
?>

If it is desired to pass type information an alternative syntax may be used where the value and the type hint are passed in an associative array:

Example #3 Setting a property using a type hint

<?php
$msg->header->myPropertyName = array(3.14159, SAM_FLOAT);
?>

Properties may also be extracted from the header of a message.

Example #4 Retrieving a property from a message header

<?php
$myProperty = $msg->header->myPropertyName;
?>

Connections
Messaging operations
范例


Messaging operations

All messaging operations are performed through calls to methods on the connection object. To add a message to a queue the "send" method is used, to obtain a message from a queue the "receive" method is used. Other methods provide publish and subscribe functionality and control of transaction boundaries.

Example #1 Adding a message to a queue and receiving a response

<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

Messages
Publish/Subscribe and subscriptions to topics
范例


Publish/Subscribe and subscriptions to topics

SAM allows messages to be sent either to queues or, for WebSphere MQ and WPM, to publish/subscribe topics. A topic destination is specified to SAM in the usual way, i.e. in the form 'topic://fred', rather than the form 'queue://AQUEUE' used for point to point operation. To use publish/subscribe it is simply necessary to specify the correct broker name on the SAMConnect "connect" call and the desired topic in the destination argument to the SAMConnect "send" and "receive" calls. The PHP interface is otherwise identical to the point to point model.

By default, SAM creates non-durable subscriptions when using publish/subscribe. This means that if a client application is inactive when messages are published to a topic, then it will not receive them when it subsequently restarted. SAM does also allow durable subscriptions to be made to topics when using WPM or WebSphere MQ publish/subscribe. The purpose of these subscriptions is to allow data to be received by a client application even if that client was not active at the time the data was published.

Durable subscriptions are specified by using the SAMConnect "subscribe" call. This method takes the destination topic as an input parameter and returns a subscription identifier that may be used on subsequent "receive" calls. When the subscription is no longer required the SAMConnection "unsubscribe" method should be used to delete the subscription.

Example #1 Creating a durable subscription to a topic

<?php

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Subscribe failed";
} else {
   # Subscribe was OK
   // ...
}
?>

Example #2 Subscribing to a topic using a WebSphere Platform Messaging (WPM) server

<?php
$conn = new SAMConnection();
// Note: For pub/sub on WPM, when connecting the name of a messaging engine
//   to hold the durable subscription (SAM_WPM_DUR_SUB_HOME) must be specified.
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging'
                              SAM_WPM_DUR_SUB_HOME => 'MyMachineNode01.server1-Bus1'));

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Subscribe failed";
} else {
   # Subscribe was OK
   // ...
}
?>

Example #3 Receiving published data using a durable subscription

<?php

$msg = $conn->receive($subName);
if ($msg) {
   echo "Received a message OK";
} else {
   echo "The receive failed";
}

?>

Example #4 Deleting a durable subscription to a topic

<?php

if (!$conn->unsubscribe($subName)) {
   echo "Unsubscribe failed";
}

?>

Messaging operations
Error handling
范例


Error handling

All SAMConnection methods that provide access to messaging operations return FALSE if an error occurred in processing the request. In addition the SAMConnection object has two properties, "errno" and "error", that provide respectively the error number and text description of the last error to occur on the connection.

Example #1 Handling an error from a method that returns no result

<?php
if (!$conn->commit()) {
    // The commit failed!
    echo "Commit failed ($conn->errno) $conn->error";
}
?>

Example #2 Handling an error from a method that returns a result

<?php
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  ...
}
?>

Publish/Subscribe and subscriptions to topics
SAM 函数
范例


SAM 函数

预定义类

SAMConnection

Object representing a connection to a Messaging Server

构造函数

  • new SAMConnection - construct a new connection object to allow connection to a messaging infrastructure.

方法

  • commit - a method that commits (successfully completes) an in-flight unit of work.

  • connect - a method that connects a PHP script to a messaging server.

  • disconnect - a method that disconnects a PHP script from a messaging server.

  • isConnected - a method that checks whether a PHP script is connected to a messaging server.

  • peek - a method that receives a message from a queue without removing it from the queue.

  • peekAll - a method that receives one or messages from a queue without removing them from the queue.

  • receive - a method that receives a message from a queue or subscription.

  • remove - a method that removes a message from a queue.

  • rollback - a method that cancels (rolls back) an in-flight unit of work.

  • send - a method that sends a message to a queue or posts to a topic

  • setDebug - a method that switches additional debugging output on or off

  • subscribe - a method that creates a subscription to one or more topics

  • unsubscribe - a method that destroys a subscription to one or more topics

属性

  • errno - the numeric error code for the last encountered error on this connection. This property is set to 0 if the last operation was successful.

  • error - the text description for the last encountered error on this connection

SAMMessage

Object representing a message to be sent or received

构造函数

  • new SAMMessage - construct a new message.

属性

  • body - the body of the message.

  • header - the header properties of the message.

Table of Contents

  • SAMConnection->commit — Commits (completes) the current unit of work.
  • SAMConnection->connect — Establishes a connection to a Messaging Server
  • SAMConnection->__construct — Creates a new connection to a Messaging Server
  • SAMConnection->disconnect — Disconnects from a Messaging Server
  • SAMConnection->errno — Contains the unique numeric error code of the last executed SAM operation.
  • SAMConnection->error — Contains the text description of the last failed SAM operation.
  • SAMConnection->isConnected — Queries whether a connection is established to a Messaging Server
  • SAMConnection->peek — Read a message from a queue without removing it from the queue.
  • SAMConnection->peekAll — Read one or more messages from a queue without removing it from the queue.
  • SAMConnection->receive — Receive a message from a queue or subscription.
  • SAMConnection->remove — Remove a message from a queue.
  • SAMConnection->rollback — Cancels (rolls back) an in-flight unit of work.
  • SAMConnection->send — Send a message to a queue or publish an item to a topic.
  • SAMConnection::setDebug — Turn on or off additional debugging output.
  • SAMConnection->subscribe — Create a subscription to a specified topic.
  • SAMConnection->unsubscribe — Cancel a subscription to a specified topic.
  • SAMMessage->body — The body of the message.
  • SAMMessage->__construct — Creates a new Message object
  • SAMMessage->header — The header properties of the message.
Error handling
SAMConnection->commit
SAM


Commits (completes) the current unit of work.

SAM 函数
SAMConnection->connect
SAM 函数
PHP 手册

SAMConnection->commit

(No version information available, might be only in CVS)

SAMConnection->commit — Commits (completes) the current unit of work.

说明

SAMConnection
bool commit ( void )

Calling the "commit" method on a Connection object commits (completes) all in-flight transactions that are part of the current unit of work.

返回值

This method returns FALSE if an error occurs.

范例

Example #1 Committing the current unit of work

<?php
  if (!$conn->commit()) {
    // The commit failed!
    echo "Commit failed ($conn->errno) $conn->error";
  }
?>

参见

  • SAMConnection->rollback

SAM 函数
SAMConnection->connect
SAM 函数


Establishes a connection to a Messaging Server

SAMConnection->commit
SAMConnection->__construct
SAM 函数
PHP 手册

SAMConnection->connect

(No version information available, might be only in CVS)

SAMConnection->connect — Establishes a connection to a Messaging Server

说明

SAMConnection
bool connect ( string $protocol [, array $properties ] )

Calling the "connect" method on a SAMConnection object connects the PHP script to a messaging server. No messages can be sent or received until a connection is made.

参数

返回值

This method returns FALSE if an error occurs.

范例

Example #1 Creating a connection to a Messaging Server using the IBM MQSeries protocol (WMQ)

<?php

$conn->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com', SAM_PORT => 1506, SAM_BROKER => 'MyBroker'));

?>

Example #2 Creating a connection with application transaction control and default host and port values

<?php

$conn->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker', SAM_TRANSACTIONS => SAM_MANUAL));

?>

Example #3 Creating a connection to a Messaging Server using the IBM WebSphere Platform Messaging protocol (WPM)

<?php

$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1', SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>

参见

  • SAMConnection->isConnected
  • SAMConnection->disconnect

SAMConnection->commit
SAMConnection->__construct
SAM 函数


Creates a new connection to a Messaging Server

SAMConnection->connect
SAMConnection->disconnect
SAM 函数
PHP 手册

SAMConnection->__construct

(No version information available, might be only in CVS)

SAMConnection->__construct — Creates a new connection to a Messaging Server

说明

SAMConnection
__construct ( void )

Creates a new SAMConnection object.

范例

Example #1 Creating a connection object and connecting to a Messaging Server

<?php

$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => localhost, SAM_PORT => 1414, SAM_BROKER => 'bull'));

?>

SAMConnection->connect
SAMConnection->disconnect
SAM 函数


Disconnects from a Messaging Server

SAMConnection->__construct
SAMConnection->errno
SAM 函数
PHP 手册

SAMConnection->disconnect

(No version information available, might be only in CVS)

SAMConnection->disconnect — Disconnects from a Messaging Server

说明

SAMConnection
bool disconnect ( void )

Calling the "disconnect" method on a SAMConnection object disconnects the PHP script from a messaging server. No messages can be sent or received after a connection has been disconnected.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Disconnecting from a Messaging Server

<?php

$conn->disconnect();

?>

参见

  • SAMConnection->isConnected
  • SAMConnection->connect

SAMConnection->__construct
SAMConnection->errno
SAM 函数


Contains the unique numeric error code of the last executed SAM operation.

SAMConnection->disconnect
SAMConnection->error
SAM 函数
PHP 手册

SAMConnection->errno

(No version information available, might be only in CVS)

SAMConnection->errno — Contains the unique numeric error code of the last executed SAM operation.

Description

SAMConnection
int $errno;

Contains the numeric error code of the last executed SAM operation on this connection. If the last operation completed successfully this property contains 0.

返回值

An integer greater than zero indicates the last error type encountered on the connection. Zero indicates that the last operation on this connection completed successfully.

范例

Example #1 Using the error number and description properties

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

参见

  • SAMConnection->error

SAMConnection->disconnect
SAMConnection->error
SAM 函数


Contains the text description of the last failed SAM operation.

SAMConnection->errno
SAMConnection->isConnected
SAM 函数
PHP 手册

SAMConnection->error

(No version information available, might be only in CVS)

SAMConnection->error — Contains the text description of the last failed SAM operation.

说明

SAMConnection
string $error;

Contains the text description of the last failed SAM operation on this connection. If the last operation completed successfully this property contains an empty string.

返回值

A string containing the text description of the last error type encountered on the connection. An empty string indicates that the last operation on this connection completed successfully.

范例

Example #1 Using the error number and description properties

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

参见

  • SAMConnection->errno

SAMConnection->errno
SAMConnection->isConnected
SAM 函数


Queries whether a connection is established to a Messaging Server

SAMConnection->error
SAMConnection->peek
SAM 函数
PHP 手册

SAMConnection->isConnected

(No version information available, might be only in CVS)

SAMConnection->isConnected — Queries whether a connection is established to a Messaging Server

说明

SAMConnection
bool isConnected ( void )

Calling the "isConnected" method on a Connection object will check whether the PHP script is connected to a messaging server. No messages can be sent or received unless a connection has been established with a Messaging server.

返回值

This method returns TRUE if the SAMConnection object is successfully connected to a Messaging server or FALSE otherwise.

范例

Example #1 Checking whether there us a connection to a Messaging Server

<?php

if ($conn->isConnected()) {
  echo 'Connection is active.'
} else {
  echo 'No active connection!'
}

?>

参见

  • SAMConnection->disconnect
  • SAMConnection->connect

SAMConnection->error
SAMConnection->peek
SAM 函数


Read a message from a queue without removing it from the queue.

SAMConnection->isConnected
SAMConnection->peekAll
SAM 函数
PHP 手册

SAMConnection->peek

(No version information available, might be only in CVS)

SAMConnection->peek — Read a message from a queue without removing it from the queue.

说明

SAMConnection
SAMMessage peek ( string $target [, array $properties ] )

参数

target

The identity of the queue from which to peek the message.

properties

An optional associative array of properties describing other parameters to control the peek operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of the message. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of the message which is to be peeked.

返回值

This method returns a SAMMessage object or FALSE if an error occurs.

范例

Example #1 Retrieve the next message from a queue without removing it

<?php
$msg = $conn->peek('queue://receive/test');

if (!$msg) {
  // The peek failed!
  echo "Peek failed ($conn->errno) $conn->error";
}
?>

Example #2 Retrieve a specific message from a queue without removing it from the queue

<?php

$msg = $conn->peek('queue://receive/test', array(SAM_MESSAGEID => $messageId));

?>

参见

  • SAMConnection->peekAll

SAMConnection->isConnected
SAMConnection->peekAll
SAM 函数


Read one or more messages from a queue without removing it from the queue.

SAMConnection->peek
SAMConnection->receive
SAM 函数
PHP 手册

SAMConnection->peekAll

(No version information available, might be only in CVS)

SAMConnection->peekAll — Read one or more messages from a queue without removing it from the queue.

说明

SAMConnection
array peekAll ( string $target [, array $properties ] )

参数

target

The identity of the queue from which messages should be peeked.

properties

An optional associative array of properties describing other parameters to control the peek operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of messages to be peeked. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of a message which is to be peeked.

返回值

This method returns an array of SAMMessage objects or FALSE if an error occurs.

范例

Example #1 Retrieve all messages in a queue without removing them

<?php
$msgArray = $conn->peekAll('queue://receive/test');
if ($msgArray) {
   foreach ( $msgArray as $key => $msg) {
       echo "Message $key: body = $msg->body\n";
   }
} else {
   echo "PeekAll failed ($conn->errno) $conn->error";
}
?>

Example #2 Retrieve all messages from a queue with a matching correlation id

<?php

   $msgArray = $conn->peekAll('queue://receive/test', array(SAM_CORRELID => $correlId ));
   if ($msgArray) {

      foreach ( $msgArray as $key => $msg) {
            echo "Message $key: body = $msg->body\n";
         }
      }
   else
      echo "PeekAll failed ($conn->errno) $conn->error";
   }

?>

参见

  • SAMConnection->peek

SAMConnection->peek
SAMConnection->receive
SAM 函数


Receive a message from a queue or subscription.

SAMConnection->peekAll
SAMConnection->remove
SAM 函数
PHP 手册

SAMConnection->receive

(No version information available, might be only in CVS)

SAMConnection->receive — Receive a message from a queue or subscription.

说明

SAMConnection
SAMMessage receive ( string $target [, array $properties ] )

参数

target

The identity of the queue, topic or subscription from which to receive the message.

properties

An optional associative array of properties describing other parameters to control the receive operation.

Property name | Possible values
SAM_CORRELID | Used to request selection of the message to receive based upon the correlation id string of the message.
SAM_MESSAGEID | Used to request selection of the message to receive based upon the message id string of the message.
SAM_WAIT | Timeout value in milliseconds to control how long the request should block waiting to receive a message before returning with a failure if no message is available on the queue or topic. The default value is 0 meaning wait indefinitely and should be used with caution as the request may wait until the overall PHP script processing time limit has expired if no message becomes available.

返回值

This method returns a SAMMessage object or FALSE if an error occurs.

范例

Example #1 Receiving a message from a queue

<?php
$msg = $conn->receive('queue://receive/test');

if (!$msg) {
  // The receive failed!
  echo "Receive failed ($conn->errno) $conn->error";
}
?>

Example #2 Receiving a message from a queue with options

In this example the SAM_CORRELID option is used to specify a correlation id string to be used to identify the message to receive. A wait timeout of 10 seconds is also specified.

<?php

$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));

?>

Example #3 Receiving a message from a subscription

In this example we show how to receive a message from a subscription id.

<?php
$msg = $conn->receive($subscriptionName);

if (!$msg) {
  // The receive failed!
  echo "Receive failed ($conn->errno) $conn->error";
}
?>

Please note that $subscriptionName is a subscription id returned from an earlier subscribe call.

参见

  • SAMConnection->send

SAMConnection->peekAll
SAMConnection->remove
SAM 函数


Remove a message from a queue.

SAMConnection->receive
SAMConnection->rollback
SAM 函数
PHP 手册

SAMConnection->remove

(No version information available, might be only in CVS)

SAMConnection->remove — Remove a message from a queue.

说明

SAMConnection
SAMMessage remove ( string $target [, array $properties ] )

Removes a message from a queue.

参数

target

The identity of the queue from which to remove the message.

properties

An optional associative array of properties describing other parameters to control the remove operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of the message. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of the message which is to be removed.

返回值

This method returns FALSE if an error occurs.

范例

Example #1 Removing a message from a queue by message id

<?php
if (!$conn->remove('queue://receive/test', array(SAM_MESSAGEID => $messageId))) {
  // The remove failed!
  echo "Remove failed ($conn->errno) $conn->error";
}
?>

SAMConnection->receive
SAMConnection->rollback
SAM 函数


Cancels (rolls back) an in-flight unit of work.

SAMConnection->remove
SAMConnection->send
SAM 函数
PHP 手册

SAMConnection->rollback

(No version information available, might be only in CVS)

SAMConnection->rollback — Cancels (rolls back) an in-flight unit of work.

说明

SAMConnection
bool rollback ( void )

Rolls back an in-flight unit of work.

返回值

This method returns FALSE if an error occurs.

范例

Example #1 Cancelling an in-flight unit of work

<?php
if (!$conn->rollback()) {
  // The rollback failed!
  echo "Rollback failed ($conn->errno) $conn->error";
}
?>

参见

  • SAMConnection->commit

SAMConnection->remove
SAMConnection->send
SAM 函数


Send a message to a queue or publish an item to a topic.

SAMConnection->rollback
SAMConnection::setDebug
SAM 函数
PHP 手册

SAMConnection->send

(No version information available, might be only in CVS)

SAMConnection->send — Send a message to a queue or publish an item to a topic.

说明

SAMConnection
string send ( string $target , SAMMessage $msg [, array $properties ] )

The "send" method is used to send a message to a specific queue or to publish to a specific topic. The method returns a correlation id that can be used as a selector to identify reply or response messages when these are requested.

参数

target

If sending a message, the identity of the queue (queue://queuename) or if publishing to a topic the identity of the topic (topic://topicname) to which the message is to be delivered.

msg

The message to be sent or published.

properties

An optional associative array of properties describing other parameters to control the receive operation.

Property name | Possible values
SAM_DELIVERYMODE | Indicates whether the messaging server should ensure delivery or whether it is acceptable for messages to be lost in the case of system failures. The value of this property may be set to either SAM_PERSISTENT, to indicate that message loss is not acceptable, or SAM_NON_PERSISTENT, if message loss is acceptable. The resulting behaviour of the send will vary depending on the capabilities of the messaging server the PHP script is currently connected to. If the server does not support persistent messages and SAM_PERSISTENT is specified the send request will fail with an error indication showing the capability is not available.
SAM_PRIORITY | A numeric value between 0 and 9 indicating the desired message delivery priority. A priority value of 0 indicates the lowest priority while 9 indicates highest priority. If no priority is specified a default will be assigned which is dependent on the messaging server being used.
SAM_CORRELID | A string to be assigned as a correlation id for this message. If no value is given the messaging server may assign a value automatically.
SAM_TIMETOLIVE | A time in milliseconds indicating how long the messaging server should retain the message on a queue before discarding it. The default value is 0 indicating the message should be retained indefinitely.
SAM_WMQ_TARGET_CLIENT | This property is only valid when using WebSphere MQ and indicates whether or not an RFH2 header should be included with the message. This option may be set to either 'jms' or 'mq'. The default is 'jms' which means that an RFH2 header is included. If the value 'mq' is specified then no RFH2 is included with the message.

返回值

A correlation id string that can be used in a subsequent receive call as a selector to obtain any reply or response that has been requested or FALSE if an error occurred.

Note: A correlation id will only be returned for a successful send to a queue destination (queue://xxxx) in which case it will reflect the message identity of the message on the queue. In the case of a send being used to publish data to a topic the return value will be TRUE as no correlation id is available for return.

范例

Example #1 Send a message to a queue

<?php
$msg = new SAMMessage('This is a simple text message');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
    // The send failed!
    echo "Send failed ($conn->errno) $conn->error";
}

?>

Example #2 Publish a message to a topic

<?php
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Example #3 Send a request and receive a response

<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
} else {
    $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

参见

  • SAMConnection->receive

SAMConnection->rollback
SAMConnection::setDebug
SAM 函数


Turn on or off additional debugging output.

SAMConnection->send
SAMConnection->subscribe
SAM 函数
PHP 手册

SAMConnection::setDebug

(No version information available, might be only in CVS)

SAMConnection::setDebug — Turn on or off additional debugging output.

说明

The "setdebug" method is used to turn on or off additional debugging output. The SAM framework will provide method/function entry and exit trace data plus additional information. Protocol specific implementations also provide extra output.

SAMConnection
void send ( bool $switch )

参数

switch

If this parameter is set to TRUE additional debugging output will be provided. If the value is set to FALSE output of additional information will be stopped.

范例

Example #1 Turn on debugging output

<?php
$conn->setdebug(TRUE);
?>

Example #2 Turn off debugging output

<?php
$conn->setdebug(FALSE);
?>

SAMConnection->send
SAMConnection->subscribe
SAM 函数


Create a subscription to a specified topic.

SAMConnection::setDebug
SAMConnection->unsubscribe
SAM 函数
PHP 手册

SAMConnection->subscribe

(No version information available, might be only in CVS)

SAMConnection->subscribe — Create a subscription to a specified topic.

说明

SAMConnection
string subscribe ( string $targetTopic )

The "subscribe" method is used to create a new subscription to a specified topic.

参数

targetTopic

The identity of the topic (topic://topicname) to subscribe to.

返回值

A subscription identifier that can be used in a subsequent receive call as a selector to obtain any topic data or FALSE if an error occurred. The subscription identifier should be used in the receive call in place of the simple topic name.

范例

Example #1 Subscribe to a topic

<?php
$subid = $conn->subscribe('topic://A');
if (!$subid) {
  // The subscribe failed!
  echo "Subscribe failed ($conn->errno) $conn->error";
}
?>

参见

  • SAMConnection->unsubscribe

SAMConnection::setDebug
SAMConnection->unsubscribe
SAM 函数


Cancel a subscription to a specified topic.

SAMConnection->subscribe
SAMMessage->body
SAM 函数
PHP 手册

SAMConnection->unsubscribe

(No version information available, might be only in CVS)

SAMConnection->unsubscribe — Cancel a subscription to a specified topic.

说明

SAMConnection
bool unsubscribe ( string $subscriptionId [, string $targetTopic ] )

The "unsubscribe" method is used to delete an existing subscription to a specified topic.

参数

subscriptionId

The identifier of an existing subscription as returned by a call to the subscribe method.

返回值

This method returns FALSE if an error occurs.

范例

Example #1 Delete a subscription

<?php
if (!$conn->unsubscribe($subid)) {
    // The unsubscribe failed!
    echo "Unsubscribe failed ($conn->errno) $conn->error";
}
?>

参见

  • SAMConnection->subscribe

SAMConnection->subscribe
SAMMessage->body
SAM 函数


The body of the message.

SAMConnection->unsubscribe
SAMMessage->__construct
SAM 函数
PHP 手册

SAMMessage->body

(No version information available, might be only in CVS)

SAMMessage->body — The body of the message.

说明

SAMMessage
string $nody;

The "body" property contains the actual body of the message. It may not always be set.

范例

Example #1 Setting a text string into the body of a message

<?php
$msg = new SAMMessage();
$msg->body = 'This is a simple message';

?>

参见

  • SAMMessage->header

SAMConnection->unsubscribe
SAMMessage->__construct
SAM 函数


Creates a new Message object

SAMMessage->body
SAMMessage->header
SAM 函数
PHP 手册

SAMMessage->__construct

(No version information available, might be only in CVS)

SAMMessage->__construct — Creates a new Message object

说明

SAMMessage
__construct ([ mixed $body ] )

Creates a new SAMMessage object optionally specifying a message body.

参数

body

The optional body for the message.

范例

Example #1 Creating a message

<?php

$msg = new SAMMessage();

?>

Example #2 Creating a message with a simple text payload

<?php

$msg = new SAMMessage('This is a simple text message');

?>

SAMMessage->body
SAMMessage->header
SAM 函数


The header properties of the message.

SAMMessage->__construct
SNMP
SAM 函数
PHP 手册

SAMMessage->header

(No version information available, might be only in CVS)

SAMMessage->header — The header properties of the message.

说明

SAMMessage
object $header;

The header property is a container for any system or user properties that area associated with the message.

Properties may be assigned by the sender of a message to control the way the messaging systems handles it or may be assigned by the messaging system itself to tell the recipient extra information about the message or the way in which it has been handled.

Some properties are understood by SAM in which case constants have been defined for them. The majority of properties however are ignored by the SAM implementation and simply passed through to the underlying messaging systems allowing the application to use messaging specific property names or to define its own "user" properties.

The SAM defined properties are as follows:

Property name | Possible values
SAM_MESSAGEID | When a message is received this field contains the unique identifier of the message as allocated by the underlying messaging system. When sending a message this field is ignored.
SAM_REPLY_TO | A string providing the identity of the queue on to which responses to this message should be posted.
SAM_TYPE

An indication of the type of message to be sent. The value may be SAM_TEXT indicating the contents of the message body is a text string, or SAM_BYTES indicating the contents of the message body are some application defined format.

The way in which this property is used may depend on the underlying messaging server. For instance a messaging server that supports the JMS (Java Message Service) specification may interpret this value and send messages of type "jms_text" and "jms_bytes". In addition, if the SAM_TYPE property is set to SAM_TEXT the data provided for the message body is expected to be a UTF8 encoded string.

When setting the values of properties it is often useful to give a hint as to the format in which the property should be delivered to the messaging system. By default property values are delivered as text and the following simple syntax may be used to set a value:

Example #1 Setting a text format property using the default syntax

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = 'textData';
?>

If it is desired to pass type information an alternative syntax may be used where the value and the type hint are passed in an associative array:

Example #2 Setting a text format property using a type hint

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = array('textData', SAM_STRING);
?>

When passing a type hint the type entry should be one of the SAM defined constant values as defined by the following table:

Constant | Type description
SAM_BOOLEAN | Any value passed will be interpreted as logical true or false. If the value cannot be interpreted as a PHP boolean value the value passed to the messaging system is undefined.
SAM_BYTE | An 8-bit signed integer value. SAM will attempt to convert the property value specified into a single byte value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 8-bit signed binary value data may be lost in the conversion.
SAM_DOUBLE | A long floating point value. SAM will attempt to convert the property value specified into a floating point value with 15 digits of precision. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the passed value cannot be expressed as a 15 digit floating point value data may be lost in the conversion.
SAM_FLOAT | A short floating point value. SAM will attempt to convert the property value specified into a floating point value with 7 digits of precision. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the passed value cannot be expressed as a 7 digit floating point value data may be lost in the conversion.
SAM_INT | An 32-bit signed integer value. SAM will attempt to convert the property value specified into a 32-bit value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 32-bit signed binary value data may be lost in the conversion.
SAM_LONG | An 64-bit signed integer value. SAM will attempt to convert the property value specified into a 64-bit value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 64-bit signed binary value data may be lost in the conversion.
SAM_STRING | SAM will interpret the property value specified as a string and pass it to the messaging system accordingly.

范例

Example #3 Setting properties as the sender of a message

<?php
$msg = new SAMMessage('This is a test message');

// defining SAM specific properties...
$msg->header->SAM_REPLY_TO = 'queue://test/replyQueue';

// defining arbitrary properties...
//
// a default string property
$msg->header->myStringProp1 = 'a string property';
// a string property with a type hint
$msg->header->myStringProp2 = array('another string property', SAM_STRING);

// a boolean property
$msg->header->myBoolProp = array(FALSE, SAM_BOOL);

// numeric format properties
$msg->header->myIntProp = array(32768, SAM_INT);
$msg->header->myLongProp = array(9876543, SAM_LONG);
$msg->header->myByteProp1 = array(123, SAM_BYTE);
$msg->header->myByteProp2 = array('12', SAM_BYTE);
$msg->header->myFloatProp = array(3.141592, SAM_FLOAT);
$msg->header->myDoubleProp = array(3.14159265358979, SAM_DOUBLE);
?>

Example #4 Retreiving property values from a message

<?php

// accessing an application specific property
$intProp = $msg->header->'MyIntProp';

// accessing a messaging system specific property
$encoding = $msg->header->'JMS_IBM_Msgtype';

?>

参见

  • SAMMessage->body

SAMMessage->__construct
SNMP
SAM 函数


SNMP

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SNMP 函数
    • snmp_get_quick_print — 返回 UCD 库中 quick_print 设置的当前值
    • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
    • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print — Return all objects including their respective object id within the specified one
    • snmp_set_oid_output_format — Set the OID output format
    • snmp_set_quick_print — 设置 UCD SNMP 库中 quick_print 的值
    • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
    • snmpget — 获取一个 SNMP 对象
    • snmpgetnext — Fetch a SNMP object
    • snmprealwalk — 返回指定的所有对象，包括它们各自的对象 ID
    • snmpset — 设置一个 SNMP 对象
    • snmpwalk — 从代理返回所有的 SNMP 对象
    • snmpwalkoid — 查询关于网络实体的信息树
SAMMessage->header
简介
其它服务


简介

SNMP Functions.

SNMP
安装/配置
SNMP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SNMP


需求

In order to use the SNMP functions on Unix you need to install the » NET-SNMP package. On Windows these functions are only available on NT and not on Win95/98.

安装/配置
安装
安装/配置


安装

重要提示：为了使用 UCD SNMP 包，需要在编译之前将 NO_ZEROLENGTH_COMMUNITY 定义为 1。 在配置 UCD SNMP 之后，编辑 config.h 或 acconfig.h，查找 NO_ZEROLENGTH_COMMUNITY，将 #define 所在行的注释去掉。修改后应该类似这样：

#define NO_ZEROLENGTH_COMMUNITY 1

然后使用 --with-snmp[=DIR] 选项编译 PHP。

如果在组合 SNMP 命令时看到奇怪的字段错误，那就是因为没有遵从上述说明。如果不想重新编译 UCD SNMP，可以使用 --enable-ucd-snmp-hack 开关编译 PHP 以绕开上述错误。

Windows 版本在目录 mibs 中包含了支持 SNMP 的文件。此目录应该移到 DRIVE:\usr\mibs，其中 DRIVE 是安装 PHP 所在的盘符，例如 c:\usr\mibs。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SNMP_OID_OUTPUT_FULL (integer)
As of 5.2.0
SNMP_OID_OUTPUT_NUMERIC (integer)
As of 5.2.0
SNMP_VALUE_LIBRARY (integer)
SNMP_VALUE_PLAIN (integer)
SNMP_VALUE_OBJECT (integer)
SNMP_BIT_STR (integer)
SNMP_OCTET_STR (integer)
SNMP_OPAQUE (integer)
SNMP_NULL (integer)
SNMP_OBJECT_ID (integer)
SNMP_IPADDRESS (integer)
SNMP_COUNTER (integer)
SNMP_UNSIGNED (integer)
SNMP_TIMETICKS (integer)
SNMP_UINTEGER (integer)
SNMP_INTEGER (integer)
SNMP_COUNTER64 (integer)
资源类型
SNMP 函数
SNMP


SNMP 函数

Table of Contents

  • snmp_get_quick_print — 返回 UCD 库中 quick_print 设置的当前值
  • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
  • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
  • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
  • snmp_set_oid_numeric_print — Return all objects including their respective object id within the specified one
  • snmp_set_oid_output_format — Set the OID output format
  • snmp_set_quick_print — 设置 UCD SNMP 库中 quick_print 的值
  • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
  • snmpget — 获取一个 SNMP 对象
  • snmpgetnext — Fetch a SNMP object
  • snmprealwalk — 返回指定的所有对象，包括它们各自的对象 ID
  • snmpset — 设置一个 SNMP 对象
  • snmpwalk — 从代理返回所有的 SNMP 对象
  • snmpwalkoid — 查询关于网络实体的信息树
预定义常量
snmp_get_quick_print
SNMP


返回 UCD 库中 quick_print 设置的当前值

SNMP 函数
snmp_get_valueretrieval
SNMP 函数
PHP 手册

snmp_get_quick_print

(PHP 4, PHP 5)

snmp_get_quick_print — 返回 UCD 库中 quick_print 设置的当前值

说明

bool snmp_get_quick_print ( void )

返回保存在 UCD 库中 quick_print 的当前值。默认情况下 quick_print 为 off。

Example #1 snmp_get_quick_print() 示例

<?php
  $quickprint = snmp_get_quick_print();
?>

如果 quick_print 为 off，上边的函数调用将返回 FALSE，而如果 quick_print 为 on，则返回 TRUE。

snmp_get_quick_print() 仅在使用了 UCD SNMP 库时才可用。当使用 Windows SNMP 库时，此函数不可用。

参见 snmp_set_quick_print() 查看 quick_print 的详细说明。

SNMP 函数
snmp_get_valueretrieval
SNMP 函数


Return the method how the SNMP values will be returned

snmp_get_quick_print
snmp_read_mib
SNMP 函数
PHP 手册

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_get_valueretrieval — Return the method how the SNMP values will be returned

说明

int snmp_get_valueretrieval ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • snmp_set_valueretrieval() - Specify the method how the SNMP values will be returned

snmp_get_quick_print
snmp_read_mib
SNMP 函数


Reads and parses a MIB file into the active MIB tree

snmp_get_valueretrieval
snmp_set_enum_print
SNMP 函数
PHP 手册

snmp_read_mib

(PHP 5)

snmp_read_mib — Reads and parses a MIB file into the active MIB tree

说明

bool snmp_read_mib ( string $filename )
Warning

本函数暂无文档，仅有参数列表。

snmp_get_valueretrieval
snmp_set_enum_print
SNMP 函数


Return all values that are enums with their enum value instead of the raw integer

snmp_read_mib
snmp_set_oid_numeric_print
SNMP 函数
PHP 手册

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer

说明

void snmp_set_enum_print ( int $enum_print )
Warning

本函数暂无文档，仅有参数列表。

注释

Note: snmp_set_enum_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

snmp_read_mib
snmp_set_oid_numeric_print
SNMP 函数


Return all objects including their respective object id within the specified one

snmp_set_enum_print
snmp_set_oid_output_format
SNMP 函数
PHP 手册

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_oid_numeric_print — Return all objects including their respective object id within the specified one

说明

void snmp_set_oid_numeric_print ( int $oid_numeric_print )
Warning

本函数暂无文档，仅有参数列表。

更新日志

版本 | 说明
5.2.0 | Since PHP 5.2.0, 本函数是该函数的别名： snmp_set_oid_output_format().

参见

  • snmp_set_oid_output_format() - Set the OID output format

snmp_set_enum_print
snmp_set_oid_output_format
SNMP 函数


Set the OID output format

snmp_set_oid_numeric_print
snmp_set_quick_print
SNMP 函数
PHP 手册

snmp_set_oid_output_format

(PHP 5 >= 5.2.0)

snmp_set_oid_output_format — Set the OID output format

说明

void snmp_set_oid_output_format ( int $oid_format )

snmp_set_oid_output_format() sets the output format to be full or numeric.

参数

oid_format

Set it to SNMP_OID_OUTPUT_FULL if you want a full output, SNMP_OID_OUTPUT_NUMERIC otherwise.

返回值

无返回值。

注释

Note: snmp_set_oid_output_format() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

snmp_set_oid_numeric_print
snmp_set_quick_print
SNMP 函数


设置 UCD SNMP 库中 quick_print 的值

snmp_set_oid_output_format
snmp_set_valueretrieval
SNMP 函数
PHP 手册

snmp_set_quick_print

(PHP 4, PHP 5)

snmp_set_quick_print — 设置 UCD SNMP 库中 quick_print 的值

说明

void snmp_set_quick_print ( bool $quick_print )

设置 UCD SNMP 库中 quick_print 的值。当此值被设置（1），SNMP 库将返回‘快速打印’值。这意味着将只打印值。当 quick_print 被禁用时（此为默认情况），UCD SNMP 库将打印出额外信息，包括值的类型（如 IpAddress 或 OID）。此外，如果 quick_print 是禁用的，UCD SNMP 库将为所有字符串额外打印出三个或更少字符的十六进制值。

当需要使用返回的信息而不是显示它时，经常会用到设置 quick_print。

<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a< br />\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<br />\n";
?>

第一个打印出来的值可能时：'Timeticks: (0) 0:00:00.00'，然而当设置了 quick_print 之后，只是打印 '0:00:00.00'。

默认情况下 UCD SNMP 库返回冗余的值，而 quick_print 则用来只返回值。

现时，字符串依然返回额外的引号，这将会在后续发行版中更正。

snmp_set_quick_print() 仅在使用了 UCD SNMP 库时才可用。当使用 Windows SNMP 库时，此函数不可用。

snmp_set_oid_output_format
snmp_set_valueretrieval
SNMP 函数


Specify the method how the SNMP values will be returned

snmp_set_quick_print
snmpget
SNMP 函数
PHP 手册

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_set_valueretrieval — Specify the method how the SNMP values will be returned

说明

void snmp_set_valueretrieval ( int $method )
Warning

本函数暂无文档，仅有参数列表。

参见

  • snmp_get_valueretrieval() - Return the method how the SNMP values will be returned

snmp_set_quick_print
snmpget
SNMP 函数


获取一个 SNMP 对象

snmp_set_valueretrieval
snmpgetnext
SNMP 函数
PHP 手册

snmpget

(PHP 4, PHP 5)

snmpget — 获取一个 SNMP 对象

说明

string snmpget ( string $hostname , string $community , string $object_id [, int $timeout [, int $retries ]] )

成功则返回 SNMP 的对象值，失败则返回 FALSE。

函数 snmpget() 用于读取由 object_id 指定的 SNMP 对象值。hostname 指定 SNMP 代理，而 community 参数指定具有读权限的域的名字。

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

snmp_set_valueretrieval
snmpgetnext
SNMP 函数


Fetch a SNMP object

snmpget
snmprealwalk
SNMP 函数
PHP 手册

snmpgetnext

(PHP 5)

snmpgetnext — Fetch a SNMP object

说明

string snmpgetnext ( string $host , string $community , string $object_id [, int $timeout [, int $retries ]] )
Warning

本函数暂无文档，仅有参数列表。

snmpget
snmprealwalk
SNMP 函数


返回指定的所有对象，包括它们各自的对象 ID

snmpgetnext
snmpset
SNMP 函数
PHP 手册

snmprealwalk

(PHP 4, PHP 5)

snmprealwalk — 返回指定的所有对象，包括它们各自的对象 ID

说明

array snmprealwalk ( string $host , string $community , string $object_id [, int $timeout [, int $retries ]] )

Warning

本函数暂无文档，仅有参数列表。

snmpgetnext
snmpset
SNMP 函数


设置一个 SNMP 对象

snmprealwalk
snmpwalk
SNMP 函数
PHP 手册

snmpset

(PHP 4, PHP 5)

snmpset — 设置一个 SNMP 对象

说明

bool snmpset ( string $hostname , string $community , string $object_id , string $type , mixed $value [, int $timeout [, int $retries ]] )

设置指定的 SNMP 对象的值，成功返回 TRUE，错误则返回 FALSE。

函数 snmpset() 用于设置由 object_id 指定的 SNMP 对象的值。hostname 指定 SNMP 代理，而 community 参数指定具有读权限的域。

snmprealwalk
snmpwalk
SNMP 函数


从代理返回所有的 SNMP 对象

snmpset
snmpwalkoid
SNMP 函数
PHP 手册

snmpwalk

(PHP 4, PHP 5)

snmpwalk — 从代理返回所有的 SNMP 对象

说明

array snmpwalk ( string $hostname , string $community , string $object_id [, int $timeout [, int $retries ]] )

返回由 object_id 作为根的 SNMP 对象值所组成的数组，错误则返回 FALSE。

snmpwalk() 函数是用来读取所有由 hostname 指定的 SNMP 代理的值。Community 指定该代理中具有读权限的域。一个为 NULL 的 object_id 将被看作 SNMP 对象树的根，而在此树下的所有对象将作为一个数组被返回。如果指定了 object_id ，则返回所有在 object_id 下的 SNMP 对象。

<?php
$a = snmpwalk("127.0.0.1", "public", "");
?>

上边的函数调用将从运行于本机的 SNMP 代理那里返回所有的 SNMP 对象。可使用循环遍历这些值。

<?php
foreach ($a as $val) {
    echo "$val\n";
}
?>

snmpset
snmpwalkoid
SNMP 函数


查询关于网络实体的信息树

snmpwalk
Sockets
SNMP 函数
PHP 手册

snmpwalkoid

(PHP 4, PHP 5)

snmpwalkoid — 查询关于网络实体的信息树

说明

array snmpwalkoid ( string $hostname , string $community , string $object_id [, int $timeout [, int $retries ]] )

返回一个包含对象 id 及它们各自对象值的关联数组，这些对象以 object_id 作为根，错误则返回 FALSE。

snmpwalkoid() 用于从 hostname 所指定的 SNMP 代理那里读取所有对象 id 及它们各自的值。community 指定对于该代理有读权限的域。一个为 NULL 的 object_id 将被看作 SNMP 对象树的根，而在此树下的所有对象将作为一个数组被返回。如果指定了 object_id ，则返回所有在 object_id 下的 SNMP 对象。

snmpwalkoid() 和 snmpwalk() 的同时存在出于历史原因。提供两个函数是为了向后兼容。

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
?>

上边的函数调用将从运行于本机的 SNMP 代理那里返回所有的 SNMP 对象。可使用循环遍历这些值。

<?php
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

snmpwalk
Sockets
SNMP 函数


Sockets

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Socket Errors
  • Socket 函数
    • socket_accept — Accepts a connection on a socket
    • socket_bind — Binds a name to a socket
    • socket_clear_error — Clears the error on the socket or the last error code
    • socket_close — Closes a socket resource
    • socket_connect — Initiates a connection on a socket
    • socket_create_listen — Opens a socket on port to accept connections
    • socket_create_pair — Creates a pair of indistinguishable sockets and stores them in an array
    • socket_create — Create a socket (endpoint for communication)
    • socket_get_option — Gets socket options for the socket
    • socket_getpeername — Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
    • socket_getsockname — Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
    • socket_last_error — Returns the last error on the socket
    • socket_listen — Listens for a connection on a socket
    • socket_read — Reads a maximum of length bytes from a socket
    • socket_recv — Receives data from a connected socket
    • socket_recvfrom — Receives data from a socket whether or not it is connection-oriented
    • socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout
    • socket_send — Sends data to a connected socket
    • socket_sendto — Sends a message to a socket, whether it is connected or not
    • socket_set_block — Sets blocking mode on a socket resource
    • socket_set_nonblock — Sets nonblocking mode for file descriptor fd
    • socket_set_option — Sets socket options for the socket
    • socket_shutdown — Shuts down a socket for receiving, sending, or both
    • socket_strerror — Return a string describing a socket error
    • socket_write — Write to a socket
snmpwalkoid
简介
其它服务


简介

The socket extension implements a low-level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client.

For a more generic client-side socket interface, see
stream_socket_client(),
stream_socket_server(),
fsockopen(), and
pfsockopen().

When using these functions, it is important to remember that while many of them have identical names to their C counterparts, they often have different declarations. Please be sure to read the descriptions to avoid confusion.

Those unfamiliar with socket programming can find a lot of useful material in the appropriate Unix man pages, and there is a great deal of tutorial information on socket programming in C on the web, much of which can be applied, with slight modifications, to socket programming in PHP. The » Unix Socket FAQ might be a good start.

Sockets
安装/配置
Sockets


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Sockets


安装

The socket functions described here are part of an extension to PHP which must be enabled at compile time by giving the --enable-sockets option to configure.

Note: IPv6 支持是 PHP 5.0.0 新加的。

需求
运行时配置
安装/配置


资源类型

socket_accept(),
socket_create_listen() and
socket_create() return socket resources.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

AF_UNIX (integer)
AF_INET (integer)
AF_INET6 (integer)
Only available if compiled with IPv6 support.
SOCK_STREAM (integer)
SOCK_DGRAM (integer)
SOCK_RAW (integer)
SOCK_SEQPACKET (integer)
SOCK_RDM (integer)
MSG_OOB (integer)
MSG_WAITALL (integer)
MSG_PEEK (integer)
MSG_DONTROUTE (integer)
MSG_EOR (integer)
Not available on Windows platforms.
MSG_EOF (integer)
Not available on Windows platforms.
SO_DEBUG (integer)
SO_REUSEADDR (integer)
SO_KEEPALIVE (integer)
SO_DONTROUTE (integer)
SO_LINGER (integer)
SO_BROADCAST (integer)
SO_OOBINLINE (integer)
SO_SNDBUF (integer)
SO_RCVBUF (integer)
SO_SNDLOWAT (integer)
SO_RCVLOWAT (integer)
SO_SNDTIMEO (integer)
SO_RCVTIMEO (integer)
SO_TYPE (integer)
SO_ERROR (integer)
SOL_SOCKET (integer)
PHP_NORMAL_READ (integer)
PHP_BINARY_READ (integer)
SOL_TCP (integer)
SOL_UDP (integer)

The following constants are only defined under Windows.

SOCKET_EINTR (integer)
SOCKET_EBADF (integer)
SOCKET_EACCES (integer)
SOCKET_EFAULT (integer)
SOCKET_EINVAL (integer)
SOCKET_EMFILE (integer)
SOCKET_EWOULDBLOCK (integer)
SOCKET_EINPROGRESS (integer)
SOCKET_EALREADY (integer)
SOCKET_ENOTSOCK (integer)
SOCKET_EDESTADDRREQ (integer)
SOCKET_EMSGSIZE (integer)
SOCKET_EPROTOTYPE (integer)
SOCKET_ENOPROTOOPT (integer)
SOCKET_EPROTONOSUPPORT (integer)
SOCKET_ESOCKTNOSUPPORT (integer)
SOCKET_EOPNOTSUPP (integer)
SOCKET_EPFNOSUPPORT (integer)
SOCKET_EAFNOSUPPORT (integer)
SOCKET_EADDRINUSE (integer)
SOCKET_EADDRNOTAVAIL (integer)
SOCKET_ENETDOWN (integer)
SOCKET_ENETUNREACH (integer)
SOCKET_ENETRESET (integer)
SOCKET_ECONNABORTED (integer)
SOCKET_ECONNRESET (integer)
SOCKET_ENOBUFS (integer)
SOCKET_EISCONN (integer)
SOCKET_ENOTCONN (integer)
SOCKET_ESHUTDOWN (integer)
SOCKET_ETOOMYREFS (integer)
SOCKET_ETIMEDOUT (integer)
SOCKET_ECONNREFUSED (integer)
SOCKET_ELOOP (integer)
SOCKET_ENAMETOOLONG (integer)
SOCKET_EHOSTDOWN (integer)
SOCKET_EHOSTUNREACH (integer)
SOCKET_ENOTEMPTY (integer)
SOCKET_EPROCLIM (integer)
SOCKET_EUSERS (integer)
SOCKET_EDUOT (integer)
SOCKET_ESTALE (integer)
SOCKET_EREMOTE (integer)
SOCKET_EDISCON (integer)
SOCKET_SYSNOTREADY (integer)
SOCKET_VERNOTSUPPORTED (integer)
SOCKET_NOTINITIALISED (integer)
SOCKET_HOST_NOT_FOUND (integer)
SOCKET_TRY_AGAIN (integer)
SOCKET_NO_RECOVERY (integer)
SOCKET_NO_DATA (integer)
SOCKET_NO_ADDRESS (integer)

The following constants are only available on UNIX-like platforms. Each constant is only defined if their equal is available on the platform.

SOCKET_EPERM (integer)
Operation not permitted.
SOCKET_ENOENT (integer)
No such file or directory.
SOCKET_EINTR (integer)
Interrupted system call.
SOCKET_EIO (integer)
I/O error.
SOCKET_ENXIO (integer)
No such device or address.
SOCKET_E2BIG (integer)
Arg list too long.
SOCKET_EBADF (integer)
Bad file number.
SOCKET_EAGAIN (integer)
Try again.
SOCKET_ENOMEM (integer)
Out of memory.
SOCKET_EACCES (integer)
Permission denied.
SOCKET_EFAULT (integer)
Bad address.
SOCKET_ENOTBLK (integer)
Block device required.
SOCKET_EBUSY (integer)
Device or resource busy.
SOCKET_EEXIST (integer)
File exists.
SOCKET_EXDEV (integer)
Cross-device link.
SOCKET_ENODEV (integer)
No such device.
SOCKET_ENOTDIR (integer)
Not a directory.
SOCKET_EISDIR (integer)
Is a directory.
SOCKET_EINVAL (integer)
Invalid argument.
SOCKET_ENFILE (integer)
File table overflow.
SOCKET_EMFILE (integer)
Too many open files.
SOCKET_ENOTTY (integer)
Not a typewriter.
SOCKET_ENOSPC (integer)
No space left on device.
SOCKET_ESPIPE (integer)
Illegal seek.
SOCKET_EROFS (integer)
Read-only file system.
SOCKET_EMLINK (integer)
Too many links.
SOCKET_EPIPE (integer)
Broken pipe.
SOCKET_ENAMETOOLONG (integer)
File name too long.
SOCKET_ENOLCK (integer)
No record locks available.
SOCKET_ENOSYS (integer)
Function not implemented.
SOCKET_ENOTEMPTY (integer)
Directory not empty.
SOCKET_ELOOP (integer)
Too many symbolic links encountered.
SOCKET_EWOULDBLOCK (integer)
Operation would block.
SOCKET_ENOMSG (integer)
No message of desired type.
SOCKET_EIDRM (integer)
Identifier removed.
SOCKET_ECHRNG (integer)
Channel number out of range.
SOCKET_EL2NSYNC (integer)
Level 2 not synchronized.
SOCKET_EL3HLT (integer)
Level 3 halted.
SOCKET_EL3RST (integer)
Level 3 reset.
SOCKET_ELNRNG (integer)
Link number out of range.
SOCKET_EUNATCH (integer)
Protocol driver not attached.
SOCKET_ENOCSI (integer)
No CSI structure available.
SOCKET_EL2HLT (integer)
Level 2 halted.
SOCKET_EBADE (integer)
Invalid exchange.
SOCKET_EBADR (integer)
Invalid request descriptor.
SOCKET_EXFULL (integer)
Exchange full.
SOCKET_ENOANO (integer)
No anode.
SOCKET_EBADRQC (integer)
Invalid request code.
SOCKET_EBADSLT (integer)
Invalid slot.
SOCKET_ENOSTR (integer)
Device not a stream.
SOCKET_ENODATA (integer)
No data available.
SOCKET_ETIME (integer)
Timer expired.
SOCKET_ENOSR (integer)
Out of streams resources.
SOCKET_ENONET (integer)
Machine is not on the network.
SOCKET_EREMOTE (integer)
Object is remote.
SOCKET_ENOLINK (integer)
Link has been severed.
SOCKET_EADV (integer)
Advertise error.
SOCKET_ESRMNT (integer)
Srmount error.
SOCKET_ECOMM (integer)
Communication error on send.
SOCKET_EPROTO (integer)
Protocol error.
SOCKET_EMULTIHOP (integer)
Multihop attempted.
SOCKET_EBADMSG (integer)
Not a data message.
SOCKET_ENOTUNIQ (integer)
Name not unique on network.
SOCKET_EBADFD (integer)
File descriptor in bad state.
SOCKET_ERMCHG (integer)
Remote address changed.
SOCKET_ERESTART (integer)
Interrupted system call should be restarted.
SOCKET_ESTRPIPE (integer)
Streams pipe error.
SOCKET_EUSERS (integer)
Too many users.
SOCKET_ENOTSOCK (integer)
Socket operation on non-socket.
SOCKET_EDESTADDRREQ (integer)
Destination address required.
SOCKET_EMSGSIZE (integer)
Message too long.
SOCKET_EPROTOTYPE (integer)
Protocol wrong type for socket.
SOCKET_EPROTOOPT (integer)
Protocol not available.
SOCKET_EPROTONOSUPPORT (integer)
Protocol not supported.
SOCKET_ESOCKTNOSUPPORT (integer)
Socket type not supported.
SOCKET_EOPNOTSUPP (integer)
Operation not supported on transport endpoint.
SOCKET_EPFNOSUPPORT (integer)
Protocol family not supported.
SOCKET_EAFNOSUPPORT (integer)
Address family not supported by protocol.
SOCKET_ADDRINUSE (integer)
Address already in use.
SOCKET_EADDRNOTAVAIL (integer)
Cannot assign requested address.
SOCKET_ENETDOWN (integer)
Network is down.
SOCKET_ENETUNREACH (integer)
Network is unreachable.
SOCKET_ENETRESET (integer)
Network dropped connection because of reset.
SOCKET_ECONNABORTED (integer)
Software caused connection abort.
SOCKET_ECONNRESET (integer)
Connection reset by peer.
SOCKET_ENOBUFS (integer)
No buffer space available.
SOCKET_EISCONN (integer)
Transport endpoint is already connected.
SOCKET_ENOTCONN (integer)
Transport endpoint is not connected.
SOCKET_ESHUTDOWN (integer)
Cannot send after transport endpoint shutdown.
SOCKET_ETOOMANYREFS (integer)
Too many references: cannot splice.
SOCKET_ETIMEDOUT (integer)
Connection timed out.
SOCKET_ECONNREFUSED (integer)
Connection refused.
SOCKET_EHOSTDOWN (integer)
Host is down.
SOCKET_EHOSTUNREACH (integer)
No route to host.
SOCKET_EALREADY (integer)
Operation already in progress.
SOCKET_EINPROGRESS (integer)
Operation now in progress.
SOCKET_EISNAM (integer)
Is a named type file.
SOCKET_EREMOTEIO (integer)
Remote I/O error.
SOCKET_EDQUOT (integer)
Quota exceeded.
SOCKET_ENOMEDIUM (integer)
No medium found.
SOCKET_EMEDIUMTYPE (integer)
Wrong medium type.
资源类型
范例
Sockets


范例

Example #1 Socket example: Simple TCP/IP server

This example shows a simple talkback server. Change the address and port variables to suit your setup and execute. You may then connect to the server with a command similar to: telnet 192.168.1.53 10000 (where the address and port match your setup). Anything you type will then be output on the server side, and echoed back to you. To disconnect, enter 'quit'.

<?php
error_reporting(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

/* Turn on implicit output flushing so we see what we're getting
 * as it comes in. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
    echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Send instructions. */
    $msg = "\nWelcome to the PHP Test Server. \n" .
        "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Example #2 Socket example: Simple TCP/IP client

This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits.

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>

预定义常量
Socket Errors
Sockets


Socket Errors

The socket extension was written to provide a usable interface to the powerful BSD sockets. Care has been taken that the functions work equally well on Win32 and Unix implementations. Almost all of the sockets functions may fail under certain conditions and therefore emit an E_WARNING message describing the error. Sometimes this doesn't happen to the desire of the developer. For example the function socket_read() may suddenly emit an E_WARNING message because the connection broke unexpectedly. It's common to suppress the warning with the @-operator and catch the error code within the application with the socket_last_error() function. You may call the socket_strerror() function with this error code to retrieve a string describing the error. See their description for more information.

Note: The E_WARNING messages generated by the socket extension are in English though the retrieved error message will appear depending on the current locale (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet

范例
Socket 函数
Sockets


Socket 函数

Table of Contents

  • socket_accept — Accepts a connection on a socket
  • socket_bind — Binds a name to a socket
  • socket_clear_error — Clears the error on the socket or the last error code
  • socket_close — Closes a socket resource
  • socket_connect — Initiates a connection on a socket
  • socket_create_listen — Opens a socket on port to accept connections
  • socket_create_pair — Creates a pair of indistinguishable sockets and stores them in an array
  • socket_create — Create a socket (endpoint for communication)
  • socket_get_option — Gets socket options for the socket
  • socket_getpeername — Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
  • socket_getsockname — Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
  • socket_last_error — Returns the last error on the socket
  • socket_listen — Listens for a connection on a socket
  • socket_read — Reads a maximum of length bytes from a socket
  • socket_recv — Receives data from a connected socket
  • socket_recvfrom — Receives data from a socket whether or not it is connection-oriented
  • socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout
  • socket_send — Sends data to a connected socket
  • socket_sendto — Sends a message to a socket, whether it is connected or not
  • socket_set_block — Sets blocking mode on a socket resource
  • socket_set_nonblock — Sets nonblocking mode for file descriptor fd
  • socket_set_option — Sets socket options for the socket
  • socket_shutdown — Shuts down a socket for receiving, sending, or both
  • socket_strerror — Return a string describing a socket error
  • socket_write — Write to a socket
Socket Errors
socket_accept
Sockets


Accepts a connection on a socket

Socket 函数
socket_bind
Socket 函数
PHP 手册

socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_accept — Accepts a connection on a socket

说明

resource socket_accept ( resource $socket )

After the socket socket has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket resource is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, socket_accept() will block until a connection becomes present. If socket has been made non-blocking using socket_set_blocking() or socket_set_nonblock(), FALSE will be returned.

The socket resource returned by socket_accept() may not be used to accept new connections. The original listening socket socket , however, remains open and may be reused.

参数

socket

A valid socket resource created with socket_create().

返回值

Returns a new socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

参见

  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_bind() - Binds a name to a socket
  • socket_strerror() - Return a string describing a socket error

Socket 函数
socket_bind
Socket 函数


Binds a name to a socket

socket_accept
socket_clear_error
Socket 函数
PHP 手册

socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bind — Binds a name to a socket

说明

bool socket_bind ( resource $socket , string $address [, int $port=0 ] )

Binds the name given in address to the socket described by socket . This has to be done before a connection is be established using socket_connect() or socket_listen().

参数

socket

A valid socket resource created with socket_create().

address

If the socket is of the AF_INET family, the address is an IP in dotted-quad notation (e.g. 127.0.0.1).

If the socket is of the AF_UNIX family, the address is the path of a Unix-domain socket (e.g. /tmp/my.sock).

port (Optional)

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

范例

Example #1 Using socket_bind() to set the source address

<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// An example list of IP addresses owned by the computer
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Bind the source address
socket_bind($sock, $sourceips['madcoder']);

// Connect to destination address
socket_connect($sock, '127.0.0.1', 80);

// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Close
socket_close($sock);

?>

注释

Note: This function must be used on the socket before socket_connect().

Note: Windows 9x/ME compatibility note: socket_last_error() may return an invalid error code if trying to bind the socket to a wrong address that does not belong to your machine.

参见

  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_accept
socket_clear_error
Socket 函数


Clears the error on the socket or the last error code

socket_bind
socket_close
Socket 函数
PHP 手册

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_error — Clears the error on the socket or the last error code

说明

void socket_clear_error ([ resource $socket ] )

This function clears the error code on the given socket or the global last socket error if no socket is specified.

This function allows explicitly resetting the error code value either of a socket or of the extension global last error code. This may be useful to detect within a part of the application if an error occurred or not.

参数

socket

A valid socket resource created with socket_create().

返回值

无返回值。

参见

  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_bind
socket_close
Socket 函数


Closes a socket resource

socket_clear_error
socket_connect
Socket 函数
PHP 手册

socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_close — Closes a socket resource

说明

void socket_close ( resource $socket )

socket_close() closes the socket resource given by socket . This function is specific to sockets and cannot be used on any other type of resources.

参数

socket

A valid socket resource created with socket_create() or socket_accept().

返回值

无返回值。

参见

  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_strerror() - Return a string describing a socket error

socket_clear_error
socket_connect
Socket 函数


Initiates a connection on a socket

socket_close
socket_create_listen
Socket 函数
PHP 手册

socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connect — Initiates a connection on a socket

说明

bool socket_connect ( resource $socket , string $address [, int $port=0 ] )

Initiate a connection to address using the socket resource socket , which must be a valid socket resource created with socket_create().

参数

socket

address

The address parameter is either an IPv4 address in dotted-quad notation (e.g. 127.0.0.1) if socket is AF_INET, a valid IPv6 address (e.g. ::1) if IPv6 support is enabled and socket is AF_INET6 or the pathname of a Unix domain socket, if the socket family is AF_UNIX.

port

The port parameter is only used and is mandatory when connecting to an AF_INET or an AF_INET6 socket, and designates the port on the remote host to which a connection should be made.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Note: If the socket is non-blocking then this function returns FALSE with an error Operation now in progress.

参见

  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_close
socket_create_listen
Socket 函数


Opens a socket on port to accept connections

socket_connect
socket_create_pair
Socket 函数
PHP 手册

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen — Opens a socket on port to accept connections

说明

resource socket_create_listen ( int $port [, int $backlog=128 ] )

socket_create_listen() creates a new socket resource of type AF_INET listening on all local interfaces on the given port waiting for new connections.

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

参数

port

The port on which to listen on all interfaces.

backlog

The backlog parameter defines the maximum length the queue of pending connections may grow to. SOMAXCONN may be passed as backlog parameter, see socket_listen() for more information.

返回值

socket_create_listen() returns a new socket resource on success or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

注释

Note: If you want to create a socket which only listens on a certain interface you need to use socket_create(), socket_bind() and socket_listen().

参见

  • socket_create() - Create a socket (endpoint for communication)
  • socket_create_pair() - Creates a pair of indistinguishable sockets and stores them in an array
  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_connect
socket_create_pair
Socket 函数


Creates a pair of indistinguishable sockets and stores them in an array

socket_create_listen
socket_create
Socket 函数
PHP 手册

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pair — Creates a pair of indistinguishable sockets and stores them in an array

说明

bool socket_create_pair ( int $domain , int $type , int $protocol , array &$fd )

socket_create_pair() creates two connected and indistinguishable sockets, and stores them in fd . This function is commonly used in IPC (InterProcess Communication).

参数

domain

The domain parameter specifies the protocol family to be used by the socket. See socket_create() for the full list.

type

The type parameter selects the type of communication to be used by the socket. See socket_create() for the full list.

protocol

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

See socket_create() for the full list of supported protocols.

fd

Reference to an array in which the two socket resources will be inserted.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.3.0 | This function is now re-enabled on Windows platforms.
4.3.0 | This function was due to a bug made unavailable on Windows platforms.

范例

Example #1 socket_create_pair() example

<?php
$sockets = array();

/* On Windows we need to use AF_INET */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);

/* Setup socket pair */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false) {
    echo "socket_create_pair failed. Reason: ".socket_strerror(socket_last_error());
}
/* Send and Recieve Data */
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
    echo "socket_write() failed. Reason: ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) === false) {
    echo "socket_read() failed. Reason: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Close sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Example #2 socket_create_pair() IPC example

<?php
$ary = array();
$strone = 'Message From Parent.';
$strtwo = 'Message From Child.';

if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
    echo "socket_create_pair() failed. Reason: ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Could not fork Process.';
} elseif ($pid) {
    /*parent*/
    socket_close($ary[0]);
    if (socket_write($ary[1], $strone, strlen($strone)) === false) {
        echo "socket_write() failed. Reason: ".socket_strerror(socket_last_error($ary[1]));
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Recieved $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*child*/
    socket_close($ary[1]);
    if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
        echo "socket_write() failed. Reason: ".socket_strerror(socket_last_error($ary[0]));
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Recieved $strone\n";
    }
    socket_close($ary[0]);
}
?>

参见

  • socket_create() - Create a socket (endpoint for communication)
  • socket_create_listen() - Opens a socket on port to accept connections
  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_create_listen
socket_create
Socket 函数


Create a socket (endpoint for communication)

socket_create_pair
socket_get_option
Socket 函数
PHP 手册

socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_create — Create a socket (endpoint for communication)

说明

resource socket_create ( int $domain , int $type , int $protocol )

Creates and returns a socket resource, also referred to as an endpoint of communication. A typical network connection is made up of 2 sockets, one performing the role of the client, and another performing the role of the server.

参数

domain

The domain parameter specifies the protocol family to be used by the socket.

Available address/protocol families
Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).
type

The type parameter selects the type of communication to be used by the socket.

Available socket types
Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.
protocol

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Common protocols
Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

返回值

socket_create() returns a socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

错误／异常

If an invalid domain or type is given, socket_create() defaults to AF_INET and SOCK_STREAM respectively and additionally emits an E_WARNING message.

参见

  • socket_accept() - Accepts a connection on a socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_create_pair
socket_get_option
Socket 函数


Gets socket options for the socket

socket_create
socket_getpeername
Socket 函数
PHP 手册

socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option — Gets socket options for the socket

说明

mixed socket_get_option ( resource $socket , int $level , int $optname )

The socket_get_option() function retrieves the value for the option specified by the optname parameter for the specified socket .

参数

socket

A valid socket resource created with socket_create() or socket_accept().

level

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

optname
Available Socket Options
Option | Description | Type
SO_DEBUG | Reports whether debugging information is being recorded. | int
SO_BROADCAST | Reports whether transmission of broadcast messages is supported. | int
SO_REUSEADDR | Reports whether local addresses can be reused. | int
SO_KEEPALIVE | Reports whether connections are kept active with periodic transmission of messages. If the connected socket fails to respond to these messages, the connection is broken and processes writing to that socket are notified with a SIGPIPE signal. | int
SO_LINGER

Reports whether the socket lingers on socket_close() if data is present. By default, when the socket is closed, it attempts to send all unsent data. In the case of a connection-oriented socket, socket_close() will wait for its peer to acknowledge the data.

If l_onoff is non-zero and l_linger is zero, all the unsent data will be discarded and RST (reset) is sent to the peer in the case of a connection-oriented socket.

On the other hand, if l_onoff is non-zero and l_linger is non-zero, socket_close() will block until all the data is sent or the time specified in l_linger elapses. If the socket is non-blocking, socket_close() will fail and return an error.

array. The array will contain two keys: l_onoff and l_linger.
SO_OOBINLINE | Reports whether the socket leaves out-of-band data inline. | int
SO_SNDBUF | Reports the size of the send buffer. | int
SO_RCVBUF | Reports the size of the receive buffer. | int
SO_ERROR | Reports information about error status and clears it. | int (cannot be set by socket_set_option())
SO_TYPE | Reports the socket type (e.g. SOCK_STREAM). | int (cannot be set by socket_set_option())
SO_DONTROUTE | Reports whether outgoing messages bypass the standard routing facilities. | int
SO_RCVLOWAT | Reports the minimum number of bytes to process for socket input operations. | int
SO_RCVTIMEO | Reports the timeout value for input operations. | array. The array will contain two keys: sec which is the seconds part on the timeout value and usec which is the microsecond part of the timeout value.
SO_SNDTIMEO | Reports the timeout value specifying the amount of time that an output function blocks because flow control prevents data from being sent. | array. The array will contain two keys: sec which is the seconds part on the timeout value and usec which is the microsecond part of the timeout value.
SO_SNDLOWAT | Reports the minimum number of bytes to process for socket output operations. | int

返回值

Returns the value of the given option, or FALSE on errors.

范例

Example #1 socket_set_option() example

<?php
$socket = socket_create_listen(1223);

$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);

var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>

更新日志

版本 | 说明
4.3.0 | The name of this function was changed. It used to be called socket_getopt().

socket_create
socket_getpeername
Socket 函数


Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type

socket_get_option
socket_getsockname
Socket 函数
PHP 手册

socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeername — Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type

说明

bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )

Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.

参数

socket

A valid socket resource created with socket_create() or socket_accept().

address

If the given socket is of type AF_INET or AF_INET6, socket_getpeername() will return the peers (remote) IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getpeername() will return the Unix filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

port

If given, this will hold the port associated to address .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 socket_getpeername() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

注释

Note: socket_getpeername() should not be used with AF_UNIX sockets created with socket_accept(). Only sockets created with socket_connect() or a primary server socket following a call to socket_bind() will return meaningful values.

参见

  • socket_getsockname() - Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_get_option
socket_getsockname
Socket 函数


Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type

socket_getpeername
socket_last_error
Socket 函数
PHP 手册

socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsockname — Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type

说明

bool socket_getsockname ( resource $socket , string &$addr [, int &$port ] )

Note: socket_getsockname() should not be used with AF_UNIX sockets created with socket_connect(). Only sockets created with socket_accept() or a primary server socket following a call to socket_bind() will return meaningful values.

参数

socket

A valid socket resource created with socket_create() or socket_accept().

addr

If the given socket is of type AF_INET or AF_INET6, socket_getsockname() will return the local IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getsockname() will return the Unix filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

port

If provided, this will hold the associated port.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 socket_getsockname() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

参见

  • socket_getpeername() - Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_getpeername
socket_last_error
Socket 函数


Returns the last error on the socket

socket_getsockname
socket_listen
Socket 函数
PHP 手册

socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_error — Returns the last error on the socket

说明

int socket_last_error ([ resource $socket ] )

If a socket resource is passed to this function, the last error which occurred on this particular socket is returned. If the socket resource is omitted, the error code of the last failed socket function is returned. The latter is particularly helpful for functions like socket_create() which don't return a socket on failure and socket_select() which can fail for reasons not directly tied to a particular socket. The error code is suitable to be fed to socket_strerror() which returns a string describing the given error code.

参数

socket

A valid socket resource created with socket_create().

返回值

This function returns a socket error code.

范例

Example #1 socket_last_error() example

<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Couldn't create socket: [$errorcode] $errormsg");
}
?>

注释

Note: socket_last_error() does not clear the error code, use socket_clear_error() for this purpose.

socket_getsockname
socket_listen
Socket 函数


Listens for a connection on a socket

socket_last_error
socket_read
Socket 函数
PHP 手册

socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listen — Listens for a connection on a socket

说明

bool socket_listen ( resource $socket [, int $backlog=0 ] )

After the socket socket has been created using socket_create() and bound to a name with socket_bind(), it may be told to listen for incoming connections on socket .

socket_listen() is applicable only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

参数

socket

A valid socket resource created with socket_create().

backlog

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

Note: The maximum number passed to the backlog parameter highly depends on the underlying platform. On Linux, it is silently truncated to SOMAXCONN. On win32, if passed SOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

参见

  • socket_accept() - Accepts a connection on a socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_strerror() - Return a string describing a socket error

socket_last_error
socket_read
Socket 函数


Reads a maximum of length bytes from a socket

socket_listen
socket_recv
Socket 函数
PHP 手册

socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_read — Reads a maximum of length bytes from a socket

说明

string socket_read ( resource $socket , int $length [, int $type=PHP_BINARY_READ ] )

The function socket_read() reads from the socket resource socket created by the socket_create() or socket_accept() functions.

参数

socket

A valid socket resource created with socket_create() or socket_accept().

length

The maximum number of bytes read is specified by the length parameter. Otherwise you can use \r, \n, or \0 to end reading (depending on the type parameter, see below).

type

Optional type parameter is a named constant:

  • PHP_BINARY_READ (Default) - use the system recv() function. Safe for reading binary data.
  • PHP_NORMAL_READ - reading stops at \n or \r.

返回值

socket_read() returns the data as a string on success, or FALSE on error (including if the remote host has closed the connection). The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual representation of the error.

Note: socket_read() returns a zero length string ("") when there is no more data to read.

更新日志

版本 | 说明
4.1.0 | The default value for type was changed from PHP_NORMAL_READ to PHP_BINARY_READ

参见

  • socket_accept() - Accepts a connection on a socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error
  • socket_write() - Write to a socket

socket_listen
socket_recv
Socket 函数


Receives data from a connected socket

socket_read
socket_recvfrom
Socket 函数
PHP 手册

socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recv — Receives data from a connected socket

说明

int socket_recv ( resource $socket , string &$buf , int $len , int $flags )

Warning

本函数暂无文档，仅有参数列表。

socket_read
socket_recvfrom
Socket 函数


Receives data from a socket whether or not it is connection-oriented

socket_recv
socket_select
Socket 函数
PHP 手册

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfrom — Receives data from a socket whether or not it is connection-oriented

说明

int socket_recvfrom ( resource $socket , string &$buf , int $len , int $flags , string &$name [, int &$port ] )

The socket_recvfrom() function receives len bytes of data in buf from name on port port (if the socket is not of type AF_UNIX) using socket . socket_recvfrom() can be used to gather data from both connected and unconnected sockets. Additionally, one or more flags can be specified to modify the behaviour of the function.

The name and port must be passed by reference. If the socket is not connection-oriented, name will be set to the internet protocol address of the remote host or the path to the UNIX socket. If the socket is connection-oriented, name is NULL. Additionally, the port will contain the port of the remote host in the case of an unconnected AF_INET or AF_INET6 socket.

参数

socket

The socket must be a socket resource previously created by socket_create().

buf

The data received will be fetched to the variable specified with buf .

len

Up to len bytes will be fetched from remote host.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
Flag | Description
MSG_OOB | Process out-of-band data.
MSG_PEEK | Receive data from the beginning of the receive queue without removing it from the queue.
MSG_WAITALL | Block until at least len are received. However, if a signal is caught or the remote host disconnects, the function may return less data.
MSG_DONTWAIT | With this flag set, the function returns even if it would normally have blocked.
name

If the socket is of the type AF_UNIX type, name is the path to the file. Else, for unconnected sockets, name is the IP address of, the remote host, or NULL if the socket is connection-oriented.

port

This argument only applies to AF_INET and AF_INET6 sockets, and specifies the remote port from which the data is received. If the socket is connection-oriented, port will be NULL.

返回值

socket_recvfrom() returns the number of bytes received, or -1 if there was an error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

范例

Example #1 socket_recvfrom() example

<?php
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = "";
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
?>

This example will initiate an UDP socket on port 1223 of 127.0.0.1 and print at most 12 characters received from a remote host.

更新日志

版本 | 说明
4.3.0 | socket_recvfrom() is now binary safe.

参见

  • socket_recv() - Receives data from a connected socket
  • socket_send() - Sends data to a connected socket
  • socket_sendto() - Sends a message to a socket, whether it is connected or not
  • socket_create() - Create a socket (endpoint for communication)

socket_recv
socket_select
Socket 函数


Runs the select() system call on the given arrays of sockets with a specified timeout

socket_recvfrom
socket_send
Socket 函数
PHP 手册

socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout

说明

int socket_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec=0 ] )

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket resource arrays are in fact the so-called file descriptor sets. Three independent arrays of socket resources are watched.

参数

read

The sockets listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a socket resource is also ready on end-of-file, in which case a socket_read() will return a zero length string).

write

The sockets listed in the write array will be watched to see if a write will not block.

except

The sockets listed in the except array will be watched for exceptions.

tv_sec

The tv_sec and tv_usec together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. tv_sec may be zero , causing socket_select() to return immediately. This is useful for polling. If tv_sec is NULL (no timeout), socket_select() can block indefinitely.

tv_usec

Warning

On exit, the arrays are modified to indicate which socket resource actually changed status.

You do not need to pass every array to socket_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after socket_select() returns.

Note: Due a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

Example #1 Using NULL with socket_select()

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

返回值

On success socket_select() returns the number of socket resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned. The error code can be retrieved with socket_last_error().

Note: Be sure to use the === operator when checking for an error. Since the socket_select() may return 0 the comparison with == would evaluate to TRUE:

Example #2 Understanding socket_select()'s result

<?php
$e = NULL;
if (false === socket_select($r, $w, $e, 0)) {
    echo "socket_select() failed, reason: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

范例

Example #3 socket_select() example

<?php
/* Prepare the read array */
$read   = array($socket1, $socket2);
$write  = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $write, $except, 0);

if ($num_changed_sockets === false) {
    /* Error handling */
} else if ($num_changed_sockets > 0) {
    /* At least at one of the sockets something interesting happened */
}
?>

注释

Note: Be aware that some socket implementations need to be handled very carefully. A few basic rules:

  • You should always try to use socket_select() without timeout. Your program should have nothing to do if there is no data available. Code that depends on timeouts is not usually portable and difficult to debug.
  • No socket resource must be added to any set if you do not intend to check its result after the socket_select() call, and respond appropriately. After socket_select() returns, all socket resources in all arrays must be checked. Any socket resource that is available for writing must be written to, and any socket resource available for reading must be read from.
  • If you read/write to a socket returns in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.
  • It's common to most socket implementations that the only exception caught with the except array is out-of-bound data received on a socket.

参见

  • socket_read() - Reads a maximum of length bytes from a socket
  • socket_write() - Write to a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error

socket_recvfrom
socket_send
Socket 函数


Sends data to a connected socket

socket_select
socket_sendto
Socket 函数
PHP 手册

socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_send — Sends data to a connected socket

说明

int socket_send ( resource $socket , string $buf , int $len , int $flags )

The function socket_send() sends len bytes to the socket socket from buf .

参数

socket

A valid socket resource created with socket_create() or socket_accept().

buf

A buffer containing the data that will be sent to the remote host.

len

The number of bytes that will be sent to the remote host from buf .

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
MSG_OOB | Send OOB (out-of-band) data.
MSG_EOR | Indicate a record mark. The sent data completes the record.
MSG_EOF | Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction.
MSG_DONTROUTE | Bypass routing, use direct interface.

返回值

socket_send() returns the number of bytes sent, or FALSE on error.

参见

  • socket_sendto() - Sends a message to a socket, whether it is connected or not

socket_select
socket_sendto
Socket 函数


Sends a message to a socket, whether it is connected or not

socket_send
socket_set_block
Socket 函数
PHP 手册

socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendto — Sends a message to a socket, whether it is connected or not

说明

int socket_sendto ( resource $socket , string $buf , int $len , int $flags , string $addr [, int $port=0 ] )

The function socket_sendto() sends len bytes from buf through the socket socket to the port at the address addr .

参数

socket

A valid socket resource created using socket_create().

buf

The sent data will be taken from buffer buf .

len

len bytes from buf will be sent.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
MSG_OOB | Send OOB (out-of-band) data.
MSG_EOR | Indicate a record mark. The sent data completes the record.
MSG_EOF | Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction.
MSG_DONTROUTE | Bypass routing, use direct interface.

addr

IP address of the remote host.

port

port is the remote port number at which the data will be sent.

返回值

socket_sendto() returns the number of bytes sent to the remote host, or FALSE if an error occurred.

范例

Example #1 socket_sendto() Example

<?php
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

    $msg = "Ping !";
    $len = strlen($msg);

    socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
    socket_close($sock);
?>

参见

  • socket_send() - Sends data to a connected socket

socket_send
socket_set_block
Socket 函数


Sets blocking mode on a socket resource

socket_sendto
socket_set_nonblock
Socket 函数
PHP 手册

socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_block — Sets blocking mode on a socket resource

说明

bool socket_set_block ( resource $socket )

The socket_set_block() function removes the O_NONBLOCK flag on the socket specified by the socket parameter.

When an operation (e.g. receive, send, connect, accept, ...) is performed on a blocking socket, the script will pause its execution until it receives a signal or it can perform the operation.

参数

socket

A valid socket resource created with socket_create() or socket_accept().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 socket_set_block() example

<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

This example creates a listening socket on all interfaces on port 1223 and sets the socket to O_BLOCK mode. socket_accept() will hang until there is a connection to accept.

参见

  • socket_set_nonblock() - Sets nonblocking mode for file descriptor fd
  • socket_set_option() - Sets socket options for the socket

socket_sendto
socket_set_nonblock
Socket 函数


Sets nonblocking mode for file descriptor fd

socket_set_block
socket_set_option
Socket 函数
PHP 手册

socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblock — Sets nonblocking mode for file descriptor fd

说明

bool socket_set_nonblock ( resource $socket )

The socket_set_nonblock() function sets the O_NONBLOCK flag on the socket specified by the socket parameter.

When an operation (e.g. receive, send, connect, accept, ...) is performed on a non-blocking socket, the script not pause its execution until it receives a signal or it can perform the operation. Rather, if the operation would result in a block, the called function will fail.

参数

socket

A valid socket resource created with socket_create() or socket_accept().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 socket_set_nonblock() example

<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

This example creates a listening socket on all interfaces on port 1223 and sets the socket to O_NONBLOCK mode. socket_accept() will immediately fail unless there is a pending connection exactly at this moment.

参见

  • socket_set_block() - Sets blocking mode on a socket resource
  • socket_set_option() - Sets socket options for the socket

socket_set_block
socket_set_option
Socket 函数


Sets socket options for the socket

socket_set_nonblock
socket_shutdown
Socket 函数
PHP 手册

socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_option — Sets socket options for the socket

说明

bool socket_set_option ( resource $socket , int $level , int $optname , mixed $optval )

The socket_set_option() function sets the option specified by the optname parameter, at the specified protocol level , to the value pointed to by the optval parameter for the socket .

参数

socket

A valid socket resource created with socket_create() or socket_accept().

level

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

optname

The available socket options are the same as those for the socket_get_option() function.

optval

The option value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 socket_set_option() example

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
    echo 'Unable to create socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
    echo 'Unable to bind socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo 'Unable to get socket option: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo 'SO_REUSEADDR is set on socket !' . PHP_EOL;
}
?>

更新日志

版本 | 说明
4.3.0 | This function was renamed. It used to be called socket_setopt().

socket_set_nonblock
socket_shutdown
Socket 函数


Shuts down a socket for receiving, sending, or both

socket_set_option
socket_strerror
Socket 函数
PHP 手册

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown — Shuts down a socket for receiving, sending, or both

说明

bool socket_shutdown ( resource $socket [, int $how=2 ] )

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

参数

socket

A valid socket resource created with socket_create().

how

The value of how can be one of the following:

possible values for how
0 | Shutdown socket reading
1 | Shutdown socket writing
2 | Shutdown socket reading and writing

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

socket_set_option
socket_strerror
Socket 函数


Return a string describing a socket error

socket_shutdown
socket_write
Socket 函数
PHP 手册

socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerror — Return a string describing a socket error

说明

string socket_strerror ( int $errno )

socket_strerror() takes as its errno parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text.

Note: Although the error messages generated by the socket extension are in English, the system messages retrieved with this function will appear depending on the current locale (LC_MESSAGES).

参数

errno

A valid socket error number, likely produced by socket_last_error().

返回值

Returns the error message associated with the errno parameter.

范例

Example #1 socket_strerror() example

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

The expected output from the above example (assuming the script is not run with root privileges):

socket_bind() failed: reason: Permission denied

参见

  • socket_accept() - Accepts a connection on a socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)

socket_shutdown
socket_write
Socket 函数


Write to a socket

socket_strerror
SSH2
Socket 函数
PHP 手册

socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_write — Write to a socket

说明

int socket_write ( resource $socket , string $buffer [, int $length=0 ] )

The function socket_write() writes to the socket from the given buffer .

参数

socket

buffer

The buffer to be written.

length

The optional parameter length can specify an alternate length of bytes written to the socket. If this length is greater then the buffer length, it is silently truncated to the length of the buffer.

返回值

Returns the number of bytes successfully written to the socket or FALSE one error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Note: It is perfectly valid for socket_write() to return zero which means no bytes have been written. Be sure to use the === operator to check for FALSE in case of an error.

注释

Note: socket_write() does not necessarily write all bytes from the given buffer. It's valid that, depending on the network buffers etc., only a certain amount of data, even one byte, is written though your buffer is greater. You have to watch out so you don't unintentionally forget to transmit the rest of your data.

参见

  • socket_accept() - Accepts a connection on a socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_read() - Reads a maximum of length bytes from a socket
  • socket_strerror() - Return a string describing a socket error

socket_strerror
SSH2
Socket 函数


Secure Shell2

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SSH2 函数
    • ssh2_auth_hostbased_file — Authenticate using a public hostkey
    • ssh2_auth_none — Authenticate as "none"
    • ssh2_auth_password — Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file — Authenticate using a public key
    • ssh2_connect — Connect to an SSH server
    • ssh2_exec — Execute a command on a remote server
    • ssh2_fetch_stream — Fetch an extended data stream
    • ssh2_fingerprint — Retrieve fingerprint of remote server
    • ssh2_methods_negotiated — Return list of negotiated methods
    • ssh2_publickey_add — Add an authorized publickey
    • ssh2_publickey_init — Initialize Publickey subsystem
    • ssh2_publickey_list — List currently authorized publickeys
    • ssh2_publickey_remove — Remove an authorized publickey
    • ssh2_scp_recv — Request a file via SCP
    • ssh2_scp_send — Send a file via SCP
    • ssh2_sftp_lstat — Stat a symbolic link
    • ssh2_sftp_mkdir — Create a directory
    • ssh2_sftp_readlink — Return the target of a symbolic link
    • ssh2_sftp_realpath — Resolve the realpath of a provided path string
    • ssh2_sftp_rename — Rename a remote file
    • ssh2_sftp_rmdir — Remove a directory
    • ssh2_sftp_stat — Stat a file on a remote filesystem
    • ssh2_sftp_symlink — Create a symlink
    • ssh2_sftp_unlink — Delete a file
    • ssh2_sftp — Initialize SFTP subsystem
    • ssh2_shell — Request an interactive shell
    • ssh2_tunnel — Open a tunnel through a remote server
socket_write
简介
其它服务


简介

Bindings to the » libssh2 library which provide access to resources (shell, remote exec, tunneling, file transfer) on a remote machine using a secure cryptographic transport.

SSH2
安装/配置
SSH2


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SSH2


安装

Windows binaries may be found at » http://snaps.php.net/. To install, download php_ssh2.dll to the folder specified by your php.ini file's extension_dir directive. Enable it by adding extension=php_ssh2.dll to your php.ini and restarting your web server.

extension_dir=c:/php5/exts/
extension=php_ssh2.dll

Linux, BSD, and other *nix variants can be compiled using the following steps:

  • Download and install » OpenSSL. If you install OpenSSL via your distribution's packaging system be sure to install the development libraries as well. This will typically be a package named openssl-dev, openssl_devel, or some variation thereof.
  • Download and install » libssh2. Typically this means executing the following command from the libssh2 source tree. ./configure && make all install.
  • Run the pecl installer for PECL/ssh2: pecl install ssh2
  • Copy ssh2.so from the directory indicated by the build process to the location specified in your php.ini file under extension_dir.
  • Add extension=ssh2.so to your php.ini
  • Restart your web server to reload your php.ini settings.

Note: Development Versions
There are currently no stable versions of PECL/ssh2, to force installation of the beta version of PECL/ssh2 execute: pecl install ssh2-beta

Tip

Compiling PECL/ssh2 without using the PECL command

Rather than using pecl install ssh2 to automatically download and install PECL/ssh2, you may download the tarball from » PECL. From the root of the unpacked tarball, run: phpize && ./configure --with-ssh2 && make to generate ssh2.so. Once built, continue the installation from step 4 above.

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/ssh2.

Note: You will need version 0.4 or greater of the libssh2 library (possibly higher, see release notes).

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SSH2_FINGERPRINT_MD5 (integer)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as an MD5 hash.
SSH2_FINGERPRINT_SHA1 (integer)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as an SHA1 hash.
SSH2_FINGERPRINT_HEX (integer)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as a string of hexits.
SSH2_FINGERPRINT_RAW (integer)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as a raw string of 8-bit characters.
SSH2_TERM_UNIT_CHARS (integer)
Flag to ssh2_shell() specifying that width and height are provided as character sizes.
SSH2_TERM_UNIT_PIXELS (integer)
Flag to ssh2_shell() specifying that width and height are provided in pixel units.
SSH2_DEFAULT_TERM_WIDTH (integer)
Default terminal width requested by ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (integer)
Default terminal height requested by ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (integer)
Default terminal units requested by ssh2_shell().
SSH2_STREAM_STDIO (integer)
Flag to ssh2_fetch_stream() requesting STDIO subchannel.
SSH2_STREAM_STDERR (integer)
Flag to ssh2_fetch_stream() requesting STDERR subchannel.
SSH2_DEFAULT_TERMINAL (string)
Default terminal type (e.g. vt102, ansi, xterm, vanilla) requested by ssh2_shell().
资源类型
SSH2 函数
SSH2


SSH2 函数

Table of Contents

  • ssh2_auth_hostbased_file — Authenticate using a public hostkey
  • ssh2_auth_none — Authenticate as "none"
  • ssh2_auth_password — Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file — Authenticate using a public key
  • ssh2_connect — Connect to an SSH server
  • ssh2_exec — Execute a command on a remote server
  • ssh2_fetch_stream — Fetch an extended data stream
  • ssh2_fingerprint — Retrieve fingerprint of remote server
  • ssh2_methods_negotiated — Return list of negotiated methods
  • ssh2_publickey_add — Add an authorized publickey
  • ssh2_publickey_init — Initialize Publickey subsystem
  • ssh2_publickey_list — List currently authorized publickeys
  • ssh2_publickey_remove — Remove an authorized publickey
  • ssh2_scp_recv — Request a file via SCP
  • ssh2_scp_send — Send a file via SCP
  • ssh2_sftp_lstat — Stat a symbolic link
  • ssh2_sftp_mkdir — Create a directory
  • ssh2_sftp_readlink — Return the target of a symbolic link
  • ssh2_sftp_realpath — Resolve the realpath of a provided path string
  • ssh2_sftp_rename — Rename a remote file
  • ssh2_sftp_rmdir — Remove a directory
  • ssh2_sftp_stat — Stat a file on a remote filesystem
  • ssh2_sftp_symlink — Create a symlink
  • ssh2_sftp_unlink — Delete a file
  • ssh2_sftp — Initialize SFTP subsystem
  • ssh2_shell — Request an interactive shell
  • ssh2_tunnel — Open a tunnel through a remote server
预定义常量
ssh2_auth_hostbased_file
SSH2


Authenticate using a public hostkey

SSH2 函数
ssh2_auth_none
SSH2 函数
PHP 手册

ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_file — Authenticate using a public hostkey

说明

bool ssh2_auth_hostbased_file ( resource $session , string $username , string $hostname , string $pubkeyfile , string $privkeyfile [, string $passphrase [, string $local_username ]] )

Authenticate using a public hostkey read from a file.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

hostname

pubkeyfile

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

local_username

If local_username is omitted, then the value for username will be used for it.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Authentication using a public hostkey

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_hostbased_file($connection, 'remoteusername', 'myhost.example.com',
                             '/usr/local/etc/hostkey_rsa.pub',
                             '/usr/local/etc/hostkey_rsa', 'secret',
                             'localusername')) {
  echo "Public Key Hostbased Authentication Successful\n";
} else {
  die('Public Key Hostbased Authentication Failed');
}
?>

注释

Note: ssh2_auth_hostbased_file() requires libssh2 >= 0.7 and PHP/SSH2 >= 0.7

SSH2 函数
ssh2_auth_none
SSH2 函数


Authenticate as "none"

ssh2_auth_hostbased_file
ssh2_auth_password
SSH2 函数
PHP 手册

ssh2_auth_none

(PECL ssh2 >= 0.9.0)

ssh2_auth_none — Authenticate as "none"

说明

mixed ssh2_auth_none ( resource $session , string $username )

Attempt "none" authentication which usually will (and should) fail. As part of the failure, this function will return an array of accepted authentication methods.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

返回值

Returns TRUE if the server does accept "none" as an authentication method, or an array of accepted authentication methods on failure.

范例

Example #1 Retrieving a list of authentication methods

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
  echo "Server supports password based authentication\n";
}
?>

ssh2_auth_hostbased_file
ssh2_auth_password
SSH2 函数


Authenticate over SSH using a plain password

ssh2_auth_none
ssh2_auth_pubkey_file
SSH2 函数
PHP 手册

ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password — Authenticate over SSH using a plain password

说明

bool ssh2_auth_password ( resource $session , string $username , string $password )

Authenticate over SSH using a plain password

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

password

Password for username

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Authenticating with a password

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>

ssh2_auth_none
ssh2_auth_pubkey_file
SSH2 函数


Authenticate using a public key

ssh2_auth_password
ssh2_connect
SSH2 函数
PHP 手册

ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_file — Authenticate using a public key

说明

bool ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] )

Authenticate using a public key read from a file.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

pubkeyfile

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Authentication using a public key

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
                          '/home/username/.ssh/id_rsa.pub',
                          '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

ssh2_auth_password
ssh2_connect
SSH2 函数


Connect to an SSH server

ssh2_auth_pubkey_file
ssh2_exec
SSH2 函数
PHP 手册

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Connect to an SSH server

说明

resource ssh2_connect ( string $host [, int $port=22 [, array $methods [, array $callbacks ]]] )

Establish a connection to a remote SSH server.

Once connected, the client should verify the server's hostkey using ssh2_fingerprint(), then authenticate using either password or public key.

参数

host

port

methods

methods may be an associative array with up to four parameters as described below.

methods may be an associative array with any or all of the following parameters.
Index | Meaning | Supported Values*
kex | List of key exchange methods to advertise, comma separated in order of preference. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, and diffie-hellman-group-exchange-sha1
hostkey | List of hostkey methods to advertise, come separated in order of preference. | ssh-rsa and ssh-dss
client_to_server | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server.
server_to_client | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server.

* - Supported Values are dependent on methods supported by underlying library. See » libssh2 documentation for additional information.

client_to_server and server_to_client may be an associative array with any or all of the following parameters.
Index | Meaning | Supported Values*
crypt | List of crypto methods to advertise, comma separated in order of preference. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, and none**
comp | List of compression methods to advertise, comma separated in order of preference. | zlib and none
mac | List of MAC methods to advertise, come separated in order of preference. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, and none**

Note: Crypt and MAC method "none"
For security reasons, none is disabled by the underlying » libssh2 library unless explicitly enabled during build time by using the appropriate ./configure options. See documentation for the underlying library for more information.

callbacks

callbacks may be an associative array with any or all of the following parameters.

Callbacks parameters
Index | Meaning | Prototype
ignore | Name of function to call when an SSH2_MSG_IGNORE packet is received | void ignore_cb($message)
debug | Name of function to call when an SSH2_MSG_DEBUG packet is received | void debug_cb($message, $language, $always_display)
macerror | Name of function to call when a packet is received but the message authentication code failed. If the callback returns TRUE, the mismatch will be ignored, otherwise the connection will be terminated. | bool macerror_cb($packet)
disconnect | Name of function to call when an SSH2_MSG_DISCONNECT packet is received | void disconnect_cb($reason, $message, $language)

返回值

Returns a resource on success, or FALSE on error.

范例

Example #1 ssh2_connect() example

Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %s\n",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

参见

  • ssh2_fingerprint() - Retrieve fingerprint of remote server
  • ssh2_auth_none() - Authenticate as "none"
  • ssh2_auth_password() - Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file() - Authenticate using a public key

ssh2_auth_pubkey_file
ssh2_exec
SSH2 函数


Execute a command on a remote server

ssh2_connect
ssh2_fetch_stream
SSH2 函数
PHP 手册

ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_exec — Execute a command on a remote server

说明

resource ssh2_exec ( resource $session , string $command [, string $pty [, array $env [, int $width=80 [, int $height=25 [, int $width_height_type=SSH2_TERM_UNIT_CHARS ]]]]] )

Execute a command at the remote end and allocate a channel for it.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

command

pty

env

env may be passed as an associative array of name/value pairs to set in the target environment.

width

Width of the virtual terminal.

height

Height of the virtual terminal.

width_height_type

width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

返回值

Returns a stream on success or FALSE on failure.

范例

Example #1 Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

参见

  • ssh2_connect() - Connect to an SSH server
  • ssh2_shell() - Request an interactive shell
  • ssh2_tunnel() - Open a tunnel through a remote server

ssh2_connect
ssh2_fetch_stream
SSH2 函数


Fetch an extended data stream

ssh2_exec
ssh2_fingerprint
SSH2 函数
PHP 手册

ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_stream — Fetch an extended data stream

说明

resource ssh2_fetch_stream ( resource $channel , int $streamid )

Fetches an alternate substream associated with an SSH2 channel stream. The SSH2 protocol currently defines only one substream, STDERR, which has a substream ID of SSH2_STREAM_STDERR (defined as 1).

参数

channel

streamid

An SSH2 channel stream.

返回值

Returns the requested stream resource.

范例

Example #1 Opening a shell and retrieving the stderr stream associated with it

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>

参见

  • ssh2_shell() - Request an interactive shell
  • ssh2_exec() - Execute a command on a remote server
  • ssh2_connect() - Connect to an SSH server

ssh2_exec
ssh2_fingerprint
SSH2 函数


Retrieve fingerprint of remote server

ssh2_fetch_stream
ssh2_methods_negotiated
SSH2 函数
PHP 手册

ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprint — Retrieve fingerprint of remote server

说明

string ssh2_fingerprint ( resource $session [, int $flags=SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ] )

Returns a server hostkey hash from an active session.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

flags

flags may be either of SSH2_FINGERPRINT_MD5 or SSH2_FINGERPRINT_SHA1 logically ORed with SSH2_FINGERPRINT_HEX or SSH2_FINGERPRINT_RAW. Defaults to SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX.

返回值

Returns the hostkey hash as a string.

范例

Example #1 Checking the fingerprint against a known value

<?php
$known_host = '6F89C2F0A719B30CC38ABDF90755F2E4';

$connection = ssh2_connect('shell.example.com', 22);

$fingerprint = ssh2_fingerprint($connection,
               SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);

if ($fingerprint != $known_host) {
  die("HOSTKEY MISMATCH!\n" .
      "Possible Man-In-The-Middle Attack?");
}
?>

ssh2_fetch_stream
ssh2_methods_negotiated
SSH2 函数


Return list of negotiated methods

ssh2_fingerprint
ssh2_publickey_add
SSH2 函数
PHP 手册

ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiated — Return list of negotiated methods

说明

array ssh2_methods_negotiated ( resource $session )

Returns list of negotiated methods.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

返回值

范例

Example #1 Determining what methods were negotiated

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Encryption keys were negotiated using: {$methods['kex']}\n";
echo "Server identified using an {$methods['hostkey']} with ";
echo "fingerprint: " . ssh2_fingerprint($connection) . "\n";

echo "Client to Server packets will use methods:\n";
echo "\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo "\tComp: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Server to Client packets will use methods:\n";
echo "\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo "\tComp: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

参见

  • ssh2_connect() - Connect to an SSH server

ssh2_fingerprint
ssh2_publickey_add
SSH2 函数


Add an authorized publickey

ssh2_methods_negotiated
ssh2_publickey_init
SSH2 函数
PHP 手册

ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_add — Add an authorized publickey

说明

bool ssh2_publickey_add ( resource $pkey , string $algoname , string $blob [, bool $overwrite=false [, array $attributes ]] )

Note: 公钥系统用于管理服务器上的客户已经被认证的公钥。要用公钥认证方法在远程系统上认证，应该用 ssh2_auth_pubkey_file() 函数。

参数

pkey

Publickey Subsystem resource created by ssh2_publickey_init().

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

overwrite

If the specified key already exists, should it be overwritten?

attributes

Associative array of attributes to assign to this public key. Refer to ietf-secsh-publickey-subsystem for a list of supported attributes. To mark an attribute as mandatory, precede its name with an asterisk. If the server is unable to support an attribute marked mandatory, it will abort the add process.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Adding a publickey with ssh2_publickey_add()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);

$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');

ssh2_publickey_add($ssh2, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

参见

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_remove() - Remove an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys

ssh2_methods_negotiated
ssh2_publickey_init
SSH2 函数


Initialize Publickey subsystem

ssh2_publickey_add
ssh2_publickey_list
SSH2 函数
PHP 手册

ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_init — Initialize Publickey subsystem

说明

resource ssh2_publickey_init ( resource $session )

Request the Publickey subsystem from an already connected SSH2 server.

The publickey subsystem allows an already connected and authenticated client to manage the list of authorized public keys stored on the target server in an implementation agnostic manner. If the remote server does not support the publickey subsystem, the ssh2_publickey_init() function will return FALSE.

参数

session

返回值

Returns an SSH2 Publickey Subsystem resource for use with all other ssh2_publickey_*() methods, or FALSE on failure.

注释

Note: 公钥系统用于管理服务器上的客户已经被认证的公钥。要用公钥认证方法在远程系统上认证，应该用 ssh2_auth_pubkey_file() 函数。

参见

  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_remove() - Remove an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys

ssh2_publickey_add
ssh2_publickey_list
SSH2 函数


List currently authorized publickeys

ssh2_publickey_init
ssh2_publickey_remove
SSH2 函数
PHP 手册

ssh2_publickey_list

(PECL ssh2 >= 0.10)

ssh2_publickey_list — List currently authorized publickeys

说明

array ssh2_publickey_list ( resource $pkey )

List currently authorized publickeys.

参数

pkey

Publickey Subsystem resource

返回值

Returns a numerically indexed array of keys, each of which is an associative array containing: name, blob, and attrs elements.

Publickey elements
Array Key | Meaning
name | Name of algorithm used by this publickey, for example: ssh-dss or ssh-rsa.
blob | Publickey blob as raw binary data.
attrs | Attributes assigned to this publickey. The most common attribute, and the only one supported by publickey version 1 servers, is comment, which may be any freeform string.

范例

Example #1 Listing authorized keys with ssh2_publickey_list()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'secret');
$pkey = ssh2_publickey_init($ssh2);

$list = ssh2_publickey_list($pkey);

foreach($list as $key) {
  echo "Key: {$key['name']}\n";
  echo "Blob: " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
  echo "Comment: {$key['attrs']['comment']}\n\n";
}
?>

上例将输出：

Key: ssh-rsa
Blob: AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Comment: John's Key

Key: ssh-rsa
Blob: AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Comment: Alice's Key

注释

Note: 公钥系统用于管理服务器上的客户已经被认证的公钥。要用公钥认证方法在远程系统上认证，应该用 ssh2_auth_pubkey_file() 函数。

参见

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_remove() - Remove an authorized publickey

ssh2_publickey_init
ssh2_publickey_remove
SSH2 函数


Remove an authorized publickey

ssh2_publickey_list
ssh2_scp_recv
SSH2 函数
PHP 手册

ssh2_publickey_remove

(PECL ssh2 >= 0.10)

ssh2_publickey_remove — Remove an authorized publickey

说明

bool ssh2_publickey_remove ( resource $pkey , string $algoname , string $blob )

Removes an authorized publickey.

参数

pkey

Publickey Subsystem Resource

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: 公钥系统用于管理服务器上的客户已经被认证的公钥。要用公钥认证方法在远程系统上认证，应该用 ssh2_auth_pubkey_file() 函数。

参见

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys

ssh2_publickey_list
ssh2_scp_recv
SSH2 函数


Request a file via SCP

ssh2_publickey_remove
ssh2_scp_send
SSH2 函数
PHP 手册

ssh2_scp_recv

(PECL ssh2 >= 0.9.0)

ssh2_scp_recv — Request a file via SCP

说明

bool ssh2_scp_recv ( resource $session , string $remote_file , string $local_file )

Copy a file from the remote server to the local filesystem using the SCP protocol.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

remote_file

Path to the remote file.

local_file

Path to the local file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Downloading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

参见

  • ssh2_scp_send() - Send a file via SCP
  • copy() - 拷贝文件

ssh2_publickey_remove
ssh2_scp_send
SSH2 函数


Send a file via SCP

ssh2_scp_recv
ssh2_sftp_lstat
SSH2 函数
PHP 手册

ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_send — Send a file via SCP

说明

bool ssh2_scp_send ( resource $session , string $local_file , string $remote_file [, int $create_mode=0644 ] )

Copy a file from the local filesystem to the remote server using the SCP protocol.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

local_file

Path to the local file.

remote_file

Path to the remote file.

create_mode

The file will be created with the mode specified by create_mode .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Uploading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

参见

  • ssh2_scp_recv() - Request a file via SCP
  • copy() - 拷贝文件

ssh2_scp_recv
ssh2_sftp_lstat
SSH2 函数


Stat a symbolic link

ssh2_scp_send
ssh2_sftp_mkdir
SSH2 函数
PHP 手册

ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstat — Stat a symbolic link

说明

array ssh2_sftp_lstat ( resource $sftp , string $path )

Stats a symbolic link on the remote filesystem without following the link.

This function is similar to using the lstat() function with the ssh2.sftp:// wrapper in PHP5 and returns the same values.

参数

sftp

path

Path to the remote symbolic link.

返回值

See the documentation for stat() for details on the values which may be returned.

范例

Example #1 Stating a symbolic link via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

参见

  • ssh2_sftp_stat() - Stat a file on a remote filesystem
  • lstat() - 给出一个文件或符号连接的信息
  • stat() - 给出文件的信息

ssh2_scp_send
ssh2_sftp_mkdir
SSH2 函数


Create a directory

ssh2_sftp_lstat
ssh2_sftp_readlink
SSH2 函数
PHP 手册

ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdir — Create a directory

说明

bool ssh2_sftp_mkdir ( resource $sftp , string $dirname [, int $mode=0777 [, bool $recursive=false ]] )

Creates a directory on the remote file server with permissions set to mode .

This function is similar to using mkdir() with the ssh2.sftp:// wrapper.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

dirname

Path of the new directory.

mode

Permissions on the new directory.

recursive

If recursive is TRUE any parent directories required for dirname will be automatically created as well.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Creating a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Or:  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

参见

  • mkdir() - 新建目录
  • ssh2_sftp_rmdir() - Remove a directory

ssh2_sftp_lstat
ssh2_sftp_readlink
SSH2 函数


Return the target of a symbolic link

ssh2_sftp_mkdir
ssh2_sftp_realpath
SSH2 函数
PHP 手册

ssh2_sftp_readlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_readlink — Return the target of a symbolic link

说明

string ssh2_sftp_readlink ( resource $sftp , string $link )

Returns the target of a symbolic link.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

link

Path of the symbolic link.

返回值

Returns the target of the symbolic link .

范例

Example #1 Reading a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$target = ssh2_sftp_readlink($sftp, '/tmp/mysql.sock');
/* $target is now (e.g.): '/var/run/mysql.sock' */
?>

参见

  • readlink() - 返回符号连接指向的目标
  • ssh2_sftp_symlink() - Create a symlink

ssh2_sftp_mkdir
ssh2_sftp_realpath
SSH2 函数


Resolve the realpath of a provided path string

ssh2_sftp_readlink
ssh2_sftp_rename
SSH2 函数
PHP 手册

ssh2_sftp_realpath

(PECL ssh2 >= 0.9.0)

ssh2_sftp_realpath — Resolve the realpath of a provided path string

说明

string ssh2_sftp_realpath ( resource $sftp , string $filename )

Translates filename into the effective real path on the remote filesystem.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

返回值

Returns the real path as a string.

范例

Example #1 Resolving a pathname

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$realpath = ssh2_sftp_realpath($sftp, '/home/username/../../../..//./usr/../etc/passwd');
/* $realpath is now: '/etc/passwd' */
?>

参见

  • realpath() - 返回规范化的绝对路径名
  • ssh2_sftp_symlink() - Create a symlink
  • ssh2_sftp_readlink() - Return the target of a symbolic link

ssh2_sftp_readlink
ssh2_sftp_rename
SSH2 函数


Rename a remote file

ssh2_sftp_realpath
ssh2_sftp_rmdir
SSH2 函数
PHP 手册

ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rename — Rename a remote file

说明

bool ssh2_sftp_rename ( resource $sftp , string $from , string $to )

Renames a file on the remote filesystem.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

from

The current file that is being renamed.

to

The new file name that replaces from .

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Renaming a file via sftp

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

参见

  • rename() - 重命名一个文件或目录

ssh2_sftp_realpath
ssh2_sftp_rmdir
SSH2 函数


Remove a directory

ssh2_sftp_rename
ssh2_sftp_stat
SSH2 函数
PHP 手册

ssh2_sftp_rmdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rmdir — Remove a directory

说明

bool ssh2_sftp_rmdir ( resource $sftp , string $dirname )

Removes a directory from the remote file server.

This function is similar to using rmdir() with the ssh2.sftp:// wrapper.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

dirname

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Removing a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Or:  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

参见

  • rmdir() - 删除目录
  • ssh2_sftp_mkdir() - Create a directory

ssh2_sftp_rename
ssh2_sftp_stat
SSH2 函数


Stat a file on a remote filesystem

ssh2_sftp_rmdir
ssh2_sftp_symlink
SSH2 函数
PHP 手册

ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_stat — Stat a file on a remote filesystem

说明

array ssh2_sftp_stat ( resource $sftp , string $path )

Stats a file on the remote filesystem following any symbolic links.

This function is similar to using the stat() function with the ssh2.sftp:// wrapper in PHP5 and returns the same values.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

path

返回值

See the documentation for stat() for details on the values which may be returned.

范例

Example #1 Stating a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

参见

  • ssh2_sftp_lstat() - Stat a symbolic link
  • lstat() - 给出一个文件或符号连接的信息
  • stat() - 给出文件的信息

ssh2_sftp_rmdir
ssh2_sftp_symlink
SSH2 函数


Create a symlink

ssh2_sftp_stat
ssh2_sftp_unlink
SSH2 函数
PHP 手册

ssh2_sftp_symlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_symlink — Create a symlink

说明

bool ssh2_sftp_symlink ( resource $sftp , string $target , string $link )

Creates a symbolic link named link on the remote filesystem pointing to target .

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

target

Target of the symbolic link.

link

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Creating a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_symlink($sftp, '/var/run/mysql.sock', '/tmp/mysql.sock');
?>

参见

  • ssh2_sftp_readlink() - Return the target of a symbolic link
  • symlink() - 建立符号连接

ssh2_sftp_stat
ssh2_sftp_unlink
SSH2 函数


Delete a file

ssh2_sftp_symlink
ssh2_sftp
SSH2 函数
PHP 手册

ssh2_sftp_unlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_unlink — Delete a file

说明

bool ssh2_sftp_unlink ( resource $sftp , string $filename )

Deletes a file on the remote filesystem.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Deleting a file

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, '/home/username/stale_file');
?>

参见

  • unlink() - 删除文件

ssh2_sftp_symlink
ssh2_sftp
SSH2 函数


Initialize SFTP subsystem

ssh2_sftp_unlink
ssh2_shell
SSH2 函数
PHP 手册

ssh2_sftp

(PECL ssh2 >= 0.9.0)

ssh2_sftp — Initialize SFTP subsystem

说明

resource ssh2_sftp ( resource $session )

Request the SFTP subsystem from an already connected SSH2 server.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

返回值

This method returns an SSH2 SFTP resource for use with all other ssh2_sftp_*() methods and the ssh2.sftp:// fopen wrapper.

范例

Example #1 Opening a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>

参见

  • ssh2_scp_recv() - Request a file via SCP
  • ssh2_scp_send() - Send a file via SCP

ssh2_sftp_unlink
ssh2_shell
SSH2 函数


Request an interactive shell

ssh2_sftp
ssh2_tunnel
SSH2 函数
PHP 手册

ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shell — Request an interactive shell

说明

resource ssh2_shell ( resource $session [, string $term_type="vanilla" [, array $env [, int $width=80 [, int $height=25 [, int $width_height_type=SSH2_TERM_UNIT_CHARS ]]]]] )

Open a shell at the remote end and allocate a stream for it.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

term_type

term_type should correspond to one of the entries in the target system's /etc/termcap file and defaults to vanilla.

env

env may be passed as an associative array of name/value pairs to set in the target environment.

width

Width of the virtual terminal.

height

Height of the virtual terminal.

width_height_type

width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

返回值

范例

Example #1 Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

参见

  • ssh2_exec() - Execute a command on a remote server
  • ssh2_tunnel() - Open a tunnel through a remote server
  • ssh2_fetch_stream() - Fetch an extended data stream

ssh2_sftp
ssh2_tunnel
SSH2 函数


Open a tunnel through a remote server

ssh2_shell
SVN
SSH2 函数
PHP 手册

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnel — Open a tunnel through a remote server

说明

resource ssh2_tunnel ( resource $session , string $host , int $port )

Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

参数

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

host

port

返回值

范例

Example #1 Opening a tunnel to an arbitrary host

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

参见

  • ssh2_connect() - Connect to an SSH server
  • fsockopen() - Open Internet or Unix domain socket connection

ssh2_shell
SVN
SSH2 函数


Subversion

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SVN 函数
    • svn_add — Schedules the addition of an item in a working directory
    • svn_auth_get_parameter — Retrieves authentication parameter
    • svn_auth_set_parameter — Sets an authentication parameter
    • svn_blame — Get the SVN blame for a file
    • svn_cat — Returns the contents of a file in a repository
    • svn_checkout — Checks out a working copy from the repository
    • svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version — Returns the version of the SVN client libraries
    • svn_commit — Sends changes from the local working copy to the repository
    • svn_diff — Recursively diffs two paths
    • svn_export — Export the contents of a SVN directory
    • svn_fs_abort_txn — Abort a transaction, returns true if everything is okay, false otherwise
    • svn_fs_apply_text — Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 — Create a new transaction
    • svn_fs_change_node_prop — Return true if everything is ok, false otherwise
    • svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed — Return true if content is different, false otherwise
    • svn_fs_copy — Copies a file or a directory, returns true if all is ok, false otherwise
    • svn_fs_delete — Deletes a file or a directory, return true if all is ok, false otherwise
    • svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length — Returns the length of a file from a given version of the fs
    • svn_fs_is_dir — Return true if the path points to a directory, false otherwise
    • svn_fs_is_file — Return true if the path points to a file, false otherwise
    • svn_fs_make_dir — Creates a new empty directory, returns true if all is ok, false otherwise
    • svn_fs_make_file — Creates a new empty file, returns true if all is ok, false otherwise
    • svn_fs_node_created_rev — Returns the revision in which path under fsroot was created
    • svn_fs_node_prop — Returns the value of a property for a node
    • svn_fs_props_changed — Return true if props are different, false otherwise
    • svn_fs_revision_prop — Fetches the value of a named property
    • svn_fs_revision_root — Get a handle on a specific version of the repository root
    • svn_fs_txn_root — Creates and returns a transaction root
    • svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem
    • svn_import — Imports an unversioned path into a repository
    • svn_log — Returns the commit log messages of a repository URL
    • svn_ls — Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir — Creates a directory in a working copy or repository
    • svn_repos_create — Create a new subversion repository at path
    • svn_repos_fs_begin_txn_for_commit — Create a new transaction
    • svn_repos_fs_commit_txn — Commits a transaction and returns the new revision
    • svn_repos_fs — Gets a handle on the filesystem for a repository
    • svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open — Open a shared lock on a repository.
    • svn_repos_recover — Run recovery procedures on the repository located at path.
    • svn_revert — Revert changes to the working copy
    • svn_status — Returns the status of working copy files and directories
    • svn_update — Update working copy
ssh2_tunnel
简介
其它服务


简介

This extension implements PHP bindings for » Subversion (SVN), a version control system, allowing PHP scripts to communicate with SVN repositories and working copies without direct command line calls to the svn executable.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

SVN
安装/配置
SVN


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SVN


需求

The Subversion binaries are not necessary to use this extension. However, when compiling the extension, libsvn (the Subversion headers) must be available.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/svn

If ./configure is having trouble finding the SVN files (for example, Subversion was installed with a different prefix directory), use ./configure --with-svn=$USR_PATH to specify the directory where the include/subversion-1/ folder is located.

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

Warning

If the extension is compiled against libsvn 1.3, functions that work with working copies will fail when used on working copies created by Subversion 1.4.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SVN_REVISION_HEAD (integer)
Magic number (-1) specifying the HEAD revision
Constants usable with svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (string)
Property for default username to use when performing basic authentication
SVN_AUTH_PARAM_DEFAULT_PASSWORD (string)
Property for default password to use when performing basic authentication
SVN_AUTH_PARAM_NON_INTERACTIVE (string)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (string)
SVN_AUTH_PARAM_NO_AUTH_CACHE (string)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (string)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (string)
SVN_AUTH_PARAM_CONFIG (string)
SVN_AUTH_PARAM_SERVER_GROUP (string)
SVN_AUTH_PARAM_CONFIG_DIR (string)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (string)
Custom property for ignoring SSL cert verification errors
Filesystem constants
SVN_FS_CONFIG_FS_TYPE (string)
Configuration key that determines filesystem type
SVN_FS_TYPE_BDB (string)
Filesystem is Berkeley-DB implementation
SVN_FS_TYPE_FSFS (string)
Filesystem is native-filesystem implementation
Reserved property constants
SVN_PROP_REVISION_DATE (string)
svn:date
SVN_PROP_REVISION_ORIG_DATE (string)
svn:original-date
SVN_PROP_REVISION_AUTHOR (string)
svn:author
SVN_PROP_REVISION_LOG (string)
svn:log
Working copy status constants
SVN_WC_STATUS_NONE (int)
Status does not exist
SVN_WC_STATUS_UNVERSIONED (int)
Item is not versioned in working copy
SVN_WC_STATUS_NORMAL (int)
Item exists, nothing else is happening
SVN_WC_STATUS_ADDED (int)
Item is scheduled for addition
SVN_WC_STATUS_MISSING (int)
Item is versioned but missing from the working copy
SVN_WC_STATUS_DELETED (int)
Item is scheduled for deletion
SVN_WC_STATUS_REPLACED (int)
Item was deleted and then re-added
SVN_WC_STATUS_MODIFIED (int)
Item (text or properties) was modified
SVN_WC_STATUS_MERGED (int)
Item's local modifications were merged with repository modifications
SVN_WC_STATUS_CONFLICTED (int)
Item's local modifications conflicted with repository modifications
SVN_WC_STATUS_IGNORED (int)
Item is unversioned but configured to be ignored
SVN_WC_STATUS_OBSTRUCTED (int)
Unversioned item is in the way of a versioned resource
SVN_WC_STATUS_EXTERNAL (int)
Unversioned path that is populated using svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Directory does not contain complete entries list
Node type constants
SVN_NODE_NONE (int)
Absent
SVN_NODE_FILE (int)
File
SVN_NODE_DIR (int)
Directory
SVN_NODE_UNKNOWN (int)
Something Subversion cannot identify
资源类型
SVN 函数
SVN


SVN 函数

Table of Contents

  • svn_add — Schedules the addition of an item in a working directory
  • svn_auth_get_parameter — Retrieves authentication parameter
  • svn_auth_set_parameter — Sets an authentication parameter
  • svn_blame — Get the SVN blame for a file
  • svn_cat — Returns the contents of a file in a repository
  • svn_checkout — Checks out a working copy from the repository
  • svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
  • svn_client_version — Returns the version of the SVN client libraries
  • svn_commit — Sends changes from the local working copy to the repository
  • svn_diff — Recursively diffs two paths
  • svn_export — Export the contents of a SVN directory
  • svn_fs_abort_txn — Abort a transaction, returns true if everything is okay, false otherwise
  • svn_fs_apply_text — Creates and returns a stream that will be used to replace
  • svn_fs_begin_txn2 — Create a new transaction
  • svn_fs_change_node_prop — Return true if everything is ok, false otherwise
  • svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot
  • svn_fs_contents_changed — Return true if content is different, false otherwise
  • svn_fs_copy — Copies a file or a directory, returns true if all is ok, false otherwise
  • svn_fs_delete — Deletes a file or a directory, return true if all is ok, false otherwise
  • svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type
  • svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs
  • svn_fs_file_length — Returns the length of a file from a given version of the fs
  • svn_fs_is_dir — Return true if the path points to a directory, false otherwise
  • svn_fs_is_file — Return true if the path points to a file, false otherwise
  • svn_fs_make_dir — Creates a new empty directory, returns true if all is ok, false otherwise
  • svn_fs_make_file — Creates a new empty file, returns true if all is ok, false otherwise
  • svn_fs_node_created_rev — Returns the revision in which path under fsroot was created
  • svn_fs_node_prop — Returns the value of a property for a node
  • svn_fs_props_changed — Return true if props are different, false otherwise
  • svn_fs_revision_prop — Fetches the value of a named property
  • svn_fs_revision_root — Get a handle on a specific version of the repository root
  • svn_fs_txn_root — Creates and returns a transaction root
  • svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem
  • svn_import — Imports an unversioned path into a repository
  • svn_log — Returns the commit log messages of a repository URL
  • svn_ls — Returns list of directory contents in repository URL, optionally at revision number
  • svn_mkdir — Creates a directory in a working copy or repository
  • svn_repos_create — Create a new subversion repository at path
  • svn_repos_fs_begin_txn_for_commit — Create a new transaction
  • svn_repos_fs_commit_txn — Commits a transaction and returns the new revision
  • svn_repos_fs — Gets a handle on the filesystem for a repository
  • svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath
  • svn_repos_open — Open a shared lock on a repository.
  • svn_repos_recover — Run recovery procedures on the repository located at path.
  • svn_revert — Revert changes to the working copy
  • svn_status — Returns the status of working copy files and directories
  • svn_update — Update working copy
预定义常量
svn_add
SVN


Schedules the addition of an item in a working directory

SVN 函数
svn_auth_get_parameter
SVN 函数
PHP 手册

svn_add

(PECL svn >= 0.1.0)

svn_add — Schedules the addition of an item in a working directory

说明

bool svn_add ( string $path [, bool $recursive=true [, bool $force=false ]] )

Adds the file, directory or symbolic link at path to the working directory. The item will be added to the repository the next time you call svn_commit() on the working copy.

参数

path

Path of item to add.

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

recursive

If item is directory, whether or not to recursively add all of its contents. Default is TRUE

force

If true, Subversion will recurse into already versioned directories in order to add unversioned files that may be hiding in those directories. Default is FALSE

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 svn_add() example

In a working directory where svn status returns:

$ svn status
?      foobar.txt

...this code:

<?php
svn_add('foobar.txt');
?>

...will schedule foobar.txt for addition into the repository.

参见

  • » SVN documentation on svn add

SVN 函数
svn_auth_get_parameter
SVN 函数


Retrieves authentication parameter

svn_add
svn_auth_set_parameter
SVN 函数
PHP 手册

svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameter — Retrieves authentication parameter

说明

string svn_auth_get_parameter ( string $key )

Retrieves authentication parameter at key . For a list of valid keys and their meanings, consult the authentication constants list.

参数

key

String key name. Use the authentication constants defined by this extension to specify a key.

返回值

Returns the string value of the parameter at key ; returns NULL if parameter does not exist.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参见

  • svn_auth_set_parameter() - Sets an authentication parameter
  • Authentication constants

svn_add
svn_auth_set_parameter
SVN 函数


Sets an authentication parameter

svn_auth_get_parameter
svn_blame
SVN 函数
PHP 手册

svn_auth_set_parameter

(PECL svn >= 0.1.0)

svn_auth_set_parameter — Sets an authentication parameter

说明

void svn_auth_set_parameter ( string $key , string $value )

Sets authentication parameter at key to value . For a list of valid keys and their meanings, consult the authentication constants list.

参数

key

String key name. Use the authentication constants defined by this extension to specify a key.

value

String value to set to parameter at key. Format of value varies with the parameter.

返回值

无返回值。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Default authentication example

This example configures SVN so that the default username to use is 'Bob' and the default password is 'abc123':

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
?>

参见

  • svn_auth_get_parameter() - Retrieves authentication parameter
  • Authentication constants

svn_auth_get_parameter
svn_blame
SVN 函数


Get the SVN blame for a file

svn_auth_set_parameter
svn_cat
SVN 函数
PHP 手册

svn_blame

(PECL svn >= 0.3.0)

svn_blame — Get the SVN blame for a file

说明

array svn_blame ( string $repository_url [, int $revision_no=SVN_REVISION_HEAD ] )

Get the SVN blame of a file from a repository URL.

参数

repository_url

The repository URL.

revision_no

The revision number.

返回值

An array of SVN blame information separated by line which includes the revision number, line number, line of code, author, and date.

范例

Example #1 svn_blame() example

<?php
$svnurl = 'http://svn.example.org/svnroot/foo/trunk/index.php';

print_r( svn_blame($svnurl) );

?>

上例的输出类似于：

Array
(
    [0] = Array
          (
           [rev] = 1
           [line_no] = 1
           [line] = Hello World
           [author] = joesmith
           [date] = 2007-07-02T05:51:26.628396Z
          )
    [1] = Array
          ...

参见

  • svn_diff() - Recursively diffs two paths
  • svn_logs()
  • svn_status() - Returns the status of working copy files and directories

svn_auth_set_parameter
svn_cat
SVN 函数


Returns the contents of a file in a repository

svn_blame
svn_checkout
SVN 函数
PHP 手册

svn_cat

(PECL svn >= 0.1.0)

svn_cat — Returns the contents of a file in a repository

说明

string svn_cat ( string $repos_url [, int $revision_no ] )

Returns the contents of the URL repos_url to a file in the repository, optionally at revision number revision_no .

参数

repos_url

String URL path to item in a repository.

revision_no

Integer revision number of item to retrieve, default is the HEAD revision.

返回值

Returns the string contents of the item from the repository on success, and FALSE on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example retrieves the contents of a file at revision 28:

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

参见

  • svn_list()
  • » SVN documentation on svn cat

svn_blame
svn_checkout
SVN 函数


Checks out a working copy from the repository

svn_cat
svn_cleanup
SVN 函数
PHP 手册

svn_checkout

(PECL svn >= 0.1.0)

svn_checkout — Checks out a working copy from the repository

说明

bool svn_checkout ( string $repos , string $targetpath [, int $revision [, int $flags=0 ]] )

Checks out a working copy from the repository at repos to targetpath at revision revision .

参数

repos

String URL path to directory in repository to check out.

targetpath

String local path to directory to check out in to

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

revision

Integer revision number of repository to check out. Default is HEAD, the most recent revision.

flags

Any combination of SVN_NON_RECURSIVE and SVN_IGNORE_EXTERNALS.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example demonstrates how to check out a directory from a repository to a directory named calc:

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

The dirname(__FILE__) call is necessary in order to convert the calc relative path into an absolute one. If calc exists, you can also use realpath() to retrieve an absolute path.

参见

  • svn_add() - Schedules the addition of an item in a working directory
  • svn_commit() - Sends changes from the local working copy to the repository
  • svn_status() - Returns the status of working copy files and directories
  • svn_update() - Update working copy
  • » SVN documentation on svn checkout

svn_cat
svn_cleanup
SVN 函数


Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

svn_checkout
svn_client_version
SVN 函数
PHP 手册

svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

说明

bool svn_cleanup ( string $workingdir )

Recursively cleanup working copy directory workingdir , finishing any incomplete operations and removing working copy locks. Use when a working copy is in limbo and needs to be usable again.

参数

workingdir

String path to local working directory to cleanup

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example demonstrates clean up of a working copy in a directory named help-me:

<?php
svn_cleanup(realpath('help-me'));
?>

The realpath() call is necessary due to SVN's quirky handling of relative paths.

参见

  • update()
  • » SVN documentation on svn cleanup

svn_checkout
svn_client_version
SVN 函数


Returns the version of the SVN client libraries

svn_cleanup
svn_commit
SVN 函数
PHP 手册

svn_client_version

(PECL svn >= 0.1.0)

svn_client_version — Returns the version of the SVN client libraries

说明

string svn_client_version ( void )

Returns the version of the SVN client libraries

返回值

String version number, usually in form of x.y.z.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

<?php
echo svn_client_version();
?>

上例的输出类似于：

1.3.1

svn_cleanup
svn_commit
SVN 函数


Sends changes from the local working copy to the repository

svn_client_version
svn_diff
SVN 函数
PHP 手册

svn_commit

(PECL svn >= 0.1.0)

svn_commit — Sends changes from the local working copy to the repository

说明

array svn_commit ( string $log , array $targets [, bool $dontrecurse ] )

Commits changes made in the local working copy files enumerated in the targets array to the repository, with the log message log . Directories in the targets array will be recursively committed unless dontrecurse is set to true.

Note: This function does not have any parameters for specifying authentication, so a username and password must be set using svn_auth_set_parameter()

参数

log

String log text to commit

targets

Array of local paths of files to be committed

Warning

This parameter must be an array, a string for a single target is not acceptable.

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

dontrecurse

Boolean flag to disable recursive committing of directories in the targets array. Default is FALSE.

返回值

Returns array in form of:

array(
    0 => integer revision number of commit
    1 => string ISO 8601 date and time of commit
    2 => name of committer
)

Returns FALSE on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example commits the calculator directory to a repository, using the username Bob and the password abc123 (hopefully, his password is stronger):

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
var_dump(svn_commit('Log message of Bob\'s commit', array(realpath('calculator'))));
?>

上例将输出：

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

参见

  • svn_auth_set_parameter() - Sets an authentication parameter
  • » SVN documentation on svn commit

svn_client_version
svn_diff
SVN 函数


Recursively diffs two paths

svn_commit
svn_export
SVN 函数
PHP 手册

svn_diff

(PECL svn >= 0.1.0)

svn_diff — Recursively diffs two paths

说明

array svn_diff ( string $path1 , int $rev1 , string $path2 , int $rev2 )

Recursively diffs two paths, path1 and path2 .

Note: This is not a general-purpose diff utility. Only local files that are versioned may be diffed: other files will fail.

参数

path1

First path to diff. This can be a URL to a file/directory in an SVN repository or a local file/directory path.

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

Warning

If a local file path has only backslashes and no forward slashes, this extension will fail to find the path. Always replace all backslashes with forward slashes when using this function.

rev1

First path's revision number. Use SVN_REVISION_HEAD to specify the most recent revision.

path2

Second path to diff. See path1 for description.

rev2

Second path's revision number. See rev1 for description.

返回值

Returns an array-list consisting of two streams: the first is the diff output and the second contains error stream output. The streams can be read using fread(). Returns FALSE or NULL on error.

The diff output will, by default, be in the form of Subversion's custom unified diff format, but an » external diff engine may be used depending on Subversion's configuration.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example demonstrates the basic usage of this function, and the retrieval of contents from the stream:

<?php
list($diff, $errors) = svn_diff(
    'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
    'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
  $contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

上例将输出：

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // further diff output

Example #2 Diffing two revisions of a repository path

This example implements a wrapper function that allows a user to easily diff two revisions of the same item using an external repository path (the default syntax is somewhat verbose):

<?php
function svn_diff_same_item($path, $rev1, $rev2) {
    return svn_diff($path, $rev1, $path, $rev2);
}
?>

Example #3 Portably diffing two local files

This example implements a wrapper function that portably diffs two local files, compensating for the realpath() fix and the backslashes bug:

<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
    $path1 = str_replace('\\', '/', realpath($path1));
    $path2 = str_replace('\\', '/', realpath($path2));
    return svn_diff($path1, $rev1, $path2, $rev2);
}
?>

参见

  • » SVN documentation on svn diff

svn_commit
svn_export
SVN 函数


Export the contents of a SVN directory

svn_diff
svn_fs_abort_txn
SVN 函数
PHP 手册

svn_export

(PECL svn >= 0.3.0)

svn_export — Export the contents of a SVN directory

说明

bool svn_export ( string $frompath , string $topath [, bool $working_copy=true ] )

Export the contents of either a working copy or repository into a 'clean' directory.

参数

frompath

The path to the current repository.

topath

The path to the new repository.

working_copy

If TRUE, it will export uncommitted files from the working copy. Default value is TRUE

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 svn_export() example

<?php
$working_dir     = '../';
$new_working_dir = '/home/user/devel/foo/trunk';

svn_export($working_dir, $new_working_dir);
?>

参见

  • svn_import() - Imports an unversioned path into a repository

svn_diff
svn_fs_abort_txn
SVN 函数


Abort a transaction, returns true if everything is okay, false otherwise

svn_export
svn_fs_apply_text
SVN 函数
PHP 手册

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Abort a transaction, returns true if everything is okay, false otherwise

说明

bool svn_fs_abort_txn ( resource $txn )
Warning

本函数暂无文档，仅有参数列表。

Abort a transaction, returns true if everything is okay, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_export
svn_fs_apply_text
SVN 函数


Creates and returns a stream that will be used to replace

svn_fs_abort_txn
svn_fs_begin_txn2
SVN 函数
PHP 手册

svn_fs_apply_text

(PECL svn >= 0.2.0)

svn_fs_apply_text — Creates and returns a stream that will be used to replace

说明

resource svn_fs_apply_text ( resource $root , string $path )
Warning

本函数暂无文档，仅有参数列表。

Creates and returns a stream that will be used to replace

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_abort_txn
svn_fs_begin_txn2
SVN 函数


Create a new transaction

svn_fs_apply_text
svn_fs_change_node_prop
SVN 函数
PHP 手册

svn_fs_begin_txn2

(PECL svn >= 0.2.0)

svn_fs_begin_txn2 — Create a new transaction

说明

resource svn_fs_begin_txn2 ( resource $repos , int $rev )
Warning

本函数暂无文档，仅有参数列表。

Create a new transaction

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_apply_text
svn_fs_change_node_prop
SVN 函数


Return true if everything is ok, false otherwise

svn_fs_begin_txn2
svn_fs_check_path
SVN 函数
PHP 手册

svn_fs_change_node_prop

(PECL svn >= 0.2.0)

svn_fs_change_node_prop — Return true if everything is ok, false otherwise

说明

bool svn_fs_change_node_prop ( resource $root , string $path , string $name , string $value )
Warning

本函数暂无文档，仅有参数列表。

Return true if everything is ok, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_begin_txn2
svn_fs_check_path
SVN 函数


Determines what kind of item lives at path in a given repository fsroot

svn_fs_change_node_prop
svn_fs_contents_changed
SVN 函数
PHP 手册

svn_fs_check_path

(PECL svn >= 0.1.0)

svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot

说明

int svn_fs_check_path ( resource $fsroot , string $path )
Warning

本函数暂无文档，仅有参数列表。

Determines what kind of item lives at path in a given repository fsroot

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_change_node_prop
svn_fs_contents_changed
SVN 函数


Return true if content is different, false otherwise

svn_fs_check_path
svn_fs_copy
SVN 函数
PHP 手册

svn_fs_contents_changed

(PECL svn >= 0.2.0)

svn_fs_contents_changed — Return true if content is different, false otherwise

说明

bool svn_fs_contents_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Warning

本函数暂无文档，仅有参数列表。

Return true if content is different, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_check_path
svn_fs_copy
SVN 函数


Copies a file or a directory, returns true if all is ok, false otherwise

svn_fs_contents_changed
svn_fs_delete
SVN 函数
PHP 手册

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Copies a file or a directory, returns true if all is ok, false otherwise

说明

bool svn_fs_copy ( resource $from_root , string $from_path , resource $to_root , string $to_path )
Warning

本函数暂无文档，仅有参数列表。

Copies a file or a directory, returns true if all is ok, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_contents_changed
svn_fs_delete
SVN 函数


Deletes a file or a directory, return true if all is ok, false otherwise

svn_fs_copy
svn_fs_dir_entries
SVN 函数
PHP 手册

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Deletes a file or a directory, return true if all is ok, false otherwise

说明

bool svn_fs_delete ( resource $root , string $path )
Warning

本函数暂无文档，仅有参数列表。

Deletes a file or a directory, return true if all is ok, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_copy
svn_fs_dir_entries
SVN 函数


Enumerates the directory entries under path; returns a hash of dir names to file type

svn_fs_delete
svn_fs_file_contents
SVN 函数
PHP 手册

svn_fs_dir_entries

(PECL svn >= 0.1.0)

svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type

说明

array svn_fs_dir_entries ( resource $fsroot , string $path )
Warning

本函数暂无文档，仅有参数列表。

Enumerates the directory entries under path; returns a hash of dir names to file type

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_delete
svn_fs_file_contents
SVN 函数


Returns a stream to access the contents of a file from a given version of the fs

svn_fs_dir_entries
svn_fs_file_length
SVN 函数
PHP 手册

svn_fs_file_contents

(PECL svn >= 0.1.0)

svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs

说明

resource svn_fs_file_contents ( resource $fsroot , string $path )
Warning

本函数暂无文档，仅有参数列表。

Returns a stream to access the contents of a file from a given version of the fs

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_dir_entries
svn_fs_file_length
SVN 函数


Returns the length of a file from a given version of the fs

svn_fs_file_contents
svn_fs_is_dir
SVN 函数
PHP 手册

svn_fs_file_length

(PECL svn >= 0.1.0)

svn_fs_file_length — Returns the length of a file from a given version of the fs

说明

int svn_fs_file_length ( resource $fsroot , string $path )
Warning

本函数暂无文档，仅有参数列表。

Returns the length of a file from a given version of the fs

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_file_contents
svn_fs_is_dir
SVN 函数


Return true if the path points to a directory, false otherwise

svn_fs_file_length
svn_fs_is_file
SVN 函数
PHP 手册

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Return true if the path points to a directory, false otherwise

说明

bool svn_fs_is_dir ( resource $root , string $path )
Warning

本函数暂无文档，仅有参数列表。

Return true if the path points to a directory, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_file_length
svn_fs_is_file
SVN 函数


Return true if the path points to a file, false otherwise

svn_fs_is_dir
svn_fs_make_dir
SVN 函数
PHP 手册

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Return true if the path points to a file, false otherwise

说明

bool svn_fs_is_file ( resource $root , string $path )
Warning

本函数暂无文档，仅有参数列表。

Return true if the path points to a file, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_is_dir
svn_fs_make_dir
SVN 函数


Creates a new empty directory, returns true if all is ok, false otherwise

svn_fs_is_file
svn_fs_make_file
SVN 函数
PHP 手册

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Creates a new empty directory, returns true if all is ok, false otherwise

说明

bool svn_fs_make_dir ( resource $root , string $path )
Warning

本函数暂无文档，仅有参数列表。

Creates a new empty directory, returns true if all is ok, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_is_file
svn_fs_make_file
SVN 函数


Creates a new empty file, returns true if all is ok, false otherwise

svn_fs_make_dir
svn_fs_node_created_rev
SVN 函数
PHP 手册

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Creates a new empty file, returns true if all is ok, false otherwise

说明

bool svn_fs_make_file ( resource $root , string $path )
Warning

本函数暂无文档，仅有参数列表。

Creates a new empty file, returns true if all is ok, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_make_dir
svn_fs_node_created_rev
SVN 函数


Returns the revision in which path under fsroot was created

svn_fs_make_file
svn_fs_node_prop
SVN 函数
PHP 手册

svn_fs_node_created_rev

(PECL svn >= 0.1.0)

svn_fs_node_created_rev — Returns the revision in which path under fsroot was created

说明

int svn_fs_node_created_rev ( resource $fsroot , string $path )
Warning

本函数暂无文档，仅有参数列表。

Returns the revision in which path under fsroot was created

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_make_file
svn_fs_node_prop
SVN 函数


Returns the value of a property for a node

svn_fs_node_created_rev
svn_fs_props_changed
SVN 函数
PHP 手册

svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_prop — Returns the value of a property for a node

说明

string svn_fs_node_prop ( resource $fsroot , string $path , string $propname )
Warning

本函数暂无文档，仅有参数列表。

Returns the value of a property for a node

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_node_created_rev
svn_fs_props_changed
SVN 函数


Return true if props are different, false otherwise

svn_fs_node_prop
svn_fs_revision_prop
SVN 函数
PHP 手册

svn_fs_props_changed

(PECL svn >= 0.2.0)

svn_fs_props_changed — Return true if props are different, false otherwise

说明

bool svn_fs_props_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Warning

本函数暂无文档，仅有参数列表。

Return true if props are different, false otherwise

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_node_prop
svn_fs_revision_prop
SVN 函数


Fetches the value of a named property

svn_fs_props_changed
svn_fs_revision_root
SVN 函数
PHP 手册

svn_fs_revision_prop

(PECL svn >= 0.1.0)

svn_fs_revision_prop — Fetches the value of a named property

说明

string svn_fs_revision_prop ( resource $fs , int $revnum , string $propname )
Warning

本函数暂无文档，仅有参数列表。

Fetches the value of a named property

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_props_changed
svn_fs_revision_root
SVN 函数


Get a handle on a specific version of the repository root

svn_fs_revision_prop
svn_fs_txn_root
SVN 函数
PHP 手册

svn_fs_revision_root

(PECL svn >= 0.1.0)

svn_fs_revision_root — Get a handle on a specific version of the repository root

说明

resource svn_fs_revision_root ( resource $fs , int $revnum )
Warning

本函数暂无文档，仅有参数列表。

Get a handle on a specific version of the repository root

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_revision_prop
svn_fs_txn_root
SVN 函数


Creates and returns a transaction root

svn_fs_revision_root
svn_fs_youngest_rev
SVN 函数
PHP 手册

svn_fs_txn_root

(PECL svn >= 0.2.0)

svn_fs_txn_root — Creates and returns a transaction root

说明

resource svn_fs_txn_root ( resource $txn )
Warning

本函数暂无文档，仅有参数列表。

Creates and returns a transaction root

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_revision_root
svn_fs_youngest_rev
SVN 函数


Returns the number of the youngest revision in the filesystem

svn_fs_txn_root
svn_import
SVN 函数
PHP 手册

svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem

说明

int svn_fs_youngest_rev ( resource $fs )
Warning

本函数暂无文档，仅有参数列表。

Returns the number of the youngest revision in the filesystem

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_fs_txn_root
svn_import
SVN 函数


Imports an unversioned path into a repository

svn_fs_youngest_rev
svn_log
SVN 函数
PHP 手册

svn_import

(PECL svn >= 0.2.0)

svn_import — Imports an unversioned path into a repository

说明

bool svn_import ( string $path , string $url , bool $nonrecursive )

Commits unversioned path into repository at url . If path is a directory and nonrecursive is FALSE, the directory will be imported recursively.

参数

path

Path of file or directory to import.

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

url

Repository URL to import into.

nonrecursive

Whether or not to refrain from recursively processing directories.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example demonstrates a basic use-case of this function. To import a directory named new-files into the repository at http://www.example.com/svnroot/incoming/abc, use:

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

参见

  • svn_add() - Schedules the addition of an item in a working directory
  • » SVN documentation for svn import

svn_fs_youngest_rev
svn_log
SVN 函数


Returns the commit log messages of a repository URL

svn_import
svn_ls
SVN 函数
PHP 手册

svn_log

(PECL svn >= 0.1.0)

svn_log — Returns the commit log messages of a repository URL

说明

array svn_log ( string $repos_url [, int $start_revision [, int $end_revision [, int $limit=0 [, int $flags=SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ]]]] )

svn_log() returns the complete history of the item at the repository URL repos_url , or the history of a specific revision if start_revision is set. This function is equivalent to svn log --verbose -r $start_revision $repos_url .

Warning

For repositories with large histories, the output may be quite large (one array item for every revision of the item). This function does not support the --limit NUM flag, nor does it support revision ranges (start_revision must be an integer).

参数

repos_url

Repository URL of the item to retrieve log history from.

start_revision

Revision number of the first log to retrieve. Use SVN_REVISION_HEAD to retrieve the log from the most recent revision.

end_revision

Revision number of the last log to retrieve. Defaults to start_revision if specified or to SVN_REVISION_INITIAL otherwise.

limit

Number of logs to retrieve.

flags

Any combination of SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS and SVN_STOP_ON_COPY, defaults to SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY .

返回值

On success, this function returns an array file listing in the format of:

[0] => Array, ordered most recent (highest) revision first
(
    [rev] => integer revision number
    [author] => string author name
    [msg] => string log message
    [date] => string date formatted per ISO 8601, i.e. date('c')
    [paths] => Array, describing changed files
        (
            [0] => Array
                (
                    [action] => string letter signifying change
                    [path] =>  absolute repository path of changed file
                )
            [1] => ...
        )
)
[1] => ...

Note: The output will always be a numerically indexed array of arrays, even when there are none or only one log message(s).

The value of action is a subset of the » status output in the first column, where possible values are:

Actions
Letter | Description
M | Item/props was modified
A | Item was added
D | Item was deleted
R | Item was replaced

If no changes were made to the item, an empty array is returned.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 svn_log() example

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

上例的输出类似于：

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'Add cheese and salami to our sandwich.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

参见

  • » SVN documentation on svn log

svn_import
svn_ls
SVN 函数


Returns list of directory contents in repository URL, optionally at revision number

svn_log
svn_mkdir
SVN 函数
PHP 手册

svn_ls

(PECL svn >= 0.1.0)

svn_ls — Returns list of directory contents in repository URL, optionally at revision number

说明

array svn_ls ( string $repos_url [, int $revision_no=SVN_REVISION_HEAD [, bool $recurse=false ]] )

This function queries the repository URL and returns a list of files and directories, optionally from a specific revision. This is equivalent to svn list $repos_url[@$revision_no]

Note: This function does not work with working copies. repos_url must be a repository URL.

参数

url

URL of the repository, eg. http://www.example.com/svnroot . To access a local Subversion repository via filesystem, use the file URI scheme, eg. file:///home/user/svn-repos

revision

Integer revision number to retrieve listing of. When omitted, the HEAD revision is used.

recurse

Enables recursion.

返回值

On success, this function returns an array file listing in the format of:

[0] => Array
    (
        [created_rev] => integer revision number of last edit
        [last_author] => string author name of last edit
        [size] => integer byte file size of file
        [time] => string date of last edit in form 'M d H:i'
                  or 'M d Y', depending on how old the file is
        [time_t] => integer unix timestamp of last edit
        [name] => name of file/directory
        [type] => type, can be 'file' or 'dir'
    )
[1] => ...

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 svn_ls() example

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

上例的输出类似于：

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

参见

  • » SVN documentation on svn list

svn_log
svn_mkdir
SVN 函数


Creates a directory in a working copy or repository

svn_ls
svn_repos_create
SVN 函数
PHP 手册

svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdir — Creates a directory in a working copy or repository

说明

bool svn_mkdir ( string $path )

Creates a directory in a working copy or repository.

参数

path

The path to the working copy or repository.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • svn_add() - Schedules the addition of an item in a working directory
  • svn_copy()

svn_ls
svn_repos_create
SVN 函数


Create a new subversion repository at path

svn_mkdir
svn_repos_fs_begin_txn_for_commit
SVN 函数
PHP 手册

svn_repos_create

(PECL svn >= 0.1.0)

svn_repos_create — Create a new subversion repository at path

说明

resource svn_repos_create ( string $path [, array $config [, array $fsconfig ]] )
Warning

本函数暂无文档，仅有参数列表。

Create a new subversion repository at path

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_mkdir
svn_repos_fs_begin_txn_for_commit
SVN 函数


Create a new transaction

svn_repos_create
svn_repos_fs_commit_txn
SVN 函数
PHP 手册

svn_repos_fs_begin_txn_for_commit

(PECL svn >= 0.2.0)

svn_repos_fs_begin_txn_for_commit — Create a new transaction

说明

resource svn_repos_fs_begin_txn_for_commit ( resource $repos , int $rev , string $author , string $log_msg )
Warning

本函数暂无文档，仅有参数列表。

Create a new transaction

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_repos_create
svn_repos_fs_commit_txn
SVN 函数


Commits a transaction and returns the new revision

svn_repos_fs_begin_txn_for_commit
svn_repos_fs
SVN 函数
PHP 手册

svn_repos_fs_commit_txn

(PECL svn >= 0.2.0)

svn_repos_fs_commit_txn — Commits a transaction and returns the new revision

说明

int svn_repos_fs_commit_txn ( resource $txn )
Warning

本函数暂无文档，仅有参数列表。

Commits a transaction and returns the new revision

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_repos_fs_begin_txn_for_commit
svn_repos_fs
SVN 函数


Gets a handle on the filesystem for a repository

svn_repos_fs_commit_txn
svn_repos_hotcopy
SVN 函数
PHP 手册

svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fs — Gets a handle on the filesystem for a repository

说明

resource svn_repos_fs ( resource $repos )
Warning

本函数暂无文档，仅有参数列表。

Gets a handle on the filesystem for a repository

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_repos_fs_commit_txn
svn_repos_hotcopy
SVN 函数


Make a hot-copy of the repos at repospath; copy it to destpath

svn_repos_fs
svn_repos_open
SVN 函数
PHP 手册

svn_repos_hotcopy

(PECL svn >= 0.1.0)

svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath

说明

bool svn_repos_hotcopy ( string $repospath , string $destpath , bool $cleanlogs )
Warning

本函数暂无文档，仅有参数列表。

Make a hot-copy of the repos at repospath; copy it to destpath

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_repos_fs
svn_repos_open
SVN 函数


Open a shared lock on a repository.

svn_repos_hotcopy
svn_repos_recover
SVN 函数
PHP 手册

svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_open — Open a shared lock on a repository.

说明

resource svn_repos_open ( string $path )
Warning

本函数暂无文档，仅有参数列表。

Open a shared lock on a repository.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_repos_hotcopy
svn_repos_recover
SVN 函数


Run recovery procedures on the repository located at path.

svn_repos_open
svn_revert
SVN 函数
PHP 手册

svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recover — Run recovery procedures on the repository located at path.

说明

bool svn_repos_recover ( string $path )
Warning

本函数暂无文档，仅有参数列表。

Run recovery procedures on the repository located at path.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

svn_repos_open
svn_revert
SVN 函数


Revert changes to the working copy

svn_repos_recover
svn_status
SVN 函数
PHP 手册

svn_revert

(PECL svn >= 0.3.0)

svn_revert — Revert changes to the working copy

说明

bool svn_revert ( string $path [, bool $recursive=false ] )

Revert any local changes to the path in a working copy.

参数

path

The path to the working repository.

recursive

Optionally make recursive changes. Defaults to FALSE

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • svn_delete()
  • svn_export() - Export the contents of a SVN directory

svn_repos_recover
svn_status
SVN 函数


Returns the status of working copy files and directories

svn_revert
svn_update
SVN 函数
PHP 手册

svn_status

(PECL svn >= 0.1.0)

svn_status — Returns the status of working copy files and directories

说明

array svn_status ( string $path [, int $flags=0 ] )

Returns the status of working copy files and directories, giving modifications, additions, deletions and other changes to items in the working copy.

参数

path

Local path to file or directory to retrieve status of.

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

flags

Any combination of SVN_NON_RECURSIVE, SVN_ALL (regardless of modification status), SVN_SHOW_UPDATES (entries will be added for items that are out-of-date), SVN_NO_IGNORE (disregard svn:ignore properties when scanning for new files) and SVN_IGNORE_EXTERNALS.

返回值

Returns a numerically indexed array of associative arrays detailing the status of items in the repository:

Array (
    [0] => Array (
        // information on item
    )
    [1] => ...
)

The information on the item is an associative array that can contain the following keys:

path
String path to file/directory of this entry on local filesystem.
text_status
Status of item's text. Refer to status constants for possible values.
repos_text_status
Status of item's text in repository. Only accurate if update was set to TRUE. Refer to status constants for possible values.
prop_status
Status of item's properties. Refer to status constants for possible values.
repos_prop_status
Status of item's property in repository. Only accurate if update was set to TRUE. Refer to status constants for possible values.
locked
Whether or not the item is locked. (Only set if TRUE.)
copied
Whether or not the item was copied (scheduled for addition with history). (Only set if TRUE.)
switched
Whether or not the item was switched using the switch command. (Only set if TRUE)

These keys are only set if the item is versioned:

name
Base name of item in repository.
url
URL of item in repository.
repos
Base URL of repository.
revision
Integer revision of item in working copy.
kind
Type of item, i.e. file or directory. Refer to type constants for possible values.
schedule
Scheduled action for item, i.e. addition or deletion. Constants for these magic numbers are not available, they can be emulated by using:
<?php
if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // nothing special
    define('svn_wc_schedule_add',     1); // item will be added
    define('svn_wc_schedule_delete',  2); // item will be deleted
    define('svn_wc_schedule_replace', 3); // item will be added and deleted
}
?>
deleted
Whether or not the item was deleted, but parent revision lags behind. (Only set if TRUE.)
absent
Whether or not the item is absent, that is, Subversion knows that there should be something there but there isn't. (Only set if TRUE.)
incomplete
Whether or not the entries file for a directory is incomplete. (Only set if TRUE.)
cmt_date
Integer Unix timestamp of last commit date. (Unaffected by update .)
cmt_rev
Integer revision of last commit. (Unaffected by update .)
cmt_author
String author of last commit. (Unaffected by update .)
prop_time
Integer Unix timestamp of last up-to-date time for properties
text_time
Integer Unix timestamp of last up-to-date time for text

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example demonstrates a basic, theoretical usage of this function.

<?php
print_r(svn_status(realpath('wc')));
?>

上例的输出类似于：

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // item was modified
        [repos_text_status] => 1 // no information available, use update
        [prop_status] => 3 // no changes
        [repos_prop_status] => 1 // no information available, use update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // file
        [schedule] => 0 // no special actions scheduled
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

参见

  • svn_update() - Update working copy
  • svn_log() - Returns the commit log messages of a repository URL
  • » SVN documentation for svn status

svn_revert
svn_update
SVN 函数


Update working copy

svn_status
TCP
SVN 函数
PHP 手册

svn_update

(PECL svn >= 0.1.0)

svn_update — Update working copy

说明

int svn_update ( string $path [, int $revno=SVN_REVISION_HEAD [, bool $recurse=true ]] )

Update working copy at path to revision revno . If recurse is true, directories will be recursively updated.

参数

path

Path to local working copy.

Note: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).

revno

Revision number to update to, default is SVN_REVISION_HEAD.

recurse

Whether or not to recursively update directories, default is TRUE.

返回值

Returns new revision number on success, returns FALSE on failure.

注释

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

范例

Example #1 Basic example

This example demonstrates basic usage of this function:

<?php
echo svn_update(realpath('working-copy'));
?>

上例的输出类似于：

234

参见

  • svn_checkout() - Checks out a working copy from the repository
  • svn_commit() - Sends changes from the local working copy to the repository
  • » SVN documentation for svn update

svn_status
TCP
SVN 函数


TCP Wrappers

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • TCP 函数
    • tcpwrap_check — Performs a tcpwrap check
svn_update
简介
其它服务


简介

The TCP wrappers provides a classical Unix mechanism which has been designed to check if the remote client is able to connect from the given IP address.

TCP
安装/配置
TCP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
TCP


安装

Tcpwrap is currently available through PECL » http://pecl.php.net/package/tcpwrap.

If » PECL is available on your system you can use the pecl installer to install the tcpwrap extension, by the following command: pecl install tcpwrap.

You can always download the tar.gz package and install tcpwrap by hand:

Example #1 tcpwrap install by hand

gunzip tcpwrap-xxx.tgz
tar -xvf tcpwrap-xxx.tar
cd tcpwrap-xxx
phpize
./configure && make && make install

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
TCP 函数
TCP


TCP 函数

Table of Contents

  • tcpwrap_check — Performs a tcpwrap check
预定义常量
tcpwrap_check
TCP


Performs a tcpwrap check

TCP 函数
YAZ
TCP 函数
PHP 手册

tcpwrap_check

(PECL tcpwrap:0.1-1.0)

tcpwrap_check — Performs a tcpwrap check

说明

bool tcpwrap_check ( string $daemon , string $address [, string $user [, bool $nodns=false ]] )

This function consults the /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for a client.

参数

daemon

The service name.

address

The client remote address. Can be either an IP address or a domain name.

user

An optional user name.

nodns

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to TRUE to avoid this.

返回值

This function returns TRUE if access should be granted, FALSE otherwise.

范例

Example #1 Deny all connections from localhost

If your /etc/hosts.deny file contains:

php: 127.0.0.1

And your code looks like:

<?php
if (!tcpwrap_check('php', $_SERVER['REMOTE_ADDR'])) {
  die('You are not welcome here');
}
?>

参见

For more details please consult hosts_access(3) man page.

TCP 函数
YAZ
TCP 函数


YAZ

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • YAZ 函数
    • yaz_addinfo — Returns additional error information
    • yaz_ccl_conf — Configure CCL parser
    • yaz_ccl_parse — Invoke CCL Parser
    • yaz_close — Close YAZ connection
    • yaz_connect — Prepares for a connection to a Z39.50 server
    • yaz_database — Specifies the databases within a session
    • yaz_element — Specifies Element-Set Name for retrieval
    • yaz_errno — Returns error number
    • yaz_error — Returns error description
    • yaz_es_result — Inspects Extended Services Result
    • yaz_es — Prepares for an Extended Service Request
    • yaz_get_option — Returns value of option for connection
    • yaz_hits — Returns number of hits for last search
    • yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
    • yaz_present — Prepares for retrieval (Z39.50 present)
    • yaz_range — Specifies a range of records to retrieve
    • yaz_record — Returns a record
    • yaz_scan_result — Returns Scan Response result
    • yaz_scan — Prepares for a scan
    • yaz_schema — Specifies schema for retrieval
    • yaz_search — Prepares for a search
    • yaz_set_option — Sets one or more options for connection
    • yaz_sort — Sets sorting criteria
    • yaz_syntax — Specifies the preferred record syntax for retrieval
    • yaz_wait — Wait for Z39.50 requests to complete
tcpwrap_check
简介
其它服务


简介

This extension offers a PHP interface to the YAZ toolkit that implements the » Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared among users, thus saving the connect and initialize phase steps in most cases.

YAZ is available at » http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at » http://www.indexdata.dk/phpyaz/.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

YAZ
安装/配置
YAZ


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
YAZ


安装

Obtain YAZ (ANSI/NISO Z39.50 support) and install it. YAZ can be fetched in source or in various prebuilt packages from the » YAZ archive. Systems such as Debian GNU/Linux, Suse Linux, FreeBSD also has YAZ as part of their distribution.

For the PHP 4 series, the YAZ extension is bundled (but not YAZ itself) Build PHP with your favorite modules and add option --with-yaz[=DIR].

Example #1 YAZ compilation for PHP 4 on Unix

gunzip -c php-4.4.X.tar.gz|tar xf -
gunzip -c yaz-2.1.8.tar.gz|tar xf -
cd yaz-2.1.8
./configure --prefix=/usr
make
sudo make install
cd ../php-4.4.X.
./configure --with-yaz=/usr/bin
make
sudo make install

For PHP 5, the YAZ extension is in » PECL and is installed as a shared object/dll. If you have pear installed the easiest way to download, configure and install the YAZ extension is by using the pecl command.

Installation of YAZ on Linux

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/yaz

Installation on Windows systems

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。 php_yaz.dll depends on yaz.dll. The yaz.dll is part of the Win32 ZIP from the PHP site. It is also part of the Windows YAZ install available from the » YAZ WIN32 area.

Warning

The PHP 5.0.5 Win32 zip includes a too old version of yaz.dll (version 1.9.1 < required version 2.0.13). If that's the case use the yaz.dll from a newer » YAZ WIN32 install.

On windows, don't forget to add the PHP directory to the PATH, so that the yaz.dll file can be found by the system.

If you are using YAZ as a shared extension, add (or uncomment) the following line in php.ini on Unix:

extension=yaz.so
And for Windows:

extension=php_yaz.dll

Warning

IMAP，recode，YAZ 和 Cyrus 扩展模块不能同时使用，因为它们共享了相同的内部符号。

Note: The above problem is solved in version 2.0 of YAZ.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

YAZ configuration options
Name | Default | Changeable | Changelog
yaz.max_links | "100" | PHP_INI_ALL | Available since PHP 4.3.0. Removed in PHP 5.0.0.
yaz.log_file | NULL | PHP_INI_ALL | Available since PHP 4.3.0. Removed in PHP 5.0.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
YAZ


范例

PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target.

The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host.

Example #1 Parallel searching using Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($query) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_syntax($id[$i], "usmarc");
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $query);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>

预定义常量
YAZ 函数
YAZ


YAZ 函数

Table of Contents

  • yaz_addinfo — Returns additional error information
  • yaz_ccl_conf — Configure CCL parser
  • yaz_ccl_parse — Invoke CCL Parser
  • yaz_close — Close YAZ connection
  • yaz_connect — Prepares for a connection to a Z39.50 server
  • yaz_database — Specifies the databases within a session
  • yaz_element — Specifies Element-Set Name for retrieval
  • yaz_errno — Returns error number
  • yaz_error — Returns error description
  • yaz_es_result — Inspects Extended Services Result
  • yaz_es — Prepares for an Extended Service Request
  • yaz_get_option — Returns value of option for connection
  • yaz_hits — Returns number of hits for last search
  • yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
  • yaz_present — Prepares for retrieval (Z39.50 present)
  • yaz_range — Specifies a range of records to retrieve
  • yaz_record — Returns a record
  • yaz_scan_result — Returns Scan Response result
  • yaz_scan — Prepares for a scan
  • yaz_schema — Specifies schema for retrieval
  • yaz_search — Prepares for a search
  • yaz_set_option — Sets one or more options for connection
  • yaz_sort — Sets sorting criteria
  • yaz_syntax — Specifies the preferred record syntax for retrieval
  • yaz_wait — Wait for Z39.50 requests to complete
范例
yaz_addinfo
YAZ


Returns additional error information

YAZ 函数
yaz_ccl_conf
YAZ 函数
PHP 手册

yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfo — Returns additional error information

说明

string yaz_addinfo ( resource $id )

Returns additional error information for the last request on the server.

With some servers, this function may return the same string as yaz_error().

参数

id

The connection resource returned by yaz_connect().

返回值

A string containing additional error information or an empty string if the last operation was successful or if no additional information was provided by the server.

参见

  • yaz_error() - Returns error description
  • yaz_errno() - Returns error number

YAZ 函数
yaz_ccl_conf
YAZ 函数


Configure CCL parser

yaz_addinfo
yaz_ccl_parse
YAZ 函数
PHP 手册

yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_conf — Configure CCL parser

说明

void yaz_ccl_conf ( resource $id , array $config )

This function configures the CCL query parser for a server with definitions of access points (CCL qualifiers) and their mapping to RPN.

To map a specific CCL query to RPN afterwards call the yaz_ccl_parse() function.

参数

id

The connection resource returned by yaz_connect().

config

An array of configuration. Each key of the array is the name of a CCL field and the corresponding value holds a string that specifies a mapping to RPN.

The mapping is a sequence of attribute-type, attribute-value pairs. Attribute-type and attribute-value is separated by an equal sign (=). Each pair is separated by white space.

Additional information can be found on the » CCL page.

返回值

无返回值。

范例

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

Example #1 CCL configuration

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $fields);
?>

参见

  • yaz_ccl_parse() - Invoke CCL Parser

yaz_addinfo
yaz_ccl_parse
YAZ 函数


Invoke CCL Parser

yaz_ccl_conf
yaz_close
YAZ 函数
PHP 手册

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Invoke CCL Parser

说明

bool yaz_ccl_parse ( resource $id , string $query , array &$result )

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search.

To define a set of valid CCL fields call yaz_ccl_conf() prior to this function.

参数

id

The connection resource returned by yaz_connect().

query

The CCL FIND query.

result

If the function was executed successfully, this will be an array containing the valid RPN query under the key rpn.

Upon failure, three indexes are set in this array to indicate the cause of failure:

  • errorcode - the CCL error code (integer)

  • errorstring - the CCL error string

  • errorpos - approximate position in query of failure (integer is character position)

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php

yaz_ccl_conf($id, $fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>
yaz_ccl_conf
yaz_close
YAZ 函数


Close YAZ connection

yaz_ccl_parse
yaz_connect
YAZ 函数
PHP 手册

yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_close — Close YAZ connection

说明

bool yaz_close ( resource $id )

Closes the connection given by parameter id .

Note: This function will only close a non-persistent connection opened by setting the persistent option to FALSE with yaz_connect().

参数

id

The connection resource returned by yaz_connect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • yaz_connect() - Prepares for a connection to a Z39.50 server

yaz_ccl_parse
yaz_connect
YAZ 函数


Prepares for a connection to a Z39.50 server

yaz_close
yaz_database
YAZ 函数
PHP 手册

yaz_connect

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_connect — Prepares for a connection to a Z39.50 server

说明

mixed yaz_connect ( string $zurl [, mixed $options ] )

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. This function is non-blocking and does not attempt to establish a connection - it merely prepares a connect to be performed later when yaz_wait() is called.

Note: The » YAZ proxy is a freely available Z39.50 proxy.

参数

zurl

A string that takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used.

options

If given as a string, it is treated as the Z39.50 V2 authentication string (OpenAuth).

If given as an array, the contents of the array serves as options.

user

Username for authentication.

group

Group for authentication.

password

Password for authentication.

cookie

Cookie for session (YAZ proxy).

proxy

Proxy for connection (YAZ proxy).

persistent

A boolean. If TRUE the connection is persistent; If FALSE the connection is not persistent. By default connections are persistent.

Note: If you open a persistent connection, you won't be able to close it later with yaz_close().

piggyback

A boolean. If TRUE piggyback is enabled for searches; If FALSE piggyback is disabled. By default piggyback is enabled.

Enabling piggyback is more efficient and usually saves a network-round-trip for first time fetches of records. However, a few Z39.50 servers do not support piggyback or they ignore element set names. For those, piggyback should be disabled.

charset

A string that specifies character set to be used in Z39.50 language and character set negotiation. Use strings such as: ISO-8859-1, UTF-8, UTF-16.

Most Z39.50 servers do not support this feature (and thus, this is ignored). Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC records are not affected by this setting.

preferredMessageSize

An integer that specifies the maximum byte size of all records to be returned by a target during retrieval. See the » Z39.50 standard for more information.

Note: This option is supported in PECL YAZ 1.0.5 or later.

maximumRecordSize

An integer that specifies the maximum byte size of a single record to be returned by a target during retrieval. This entity is referred to as Exceptional-record-size in the » Z39.50 standard.

Note: This option is supported in PECL YAZ 1.0.5 or later.

返回值

A connection resource on success, FALSE on error.

更新日志

版本 | 说明
4.1.0 | The parameter options was added.

参见

  • yaz_close() - Close YAZ connection

yaz_close
yaz_database
YAZ 函数


Specifies the databases within a session

yaz_connect
yaz_element
YAZ 函数
PHP 手册

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Specifies the databases within a session

说明

bool yaz_database ( resource $id , string $databases )

This function allows you to change databases within a session by specifying one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect().

参数

id

The connection resource returned by yaz_connect().

databases

A string containing one or more databases. Multiple databases are separated by a plus sign +.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

yaz_connect
yaz_element
YAZ 函数


Specifies Element-Set Name for retrieval

yaz_database
yaz_errno
YAZ 函数
PHP 手册

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Specifies Element-Set Name for retrieval

说明

bool yaz_element ( resource $id , string $elementset )

This function sets the element set name for retrieval.

Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved.

Note: If this function appears to have no effect, see the description of the piggybacking option in yaz_connect().

参数

id

The connection resource returned by yaz_connect().

elementset

Most servers support F (for full records) and B (for brief records).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

yaz_database
yaz_errno
YAZ 函数


Returns error number

yaz_element
yaz_error
YAZ 函数
PHP 手册

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Returns error number

说明

int yaz_errno ( resource $id )

Returns an error number for the server (last request) identified by id .

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

参数

id

The connection resource returned by yaz_connect().

返回值

Returns an error code. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

参见

  • yaz_error() - Returns error description
  • yaz_addinfo() - Returns additional error information

yaz_element
yaz_error
YAZ 函数


Returns error description

yaz_errno
yaz_es_result
YAZ 函数
PHP 手册

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Returns error description

说明

string yaz_error ( resource $id )

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

参数

id

The connection resource returned by yaz_connect().

返回值

Returns an error text message for server (last request), identified by parameter id . An empty string is returned if the last operation was successful.

参见

  • yaz_errno() - Returns error number
  • yaz_addinfo() - Returns additional error information

yaz_errno
yaz_es_result
YAZ 函数


Inspects Extended Services Result

yaz_error
yaz_es
YAZ 函数
PHP 手册

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Inspects Extended Services Result

说明

array yaz_es_result ( resource $id )

This function inspects the last returned Extended Service result from a server. An Extended Service is initiated by either yaz_item_order() or yaz_es().

参数

id

The connection resource returned by yaz_connect().

返回值

Returns array with element targetReference for the reference for the extended service operation (generated and returned from the server).

参见

  • yaz_es() - Prepares for an Extended Service Request

yaz_error
yaz_es
YAZ 函数


Prepares for an Extended Service Request

yaz_es_result
yaz_get_option
YAZ 函数
PHP 手册

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Prepares for an Extended Service Request

说明

void yaz_es ( resource $id , string $type , array $args )

This function prepares for an Extended Service Request. Extended Services is family of various Z39.50 facilities, such as Record Update, Item Order, Database administration etc.

Note: Many Z39.50 Servers do not support Extended Services.

The yaz_es() creates an Extended Service Request packages and puts it into a queue of operations. Use yaz_wait() to send the request(s) to the server. After completion of yaz_wait() the result of the Extended Service operation should be expected with a call to yaz_es_result().

参数

id

The connection resource returned by yaz_connect().

type

A string which represents the type of the Extended Service: itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Each type is specified in the following section.

args

An array with extended service options plus package specific options. The options are identical to those offered in the C API of ZOOM C. Refer to the ZOOM » Extended Services.

返回值

无返回值。

范例

Example #1 Record Update

<?php
$con = yaz_connect("myhost/database");
$args = array (
    "record" => "<gils><title>some title</title></gils>",
    "syntax" => "xml",
    "action" => "specialUpdate"
);
yaz_es($con, "update", $args);
yaz_wait();
$result = yaz_es_result($id);
?>

参见

  • yaz_es_result() - Inspects Extended Services Result

yaz_es_result
yaz_get_option
YAZ 函数


Returns value of option for connection

yaz_es
yaz_hits
YAZ 函数
PHP 手册

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Returns value of option for connection

说明

string yaz_get_option ( resource $id , string $name )

Returns the value of the option specified with name .

参数

id

The connection resource returned by yaz_connect().

name

The option name.

返回值

Returns the value of the specified option or an empty string if the option wasn't set.

参见

  • The description of yaz_set_option() - Sets one or more options for connection for available options

yaz_es
yaz_hits
YAZ 函数


Returns number of hits for last search

yaz_get_option
yaz_itemorder
YAZ 函数
PHP 手册

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Returns number of hits for last search

说明

int yaz_hits ( resource $id [, array &$searchresult ] )

yaz_hits() returns the number of hits for the last search.

参数

id

The connection resource returned by yaz_connect().

searchresult

Result array for detailed search result information.

返回值

Returns the number of hits for the last search or 0 if no search was performed.

The search result array (if supplied) holds information that is returned by a Z39.50 server in the SearchResult-1 format part of a search response. The SearchResult-1 format can be used to obtain information about hit counts for various parts of the query (subquery). In particular, it is possible to obtain hit counts for the individual search terms in a query. Information for first subquery is in $array[0], second subquery in $array[1], and so forth.

searchresult members
Element | Description
id | Sub query ID2 (string)
count | Result count / hits (integer)
subquery.term | Sub query term (string)
interpretation.term | Interpretated sub query term (string)
recommendation.term | Recommended sub query term (string)

Note: The SearchResult facility requires PECL YAZ 1.0.5 or later and YAZ 2.1.9 or later.

Note: Very few Z39.50 implementations support the SearchResult facility.

yaz_get_option
yaz_itemorder
YAZ 函数


Prepares for Z39.50 Item Order with an ILL-Request package

yaz_hits
yaz_present
YAZ 函数
PHP 手册

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package

说明

void yaz_itemorder ( resource $id , array $args )

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See » this and the » specification.

参数

id

The connection resource returned by yaz_connect().

args

Must be an associative array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

返回值

无返回值。

yaz_hits
yaz_present
YAZ 函数


Prepares for retrieval (Z39.50 present)

yaz_itemorder
yaz_range
YAZ 函数
PHP 手册

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Prepares for retrieval (Z39.50 present)

说明

bool yaz_present ( resource $id )

This function prepares for retrieval of records after a successful search.

The yaz_range() function should be called prior to this function to specify the range of records to be retrieved.

参数

id

The connection resource returned by yaz_connect().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

yaz_itemorder
yaz_range
YAZ 函数


Specifies a range of records to retrieve

yaz_present
yaz_record
YAZ 函数
PHP 手册

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Specifies a range of records to retrieve

说明

void yaz_range ( resource $id , int $start , int $number )

Specifies a range of records to retrieve.

This function should be called before yaz_search() or yaz_present().

参数

id

The connection resource returned by yaz_connect().

start

Specifies the position of the first record to be retrieved. The records numbers goes from 1 to yaz_hits().

number

Specifies the number of records to be retrieved.

返回值

无返回值。

yaz_present
yaz_record
YAZ 函数


Returns a record

yaz_range
yaz_scan_result
YAZ 函数
PHP 手册

yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_record — Returns a record

说明

string yaz_record ( resource $id , int $pos , string $type )

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos .

参数

id

The connection resource returned by yaz_connect().

pos

The record position. Records positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

type

The type specifies the form of the returned record.

Note: It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).

Besides conversion of the transfer record to a string/array, PHP/YAZ it is also possible to perform a character set conversion of the record. Especially for USMARC/MARC21 that is recommended since these are typically returned in the character set MARC-8 that is not supported by browsers, etc. To specify a conversion, add ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).

string

The record is returned as a string for simple display. In this mode, all MARC records are converted to a line-by-line format since ISO2709 is hardly readable. XML records and SUTRS are returned in their original format. GRS-1 are returned in a (ugly) line-by-line format.

This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.

xml

The record is returned as an XML string if possible. In this mode, all MARC records are converted to » MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.

This format is similar to string except that MARC records are converted to MARCXML

This format is suitable if records are processed by an XML parser or XSLT processor afterwards.

raw

The record is returned as a string in its original form. This type is suitable for MARC, XML and SUTRS. It does not work for GRS-1.

MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.

syntax

The syntax of the record is returned as a string, i.e. USmarc, GRS-1, XML, etc.

database

The name of database associated with record at the position is returned as a string.

array

The record is returned as an array that reflects the GRS-1 structure. This type is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual record is XML or SUTRS an empty string will be returned.

The array returned consists of a list corresponding to each leaf/internal node of GRS-1. Each list item consists a sub list with first element path and data (if data is available).

The path which is a string holds a list of each tree component (of the structured GRS-1 record) from root to leaf. Each component is a tag type, tag value pair of the form (type, value

String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).

返回值

Returns the record at position pos or an empty string if no record exists at the given position.

If no database record exists at the given position an empty string is returned.

范例

Example #1 Array for GRS-1 record

Consider this GRS-1 record:

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
This record has two nodes at root level. First element at root level is (4,52) [tag type 4, tag value 52], and has data Robert M. Pirsig. Second element at root level (4,70) has a subtree with a single element (4,90). (4,90) has yet another sub tree (2,7) with data Transworld Publishers, ltd..

If this record is present at position $p, then

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>

will output:

Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Example #2 Working with MARCXML

The following PHP snippet returns a MARC21/USMARC record as MARCXML. The original record is returned in marc-8 (unknown to most XML parsers), so we convert it to UTF-8 (which all XML parsers must support).

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

The record $rec can be processed with the Sablotron XSLT processor as follows:

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>

For PHP 5 the XSL extension must be used instead of Sablotron XSLT.

yaz_range
yaz_scan_result
YAZ 函数


Returns Scan Response result

yaz_record
yaz_scan
YAZ 函数
PHP 手册

yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_result — Returns Scan Response result

说明

array yaz_scan_result ( resource $id [, array &$result ] )

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan().

参数

id

The connection resource returned by yaz_connect().

result

If given, this array will be modified to hold additional information taken from the Scan Response:

  • number - Number of entries returned

  • stepsize - Step size

  • position - Position of term

  • status - Scan status

返回值

Returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count.

yaz_record
yaz_scan
YAZ 函数


Prepares for a scan

yaz_scan_result
yaz_schema
YAZ 函数
PHP 手册

yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan — Prepares for a scan

说明

void yaz_scan ( resource $id , string $type , string $startterm [, array $flags ] )

This function prepares for a Z39.50 Scan Request on the specified connection.

To actually transfer the Scan Request to the server and receive the Scan Response, yaz_wait() must be called. Upon completion of yaz_wait() call yaz_error() and yaz_scan_result() to handle the response.

参数

id

The connection resource returned by yaz_connect().

type

Currently only type rpn is supported.

startterm

Starting term point for the scan.

The form in which the starting term is specified is given by parameter type .

The syntax this parameter is similar to the RPN query as described in yaz_search(). It consists of zero or more @attr-operator specifications, then followed by exactly one token.

flags

This optional parameter specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags array: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size).

返回值

无返回值。

范例

Example #1 PHP function that scans titles

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, &$options);
    echo 'Scan ok; ';
    foreach ($options as $key => $val) {
      echo "$key = $val &nbsp;";
    }
    echo '<br /><table>';
    while (list($key, list($k, $term, $tcount)) = each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Scan failed. Error: " . yaz_error($id) . "<br />";
  }
}
?>

yaz_scan_result
yaz_schema
YAZ 函数


Specifies schema for retrieval

yaz_scan
yaz_search
YAZ 函数
PHP 手册

yaz_schema

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_schema — Specifies schema for retrieval

说明

void yaz_schema ( resource $id , string $schema )

yaz_schema() specifies the schema for retrieval.

This function should be called before yaz_search() or yaz_present().

参数

id

The connection resource returned by yaz_connect().

schema

Must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ...

返回值

无返回值。

yaz_scan
yaz_search
YAZ 函数


Prepares for a search

yaz_schema
yaz_set_option
YAZ 函数
PHP 手册

yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_search — Prepares for a search

说明

bool yaz_search ( resource $id , string $type , string $query )

yaz_search() prepares for a search on the given connection.

Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

参数

id

The connection resource returned by yaz_connect().

type

This parameter represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation.

query

The RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operator precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (@) are considered operators, otherwise they are treated as search terms.

RPN Operators
Construct | Description
@and query1 query2 | intersection of query1 and query2
@or query1 query2 | union of query1 and query2
@not query1 query2 | query1 and not query2
@set name | result set reference
@attrset set query | specifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query
@attr [set] type=value query | applies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set.

You can find information about attributes at the » Z39.50 Maintenance Agency site.

Note: If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Query Examples

You can search for simple terms, like this:

computer
which matches documents where "computer" occur. No attributes are specified.

The query

"knuth donald"
matches documents where "knuth donald" occur (provided that the server supports phrase search).

This query applies two attributes for the same phrase.

@attr 1=1003 @attr 4=1 "knuth donald"
First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.

The query

@and @or a b @not @or c d e
would in infix notation look like (a or b) and ((c or d) not e).

Another, more complex, one:

@attrset gils @and @attr 1=4 art @attr 1=2000 company
The query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).

yaz_schema
yaz_set_option
YAZ 函数


Sets one or more options for connection

yaz_search
yaz_sort
YAZ 函数
PHP 手册

yaz_set_option

(PECL yaz >= 0.9.0)

yaz_set_option — Sets one or more options for connection

说明

void yaz_set_option ( resource $id , string $name , string $value )
void yaz_set_option ( resource $id , array $options )

Sets one or more options on the given connection.

参数

id

The connection resource returned by yaz_connect().

name or options

May be either a string or an array.

If given as a string, this will be the name of the option to set. You'll need to give it's value .

If given as an array, this will be an associative array (option name => option value).

PHP/YAZ Connection Options
Name | Description
implementationName | implementation name of server
implementationVersion | implementation version of server
implementationId | implementation ID of server
schema | schema for retrieval. By default, no schema is used. Setting this option is equivalent to using function yaz_schema()
preferredRecordSyntax | record syntax for retrieval. By default, no syntax is used. Setting this option is equivalent to using function yaz_syntax()
start | offset for first record to be retrieved via yaz_search() or yaz_present(). First record is numbered has a start value of 0. Second record has start value 1. Setting this option in combination with option count has the same effect as calling yaz_range() except that records are numbered from 1 in yaz_range()
count | maximum number of records to be retrieved via yaz_search() or yaz_present().
elementSetName | element-set-name for retrieval. Setting this option is equivalent to calling yaz_element().
value

The new value of the option. Use this only if the previous argument is a string.

返回值

无返回值。

yaz_search
yaz_sort
YAZ 函数


Sets sorting criteria

yaz_set_option
yaz_syntax
YAZ 函数
PHP 手册

yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sort — Sets sorting criteria

说明

void yaz_sort ( resource $id , string $criteria )

This function sets sorting criteria and enables Z39.50 Sort.

Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present().

参数

id

The connection resource returned by yaz_connect().

criteria

A string that takes the form field1 flags1 field2 flags2 where field1 specifies the primary attributes for sort, field2 seconds, etc..

The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a sequence of the following characters which may not be separated by any white space.

Sort Flags
a

Sort ascending

d

Sort descending

i

Case insensitive sorting

s

Case sensitive sorting

返回值

无返回值。

范例

Example #1 Sort Criterias

To sort on Bib1 attribute title, case insensitive, and ascending you would use the following sort criteria:

1=4 ia

If the secondary sorting criteria should be author, case sensitive and ascending you would use:

1=4 ia 1=1003 sa

yaz_set_option
yaz_syntax
YAZ 函数


Specifies the preferred record syntax for retrieval

yaz_sort
yaz_wait
YAZ 函数
PHP 手册

yaz_syntax

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_syntax — Specifies the preferred record syntax for retrieval

说明

void yaz_syntax ( resource $id , string $syntax )

yaz_syntax() specifies the preferred record syntax for retrieval

This function should be called before yaz_search() or yaz_present().

参数

id

The connection resource returned by yaz_connect().

syntax

The syntax must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.5.10) or as one of the known registered record syntaxes (sutrs, usmarc, grs1, xml, etc.).

返回值

无返回值。

yaz_sort
yaz_wait
YAZ 函数


Wait for Z39.50 requests to complete

yaz_syntax
YP/NIS
YAZ 函数
PHP 手册

yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_wait — Wait for Z39.50 requests to complete

说明

mixed yaz_wait ([ array &$options ] )

This function carries out networked (blocked) activity for outstanding
requests which have been prepared by the functions
yaz_connect(), yaz_search(),
yaz_present(), yaz_scan() and
yaz_itemorder().

yaz_wait() returns when all servers have either completed all requests or aborted (in case of errors).

参数

options

An associative array of options:

timeout

Sets timeout in seconds. If a server has not responded within the timeout it is considered dead and yaz_wait() returns. The default value for timeout is 15 seconds.

event

A boolean.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 In event mode, returns resource or FALSE in case of an error.

yaz_syntax
YP/NIS
YAZ 函数


YP/NIS

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • YP/NIS 函数
    • yp_all — Traverse the map and call a function on each entry
    • yp_cat — Return an array containing the entire map
    • yp_err_string — Returns the error string associated with the given error code
    • yp_errno — Returns the error code of the previous operation
    • yp_first — Returns the first key-value pair from the named map
    • yp_get_default_domain — Fetches the machine's default NIS domain
    • yp_master — Returns the machine name of the master NIS server for a map
    • yp_match — Returns the matched line
    • yp_next — Returns the next key-value pair in the named map
    • yp_order — Returns the order number for a map
yaz_wait
简介
其它服务


简介

NIS (formerly called Yellow Pages) allows network management of important administrative files (e.g. the password file). For more information refer to the NIS manpage and » The Linux NIS(YP)/NYS/NIS+ HOWTO. There is also a book called » Managing NFS and NIS by Hal Stern.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

Note: 本扩展模块在 Windows 平台下不可用。

YP/NIS
安装/配置
YP/NIS


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
YP/NIS


需求

None besides functions from standard Unix libraries which are always available (either libc or libnsl, configure will detect which one to use).

安装/配置
安装
安装/配置


安装

To get these functions to work, you have to configure PHP with --enable-yp.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

YPERR_ACCESS (integer)
access violation (this has only been added recently and is only available from PECL CVS for now)
YPERR_BADARGS (integer)
The function arguments are bad
YPERR_BADDB (integer)
YP database is bad
YPERR_BUSY (integer)
Database busy
YPERR_DOMAIN (integer)
cannot bind to server in this domain
YPERR_KEY (integer)
no such key in map
YPERR_MAP (integer)
no such map in server's domain
YPERR_NODOM (integer)
Local domain name not set
YPERR_NOMORE (integer)
No more records in map database
YPERR_PMAP (integer)
Can't communicate with portmapper
YPERR_RESRC (integer)
resource allocation failure
YPERR_RPC (integer)
RPC failure - domain has been unbound
YPERR_YPBIND (integer)
Can't communicate with ypbind
YPERR_YPERR (integer)
internal yp server or client error
YPERR_YPSERV (integer)
Can't communicate with ypserv
YPERR_VERS (integer)
YP version mismatch
资源类型
YP/NIS 函数
YP/NIS


YP/NIS 函数

Table of Contents

  • yp_all — Traverse the map and call a function on each entry
  • yp_cat — Return an array containing the entire map
  • yp_err_string — Returns the error string associated with the given error code
  • yp_errno — Returns the error code of the previous operation
  • yp_first — Returns the first key-value pair from the named map
  • yp_get_default_domain — Fetches the machine's default NIS domain
  • yp_master — Returns the machine name of the master NIS server for a map
  • yp_match — Returns the matched line
  • yp_next — Returns the next key-value pair in the named map
  • yp_order — Returns the order number for a map
预定义常量
yp_all
YP/NIS


Traverse the map and call a function on each entry

YP/NIS 函数
yp_cat
YP/NIS 函数
PHP 手册

yp_all

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_all — Traverse the map and call a function on each entry

说明

void yp_all ( string $domain , string $map , string $callback )

Warning

本函数暂无文档，仅有参数列表。

参数

domain

The NIS domain name.

map

The NIS map.

callback

返回值

无返回值。

YP/NIS 函数
yp_cat
YP/NIS 函数


Return an array containing the entire map

yp_all
yp_err_string
YP/NIS 函数
PHP 手册

yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_cat — Return an array containing the entire map

说明

array yp_cat ( string $domain , string $map )

Returns all map entries.

参数

domain

The NIS domain name.

map

The NIS map.

返回值

Returns an array of all map entries, the maps key values as array indices and the maps entries as array data.

yp_all
yp_err_string
YP/NIS 函数


Returns the error string associated with the given error code

yp_cat
yp_errno
YP/NIS 函数
PHP 手册

yp_err_string

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_err_string — Returns the error string associated with the given error code

说明

string yp_err_string ( int $errorcode )

Returns the error message associated with the given error code. Useful to indicate what exactly went wrong.

参数

errorcode

The error code.

返回值

Returns the error message, as a string.

范例

Example #1 Example for NIS errors

<?php
echo "Error: " . yp_err_string(yp_errno());
?>

参见

  • yp_errno() - Returns the error code of the previous operation

yp_cat
yp_errno
YP/NIS 函数


Returns the error code of the previous operation

yp_err_string
yp_first
YP/NIS 函数
PHP 手册

yp_errno

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_errno — Returns the error code of the previous operation

说明

int yp_errno ( void )

Returns the error code of the previous operation.

返回值

Returns one of the YPERR_XXX error constants.

参见

  • yp_err_string() - Returns the error string associated with the given error code

yp_err_string
yp_first
YP/NIS 函数


Returns the first key-value pair from the named map

yp_errno
yp_get_default_domain
YP/NIS 函数
PHP 手册

yp_first

(PHP 4, PHP 5 <= 5.0.5)

yp_first — Returns the first key-value pair from the named map

说明

array yp_first ( string $domain , string $map )

Gets the first key-value pair from the named map in the named domain .

参数

domain

The NIS domain name.

map

The NIS map.

返回值

Returns the first key-value pair as an array on success, or FALSE on errors.

范例

Example #1 Example for the NIS first

<?php
$entry = yp_first($domain, "passwd.byname");

$key = key($entry);
$value = $entry[$key];

echo "First entry in this map has key " . $key . " and value " . $value;
?>

参见

  • yp_next() - Returns the next key-value pair in the named map
  • yp_get_default_domain() - Fetches the machine's default NIS domain

yp_errno
yp_get_default_domain
YP/NIS 函数


Fetches the machine's default NIS domain

yp_first
yp_master
YP/NIS 函数
PHP 手册

yp_get_default_domain

(PHP 4, PHP 5 <= 5.0.5)

yp_get_default_domain — Fetches the machine's default NIS domain

说明

string yp_get_default_domain ( void )

Returns the default domain of the node. Can be used as the domain parameter for successive NIS calls.

A NIS domain can be described a group of NIS maps. Every host that needs to look up information binds itself to a certain domain. Refer to the documents mentioned at the beginning for more detailed information.

返回值

Returns the default domain of the node or FALSE. Can be used as the domain parameter for successive NIS calls.

范例

Example #1 Example for the default domain

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>

yp_first
yp_master
YP/NIS 函数


Returns the machine name of the master NIS server for a map

yp_get_default_domain
yp_match
YP/NIS 函数
PHP 手册

yp_master

(PHP 4, PHP 5 <= 5.0.5)

yp_master — Returns the machine name of the master NIS server for a map

说明

string yp_master ( string $domain , string $map )

Returns the machine name of the master NIS server for a map .

参数

domain

The NIS domain name.

map

The NIS map.

返回值

范例

Example #1 Example for the NIS master

<?php
$number = yp_master($domain, $mapname);
echo "Master for this map is: " . $master;
?>

参见

  • yp_get_default_domain() - Fetches the machine's default NIS domain

yp_get_default_domain
yp_match
YP/NIS 函数


Returns the matched line

yp_master
yp_next
YP/NIS 函数
PHP 手册

yp_match

(PHP 4, PHP 5 <= 5.0.5)

yp_match — Returns the matched line

说明

string yp_match ( string $domain , string $map , string $key )

Returns the value associated with the passed key out of the specified map .

参数

domain

The NIS domain name.

map

The NIS map.

key

This key must be exact.

返回值

Returns the value, or FALSE on errors.

范例

Example #1 Example for NIS match

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

上例的输出类似于：

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

参见

  • yp_get_default_domain() - Fetches the machine's default NIS domain

yp_master
yp_next
YP/NIS 函数


Returns the next key-value pair in the named map

yp_match
yp_order
YP/NIS 函数
PHP 手册

yp_next

(PHP 4, PHP 5 <= 5.0.5)

yp_next — Returns the next key-value pair in the named map

说明

array yp_next ( string $domain , string $map , string $key )

Returns the next key-value pair in the named map after the specified key .

参数

domain

map

key

返回值

Returns the next key-value pair as an array, or FALSE on errors.

范例

Example #1 Example for NIS next

<?php
$entry = yp_next($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "No more entries found\n";
    echo "<!--" . yp_errno() . ": " . yp_err_string() . "-->";
}

$key = key($entry);

echo "The next entry after joe has key " . $key
      . " and value " . $entry[$key];
?>

参见

  • yp_first() - Returns the first key-value pair from the named map
  • yp_get_default_domain() - Fetches the machine's default NIS domain

yp_match
yp_order
YP/NIS 函数


Returns the order number for a map

yp_next
搜索引擎扩展
YP/NIS 函数
PHP 手册

yp_order

(PHP 4, PHP 5 <= 5.0.5)

yp_order — Returns the order number for a map

说明

int yp_order ( string $domain , string $map )

Gets the order number for a map.

参数

domain

map

返回值

Returns the order number for a map or FALSE on error.

范例

Example #1 Example for the NIS order

<?php
    $number = yp_order($domain, $mapname);
    echo "Order number for this map is: " . $number;
?>

参见

  • yp_get_default_domain() - Fetches the machine's default NIS domain

yp_next
搜索引擎扩展
YP/NIS 函数


搜索引擎扩展

  • mnoGoSearch
    • 简介
    • 安装/配置
    • 预定义常量
    • mnoGoSearch 函数
  • Sphinx — Sphinx Client
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • SphinxClient — The SphinxClient class
  • Swish — Swish Indexing
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Swish 函数
yp_order
mnoGoSearch
函数参考


mnoGoSearch

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • mnoGoSearch 函数
    • udm_add_search_limit — Add various search limits
    • udm_alloc_agent_array — Allocate mnoGoSearch session
    • udm_alloc_agent — Allocate mnoGoSearch session
    • udm_api_version — Get mnoGoSearch API version
    • udm_cat_list — Get all the categories on the same level with the current one
    • udm_cat_path — Get the path to the current category
    • udm_check_charset — Check if the given charset is known to mnogosearch
    • udm_check_stored — Check connection to stored
    • udm_clear_search_limits — Clear all mnoGoSearch search restrictions
    • udm_close_stored — Close connection to stored
    • udm_crc32 — Return CRC32 checksum of given string
    • udm_errno — Get mnoGoSearch error number
    • udm_error — Get mnoGoSearch error message
    • udm_find — Perform search
    • udm_free_agent — Free mnoGoSearch session
    • udm_free_ispell_data — Free memory allocated for ispell data
    • udm_free_res — Free mnoGoSearch result
    • udm_get_doc_count — Get total number of documents in database
    • udm_get_res_field — Fetch a result field
    • udm_get_res_param — Get mnoGoSearch result parameters
    • udm_hash32 — Return Hash32 checksum of gived string
    • udm_load_ispell_data — Load ispell data
    • udm_open_stored — Open connection to stored
    • udm_set_agent_param — Set mnoGoSearch agent session parameters
搜索引擎扩展
简介
搜索引擎扩展


简介

These functions allow you to access the mnoGoSearch (former UdmSearch) free search engine. mnoGoSearch is a full-featured search engine software for intranet and internet servers, distributed under the GNU license. mnoGoSearch has a number of unique features, which makes it appropriate for a wide range of applications from search within your site to a specialized search system such as cooking recipes or newspaper search, FTP archive search, news articles search, etc. It offers full-text indexing and searching for HTML, PDF, and text documents. mnoGoSearch consists of two parts. The first is an indexing mechanism (indexer). The purpose of the indexer is to walk through HTTP, FTP, NEWS servers or local files, recursively grabbing all the documents and storing meta-data about that documents in a SQL database in a smart and effective manner. After every document is referenced by its corresponding URL, meta-data is collected by the indexer for later use in a search process. The search is performed via Web interface. C, CGI, PHP and Perl search front ends are included.

More information about mnoGoSearch can be found at » http://www.mnogosearch.org/.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

Note: 本扩展模块在 Windows 平台下不可用。

mnoGoSearch
安装/配置
mnoGoSearch


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
mnoGoSearch


需求

Download mnoGosearch from » http://www.mnogosearch.org/ and install it on your system. You need at least version 3.1.10 of mnoGoSearch installed to use these functions.

安装/配置
安装
安装/配置


安装

In order to have these functions available, you must compile PHP with mnoGosearch support by using the --with-mnogosearch option. If you use this option without specifying the path to mnoGosearch, PHP will look for mnoGosearch under /usr/local/mnogosearch path by default. If you installed mnoGosearch at a different location you should specify it: --with-mnogosearch=DIR.

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/mnogosearch.

Note: PHP contains built-in MySQL access library, which can be used to access MySQL. It is known that mnoGoSearch is not compatible with this built-in library and can work only with generic MySQL libraries. Thus, if you use mnoGoSearch with MySQL, during PHP configuration you have to indicate the directory of your MySQL installation, that was used during mnoGoSearch configuration, i.e. for example: --with-mnogosearch --with-mysql=/usr.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

UDM_FIELD_URLID (integer)
UDM_FIELD_URL (integer)
UDM_FIELD_CONTENT (integer)
UDM_FIELD_TITLE (integer)
UDM_FIELD_KEYWORDS (integer)
UDM_FIELD_DESC (integer)
UDM_FIELD_DESCRIPTION (integer)
UDM_FIELD_TEXT (integer)
UDM_FIELD_SIZE (integer)
UDM_FIELD_RATING (integer)
UDM_FIELD_SCORE (integer)
UDM_FIELD_MODIFIED (integer)
UDM_FIELD_ORDER (integer)
UDM_FIELD_CRC (integer)
UDM_FIELD_CATEGORY (integer)
UDM_FIELD_LANG (integer)
UDM_FIELD_CHARSET (integer)
UDM_PARAM_PAGE_SIZE (integer)
UDM_PARAM_PAGE_NUM (integer)
UDM_PARAM_SEARCH_MODE (integer)
UDM_PARAM_CACHE_MODE (integer)
UDM_PARAM_TRACK_MODE (integer)
UDM_PARAM_PHRASE_MODE (integer)
UDM_PARAM_CHARSET (integer)
UDM_PARAM_LOCAL_CHARSET (integer)
UDM_PARAM_BROWSER_CHARSET (integer)
UDM_PARAM_STOPTABLE (integer)
UDM_PARAM_STOP_TABLE (integer)
UDM_PARAM_STOPFILE (integer)
UDM_PARAM_STOP_FILE (integer)
UDM_PARAM_WEIGHT_FACTOR (integer)
UDM_PARAM_WORD_MATCH (integer)
UDM_PARAM_MAX_WORD_LEN (integer)
UDM_PARAM_MAX_WORDLEN (integer)
UDM_PARAM_MIN_WORD_LEN (integer)
UDM_PARAM_MIN_WORDLEN (integer)
UDM_PARAM_ISPELL_PREFIXES (integer)
UDM_PARAM_ISPELL_PREFIX (integer)
UDM_PARAM_PREFIXES (integer)
UDM_PARAM_PREFIX (integer)
UDM_PARAM_CROSS_WORDS (integer)
UDM_PARAM_CROSSWORDS (integer)
UDM_PARAM_VARDIR (integer)
UDM_PARAM_DATADIR (integer)
UDM_PARAM_HLBEG (integer)
UDM_PARAM_HLEND (integer)
UDM_PARAM_SYNONYM (integer)
UDM_PARAM_SEARCHD (integer)
UDM_PARAM_QSTRING (integer)
UDM_PARAM_REMOTE_ADDR (integer)
UDM_LIMIT_CAT (integer)
UDM_LIMIT_URL (integer)
UDM_LIMIT_TAG (integer)
UDM_LIMIT_LANG (integer)
UDM_LIMIT_DATE (integer)
UDM_PARAM_FOUND (integer)
UDM_PARAM_NUM_ROWS (integer)
UDM_PARAM_WORDINFO (integer)
UDM_PARAM_WORD_INFO (integer)
UDM_PARAM_SEARCHTIME (integer)
UDM_PARAM_SEARCH_TIME (integer)
UDM_PARAM_FIRST_DOC (integer)
UDM_PARAM_LAST_DOC (integer)
UDM_MODE_ALL (integer)
UDM_MODE_ANY (integer)
UDM_MODE_BOOL (integer)
UDM_MODE_PHRASE (integer)
UDM_CACHE_ENABLED (integer)
UDM_CACHE_DISABLED (integer)
UDM_TRACK_ENABLED (integer)
UDM_TRACK_DISABLED (integer)
UDM_PHRASE_ENABLED (integer)
UDM_PHRASE_DISABLED (integer)
UDM_CROSS_WORDS_ENABLED (integer)
UDM_CROSSWORDS_ENABLED (integer)
UDM_CROSS_WORDS_DISABLED (integer)
UDM_CROSSWORDS_DISABLED (integer)
UDM_PREFIXES_ENABLED (integer)
UDM_PREFIX_ENABLED (integer)
UDM_ISPELL_PREFIXES_ENABLED (integer)
UDM_ISPELL_PREFIX_ENABLED (integer)
UDM_PREFIXES_DISABLED (integer)
UDM_PREFIX_DISABLED (integer)
UDM_ISPELL_PREFIXES_DISABLED (integer)
UDM_ISPELL_PREFIX_DISABLED (integer)
UDM_ISPELL_TYPE_AFFIX (integer)
UDM_ISPELL_TYPE_SPELL (integer)
UDM_ISPELL_TYPE_DB (integer)
UDM_ISPELL_TYPE_SERVER (integer)
UDM_MATCH_WORD (integer)
UDM_MATCH_BEGIN (integer)
UDM_MATCH_SUBSTR (integer)
UDM_MATCH_END (integer)
资源类型
mnoGoSearch 函数
mnoGoSearch


mnoGoSearch 函数

Table of Contents

  • udm_add_search_limit — Add various search limits
  • udm_alloc_agent_array — Allocate mnoGoSearch session
  • udm_alloc_agent — Allocate mnoGoSearch session
  • udm_api_version — Get mnoGoSearch API version
  • udm_cat_list — Get all the categories on the same level with the current one
  • udm_cat_path — Get the path to the current category
  • udm_check_charset — Check if the given charset is known to mnogosearch
  • udm_check_stored — Check connection to stored
  • udm_clear_search_limits — Clear all mnoGoSearch search restrictions
  • udm_close_stored — Close connection to stored
  • udm_crc32 — Return CRC32 checksum of given string
  • udm_errno — Get mnoGoSearch error number
  • udm_error — Get mnoGoSearch error message
  • udm_find — Perform search
  • udm_free_agent — Free mnoGoSearch session
  • udm_free_ispell_data — Free memory allocated for ispell data
  • udm_free_res — Free mnoGoSearch result
  • udm_get_doc_count — Get total number of documents in database
  • udm_get_res_field — Fetch a result field
  • udm_get_res_param — Get mnoGoSearch result parameters
  • udm_hash32 — Return Hash32 checksum of gived string
  • udm_load_ispell_data — Load ispell data
  • udm_open_stored — Open connection to stored
  • udm_set_agent_param — Set mnoGoSearch agent session parameters
预定义常量
udm_add_search_limit
mnoGoSearch


Add various search limits

mnoGoSearch 函数
udm_alloc_agent_array
mnoGoSearch 函数
PHP 手册

udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_add_search_limit — Add various search limits

说明

bool udm_add_search_limit ( resource $agent , int $var , string $val )

udm_add_search_limit() adds search restrictions.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

var

Defines the parameter, indicating limits. Possible var values:

  • UDM_LIMIT_URL - defines document URL limitations to limit the search through subsection of the database. It supports SQL % and _ LIKE wildcards, where % matches any number of characters, even zero characters, and _ matches exactly one character. E.g. http://www.example.___/catalog may stand for http://www.example.com/catalog and http://www.example.net/catalog.
  • UDM_LIMIT_TAG - defines site TAG limitations. In indexer-conf you can assign specific TAGs to various sites and parts of a site. Tags in mnoGoSearch 3.1.x are lines, that may contain metasymbols % and _. Metasymbols allow searching among groups of tags. E.g. there are links with tags ABCD and ABCE, and search restriction is by ABC_ - the search will be made among both of the tags.
  • UDM_LIMIT_LANG - defines document language limitations.
  • UDM_LIMIT_CAT - defines document category limitations. Categories are similar to tag feature, but nested. So you can have one category inside another and so on. You have to use two characters for each level. Use a hex number going from 0-F or a 36 base number going from 0-Z. Therefore a top-level category like 'Auto' would be 01. If it has a subcategory like 'Ford', then it would be 01 (the parent category) and then 'Ford' which we will give 01. Put those together and you get 0101. If 'Auto' had another subcategory named 'VW', then it's id would be 01 because it belongs to the 'Ford' category and then 02 because it's the next category. So it's id would be 0102. If VW had a sub category called 'Engine' then it's id would start at 01 again and it would get the 'VW' id 02 and 'Auto' id of 01, making it 010201. If you want to search for sites under that category then you pass it cat=010201 in the URL.

  • UDM_LIMIT_DATE - defines limitation by date the document was modified.

    Format of parameter value: a string with first character < or >, then with no space - date in unixtime format, for example:

    <?php
    udm_add_search_limit    ($udm, UDM_LIMIT_DATE, "&lt;908012006");
    ?>

    If > character is used, then the search will be restricted to those documents having a modification date greater than entered, if <, then smaller.

val

Defines the value of the current parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

mnoGoSearch 函数
udm_alloc_agent_array
mnoGoSearch 函数


Allocate mnoGoSearch session

udm_add_search_limit
udm_alloc_agent
mnoGoSearch 函数
PHP 手册

udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent_array — Allocate mnoGoSearch session

说明

resource udm_alloc_agent_array ( array $databases )

udm_alloc_agent_array() will create an agent with multiple database connections.

参数

databases

The array databases must contain one database URL per element, analog to the first parameter of udm_alloc_agent().

返回值

Returns a resource link identifier on success, or FALSE on failure.

参见

  • udm_alloc_agent() - Allocate mnoGoSearch session

udm_add_search_limit
udm_alloc_agent
mnoGoSearch 函数


Allocate mnoGoSearch session

udm_alloc_agent_array
udm_api_version
mnoGoSearch 函数
PHP 手册

udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent — Allocate mnoGoSearch session

说明

resource udm_alloc_agent ( string $dbaddr [, string $dbmode ] )

Allocate a mnoGoSearch session.

参数

dbaddr

dbaddr - URL-style database description, with options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format for dbaddr : DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, and ibase. Actually, it does not matter for native libraries support, but ODBC users should specify one of the supported values. If your database type is not supported, you may use unknown instead.

dbmode

dbmode - You may select the SQL database mode of words storage. Possible values of dbmode are: single, multi, crc, or crc-multi. When single is specified, all words are stored in the same table. If multi is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster, but requires more tables in the database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorithm instead of words. This mode requires less disk space and it is faster comparing with "single" and "multi" modes. crc-multi uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like in "multi" mode.

Note: dbaddr and dbmode must match those used during indexing.

返回值

Returns a mnogosearch agent identifier on success, FALSE on failure. This function creates a session with database parameters.

注释

Note: In fact this function does not open a connection to the database and thus does not check the entered login and password. Establishing a connection to the database and login/password verification is done by udm_find().

udm_alloc_agent_array
udm_api_version
mnoGoSearch 函数


Get mnoGoSearch API version

udm_alloc_agent
udm_cat_list
mnoGoSearch 函数
PHP 手册

udm_api_version

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_api_version — Get mnoGoSearch API version

说明

int udm_api_version ( void )

Gets the mnoGoSearch API version.

This function allows the user to identify which API functions are available, e.g. udm_get_doc_count() function is only available in mnoGoSearch 3.1.11 or later.

返回值

udm_api_version() returns the mnoGoSearch API version number. E.g. if mnoGoSearch 3.1.10 API is used, this function will return 30110.

范例

Example #1 udm_api_version() example

<?php
if (udm_api_version() >= 30111) {
    echo  "Total number of URLs in database: " . udm_get_doc_count($udm) . "<br />\n";
}
?>

udm_alloc_agent
udm_cat_list
mnoGoSearch 函数


Get all the categories on the same level with the current one

udm_api_version
udm_cat_path
mnoGoSearch 函数
PHP 手册

udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_list — Get all the categories on the same level with the current one

说明

array udm_cat_list ( resource $agent , string $category )

Gets all the categories on the same level with the current one.

The function can be useful for developing categories tree browser.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

category

返回值

Returns an array listing all categories of the same level as the current category in the categories tree.

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

  $array[0] will contain '020300'
  $array[1] will contain 'Audi'
  $array[2] will contain '020301'
  $array[3] will contain 'BMW'
  $array[4] will contain '020302'
  $array[5] will contain 'Opel'
  ...
 etc.

范例

Following is an example of displaying links of the current level in format:

  Audi
  BMW
  Opel
  ...

Example #1 udm_cat_list()example

<?php
 $cat_list_arr = udm_cat_list($udm_agent, $cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

参见

  • udm_cat_path() - Get the path to the current category

udm_api_version
udm_cat_path
mnoGoSearch 函数


Get the path to the current category

udm_cat_list
udm_check_charset
mnoGoSearch 函数
PHP 手册

udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_path — Get the path to the current category

说明

array udm_cat_path ( resource $agent , string $category )

Returns an array describing the path in the categories tree from the tree root to the current one, specified by category .

参数

agent

A link to Agent, received after call to udm_alloc_agent().

category

返回值

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

For example, the call $array=udm_cat_path($agent, '02031D'); may return the following array:

 $array[0] will contain ''
 $array[1] will contain 'Root'
 $array[2] will contain '02'
 $array[3] will contain 'Sport'
 $array[4] will contain '0203'
 $array[5] will contain 'Auto'
 $array[4] will contain '02031D'
 $array[5] will contain 'Ferrari'

范例

Example #1 Specifying path to the current category in the following format: '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

参见

  • udm_cat_list() - Get all the categories on the same level with the current one

udm_cat_list
udm_check_charset
mnoGoSearch 函数


Check if the given charset is known to mnogosearch

udm_cat_path
udm_check_stored
mnoGoSearch 函数
PHP 手册

udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_check_charset — Check if the given charset is known to mnogosearch

说明

bool udm_check_charset ( resource $agent , string $charset )

Warning

本函数暂无文档，仅有参数列表。

udm_cat_path
udm_check_stored
mnoGoSearch 函数


Check connection to stored

udm_check_charset
udm_clear_search_limits
mnoGoSearch 函数
PHP 手册

udm_check_stored

(PHP 4 >= 4.2.0)

udm_check_stored — Check connection to stored

说明

int udm_check_stored ( resource $agent , int $link , string $doc_id )

Warning

本函数暂无文档，仅有参数列表。

udm_check_charset
udm_clear_search_limits
mnoGoSearch 函数


Clear all mnoGoSearch search restrictions

udm_check_stored
udm_close_stored
mnoGoSearch 函数
PHP 手册

udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_clear_search_limits — Clear all mnoGoSearch search restrictions

说明

bool udm_clear_search_limits ( resource $agent )

udm_clear_search_limits() resets defined search limitations.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

返回值

Returns TRUE.

参见

  • udm_add_search_limit() - Add various search limits

udm_check_stored
udm_close_stored
mnoGoSearch 函数


Close connection to stored

udm_clear_search_limits
udm_crc32
mnoGoSearch 函数
PHP 手册

udm_close_stored

(PHP 4 >= 4.2.0)

udm_close_stored — Close connection to stored

说明

int udm_close_stored ( resource $agent , int $link )

Warning

本函数暂无文档，仅有参数列表。

udm_clear_search_limits
udm_crc32
mnoGoSearch 函数


Return CRC32 checksum of given string

udm_close_stored
udm_errno
mnoGoSearch 函数
PHP 手册

udm_crc32

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_crc32 — Return CRC32 checksum of given string

说明

int udm_crc32 ( resource $agent , string $str )

Warning

本函数暂无文档，仅有参数列表。

udm_close_stored
udm_errno
mnoGoSearch 函数


Get mnoGoSearch error number

udm_crc32
udm_error
mnoGoSearch 函数
PHP 手册

udm_errno

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_errno — Get mnoGoSearch error number

说明

int udm_errno ( resource $agent )

Receiving numeric agent error code.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

返回值

Returns the mnoGoSearch error number, zero if no error.

udm_crc32
udm_error
mnoGoSearch 函数


Get mnoGoSearch error message

udm_errno
udm_find
mnoGoSearch 函数
PHP 手册

udm_error

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_error — Get mnoGoSearch error message

说明

string udm_error ( resource $agent )

Gets the agent error message.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

返回值

udm_error() returns mnoGoSearch error message, empty string if no error.

udm_errno
udm_find
mnoGoSearch 函数


Perform search

udm_error
udm_free_agent
mnoGoSearch 函数
PHP 手册

udm_find

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_find — Perform search

说明

resource udm_find ( resource $agent , string $query )

Performs a search.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

query

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

返回值

Returns a result link identifier on success, or FALSE on failure.

udm_error
udm_free_agent
mnoGoSearch 函数


Free mnoGoSearch session

udm_find
udm_free_ispell_data
mnoGoSearch 函数
PHP 手册

udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_agent — Free mnoGoSearch session

说明

int udm_free_agent ( resource $agent )

Freeing up memory allocated for agent session.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

udm_find
udm_free_ispell_data
mnoGoSearch 函数


Free memory allocated for ispell data

udm_free_agent
udm_free_res
mnoGoSearch 函数
PHP 手册

udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_ispell_data — Free memory allocated for ispell data

说明

bool udm_free_ispell_data ( int $agent )

Frees the memory allocated for ispell data.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

返回值

udm_free_ispell_data() always returns TRUE.

注释

Note: This function is supported beginning from version 3.1.12 of mnoGoSearch and it does not do anything in previous versions.

udm_free_agent
udm_free_res
mnoGoSearch 函数


Free mnoGoSearch result

udm_free_ispell_data
udm_get_doc_count
mnoGoSearch 函数
PHP 手册

udm_free_res

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_res — Free mnoGoSearch result

说明

bool udm_free_res ( resource $res )

Freeing up memory allocated for results.

参数

res

A link to a result identifier, received after call to udm_find().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

udm_free_ispell_data
udm_get_doc_count
mnoGoSearch 函数


Get total number of documents in database

udm_free_res
udm_get_res_field
mnoGoSearch 函数
PHP 手册

udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_doc_count — Get total number of documents in database

说明

int udm_get_doc_count ( resource $agent )

udm_get_doc_count() returns the number of documents in the database.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

返回值

Returns the number of documents.

注释

Note: This function is supported only in mnoGoSearch 3.1.11 or later.

udm_free_res
udm_get_res_field
mnoGoSearch 函数


Fetch a result field

udm_get_doc_count
udm_get_res_param
mnoGoSearch 函数
PHP 手册

udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_field — Fetch a result field

说明

string udm_get_res_field ( resource $res , int $row , int $field )

Fetch a mnoGoSearch result field.

参数

res

res - a link to result identifier, received after call to udm_find().

row

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS-1 .

field

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field
  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).
  • UDM_FIELD_CATEGORY - document category field. Use udm_cat_path() to get full path to current category from the categories tree root. (This parameter is available only in PHP 4.0.6 or later).
  • UDM_FIELD_TITLE - document title field.
  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).
  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).
  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).
  • UDM_FIELD_SIZE - document size.
  • UDM_FIELD_URLID - unique URL ID of the link.
  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).
  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.
  • UDM_FIELD_ORDER - the number of the current document in set of found documents.
  • UDM_FIELD_CRC - document CRC.

返回值

udm_get_res_field() returns result field value on success, FALSE on error.

udm_get_doc_count
udm_get_res_param
mnoGoSearch 函数


Get mnoGoSearch result parameters

udm_get_res_field
udm_hash32
mnoGoSearch 函数
PHP 手册

udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_param — Get mnoGoSearch result parameters

说明

string udm_get_res_param ( resource $res , int $param )

Gets the mnoGoSearch result parameters.

参数

res

res - a link to result identifier, received after call to udm_find().

param

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.
  • UDM_PARAM_FOUND - total number of results matching the query.
  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"
  • UDM_PARAM_SEARCHTIME - search time in seconds.
  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.
  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

返回值

udm_get_res_param() returns result parameter value on success, FALSE on error.

udm_get_res_field
udm_hash32
mnoGoSearch 函数


Return Hash32 checksum of gived string

udm_get_res_param
udm_load_ispell_data
mnoGoSearch 函数
PHP 手册

udm_hash32

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_hash32 — Return Hash32 checksum of gived string

说明

int udm_hash32 ( resource $agent , string $str )

udm_hash32() will take a string str and return a quite unique 32-bit hash number from it.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

str

The input string.

返回值

Returns a 32-bit hash number.

参见

  • udm_alloc_agent() - Allocate mnoGoSearch session

udm_get_res_param
udm_load_ispell_data
mnoGoSearch 函数


Load ispell data

udm_hash32
udm_open_stored
mnoGoSearch 函数
PHP 手册

udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_load_ispell_data — Load ispell data

说明

bool udm_load_ispell_data ( resource $agent , int $var , string $val1 , string $val2 , int $flag )

udm_load_ispell_data() loads ispell data.

After using this function to free memory allocated for ispell data, please use udm_free_ispell_data(), even if you use UDM_ISPELL_TYPE_SERVER mode.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

var

Indicates the source for ispell data. May have the following values:

  • UDM_ISPELL_TYPE_DB - indicates that ispell data should be loaded from SQL. In this case, parameters val1 and val2 are ignored and should be left blank. flag should be equal to 1.

    Note: flag indicates that after loading ispell data from defined source it should be sorted (it is necessary for correct functioning of ispell). In case of loading ispell data from files there may be several calls to udm_load_ispell_data(), and there is no sense to sort data after every call, but only after the last one. Since in db mode all the data is loaded by one call, this parameter should have the value 1. In this mode in case of error, e.g. if ispell tables are absent, the function will return FALSE and code and error message will be accessible through udm_error() and udm_errno().

  • UDM_ISPELL_TYPE_AFFIX - indicates that ispell data should be loaded from file and initiates loading affixes file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Example #1 udm_load_ispell_data() example

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
        exit;
    }
    ?>

    Note: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SPELL - indicates that ispell data should be loaded from file and initiates loading of ispell dictionary file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
     exit;
     }
    ?>

    Note: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SERVER - enables spell server support. val1 parameter indicates address of the host running spell server. val2 ` is not used yet, but in future releases it is going to indicate number of port used by spell server. flag parameter in this case is not needed since ispell data is stored on spellserver already sorted.

    Spelld server reads spell-data from a separate configuration file (/usr/local/mnogosearch/etc/spelld.conf by default), sorts it and stores in memory. With clients server communicates in two ways: to indexer all the data is transferred (so that indexer starts faster), from search.cgi server receives word to normalize and then passes over to client (search.cgi) list of normalized word forms. This allows fastest, compared to db and text modes processing of search queries (by omitting loading and sorting all the spell data).

    udm_load_ispell_data() function in UDM_ISPELL_TYPE_SERVER mode does not actually load ispell data, but only defines server address. In fact, server is automatically used by udm_find() function when performing search. In case of errors, e.g. if spellserver is not running or invalid host indicated, there are no messages returned and ispell conversion does not work.

    Note: This function is available in mnoGoSearch 3.1.12 or later.

    Example:
    <?php
    if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
        echo     "Error loading ispell data from server<br />\n";
        exit;
    }
    ?>

The fastest mode is UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT is slower and UDM_ISPELL_TYPE_DB is the slowest. The above pattern is TRUE for mnoGoSearch 3.1.10 - 3.1.11. It is planned to speed up DB mode in future versions and it is going to be faster than TEXT mode.

val1

val2

flag

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #2 udm_load_ispell_data() example

<?php
if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
  printf("Error #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>

udm_hash32
udm_open_stored
mnoGoSearch 函数


Open connection to stored

udm_load_ispell_data
udm_set_agent_param
mnoGoSearch 函数
PHP 手册

udm_open_stored

(PHP 4 >= 4.2.0)

udm_open_stored — Open connection to stored

说明

int udm_open_stored ( resource $agent , string $storedaddr )

Warning

本函数暂无文档，仅有参数列表。

udm_load_ispell_data
udm_set_agent_param
mnoGoSearch 函数


Set mnoGoSearch agent session parameters

udm_open_stored
Sphinx
mnoGoSearch 函数
PHP 手册

udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_set_agent_param — Set mnoGoSearch agent session parameters

说明

bool udm_set_agent_param ( resource $agent , int $var , string $val )

Defines mnoGoSearch session parameters.

参数

agent

A link to Agent, received after call to udm_alloc_agent().

var

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).
  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.
  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.
  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.
  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current Unix timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.
  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well. Examples of phrase search: "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase
  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...
  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the PHP script is executed.)
  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.
  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:
          URLWeight     1
      BodyWeight    2
      TitleWeight   4
      KeywordWeight 8
      DescWeight    16
    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight. This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:
           E is a factor for weight 1  (URL Weight bit)
       D is a factor for weight 2  (BodyWeight bit)
       C is a factor for weight 4  (TitleWeight bit)
       B is a factor for weight 8  (KeywordWeight bit)
       A is a factor for weight 16 (DescWeight bit)
    Examples: UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only. UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only. UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Description but not through URL and Body. UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:
            Description with factor 15  (F hex)
        Keywords with factor 9
        Title with factor  4
        Body with factor 2
        URL with factor 1
    If UDM_PARAM_WEIGHT_FACTOR variable is omitted, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.
  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values: UDM_MATCH_BEGIN - word beginning match; UDM_MATCH_END - word ending match; UDM_MATCH_WORD - whole word match; UDM_MATCH_SUBSTR - word substring match.
  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.
  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().
  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED. The crosswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.
  • UDM_PARAM_VARDIR - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values.

val

更新日志

版本 | 说明
4.1.0 | UDM_PARAM_VARDIR was added.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: Crosswords are supported only in mnoGoSearch 3.1.11 or later.

udm_open_stored
Sphinx
mnoGoSearch 函数


Sphinx Client

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • SphinxClient — The SphinxClient class
    • SphinxClient::addQuery — Add query to multi-query batch
    • SphinxClient::buildExcerpts — Build text snippets
    • SphinxClient::buildKeywords — Extract keywords from query
    • SphinxClient::__construct — Create a new SphinxClient object
    • SphinxClient::escapeString — Escape special characters
    • SphinxClient::getLastError — Get the last error message
    • SphinxClient::getLastWarning — Get the last warning
    • SphinxClient::query — Execute search query
    • SphinxClient::resetFilters — Clear all filters
    • SphinxClient::resetGroupBy — Clear all group-by settings
    • SphinxClient::runQueries — Run a batch of search queries
    • SphinxClient::setArrayResult — Change the format of result set array
    • SphinxClient::setConnectTimeout — Set connection timeout
    • SphinxClient::setFieldWeights — Set field weights
    • SphinxClient::setFilter — Add new integer values set filter
    • SphinxClient::setFilterFloatRange — Add new float range filter
    • SphinxClient::setFilterRange — Add new integer range filter
    • SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations
    • SphinxClient::setGroupBy — Set grouping attribute
    • SphinxClient::setGroupDistinct — Set attribute name for per-group distinct values count calculations
    • SphinxClient::setIDRange — Set a range of accepted document IDs
    • SphinxClient::setIndexWeights — Set per-index weights
    • SphinxClient::setLimits — Set offset and limit of the result set
    • SphinxClient::setMatchMode — Set full-text query matching mode
    • SphinxClient::setMaxQueryTime — Set maximum query time
    • SphinxClient::setRankingMode — Set ranking mode
    • SphinxClient::setRetries — Set retry count and delay
    • SphinxClient::setServer — Set searchd host and port
    • SphinxClient::setSortMode — Set matches sorting mode
    • SphinxClient::updateAttributes — Update document attributes
udm_set_agent_param
简介
搜索引擎扩展


简介

This extension provides bindings for Sphinx search client library. Sphinx is a standalone search engine meant to provide fast, size-efficient and relevant fulltext search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages. Both Sphinx and its client library can be obtained from the » official site

Sphinx
安装/配置
Sphinx


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Sphinx


需求

PECL/sphinx requires PHP 5.1.3 or newer.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/sphinx

If ./configure is having trouble finding the libsphinxclient files (for example, it was installed into a custom prefix directory), use ./configure --with-sphinx=$PREFIX , where $PREFIX is installation prefix of libsphinxclient.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SEARCHD_OK (integer)
SEARCHD_ERROR (integer)
SEARCHD_RETRY (integer)
SEARCHD_WARNING (integer)
SPH_MATCH_ALL (integer)
SPH_MATCH_ANY (integer)
SPH_MATCH_PHRASE (integer)
SPH_MATCH_BOOLEAN (integer)
SPH_MATCH_EXTENDED (integer)
SPH_MATCH_FULLSCAN (integer)
SPH_MATCH_EXTENDED2 (integer)
SPH_RANK_PROXIMITY_BM25 (integer)
SPH_RANK_BM25 (integer)
SPH_RANK_NONE (integer)
SPH_RANK_WORDCOUNT (integer)
SPH_SORT_RELEVANCE (integer)
SPH_SORT_ATTR_DESC (integer)
SPH_SORT_ATTR_ASC (integer)
SPH_SORT_TIME_SEGMENTS (integer)
SPH_SORT_EXTENDED (integer)
SPH_SORT_EXPR (integer)
SPH_FILTER_VALUES (integer)
SPH_FILTER_RANGE (integer)
SPH_FILTER_FLOATRANGE (integer)
SPH_ATTR_INTEGER (integer)
SPH_ATTR_TIMESTAMP (integer)
SPH_ATTR_ORDINAL (integer)
SPH_ATTR_BOOL (integer)
SPH_ATTR_FLOAT (integer)
SPH_ATTR_MULTI (integer)
SPH_GROUPBY_DAY (integer)
SPH_GROUPBY_WEEK (integer)
SPH_GROUPBY_MONTH (integer)
SPH_GROUPBY_YEAR (integer)
SPH_GROUPBY_ATTR (integer)
SPH_GROUPBY_ATTRPAIR (integer)

资源类型
范例
Sphinx


范例

Example #1 Basic usage example

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

上例的输出类似于：

array(10) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(3) {
    [0]=>
    string(7) "subject"
    [1]=>
    string(4) "body"
    [2]=>
    string(6) "author"
  }
  ["attrs"]=>
  array(0) {
  }
  ["matches"]=>
  array(1) {
    [3]=>
    array(2) {
      ["weight"]=>
      int(1)
      ["attrs"]=>
      array(0) {
      }
    }
  }
  ["total"]=>
  int(1)
  ["total_found"]=>
  int(1)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["to"]=>
    array(2) {
      ["docs"]=>
      int(1)
      ["hits"]=>
      int(1)
    }
  }
}
预定义常量
SphinxClient
Sphinx


The SphinxClient class

简介

The SphinxClient class provides object-oriented interface to Sphinx.

Class synopsis

SphinxClient
SphinxClient {
/* Methods */
public int addQuery ( string $query [, string $index="*" [, string $comment="" ]] )
public array buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )
public array buildKeywords ( string $query , string $index , bool $hits )
__construct ( void )
public string escapeString ( string $string )
public string getLastError ( void )
public string getLastWarning ( void )
public array query ( string $query [, string $index="*" [, string $comment="" ]] )
public void resetFilters ( void )
public void resetGroupBy ( void )
public array runQueries ( void )
public bool setArrayResult ( bool $array_result )
public bool setConnectTimeout ( float $timeout )
public bool setFieldWeights ( array $weights )
public bool setFilter ( string $attribute , array $values [, bool $exclude=false ] )
public bool setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude=false ] )
public bool setFilterRange ( string $attribute , int $min , int $max [, bool $exclude ] )
public bool setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )
public bool setGroupBy ( string $attribute , int $func [, string $groupsort ] )
public bool setGroupDistinct ( string $attribute )
public bool setIDRange ( int $min , int $max )
public bool setIndexWeights ( array $weights )
public bool setLimits ( int $offset , int $limit [, int $max_matches=0 [, int $cutoff=0 ]] )
public bool setMatchMode ( int $mode )
public bool setMaxQueryTime ( int $qtime )
public bool setRankingMode ( int $ranker )
public bool setRetries ( int $count [, int $delay=0 ] )
public bool setServer ( string $server , int $port )
public bool setSortMode ( int $mode [, string $sortby ] )
public int updateAttributes ( string $index , array $attributes , array $values )
}

Table of Contents

  • SphinxClient::addQuery — Add query to multi-query batch
  • SphinxClient::buildExcerpts — Build text snippets
  • SphinxClient::buildKeywords — Extract keywords from query
  • SphinxClient::__construct — Create a new SphinxClient object
  • SphinxClient::escapeString — Escape special characters
  • SphinxClient::getLastError — Get the last error message
  • SphinxClient::getLastWarning — Get the last warning
  • SphinxClient::query — Execute search query
  • SphinxClient::resetFilters — Clear all filters
  • SphinxClient::resetGroupBy — Clear all group-by settings
  • SphinxClient::runQueries — Run a batch of search queries
  • SphinxClient::setArrayResult — Change the format of result set array
  • SphinxClient::setConnectTimeout — Set connection timeout
  • SphinxClient::setFieldWeights — Set field weights
  • SphinxClient::setFilter — Add new integer values set filter
  • SphinxClient::setFilterFloatRange — Add new float range filter
  • SphinxClient::setFilterRange — Add new integer range filter
  • SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations
  • SphinxClient::setGroupBy — Set grouping attribute
  • SphinxClient::setGroupDistinct — Set attribute name for per-group distinct values count calculations
  • SphinxClient::setIDRange — Set a range of accepted document IDs
  • SphinxClient::setIndexWeights — Set per-index weights
  • SphinxClient::setLimits — Set offset and limit of the result set
  • SphinxClient::setMatchMode — Set full-text query matching mode
  • SphinxClient::setMaxQueryTime — Set maximum query time
  • SphinxClient::setRankingMode — Set ranking mode
  • SphinxClient::setRetries — Set retry count and delay
  • SphinxClient::setServer — Set searchd host and port
  • SphinxClient::setSortMode — Set matches sorting mode
  • SphinxClient::updateAttributes — Update document attributes
范例
SphinxClient::addQuery
Sphinx


Add query to multi-query batch

SphinxClient
SphinxClient::buildExcerpts
SphinxClient
PHP 手册

SphinxClient::addQuery

(PECL sphinx >= 0.1.0)

SphinxClient::addQuery — Add query to multi-query batch

说明

public int SphinxClient::addQuery ( string $query [, string $index="*" [, string $comment="" ]] )

Adds query with the current settings to multi-query batch. This method doesn't affect current settings (sorting, filtering, grouping etc.) in any way.

参数

query

Query string.

index

An index name (or names).

comment

返回值

Returns an index in an array of results that will be returned by SphinxClient::runQueries call or false on error.

参见

  • SphinxClient::runQueries
  • SphinxClient::query

SphinxClient
SphinxClient::buildExcerpts
SphinxClient


Build text snippets

SphinxClient::addQuery
SphinxClient::buildKeywords
SphinxClient
PHP 手册

SphinxClient::buildExcerpts

(PECL sphinx >= 0.1.0)

SphinxClient::buildExcerpts — Build text snippets

说明

public array SphinxClient::buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )

Connects to searchd, requests it to generate excerpts (snippets) from the given documents, and returns the results.

参数

docs

Array of strings with documents' contents.

index

Index name.

words

Keywords to highlight.

opts

Associative array of additional highlighting options (see below).

Highlighting options
Option | Description
"before_match" | A string to insert before a keyword match. Default is "<b>".
"after_match" | A string to insert after a keyword match. Default is "</b>".
"chunk_separator" | A string to insert between snippet chunks (passages). Default is " ... ".
"limit" | Maximum snippet size, in symbols (codepoints). Integer, default is 256.
"around" | How much words to pick around each matching keywords block. Integer, default is 5.
"exact_phrase" | Whether to highlight exact query phrase matches only instead of individual keywords. Boolean, default is FALSE.
"single_passage" | Whether to extract single best passage only. Boolean, default is FALSE.

返回值

Returns array of snippets on success, or FALSE on failure.

SphinxClient::addQuery
SphinxClient::buildKeywords
SphinxClient


Extract keywords from query

SphinxClient::buildExcerpts
SphinxClient::__construct
SphinxClient
PHP 手册

SphinxClient::buildKeywords

(PECL sphinx >= 0.1.0)

SphinxClient::buildKeywords — Extract keywords from query

说明

public array SphinxClient::buildKeywords ( string $query , string $index , bool $hits )

Extracts keywords from query using tokenizer settings for the given index , optionally with per-keyword occurrence statistics.

参数

query

A query to extract keywords from.

index

An index to get tokenizing settings and keyword occurrence statistics from.

hits

A boolean flag to enable/disable keyword statistics generation.

返回值

Returns an array of associative arrays with per-keyword information.

SphinxClient::buildExcerpts
SphinxClient::__construct
SphinxClient


Create a new SphinxClient object

SphinxClient::buildKeywords
SphinxClient::escapeString
SphinxClient
PHP 手册

SphinxClient::__construct

(PECL sphinx >= 0.1.0)

SphinxClient::__construct — Create a new SphinxClient object

说明

SphinxClient::__construct ( void )

Creates a new SphinxClient object.

参数

This function has no parameters.

SphinxClient::buildKeywords
SphinxClient::escapeString
SphinxClient


Escape special characters

SphinxClient::__construct
SphinxClient::getLastError
SphinxClient
PHP 手册

SphinxClient::escapeString

(PECL sphinx >= 0.1.0)

SphinxClient::escapeString — Escape special characters

说明

public string SphinxClient::escapeString ( string $string )

Escapes characters that are treated as special operators by the query language parser.

参数

string

String to escape.

返回值

Returns escaped string.

SphinxClient::__construct
SphinxClient::getLastError
SphinxClient


Get the last error message

SphinxClient::escapeString
SphinxClient::getLastWarning
SphinxClient
PHP 手册

SphinxClient::getLastError

(PECL sphinx >= 0.1.0)

SphinxClient::getLastError — Get the last error message

说明

public string SphinxClient::getLastError ( void )

Returns string with the last error message. If there were no errors during the previous API call, empty string is returned. This method doesn't reset the error message, so you can safely call it several times.

参数

This function has no parameters.

参见

  • SphinxClient::getLastWarning

SphinxClient::escapeString
SphinxClient::getLastWarning
SphinxClient


Get the last warning

SphinxClient::getLastError
SphinxClient::query
SphinxClient
PHP 手册

SphinxClient::getLastWarning

(PECL sphinx >= 0.1.0)

SphinxClient::getLastWarning — Get the last warning

说明

public string SphinxClient::getLastWarning ( void )

Returns last warning message. If there were no warnings during the previous API call, empty string is returned. This method doesn't reset the warning, so you can safely call it several times.

参数

This function has no parameters.

参见

  • SphinxClient::getLastError

SphinxClient::getLastError
SphinxClient::query
SphinxClient


Execute search query

SphinxClient::getLastWarning
SphinxClient::resetFilters
SphinxClient
PHP 手册

SphinxClient::query

(PECL sphinx >= 0.1.0)

SphinxClient::query — Execute search query

说明

public array SphinxClient::query ( string $query [, string $index="*" [, string $comment="" ]] )

Connects to searchd server, runs the given search query with the current settings, obtains and returns the result set.

参数

query

Query string.

index

An index name (or names).

comment

返回值

On success, SphinxClient::query() returns a list of found matches and additional per-query statistics. The result set is a hash utilize other structures instead of hash) with the following keys and values:

Result set structure
Key | Value description
"matches" | An array with found document IDs as keys and their weight and attributes values as values
"total" | Total number of matches found and retrieved (depends on your settings)
"total_found" | Total number of found documents matching the query
"words" | An array with words (case-folded and stemmed) as keys and per-word statistics as values
"error" | Query error message reported by searchd
"warning" | Query warning reported by searchd

参见

  • SphinxClient::runQueries
  • SphinxClient::addQuery

SphinxClient::getLastWarning
SphinxClient::resetFilters
SphinxClient


Clear all filters

SphinxClient::query
SphinxClient::resetGroupBy
SphinxClient
PHP 手册

SphinxClient::resetFilters

(PECL sphinx >= 0.1.0)

SphinxClient::resetFilters — Clear all filters

说明

public void SphinxClient::resetFilters ( void )

Clears all currently set filters. This call is normally required when using multi-queries. You might want to set different filters for different queries in the batch. To do that, you should call SphinxClient::resetFilters() and add new filters using the respective calls.

参见

  • SphinxClient::resetGroupBy

SphinxClient::query
SphinxClient::resetGroupBy
SphinxClient


Clear all group-by settings

SphinxClient::resetFilters
SphinxClient::runQueries
SphinxClient
PHP 手册

SphinxClient::resetGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::resetGroupBy — Clear all group-by settings

说明

public void SphinxClient::resetGroupBy ( void )

Clears all currently group-by settings, and disables group-by. This call is normally required only when using multi-queries.

参见

  • SphinxClient::resetGroupBy

SphinxClient::resetFilters
SphinxClient::runQueries
SphinxClient


Run a batch of search queries

SphinxClient::resetGroupBy
SphinxClient::setArrayResult
SphinxClient
PHP 手册

SphinxClient::runQueries

(PECL sphinx >= 0.1.0)

SphinxClient::runQueries — Run a batch of search queries

说明

public array SphinxClient::runQueries ( void )

Connects to searchd, runs a batch of all queries added using SphinxClient::addQuery, obtains and returns the result sets.

返回值

Returns FALSE on failure and array of result sets on success.

参见

  • SphinxClient::addQuery
  • SphinxClient::query

SphinxClient::resetGroupBy
SphinxClient::setArrayResult
SphinxClient


Change the format of result set array

SphinxClient::runQueries
SphinxClient::setConnectTimeout
SphinxClient
PHP 手册

SphinxClient::setArrayResult

(PECL sphinx >= 0.1.0)

SphinxClient::setArrayResult — Change the format of result set array

说明

public bool SphinxClient::setArrayResult ( bool $array_result )

Controls the format of search results set arrays (whether matches should be returned as an array or a hash). If array_result is FALSE (default value), matches are returned as a hash with document IDs as keys, and other information (weight, attributes) as values. If array_result is TRUE, matches are eturned as a plain array with complete per-match information including document IDs.

参数

array_result

返回值

Always returns TRUE.

SphinxClient::runQueries
SphinxClient::setConnectTimeout
SphinxClient


Set connection timeout

SphinxClient::setArrayResult
SphinxClient::setFieldWeights
SphinxClient
PHP 手册

SphinxClient::setConnectTimeout

(PECL sphinx >= 0.1.0)

SphinxClient::setConnectTimeout — Set connection timeout

说明

public bool SphinxClient::setConnectTimeout ( float $timeout )

Sets connection timeout (in seconds) for searchd connection.

参数

timeout

Timeout in seconds.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setMaxQueryTime

SphinxClient::setArrayResult
SphinxClient::setFieldWeights
SphinxClient


Set field weights

SphinxClient::setConnectTimeout
SphinxClient::setFilter
SphinxClient
PHP 手册

SphinxClient::setFieldWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setFieldWeights — Set field weights

说明

public bool SphinxClient::setFieldWeights ( array $weights )

Binds per-field weights by name.

Match ranking can be affected by per-field weights. See » Sphinx documentation for an explanation on how phrase proximity ranking is affected. This call lets you specify non-default weights for full-text fields.

The weights must be positive 32-bit integers, so be careful not to hit 32-bit integer maximum. The final weight is a 32-bit integer too. Default weight value is 1. Unknown field names are silently ignored.

参数

weights

Associative array of field names and field weights.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setIndexWeights

SphinxClient::setConnectTimeout
SphinxClient::setFilter
SphinxClient


Add new integer values set filter

SphinxClient::setFieldWeights
SphinxClient::setFilterFloatRange
SphinxClient
PHP 手册

SphinxClient::setFilter

(PECL sphinx >= 0.1.0)

SphinxClient::setFilter — Add new integer values set filter

说明

public bool SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude=false ] )

Adds new integer values set filter to the existing list of filters.

参数

attribute

An attribute name.

values

Plain array of integer values.

exclude

If set to TRUE, matching documents are excluded from the result set. Defaults to FALSE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::resetFilters

SphinxClient::setFieldWeights
SphinxClient::setFilterFloatRange
SphinxClient


Add new float range filter

SphinxClient::setFilter
SphinxClient::setFilterRange
SphinxClient
PHP 手册

SphinxClient::setFilterFloatRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterFloatRange — Add new float range filter

说明

public bool SphinxClient::setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude=false ] )

Adds new float range filter to the existing list of filters. Only those documents which have attribute value stored in the index between min and max (including values that are exactly equal to min or max ) will be matched (or rejected, if exclude is TRUE).

参数

attribute

An attribute name.

min

Minimum value.

max

Maximum value.

exclude

If set to TRUE, matching documents are excluded from the result set. Defaults to FALSE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters

SphinxClient::setFilter
SphinxClient::setFilterRange
SphinxClient


Add new integer range filter

SphinxClient::setFilterFloatRange
SphinxClient::setGeoAnchor
SphinxClient
PHP 手册

SphinxClient::setFilterRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterRange — Add new integer range filter

说明

public bool SphinxClient::setFilterRange ( string $attribute , int $min , int $max [, bool $exclude ] )

Adds new integer range filter to the existing list of filters. Only those documents which have attribute value stored in the index between min and max (including values that are exactly equal to min or max ) will be matched (or rejected, if exclude is TRUE).

参数

attribute

An attribute name.

min

Minimum value.

max

Maximum value.

exclude

If set to TRUE, matching documents are excluded from the result set. Defaults to FALSE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters

SphinxClient::setFilterFloatRange
SphinxClient::setGeoAnchor
SphinxClient


Set anchor point for a geosphere distance calculations

SphinxClient::setFilterRange
SphinxClient::setGroupBy
SphinxClient
PHP 手册

SphinxClient::setGeoAnchor

(PECL sphinx >= 0.1.0)

SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations

说明

public bool SphinxClient::setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )

Sets anchor point for a geosphere distance (geodistance) calculations and enables them.

Once an anchor point is set, you can use magic "@geodist" attribute name in your filters and/or sorting expressions.

参数

attrlat

Name of a latitude attribute.

attrlong

Name of a longitude attribute.

latitude

Anchor latitude in radians.

longitude

Anchor longitude in radians.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters

SphinxClient::setFilterRange
SphinxClient::setGroupBy
SphinxClient


Set grouping attribute

SphinxClient::setGeoAnchor
SphinxClient::setGroupDistinct
SphinxClient
PHP 手册

SphinxClient::setGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupBy — Set grouping attribute

说明

public bool SphinxClient::setGroupBy ( string $attribute , int $func [, string $groupsort ] )

Sets grouping attribute, function, and group sorting mode, and enables grouping.

Grouping feature is very similar to GROUP BY clause in SQL. Results produced by this function call are going to be the same as produced by the following pseudo code: SELECT ... GROUP BY $func($attribute) ORDER BY $groupsort.

参数

attribute

A string containing group-by attribute name.

func

Constant, which sets a function applied to the attribute value in order to compute group-by key.

groupsort

An optional clause controlling how the groups are sorted. Defaults to "@group desc".

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::resetGroupBy
  • SphinxClient::setSortMode
  • SphinxClient::setGroupDistinct

SphinxClient::setGeoAnchor
SphinxClient::setGroupDistinct
SphinxClient


Set attribute name for per-group distinct values count calculations

SphinxClient::setGroupBy
SphinxClient::setIDRange
SphinxClient
PHP 手册

SphinxClient::setGroupDistinct

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupDistinct — Set attribute name for per-group distinct values count calculations

说明

public bool SphinxClient::setGroupDistinct ( string $attribute )

Sets attribute name for per-group distinct values count calculations. Only available for grouping queries. For each group, all values of attribute will be stored, then the amount of distinct values will be calculated and returned to the client. This feature is similar to COUNT(DISTINCT) clause in SQL.

参数

attribute

A string containing group-by attribute name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setSortMode
  • SphinxClient::setGroupBy
  • SphinxClient::resetGroupBy

SphinxClient::setGroupBy
SphinxClient::setIDRange
SphinxClient


Set a range of accepted document IDs

SphinxClient::setGroupDistinct
SphinxClient::setIndexWeights
SphinxClient
PHP 手册

SphinxClient::setIDRange

(PECL sphinx >= 0.1.0)

SphinxClient::setIDRange — Set a range of accepted document IDs

说明

public bool SphinxClient::setIDRange ( int $min , int $max )

Sets an accepted range of document IDs. Default range is from 0 to 0, i.e. no limit. Only those records that have document ID between min and max (including IDs exactly equal to min or max ) will be matched.

参数

min

Minimum ID value.

max

Maximum ID value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

SphinxClient::setGroupDistinct
SphinxClient::setIndexWeights
SphinxClient


Set per-index weights

SphinxClient::setIDRange
SphinxClient::setLimits
SphinxClient
PHP 手册

SphinxClient::setIndexWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setIndexWeights — Set per-index weights

说明

public bool SphinxClient::setIndexWeights ( array $weights )

Sets per-index weights and enables weighted summing of match weights across different indexes.

参数

weights

An associative array mapping string index names to integer weights. Default is empty array, i.e. weighting summing is disabled.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

SphinxClient::setIDRange
SphinxClient::setLimits
SphinxClient


Set offset and limit of the result set

SphinxClient::setIndexWeights
SphinxClient::setMatchMode
SphinxClient
PHP 手册

SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimits — Set offset and limit of the result set

说明

public bool SphinxClient::setLimits ( int $offset , int $limit [, int $max_matches=0 [, int $cutoff=0 ]] )

Sets offset into server-side result set and amount of matches to return to client starting from that offset (limit ). Can additionally control maximum server-side result set size for current query (max_matches ) and the threshold amount of matches to stop searching at (cutoff ).

参数

offset

Result set offset.

limit

Amount of matches to return.

max_matches

Controls how much matches searchd will keep in RAM while searching.

cutoff

Used for advanced performance control. It tells searchd to forcibly stop search query once cutoff matches have been found and processed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

SphinxClient::setIndexWeights
SphinxClient::setMatchMode
SphinxClient


Set full-text query matching mode

SphinxClient::setLimits
SphinxClient::setMaxQueryTime
SphinxClient
PHP 手册

SphinxClient::setMatchMode

(PECL sphinx >= 0.1.0)

SphinxClient::setMatchMode — Set full-text query matching mode

说明

public bool SphinxClient::setMatchMode ( int $mode )

Sets full-text query matching mode. mode is one of the constants listed below.

Match modes
Constant | Description
SPH_MATCH_ALL | Match all query words (default mode).
SPH_MATCH_ANY | Match any of query words.
SPH_MATCH_PHRASE | Match query as a phrase, requiring perfect match.
SPH_MATCH_BOOLEAN | Match query as a boolean expression.
SPH_MATCH_EXTENDED | Match query as an expression in Sphinx internal query language.
SPH_MATCH_FULLSCAN | Enables fullscan.
SPH_MATCH_EXTENDED2 | The same as SPH_MATCH_EXTENDED plus ranking and quorum searching support.

参数

mode

Matching mode.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setRankingMode
  • SphinxClient::setSortMode

SphinxClient::setLimits
SphinxClient::setMaxQueryTime
SphinxClient


Set maximum query time

SphinxClient::setMatchMode
SphinxClient::setRankingMode
SphinxClient
PHP 手册

SphinxClient::setMaxQueryTime

(PECL sphinx >= 0.1.0)

SphinxClient::setMaxQueryTime — Set maximum query time

说明

public bool SphinxClient::setMaxQueryTime ( int $qtime )

Sets maximum search query time, in milliseconds. qtime must be a non-negative integer. Default value is 0, i.e. no limit.

参数

qtime

Maximum query time, in milliseconds.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setMaxQueryTime

SphinxClient::setMatchMode
SphinxClient::setRankingMode
SphinxClient


Set ranking mode

SphinxClient::setMaxQueryTime
SphinxClient::setRetries
SphinxClient
PHP 手册

SphinxClient::setRankingMode

(PECL sphinx >= 0.1.0)

SphinxClient::setRankingMode — Set ranking mode

说明

public bool SphinxClient::setRankingMode ( int $ranker )

Sets ranking mode. Only available in SPH_MATCH_EXTENDED2 matching mode.

Ranking modes
Constant | Description
SPH_RANK_PROXIMITY_BM25 | Default ranking mode which uses both proximity and BM25 ranking.
SPH_RANK_BM25 | Statistical ranking mode which uses BM25 ranking only (similar to most of other full-text engines). This mode is faster, but may result in worse quality on queries which contain more than 1 keyword.
SPH_RANK_NONE | Disables ranking. This mode is the fastest. It is essentially equivalent to boolean searching, a weight of 1 is assigned to all matches.

参数

ranker

Ranking mode.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setMatchMode

SphinxClient::setMaxQueryTime
SphinxClient::setRetries
SphinxClient


Set retry count and delay

SphinxClient::setRankingMode
SphinxClient::setServer
SphinxClient
PHP 手册

SphinxClient::setRetries

(PECL sphinx >= 0.1.0)

SphinxClient::setRetries — Set retry count and delay

说明

public bool SphinxClient::setRetries ( int $count [, int $delay=0 ] )

Sets distributed retry count and delay.

On temporary failures searchd will attempt up to count retries per agent. delay is the delay between the retries, in milliseconds. Retries are disabled by default. Note that this call will not make the API itself retry on temporary failure; it only tells searchd to do so.

参数

count

Number of retries.

delay

Delay between retries, in milliseconds.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

SphinxClient::setRankingMode
SphinxClient::setServer
SphinxClient


Set searchd host and port

SphinxClient::setRetries
SphinxClient::setSortMode
SphinxClient
PHP 手册

SphinxClient::setServer

(PECL sphinx >= 0.1.0)

SphinxClient::setServer — Set searchd host and port

说明

public bool SphinxClient::setServer ( string $server , int $port )

Sets searchd host name and TCP port. All subsequent requests will use the new host and port settings. Default host and port are 'localhost' and 3312, respectively.

参数

server

IP or hostname.

port

Port number.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

SphinxClient::setRetries
SphinxClient::setSortMode
SphinxClient


Set matches sorting mode

SphinxClient::setServer
SphinxClient::updateAttributes
SphinxClient
PHP 手册

SphinxClient::setSortMode

(PECL sphinx >= 0.1.0)

SphinxClient::setSortMode — Set matches sorting mode

说明

public bool SphinxClient::setSortMode ( int $mode [, string $sortby ] )

Sets matches sorting mode. See available modes below.

Sorting modes
Constant | Description
SPH_SORT_RELEVANCE | Sort by relevance in descending order (best matches first).
SPH_SORT_ATTR_DESC | Sort by an attribute in descending order (bigger attribute values first).
SPH_SORT_ATTR_ASC | Sort by an attribute in ascending order (smaller attribute values first).
SPH_SORT_TIME_SEGMENTS | Sort by time segments (last hour/day/week/month) in descending order, and then by relevance in descending order.
SPH_SORT_EXTENDED | Sort by SQL-like combination of columns in ASC/DESC order.
SPH_SORT_EXPR | Sort by an arithmetic expression.

参数

mode

Sorting mode.

sortby

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • SphinxClient::setMatchMode
  • SphinxClient::setSortMode

SphinxClient::setServer
SphinxClient::updateAttributes
SphinxClient


Update document attributes

SphinxClient::setSortMode
Swish
SphinxClient
PHP 手册

SphinxClient::updateAttributes

(PECL sphinx >= 0.1.0)

SphinxClient::updateAttributes — Update document attributes

说明

public int SphinxClient::updateAttributes ( string $index , array $attributes , array $values )

Instantly updates given attribute values in given documents.

参数

index

Name of the index (or indexes) to be updated.

attributes

Array of attribute names, listing attributes that are updated.

values

Associative array containing document IDs as keys and array of attribute values as values.

返回值

Returns number of actually updated documents (0 or more) on success, or FALSE on failure.

SphinxClient::setSortMode
Swish
SphinxClient


Swish Indexing

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Basic usage
  • Swish 函数
    • Swish::__construct — Construct a Swish object
    • Swish->getMetaList — Get the list of meta entries for the index
    • Swish->getPropertyList — Get the list of properties for the index
    • Swish->prepare — Prepare a search query
    • Swish->query — Execute a query and return results object
    • SwishResult->getMetaList — Get a list of meta entries
    • SwishResult->stem — Stems the given word
    • SwishResults->getParsedWords — Get an array of parsed words
    • SwishResults->getRemovedStopwords — Get an array of stopwords removed from the query
    • SwishResults->nextResult — Get the next search result
    • SwishResults->seekResult — Set current seek pointer to the given position
    • SwishSearch->execute — Execute the search and get the results
    • SwishSearch->resetLimit — Reset the search limits
    • SwishSearch->setLimit — Set the search limits
    • SwishSearch->setPhraseDelimiter — Set the phrase delimiter
    • SwishSearch->setSort — Set the sort order
    • SwishSearch->setStructure — Set the structure flag in the search object
SphinxClient::updateAttributes
简介
搜索引擎扩展


简介

The swish extension provides the bindings for Swish-e API. Swish-e stands for "Simple Web Indexing System for Humans - Enhanced" and is an open source system for indexing and search. Swish-e itself is licensed under GPL license, but uses a clause that allows applications to link against the library if every copy of the combined work is accompanied by the URL to Swish-e source code. Here it is: » http://swish-e.org.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Swish
安装/配置
Swish


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Swish


需求

PECL/swish requires PHP 5.1.3 or newer.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/swish.

The latest PECL/swish Win32 DLL can be downloaded here: » php_swish.dll.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

Swish::META_TYPE_UNDEF (integer)
Swish::META_TYPE_STRING (integer)
Swish::META_TYPE_ULONG (integer)
Swish::META_TYPE_DATE (integer)
Swish::IN_FILE_BIT (integer)
Swish::IN_TITLE_BIT (integer)
Swish::IN_HEAD_BIT (integer)
Swish::IN_BODY_BIT (integer)
Swish::IN_COMMENTS_BIT (integer)
Swish::IN_HEADER_BIT (integer)
Swish::IN_EMPHASIZED_BIT (integer)
Swish::IN_META_BIT (integer)
Swish::IN_FILE (integer)
Swish::IN_TITLE (integer)
Swish::IN_HEAD (integer)
Swish::IN_BODY (integer)
Swish::IN_COMMENTS (integer)
Swish::IN_HEADER (integer)
Swish::IN_EMPHASIZED (integer)
Swish::IN_META (integer)
Swish::IN_ALL (integer)
资源类型
范例
Swish


范例

Table of Contents

  • Basic usage
预定义常量
Basic usage
Swish


Basic usage

Example #1 Basic search query

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test OR text");

    echo "Found ", $results->hits, " results\n";
    while ($result = $results->nextResult()) {
        var_dump($result);
        break; //break after the first result
    }

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

上例的输出类似于：

Found 9 results
object(SwishResult)#3 (8) {
  ["swishreccount"]=>
  int(1)
  ["swishrank"]=>
  int(1000)
  ["swishfilenum"]=>
  int(10)
  ["swishdbfile"]=>
  string(13) "index.swish-e"
  ["swishdocpath"]=>
  string(23) "README.SUBMITTING_PATCH"
  ["swishtitle"]=>
  NULL
  ["swishdocsize"]=>
  int(4557)
  ["swishlastmodified"]=>
  int(1072136752)
}
范例
Swish 函数
范例


Swish 函数

Table of Contents

  • Swish::__construct — Construct a Swish object
  • Swish->getMetaList — Get the list of meta entries for the index
  • Swish->getPropertyList — Get the list of properties for the index
  • Swish->prepare — Prepare a search query
  • Swish->query — Execute a query and return results object
  • SwishResult->getMetaList — Get a list of meta entries
  • SwishResult->stem — Stems the given word
  • SwishResults->getParsedWords — Get an array of parsed words
  • SwishResults->getRemovedStopwords — Get an array of stopwords removed from the query
  • SwishResults->nextResult — Get the next search result
  • SwishResults->seekResult — Set current seek pointer to the given position
  • SwishSearch->execute — Execute the search and get the results
  • SwishSearch->resetLimit — Reset the search limits
  • SwishSearch->setLimit — Set the search limits
  • SwishSearch->setPhraseDelimiter — Set the phrase delimiter
  • SwishSearch->setSort — Set the sort order
  • SwishSearch->setStructure — Set the structure flag in the search object
Basic usage
Swish::__construct
Swish


Construct a Swish object

Swish 函数
Swish->getMetaList
Swish 函数
PHP 手册

Swish::__construct

(PECL swish >= 0.1.0)

Swish::__construct — Construct a Swish object

说明

void Swish::__construct ( string $index_names )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

index_names

The list of index files separated by spaces.

返回值

无返回值。

错误／异常

Throws SwishException on error.

范例

Example #1 A Swish::__construct() example

<?php

try {
    $swish = new Swish("index1 index2");
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

foreach ($swish->indexes as $index) {
    var_dump($index["name"]);
    var_dump($index["headers"]["Total Words"]);
}

?>

上例的输出类似于：

string(6) "index1"
int(1888)
string(6) "index2"
int(2429)

Swish 函数
Swish->getMetaList
Swish 函数


Get the list of meta entries for the index

Swish::__construct
Swish->getPropertyList
Swish 函数
PHP 手册

Swish->getMetaList

(No version information available, might be only in CVS)

Swish->getMetaList — Get the list of meta entries for the index

说明

array Swish->getMetaList ( string $index_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

index_name

The name of the index file.

返回值

Returns an array of meta entries for the given index.

范例

Example #1 Basic Swish->getMetaList() example

<?php

try {

    $swish = new Swish("index.swish-e");
    var_dump($swish->getMetaList("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

array(1) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(12) "swishdefault"
    ["Type"]=>
    int(0)
    ["ID"]=>
    int(1)
  }
}

Swish::__construct
Swish->getPropertyList
Swish 函数


Get the list of properties for the index

Swish->getMetaList
Swish->prepare
Swish 函数
PHP 手册

Swish->getPropertyList

(No version information available, might be only in CVS)

Swish->getPropertyList — Get the list of properties for the index

说明

array Swish->getPropertyList ( string $index_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

index_name

The name of the index file.

返回值

Returns an array of properties for the given index.

范例

Example #1 Basic Swish->getPropertyList() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $properties = $swish->getPropertyList("index.swish-e");
    foreach ($properties as $prop) {
        echo $prop["Name"],"\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

swishreccount
swishrank
swishfilenum
swishdbfile
swishdocpath
swishtitle
swishdocsize
swishlastmodified

Swish->getMetaList
Swish->prepare
Swish 函数


Prepare a search query

Swish->getPropertyList
Swish->query
Swish 函数
PHP 手册

Swish->prepare

(No version information available, might be only in CVS)

Swish->prepare — Prepare a search query

说明

object Swish->prepare ([ string $query ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Prepare and return a search object, which you can later use for unlimited number of queries.

参数

query

Optional query string. The query can be also set using SwishSearch->execute() method.

返回值

Returns SwishSearch object.

错误／异常

Throws SwishException on error.

范例

Example #1 Basic Swish->prepare() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare("search query");
    $results = $search->execute();
    echo "Found: ", $results->hits, " hits\n";

    $results = $search->execute("new search");

    echo "Found: ", $results->hits, " hits\n";
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

Found: 2 hits
Found: 5 hits

Swish->getPropertyList
Swish->query
Swish 函数


Execute a query and return results object

Swish->prepare
SwishResult->getMetaList
Swish 函数
PHP 手册

Swish->query

(No version information available, might be only in CVS)

Swish->query — Execute a query and return results object

说明

object Swish->query ( string $query )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

A quick method to execute a search with default parameters.

参数

query

Query string.

返回值

Returns SwishResults object.

错误／异常

Throws SwishException on error.

范例

Example #1 Basic Swish->query() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test query");

    echo "Found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

Found: 1 hits

Swish->prepare
SwishResult->getMetaList
Swish 函数


Get a list of meta entries

Swish->query
SwishResult->stem
Swish 函数
PHP 手册

SwishResult->getMetaList

(No version information available, might be only in CVS)

SwishResult->getMetaList — Get a list of meta entries

说明

array SwishResult->getMetaList ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

返回值

Returns the same array as swish->getmetalist(), but uses the index file from the result handle.

Swish->query
SwishResult->stem
Swish 函数


Stems the given word

SwishResult->getMetaList
SwishResults->getParsedWords
Swish 函数
PHP 手册

SwishResult->stem

(No version information available, might be only in CVS)

SwishResult->stem — Stems the given word

说明

array SwishResult->stem ( string $word )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Stems the word based on the fuzzy mode used during indexing. Each result object is linked with its index, so the results are based on this index.

参数

word

The word to stem.

返回值

Returns array containing the stemmed word variants (usually just one).

错误／异常

Throws SwishException on error.

范例

Example #1 Basic SwishResult->stem() example

<?php

try {

    $swish = new Swish("ext/swish/tests/index.swish-e");
    $results = $swish->query("testing OR others");

    if ($result = $results->nextResult()) {
        var_dump($result->stem("testing")); //the results fully depend on the stemmer used in the index
        var_dump($result->stem("others"));
    }

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

上例的输出类似于：

array(1) {
  [0]=>
  string(4) "test"
}
array(1) {
  [0]=>
  string(5) "other"
}

SwishResult->getMetaList
SwishResults->getParsedWords
Swish 函数


Get an array of parsed words

SwishResult->stem
SwishResults->getRemovedStopwords
Swish 函数
PHP 手册

SwishResults->getParsedWords

(No version information available, might be only in CVS)

SwishResults->getParsedWords — Get an array of parsed words

说明

array SwishResults->getParsedWords ( string $index_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

indexi_name

The name of the index used to initialize Swish object.

返回值

An array of parsed words with stopwords removed. The list of parsed words may be useful for highlighting search terms in the results.

范例

Example #1 Basic SwishResults->getParsedWords() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("'some characters' and numbers");

    var_dump($results->getParsedWords("index.swish-e"));
    var_dump($results->indexes[0]['parsed_words']); //same result in a different way

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

上例的输出类似于：

array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}
array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}

SwishResult->stem
SwishResults->getRemovedStopwords
Swish 函数


Get an array of stopwords removed from the query

SwishResults->getParsedWords
SwishResults->nextResult
Swish 函数
PHP 手册

SwishResults->getRemovedStopwords

(No version information available, might be only in CVS)

SwishResults->getRemovedStopwords — Get an array of stopwords removed from the query

说明

array SwishResults->getRemovedStopwords ( string $index_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

index_name

The name of the index used to initialize Swish object.

返回值

Returns array of stopwords removed from the query.

SwishResults->getParsedWords
SwishResults->nextResult
Swish 函数


Get the next search result

SwishResults->getRemovedStopwords
SwishResults->seekResult
Swish 函数
PHP 手册

SwishResults->nextResult

(No version information available, might be only in CVS)

SwishResults->nextResult — Get the next search result

说明

object SwishResults->nextResult ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

返回值

Returns the next SwishResult object in the result set or FALSE if there are no more results available.

范例

Example #1 Basic SwishResults->nextResult() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");
    while($result = $results->nextResult()) {
        /* do something with the result object */
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

SwishResults->getRemovedStopwords
SwishResults->seekResult
Swish 函数


Set current seek pointer to the given position

SwishResults->nextResult
SwishSearch->execute
Swish 函数
PHP 手册

SwishResults->seekResult

(No version information available, might be only in CVS)

SwishResults->seekResult — Set current seek pointer to the given position

说明

int SwishResults->seekResult ( int $position )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

position

Zero-based position number. Cannot be less than zero.

返回值

Returns new position value on success.

错误／异常

Throws SwishException on error.

范例

Example #1 Basic SwishResults->seekResult() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");

    var_dump($results->seekResult(0)); //this will succeed
    var_dump($results->seekResult(100)); //this will fail

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

上例的输出类似于：

int(0)
Error: No more results

SwishResults->nextResult
SwishSearch->execute
Swish 函数


Execute the search and get the results

SwishResults->seekResult
SwishSearch->resetLimit
Swish 函数
PHP 手册

SwishSearch->execute

(No version information available, might be only in CVS)

SwishSearch->execute — Execute the search and get the results

说明

object SwishSearch->execute ([ string $query ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Searches the index file(s) based on the parameters set in the search object.

参数

query

The query string is an optional parameter, it can be also set using Swish->prepare() method. The query string is preserved between executions, so you can set it once, but execute the search multiple times.

返回值

Returns SwishResults object.

错误／异常

Throws SwishException on error.

范例

Example #1 Basic SwishSearch->execute() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("query");
    echo "First query found: ", $results->hits, " hits\n";

    $results = $search->execute("new OR query");
    echo "Second query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

First query found: 2 hits
Second query found: 12 hits

SwishResults->seekResult
SwishSearch->resetLimit
Swish 函数


Reset the search limits

SwishSearch->execute
SwishSearch->setLimit
Swish 函数
PHP 手册

SwishSearch->resetLimit

(No version information available, might be only in CVS)

SwishSearch->resetLimit — Reset the search limits

说明

void SwishSearch->resetLimit ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Reset the search limits previous set by SwishSearch->setLimit.

返回值

无返回值。

范例

Example #1 Basic SwishSearch->resetLimit() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $search->setLimit("swishdocsize", "3000", "6000"); //limit by document size, from 3000 to 6000 bytes
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $search->resetLimit();
    $results = $search->execute("time");
    echo "Third query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

First query found: 5 hits
Second query found: 2 hits
Third query found: 5 hits

SwishSearch->execute
SwishSearch->setLimit
Swish 函数


Set the search limits

SwishSearch->resetLimit
SwishSearch->setPhraseDelimiter
Swish 函数
PHP 手册

SwishSearch->setLimit

(No version information available, might be only in CVS)

SwishSearch->setLimit — Set the search limits

说明

void SwishSearch->setLimit ( string $property , string $low , string $high )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

property

Search result property name.

low

The lowest value of the property.

high

The highest value of the property.

返回值

无返回值。

错误／异常

Throws SwishException on error.

范例

Example #1 Basic SwishSearch->setLimit() example

<?php
try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

    $search->setLimit("swishdocsize", "3000", "6000"); //limit by document size, from 3000 to 6000 bytes
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

First query found: 5 hits
Hit #1 - 4261 bytes
Hit #2 - 37937 bytes
Hit #3 - 7126 bytes
Hit #4 - 15427 bytes
Hit #5 - 4768 bytes
Second query found: 2 hits
Hit #1 - 4261 bytes
Hit #2 - 4768 bytes

SwishSearch->resetLimit
SwishSearch->setPhraseDelimiter
Swish 函数


Set the phrase delimiter

SwishSearch->setLimit
SwishSearch->setSort
Swish 函数
PHP 手册

SwishSearch->setPhraseDelimiter

(No version information available, might be only in CVS)

SwishSearch->setPhraseDelimiter — Set the phrase delimiter

说明

void SwishSearch->setPhraseDelimiter ( string $delimiter )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

delimiter

Phrase delimiter character. The default delimiter is double-quotes.

返回值

无返回值。

范例

Example #1 Basic SwishSearch->setPhraseDelimiter() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute('"every time"'); //looking for "every time"
    echo "First query found: ", $results->hits, " hits\n";

    $search->setPhraseDelimiter("'");
    $results = $search->execute("'every time'"); //the same query, but using different delimiter
    echo "Second query found: ", $results->hits, " hits\n";

    $search->setPhraseDelimiter('"');
    $results = $search->execute("'every time'"); //looking for "every" and "time"
    echo "Third query found: ", $results->hits, " hits\n";

    //let's look at parsed words
    var_dump($results->getParsedWords("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

First query found: 1 hits
Second query found: 1 hits
Third query found: 2 hits
array(2) {
  [0]=>
  string(5) "every"
  [1]=>
  string(4) "time"
}

SwishSearch->setLimit
SwishSearch->setSort
Swish 函数


Set the sort order

SwishSearch->setPhraseDelimiter
SwishSearch->setStructure
Swish 函数
PHP 手册

SwishSearch->setSort

(No version information available, might be only in CVS)

SwishSearch->setSort — Set the sort order

说明

void SwishSearch->setSort ( string $sort )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

sort

Sort order of the results is a string containing name of a result property combined with sort direction ("asc" or "desc"). Examples: "swishrank desc", "swishdocpath asc", "swishtitle asc", "swishdocsize desc", "swishlastmodified desc" etc.

返回值

无返回值。

范例

Example #1 Basic SwishSearch->setSort() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

    $search->setSort("swishdocsize desc"); //sort by document size
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

First query found: 5 hits
Hit #1 - 4261 bytes
Hit #2 - 37937 bytes
Hit #3 - 7126 bytes
Hit #4 - 15427 bytes
Hit #5 - 4768 bytes
Second query found: 5 hits
Hit #1 - 37937 bytes
Hit #2 - 15427 bytes
Hit #3 - 7126 bytes
Hit #4 - 4768 bytes
Hit #5 - 4261 bytes

SwishSearch->setPhraseDelimiter
SwishSearch->setStructure
Swish 函数


Set the structure flag in the search object

SwishSearch->setSort
面向服务器的扩展
Swish 函数
PHP 手册

SwishSearch->setStructure

(No version information available, might be only in CVS)

SwishSearch->setStructure — Set the structure flag in the search object

说明

void SwishSearch->setStructure ( int $structure )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

structure

The structure flag a bitmask is used to limit search to certain parts of HTML documents (like title, meta, body etc.). Its possible values are listed below. To combine several values use bitwise OR operator, see example below.

  • Swish::IN_FILE

  • Swish::IN_TITLE

  • Swish::IN_HEAD

  • Swish::IN_BODY

  • Swish::IN_COMMENTS

  • Swish::IN_HEADER

  • Swish::IN_EMPHASIZED

  • Swish::IN_META

返回值

无返回值。

范例

Example #1 Basic SwishSearch->setStructure() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $search->setStructure(Swish::IN_TITLE|Swish::IN_HEAD); //search in title and head
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $search->setStructure(Swish::IN_ALL); //search in whole document, the default value
    $results = $search->execute("time");
    echo "Third query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

上例的输出类似于：

First query found: 5 hits
Second query found: 0 hits
Third query found: 5 hits

SwishSearch->setSort
面向服务器的扩展
Swish 函数


面向服务器的扩展

  • Apache
    • 简介
    • 安装/配置
    • 预定义常量
    • Apache 函数
  • IIS — IIS Administration
    • 简介
    • 安装/配置
    • 预定义常量
    • IIS 函数
  • NSAPI
    • 简介
    • 安装/配置
    • 预定义常量
    • NSAPI 函数
SwishSearch->setStructure
Apache
函数参考


Apache

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Apache 函数
    • apache_child_terminate — 在本次请求结束后终止 apache 进程
    • apache_get_modules — Get a list of loaded Apache modules
    • apache_get_version — Fetch Apache version
    • apache_getenv — Get an Apache subprocess_env variable
    • apache_lookup_uri — 对指定的 URI 执行部分请求并返回所有有关信息
    • apache_note — 取得或设置 apache 请求记录
    • apache_request_headers — Fetch all HTTP request headers
    • apache_reset_timeout — Reset the Apache write timer
    • apache_response_headers — Fetch all HTTP response headers
    • apache_setenv — Set an Apache subprocess_env variable
    • ascii2ebcdic — Translate string from ASCII to EBCDIC
    • ebcdic2ascii — Translate string from EBCDIC to ASCII
    • getallheaders — Fetch all HTTP request headers
    • virtual — Perform an Apache sub-request
面向服务器的扩展
简介
面向服务器的扩展


简介

These functions are only available when running PHP as an Apache module.

Note: As of PHP 4.3.2, PATH_TRANSLATED is no longer set implicitly under the Apache 2 SAPI in contrast to the situation in Apache 1, where it's set to the same value as the SCRIPT_FILENAME server variable when it's not populated by Apache. This change was made to comply with the CGI specification that PATH_TRANSLATED should only exist if PATH_INFO is defined. Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.

Apache
安装/配置
Apache


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Apache


安装

For PHP installation on Apache see the installation chapter.

需求
运行时配置
安装/配置


运行时配置

Apache 的 PHP 模块的行为受 php.ini 的设置影响。在 php.ini 中的设置可以被服务器配置文件或本地的 .htaccess 文件中的 php_flag 设置所覆盖。

Example #1 用 .htaccess 禁用一个目录的 PHP 解析

php_flag engine off

Apache 配置选项
名称 | 默认值 | 可修改范围 | 更新记录
engine | "1" | PHP_INI_ALL | 自 PHP 4.0.5 起可用
child_terminate | "0" | PHP_INI_ALL | 自 PHP 4.0.5 起可用
last_modified | "0" | PHP_INI_ALL | 自 PHP 4.0.5 起可用
xbithack | "0" | PHP_INI_ALL | 自 PHP 4.0.5 起可用

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

engine boolean

打开或关闭 PHP 解析。本指令仅在使用 PHP 的 Apache 模块版本时才有用。可以基于目录或者虚拟主机来打开或者关闭 PHP。将 engine off 放到 httpd.conf 文件中适当的位置就可以激活或禁用 PHP。

child_terminate boolean

指定 PHP 脚本在请求结束后是否可以要求终止子进程。参见 apache_child_terminate()。

last_modified boolean

在本次请求中发送一个头信息 Last-Modified:，显示 PHP 脚本最后被修改的日期。

xbithack boolean

不管文件结尾是什么，将文件作为 PHP 以可执行位组来解析。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Apache 函数
Apache


Apache 函数

Table of Contents

  • apache_child_terminate — 在本次请求结束后终止 apache 进程
  • apache_get_modules — Get a list of loaded Apache modules
  • apache_get_version — Fetch Apache version
  • apache_getenv — Get an Apache subprocess_env variable
  • apache_lookup_uri — 对指定的 URI 执行部分请求并返回所有有关信息
  • apache_note — 取得或设置 apache 请求记录
  • apache_request_headers — Fetch all HTTP request headers
  • apache_reset_timeout — Reset the Apache write timer
  • apache_response_headers — Fetch all HTTP response headers
  • apache_setenv — Set an Apache subprocess_env variable
  • ascii2ebcdic — Translate string from ASCII to EBCDIC
  • ebcdic2ascii — Translate string from EBCDIC to ASCII
  • getallheaders — Fetch all HTTP request headers
  • virtual — Perform an Apache sub-request
预定义常量
apache_child_terminate
Apache


在本次请求结束后终止 apache 进程

Apache 函数
apache_get_modules
Apache 函数
PHP 手册

apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate — 在本次请求结束后终止 apache 进程

说明

bool apache_child_terminate ( void )

apache_child_terminate() 将把运行当前 PHP 请求的 Apache 进程注册为终止状态，一旦结束 PHP 代码的运行此进程将终止。可以用在占用大量内存的脚本后面来终止该进程，因为通常内存只在内部释放而不会还给操作系统。

返回值

如果 PHP 以 Apache 1 模块方式运行，且 Apache 的版本是非多线程的，以及激活了 PHP 指令 child_terminate，则返回 TRUE。如果不满足上述条件则返回 FALSE 并生成一条 E_WARNING 级的错误信息。

注释

Note: 本函数未在 Windows 平台下实现。

参见

  • exit() - Output a message and terminate the current script

Apache 函数
apache_get_modules
Apache 函数


Get a list of loaded Apache modules

apache_child_terminate
apache_get_version
Apache 函数
PHP 手册

apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modules — Get a list of loaded Apache modules

说明

array apache_get_modules ( void )

Get a list of loaded Apache modules.

返回值

An array of loaded Apache modules.

更新日志

版本 | 说明
5.0.0 | Became available when using Apache 1, or the PHP Apache 2 filter API. Before this time, it was only available when using the Apache 2 handler API.

范例

Example #1 apache_get_modules() example

<?php
print_r(apache_get_modules());
?>

上例的输出类似于：

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)

apache_child_terminate
apache_get_version
Apache 函数


Fetch Apache version

apache_get_modules
apache_getenv
Apache 函数
PHP 手册

apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_version — Fetch Apache version

说明

string apache_get_version ( void )

Fetch the Apache version.

返回值

Returns the Apache version on success, or FALSE on failure.

更新日志

版本 | 说明
4.3.4 | Became available with Apache 1.
5.0.0 | Became available with the Apache 2 filter API.

范例

Example #1 apache_get_version() example

<?php
$version = apache_get_version();
echo "$version\n";
?>

上例的输出类似于：

Apache/1.3.29 (Unix) PHP/4.3.4

参见

  • phpinfo() - Outputs lots of PHP information

apache_get_modules
apache_getenv
Apache 函数


Get an Apache subprocess_env variable

apache_get_version
apache_lookup_uri
Apache 函数
PHP 手册

apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenv — Get an Apache subprocess_env variable

说明

string apache_getenv ( string $variable [, bool $walk_to_top ] )

Get an Apache environment variable as specified by variable .

This function requires Apache 2 otherwise it's undefined.

参数

variable

The Apache environment variable

walk_to_top

Whether to get the top-level variable available to all Apache layers.

返回值

The value of the Apache environment variable on success, or FALSE on failure

范例

Example #1 apache_getenv() example

The example above shows how to retrieve the value of the Apache environment variable SERVER_ADDR.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

上例的输出类似于：

42.24.42.240

参见

  • apache_setenv() - Set an Apache subprocess_env variable
  • getenv() - Gets the value of an environment variable
  • Superglobals

apache_get_version
apache_lookup_uri
Apache 函数


对指定的 URI 执行部分请求并返回所有有关信息

apache_getenv
apache_note
Apache 函数
PHP 手册

apache_lookup_uri

(PHP 4, PHP 5)

apache_lookup_uri — 对指定的 URI 执行部分请求并返回所有有关信息

说明

object apache_lookup_uri ( string $filename )

本函数对一个 URL 执行部分请求。取得所有有关给定资源的重要信息后就停手。

此函数仅在 PHP 作为 Apache 模块安装时才可使用。

参数

filename

被请求的文件名（URI）。

返回值

一个有关 URI 信息的 object。此 object 的属性有：

  • status
  • the_request
  • status_line
  • method
  • content_type
  • handler
  • uri
  • filename
  • path_info
  • args
  • boundary
  • no_cache
  • no_local_copy
  • allowed
  • send_bodyct
  • bytes_sent
  • byterange
  • clength
  • unparsed_uri
  • mtime
  • request_time

范例

Example #1 apache_lookup_uri() 例子

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'file exists!';
}
?>

上例的输出类似于：

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
file exists!

apache_getenv
apache_note
Apache 函数


取得或设置 apache 请求记录

apache_lookup_uri
apache_request_headers
Apache 函数
PHP 手册

apache_note

(PHP 4, PHP 5)

apache_note — 取得或设置 apache 请求记录

说明

string apache_note ( string $note_name [, string $note_value ] )

apache_note() 是用于 Apache 的函数，可以取得或者设置请求 notes 表中的值。

参数

note_name

note 名。

note_value

note 值。

返回值

如果只有一个参数调用，则返回记录 note_name 的当前值。如果用两个参数调用，则将记录 note_name 的值设为 note_value 并返回记录 note_name 的前一个值。如果未能获取记录，则返回 FALSE。

apache_lookup_uri
apache_request_headers
Apache 函数


Fetch all HTTP request headers

apache_note
apache_reset_timeout
Apache 函数
PHP 手册

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headers — Fetch all HTTP request headers

说明

array apache_request_headers ( void )

Fetches all HTTP request headers from the current request.

此函数仅在 PHP 作为 Apache 模块安装时才可使用。

返回值

An associative array of all the HTTP headers in the current request, or FALSE on failure.

范例

Example #1 apache_request_headers() example

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

上例的输出类似于：

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

注释

Note:

    Prior to PHP 4.3.0, apache_request_headers() was
    called getallheaders().  After PHP 4.3.0,
    getallheaders() is an alias for
    apache_request_headers().

Note: You can also get at the value of the common CGI variables by reading them from the environment, which works whether or not you are using PHP as an Apache module. Use phpinfo() to see a list of all of the available environment variables.

Note: 自 PHP 4.3.3 起也可以在 Netscape/iPlanet/SunONE 服务器的 NSAPI server module 中使用本函数。

参见

  • apache_response_headers() - Fetch all HTTP response headers

apache_note
apache_reset_timeout
Apache 函数


Reset the Apache write timer

apache_request_headers
apache_response_headers
Apache 函数
PHP 手册

apache_reset_timeout

(PHP 5 >= 5.1.0)

apache_reset_timeout — Reset the Apache write timer

说明

bool apache_reset_timeout ( void )

apache_reset_timeout() resets the Apache write timer, which defaults to 300 seconds. With set_time_limit(0); ignore_user_abort(true) and periodic apache_reset_timeout() calls, Apache can theoretically run forever.

This function requires Apache 1.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

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

参见

  • set_time_limit() - Limits the maximum execution time
  • ignore_user_abort() - Set whether a client disconnect should abort script execution

apache_request_headers
apache_response_headers
Apache 函数


Fetch all HTTP response headers

apache_reset_timeout
apache_setenv
Apache 函数
PHP 手册

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headers — Fetch all HTTP response headers

说明

array apache_response_headers ( void )

Fetch all HTTP response headers.

返回值

An array of all Apache response headers on success, or FALSE on failure.

范例

Example #1 apache_response_headers() example

<?php
print_r(apache_response_headers());
?>

上例的输出类似于：

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

注释

Note: 自 PHP 4.3.3 起也可以在 Netscape/iPlanet/SunONE 服务器的 NSAPI server module 中使用本函数。

参见

  • apache_request_headers() - Fetch all HTTP request headers
  • headers_sent() - Checks if or where headers have been sent
  • headers_list() - Returns a list of response headers sent (or ready to send)

apache_reset_timeout
apache_setenv
Apache 函数


Set an Apache subprocess_env variable

apache_response_headers
ascii2ebcdic
Apache 函数
PHP 手册

apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenv — Set an Apache subprocess_env variable

说明

bool apache_setenv ( string $variable , string $value [, bool $walk_to_top=false ] )

apache_setenv() sets the value of the Apache environment variable specified by variable .

Note: When setting an Apache environment variable, the corresponding $_SERVER variable is not changed.

参数

variable

The environment variable that's being set.

value

The new variable value.

walk_to_top

Whether to set the top-level variable available to all Apache layers.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Setting an Apache environment variable using apache_setenv()

<?php
apache_setenv("EXAMPLE_VAR", "Example Value");
?>

注释

Note: apache_setenv() can be paired up with apache_getenv() across separate pages or for setting variables to pass to Server Side Includes (.shtml) that have been included in PHP scripts.

参见

  • apache_getenv() - Get an Apache subprocess_env variable

apache_response_headers
ascii2ebcdic
Apache 函数


Translate string from ASCII to EBCDIC

apache_setenv
ebcdic2ascii
Apache 函数
PHP 手册

ascii2ebcdic

(PHP 3)

ascii2ebcdic — Translate string from ASCII to EBCDIC

说明

int ascii2ebcdic ( string $ascii_str )

ascii2ebcdic() is an Apache-specific function which is available only on EBCDIC based operating systems (OS/390, BS2000). It translates the ASCII encoded string ascii_str to its equivalent EBCDIC representation (binary safe), and returns the result.

参数

ascii_str

The ASCII string that will be translated.

返回值

The EBCDIC representation of an ASCII string.

参见

  • ebcdic2ascii() - Translate string from EBCDIC to ASCII

apache_setenv
ebcdic2ascii
Apache 函数


Translate string from EBCDIC to ASCII

ascii2ebcdic
getallheaders
Apache 函数
PHP 手册

ebcdic2ascii

(PHP 3)

ebcdic2ascii — Translate string from EBCDIC to ASCII

说明

int ebcdic2ascii ( string $ebcdic_str )

ebcdic2ascii() is an Apache-specific function which is available only on EBCDIC based operating systems (OS/390, BS2000). It translates the EBCDIC encoded string ebcdic_str to its equivalent ASCII representation (binary safe), and returns the result.

参数

ebcdic_str

The EBCDIC string that will be translated.

返回值

The ASCII representation of an EBCDIC string.

参见

  • ascii2ebcdic() - Translate string from ASCII to EBCDIC

ascii2ebcdic
getallheaders
Apache 函数


Fetch all HTTP request headers

ebcdic2ascii
virtual
Apache 函数
PHP 手册

getallheaders

(PHP 4, PHP 5)

getallheaders — Fetch all HTTP request headers

说明

array getallheaders ( void )

Fetches all HTTP headers from the current request.

This function is an alias for apache_request_headers(). Please read the apache_request_headers() documentation for more information on how this function works.

此函数仅在 PHP 作为 Apache 模块安装时才可使用。

返回值

An associative array of all the HTTP headers in the current request, or FALSE on failure.

更新日志

版本 | 说明
4.3.0 | Became an alias for apache_request_headers(). Essentially, it was renamed. This is because this function only works with Apache.

范例

Example #1 getallheaders() example

<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

?>

注释

Note: 自 PHP 4.3.3 起也可以在 Netscape/iPlanet/SunONE 服务器的 NSAPI server module 中使用本函数。

参见

  • apache_response_headers() - Fetch all HTTP response headers

ebcdic2ascii
virtual
Apache 函数


Perform an Apache sub-request

getallheaders
IIS
Apache 函数
PHP 手册

virtual

(PHP 4, PHP 5)

virtual — Perform an Apache sub-request

说明

bool virtual ( string $filename )

virtual() is an Apache-specific function which is similar to <!--#include virtual...--> in mod_include. It performs an Apache sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you would parse through Apache. Note that for a CGI script, the script must generate valid CGI headers. At the minimum that means it must generate a Content-type header.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

此函数仅在 PHP 作为 Apache 模块安装时才可使用。

参数

filename

The file that the virtual command will be performed on.

返回值

Performs the virtual command on success, or returns FALSE on failure.

更新日志

版本 | 说明
4.0.6 | This function may be used on PHP files. However, it is typically better to use include() or require() for PHP files.

范例

See apache_note() for an example.

注释

Warning

The query string can be passed to the included file but $_GET is copied from the parent script and only $_SERVER['QUERY_STRING'] is filled with the passed query string. The query string may only be passed when using Apache 2. The requested file will not be listed in the Apache access log.

Note: Environment variables set in the requested file are not visible to the calling script.

Note: 自 PHP 4.3.3 起也可以在 Netscape/iPlanet/SunONE 服务器的 NSAPI server module 中使用本函数。

参见

  • apache_note() - 取得或设置 apache 请求记录

getallheaders
IIS
Apache 函数


IIS Administration

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • IIS 函数
    • iis_add_server — Creates a new virtual web server
    • iis_get_dir_security — Gets Directory Security
    • iis_get_script_map — Gets script mapping on a virtual directory for a specific extension
    • iis_get_server_by_comment — Return the instance number associated with the Comment
    • iis_get_server_by_path — Return the instance number associated with the Path
    • iis_get_server_rights — Gets server rights
    • iis_get_service_state — Returns the state for the service defined by ServiceId
    • iis_remove_server — Removes the virtual web server indicated by ServerInstance
    • iis_set_app_settings — Creates application scope for a virtual directory
    • iis_set_dir_security — Sets Directory Security
    • iis_set_script_map — Sets script mapping on a virtual directory
    • iis_set_server_rights — Sets server rights
    • iis_start_server — Starts the virtual web server
    • iis_start_service — Starts the service defined by ServiceId
    • iis_stop_server — Stops the virtual web server
    • iis_stop_service — Stops the service defined by ServiceId
virtual
简介
面向服务器的扩展


简介

本 » PECL 扩展未绑定于 PHP 中。 This extension is available for Win32 only. It provides functions to administrate Microsoft Internet Information Server (IIS). The extension includes function to create web sites and virtual directories as well as configuring security and script mapping. These functions have been added in PHP 4.

In order to use these functions you must enable the php_iisfunc.dll DLL inside of php.ini. 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

IIS
安装/配置
IIS


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
IIS


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

IIS_READ (integer)
IIS_WRITE (integer)
IIS_EXECUTE (integer)
IIS_SCRIPT (integer)
IIS_ANONYMOUS (integer)
IIS_BASIC (integer)
IIS_NTLM (integer)
IIS_STARTING (integer)
IIS_STOPPED (integer)
IIS_PAUSED (integer)
IIS_RUNNING (integer)
资源类型
IIS 函数
IIS


IIS 函数

Table of Contents

  • iis_add_server — Creates a new virtual web server
  • iis_get_dir_security — Gets Directory Security
  • iis_get_script_map — Gets script mapping on a virtual directory for a specific extension
  • iis_get_server_by_comment — Return the instance number associated with the Comment
  • iis_get_server_by_path — Return the instance number associated with the Path
  • iis_get_server_rights — Gets server rights
  • iis_get_service_state — Returns the state for the service defined by ServiceId
  • iis_remove_server — Removes the virtual web server indicated by ServerInstance
  • iis_set_app_settings — Creates application scope for a virtual directory
  • iis_set_dir_security — Sets Directory Security
  • iis_set_script_map — Sets script mapping on a virtual directory
  • iis_set_server_rights — Sets server rights
  • iis_start_server — Starts the virtual web server
  • iis_start_service — Starts the service defined by ServiceId
  • iis_stop_server — Stops the virtual web server
  • iis_stop_service — Stops the service defined by ServiceId
预定义常量
iis_add_server
IIS


Creates a new virtual web server

IIS 函数
iis_get_dir_security
IIS 函数
PHP 手册

iis_add_server

(PECL iisfunc CVS)

iis_add_server — Creates a new virtual web server

说明

int iis_add_server ( string $path , string $comment , string $server_ip , int $port , string $host_name , int $rights , int $start_server )
Warning

本函数暂无文档，仅有参数列表。

IIS 函数
iis_get_dir_security
IIS 函数


Gets Directory Security

iis_add_server
iis_get_script_map
IIS 函数
PHP 手册

iis_get_dir_security

(PECL iisfunc CVS)

iis_get_dir_security — Gets Directory Security

说明

int iis_get_dir_security ( int $server_instance , string $virtual_path )
Warning

本函数暂无文档，仅有参数列表。

iis_add_server
iis_get_script_map
IIS 函数


Gets script mapping on a virtual directory for a specific extension

iis_get_dir_security
iis_get_server_by_comment
IIS 函数
PHP 手册

iis_get_script_map

(PECL iisfunc CVS)

iis_get_script_map — Gets script mapping on a virtual directory for a specific extension

说明

string iis_get_script_map ( int $server_instance , string $virtual_path , string $script_extension )
Warning

本函数暂无文档，仅有参数列表。

iis_get_dir_security
iis_get_server_by_comment
IIS 函数


Return the instance number associated with the Comment

iis_get_script_map
iis_get_server_by_path
IIS 函数
PHP 手册

iis_get_server_by_comment

(PECL iisfunc CVS)

iis_get_server_by_comment — Return the instance number associated with the Comment

说明

int iis_get_server_by_comment ( string $comment )
Warning

本函数暂无文档，仅有参数列表。

iis_get_script_map
iis_get_server_by_path
IIS 函数


Return the instance number associated with the Path

iis_get_server_by_comment
iis_get_server_rights
IIS 函数
PHP 手册

iis_get_server_by_path

(PECL iisfunc CVS)

iis_get_server_by_path — Return the instance number associated with the Path

说明

int iis_get_server_by_path ( string $path )

Each virtual server in IIS is associated with an instance number. iis_get_server_by_path() finds the instance number from the actual path to the root directory.

参数

path

The path to the root directory

返回值

Returns the server instance number.

iis_get_server_by_comment
iis_get_server_rights
IIS 函数


Gets server rights

iis_get_server_by_path
iis_get_service_state
IIS 函数
PHP 手册

iis_get_server_rights

(PECL iisfunc CVS)

iis_get_server_rights — Gets server rights

说明

int iis_get_server_rights ( int $server_instance , string $virtual_path )
Warning

本函数暂无文档，仅有参数列表。

iis_get_server_by_path
iis_get_service_state
IIS 函数


Returns the state for the service defined by ServiceId

iis_get_server_rights
iis_remove_server
IIS 函数
PHP 手册

iis_get_service_state

(PECL iisfunc CVS)

iis_get_service_state — Returns the state for the service defined by ServiceId

说明

int iis_get_service_state ( string $service_id )
Warning

本函数暂无文档，仅有参数列表。

iis_get_server_rights
iis_remove_server
IIS 函数


Removes the virtual web server indicated by ServerInstance

iis_get_service_state
iis_set_app_settings
IIS 函数
PHP 手册

iis_remove_server

(PECL iisfunc CVS)

iis_remove_server — Removes the virtual web server indicated by ServerInstance

说明

int iis_remove_server ( int $server_instance )
Warning

本函数暂无文档，仅有参数列表。

iis_get_service_state
iis_set_app_settings
IIS 函数


Creates application scope for a virtual directory

iis_remove_server
iis_set_dir_security
IIS 函数
PHP 手册

iis_set_app_settings

(PECL iisfunc CVS)

iis_set_app_settings — Creates application scope for a virtual directory

说明

int iis_set_app_settings ( int $server_instance , string $virtual_path , string $application_scope )
Warning

本函数暂无文档，仅有参数列表。

iis_remove_server
iis_set_dir_security
IIS 函数


Sets Directory Security

iis_set_app_settings
iis_set_script_map
IIS 函数
PHP 手册

iis_set_dir_security

(PECL iisfunc CVS)

iis_set_dir_security — Sets Directory Security

说明

int iis_set_dir_security ( int $server_instance , string $virtual_path , int $directory_flags )
Warning

本函数暂无文档，仅有参数列表。

iis_set_app_settings
iis_set_script_map
IIS 函数


Sets script mapping on a virtual directory

iis_set_dir_security
iis_set_server_rights
IIS 函数
PHP 手册

iis_set_script_map

(PECL iisfunc CVS)

iis_set_script_map — Sets script mapping on a virtual directory

说明

int iis_set_script_map ( int $server_instance , string $virtual_path , string $script_extension , string $engine_path , int $allow_scripting )
Warning

本函数暂无文档，仅有参数列表。

iis_set_dir_security
iis_set_server_rights
IIS 函数


Sets server rights

iis_set_script_map
iis_start_server
IIS 函数
PHP 手册

iis_set_server_rights

(PECL iisfunc CVS)

iis_set_server_rights — Sets server rights

说明

int iis_set_server_rights ( int $server_instance , string $virtual_path , int $directory_flags )
Warning

本函数暂无文档，仅有参数列表。

iis_set_script_map
iis_start_server
IIS 函数


Starts the virtual web server

iis_set_server_rights
iis_start_service
IIS 函数
PHP 手册

iis_start_server

(PECL iisfunc CVS)

iis_start_server — Starts the virtual web server

说明

int iis_start_server ( int $server_instance )
Warning

本函数暂无文档，仅有参数列表。

iis_set_server_rights
iis_start_service
IIS 函数


Starts the service defined by ServiceId

iis_start_server
iis_stop_server
IIS 函数
PHP 手册

iis_start_service

(PECL iisfunc CVS)

iis_start_service — Starts the service defined by ServiceId

说明

int iis_start_service ( string $service_id )
Warning

本函数暂无文档，仅有参数列表。

iis_start_server
iis_stop_server
IIS 函数


Stops the virtual web server

iis_start_service
iis_stop_service
IIS 函数
PHP 手册

iis_stop_server

(PECL iisfunc CVS)

iis_stop_server — Stops the virtual web server

说明

int iis_stop_server ( int $server_instance )
Warning

本函数暂无文档，仅有参数列表。

iis_start_service
iis_stop_service
IIS 函数


Stops the service defined by ServiceId

iis_stop_server
NSAPI
IIS 函数
PHP 手册

iis_stop_service

(PECL iisfunc CVS)

iis_stop_service — Stops the service defined by ServiceId

说明

int iis_stop_service ( string $service_id )
Warning

本函数暂无文档，仅有参数列表。

iis_stop_server
NSAPI
IIS 函数


NSAPI

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • NSAPI 函数
    • nsapi_request_headers — Fetch all HTTP request headers
    • nsapi_response_headers — Fetch all HTTP response headers
    • nsapi_virtual — Perform an NSAPI sub-request
iis_stop_service
简介
面向服务器的扩展


简介

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/Sun webservers.

NSAPI
安装/配置
NSAPI


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
NSAPI


安装

For PHP installation on Netscape/iPlanet/Sun webservers see the NSAPI section (UNIX, Windows) in the installation chapter.

需求
运行时配置
安装/配置


运行时配置

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

NSAPI configuration options
Name | Default | Changeable | Changelog
nsapi.read_timeout | "60" | PHP_INI_ALL | Available since PHP 4.3.3.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

nsapi.read_timeout integer

Sets the time in seconds the plugin is waiting for POST data from the client.

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
NSAPI 函数
NSAPI


NSAPI 函数

参见

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Apache functions implemented by NSAPI
Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Table of Contents

  • nsapi_request_headers — Fetch all HTTP request headers
  • nsapi_response_headers — Fetch all HTTP response headers
  • nsapi_virtual — Perform an NSAPI sub-request
预定义常量
nsapi_request_headers
NSAPI


Fetch all HTTP request headers

NSAPI 函数
nsapi_response_headers
NSAPI 函数
PHP 手册

nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headers — Fetch all HTTP request headers

说明

array nsapi_request_headers ( void )

nsapi_request_headers() gets all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Note: Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Note: You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

返回值

Returns an associative array with all the HTTP headers.

范例

Example #1 nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
  echo "$header: $value <br />\n";
}
?>

NSAPI 函数
nsapi_response_headers
NSAPI 函数


Fetch all HTTP response headers

nsapi_request_headers
nsapi_virtual
NSAPI 函数
PHP 手册

nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers — Fetch all HTTP response headers

说明

array nsapi_response_headers ( void )

Gets all the NSAPI response headers.

返回值

Returns an associative array with all the NSAPI response headers.

参见

  • nsapi_request_headers() - Fetch all HTTP request headers
  • headers_sent() - Checks if or where headers have been sent

nsapi_request_headers
nsapi_virtual
NSAPI 函数


Perform an NSAPI sub-request

nsapi_response_headers
Session扩展
NSAPI 函数
PHP 手册

nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtual — Perform an NSAPI sub-request

说明

bool nsapi_virtual ( string $uri )

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include() or require().

Note: This function depends on a undocumented feature of the Netscape/iPlanet/Sun webservers. Use phpinfo() to determine if it is available. In the Unix environment it should always work, in Windows it depends on the name of a ns-httpdXX.dll file.
Read the note about subrequests in the NSAPI section (UNIX, Windows) if you experience this problem.

参数

uri

The URI of the script.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

nsapi_response_headers
Session扩展
NSAPI 函数


Session扩展

  • Msession — Mohawk Software Session Handler Functions
    • 简介
    • 安装/配置
    • 预定义常量
    • Msession 函数
  • Sessions — Session Handling
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Sessions and security
    • Session 函数
  • Session PgSQL — PostgreSQL Session Save Handler
    • 简介
    • 安装/配置
    • Table definitions
    • 预定义常量
    • Session PgSQL 函数
nsapi_virtual
Msession
函数参考


Mohawk Software Session Handler Functions

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Msession 函数
    • msession_connect — Connect to msession server
    • msession_count — Get session count
    • msession_create — Create a session
    • msession_destroy — Destroy a session
    • msession_disconnect — Close connection to msession server
    • msession_find — Find all sessions with name and value
    • msession_get_array — Get array of msession variables
    • msession_get_data — Get data session unstructured data
    • msession_get — Get value from session
    • msession_inc — Increment value in session
    • msession_list — List all sessions
    • msession_listvar — List sessions with variable
    • msession_lock — Lock a session
    • msession_plugin — Call an escape function within the msession personality plugin
    • msession_randstr — Get random string
    • msession_set_array — Set msession variables from an array
    • msession_set_data — Set data session unstructured data
    • msession_set — Set value in session
    • msession_timeout — Set/get session timeout
    • msession_uniq — Get unique id
    • msession_unlock — Unlock a session
Session扩展
简介
Session扩展


简介

msession is an interface to a high speed session daemon which can run either locally or remotely. It is designed to provide consistent session management for a PHP web farm. More Information about msession and the session server software itself can be found at » http://www.mohawksoft.org/?q=node/8.

Note: 本扩展模块在 Windows 平台下不可用。

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.3.

Msession
安装/配置
Msession


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Msession


安装

To enable Msession support configure PHP --with-msession[=DIR], where DIR is the Msession install directory.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Msession 函数
Msession


Msession 函数

Table of Contents

  • msession_connect — Connect to msession server
  • msession_count — Get session count
  • msession_create — Create a session
  • msession_destroy — Destroy a session
  • msession_disconnect — Close connection to msession server
  • msession_find — Find all sessions with name and value
  • msession_get_array — Get array of msession variables
  • msession_get_data — Get data session unstructured data
  • msession_get — Get value from session
  • msession_inc — Increment value in session
  • msession_list — List all sessions
  • msession_listvar — List sessions with variable
  • msession_lock — Lock a session
  • msession_plugin — Call an escape function within the msession personality plugin
  • msession_randstr — Get random string
  • msession_set_array — Set msession variables from an array
  • msession_set_data — Set data session unstructured data
  • msession_set — Set value in session
  • msession_timeout — Set/get session timeout
  • msession_uniq — Get unique id
  • msession_unlock — Unlock a session
预定义常量
msession_connect
Msession


Connect to msession server

Msession 函数
msession_count
Msession 函数
PHP 手册

msession_connect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_connect — Connect to msession server

说明

bool msession_connect ( string $host , string $port )
Warning

本函数暂无文档，仅有参数列表。

Msession 函数
msession_count
Msession 函数


Get session count

msession_connect
msession_create
Msession 函数
PHP 手册

msession_count

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_count — Get session count

说明

int msession_count ( void )
Warning

本函数暂无文档，仅有参数列表。

msession_connect
msession_create
Msession 函数


Create a session

msession_count
msession_destroy
Msession 函数
PHP 手册

msession_create

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_create — Create a session

说明

bool msession_create ( string $session [, string $classname [, string $data ]] )
Warning

本函数暂无文档，仅有参数列表。

msession_count
msession_destroy
Msession 函数


Destroy a session

msession_create
msession_disconnect
Msession 函数
PHP 手册

msession_destroy

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_destroy — Destroy a session

说明

bool msession_destroy ( string $name )
Warning

本函数暂无文档，仅有参数列表。

msession_create
msession_disconnect
Msession 函数


Close connection to msession server

msession_destroy
msession_find
Msession 函数
PHP 手册

msession_disconnect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_disconnect — Close connection to msession server

说明

void msession_disconnect ( void )
Warning

本函数暂无文档，仅有参数列表。

msession_destroy
msession_find
Msession 函数


Find all sessions with name and value

msession_disconnect
msession_get_array
Msession 函数
PHP 手册

msession_find

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_find — Find all sessions with name and value

说明

array msession_find ( string $name , string $value )
Warning

本函数暂无文档，仅有参数列表。

msession_disconnect
msession_get_array
Msession 函数


Get array of msession variables

msession_find
msession_get_data
Msession 函数
PHP 手册

msession_get_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_array — Get array of msession variables

说明

array msession_get_array ( string $session )
Warning

本函数暂无文档，仅有参数列表。

msession_find
msession_get_data
Msession 函数


Get data session unstructured data

msession_get_array
msession_get
Msession 函数
PHP 手册

msession_get_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_data — Get data session unstructured data

说明

string msession_get_data ( string $session )
Warning

本函数暂无文档，仅有参数列表。

msession_get_array
msession_get
Msession 函数


Get value from session

msession_get_data
msession_inc
Msession 函数
PHP 手册

msession_get

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get — Get value from session

说明

string msession_get ( string $session , string $name , string $value )
Warning

本函数暂无文档，仅有参数列表。

msession_get_data
msession_inc
Msession 函数


Increment value in session

msession_get
msession_list
Msession 函数
PHP 手册

msession_inc

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_inc — Increment value in session

说明

string msession_inc ( string $session , string $name )
Warning

本函数暂无文档，仅有参数列表。

msession_get
msession_list
Msession 函数


List all sessions

msession_inc
msession_listvar
Msession 函数
PHP 手册

msession_list

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_list — List all sessions

说明

array msession_list ( void )
Warning

本函数暂无文档，仅有参数列表。

msession_inc
msession_listvar
Msession 函数


List sessions with variable

msession_list
msession_lock
Msession 函数
PHP 手册

msession_listvar

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_listvar — List sessions with variable

说明

array msession_listvar ( string $name )

Used for searching sessions with common attributes.

参数

name

The name being searched.

返回值

Returns an associative array of value/session for all sessions with a variable named name .

msession_list
msession_lock
Msession 函数


Lock a session

msession_listvar
msession_plugin
Msession 函数
PHP 手册

msession_lock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_lock — Lock a session

说明

int msession_lock ( string $name )
Warning

本函数暂无文档，仅有参数列表。

msession_listvar
msession_plugin
Msession 函数


Call an escape function within the msession personality plugin

msession_lock
msession_randstr
Msession 函数
PHP 手册

msession_plugin

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_plugin — Call an escape function within the msession personality plugin

说明

string msession_plugin ( string $session , string $val [, string $param ] )
Warning

本函数暂无文档，仅有参数列表。

msession_lock
msession_randstr
Msession 函数


Get random string

msession_plugin
msession_set_array
Msession 函数
PHP 手册

msession_randstr

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_randstr — Get random string

说明

string msession_randstr ( int $param )
Warning

本函数暂无文档，仅有参数列表。

msession_plugin
msession_set_array
Msession 函数


Set msession variables from an array

msession_randstr
msession_set_data
Msession 函数
PHP 手册

msession_set_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_array — Set msession variables from an array

说明

void msession_set_array ( string $session , array $tuples )
Warning

本函数暂无文档，仅有参数列表。

msession_randstr
msession_set_data
Msession 函数


Set data session unstructured data

msession_set_array
msession_set
Msession 函数
PHP 手册

msession_set_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_data — Set data session unstructured data

说明

bool msession_set_data ( string $session , string $value )
Warning

本函数暂无文档，仅有参数列表。

msession_set_array
msession_set
Msession 函数


Set value in session

msession_set_data
msession_timeout
Msession 函数
PHP 手册

msession_set

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set — Set value in session

说明

bool msession_set ( string $session , string $name , string $value )
Warning

本函数暂无文档，仅有参数列表。

msession_set_data
msession_timeout
Msession 函数


Set/get session timeout

msession_set
msession_uniq
Msession 函数
PHP 手册

msession_timeout

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_timeout — Set/get session timeout

说明

int msession_timeout ( string $session [, int $param ] )
Warning

本函数暂无文档，仅有参数列表。

msession_set
msession_uniq
Msession 函数


Get unique id

msession_timeout
msession_unlock
Msession 函数
PHP 手册

msession_uniq

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_uniq — Get unique id

说明

string msession_uniq ( int $param [, string $classname [, string $data ]] )
Warning

本函数暂无文档，仅有参数列表。

msession_timeout
msession_unlock
Msession 函数


Unlock a session

msession_uniq
Sessions
Msession 函数
PHP 手册

msession_unlock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_unlock — Unlock a session

说明

int msession_unlock ( string $session , int $key )
Warning

本函数暂无文档，仅有参数列表。

msession_uniq
Sessions
Msession 函数


Session Handling

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Registering a variable with $_SESSION.
    • Passing the Session ID
    • Custom Session Handlers
  • Sessions and security
  • Session 函数
    • session_cache_expire — Return current cache expire
    • session_cache_limiter — Get and/or set the current cache limiter
    • session_commit — session_write_close 的别名
    • session_decode — Decodes session data from a string
    • session_destroy — Destroys all data registered to a session
    • session_encode — 将当前会话数据编码为一个字符串
    • session_get_cookie_params — Get the session cookie parameters
    • session_id — Get and/or set the current session id
    • session_is_registered — Find out whether a global variable is registered in a session
    • session_module_name — Get and/or set the current session module
    • session_name — Get and/or set the current session name
    • session_regenerate_id — Update the current session id with a newly generated one
    • session_register — Register one or more global variables with the current session
    • session_save_path — Get and/or set the current session save path
    • session_set_cookie_params — Set the session cookie parameters
    • session_set_save_handler — Sets user-level session storage functions
    • session_start — Initialize session data
    • session_unregister — Unregister a global variable from the current session
    • session_unset — Free all session variables
    • session_write_close — Write session data and end session
msession_unlock
简介
Session扩展


简介

Session support in PHP consists of a way to preserve certain data across subsequent accesses. This enables you to build more customized applications and increase the appeal of your web site.

A visitor accessing your web site is assigned a unique id, the so-called session id. This is either stored in a cookie on the user side or is propagated in the URL.

The session support allows you to register arbitrary numbers of variables to be preserved across requests. When a visitor accesses your site, PHP will check automatically (if session.auto_start is set to 1) or on your request (explicitly through session_start() or implicitly through session_register()) whether a specific session id has been sent with the request. If this is the case, the prior saved environment is recreated.

Caution

If you turn on session.auto_start then the only way to put objects into your sessions is to load its class definition using auto_prepend_file in which you load the class definition else you will have to serialize your object and unserialize it afterwards.

All registered variables are serialized after the request finishes. Registered variables which are undefined are marked as being not defined. On subsequent accesses, these are not defined by the session module unless the user defines them later.

Warning

Some types of data can not be serialized thus stored in sessions. It includes resource variables or objects with circular references (i.e. objects which passes a reference to itself to another object).

Note: Session handling was added in PHP 4.0.0.

Note: Please note when working with sessions that a record of a session is not created until a variable has been registered using the session_register() function or by adding a new key to the $_SESSION superglobal array. This holds true regardless of if a session has been started using the session_start() function.

Note: PHP 5.2.2 introduced an undocumented feature to store session files in "/tmp" even if open_basedir was enabled and "/tmp" is not explicitly added to the allowed paths list. This feature has been removed from PHP as of PHP 5.3.0.

Sessions
安装/配置
Sessions


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Sessions


需求

要编译本扩展模块无需外部库文件。

Note: Optionally you can use shared memory allocation (mm), developed by Ralf S. Engelschall, for session storage. You have to download » mm and install it. This option is not available for Windows platforms. Note that the session storage module for mm does not guarantee that concurrent accesses to the same session are properly locked. It might be more appropriate to use a shared memory based filesystem (such as tmpfs on Solaris/Linux, or /dev/md on BSD) to store sessions in files, because they are properly locked. Session data is stored in memory thus web server restart deletes it.

安装/配置
安装
安装/配置


安装

会话的支持在 PHP 默认为激活。如果不想在 PHP 中加入会话支持，应在配置时指定 --disable-session 选项。要为会话存储使用共享内存分配（mm），配置 PHP 时指定 --with-mm[=DIR] 。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

Note: 默认情况下，所有与特定会话相关的数据都被存储在由 INI 选项 session.save_path 指定的目录下的一个文件中。对每个会话会建立一个文件（不论是否有数据与该会话相关）。这是由于每打开一个会话即建立一个文件，不论是否有数据写入到该文件中。注意由于和文件系统协同工作的限制，此行为有个副作用，有可能造成用户定制的会话处理器（例如用数据库）丢失了未存储数据的会话。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

会话配置选项
名称 | 默认值 | 可修改范围 | 更新纪录
session.save_path | "" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | 自 PHP 4.3.2 起可用。
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | 自 PHP 4.0.4 起有效。
session.cookie_httponly | "" | PHP_INI_ALL | 自 PHP 5.2.0. 有效
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
session.referer_check | "" | PHP_INI_ALL |
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL | 在 PHP <= 4.2.3 是 PHP_INI_ALL，在 PHP < 5 是 PHP_INI_PERDIR。自 PHP 4.0.3 起可用。
session.bug_compat_42 | "1" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
session.bug_compat_warn | "1" | PHP_INI_ALL | 自 PHP 4.3.0 起可用。
session.hash_function | "0" | PHP_INI_ALL | 自 PHP 5.0.0 起可用。
session.hash_bits_per_character | "4" | PHP_INI_ALL | 自 PHP 5.0.0 起可用。
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | 自 PHP 4.0.4 起可用。

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

会话管理系统支持许多配置选项，可以在自己的 php.ini 文件中设定。这里只是个简短的概览。

session.save_handler string
session.save_handler 定义了来存储和获取与会话关联的数据的处理器的名字。默认为 files。参见 session_set_save_handler()。
session.save_path string
session.save_path 定义了传递给存储处理器的参数。如果选择了默认的 files 文件处理器，则此值是创建文件的路径。默认为 /tmp。参见 session_save_path()。

此指令还有一个可选的 N 参数来决定会话文件分布的目录深度。例如，设定为 '5;/tmp' 将使创建的会话文件和路径类似于 /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If。要使用 N 参数，必须在使用前先创建好这些目录。在 ext/session 目录下有个小的 shell 脚本名叫 mod_files.sh 可以用来做这件事。此外注意如果使用了 N 参数并且 N 大于 0，那么将不会执行自动垃圾回收，更多信息见 php.ini。另外如果用了 N 参数，要确保将 session.save_path 的值用双引号 "quotes" 括起来，因为分隔符分号（ ;）在 php.ini 中也是注释符号。

Warning

如果将此设定为一个全局可读的目录，例如 /tmp（默认值），服务器上的其他用户有可能通过该目录的文件列表破解会话。

Note: 在 PHP 4.3.6 之前，Windows 用户必须修改此选项以使用 PHP 的会话函数。必须指定一个合法路径，例如：c:/temp。

session.name string
session.name 指定会话名以用做 cookie 的名字。只能由字母数字组成，默认为 PHPSESSID。参见 session_name()。
session.auto_start boolean
session.auto_start 指定会话模块是否在请求开始时自动启动一个会话。默认为 0（不启动）。
session.serialize_handler string
session.serialize_handler 定义用来序列化／解序列化的处理器名字。当前支持 PHP 内部格式（名为 php）和 WDDX（名为 wddx）。如果 PHP 编译时加入了 WDDX 支持，则只能用 WDDX。默认为 php。
session.gc_probability integer
session.gc_probability 与 session.gc_divisor 合起来用来管理 gc（garbage collection 垃圾回收）进程启动的概率。默认为 1。详见 session.gc_divisor。
session.gc_divisor integer
session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc（garbage collection 垃圾回收）进程的概率。此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动 gc 进程。session.gc_divisor 默认为 100。
session.gc_maxlifetime integer
session.gc_maxlifetime 指定过了多少秒之后数据就会被视为“垃圾”并被清除。

Note: 如果不同的脚本具有不同的 session.gc_maxlifetime 数值但是共享了同一个地方存储会话数据，则具有最小数值的脚本会清理数据。此情况下，与 session.save_path 一起使用本指令。

Note: 如果使用默认的基于文件的会话处理器，则文件系统必须保持跟踪访问时间（atime）。Windows FAT 文件系统不行，因此如果必须使用 FAT 文件系统或者其他不能跟踪 atime 的文件系统，那就不得不想别的办法来处理会话数据的垃圾回收。自 PHP 4.2.3 起用 mtime（修改时间）来代替了 atime。因此对于不能跟踪 atime 的文件系统也没问题了。

session.referer_check string
session.referer_check 包含有用来检查每个 HTTP Referer 的子串。如果客户端发送了 Referer 信息但是在其中并未找到该子串，则嵌入的会话 ID 会被标记为无效。默认为空字符串。
session.entropy_file string
session.entropy_file 给出了一个到外部资源（文件）的路径，该资源将在会话 ID 创建进程中被用作附加的熵值资源。例如在许多 Unix 系统下都可以用 /dev/random 或 /dev/urandom。
session.entropy_length integer
session.entropy_length 指定了从上面的文件中读取的字节数。默认为 0（禁用）。
session.use_cookies boolean
session.use_cookies 指定是否在客户端用 cookie 来存放会话 ID。默认为 1（启用）。
session.use_only_cookies boolean
session.use_only_cookies 指定是否在客户端仅仅使用 cookie 来存放会话 ID。。启用此设定可以防止有关通过 URL 传递会话 ID 的攻击。此设定是 PHP 4.3.0 添加的。
session.cookie_lifetime integer
session.cookie_lifetime 以秒数指定了发送到浏览器的 cookie 的生命周期。值为 0 表示“直到关闭浏览器”。默认为 0。参见 session_get_cookie_params() 和 session_set_cookie_params()。
session.cookie_path string
session.cookie_path 指定了要设定会话 cookie 的路径。默认为 /。参见 session_get_cookie_params() 和 session_set_cookie_params()。
session.cookie_domain string
session.cookie_domain 指定了要设定会话 cookie 的域名。默认为无，表示根据 cookie 规范产生 cookie 的主机名。参见 session_get_cookie_params() 和 session_set_cookie_params()。
session.cookie_secure boolean
session.cookie_secure 指定是否仅通过安全连接发送 cookie。默认为 off。此设定是 PHP 4.0.4 添加的。参见 session_get_cookie_params() 和 session_set_cookie_params()。
session.cookie_httponly boolean
Marks the cookie as accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. This setting can effectively help to reduce identity theft through XSS attacks (although it is not supported by all browsers).
session.cache_limiter string
session.cache_limiter 指定会话页面所使用的缓冲控制方法（none/nocache/private/private_no_expire/public）。默认为 nocache。参见 session_cache_limiter()。
session.cache_expire integer
session.cache_expire 以分钟数指定缓冲的会话页面的存活期，此设定对 nocache 缓冲控制方法无效。默认为 180。参见 session_cache_expire()。
session.use_trans_sid boolean
session.use_trans_sid 指定是否启用透明 SID 支持。默认为 0（禁用）。

Note: 对于 PHP 4.1.2 或以下版本，可以通过加入 --enable-trans-sid 配置选项去编译来启用，从 PHP 4.2.0 起，trans-sid 特性总是被编译。 基于 URL 的会话管理比基于 cookie 的会话管理有更多安全风险。例如用户有可能通过 email 将一个包含有效的会话 ID 的 URL 发给他的朋友，或者用户总是有可能在收藏夹中存有一个包含会话 ID 的 URL 来以同样的会话 ID 去访问站点。

session.bug_compat_42 boolean
PHP 4.2.3 以及更低版本有一个未公开的特性／错误，它允许用户在 register_globals 被禁用的情况下在全局范围内初始化一个会话变量。PHP 4.3.0 及更高版本会在使用此特性时并且启用了 session.bug_compat_warn 时发出警告。此特性／错误可以通过关闭此选项而禁用。
session.bug_compat_warn boolean
PHP 4.2.3 以及更低版本有一个未公开的特性／错误，它允许用户在 register_globals 被禁用的情况下在全局范围内初始化一个会话变量。PHP 4.3.0 及更高版本会在使用此特性时并且同时启用了 session.bug_compat_42 和 session.bug_compat_warn 时发出警告。
session.hash_function integer
session.hash_function 允许用户指定生成会话 ID 的散列算法。'0' 表示 MD5（128 位），'1' 表示 SHA-1（160 位）。

Note: 这是 PHP 5 引进的。

session.hash_bits_per_character integer
session.hash_bits_per_character 允许用户定义将二进制散列数据转换为可读的格式时每个字符存放多少个比特。可能值为 '4'（0-9，a-f），'5'（0-9，a-v），以及 '6'（0-9，a-z，A-Z，"-"，","）。

Note: 这是 PHP 5 引进的。

url_rewriter.tags string
url_rewriter.tags 指定在使用透明 SID 支持时哪些 HTML 标记会被修改以加入会话 ID。默认为 a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=。

Note: 如果要符合 XHTML，去掉 form 项并在表单字段前后加上 <fieldset> 标记。

track_vars 和 register_globals 配置选项影响到会话变量是怎样存储和恢复的。

Note: 自 PHP 4.0.3 起，track_vars 总是打开的。

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SID (string)
包含着会话名以及会话 ID 的常量，格式为 "name=ID"，或者如果会话 ID 已经在适当的会话 cookie 中设定时则为空字符串。
资源类型
范例
Sessions


范例

Table of Contents

  • Registering a variable with $_SESSION.
  • Passing the Session ID
  • Custom Session Handlers
预定义常量
Registering a variable with $_SESSION.
Sessions


Registering a variable with $_SESSION.

范例
Passing the Session ID
范例
PHP 手册

Note: As of PHP 4.1.0, $_SESSION is available as a global variable just like $_POST, $_GET, $_REQUEST and so on. Unlike $HTTP_SESSION_VARS, $_SESSION is always global. Therefore, you do not need to use the global keyword for $_SESSION. Please note that this documentation has been changed to use $_SESSION everywhere. You can substitute $HTTP_SESSION_VARS for $_SESSION, if you prefer the former. Also note that you must start your session using session_start() before use of $_SESSION becomes available.
The keys in the $_SESSION associative array are subject to the same limitations as regular variable names in PHP, i.e. they cannot start with a number and must start with a letter or underscore. For more details see the section on variables in this manual.

If register_globals is disabled, only members of the global associative array $_SESSION can be registered as session variables. The restored session variables will only be available in the array $_SESSION.

Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readability. With $_SESSION, there is no need to use the session_register(), session_unregister(), session_is_registered() functions. Session variables are accessible like any other variables.

Example #1 Registering a variable with $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

Example #2 Unregistering a variable with $_SESSION and register_globals disabled.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count']);
?>

Caution

Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

Warning

You can't use references in session variables as there is no feasible way to restore a reference to another variable.

If register_globals is enabled, then each global variable can be registered as session variable. Upon a restart of a session, these variables will be restored to corresponding global variables. Since PHP must know which global variables are registered as session variables, users need to register variables with session_register() function. You can avoid this by simply setting entries in $_SESSION.

Caution

Before PHP 4.3.0, if you are using $_SESSION and you have disabled register_globals, don't use session_register(), session_is_registered() or session_unregister(). Disabling register_globals is recommended for both security and performance reasons.

If register_globals is enabled, then the global variables and the $_SESSION entries will automatically reference the same values which were registered in the prior session instance. However, if the variable is registered by $_SESSION then the global variable is available since the next request.

There is a defect in PHP 4.2.3 and earlier. If you register a new session variable by using session_register(), the entry in the global scope and the $_SESSION entry will not reference the same value until the next session_start(). I.e. a modification to the newly registered global variable will not be reflected by the $_SESSION entry. This has been corrected in PHP 4.3.0.

范例
Passing the Session ID
范例


Passing the Session ID

There are two methods to propagate a session id:

  • Cookies
  • URL parameter

The session module supports both methods. Cookies are optimal, but because they are not always available, we also provide an alternative way. The second method embeds the session id directly into URLs.

PHP is capable of transforming links transparently. Unless you are using PHP 4.2.0 or later, you need to enable it manually when building PHP. Under Unix, pass --enable-trans-sid to configure. If this build option and the run-time option session.use_trans_sid are enabled, relative URIs will be changed to contain the session id automatically.

Note: The arg_separator.output php.ini directive allows to customize the argument seperator. For full XHTML conformance, specify &amp; there.

Alternatively, you can use the constant SID which is defined if the session started. If the client did not send an appropriate session cookie, it has the form session_name=session_id. Otherwise, it expands to an empty string. Thus, you can embed it unconditionally into URLs.

The following example demonstrates how to register a variable, and how to link correctly to another page using SID.

Example #1 Counting the number of hits of a single user

<?php

session_start();

if (empty($_SESSION['count'])) {
 $_SESSION['count'] = 1;
} else {
 $_SESSION['count']++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $_SESSION['count']; ?> times.
</p>

<p>
To continue, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">click
here</a>.
</p>

The htmlspecialchars() may be used when printing the SID in order to prevent XSS related attacks.

Printing the SID, like shown above, is not necessary if --enable-trans-sid was used to compile PHP.

Note: Non-relative URLs are assumed to point to external sites and hence don't append the SID, as it would be a security risk to leak the SID to a different server.

Registering a variable with $_SESSION.
Custom Session Handlers
范例


Custom Session Handlers

To implement database storage, or any other storage method, you will need to use session_set_save_handler() to create a set of user-level storage functions.

Passing the Session ID
Sessions and security
范例


Sessions and security

External links: » Session fixation

The session module cannot guarantee that the information you store in a session is only viewed by the user who created the session. You need to take additional measures to actively protect the integrity of the session, depending on the value associated with it.

Assess the importance of the data carried by your sessions and deploy additional protections -- this usually comes at a price, reduced convenience for the user. For example, if you want to protect users from simple social engineering tactics, you need to enable session.use_only_cookies. In that case, cookies must be enabled unconditionally on the user side, or sessions will not work.

There are several ways to leak an existing session id to third parties. A leaked session id enables the third party to access all resources which are associated with a specific id. First, URLs carrying session ids. If you link to an external site, the URL including the session id might be stored in the external site's referrer logs. Second, a more active attacker might listen to your network traffic. If it is not encrypted, session ids will flow in plain text over the network. The solution here is to implement SSL on your server and make it mandatory for users.

Custom Session Handlers
Session 函数
Sessions


Session 函数

Table of Contents

  • session_cache_expire — Return current cache expire
  • session_cache_limiter — Get and/or set the current cache limiter
  • session_commit — session_write_close 的别名
  • session_decode — Decodes session data from a string
  • session_destroy — Destroys all data registered to a session
  • session_encode — 将当前会话数据编码为一个字符串
  • session_get_cookie_params — Get the session cookie parameters
  • session_id — Get and/or set the current session id
  • session_is_registered — Find out whether a global variable is registered in a session
  • session_module_name — Get and/or set the current session module
  • session_name — Get and/or set the current session name
  • session_regenerate_id — Update the current session id with a newly generated one
  • session_register — Register one or more global variables with the current session
  • session_save_path — Get and/or set the current session save path
  • session_set_cookie_params — Set the session cookie parameters
  • session_set_save_handler — Sets user-level session storage functions
  • session_start — Initialize session data
  • session_unregister — Unregister a global variable from the current session
  • session_unset — Free all session variables
  • session_write_close — Write session data and end session
Sessions and security
session_cache_expire
Sessions


Return current cache expire

Session 函数
session_cache_limiter
Session 函数
PHP 手册

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expire — Return current cache expire

说明

int session_cache_expire ([ string $new_cache_expire ] )

session_cache_expire() returns the current setting of session.cache_expire.

The cache expire is reset to the default value of 180 stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_expire() for every request (and before session_start() is called).

参数

new_cache_expire

If new_cache_expire is given, the current cache expire is replaced with new_cache_expire .

Note: Setting new_cache_expire is of value only, if session.cache_limiter is set to a value different from nocache.

返回值

Returns the current setting of session.cache_expire. The value returned should be read in minutes, defaults to 180.

范例

Example #1 session_cache_expire() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* set the cache expire to 30 minutes */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* start the session */

session_start();

echo "The cache limiter is now set to $cache_limiter<br />";
echo "The cached session pages expire after $cache_expire minutes";
?>

参见

  • session.cache_expire
  • session.cache_limiter
  • session_cache_limiter() - Get and/or set the current cache limiter

Session 函数
session_cache_limiter
Session 函数


Get and/or set the current cache limiter

session_cache_expire
session_commit
Session 函数
PHP 手册

session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiter — Get and/or set the current cache limiter

说明

string session_cache_limiter ([ string $cache_limiter ] )

session_cache_limiter() returns the name of the current cache limiter.

The cache limiter defines which cache control HTTP headers are sent to the client. These headers determine the rules by which the page content may be cached by the client and intermediate proxies. Setting the cache limiter to nocache disallows any client/proxy caching. A value of public permits caching by proxies and the client, whereas private disallows caching by proxies and permits the client to cache the contents.

In private mode, the Expire header sent to the client may cause confusion for some browsers, including Mozilla. You can avoid this problem by using private_no_expire mode. The expire header is never sent to the client in this mode.

The cache limiter is reset to the default value stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_limiter() for every request (and before session_start() is called).

参数

cache_limiter

If cache_limiter is specified, the name of the current cache limiter is changed to the new value.

返回值

Returns the name of the current cache limiter.

更新日志

版本 | 说明
4.2.0 | The private_no_expire cache limiter was added.

范例

Example #1 session_cache_limiter() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "The cache limiter is now set to $cache_limiter<br />";
?>

参见

  • session.cache_limiter

session_cache_expire
session_commit
Session 函数


session_write_close 的别名

session_cache_limiter
session_decode
Session 函数
PHP 手册

session_commit

(PHP 4 >= 4.4.0, PHP 5)

session_commit — session_write_close() 的别名

说明

本函数是该函数的别名：session_write_close()。

session_cache_limiter
session_decode
Session 函数


Decodes session data from a string

session_commit
session_destroy
Session 函数
PHP 手册

session_decode

(PHP 4, PHP 5)

session_decode — Decodes session data from a string

说明

bool session_decode ( string $data )

session_decode() decodes the session data in data , setting variables stored in the session.

参数

data

The encoded data to be stored.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • session_encode() - 将当前会话数据编码为一个字符串

session_commit
session_destroy
Session 函数


Destroys all data registered to a session

session_decode
session_encode
Session 函数
PHP 手册

session_destroy

(PHP 4, PHP 5)

session_destroy — Destroys all data registered to a session

说明

bool session_destroy ( void )

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie() may be used for that.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Destroying a session with $_SESSION

<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}

// Finally, destroy the session.
session_destroy();
?>

注释

Note: Only use session_unset() for older deprecated code that does not use $_SESSION.

参见

  • unset() - 释放给定的变量
  • setcookie() - Send a cookie

session_decode
session_encode
Session 函数


将当前会话数据编码为一个字符串

session_destroy
session_get_cookie_params
Session 函数
PHP 手册

session_encode

(PHP 4, PHP 5)

session_encode — 将当前会话数据编码为一个字符串

说明

string session_encode ( void )

session_encode()返回一个字符串,该字符串包含有被编码的当前会话数据。

参见 session_decode()。

session_destroy
session_get_cookie_params
Session 函数


Get the session cookie parameters

session_encode
session_id
Session 函数
PHP 手册

session_get_cookie_params

(PHP 4, PHP 5)

session_get_cookie_params — Get the session cookie parameters

说明

array session_get_cookie_params ( void )

Gets the session cookie parameters.

返回值

Returns an array with the current session cookie information, the array contains the following items:

  • "lifetime" - The lifetime of the cookie in seconds.
  • "path" - The path where information is stored.
  • "domain" - The domain of the cookie.
  • "secure" - The cookie should only be sent over secure connections.
  • "httponly" - The cookie can only be accessed through the HTTP protocol.

更新日志

版本 | 说明
5.2.0 | The "httponly" entry was added in the returned array.
4.0.4 | The "secure" entry was added in the returned array.

参见

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session_set_cookie_params() - Set the session cookie parameters

session_encode
session_id
Session 函数


Get and/or set the current session id

session_get_cookie_params
session_is_registered
Session 函数
PHP 手册

session_id

(PHP 4, PHP 5)

session_id — Get and/or set the current session id

说明

string session_id ([ string $id ] )

session_id() is used to get or set the session id for the current session.

The constant SID can also be used to retrieve the current name and session id as a string suitable for adding to URLs. See also Session handling.

参数

id

If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose. Depending on the session handler, not all characters are allowed within the session id. For example, the file session handler only allows characters in the range a-z A-Z 0-9 , (comma) and - (minus)!

Note: When using session cookies, specifying an id for session_id() will always send a new cookie when session_start() is called, regardless if the current session id is identical to the one being set.

返回值

session_id() returns the session id for the current session or the empty string ("") if there is no current session (no current session id exists).

更新日志

版本 | 说明
5.0.0 | The , (comma) and - (minus) characters are allowed in the file session handler.

参见

  • session_regenerate_id() - Update the current session id with a newly generated one
  • session_start() - Initialize session data
  • session_set_save_handler() - Sets user-level session storage functions
  • session.save_handler

session_get_cookie_params
session_is_registered
Session 函数


Find out whether a global variable is registered in a session

session_id
session_module_name
Session 函数
PHP 手册

session_is_registered

(PHP 4, PHP 5)

session_is_registered — Find out whether a global variable is registered in a session

说明

bool session_is_registered ( string $name )

Finds out whether a global variable is registered in a session.

Warning

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

参数

name

The variable name.

返回值

session_is_registered() returns TRUE if there is a global variable with the name name registered in the current session, FALSE otherwise.

注释

Note: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use isset() to check a variable is registered in $_SESSION.

Caution

If you are using $_SESSION
(or $HTTP_SESSION_VARS), do not use
session_register(),
session_is_registered() and
session_unregister().

session_id
session_module_name
Session 函数


Get and/or set the current session module

session_is_registered
session_name
Session 函数
PHP 手册

session_module_name

(PHP 4, PHP 5)

session_module_name — Get and/or set the current session module

说明

string session_module_name ([ string $module ] )

session_module_name() gets the name of the current session module.

参数

module

If module is specified, that module will be used instead.

返回值

Returns the name of the current session module.

session_is_registered
session_name
Session 函数


Get and/or set the current session name

session_module_name
session_regenerate_id
Session 函数
PHP 手册

session_name

(PHP 4, PHP 5)

session_name — Get and/or set the current session name

说明

string session_name ([ string $name ] )

session_name() returns the name of the current session.

The session name is reset to the default value stored in session.name at request startup time. Thus, you need to call session_name() for every request (and before session_start() or session_register() are called).

参数

name

The session name references the session id in cookies and URLs. It should contain only alphanumeric characters; it should be short and descriptive (i.e. for users with enabled cookie warnings). If name is specified, the name of the current session is changed to its value.

Warning

The session name can't consist of digits only, at least one letter must be present. Otherwise a new session id is generated every time.

返回值

Returns the name of the current session.

范例

Example #1 session_name() example

<?php

/* set the session name to WebsiteID */

$previous_name = session_name("WebsiteID");

echo "The previous session name was $previous_name<br />";
?>

参见

  • The session.name configuration directive

session_module_name
session_regenerate_id
Session 函数


Update the current session id with a newly generated one

session_name
session_register
Session 函数
PHP 手册

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id — Update the current session id with a newly generated one

说明

bool session_regenerate_id ([ bool $delete_old_session=false ] )

session_regenerate_id() will replace the current session id with a new one, and keep the current session information.

参数

delete_old_session

Whether to delete the old associated session file or not. Defaults to FALSE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
4.3.3 | Since then, if session cookies are enabled, use of session_regenerate_id() will also submit a new session cookie with the new session id.
5.1.0 | Added the delete_old_session parameter.

范例

Example #1 A session_regenerate_id() example

<?php
session_start();

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";

print_r($_SESSION);
?>

参见

  • session_id() - Get and/or set the current session id
  • session_start() - Initialize session data
  • session_name() - Get and/or set the current session name

session_name
session_register
Session 函数


Register one or more global variables with the current session

session_regenerate_id
session_save_path
Session 函数
PHP 手册

session_register

(PHP 4, PHP 5)

session_register — Register one or more global variables with the current session

说明

bool session_register ( mixed $name [, mixed $... ] )

session_register() accepts a variable number of arguments, any of which can be either a string holding the name of a variable or an array consisting of variable names or other arrays. For each name, session_register() registers the global variable with that name in the current session.

You can also create a session variable by simply setting the appropriate member of the $_SESSION or $HTTP_SESSION_VARS (PHP < 4.1.0) array.

<?php
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>

If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.

Warning

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

参数

name

A string holding the name of a variable or an array consisting of variable names or other arrays.

...

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Caution

If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

Note: register_globals 重要说明
自 PHP 4.2.0 起，PHP 中的选项 register_globals 的默认值被设为 off，并且自 PHP 6.0.0 起会被彻底去除。PHP 社区鼓励大家不要依赖于这个选项，用其它方法替代，例如superglobals。

Caution

This registers a global variable. If you want to register a session variable from within a function, you need to make sure to make it global using the global keyword or the $GLOBALS[] array, or use the special session arrays as noted below.

Caution

If you are using $_SESSION
(or $HTTP_SESSION_VARS), do not use
session_register(),
session_is_registered(), and
session_unregister().

Note: It is currently impossible to register resource variables in a session. For example, you cannot create a connection to a database and store the connection id as a session variable and expect the connection to still be valid the next time the session is restored. PHP functions that return a resource are identified by having a return type of resource in their function definition. A list of functions that return resources are available in the resource types appendix.
If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, assign values to $_SESSION. For example: $_SESSION['var'] = 'ABC';

参见

  • session_is_registered() - Find out whether a global variable is registered in a session
  • session_unregister() - Unregister a global variable from the current session
  • $_SESSION

session_regenerate_id
session_save_path
Session 函数


Get and/or set the current session save path

session_register
session_set_cookie_params
Session 函数
PHP 手册

session_save_path

(PHP 4, PHP 5)

session_save_path — Get and/or set the current session save path

说明

string session_save_path ([ string $path ] )

session_save_path() returns the path of the current directory used to save session data.

参数

path

Session data path. If specified, the path to which data is saved will be changed. session_save_path() needs to be called before session_start() for that purpose.

Note: On some operating systems, you may want to specify a path on a filesystem that handles lots of small files efficiently. For example, on Linux, reiserfs may provide better performance than ext2fs.

返回值

Returns the path of the current directory used for data storage.

参见

  • The session.save_path configuration directive

session_register
session_set_cookie_params
Session 函数


Set the session cookie parameters

session_save_path
session_set_save_handler
Session 函数
PHP 手册

session_set_cookie_params

(PHP 4, PHP 5)

session_set_cookie_params — Set the session cookie parameters

说明

void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure=false [, bool $httponly=false ]]]] )

Set cookie parameters defined in the php.ini file. The effect of this function only lasts for the duration of the script. Thus, you need to call session_set_cookie_params() for every request and before session_start() is called.

参数

lifetime

Lifetime of the session cookie, defined in seconds.

path

Path on the domain where the cookie will work. Use a single slash ('/') for all paths on the domain.

domain

Cookie domain, for example 'www.php.net'. To make cookies visible on all subdomains then the domain must be prefixed with a dot like '.php.net'.

secure

If TRUE cookie will only be sent over secure connections.

httponly

If set to TRUE then PHP will attempt to send the httponly flag when setting the session cookie.

返回值

无返回值。

更新日志

版本 | 说明
5.2.0 | The httponly parameter was added.
4.0.4 | The secure parameter was added.

参见

  • session.cookie_lifetime
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session_get_cookie_params() - Get the session cookie parameters

session_save_path
session_set_save_handler
Session 函数


Sets user-level session storage functions

session_set_cookie_params
session_start
Session 函数
PHP 手册

session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handler — Sets user-level session storage functions

说明

bool session_set_save_handler ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc )

session_set_save_handler() sets the user-level session storage functions which are used for storing and retrieving data associated with a session. This is most useful when a storage method other than those supplied by PHP sessions is preferred. i.e. Storing the session data in a local database.

参数

open

Open function, this works like a constructor in classes and is executed when the session is being opened. The open function expects two parameters, where the first is the save path and the second is the session name.

close

Close function, this works like a destructor in classes and is executed when the session operation is done.

read

Read function must return string value always to make save handler work as expected. Return empty string if there is no data to read. Return values from other handlers are converted to boolean expression. TRUE for success, FALSE for failure.

write

Note: The "write" handler is not executed until after the output stream is closed. Thus, output from debugging statements in the "write" handler will never be seen in the browser. If debugging output is necessary, it is suggested that the debug output be written to a file instead.

destroy

The destroy handler, this is executed when a session is destroyed with session_destroy() and takes the session id as its only parameter.

gc

The garbage collector, this is executed when the session garbage collector is executed and takes the max session lifetime as its only parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 session_set_save_handler() example

The following example provides file based session storage similar to the PHP sessions default save handler files . This example could easily be extended to cover database storage using your favorite PHP supported database engine.

<?php
function open($save_path, $session_name)
{
  global $sess_save_path;

  $sess_save_path = $save_path;
  return(true);
}

function close()
{
  return(true);
}

function read($id)
{
  global $sess_save_path;

  $sess_file = "$sess_save_path/sess_$id";
  return (string) @file_get_contents($sess_file);
}

function write($id, $sess_data)
{
  global $sess_save_path;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    $return = fwrite($fp, $sess_data);
    fclose($fp);
    return $return;
  } else {
    return(false);
  }

}

function destroy($id)
{
  global $sess_save_path;

  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

function gc($maxlifetime)
{
  global $sess_save_path;

  foreach (glob("$sess_save_path/sess_*") as $filename) {
    if (filemtime($filename) + $maxlifetime < time()) {
      @unlink($filename);
    }
  }
  return true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_start();

// proceed to use sessions normally

?>

注释

Warning

As of PHP 5.0.5 the write and close handlers are called after object destruction and therefore cannot use objects or throw exceptions. The object destructors can however use sessions.

It is possible to call session_write_close() from the destructor to solve this chicken and egg problem.

Warning

Current working directory is changed with some SAPIs if session is closed in the script termination. It is possible to close the session earlier with session_write_close().

参见

  • The session.save_handler configuration directive

session_set_cookie_params
session_start
Session 函数


Initialize session data

session_set_save_handler
session_unregister
Session 函数
PHP 手册

session_start

(PHP 4, PHP 5)

session_start — Initialize session data

说明

bool session_start ( void )

session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.

If you want to use a named session, you must call session_name() before calling session_start().

session_start() will register internal output handler for URL rewriting when trans-sid is enabled. If a user uses ob_gzhandler or like with ob_start(), the order of output handler is important for proper output. For example, user must register ob_gzhandler before session start.

返回值

This function returns TRUE if session was started with success otherwise FALSE.

更新日志

版本 | 说明
5.3.0 | If session fails to start for some reason, then FALSE is returned where previously TRUE always was returned.
4.3.3 | As of now, calling session_start() while the session has already been started will result in an error of level E_NOTICE. Also, the second session start will simply be ignored.

范例

Example #1 A session example: page1.php

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

After viewing page1.php, the second page page2.php will magically contain the session data. Read the session reference for information on propagating session ids as it, for example, explains what the constant SID is all about.

Example #2 A session example: page2.php

<?php
// page2.php

session_start();

echo 'Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

注释

Note: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.

Note: Use of zlib.output_compression is recommended rather than ob_gzhandler()

参见

  • $_SESSION
  • The session.auto_start configuration directive
  • session_id() - Get and/or set the current session id

session_set_save_handler
session_unregister
Session 函数


Unregister a global variable from the current session

session_start
session_unset
Session 函数
PHP 手册

session_unregister

(PHP 4, PHP 5)

session_unregister — Unregister a global variable from the current session

说明

bool session_unregister ( string $name )

session_unregister() unregisters the global variable named name from the current session.

Warning

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

参数

name

The variable name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

注释

Note: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable. Do not unset() $_SESSION itself as this will disable the special function of the $_SESSION superglobal.

Caution

This function does not unset the corresponding global variable for name , it only prevents the variable from being saved as part of the session. You must call unset() to remove the corresponding global variable.

Caution

If you are using $_SESSION (or
$HTTP_SESSION_VARS), do not use
session_register(),
session_is_registered() and
session_unregister().

session_start
session_unset
Session 函数


Free all session variables

session_unregister
session_write_close
Session 函数
PHP 手册

session_unset

(PHP 4, PHP 5)

session_unset — Free all session variables

说明

void session_unset ( void )

The session_unset() function frees all session variables currently registered.

返回值

无返回值。

注释

Note: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable, i.e. unset ($_SESSION['varname']);.

Caution

Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

session_unregister
session_write_close
Session 函数


Write session data and end session

session_unset
Session PgSQL
Session 函数
PHP 手册

session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_close — Write session data and end session

说明

void session_write_close ( void )

End the current session and store session data.

Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

返回值

无返回值。

session_unset
Session PgSQL
Session 函数


PostgreSQL Session Save Handler

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • Table definitions
  • 预定义常量
  • Session PgSQL 函数
    • session_pgsql_add_error — Increments error counts and sets last error message
    • session_pgsql_get_error — Returns number of errors and last error message
    • session_pgsql_get_field — Get custom field value
    • session_pgsql_reset — Reset connection to session database servers
    • session_pgsql_set_field — Set custom field value
    • session_pgsql_status — Get current save handler status
session_write_close
简介
Session扩展


简介

Note: 本扩展模块在 Windows 平台下不可用。

This module provides an additional session save handler for the session module using » PostgreSQL as a storage system. A user-level session storage function may also be used - session_set_save_handler(), but this module is written in C and therefore could be twice as fast, compared to a session save handler written in PHP.

Session PgSQL is designed to scale any size of web sites and offers some advanced features:

  • session tables are created automatically
  • automatic session table vacuum
  • better garbage collection
  • multiple PostgreSQL servers support
  • automatic database server failover (switching)
  • automatic database server load balancing if there are multiple PostgreSQL servers.
  • short circuit UPDATE

Session PgSQL
安装/配置
Session PgSQL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Session PgSQL


需求

You need at least PHP >= 4.3.0, and PostgreSQL >=7.2.0 as database server. libpq that comes with PostgreSQL 7.2.0 or later (and header files to build) and » libmm (and header files).

安装/配置
安装
安装/配置


安装

Short installation note:

  • Untar the tar.gz archive into php4/ext (Latest official releases can be found at SourceForge » PHP Form Extension Project)
  • If the new directory is now called something like session_pgsql. You should name it to session_pgsql (except you only want to build it as self-contained php-module).
  • Run ./buildconf in php4
  • Run configure --with-session-pgsql (and your other options)
  • make; make install

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

PostgreSQL session save handler is still under development. Refer to the README file in the source distribution for configuration details.

安装
资源类型
安装/配置


资源类型

本扩展模块未定义任何资源类型。

运行时配置
Table definitions
安装/配置


Table definitions

Session table definition

CREATE TABLE php_session (
 sess_id            text,
 sess_name          text,
 sess_data          text,
 sess_created       integer,
 sess_modified      integer,
 sess_expire        integer,
 sess_addr_created  text,
 sess_addr_modified text,
 sess_counter       integer,
 sess_error         integer,
 sess_warning       integer,
 sess_notice        integer,
 sess_err_message   text,
 sess_custom        text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

Warning

If you use HASH for INDEX, you'll have a deadlock problem when the server load is very high. Even if it's unlikely to have a deadlock under normal operation, it can occur. Do not use HASH for INDEX.

You may change the session table as long as all fields are defined.

Application variables table definition

CREATE TABLE php_app_vars (
 app_modified       integer,
 app_name           text,
 app_vars           text
);

资源类型
预定义常量
Session PgSQL


预定义常量

本扩展模块未定义任何常量。

Table definitions
Session PgSQL 函数
Session PgSQL


Session PgSQL 函数

Contact Information

I have at the moment not very much time to further develop this extension. I will implement more and more features in the near future.

If you have comments, bug fixes, enhancements or want to help developing this, you can drop me a mail at » yohgaki@php.net. Any help is very welcome.

Table of Contents

  • session_pgsql_add_error — Increments error counts and sets last error message
  • session_pgsql_get_error — Returns number of errors and last error message
  • session_pgsql_get_field — Get custom field value
  • session_pgsql_reset — Reset connection to session database servers
  • session_pgsql_set_field — Set custom field value
  • session_pgsql_status — Get current save handler status
预定义常量
session_pgsql_add_error
Session PgSQL


Increments error counts and sets last error message

Session PgSQL 函数
session_pgsql_get_error
Session PgSQL 函数
PHP 手册

session_pgsql_add_error

(PECL session_pgsql CVS)

session_pgsql_add_error — Increments error counts and sets last error message

说明

bool session_pgsql_add_error ( int $error_level [, string $error_message ] )
Warning

本函数暂无文档，仅有参数列表。

参数

error_level

error_message

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • session_pgsql_get_error() - Returns number of errors and last error message

Session PgSQL 函数
session_pgsql_get_error
Session PgSQL 函数


Returns number of errors and last error message

session_pgsql_add_error
session_pgsql_get_field
Session PgSQL 函数
PHP 手册

session_pgsql_get_error

(PECL session_pgsql CVS)

session_pgsql_get_error — Returns number of errors and last error message

说明

array session_pgsql_get_error ([ bool $with_error_message=false ] )

Get the number of errors and optional the error messages.

参数

with_error_message

Set to TRUE the literal error message for each error is also returned.

返回值

The number of errors are returned as array.

参见

  • session_pgsql_add_error() - Increments error counts and sets last error message

session_pgsql_add_error
session_pgsql_get_field
Session PgSQL 函数


Get custom field value

session_pgsql_get_error
session_pgsql_reset
Session PgSQL 函数
PHP 手册

session_pgsql_get_field

(PECL session_pgsql CVS)

session_pgsql_get_field — Get custom field value

说明

string session_pgsql_get_field ( void )
Warning

本函数暂无文档，仅有参数列表。

参见

  • session_pgsql_set_field() - Set custom field value

session_pgsql_get_error
session_pgsql_reset
Session PgSQL 函数


Reset connection to session database servers

session_pgsql_get_field
session_pgsql_set_field
Session PgSQL 函数
PHP 手册

session_pgsql_reset

(PECL session_pgsql CVS)

session_pgsql_reset — Reset connection to session database servers

说明

bool session_pgsql_reset ( void )

Reset the connection to the session database servers.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

session_pgsql_get_field
session_pgsql_set_field
Session PgSQL 函数


Set custom field value

session_pgsql_reset
session_pgsql_status
Session PgSQL 函数
PHP 手册

session_pgsql_set_field

(PECL session_pgsql CVS)

session_pgsql_set_field — Set custom field value

说明

bool session_pgsql_set_field ( string $value )
Warning

本函数暂无文档，仅有参数列表。

参数

value

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • session_pgsql_get_field() - Get custom field value

session_pgsql_reset
session_pgsql_status
Session PgSQL 函数


Get current save handler status

session_pgsql_set_field
文本处理
Session PgSQL 函数
PHP 手册

session_pgsql_status

(PECL session_pgsql CVS)

session_pgsql_status — Get current save handler status

说明

array session_pgsql_status ( void )
Warning

本函数暂无文档，仅有参数列表。

session_pgsql_set_field
文本处理
Session PgSQL 函数


文本处理

  • BBCode — Bulletin Board Code
    • 简介
    • 安装/配置
    • 预定义常量
    • BBCode 函数
  • PCRE — Regular Expressions (Perl-Compatible)
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • PCRE Patterns
    • PCRE 函数
  • POSIX Regex — Regular Expression (POSIX Extended)
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • POSIX Regex 函数
  • Strings
    • 简介
    • 安装/配置
    • 预定义常量
    • String 函数
session_pgsql_status
BBCode
函数参考


Bulletin Board Code

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • BBCode 函数
    • bbcode_add_element — Adds a bbcode element
    • bbcode_add_smiley — Adds a smiley to the parser
    • bbcode_create — Create a BBCode Resource
    • bbcode_destroy — Close BBCode_container resource
    • bbcode_parse — Parse a string following a given rule set
    • bbcode_set_arg_parser — Attach another parser in order to use another rule set for argument parsing
    • bbcode_set_flags — Set or alter parser options
文本处理
简介
文本处理


简介

This extension aims to help parse BBCode text in order to convert it to HTML or another markup language. It uses one pass parsing and provides great speed improvement over the common approach based on regular expressions. Further more, it helps provide valid HTML by reordering open / close tags and by automatically closing unclosed tags.

Since 0.10.1 It supports argument quoting with single quotes, double quotes and HTML escaped double quotes.

BBCode
安装/配置
BBCode


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
BBCode


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/bbcode

An alternative solution, written in PHP, is the PEAR package » HTML_BBCodeParser.

需求
运行时配置
安装/配置


资源类型

One resource is used in the BBCode extension: a BBCode_Container returned by bbcode_create().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

BBCODE_TYPE_NOARG (integer)
This BBCode tag does not accept any arguments.
BBCODE_TYPE_SINGLE (integer)
This BBCode tag does not have a corresponding close tag.
BBCODE_TYPE_ARG (integer)
This BBCode tag need an argument.
BBCODE_TYPE_OPTARG (integer)
This BBCode tag accept an optional argument.
BBCODE_TYPE_ROOT (integer)
This BBCode tag is the special tag root (nesting level 0).
BBCODE_FLAGS_ARG_PARSING (integer)
This BBCode tag require argument sub-parsing (the argument is also parsed by the BBCode extension). As Of 0.10.2 another parser can be used as argument parser.
BBCODE_FLAGS_CDATA_NOT_ALLOWED (integer)
This BBCode Tag does not accept content (it voids it automatically).
BBCODE_FLAGS_SMILEYS_ON (integer) - since 0.10.2
This BBCode Tag accepts smileys.
BBCODE_FLAGS_SMILEYS_OFF (integer) - since 0.10.2
This BBCode Tag does not accept smileys.
BBCODE_FLAGS_ONE_OPEN_PER_LEVEL (integer) - since 0.10.2
This BBCode Tag automatically closes if another tag of the same type is found at the same nesting level.
BBCODE_FLAGS_REMOVE_IF_EMPTY (integer) - since 0.10.2
This BBCode Tag is automatically removed if content is empty it allows to produce lighter HTML.
BBCODE_FLAGS_DENY_REOPEN_CHILD (integer) - since 0.10.3
This BBCode Tag does not allow unclosed children to reopen when automatically closed.
BBCODE_ARG_DOUBLE_QUOTE (integer) - since 0.10.2
This is a parser option allowing argument quoting with double quotes (")
BBCODE_ARG_SINGLE_QUOTE (integer) - since 0.10.2
This is a parser option allowing argument quoting with single quotes (')
BBCODE_ARG_HTML_QUOTE (integer) - since 0.10.2
This is a parser option allowing argument quoting with HTML version of double quotes (&quot;)
BBCODE_ARG_QUOTE_ESCAPING (integer) - since 1.0.2
This is a parser option allowing argument quotes to be escaped this permit the quote delimiter to be found in the string escaping character is \ it can escape any quoting character or itself, if found in front of a non escapable character, it will be dropped. Default behaviour is not to use escaping.
BBCODE_AUTO_CORRECT (integer) - since 0.10.2
This is a parser option changing the way errors are treated. It automatically closes tag in the order they are opened. And treat tags with only an open tag as if there were a close tag present.
BBCODE_CORRECT_REOPEN_TAGS (integer) - since 0.10.2
This is a parser option changing the way errors are treated. It automatically reopens tag if close tags are not in the good order.
BBCODE_DISABLE_TREE_BUILD (integer) - since 0.10.2
This is a parser option disabling the BBCode parsing it can be useful if only the "smiley" replacement must be used.
BBCODE_DEFAULT_SMILEYS_ON (integer) - since 0.10.2
This is a parser option setting smileys to ON if no flag is given at tag level.
BBCODE_DEFAULT_SMILEYS_OFF (integer) - since 0.10.2
This is a parser option setting smileys to OFF if no flag is given at tag level.
BBCODE_FORCE_SMILEYS_OFF (integer) - since 0.10.2
This is a parser option disabling completely the smileys parsing.
BBCODE_SMILEYS_CASE_INSENSITIVE (integer) - since 0.10.3
Use a case insensitive Detection for smileys instead of a simple binary search.
BBCODE_SET_FLAGS_SET (integer) - since 0.10.2
This permits to SET the complete flag set on a parser.
BBCODE_SET_FLAGS_ADD (integer) - since 0.10.2
This permits to switch a flag set ON on a parser.
BBCODE_SET_FLAGS_REMOVE (integer) - since 0.10.2
This permits to switch a flag set OFF on a parser.
资源类型
BBCode 函数
BBCode


BBCode 函数

Table of Contents

  • bbcode_add_element — Adds a bbcode element
  • bbcode_add_smiley — Adds a smiley to the parser
  • bbcode_create — Create a BBCode Resource
  • bbcode_destroy — Close BBCode_container resource
  • bbcode_parse — Parse a string following a given rule set
  • bbcode_set_arg_parser — Attach another parser in order to use another rule set for argument parsing
  • bbcode_set_flags — Set or alter parser options
预定义常量
bbcode_add_element
BBCode


Adds a bbcode element

BBCode 函数
bbcode_add_smiley
BBCode 函数
PHP 手册

bbcode_add_element

(PECL bbcode >= 0.9.0)

bbcode_add_element — Adds a bbcode element

说明

bool bbcode_add_element ( resource $bbcode_container , string $tag_name , array $tag_rules )

Adds a tag to an existing BBCode_Container tag_set using tag_rules.

参数

bbcode_container

BBCode_Container resource, returned by bbcode_create().

tag_name

The new tag to add to the BBCode_Container tag_set.

tag_rules

An associative array containing the parsing rules; see bbcode_create() for the available keys.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

BBCode 函数
bbcode_add_smiley
BBCode 函数


Adds a smiley to the parser

bbcode_add_element
bbcode_create
BBCode 函数
PHP 手册

bbcode_add_smiley

(PECL bbcode >= 0.10.2)

bbcode_add_smiley — Adds a smiley to the parser

说明

bool bbcode_add_smiley ( resource $bbcode_container , string $smiley , string $replace_by )

Adds a smiley to the parser

参数

bbcode_container

BBCode_Container resource, returned by bbcode_create().

smiley

The string that will be replaced when found.

replace_by

The string that replace smiley when found.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bbcode_add_smiley() usage example

<?php
/*
 * Prepare the rule set
 */
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,
                       'childs'=>'!i'),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>',
                       'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>',
                       'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>',
                       'close_tag'=>'</i>',
                       'childs'=>'b'),
);
/*
 * Parsed Text
 */
$text=<<<EOF
[i] No parse Test [/i] :)
[b] Parsed, with smiley :( [/b]
[u] Parsed, with no smiley :D [/u]
EOF;
/*
 * Init the parser
 */
$BBHandler=bbcode_create($arrayBBCode);
/*
 * Add Smiley rules to parser
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler, ":(", "<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler, ":D", "<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler, ":p", "<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler, ":|", "<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler, ":6:", "<img src=\"six.gif\" alt=\":6:\" />");
/*
 * Parse the text
 */
echo bbcode_parse($BBHandler,$text);
?>

上例将输出：

[i] No parse Test [/i] <img src="smiley.gif" alt=":)" />
<b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b>
<u> Parsed, with no smiley :D </u>

bbcode_add_element
bbcode_create
BBCode 函数


Create a BBCode Resource

bbcode_add_smiley
bbcode_destroy
BBCode 函数
PHP 手册

bbcode_create

(PECL bbcode >= 0.9.0)

bbcode_create — Create a BBCode Resource

说明

resource bbcode_create ([ array $bbcode_initial_tags ] )

This function returns a new BBCode Resource used to parse BBCode strings.

参数

bbcode_initial_tags

An associative array containing the tag names as keys and parameters required to correctly parse BBCode as their value. The following key/value pairs are supported:

  • flags optional - a flag set based on the BBCODE_FLAGS_* constants.
  • type required - an int indicating the type of tag. Use the BBCODE_TYPE_* constants.
  • open_tag required - the HTML replacement string for the open tag.
  • close_tag required - the HTML replacement string for the close tag.
  • default_arg optional - use this value as the default argument if none is provided and tag_type is of type OPTARG.
  • content_handling optional - Gives the callback used for modification of the content. Object Oriented Notation supported only since 0.10.1 callback prototype is string name(string $content, string $argument)
  • param_handling optional - Gives the callback used for modification of the argument. Object Oriented Notation supported only since 0.10.1 callback prototype is string name(string $content, string $argument)
  • childs optional - List of accepted child for the tag. The format of the list is a comma separated string. If the list starts with ! it will be the list of rejected child for the tag.
  • parent optional - List of accepted child for the tag. The format of the list is a comma separated string.

返回值

Returns a BBCode_Container

范例

Example #1 bbcode_create() example

<?php
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,  'childs'=>'!i'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>',
                    'close_tag'=>'</i>', 'childs'=>'b'),
    'url'=>      array('type'=>BBCODE_TYPE_OPTARG,
                    'open_tag'=>'<a href="{PARAM}">', 'close_tag'=>'</a>',
                    'default_arg'=>'{CONTENT}',
                    'childs'=>'b,i'),
    'img'=>      array('type'=>BBCODE_TYPE_NOARG,
                    'open_tag'=>'<img src="', 'close_tag'=>'" />',
                    'childs'=>''),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b>',
                    'close_tag'=>'</b>'),
);
$text=<<<EOF
[b]Bold Text[/b]
[i]Italic Text[/i]
[url]http://www.php.net/[/url]
[url=http://pecl.php.net/][b]Content Text[/b][/url]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[url=http://www.php.net/]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[/url]
EOF;
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
?>

上例将输出：

<b>Bold Text</b>
<i>Italic Text</i>
<a href="http://www.php.net/">http://www.php.net/</a>
<a href="http://pecl.php.net/"><b>Content Text</b></a>
<img src="http://static.php.net/www.php.net/images/php.gif" />
<a href="http://www.php.net/">
[img]http://static.php.net/www.php.net/images/php.gif[/img]
</a>

bbcode_add_smiley
bbcode_destroy
BBCode 函数


Close BBCode_container resource

bbcode_create
bbcode_parse
BBCode 函数
PHP 手册

bbcode_destroy

(PECL bbcode >= 0.9.0)

bbcode_destroy — Close BBCode_container resource

说明

bool bbcode_destroy ( resource $bbcode_container )

This function closes the resource opened by bbcode_create().

参数

bbcode

BBCode_Container resource returned by bbcode_create().

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

bbcode_create
bbcode_parse
BBCode 函数


Parse a string following a given rule set

bbcode_destroy
bbcode_set_arg_parser
BBCode 函数
PHP 手册

bbcode_parse

(PECL bbcode >= 0.9.0)

bbcode_parse — Parse a string following a given rule set

说明

string bbcode_parse ( resource $bbcode_container , string $to_parse )

This function parse the string to_parse following the rules in the bbcode_container created by bbcode_create()

参数

bbcode_container

BBCode_Container resource returned by bbcode_create().

to_parse

The string we need to parse.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

bbcode_destroy
bbcode_set_arg_parser
BBCode 函数


Attach another parser in order to use another rule set for argument parsing

bbcode_parse
bbcode_set_flags
BBCode 函数
PHP 手册

bbcode_set_arg_parser

(PECL bbcode >= 0.10.2)

bbcode_set_arg_parser — Attach another parser in order to use another rule set for argument parsing

说明

bool bbcode_set_arg_parser ( resource $bbcode_container , resource $bbcode_arg_parser )

Attaches another parser to the bbcode_container. This parser is used only when arguments must be parsed. If this function is not used, the default argument parser is the parser itself.

参数

bbcode_container

BBCode_Container resource, returned by bbcode_create().

bbcode_arg_parser

BBCode_Container resource, returned by bbcode_create(). It will be used only for parsed arguments

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bbcode_set_arg_parser() usage example

<?php
/*
 * Generating bbcode ruleset for main parser
 */
$arrayBBCode=array(
    'quote'=>    array('type'=>BBCODE_TYPE_ARG,
                       'open_tag'=>'<quote><h4>Source: {PARAM}</h4>',
                       'close_tag'=>'</quote>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Generating bbcode ruleset for argument parser
 */
$arrayBBCode_arg=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b class="sub">', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Text we are going to parse
 */
$text=<<<EOF
[quote="[b]Test[/b]"]
Foo :)
[/quote]
[b]Bar example :)[/b] :)
EOF;
/*
 * Init the two parsers
 */
$BBHandler=bbcode_create($arrayBBCode);
$BBArgHandler=bbcode_create($arrayBBCode_arg);
/*
 * Setting Flags on the parsers
 */
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
bbcode_set_flags($BBArgHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
/*
 * Setting $BBArgHandler as the BBHandler argument parser
 */
bbcode_set_arg_parser($BBHandler,$BBArgHandler);
/*
 * Adding Smileys handling rules to Main parser
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
/*
 * Use the main parser to parse text
 */
echo bbcode_parse($BBHandler,$text);
?>

上例将输出：

<quote><h4>Source: <b class="sub">Test</b></h4>
Foo <img src="smiley.gif" alt=":)" />
</quote>
<b>Bar example :)</b> <img src="smiley.gif" alt=":)" />

bbcode_parse
bbcode_set_flags
BBCode 函数


Set or alter parser options

bbcode_set_arg_parser
PCRE
BBCode 函数
PHP 手册

bbcode_set_flags

(PECL bbcode >= 0.10.2)

bbcode_set_flags — Set or alter parser options

说明

bool bbcode_set_flags ( resource $bbcode_container , int $flags [, int $mode=BBCODE_SET_FLAGS_SET ] )

Set or alter parser options

参数

bbcode_container

BBCode_Container resource, returned by bbcode_create().

flags

The flag set that must be applied to the bbcode_container options

mode

One of the BBCODE_SET_FLAGS_* constant to set, unset a specific flag set or to replace the flag set by flags.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 bbcode_set_flags() usage example

<?php
/*
 * Preparing RuleSet
 */
$arrayBBCode=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>'),
);
/*
 * Paired incorrectly nested BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n";
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
// Enabling reopening of automaticaly closed elements
bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);

/*
 * Unpaired incorrectly nested BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work\n";
echo bbcode_parse($BBHandler,$text);
// Enabling automatic close of pending tags
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);
?>

上例将输出：

<i> Parser <b> Auto Correction </b></i> at work
<i> Parser <b> Auto Correction </b></i><b> at work </b>
<i> Parser [b] Auto Correction </i> at work
<i> Parser <b> Auto Correction </b></i><b> at work
</b>

bbcode_set_arg_parser
PCRE
BBCode 函数


Regular Expressions (Perl-Compatible)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • PCRE Patterns
    • 模式修正符 — 解说正则表达式模式中使用的修正符
    • Differences From Perl — Perl Differences
    • 模式语法 — 解说 Perl 兼容正则表达式的语法
  • PCRE 函数
    • preg_grep — 返回与模式匹配的数组单元
    • preg_last_error — Returns the error code of the last PCRE regex execution
    • preg_match_all — 进行全局正则表达式匹配
    • preg_match — 进行正则表达式匹配
    • preg_quote — 转义正则表达式字符
    • preg_replace_callback — 用回调函数执行正则表达式的搜索和替换
    • preg_replace — 执行正则表达式的搜索和替换
    • preg_split — 用正则表达式分割字符串
bbcode_set_flags
简介
文本处理


简介

The syntax for patterns used in these functions closely resembles Perl. The expression must be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation.

The ending delimiter may be followed by various modifiers that affect the matching. See Pattern Modifiers.

PHP also supports regular expressions using a POSIX-extended syntax using the POSIX-extended regex functions.

Note: This extension maintains a global per-thread cache of compiled regular expressions (up to 4096).

Warning

You should be aware of some limitations of PCRE. Read » http://www.pcre.org/pcre.txt for more info.

The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5, with just a few differences (see below). The current implementation corresponds to Perl 5.005.

PCRE
安装/配置
PCRE


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
PCRE


安装

自 PHP 4.2.0 起这些函数默认被激活。可以通过 --without-pcre-regex 禁用 PCRE 函数。如果不使用绑定的库的话，用 --with-pcre-regex=DIR 来指定 PCRE 库文件和头文件的路径。对早期版本必须在编译时用 --with-pcre-regex[=DIR] 才能使用这些函数。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

PCRE Configuration Options
Name | Default | Changeable | Changelog
pcre.backtrack_limit | "100000" | PHP_INI_ALL | Available since PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Available since PHP 5.2.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

pcre.backtrack_limit integer

PCRE's backtracking limit.

pcre.recursion_limit integer

PCRE's recursion limit. Please note that if you set this value to a high number you may consume all the available process stack and eventually crash PHP (due to reaching the stack size limit imposed by the Operating System).

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

PREG constants
constant | description
PREG_PATTERN_ORDER | Orders results so that $matches[0] is an array of full pattern matches, $matches[1] is an array of strings matched by the first parenthesized subpattern, and so on. This flag is only used with preg_match_all().
PREG_SET_ORDER | Orders results so that $matches[0] is an array of first set of matches, $matches[1] is an array of second set of matches, and so on. This flag is only used with preg_match_all().
PREG_OFFSET_CAPTURE | See the description of PREG_SPLIT_OFFSET_CAPTURE. This flag is available since PHP 4.3.0.
PREG_SPLIT_NO_EMPTY | This flag tells preg_split() to return only non-empty pieces.
PREG_SPLIT_DELIM_CAPTURE | This flag tells preg_split() to capture parenthesized expression in the delimiter pattern as well. This flag is available since PHP 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE | If this flag is set, for every occurring match the appendant string offset will also be returned. Note that this changes the return values in an array where every element is an array consisting of the matched string at offset 0 and its string offset within subject at offset 1. This flag is available since PHP 4.3.0 and is only used for preg_split().
PREG_NO_ERROR | Returned by preg_last_error() if there were no errors. Available since PHP 5.2.0.
PREG_INTERNAL_ERROR | Returned by preg_last_error() if there was an internal PCRE error. Available since PHP 5.2.0.
PREG_BACKTRACK_LIMIT_ERROR | Returned by preg_last_error() if backtrack limit was exhausted. Available since PHP 5.2.0.
PREG_RECURSION_LIMIT_ERROR | Returned by preg_last_error() if recursion limit was exhausted. Available since PHP 5.2.0.
PREG_BAD_UTF8_ERROR | Returned by preg_last_error() if the last error was caused by malformed UTF-8 data (only when running a regex in UTF-8 mode). Available since PHP 5.2.0.
PREG_BAD_UTF8_OFFSET_ERROR | Returned by preg_last_error() if the offset didn't correspond to the begin of a valid UTF-8 code point (only when running a regex in UTF-8 mode). Available since PHP 5.3.0.
PCRE_VERSION | PCRE version and release date (e.g. "7.0 18-Dec-2006"). Available since PHP 5.2.4.
资源类型
范例
PCRE


范例

Example #1 Examples of valid patterns

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Example #2 Examples of invalid patterns

  • /href='(.*)' - missing ending delimiter
  • /\w+\s*\w+/J - unknown modifier 'J'
  • 1-\d3-\d3-\d4| - missing starting delimiter

预定义常量
PCRE Patterns
PCRE


PCRE Patterns

Table of Contents

  • 解说正则表达式模式中使用的修正符
  • Perl Differences
  • 解说 Perl 兼容正则表达式的语法
范例
模式修正符
PCRE


解说正则表达式模式中使用的修正符

PCRE Patterns
Differences From Perl
PCRE Patterns
PHP 手册

模式修正符

(No version information available, might be only in CVS)

模式修正符 — 解说正则表达式模式中使用的修正符

说明

下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。修正符中的空格和换行被忽略，其它字符会导致错误。

i (PCRE_CASELESS)
如果设定此修正符，模式中的字符将同时匹配大小写字母。
m（PCRE_MULTILINE）
默认情况下，PCRE 将目标字符串作为单一的一“行”字符所组成的（甚至其中包含有换行符也是如此）。“行起始”元字符（^）仅仅匹配字符串的起始，“行结束”元字符（$）仅仅匹配字符串的结束，或者最后一个字符是换行符时其前面（除非设定了 D 修正符）。这和 Perl 是一样的。 当设定了此修正符，“行起始”和“行结束”除了匹配整个字符串开头和结束外，还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“\n”字符或者模式中没有 ^ 或 $，则设定此修正符没有任何效果。
s（PCRE_DOTALL）
如果设定了此修正符，模式中的圆点元字符（.）匹配所有的字符，包括换行符。没有此设定的话，则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的，无论是否设定了此修正符。
x（PCRE_EXTENDED）
如果设定了此修正符，模式中的空白字符除了被转义的或在字符类中的以外完全被忽略，在未转义的字符类之外的 # 以及下一个换行符之间的所有字符，包括两头，也都被忽略。这和 Perl 的 /x 修正符是等效的，使得可以在复杂的模式中加入注释。然而注意，这仅适用于数据字符。空白字符可能永远不会出现于模式中的特殊字符序列，例如引入条件子模式的序列 (?( 中间。
e
如果设定了此修正符，preg_replace() 在替换字符串中对逆向引用作正常的替换，将其作为 PHP 代码求值，并用其结果来替换所搜索的字符串。

只有 preg_replace() 使用此修正符，其它 PCRE 函数将忽略之。

Note: 本修正符在 PHP3 中不可用。

A（PCRE_ANCHORED）
如果设定了此修正符，模式被强制为“anchored”，即强制仅从目标字符串的开头开始匹配。此效果也可以通过适当的模式本身来实现（在 Perl 中实现的唯一方法）。
D（PCRE_DOLLAR_ENDONLY）
如果设定了此修正符，模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时，如果最后一个字符是换行符的话，美元符号也会匹配此字符之前（但不会匹配任何其它换行符之前）。如果设定了 m 修正符则忽略此选项。Perl 中没有与其等价的修正符。
S
当一个模式将被使用若干次时，为加速匹配起见值得先对其进行分析。如果设定了此修正符则会进行额外的分析。目前，分析一个模式仅对没有单一固定起始字符的 non-anchored 模式有用。
U（PCRE_UNGREEDY）
本修正符反转了匹配数量的值使其不是默认的重复，而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符或者在数量符之后跟一个问号（如 .*?）来启用此选项。
X（PCRE_EXTRA）
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式中的任何反斜线后面跟上一个没有特殊意义的字母导致一个错误，从而保留此组合以备将来扩充。默认情况下，和 Perl 一样，一个反斜线后面跟一个没有特殊意义的字母被当成该字母本身。当前没有其它特性受此修正符控制。
u（PCRE_UTF8）
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用，在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。

PCRE Patterns
Differences From Perl
PCRE Patterns


Perl Differences

The differences described here are with respect to Perl 5.005.

  1. By default, a whitespace character is any character that the C library function isspace() recognizes, though it is possible to compile PCRE with alternative character type tables. Normally isspace() matches space, formfeed, newline, carriage return, horizontal tab, and vertical tab. Perl 5 no longer includes vertical tab in its set of whitespace characters. The \v escape that was in the Perl documentation for a long time was never in fact recognized. However, the character itself was treated as whitespace at least up to 5.002. In 5.004 and 5.005 it does not match \s.
  2. PCRE does not allow repeat quantifiers on lookahead assertions. Perl permits them, but they do not mean what you might think. For example, (?!a){3} does not assert that the next three characters are not "a". It just asserts that the next character is not "a" three times.
  3. Capturing subpatterns that occur inside negative lookahead assertions are counted, but their entries in the offsets vector are never set. Perl sets its numerical variables from any such patterns that are matched before the assertion fails to match something (thereby succeeding), but only if the negative lookahead assertion contains just one branch.
  4. Though binary zero characters are supported in the subject string, they are not allowed in a pattern string because it is passed as a normal C string, terminated by zero. The escape sequence "\x00" can be used in the pattern to represent a binary zero.
  5. The following Perl escape sequences are not supported: \l, \u, \L, \U. In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine.
  6. The Perl \G assertion is not supported as it is not relevant to single pattern matches.
  7. Fairly obviously, PCRE does not support the (?{code}) and (??{code}) construction. However, there is support for recursive patterns.
  8. There are at the time of writing some oddities in Perl 5.005_02 concerned with the settings of captured strings when part of a pattern is repeated. For example, matching "aba" against the pattern /^(a(b)?)+$/ sets $2 to the value "b", but matching "aabbaa" against /^(aa(bb)?)+$/ leaves $2 unset. However, if the pattern is changed to /^(aa(b(b))?)+$/ then $2 (and $3) get set. In Perl 5.004 $2 is set in both cases, and that is also TRUE of PCRE. If in the future Perl changes to a consistent state that is different, PCRE may change to follow.
  9. Another as yet unresolved discrepancy is that in Perl 5.005_02 the pattern /^(a)?(?(1)a|b)+$/ matches the string "a", whereas in PCRE it does not. However, in both Perl and PCRE /^(a)?a/ matched against "a" leaves $1 unset.

  10. PCRE provides some extensions to the Perl regular expression facilities:

    1. Although lookbehind assertions must match fixed length strings, each alternative branch of a lookbehind assertion can match a different length of string. Perl 5.005 requires them all to have the same length.
    2. If PCRE_DOLLAR_ENDONLY is set and PCRE_MULTILINE is not set, the $ meta-character matches only at the very end of the string.
    3. If PCRE_EXTRA is set, a backslash followed by a letter with no special meaning is faulted.
    4. If PCRE_UNGREEDY is set, the greediness of the repetition quantifiers is inverted, that is, by default they are not greedy, but if followed by a question mark they are.

模式修正符
模式语法
PCRE Patterns


解说 Perl 兼容正则表达式的语法

Differences From Perl
PCRE 函数
PCRE Patterns
PHP 手册

模式语法

(No version information available, might be only in CVS)

模式语法 — 解说 Perl 兼容正则表达式的语法

说明

PCRE 库是一组用和 Perl 5 相同的语法和语义实现了正则表达式模式匹配的函数，不过有少许区别（见下面）。当前 PCRE 的实现是与 Perl 5.005 相符的。

与 Perl 的区别

这里谈到的区别是就 Perl 5.005 来说的。

  1. 默认情况下，空白字符是 C 语言库函数 isspace() 所能识别的任何字符，尽管有可能与别的字符类型表编译在一起。通常 isspace() 匹配空格，换页符，换行符，回车符，水平制表符和垂直制表符。Perl 5 不再将垂直制表符包括在空白字符中了。事实上长久以来存在于 Perl 文档中的转义序列 \v 从未被识别过，不过该字符至少到 5.002 为止都被当成空白字符的。在 5.004 和 5.005 中 \s 不匹配此字符。
  2. PCRE 不允许在向前断言中使用重复的数量符。Perl 允许这样，但可能不是你想象中的含义。例如，(?!a){3} 并不是断言下面三个字符不是“a”，而是断言下一个字符不是“a”三次。
  3. 捕获出现在排除模式断言中的子模式虽然被计数，但并未在偏移向量中设定其条目。Perl 在匹配失败前从此种模式中设定其数字变量，但只在排触摸式断言只包含一个分支时。
  4. 尽管目标字符串中支持二进制的零字符，但不能出现在模式字符串中，因为它被当作普通的 C 字符串传递，以二进制零终止。转义序列“\x00”可以在模式中用来表示二进制零。
  5. 不支持下列 Perl 转义序列：\l，\u，\L，\U。事实上这些是由 Perl 的字符串处理来实现的，并不是模式匹配引擎的一部分。
  6. 不支持 Perl 的 \G 断言，因为这和单个的模式匹配无关。
  7. 很明显，PCRE 不支持 (?{code}) 结构。
  8. 当部分模式重复的时候，有关 Perl 5.005_02 捕获字符串的设定有些古怪的地方。举例说，用模式 /^(a(b)?)+$/ 去匹配 "aba" 会将 $2 设为 "b"，但是用模式 /^(aa(bb)?)+$/ 去匹配 "aabbaa" 会使 $2 无值。然而，如果把模式改成 /^(aa(b(b))?)+$/，则 $2（和 $3）就有值了。在 Perl 5.004 中以上两种情况下 $2 都会被赋值，在 PCRE 中也是 TRUE。如果以后 Perl 改了，PCRE 可能也会跟着改。
  9. 另一个未解决的矛盾是 Perl 5.005_02 中模式 /^(a)?(?(1)a|b)+$/ 能匹配上字符串 "a"，但是 PCRE 不会。然而，在 Perl 和 PCRE 中用 /^(a)?a/ 去匹配 "a" 会使 $1 没有值。

  10. PCRE 提供了一些对 Perl 正则表达式机制的扩展：

    1. 尽管向后断言必须匹配固定长度字符串，但每个向后断言的分支可以匹配不同长度的字符串。Perl 5.005 要求所有分支的长度相同。
    2. 如果设定了 PCRE_DOLLAR_ENDONLY 而没有设定 PCRE_MULTILINE，则 $ 元字符只匹配字符串的最末尾。
    3. 如果设定了 PCRE_EXTRA，反斜线后面跟一个没有特殊含义的字母会出错。
    4. 如果设定了 PCRE_UNGREEDY，则重复的数量符的 greed 被反转，即，默认时不是 greedy，但如果后面跟上一个问号就变成 greedy 了。

正则表达式详解

介绍

下面说明 PCRE 所支持的正则表达式的语法和语义。Perl 文档和很多其它书中也解说了正则表达式，有的书中有很多例子。Jeffrey Friedl 写的“Mastering Regular Expressions”，由 O'Reilly 出版社发行（ISBN 1-56592-257-3），包含了大量细节。这里的说明只是个参考文档。

正则表达式是从左向右去匹配目标字符串的一组模式。大多数字符在模式中表示它们自身并匹配目标中相应的字符。作为一个小例子，模式 The quick brown fox 匹配了目标字符串中与其完全相同的一部分。

元字符

正则表达式的威力在于其能够在模式中包含选择和循环。它们通过使用元字符来编码在模式中，元字符不代表其自身，它们用一些特殊的方式来解析。

有两组不同的元字符：一种是模式中除了方括号内都能被识别的，还有一种是在方括号内被识别的。方括号之外的元字符有这些：

\
有数种用途的通用转义符
^
断言目标的开头（或在多行模式下行的开头，即紧随一换行符之后）
$
断言目标的结尾（或在多行模式下行的结尾，即紧随一换行符之前）
.
匹配除了换行符外的任意一个字符（默认情况下）
[
字符类定义开始
]
字符类定义结束
|
开始一个多选一的分支
(
子模式开始
)
子模式结束
?
扩展 ( 的含义，也是 0 或 1 数量限定符，以及数量限定符最小值
*
匹配 0 个或多个的数量限定符
+
匹配 1 个或多个的数量限定符
{
最少／最多数量限定开始
}
最少／最多数量限定结束

模式中方括号内的部分称为“字符类”。字符类中可用的元字符为：

\
通用转义字符
^
排除字符类，但仅当其为第一个字符时有效
-
指出字符范围
]
结束字符类

以下说明了每一个元字符的用法。

反斜线（\）

反斜线字符有几种用途。首先，如果其后跟着一个非字母数字字符，则取消该字符可能具有的任何特殊含义。此种将反斜线用作转义字符的用法适用于无论是字符类之中还是之外。

例如，如果想匹配一个“*”字符，则在模式中用“\*”。这适用于无论下一个字符是否会被当作元字符来解释，因此在非字母数字字符之前加上一个“\”来指明该字符就代表其本身总是安全的。尤其是，如果要匹配一个反斜线，用“\\”。

Note: 单引号或双引号括起来的 PHP 字符串中的反斜线有特殊含义。因此必须用正则表达式的 \\ 来匹配 \，而在 PHP 代码中要用 "\\\\" 或 '\\\\'。

如果模式编译时加上了 PCRE_EXTENDED 选项，模式中的空白字符（字符类中以外的）以及字符类之外的“#”到换行符之间的字符都被忽略。可以用转义的反斜线将空白字符或者“#”字符包括到模式中去。

反斜线的第二种用途提供了一种在模式中以可见方式去编码不可打印字符的方法。并没有不可打印字符出现的限制，除了代表模式结束的二进制零以外。但用文本编辑器来准备模式的时候，通常用以下的转义序列来表示那些二进制字符更容易一些：

\a
alarm，即 BEL 字符（0x07）
\cx
"control-x"，其中 x 是任意字符
\e
escape（0x1B）
\f
换页符 formfeed（0x0C）
\n
换行符 newline（0x0A）
\r
回车符 carriage return（0x0D）
\t
制表符 tab（0x09）
\xhh
十六进制代码为 hh 的字符
\ddd
八进制代码为 ddd 的字符，或 backreference

“\cx”的精确效果如下：如果“x”是小写字母，则被转换为大写字母。接着字符中的第 6 位（0x40）被反转。从而“\cz”成为 0x1A，但“\c{”成为 0x3B，而“\c;”成为 0x7B。

在“\x”之后最多再读取两个十六进制数字（其中的字母可以是大写或小写）。在 UTF-8 模式下，允许用“\x{...}”，花括号中的内容是表示十六进制数字的字符串。原来的十六进制转义序列 \xhh 如果其值大于 127 的话则匹配了一个双字节 UTF-8 字符。

在“\0”之后最多再读取两个八进制数字。以上两种情况下，如果少于两个数字，则只使用已出现的。因此序列“\0\x\07”代表两个二进制的零加一个 BEL 字符。如果是八进制数字则确保在开始的零后面再提供两个数字。

处理反斜线后面跟着一个不是 0 的数字比较复杂。在字符类之外，PCRE 以十进制数字读取该数字及其后面的数字。如果数字小于 10，或者之前表达式中捕获到至少该数字的左圆括号，则这个序列将被作为逆向引用。有关此如何运作的说明在后面，以及括号内的子模式。

在字符类之中，或者如果十进制数字大于 9 并且之前没有那么多捕获的子模式，PCRE 重新从反斜线开始读取其后的最多三个八进制数字，并以最低位的 8 个比特产生出一个单一字节。任何其后的数字都代表自身。例如：

\040
另一种表示空格的方法
\40
同上，如果之前捕获的子模式少于 40 个的话
\7
总是一个逆向引用
\11
可能是个逆向引用，或者是制表符 tab
\011
总是表示制表符 tab
\0113
表示制表符 tab 后面跟着一个字符“3”
\113
表示八进制代码为 113 的字符（因为不能超过 99 个逆向引用）
\377
表示一个所有的比特都是 1 的字节
\81
要么是一个逆向引用，要么是一个二进制的零后面跟着两个字符“8”和“1”

注意八进制值 100 或更大的值之前不能以零打头，因为不会读取（反斜线后）超过三个八进制数字。

所有的定义了一个单一字节的序列可以用于字符类之中或之外。此外，在字符类之中，序列“\b”被解释为反斜线字符（0x08），而在字符类之外有不同含义（见下面）。

反斜线的第三个用法是指定通用字符类型：

\d
任一十进制数字
\D
任一非十进制数的字符
\s
任一空白字符
\S
任一非空白字符
\w
任一“字”的字符
\W
任一“非字”的字符

任何一个转义序列将完整的字符组合分割成两个分离的部分。任一给定的字符匹配一个且仅一个转义序列。

“字”的字符是指任何一个字母或数字或下划线，也就是说，任何可以是 Perl "word" 的字符。字母和数字的定义由 PCRE 字符表控制，可能会根据指定区域的匹配而改变。举例说，在 "fr" (French) 区域，某些编码大于 128 的字符用来表示重音字母，这些字符能够被 \w 所匹配。

这些字符类型序列可以出现在字符类之中和之外。每一个匹配相应类型中的一个字符。如果当前匹配点在目标字符串的结尾，以上所有匹配都失败，因为没有字符可供匹配。

反斜线的第四个用法是某些简单的断言。断言是指在一个匹配中的特定位置必须达到的条件，并不会消耗目标字符串中的任何字符。子模式中更复杂的断言的用法在下面描述。反斜线的断言有：

\b
字分界线
\B
非字分界线
\A
目标的开头（独立于多行模式）
\Z
目标的结尾或位于结尾的换行符前（独立于多行模式）
\z
目标的结尾（独立于多行模式）
\G
目标中的第一个匹配位置

这些断言可能不能出现在字符类中（但是注意 "\b" 有不同的含义，在字符类之中也就是反斜线字符）。

字边界是目标字符串中的一个位置，其当前字符和前一个字符不能同时匹配 \w 或者 \W（也就是其中一个匹配 \w 而另一个匹配 \W），或者是字符串的开头或结尾，假如第一个或最后一个字符匹配 \w 的话。

\A，\Z 和 \z 断言与传统的音调符和美元符（下面说明）的不同之处在于它们仅匹配目标字符串的绝对开头和结尾而不管设定了任何选项。它们不受 PCRE_NOTBOL 或 PCRE_NOTEOL 选项的影响。\Z 和 \z 的不同之处在于 \Z 匹配了作为字符串最后一个字符的换行符之前以及字符串的结尾，而 \z 仅匹配字符串的结尾。

\G 断言仅在当前匹配位置是匹配开始那一点时为真，如 preg_match() 的 offset 参数指定那样。当 offset 的值非零时这和 \A 不同。自 PHP 4.3.3 起可用。

\Q 和 \E 自 PHP 4.3.3 起可被用来在模式中忽略正则表达式匹配字符。例如：\w+\Q.$.\E$ 将匹配一个或多个可组成字的字符，其后接着的是字面上的 .$. 并且位于字符串末尾。

Unicode 字符属性

自 PHP 4.4.0 和 5.1.0 起，当选择了 additional escape sequences to match generic character types are available UTF-8 模式时有三种更多的转移序列可用：

\p{xx}
具有 xx 属性的一个字符
\P{xx}
没有 xx 属性的一个字符
\X
一个扩展 Unicode 序列

以上由 xx 所表示的属性名限于 Unicode 通用类型属性。每个字符具有一个此种属性，由两个缩写字母指定。为和 Perl 兼容，可以在左花括号和属性名中间加入一个上箭头符号来表示排除属性。例如 \p{^Lu} 就和 \P{Lu} 相同。

如果在 \p 或 \P 中只用了一个字母，则包括了所有该字母开头的属性。此情况下，如果不是排除的话，可以省略花括号。下面例子中的两项具有相同效果：

    \p{L}
    \pL

所支持的属性代码
C | Other - 其它
Cc | Control - 控制
Cf | Format - 格式
Cn | Unassigned - 无符号
Co | Private use - 私有
Cs | Surrogate - 代替
L | Letter -字母
Ll | Lower case letter - 小写字母
Lm | Modifier letter - 修正符字母
Lo | Other letter - 其它字母
Lt | Title case letter - 标题大写字母
Lu | Upper case letter - 大写字母
M | Mark - 标记
Mc | Spacing mark - 空格标记
Me | Enclosing mark - 环绕标记
Mn | Non-spacing mark - 非空格标记
N | Number - 数字
Nd | Decimal number - 十进制数字
Nl | Letter number - 字母数字
No | Other number - 其它数字
P | Punctuation - 标点符号
Pc | Connector punctuation - 连接标点符
Pd | Dash punctuation - 横线标点符
Pe | Close punctuation - 结束标点符
Pf | Final punctuation - 最终标点符
Pi | Initial punctuation - 起始标点符
Po | Other punctuation - 其它标点符号
Ps | Open punctuation - 开始标点符
S | Symbol - 符号
Sc | Currency symbol - 货币符号
Sk | Modifier symbol - 修正符号
Sm | Mathematical symbol - 算术符号
So | Other symbol - 其它符号
Z | Separator - 分隔符
Zl | Line separator - 行分隔符
Zp | Paragraph separator - 段落分隔符
Zs | Space separator - 空格分隔符

PCRE 不支持扩展属性例如 "Greek" 或 "InMusicalSymbols"。

指定不区分大小写的匹配不影响此类转义序列。例如 \p{Lu} 总是仅和大写字母匹配。

\X 转移符匹配能组成扩展 Unicode 序列的任何数目的 Unicode 字符。\X 和 (?>\PM\pM*) 相同。

也就是，它匹配一个没有“mark”属性，后面跟着零或多个具有“mark”属性的字符，并且将此序列看成原子组（见下）。典型的具有“mark”属性的字母是影响到前面的字符的重音符。

用 Unicode 属性来匹配字符并不快，因为 PCRE 不得不搜索一个包含超过一万五千字符数据的结构。这正是为什么在 PCRE 中传统的转义序列例如 \d 和 \w 不使用 Unicode 属性。

音调符（^）和美元符（$）

在字符类之外，默认匹配模式下，音调符是一个仅在当前匹配点是目标字符串的开头时才为真的断言。在字符类之中，音调符的含义完全不同（见下面）。

如果涉及到几选一时音调符不需要是模式的第一个字符，但如果出现在某个分支中则应该是该选择分支的第一个字符。如果所有的选择分支都以音调符开头，这就是说，如果模式限制为只匹配目标的开头，那么这是一个紧固模式。（也有其它结构可以使模式成为紧固的。）

美元符是一个仅在当前匹配点是目标字符串的结尾或者当最后一个字符是换行符时其前面的位置时为 TRUE 的断言（默认情况下）。如果涉及到几选一时美元符不需要是模式的最后一个字符，但应该是其出现的分支中的最后一个字符。美元符在字符类之中没有特殊含义。

美元符的含义可被改变使其仅匹配字符串的结尾，只要在编译或匹配时设定了 PCRE_DOLLAR_ENDONLY 选项即可。这并不影响 \Z 断言。

如果设定了 PCRE_MULTILINE 选项则音调符和美元符的含义被改变了。此种情况下，它们分别匹配紧接着内部 "\n" 字符的之后和之前，再加上目标字符串的开头和结尾。例如模式 /^abc$/ 在多行模式下匹配了目标字符串 "def\nabc"，但正常时不匹配。因此，由于所有分支都以 "^" 开头而在单行模式下成为紧固的模式在多行模式下为非紧固的。如果设定了 PCRE_MULTILINE，则 PCRE_DOLLAR_ENDONLY 选项会被忽略。

注意 \A，\Z 和 \z 序列在两种情况下都可以用来匹配目标的开头和结尾，如果模式所有的分支都以 \A 开始则其总是紧固的，不论是否设定了 PCRE_MULTILINE。

句号（.）

在字符类之外，模式中的圆点可以匹配目标中的任何一个字符，包括不可打印字符，但不匹配换行符（默认情况下）。如果设定了 PCRE_DOTALL 则圆点也会匹配换行符。处理圆点与处理音调符和美元符是完全独立的，唯一的联系就是它们都涉及到换行符。圆点在字符类之中没有特殊含义。

\C 可以用来匹配单一字节。在 UTF-8 模式下这有意义，因为句号可以匹配由多个字节组成的整个字符。

方括号（[]）

左方括号开始了一个字符类，右方括号结束之。单独一个右方括号不是特殊字符。如果在字符类之中需要一个右方括号，则其应该是字符类中的第一个字符（如果有音调符的话，则紧接音调符之后），或者用反斜线转义。

字符类匹配目标中的一个字符，该字符必须是字符类定义的字符集中的一个；除非字符类中的第一个字符是音调符，此情况下目标字符必须不在字符类定义的字符集中。如果在字符类中需要音调符本身，则其必须不是第一个字符，或用反斜线转义。

举例说，字符类 [aeiou] 匹配了任何一个小写元音字母，而 [^aeiou] 匹配了任何一个不是小写元音字母的字符。注意音调符只是一个通过枚举指定那些不在字符类之中的字符的符号。不是断言：仍旧会消耗掉目标字符串中的一个字符，如果当前位置在字符串结尾的话则失败。

当设定了不区分大小写的匹配时，字符类中的任何字母同时代表了其大小写形式，因此举例说，小写的 [aeiou] 同时匹配了 "A" 和 "a"，小写的 [^aeiou] 不匹配 "A"，但区分大小写时则会匹配。

换行符在字符类中不会特殊对待，不论 PCRE_DOTALL 或者 PCRE_MULTILINE 选项设定了什么值。形如 [^a] 的字符类总是能够和换行符相匹配的。

减号（-）字符可以在字符类中指定一个字符范围。例如，[d-m] 匹配了 d 和 m 之间的任何字符，包括两者。如果字符类中需要减号本身，则必须用反斜线转义或者放到一个不能被解释为指定范围的位置，典型的位置是字符类中的第一个或最后一个字符。

字面上的 "]" 不可能被当成字符范围的结束。形如 [W-]46] 的模式会被解释为包括两个字符的字符类（"W" and "-"）后面跟着字符串 "46]"，因此其会匹配 "W46]" 或者 "-46]"。然而，如果将 "]" 用反斜线转义，则会被当成范围的结束来解释。因此 [W-\]46] 会被解释为一个字符类，包含有一个范围以及两个单独的字符。八进制或十六进制表示的 "]" 也可以用来表示范围的结束。

范围是以 ASCII 比较顺序来操作的。也可以用于用数字表示的字符，例如 [\000-\037]。在不区分大小写匹配中如果范围里包括了字母，则同时匹配大小写字母。例如 [W-c] 等价于 [][\^_`wxyzabc] 不区分大小写地匹配。如果使用了 "fr" 区域的字符表，[\xc8-\xcb] 匹配了大小写的重音 E 字符。

字符类型 \d，\D，\s，\S，\w 和 \W 也可以出现于字符类中，并将其所能匹配的字符添加进字符类中。例如，[\dABCDEF] 匹配了任何十六进制数字。用音调符可以很方便地制定严格的字符集，例如 [^\W_] 匹配了任何字母或数字，但不匹配下划线。

任何除了 \，-，^（位于开头）以及结束的 ] 之外的非字母数字字符在字符类中都没有特殊含义，但是将它们转义也没有坏处。

竖线（|）

竖线字符用来分隔多选一模式。例如，模式：

       gilbert|sullivan
匹配了 "gilbert" 或者 "sullivan" 中的一个。可以有任意多个分支，也可以有空的分支（匹配空字符串）。匹配进程从左到右轮流尝试每个分支，并使用第一个成功匹配的分支。如果分支在子模式（在下面定义）中，则“成功匹配”表示同时匹配了子模式中的分支以及主模式的其它部分。

内部选项设定

PCRE_CASELESS，PCRE_MULTILINE，PCRE_DOTALL，PCRE_EXTRA 和 PCRE_EXTENDED 的设定可以在模式内部通过包含在 "(?" 和 ")" 之间的 Perl 选项字母序列来改变。选项字母为：

内部选项字母
i | 代表 PCRE_CASELESS
m | 代表 PCRE_MULTILINE
s | 代表 PCRE_DOTALL
x | 代表 PCRE_EXTENDED
U | 代表 PCRE_UNGREEDY
X | 代表 PCRE_EXTRA

例如，(?im) 设定了不区分大小写，多行匹配。也可以通过在字母前加上减号来取消这些选项。例如组合的选项 (?im-sx)，设定了 PCRE_CASELESS 和 PCRE_MULTILINE，并取消了 PCRE_DOTALL 和 PCRE_EXTENDED。如果一个字母在减号之前与之后都出现了，则该选项被取消设定。

如果选项改变出现于顶层（即不在子模式的括号中），则改变应用于其后的剩余模式。因此 /ab(?i)c/ 只匹配 "abc" 和 and "abC"。此行为是自 PHP 4.3.3 起绑定的 PCRE 4.0 中被修改的。在此版本之前 /ab(?i)c/ 的执行与 /abc/i 相同（例如匹配 "ABC" 和 "aBc"）。

如果选项改变出现于子模式中，则效果不同。这是 Perl 5.005 的行为的一个变化。子模式中的选项改变只影响到子模式内部其后的部分，因此 (a(?i)b)c 将只匹配 "abc" 和 "aBc"（假定没有使用 PCRE_CASELESS）。这意味着选项在模式的不同部位可以造成不同的设定。在一个分支中的改变可以传递到同一个子模式中后面的分支中，例如 (a(?i)b|c) 将匹配 "ab"，"aB"，"c" 和 "C"，尽管在匹配 "C" 的时候第一个分支会在选项设定之前就被丢弃。这是因为选项设定的效果是在编译时确定的，否则会造成非常怪异的行为。

PCRE 专用选项 PCRE_UNGREEDY 和 PCRE_EXTRA 可以和 Perl 兼容选项以同样的方式来改变，分别使用字母 U 和 X。(?X) 标记设定有些特殊，它必须出现于任何其它特性之前。最好放在最开头的位置。

子模式

子模式由圆括号定界，可以嵌套。将模式中的一部分标记为子模式可以：

1. 将多选一的分支局部化。例如，模式：

       cat(aract|erpillar|)
匹配了 "cat"，"cataract" 或 "caterpillar" 之一，没有圆括号的话将匹配 "cataract"，"erpillar" 或空字符串。

2. 将子模式设定为捕获子模式（如同以前定义的）。当整个模式匹配时，目标字符串中匹配了子模式的部分会通过 pcre_exec() 的 ovector 参数传递回调用者。左圆括号从左到右计数（从 1 开始）以取得捕获子模式的数目。

例如，如果将字符串 "the red king" 来和模式

       the ((red|white) (king|queen))
进行匹配，捕获的子串为 "red king"，"red" 以及 "king"，并被计为 1，2 和 3。

简单的括号实现两种功能的事实不总是有帮助的。经常有需要一组子模式但不需要捕获的时候。如果左括号后面跟着 "?:"，子模式不做任何捕获，并且在计算任何之后捕获的子模式时也不算在内。例如，如果用字符串 "the white queen" 去和模式 the ((?:red|white) (king|queen)) 匹配，捕获的子串是 "white queen" 和 "queen"，并被计为 1 和 2。所捕获的子串的最大数目是 99，所有子模式，包括捕获的和没捕获的，最大数目是 200。

作为方便的速记，如果在非捕获子模式的开头需要任何选项设定，则选项字母可以出现在 "?" 和 ":" 中间。因此下面两个模式

       (?i:saturday|sunday)
       (?:(?i)saturday|sunday)

匹配了完全相同的一组字符串。因为分支选项是从左向右尝试的，并且直到子模式结束前都不会重置选项，因此在一个分支中的选项设定会影响到之后的分支，所以以上模式会匹配 "SUNDAY" 和 "Saturday"。

自 PHP 4.3.3 起有可能通过 (?P<name>pattern) 来给一个模式命名。匹配结果的数组会同时包含以模式名为索引和以数字为索引的部分。

重复

重复是由数量符指定的，可以接以下任何一项：

  • 单个字符，可以是被转义的
  • . 匹配字符
  • 一类字符
  • 一个反向引用（见下一节）
  • 一个括号中的子模式（除非是个断言 - 见下）

普通的重复数量符指定了所允许的匹配的最小和最大数目，方法是将两个数字放在花括号中，中间用逗号分隔。数字必须小于 65536，并且第一个数字必须小于或等于第二个数字。例如：z{2,4} 匹配了 "zz"，"zzz" 或 "zzzz"。单个的右花括号不算是特殊字符。如果省略了第二个数字但是有逗号，则表示没有上限。如果同时省略了第二个数字和逗号，则数量符指定了匹配的准确数目。因此 [aeiou]{3,} 匹配至少连续 3 个元音，但是可以匹配更多。\d{8} 则匹配了正好 8 个数字。出现在不允许放置数量符位置或者不符合数量符语法的左花括号，被当成字面上的该字符。例如 {,6} 不是一个数量符，而是字面上的这四个字符。

数量符 {0} 是允许的，导致表达式理解为前一项和数量符不存在。

为方便起见（以及历史性的兼容），三个最常用的数量符都有单字符的缩写：

单字符数量符
* | 等同于 {0,}
+ | 等同于 {1,}
? | 等同于 {0,1}

有可能通过在一个不匹配任何字符的子模式后面跟一个没有上限的数量符构造出无限循环，例如：(a?)*。

对此类模式早期版本的 Perl 和 PCRE 会在编译时给出错误。不过由于这在某些情况下有用，如今已经接受此种模式了，但是如果任何子模式的重复确实不匹配任何字符，则循环会被强制打断。

默认时，数量符是“贪吃型”（greedy）的，即会在不导致剩余模式失败的情况下尽可能多地匹配（直到所允许的数目上限）。这会出问题的经典例子是尝试匹配 C 语言的注释。在 /* 和 */ 序列中间，可能会出现单个的 * 和 / 字符。对 C 注释如果试图用 /\*.*\*/ 去和字符串 /* first comment */ not comment /* second comment */ 匹配会失败，因为由于 .* 项目的贪吃性，会匹配成整个字符串。

不过，如果在后面加一个问号数量符，则会停止贪吃性，而变成匹配尽可能少的数目，因此模式 /\*.*?\*/ 就会正确匹配 C 注释。各种数量符的含义并没有改变，只是优先的匹配数目。不要将问号的此用法和其自己作为数量符的使用混淆。因为有两种用法，有时可以两个一起出现，例如 \d??\d 会优先匹配一个数字，但如别无选择也可以匹配两个以使剩余模式匹配。

如果设定了 PCRE_UNGREEDY 选项（此选项 Perl 中没有）则数量符默认不是贪吃型的，但是在个别模式后加上一个问号可以将其变成贪吃型的。换句话说，这可以反转默认的行为。

后面跟上一个 + 的数量符是“占有性”（possessive）的。它会匹配尽可能多的字符而不管剩余的模式。因此 .*abc 可以匹配 "aabc" 但是 .*+abc 就不会，因为 .*+ 已经匹配了整个字符串。自 PHP 4.3.3 起可以用占有性数量符可以来加快处理过程。

When a parenthesized subpattern is quantified with a minimum repeat count that is greater than 1 or with a limited maximum, more store is required for the compiled pattern, in proportion to the size of the minimum or maximum.

If a pattern starts with .* or .{0,} and the PCRE_DOTALL option (equivalent to Perl's /s) is set, thus allowing the . to match newlines, then the pattern is implicitly anchored, because whatever follows will be tried against every character position in the subject string, so there is no point in retrying the overall match at any position after the first. PCRE treats such a pattern as though it were preceded by \A. In cases where it is known that the subject string contains no newlines, it is worth setting PCRE_DOTALL when the pattern begins with .* in order to obtain this optimization, or alternatively using ^ to indicate anchoring explicitly.

When a capturing subpattern is repeated, the value captured is the substring that matched the final iteration. For example, after (tweedle[dume]{3}\s*)+ has matched "tweedledum tweedledee" the value of the captured substring is "tweedledee". However, if there are nested capturing subpatterns, the corresponding captured values may have been set in previous iterations. For example, after /(a|(b))+/ matches "aba" the value of the second captured substring is "b".

Back references

Outside a character class, a backslash followed by a digit greater than 0 (and possibly further digits) is a back reference to a capturing subpattern earlier (i.e. to its left) in the pattern, provided there have been that many previous capturing left parentheses.

However, if the decimal number following the backslash is less than 10, it is always taken as a back reference, and causes an error only if there are not that many capturing left parentheses in the entire pattern. In other words, the parentheses that are referenced need not be to the left of the reference for numbers less than 10. See the section entitled "Backslash" above for further details of the handling of digits following a backslash.

A back reference matches whatever actually matched the capturing subpattern in the current subject string, rather than anything matching the subpattern itself. So the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If caseful matching is in force at the time of the back reference, then the case of letters is relevant. For example, ((?i)rah)\s+\1 matches "rah rah" and "RAH RAH", but not "RAH rah", even though the original capturing subpattern is matched caselessly.

There may be more than one back reference to the same subpattern. If a subpattern has not actually been used in a particular match, then any back references to it always fail. For example, the pattern (a|(bc))\2 always fails if it starts to match "a" rather than "bc". Because there may be up to 99 back references, all digits following the backslash are taken as part of a potential back reference number. If the pattern continues with a digit character, then some delimiter must be used to terminate the back reference. If the PCRE_EXTENDED option is set, this can be whitespace. Otherwise an empty comment can be used.

A back reference that occurs inside the parentheses to which it refers fails when the subpattern is first used, so, for example, (a\1) never matches. However, such references can be useful inside repeated subpatterns. For example, the pattern (a|b\1)+ matches any number of "a"s and also "aba", "ababaa" etc. At each iteration of the subpattern, the back reference matches the character string corresponding to the previous iteration. In order for this to work, the pattern must be such that the first iteration does not need to match the back reference. This can be done using alternation, as in the example above, or by a quantifier with a minimum of zero.

Assertions

An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters. The simple assertions coded as \b, \B, \A, \Z, \z, ^ and $ are described above. More complicated assertions are coded as subpatterns. There are two kinds: those that look ahead of the current position in the subject string, and those that look behind it.

An assertion subpattern is matched in the normal way, except that it does not cause the current matching position to be changed. Lookahead assertions start with (?= for positive assertions and (?! for negative assertions. For example, \w+(?=;) matches a word followed by a semicolon, but does not include the semicolon in the match, and foo(?!bar) matches any occurrence of "foo" that is not followed by "bar". Note that the apparently similar pattern (?!foo)bar does not find an occurrence of "bar" that is preceded by something other than "foo"; it finds any occurrence of "bar" whatsoever, because the assertion (?!foo) is always TRUE when the next three characters are "bar". A lookbehind assertion is needed to achieve this effect.

Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. However, if there are several alternatives, they do not all have to have the same fixed length. Thus (?<=bullock|donkey) is permitted, but (?<!dogs?|cats?) causes an error at compile time. Branches that match different length strings are permitted only at the top level of a lookbehind assertion. This is an extension compared with Perl 5.005, which requires all branches to match the same length of string. An assertion such as (?<=ab(c|de)) is not permitted, because its single top-level branch can match two different lengths, but it is acceptable if rewritten to use two top-level branches: (?<=abc|abde) The implementation of lookbehind assertions is, for each alternative, to temporarily move the current position back by the fixed width and then try to match. If there are insufficient characters before the current position, the match is deemed to fail. Lookbehinds in conjunction with once-only subpatterns can be particularly useful for matching at the ends of strings; an example is given at the end of the section on once-only subpatterns.

Several assertions (of any sort) may occur in succession. For example, (?<=\d{3})(?<!999)foo matches "foo" preceded by three digits that are not "999". Notice that each of the assertions is applied independently at the same point in the subject string. First there is a check that the previous three characters are all digits, then there is a check that the same three characters are not "999". This pattern does not match "foo" preceded by six characters, the first of which are digits and the last three of which are not "999". For example, it doesn't match "123abcfoo". A pattern to do that is (?<=\d{3}...)(?<!999)foo

This time the first assertion looks at the preceding six characters, checking that the first three are digits, and then the second assertion checks that the preceding three characters are not "999".

Assertions can be nested in any combination. For example, (?<=(?<!foo)bar)baz matches an occurrence of "baz" that is preceded by "bar" which in turn is not preceded by "foo", while (?<=\d{3}...(?<!999))foo is another pattern which matches "foo" preceded by three digits and any three characters that are not "999".

Assertion subpatterns are not capturing subpatterns, and may not be repeated, because it makes no sense to assert the same thing several times. If any kind of assertion contains capturing subpatterns within it, these are counted for the purposes of numbering the capturing subpatterns in the whole pattern. However, substring capturing is carried out only for positive assertions, because it does not make sense for negative assertions.

Assertions count towards the maximum of 200 parenthesized subpatterns.

Once-only subpatterns

With both maximizing and minimizing repetition, failure of what follows normally causes the repeated item to be re-evaluated to see if a different number of repeats allows the rest of the pattern to match. Sometimes it is useful to prevent this, either to change the nature of the match, or to cause it fail earlier than it otherwise might, when the author of the pattern knows there is no point in carrying on.

Consider, for example, the pattern \d+foo when applied to the subject line 123456bar

After matching all 6 digits and then failing to match "foo", the normal action of the matcher is to try again with only 5 digits matching the \d+ item, and then with 4, and so on, before ultimately failing. Once-only subpatterns provide the means for specifying that once a portion of the pattern has matched, it is not to be re-evaluated in this way, so the matcher would give up immediately on failing to match "foo" the first time. The notation is another kind of special parenthesis, starting with (?> as in this example: (?>\d+)bar

This kind of parenthesis "locks up" the part of the pattern it contains once it has matched, and a failure further into the pattern is prevented from backtracking into it. Backtracking past it to previous items, however, works as normal.

An alternative description is that a subpattern of this type matches the string of characters that an identical standalone pattern would match, if anchored at the current point in the subject string.

Once-only subpatterns are not capturing subpatterns. Simple cases such as the above example can be thought of as a maximizing repeat that must swallow everything it can. So, while both \d+ and \d+? are prepared to adjust the number of digits they match in order to make the rest of the pattern match, (?>\d+) can only match an entire sequence of digits.

This construction can of course contain arbitrarily complicated subpatterns, and it can be nested.

Once-only subpatterns can be used in conjunction with look-behind assertions to specify efficient matching at the end of the subject string. Consider a simple pattern such as abcd$ when applied to a long string which does not match. Because matching proceeds from left to right, PCRE will look for each "a" in the subject and then see if what follows matches the rest of the pattern. If the pattern is specified as ^.*abcd$ then the initial .* matches the entire string at first, but when this fails (because there is no following "a"), it backtracks to match all but the last character, then all but the last two characters, and so on. Once again the search for "a" covers the entire string, from right to left, so we are no better off. However, if the pattern is written as ^(?>.*)(?<=abcd) then there can be no backtracking for the .* item; it can match only the entire string. The subsequent lookbehind assertion does a single test on the last four characters. If it fails, the match fails immediately. For long strings, this approach makes a significant difference to the processing time.

When a pattern contains an unlimited repeat inside a subpattern that can itself be repeated an unlimited number of times, the use of a once-only subpattern is the only way to avoid some failing matches taking a very long time indeed. The pattern (\D+|<\d+>)*[!?] matches an unlimited number of substrings that either consist of non-digits, or digits enclosed in <>, followed by either ! or ?. When it matches, it runs quickly. However, if it is applied to aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa it takes a long time before reporting failure. This is because the string can be divided between the two repeats in a large number of ways, and all have to be tried. (The example used [!?] rather than a single character at the end, because both PCRE and Perl have an optimization that allows for fast failure when a single character is used. They remember the last single character that is required for a match, and fail early if it is not present in the string.) If the pattern is changed to ((?>\D+)|<\d+>)*[!?] sequences of non-digits cannot be broken, and failure happens quickly.

Conditional subpatterns

It is possible to cause the matching process to obey a subpattern conditionally or to choose between two alternative subpatterns, depending on the result of an assertion, or whether a previous capturing subpattern matched or not. The two possible forms of conditional subpattern are

       (?(condition)yes-pattern)
       (?(condition)yes-pattern|no-pattern)

If the condition is satisfied, the yes-pattern is used; otherwise the no-pattern (if present) is used. If there are more than two alternatives in the subpattern, a compile-time error occurs.

There are two kinds of condition. If the text between the parentheses consists of a sequence of digits, then the condition is satisfied if the capturing subpattern of that number has previously matched. Consider the following pattern, which contains non-significant white space to make it more readable (assume the PCRE_EXTENDED option) and to divide it into three parts for ease of discussion: ( \( )? [^()]+ (?(1) \) )

The first part matches an optional opening parenthesis, and if that character is present, sets it as the first captured substring. The second part matches one or more characters that are not parentheses. The third part is a conditional subpattern that tests whether the first set of parentheses matched or not. If they did, that is, if subject started with an opening parenthesis, the condition is TRUE, and so the yes-pattern is executed and a closing parenthesis is required. Otherwise, since no-pattern is not present, the subpattern matches nothing. In other words, this pattern matches a sequence of non-parentheses, optionally enclosed in parentheses.

If the condition is the string (R), it is satisfied if a recursive call to the pattern or subpattern has been made. At "top level", the condition is false.

If the condition is not a sequence of digits or (R), it must be an assertion. This may be a positive or negative lookahead or lookbehind assertion. Consider this pattern, again containing non-significant white space, and with the two alternatives on the second line:

       (?(?=[^a-z]*[a-z])
       \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} )

The condition is a positive lookahead assertion that matches an optional sequence of non-letters followed by a letter. In other words, it tests for the presence of at least one letter in the subject. If a letter is found, the subject is matched against the first alternative; otherwise it is matched against the second. This pattern matches strings in one of the two forms dd-aaa-dd or dd-dd-dd, where aaa are letters and dd are digits.

注释

序列 (?# 标记了注释的开头直到下一个右括号为止。不允许嵌套注释。注释在模式匹配中完全没有作用。

如果设定了 PCRE_EXTENDED 选项，则不在字符类中间并且未转义的 # 字符标记了注释的开头，直到模式中的下一个换行符结束。

Recursive patterns

Consider the problem of matching a string in parentheses, allowing for unlimited nested parentheses. Without the use of recursion, the best that can be done is to use a pattern that matches up to some fixed depth of nesting. It is not possible to handle an arbitrary nesting depth. Perl 5.6 has provided an experimental facility that allows regular expressions to recurse (among other things). The special item (?R) is provided for the specific case of recursion. This PCRE pattern solves the parentheses problem (assume the PCRE_EXTENDED option is set so that white space is ignored): \( ( (?>[^()]+) | (?R) )* \)

First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non-parentheses, or a recursive match of the pattern itself (i.e. a correctly parenthesized substring). Finally there is a closing parenthesis.

This particular example pattern contains nested unlimited repeats, and so the use of a once-only subpattern for matching strings of non-parentheses is important when applying the pattern to strings that do not match. For example, when it is applied to (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() it yields "no match" quickly. However, if a once-only subpattern is not used, the match runs for a very long time indeed because there are so many different ways the + and * repeats can carve up the subject, and all have to be tested before failure can be reported.

The values set for any capturing subpatterns are those from the outermost level of the recursion at which the subpattern value is set. If the pattern above is matched against (ab(cd)ef) the value for the capturing parentheses is "ef", which is the last value taken on at the top level. If additional parentheses are added, giving \( ( ( (?>[^()]+) | (?R) )* ) \) then the string they capture is "ab(cd)ef", the contents of the top level parentheses. If there are more than 15 capturing parentheses in a pattern, PCRE has to obtain extra memory to store data during a recursion, which it does by using pcre_malloc, freeing it via pcre_free afterwards. If no memory can be obtained, it saves data for the first 15 capturing parentheses only, as there is no way to give an out-of-memory error from within a recursion.

Since PHP 4.3.3, (?1), (?2) and so on can be used for recursive subpatterns too. It is also possible to use named subpatterns: (?P>foo).

If the syntax for a recursive subpattern reference (either by number or by name) is used outside the parentheses to which it refers, it operates like a subroutine in a programming language. An earlier example pointed out that the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If instead the pattern (sens|respons)e and (?1)ibility is used, it does match "sense and responsibility" as well as the other two strings. Such references must, however, follow the subpattern to which they refer.

Performances

Certain items that may appear in patterns are more efficient than others. It is more efficient to use a character class like [aeiou] than a set of alternatives such as (a|e|i|o|u). In general, the simplest construction that provides the required behaviour is usually the most efficient. Jeffrey Friedl's book contains a lot of discussion about optimizing regular expressions for efficient performance.

When a pattern begins with .* and the PCRE_DOTALL option is set, the pattern is implicitly anchored by PCRE, since it can match only at the start of a subject string. However, if PCRE_DOTALL is not set, PCRE cannot make this optimization, because the . metacharacter does not then match a newline, and if the subject string contains newlines, the pattern may match from the character immediately following one of them instead of from the very start. For example, the pattern (.*) second matches the subject "first\nand second" (where \n stands for a newline character) with the first captured substring being "and". In order to do this, PCRE has to retry the match starting after every newline in the subject.

If you are using such a pattern with subject strings that do not contain newlines, the best performance is obtained by setting PCRE_DOTALL, or starting the pattern with ^.* to indicate explicit anchoring. That saves PCRE from having to scan along the subject looking for a newline to restart at.

Beware of patterns that contain nested indefinite repeats. These can take a long time to run when applied to a string that does not match. Consider the pattern fragment (a+)*

This can match "aaaa" in 33 different ways, and this number increases very rapidly as the string gets longer. (The * repeat can match 0, 1, 2, 3, or 4 times, and for each of those cases other than 0, the + repeats can match different numbers of times.) When the remainder of the pattern is such that the entire match is going to fail, PCRE has in principle to try every possible variation, and this can take an extremely long time.

An optimization catches some of the more simple cases such as (a+)*b where a literal character follows. Before embarking on the standard matching procedure, PCRE checks that there is a "b" later in the subject string, and if there is not, it fails the match immediately. However, when there is no following literal this optimization cannot be used. You can see the difference by comparing the behaviour of (a+)*\d with the pattern above. The former gives a failure almost instantly when applied to a whole line of "a" characters, whereas the latter takes an appreciable time with strings longer than about 20 characters.

Differences From Perl
PCRE 函数
PCRE Patterns


PCRE 函数

Table of Contents

  • preg_grep — 返回与模式匹配的数组单元
  • preg_last_error — Returns the error code of the last PCRE regex execution
  • preg_match_all — 进行全局正则表达式匹配
  • preg_match — 进行正则表达式匹配
  • preg_quote — 转义正则表达式字符
  • preg_replace_callback — 用回调函数执行正则表达式的搜索和替换
  • preg_replace — 执行正则表达式的搜索和替换
  • preg_split — 用正则表达式分割字符串
模式语法
preg_grep
PCRE


返回与模式匹配的数组单元

PCRE 函数
preg_last_error
PCRE 函数
PHP 手册

preg_grep

(PHP 4, PHP 5)

preg_grep — 返回与模式匹配的数组单元

说明

array preg_grep ( string $pattern , array $input [, int $flags ] )

preg_grep() 返回一个数组，其中包括了 input 数组中与给定的 pattern 模式相匹配的单元。

flags 可以是以下标记：

PREG_GREP_INVERT
如果传递入此标记，preg_grep() 会返回输入数组中不匹配给定 pattern 的单元。本标记自 PHP 4.2.0 起可用。

自 PHP 4.0.4 起，preg_grep() 返回的结果使用从输入数组来的键名进行索引。如果不希望这样的结果，用 array_values() 对 preg_grep() 返回的结果重新索引。

Example #1 preg_grep() 例子

<?php
// return all array elements
// containing floating point numbers
$fl_array = preg_grep ("/^(\d+)?\.\d+$/", $array);
?>

PCRE 函数
preg_last_error
PCRE 函数


Returns the error code of the last PCRE regex execution

preg_grep
preg_match_all
PCRE 函数
PHP 手册

preg_last_error

(PHP 5 >= 5.2.0)

preg_last_error — Returns the error code of the last PCRE regex execution

说明

int preg_last_error ( void )

Returns the error code of the last PCRE regex execution.

Example #1 preg_last_error() example

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 'Backtrack limit was exhausted!';
}

?>

上例将输出：

Backtrack limit was exhausted!

返回值

Returns one of the following constants (explained on their own page):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (see also pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (see also pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (since PHP 5.3.0)

preg_grep
preg_match_all
PCRE 函数


进行全局正则表达式匹配

preg_last_error
preg_match
PCRE 函数
PHP 手册

preg_match_all

(PHP 4, PHP 5)

preg_match_all — 进行全局正则表达式匹配

说明

int preg_match_all ( string $pattern , string $subject , array $matches [, int $flags ] )

在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。

搜索到第一个匹配项之后，接下来的搜索从上一个匹配项末尾开始。

flags 可以是下列标记的组合（注意把 PREG_PATTERN_ORDER 和 PREG_SET_ORDER 合起来用没有意义）：

PREG_PATTERN_ORDER

对结果排序使 $matches[0] 为全部模式匹配的数组，$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组，以此类推。

<?php
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n";
?>

本例将输出：

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

因此，$out[0] 包含匹配整个模式的字符串，$out[1] 包含一对 HTML 标记之间的字符串。

PREG_SET_ORDER

对结果排序使 $matches[0] 为第一组匹配项的数组，$matches[1] 为第二组匹配项的数组，以此类推。

<?php
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_SET_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n";
?>

本例将输出：

<b>example: </b>, example:
<div align=left>this is a test</div>, this is a test

本例中，$matches[0] 是第一组匹配结果，$matches[0][0] 包含匹配整个模式的文本，$matches[0][1] 包含匹配第一个子模式的文本，以此类推。同样，$matches[1] 是第二组匹配结果，等等。

PREG_OFFSET_CAPTURE

如果设定本标记，对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值，使其中的每个单元也是一个数组，其中第一项为匹配字符串，第二项为其在 subject 中的偏移量。本标记自 PHP 4.3.0 起可用。

如果没有给出标记，则假定为 PREG_PATTERN_ORDER。

返回整个模式匹配的次数（可能为零），如果出错返回 FALSE。

Example #1 从某文本中取得所有的电话号码

<?php
preg_match_all ("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Call 555-1212 or 1-800-555-1212", $phones);
?>

Example #2 搜索匹配的 HTML 标记（greedy）

<?php
// \\2 是一个逆向引用的例子，其在 PCRE 中的含义是
// 必须匹配正则表达式本身中第二组括号内的内容，本例中
// 就是 ([\w]+)。因为字符串在双引号中，所以需要
// 多加一个反斜线。
$html = "<b>bold text</b><a href=howdy.html>click me</a>";

preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) {
  echo "matched: ".$matches[0][$i]."\n";
  echo "part 1: ".$matches[1][$i]."\n";
  echo "part 2: ".$matches[3][$i]."\n";
  echo "part 3: ".$matches[4][$i]."\n\n";
}
?>

本例将输出：

matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>

参见 preg_match()，preg_replace() 和 preg_split()。

preg_last_error
preg_match
PCRE 函数


进行正则表达式匹配

preg_match_all
preg_quote
PCRE 函数
PHP 手册

preg_match

(PHP 4, PHP 5)

preg_match — 进行正则表达式匹配

说明

int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。

如果提供了 matches ，则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本，$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本，以此类推。

flags 可以是下列标记：

PREG_OFFSET_CAPTURE
如果设定本标记，对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值，使其中的每个单元也是一个数组，其中第一项为匹配字符串，第二项为其偏移量。本标记自 PHP 4.3.0 起可用。

flags 参数自 PHP 4.3.0 起可用。

preg_match() 返回 pattern 所匹配的次数。要么是 0 次（没有匹配）或 1 次，因为 preg_match() 在第一次匹配之后将停止搜索。preg_match_all() 则相反，会一直搜索到 subject 的结尾处。如果出错 preg_match() 返回 FALSE。

Tip

如果只想查看一个字符串是否包含在另一个字符串中，不要用 preg_match()。可以用 strpos() 或 strstr() 替代，要快得多。

Example #1 在文本中搜索“php”

<?php
// 模式定界符后面的 "i" 表示不区分大小写字母的搜索
if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
    print "A match was found.";
} else {
    print "A match was not found.";
}
?>

Example #2 搜索单词“web”

<?php
/* 模式中的 \b 表示单词的边界，因此只有独立的 "web" 单词会被匹配，
 * 而不会匹配例如 "webbing" 或 "cobweb" 中的一部分 */
if (preg_match ("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    print "A match was found.";
} else {
    print "A match was not found.";
}

if (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    print "A match was found.";
} else {
    print "A match was not found.";
}
?>

Example #3 从 URL 中取出域名

<?php
// 从 URL 中取得主机名
preg_match("/^(http:\/\/)?([^\/]+)/i",
    "http://www.php.net/index.html", $matches);
$host = $matches[2];

// 从主机名中取得后面两段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

本例将输出：

domain name is: php.net

参见 preg_match_all()，preg_replace() 和 preg_split()。

preg_match_all
preg_quote
PCRE 函数


转义正则表达式字符

preg_match
preg_replace_callback
PCRE 函数
PHP 手册

preg_quote

(PHP 4, PHP 5)

preg_quote — 转义正则表达式字符

说明

string preg_quote ( string $str [, string $delimiter ] )

preg_quote() 以 str 为参数并给其中每个属于正则表达式语法的字符前面加上一个反斜线。如果你需要以动态生成的字符串作为模式去匹配则可以用此函数转义其中可能包含的特殊字符。

如果提供了可选参数 delimiter ，该字符也将被转义。可以用来转义 PCRE 函数所需要的定界符，最常用的定界符是斜线 /。

正则表达式的特殊字符包括：. \ + * ? [ ^ ] $ ( ) { } = ! < > | :。

Example #1 preg_quote() 例子

<?php
$keywords = '$40 for a g3/400';
 $keywords = preg_quote($keywords, '/');
echo $keywords; // returns \$40 for a g3\/400
?>

Example #2 给某文本中的一个单词加上斜体标记

<?php
// 本例中，preg_quote($word) 用来使星号不在正则表达式中
// 具有特殊含义。

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/".preg_quote($word)."/",
                          "<i>".$word."</i>",
                          $textbody);
?>

Note: 本函数可安全用于二进制对象。

preg_match
preg_replace_callback
PCRE 函数


用回调函数执行正则表达式的搜索和替换

preg_quote
preg_replace
PCRE 函数
PHP 手册

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback — 用回调函数执行正则表达式的搜索和替换

说明

mixed preg_replace_callback ( mixed $pattern , callback $callback , mixed $subject [, int $limit ] )

本函数的行为几乎和 preg_replace() 一样，除了不是提供一个 replacement 参数，而是指定一个 callback 函数。该函数将以目标字符串中的匹配数组作为输入参数，并返回用于替换的字符串。

Example #1 preg_replace_callback() 例子

<?php
  // 此文本是用于 2002 年的，
  // 现在想使其能用于 2003 年
  $text = "April fools day is 04/01/2002\n";
  $text.= "Last christmas was 12/24/2001\n";

  // 回调函数
  function next_year($matches) {
    // 通常：$matches[0] 是完整的匹配项
    // $matches[1] 是第一个括号中的子模式的匹配项
    // 以此类推
    return $matches[1].($matches[2]+1);
  }

  echo preg_replace_callback(
              "|(\d{2}/\d{2}/)(\d{4})|",
              "next_year",
              $text);

  // 结果为：
  // April fools day is 04/01/2003
  // Last christmas was 12/24/2002
?>

You'll often need the callback function for a preg_replace_callback() in just one place. In this case you can use create_function() to declare an anonymous function as callback within the call to preg_replace_callback(). By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback functions name not used anywhere else.

Example #2 preg_replace_callback() 和 create_function()

<?php
  /* 一个 UNIX 风格的命令行过滤器，将每个段落开头的
   * 大写字母转换成小写字母 */

  $fp = fopen("php://stdin", "r") or die("can't read stdin");
  while (!feof($fp)) {
      $line = fgets($fp);
      $line = preg_replace_callback(
          '|<p>\s*\w|',
          create_function(
              // 这里使用单引号很关键，
              // 否则就把所有的 $ 换成 \$
              '$matches',
              'return strtolower($matches[0]);'
          ),
          $line
      );
      echo $line;
  }
  fclose($fp);
?>

参见 preg_replace() 和 create_function()。

preg_quote
preg_replace
PCRE 函数


执行正则表达式的搜索和替换

preg_replace_callback
preg_split
PCRE 函数
PHP 手册

preg_replace

(PHP 4, PHP 5)

preg_replace — 执行正则表达式的搜索和替换

说明

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit ] )

在 subject 中搜索 pattern 模式的匹配项并替换为 replacement 。如果指定了 limit ，则仅替换 limit 个匹配，如果省略 limit 或者其值为 -1，则所有的匹配项都会被替换。

replacement 可以包含 \\n 形式或（自 PHP 4.0.4 起）$n 形式的逆向引用，首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99，其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数（从 1 开始）以取得子模式的数目。

对替换模式在一个逆向引用后面紧接着一个数字时（即：紧接在一个匹配的模式后面的数字），不能使用熟悉的 \\1 符号来表示逆向引用。举例说 \\11，将会使 preg_replace() 搞不清楚是想要一个 \\1 的逆向引用后面跟着一个数字 1 还是一个 \\11 的逆向引用。本例中的解决方法是使用 \${1}1。这会形成一个隔离的 $1 逆向引用，而使另一个 1 只是单纯的文字。

Example #1 逆向引用后面紧接着数字的用法

<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
print preg_replace($pattern, $replacement, $string);

/* Output
   ======

April1,2003

 */
?>

如果搜索到匹配项，则会返回被替换后的 subject ，否则返回原来不变的 subject 。

preg_replace() 的每个参数（除了 limit ）都可以是一个数组。如果 pattern 和 replacement 都是数组，将以其键名在数组中出现的顺序来进行处理。这不一定和索引的数字顺序相同。如果使用索引来标识哪个 pattern 将被哪个 replacement 来替换，应该在调用 preg_replace() 之前用 ksort() 对数组进行排序。

Example #2 在 preg_replace() 中使用索引数组

<?php
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

print preg_replace($patterns, $replacements, $string);

/* Output
   ======

The bear black slow jumped over the lazy dog.

*/

/* By ksorting patterns and replacements,
   we should get what we wanted. */

ksort($patterns);
ksort($replacements);

print preg_replace($patterns, $replacements, $string);

/* Output
   ======

The slow black bear jumped over the lazy dog.

*/

?>

如果 subject 是个数组，则会对 subject 中的每个项目执行搜索和替换，并返回一个数组。

如果 pattern 和 replacement 都是数组，则 preg_replace() 会依次从中分别取出值来对 subject 进行搜索和替换。如果 replacement 中的值比 pattern 中的少，则用空字符串作为余下的替换值。如果 pattern 是数组而 replacement 是字符串，则对 pattern 中的每个值都用此字符串作为替换值。反过来则没有意义了。

/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码（在适当的逆向引用替换完之后）。提示：要确保 replacement 构成一个合法的 PHP 代码字符串，否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。

Example #3 替换数个值

<?php
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
                   "/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
print preg_replace ($patterns, $replace, "{startDate} = 1999-5-27");
?>

本例将输出：

$startDate = 5/27/1999

Example #4 使用 /e 修正符

<?php
preg_replace ("/(<\/?)(\w+)([^>]*>)/e",
              "'\\1'.strtoupper('\\2').'\\3'",
              $html_body);
?>

这将使输入字符串中的所有 HTML 标记变成大写。

Example #5 将 HTML 转换成文本

<?php
// $document 应包含一个 HTML 文档。
// 本例将去掉 HTML 标记，javascript 代码
// 和空白字符。还会将一些通用的
// HTML 实体转换成相应的文本。

$search = array ("'<script[^>]*?>.*?</script>'si",  // 去掉 javascript
                 "'<[\/\!]*?[^<>]*?>'si",           // 去掉 HTML 标记
                 "'([\r\n])[\s]+'",                 // 去掉空白字符
                 "'&(quot|#34);'i",                 // 替换 HTML 实体
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // 作为 PHP 代码运行

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace ($search, $replace, $document);
?>

Note: limit 参数是 PHP 4.0.1pl2 之后加入的。

参见 preg_match()，preg_match_all() 和 preg_split()。

preg_replace_callback
preg_split
PCRE 函数


用正则表达式分割字符串

preg_replace
POSIX Regex
PCRE 函数
PHP 手册

preg_split

(PHP 4, PHP 5)

preg_split — 用正则表达式分割字符串

说明

array preg_split ( string $pattern , string $subject [, int $limit [, int $flags ]] )

返回一个数组，包含 subject 中沿着与 pattern 匹配的边界所分割的子串。

如果指定了 limit ，则最多返回 limit 个子串，如果 limit 是 -1，则意味着没有限制，可以用来继续指定可选参数 flags 。

flags 可以是下列标记的任意组合（用按位或运算符 | 组合）：

PREG_SPLIT_NO_EMPTY
如果设定了本标记，则 preg_split() 只返回非空的成分。
PREG_SPLIT_DELIM_CAPTURE
如果设定了本标记，定界符模式中的括号表达式也会被捕获并返回。本标记添加于 PHP 4.0.5。
PREG_SPLIT_OFFSET_CAPTURE

如果设定了本标记，如果设定本标记，对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值，使其中的每个单元也是一个数组，其中第一项为匹配字符串，第二项为其在 subject 中的偏移量。本标记自 PHP 4.3.0 起可用。

Tip

如果不需要正则表达式的功能，可以选择使用更快（也更简单）的替代函数如 explode() 或 str_split()。

Example #1 preg_split() 例子：取得搜索字符串的成分

<?php
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split ("/[\s,]+/", "hypertext language, programming");
?>

Example #2 将字符串分割成字符

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Example #3 将字符串分割为匹配项及其偏移量

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

本例将输出：

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Note: flags 是 PHP 4 Beta 3 添加的。

参见 spliti()，split()，implode()，preg_match()，preg_match_all() 和 preg_replace()。

preg_replace
POSIX Regex
PCRE 函数


Regular Expression (POSIX Extended)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • POSIX Regex 函数
    • ereg_replace — 正则表达式替换
    • ereg — 正则表达式匹配
    • eregi_replace — 不区分大小写的正则表达式替换
    • eregi — 不区分大小写的正则表达式匹配
    • split — 用正则表达式将字符串分割到数组中
    • spliti — 用正则表达式不区分大小写将字符串分割到数组中
    • sql_regcase — 产生用于不区分大小的匹配的正则表达式
preg_split
简介
文本处理


简介

Tip

PHP also supports regular expressions using a Perl-compatible syntax using the PCRE functions. Those functions support non-greedy matching, assertions, conditional subpatterns, and a number of other features not supported by the POSIX-extended regular expression syntax.

Warning

These regular expression functions are not binary-safe. The PCRE functions are.

Note: As of PHP 5.3.0 this extension is deprecated, calling any function provided by this extension will issue an E_DEPRECATED notice.

Regular expressions are used for complex string manipulation. PHP uses the POSIX extended regular expressions as defined by POSIX 1003.2. For a full description of POSIX regular expressions see the » regex man pages included in the regex directory in the PHP distribution. It's in manpage format, so you'll want to do something along the lines of man /usr/local/src/regex/regex.7 in order to read it.

POSIX Regex
安装/配置
POSIX Regex


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
POSIX Regex


安装

Warning

除非知道自己在做什么，否则不要改变 TYPE。

要激活 regexp 的支持在配置 PHP 时加上 --with-regex[=TYPE]。TYPE 可以是 system，apache 或 php 之一。默认使用 php。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
POSIX Regex


范例

Example #1 Regular Expression Examples

<?php
// Returns true if "abc" is found anywhere in $string.
ereg("abc", $string);

// Returns true if "abc" is found at the beginning of $string.
ereg("^abc", $string);

// Returns true if "abc" is found at the end of $string.
ereg("abc$", $string);

// Returns true if client browser is Netscape 2, 3 or MSIE 3.
eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);

// Places three space separated words into $regs[1], $regs[2] and $regs[3].
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

// Put a <br /> tag at the beginning of $string.
$string = ereg_replace("^", "<br />", $string);

// Put a <br /> tag at the end of $string.
$string = ereg_replace("$", "<br />", $string);

// Get rid of any newline characters in $string.
$string = ereg_replace("\n", "", $string);
?>

预定义常量
POSIX Regex 函数
POSIX Regex


POSIX Regex 函数

参见

For regular expressions in Perl-compatible syntax have a look at the PCRE functions. The simpler shell style wildcard pattern matching is provided by fnmatch().

Table of Contents

  • ereg_replace — 正则表达式替换
  • ereg — 正则表达式匹配
  • eregi_replace — 不区分大小写的正则表达式替换
  • eregi — 不区分大小写的正则表达式匹配
  • split — 用正则表达式将字符串分割到数组中
  • spliti — 用正则表达式不区分大小写将字符串分割到数组中
  • sql_regcase — 产生用于不区分大小的匹配的正则表达式
范例
ereg_replace
POSIX Regex


正则表达式替换

POSIX Regex 函数
ereg
POSIX Regex 函数
PHP 手册

ereg_replace

(PHP 4, PHP 5)

ereg_replace — 正则表达式替换

说明

string ereg_replace ( string $pattern , string $replacement , string $string )

本函数在 string 中扫描与 pattern 匹配的部分，并将其替换为 replacement 。

返回替换后的字符串。（如果没有可供替换的匹配项则会返回原字符串。）

如果 pattern 包含有括号内的子串，则 replacement 可以包含形如 \\digit 的子串，这些子串将被替换为数字表示的的第几个括号内的子串；\\0 则包含了字符串的整个内容。最多可以用九个子串。括号可以嵌套，此情形下以左圆括号来计算顺序。

如果未在 string 中找到匹配项，则 string 将原样返回。

例如，下面的代码片断输出 "This was a test" 三次：

Example #1 ereg_replace() 例子

<?php
$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);
?>

要注意的一点是如果在 replacement 参数中使用了整数值，则可能得不到所期望的结果。这是因为 ereg_replace() 将把数字作为字符的序列值来解释并应用之。例如：

Example #2 ereg_replace() 例子

<?php
/* 不能产生出期望的结果 */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has   words.' */

/* 本例工作正常 */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has 4 words.' */
?>

Example #3 将 URL 替换为超连接

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);
?>

Tip

preg_replace() 函数使用了 Perl 兼容正则表达式语法，通常是比 ereg_replace() 更快的替代方案。

参见 ereg()，eregi()，eregi_replace()，str_replace() 和 preg_match()。

POSIX Regex 函数
ereg
POSIX Regex 函数


正则表达式匹配

ereg_replace
eregi_replace
POSIX Regex 函数
PHP 手册

ereg

(PHP 4, PHP 5)

ereg — 正则表达式匹配

说明

int ereg ( string $pattern , string $string [, array &$regs ] )

Note: 使用 Perl 兼容正则表达式语法的 preg_match() 函数通常是比 ereg() 更快的替代方案。

以区分大小写的方式在 string 中寻找与给定的正则表达式 pattern 所匹配的子串。

如果找到与 pattern 中圆括号内的子模式相匹配的子串并且函数调用给出了第三个参数 regs ，则匹配项将被存入 regs 数组中。$regs[1] 包含第一个左圆括号开始的子串，$regs[2] 包含第二个子串，以此类推。$regs[0] 包含整个匹配的字符串。

Note: 直到 PHP 4.1.0 为止，$regs 将被填充为正好十个单元，即使实际匹配的子串少于十个。这并不影响 ereg() 匹配更多子串的能力。如果没有找到匹配，则 $regs 不会被 ereg() 更改。

如果在 string 中找到 pattern 模式的匹配则返回 所匹配字符串的长度，如果没有找到匹配或出错则返回 FALSE。如果没有传递入可选参数 regs 或者所匹配的字符串长度为 0，则本函数返回 1。

以下代码片断接受 ISO 格式的日期（YYYY-MM-DD）然后以 DD.MM.YYYY 格式显示：

Example #1 ereg() 例子

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Invalid date format: $date";
}
?>

参见 eregi()，ereg_replace()，eregi_replace()，preg_match()，strpos() 和 strstr()。

ereg_replace
eregi_replace
POSIX Regex 函数


不区分大小写的正则表达式替换

ereg
eregi
POSIX Regex 函数
PHP 手册

eregi_replace

(PHP 4, PHP 5)

eregi_replace — 不区分大小写的正则表达式替换

说明

string eregi_replace ( string $pattern , string $replacement , string $string )

本函数和 ereg_replace() 完全相同，只除了在匹配字母字符时忽略大小写的区别。

Example #1 高亮搜索结果

<?php
$pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')';
$replacement = '\\1<span class="search">\\2</span>';
$body = eregi_replace($pattern, $replacement, $body);
?>

参见 ereg()，eregi() 和 ereg_replace()。

ereg
eregi
POSIX Regex 函数


不区分大小写的正则表达式匹配

eregi_replace
split
POSIX Regex 函数
PHP 手册

eregi

(PHP 4, PHP 5)

eregi — 不区分大小写的正则表达式匹配

说明

int eregi ( string $pattern , string $string [, array &$regs ] )

本函数和 ereg() 完全相同，只除了在匹配字母字符时忽略大小写的区别。

Example #1 eregi() 例子

<?php
$string = 'XYZ';
   if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?>

参见 ereg()，ereg_replace()，eregi_replace()，stripos() 和 stristr()。

eregi_replace
split
POSIX Regex 函数


用正则表达式将字符串分割到数组中

eregi
spliti
POSIX Regex 函数
PHP 手册

split

(PHP 4, PHP 5)

split — 用正则表达式将字符串分割到数组中

说明

array split ( string $pattern , string $string [, int $limit ] )
Tip

preg_split() 函数使用了 Perl 兼容正则表达式语法，通常是比 split() 更快的替代方案。如果不需要正则表达式的威力，则使用 explode() 更快，这样就不会招致正则表达式引擎的浪费。

本函数返回一个字符串数组，每个单元为 string 经区分大小写的正则表达式 pattern 作为边界分割出的子串。如果设定了 limit ，则返回的数组最多包含 limit 个单元，而其中最后一个单元包含了 string 中剩余的所有部分。如果出错，则 split() 返回 FALSE。

将 /etc/passwd 中的前四个字段分割出来：

Example #1 split() 例子

<?php
list($user, $pass, $uid, $gid, $extra) =
    split (":", $passwd_line, 5);
?>

如果字符串中有 n 个与 pattern 匹配的项目，则返回的数组将包含 n+1 个单元。例如，如果没有找到 pattern ，则会返回一个只有一个单元的数组。当然，如果 string 为空也是这样。

解析可能用斜线，点，或横线分割的日期：

Example #2 split() 例子

<?php
// 分隔符可以是斜线，点，或横线
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>

想仿效 Perl 中类似的 @chars = split('', $str) 行为，请参考 preg_split() 或 str_split() 函数中的例子。

注意 pattern 是一个正则表达式。如果想要用的分割字符是正则表达式中的特殊字符，要先将其转义。如果觉得 split()（或其它任何 regex 函数）行为古怪的话，请阅读包含在 PHP 发行包中 regex/ 子目录下的 regex.7 文件。该文件是手册页面格式，可以用类似 man /usr/local/src/regex/regex.7 的命令来阅读。

参见 preg_split()，spliti()，str_split()，explode()，implode()，chunk_split() 和 wordwrap()。

eregi
spliti
POSIX Regex 函数


用正则表达式不区分大小写将字符串分割到数组中

split
sql_regcase
POSIX Regex 函数
PHP 手册

spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti — 用正则表达式不区分大小写将字符串分割到数组中

说明

array spliti ( string $pattern , string $string [, int $limit ] )

本函数和 split() 相同，只除了在匹配字母字符时忽略大小写的区别。

本例用 'a' 做分隔符来分割一个字符串：

Example #1 spliti() 例子

<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>

上例将输出：

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

参见 preg_spliti()，split()，explode() 和 implode()。

split
sql_regcase
POSIX Regex 函数


产生用于不区分大小的匹配的正则表达式

spliti
Strings
POSIX Regex 函数
PHP 手册

sql_regcase

(PHP 4, PHP 5)

sql_regcase — 产生用于不区分大小的匹配的正则表达式

说明

string sql_regcase ( string $string )

返回与 string 相匹配的正则表达式，不论大小写字母。返回的表达式是将 string 中的每个字母字符转换为方括号表达式，该方括号表达式包含了该字母的大小写形式。其它字符保留不变。

Example #1 sql_regcase() 例子

<?php
echo sql_regcase ("Foo - bar.");
?>

上例将输出：

[Ff][Oo][Oo] - [Bb][Aa][Rr].

可以用于在仅支持区分大小写正则表达式的产品中完成不区分大小写的模式匹配。

spliti
Strings
POSIX Regex 函数


Strings

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • String 函数
    • addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
    • addslashes — 使用反斜线引用字符串
    • bin2hex — 将二进制数据转换成十六进制表示
    • chop — rtrim 的别名
    • chr — 返回指定的字符
    • chunk_split — 将字符串分割成小块
    • convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种
    • convert_uudecode — Decode a uuencoded string
    • convert_uuencode — Uuencode a string
    • count_chars — 返回字符串所用字符的信息
    • crc32 — 计算一个字符串的 crc32 多项式
    • crypt — One-way string encryption (hashing)
    • echo — Output one or more strings
    • explode — 使用一个字符串分割另一个字符串
    • fprintf — Write a formatted string to a stream
    • get_html_translation_table — Returns the translation table used by htmlspecialchars and htmlentities
    • hebrev — Convert logical Hebrew text to visual text
    • hebrevc — Convert logical Hebrew text to visual text with newline conversion
    • html_entity_decode — Convert all HTML entities to their applicable characters
    • htmlentities — Convert all applicable characters to HTML entities
    • htmlspecialchars_decode — Convert special HTML entities back to characters
    • htmlspecialchars — Convert special characters to HTML entities
    • implode — Join array elements with a string
    • join — 别名 implode
    • lcfirst — Make a string's first character lowercase
    • levenshtein — Calculate Levenshtein distance between two strings
    • localeconv — Get numeric formatting information
    • ltrim — Strip whitespace (or other characters) from the beginning of a string
    • md5_file — Calculates the md5 hash of a given file
    • md5 — Calculate the md5 hash of a string
    • metaphone — Calculate the metaphone key of a string
    • money_format — Formats a number as a currency string
    • nl_langinfo — Query language and locale information
    • nl2br — Inserts HTML line breaks before all newlines in a string
    • number_format — Format a number with grouped thousands
    • ord — Return ASCII value of character
    • parse_str — Parses the string into variables
    • print — Output a string
    • printf — Output a formatted string
    • quoted_printable_decode — Convert a quoted-printable string to an 8 bit string
    • quoted_printable_encode — Convert a 8 bit string to a quoted-printable string
    • quotemeta — Quote meta characters
    • rtrim — Strip whitespace (or other characters) from the end of a string
    • setlocale — Set locale information
    • sha1_file — Calculate the sha1 hash of a file
    • sha1 — Calculate the sha1 hash of a string
    • similar_text — Calculate the similarity between two strings
    • soundex — Calculate the soundex key of a string
    • sprintf — Return a formatted string
    • sscanf — Parses input from a string according to a format
    • str_getcsv — Parse a CSV string into an array
    • str_ireplace — Case-insensitive version of str_replace.
    • str_pad — Pad a string to a certain length with another string
    • str_repeat — Repeat a string
    • str_replace — Replace all occurrences of the search string with the replacement string
    • str_rot13 — Perform the rot13 transform on a string
    • str_shuffle — Randomly shuffles a string
    • str_split — Convert a string to an array
    • str_word_count — Return information about words used in a string
    • strcasecmp — Binary safe case-insensitive string comparison
    • strchr — 别名 strstr
    • strcmp — Binary safe string comparison
    • strcoll — Locale based string comparison
    • strcspn — Find length of initial segment not matching mask
    • strip_tags — Strip HTML and PHP tags from a string
    • stripcslashes — Un-quote string quoted with addcslashes
    • stripos — Find position of first occurrence of a case-insensitive string
    • stripslashes — Un-quotes a quoted string
    • stristr — Case-insensitive strstr
    • strlen — Get string length
    • strnatcasecmp — Case insensitive string comparisons using a "natural order" algorithm
    • strnatcmp — String comparisons using a "natural order" algorithm
    • strncasecmp — Binary safe case-insensitive string comparison of the first n characters
    • strncmp — Binary safe string comparison of the first n characters
    • strpbrk — Search a string for any of a set of characters
    • strpos — Find position of first occurrence of a string
    • strrchr — Find the last occurrence of a character in a string
    • strrev — Reverse a string
    • strripos — Find position of last occurrence of a case-insensitive string in a string
    • strrpos — Find position of last occurrence of a char in a string
    • strspn — Find length of initial segment matching mask
    • strstr — Find first occurrence of a string
    • strtok — Tokenize string
    • strtolower — Make a string lowercase
    • strtoupper — Make a string uppercase
    • strtr — Translate certain characters
    • substr_compare — Binary safe comparison of 2 strings from an offset, up to length characters
    • substr_count — Count the number of substring occurrences
    • substr_replace — Replace text within a portion of a string
    • substr — Return part of a string
    • trim — Strip whitespace (or other characters) from the beginning and end of a string
    • ucfirst — Make a string's first character uppercase
    • ucwords — Uppercase the first character of each word in a string
    • vfprintf — Write a formatted string to a stream
    • vprintf — Output a formatted string
    • vsprintf — Return a formatted string
    • wordwrap — Wraps a string to a given number of characters
sql_regcase
简介
文本处理


简介

These functions all manipulate strings in various ways. Some more specialized sections can be found in the regular expression and URL handling sections.

For information on how strings behave, especially with regard to usage of single quotes, double quotes, and escape sequences, see the Strings entry in the Types section of the manual.

Strings
安装/配置
Strings


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Strings


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

CRYPT_SALT_LENGTH integer
CRYPT_STD_DES integer
CRYPT_EXT_DES integer
CRYPT_MD5 integer
CRYPT_BLOWFISH integer
HTML_SPECIALCHARS (integer)
HTML_ENTITIES (integer)
ENT_COMPAT (integer)
ENT_QUOTES (integer)
ENT_NOQUOTES (integer)
CHAR_MAX (integer)
LC_CTYPE (integer)
LC_NUMERIC (integer)
LC_TIME (integer)
LC_COLLATE (integer)
LC_MONETARY (integer)
LC_ALL (integer)
LC_MESSAGES (integer)
STR_PAD_LEFT (integer)
STR_PAD_RIGHT (integer)
STR_PAD_BOTH (integer)
资源类型
String 函数
Strings


String 函数

参见

For even more powerful string handling and manipulating functions take a look at the POSIX regular expression functions and the Perl compatible regular expression functions.

Table of Contents

  • addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
  • addslashes — 使用反斜线引用字符串
  • bin2hex — 将二进制数据转换成十六进制表示
  • chop — rtrim 的别名
  • chr — 返回指定的字符
  • chunk_split — 将字符串分割成小块
  • convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种
  • convert_uudecode — Decode a uuencoded string
  • convert_uuencode — Uuencode a string
  • count_chars — 返回字符串所用字符的信息
  • crc32 — 计算一个字符串的 crc32 多项式
  • crypt — One-way string encryption (hashing)
  • echo — Output one or more strings
  • explode — 使用一个字符串分割另一个字符串
  • fprintf — Write a formatted string to a stream
  • get_html_translation_table — Returns the translation table used by htmlspecialchars and htmlentities
  • hebrev — Convert logical Hebrew text to visual text
  • hebrevc — Convert logical Hebrew text to visual text with newline conversion
  • html_entity_decode — Convert all HTML entities to their applicable characters
  • htmlentities — Convert all applicable characters to HTML entities
  • htmlspecialchars_decode — Convert special HTML entities back to characters
  • htmlspecialchars — Convert special characters to HTML entities
  • implode — Join array elements with a string
  • join — 别名 implode
  • lcfirst — Make a string's first character lowercase
  • levenshtein — Calculate Levenshtein distance between two strings
  • localeconv — Get numeric formatting information
  • ltrim — Strip whitespace (or other characters) from the beginning of a string
  • md5_file — Calculates the md5 hash of a given file
  • md5 — Calculate the md5 hash of a string
  • metaphone — Calculate the metaphone key of a string
  • money_format — Formats a number as a currency string
  • nl_langinfo — Query language and locale information
  • nl2br — Inserts HTML line breaks before all newlines in a string
  • number_format — Format a number with grouped thousands
  • ord — Return ASCII value of character
  • parse_str — Parses the string into variables
  • print — Output a string
  • printf — Output a formatted string
  • quoted_printable_decode — Convert a quoted-printable string to an 8 bit string
  • quoted_printable_encode — Convert a 8 bit string to a quoted-printable string
  • quotemeta — Quote meta characters
  • rtrim — Strip whitespace (or other characters) from the end of a string
  • setlocale — Set locale information
  • sha1_file — Calculate the sha1 hash of a file
  • sha1 — Calculate the sha1 hash of a string
  • similar_text — Calculate the similarity between two strings
  • soundex — Calculate the soundex key of a string
  • sprintf — Return a formatted string
  • sscanf — Parses input from a string according to a format
  • str_getcsv — Parse a CSV string into an array
  • str_ireplace — Case-insensitive version of str_replace.
  • str_pad — Pad a string to a certain length with another string
  • str_repeat — Repeat a string
  • str_replace — Replace all occurrences of the search string with the replacement string
  • str_rot13 — Perform the rot13 transform on a string
  • str_shuffle — Randomly shuffles a string
  • str_split — Convert a string to an array
  • str_word_count — Return information about words used in a string
  • strcasecmp — Binary safe case-insensitive string comparison
  • strchr — 别名 strstr
  • strcmp — Binary safe string comparison
  • strcoll — Locale based string comparison
  • strcspn — Find length of initial segment not matching mask
  • strip_tags — Strip HTML and PHP tags from a string
  • stripcslashes — Un-quote string quoted with addcslashes
  • stripos — Find position of first occurrence of a case-insensitive string
  • stripslashes — Un-quotes a quoted string
  • stristr — Case-insensitive strstr
  • strlen — Get string length
  • strnatcasecmp — Case insensitive string comparisons using a "natural order" algorithm
  • strnatcmp — String comparisons using a "natural order" algorithm
  • strncasecmp — Binary safe case-insensitive string comparison of the first n characters
  • strncmp — Binary safe string comparison of the first n characters
  • strpbrk — Search a string for any of a set of characters
  • strpos — Find position of first occurrence of a string
  • strrchr — Find the last occurrence of a character in a string
  • strrev — Reverse a string
  • strripos — Find position of last occurrence of a case-insensitive string in a string
  • strrpos — Find position of last occurrence of a char in a string
  • strspn — Find length of initial segment matching mask
  • strstr — Find first occurrence of a string
  • strtok — Tokenize string
  • strtolower — Make a string lowercase
  • strtoupper — Make a string uppercase
  • strtr — Translate certain characters
  • substr_compare — Binary safe comparison of 2 strings from an offset, up to length characters
  • substr_count — Count the number of substring occurrences
  • substr_replace — Replace text within a portion of a string
  • substr — Return part of a string
  • trim — Strip whitespace (or other characters) from the beginning and end of a string
  • ucfirst — Make a string's first character uppercase
  • ucwords — Uppercase the first character of each word in a string
  • vfprintf — Write a formatted string to a stream
  • vprintf — Output a formatted string
  • vsprintf — Return a formatted string
  • wordwrap — Wraps a string to a given number of characters
预定义常量
addcslashes
Strings


以 C 语言风格使用反斜线转义字符串中的字符

String 函数
addslashes
String 函数
PHP 手册

addcslashes

(PHP 4, PHP 5)

addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符

说明

string addcslashes ( string $str , string $charlist )

返回字符串，该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。如果 charlist 中包含有 \n，\r 等字符，将以 C 语言风格转换，而其它非字母数字且 ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。

当选择对字符 0，a，b，f，n，r，t 和 v 进行转义时需要小心，它们将被转换成 \0，\a，\b，\f，\n，\r，\t 和 \v。在 PHP 中，只有 \0（NULL），\r（回车符），\n（换行符）和 \t（制表符）是预定义的转义序列， 而在 C 语言中，上述的所有转换后的字符都是预定义的转义序列。

charlist 参数，如“\0..\37”，将转义所有 ASCII 码介于 0 和 31 之间的字符。

Example #1 addcslashes() 例子

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

当定义 charlist 参数中的字符序列时，需要确实知道介于自己设置的开始及结束范围之内的都是些什么字符。

<?php
echo addcslashes('foo[ ]', 'A..z');
// 输出：\f\o\o\[ \]
// 所有大小写字母均被转义
// ... 但 [\]^_` 以及分隔符、换行符、回车符等也一并被转义了。
?>

另外，如果设置范围中的结束字符 ASCII 码高于开始字符，则不会创建范围，只是将开始字符、结束字符以及其间的字符逐个转义。可使用 ord() 函数获取字符的 ASCII 码值。

<?php
echo addcslashes("zoo['.']", 'z..A');
// 输出：\zoo['\.']
?>

参见 stripcslashes()，stripslashes()，addslashes()，htmlspecialchars() 和 quotemeta()。

String 函数
addslashes
String 函数


使用反斜线引用字符串

addcslashes
bin2hex
String 函数
PHP 手册

addslashes

(PHP 4, PHP 5)

addslashes — 使用反斜线引用字符串

说明

string addslashes ( string $str )

返回字符串，该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号（'）、双引号（"）、反斜线（\）与 NUL（NULL 字符）。

一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如，将名字 O'reilly 插入到数据库中，这就需要对其进行转义。大多数据库使用 \ 作为转义符：O\'reilly。这样可以将数据放入数据库中，而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时，意味着插入 ' 时将使用 ' 进行转义。

默认情况下，PHP 指令 magic_quotes_gpc 为 on，它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes()，因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

Example #1 addslashes() 例子

<?php
$str = "Is your name O'reilly?";

// 输出：Is your name O\'reilly?
echo addslashes($str);
?>

参见 stripslashes()，stripcslashes()，addcslashes()，htmlspecialchars()，quotemeta() 和 get_magic_quotes_gpc()。

addcslashes
bin2hex
String 函数


将二进制数据转换成十六进制表示

addslashes
chop
String 函数
PHP 手册

bin2hex

(PHP 4, PHP 5)

bin2hex — 将二进制数据转换成十六进制表示

说明

string bin2hex ( string $str )

返回 ASCII 字符串，为参数 str 的十六进制表示。转换使用字节方式，高四位字节优先。

参见 pack() 和 unpack()。

addslashes
chop
String 函数


rtrim 的别名

bin2hex
chr
String 函数
PHP 手册

chop

(PHP 4, PHP 5)

chop — rtrim() 的别名

说明

本函数是该函数的别名：rtrim()。

Note: chop() 与 Perl 的 chop() 函数有所不同，它会删除字符串的最后一个字符。

bin2hex
chr
String 函数


返回指定的字符

chop
chunk_split
String 函数
PHP 手册

chr

(PHP 4, PHP 5)

chr — 返回指定的字符

说明

string chr ( int $ascii )

返回相对应于 ascii 所指定的单个字符。

Example #1 chr() 例子

<?php
$str = "The string ends in escape: ";
$str .= chr(27); /* 在 $str 后边增加换码符 */

/* 通常这样更有用 */

$str = sprintf("The string ends in escape: %c", 27);
?>

可以在此处找到 ASCII 码表：» http://www.asciitable.com。

此函数与 ord() 是互补的。参见 sprintf() 如何使用格式字符串 %c。

chop
chunk_split
String 函数


将字符串分割成小块

chr
convert_cyr_string
String 函数
PHP 手册

chunk_split

(PHP 4, PHP 5)

chunk_split — 将字符串分割成小块

说明

string chunk_split ( string $body [, int $chunklen [, string $end ]] )

使用此函数将字符串分割成小块非常有用。例如将 base64_encode() 的输出转换成符合 RFC 2045 语义的字符串。它会在每 chunklen （默认为 76）个字符后边插入 end （默认为“\r\n”）。此函数会返回新的字符串，而不会修改原有字符串。

Example #1 chunk_split() 例子

<?php
// 使用 RFC 2045 语义格式化 $data
$new_string = chunk_split(base64_encode($data));
?>

参见 str_split()，explode()，split()，wordwrap() 和 » RFC 2045。

chr
convert_cyr_string
String 函数


将字符由一种 Cyrillic 字符转换成另一种

chunk_split
convert_uudecode
String 函数
PHP 手册

convert_cyr_string

(PHP 4, PHP 5)

convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种

说明

string convert_cyr_string ( string $str , string $from , string $to )

此函数将给定的字符串从一种 Cyrillic 字符转换成另一种，返回转换之后的字符串。from 和 to 参数为单个字符，分别代表了源及目标 Cyrillic 字符集。支持的类型有：

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic

Note: 本函数可安全用于二进制对象。

chunk_split
convert_uudecode
String 函数


Decode a uuencoded string

convert_cyr_string
convert_uuencode
String 函数
PHP 手册

convert_uudecode

(PHP 5)

convert_uudecode — Decode a uuencoded string

说明

string convert_uudecode ( string $data )

convert_uudecode() decodes a uuencoded string.

参数

data

The uuencoded data.

返回值

Returns the decoded data as a string.

范例

Example #1 convert_uudecode() example

<?php
/* Can you imagine what this will print? :) */
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

参见

  • convert_uuencode() - Uuencode a string

convert_cyr_string
convert_uuencode
String 函数


Uuencode a string

convert_uudecode
count_chars
String 函数
PHP 手册

convert_uuencode

(PHP 5)

convert_uuencode — Uuencode a string

说明

string convert_uuencode ( string $data )

convert_uuencode() encodes a string using the uuencode algorithm.

Uuencode translates all strings (including binary's ones) into printable characters, making them safe for network transmissions. Uuencoded data is about 35% larger than the original.

参数

data

The data to be encoded.

返回值

Returns the uuencoded data.

范例

Example #1 convert_uuencode() example

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

参见

  • convert_uudecode() - Decode a uuencoded string
  • base64_encode() - 使用 MIME base64 对数据进行编码

convert_uudecode
count_chars
String 函数


返回字符串所用字符的信息

convert_uuencode
crc32
String 函数
PHP 手册

count_chars

(PHP 4, PHP 5)

count_chars — 返回字符串所用字符的信息

说明

mixed count_chars ( string $string [, int $mode ] )

统计 string 中每个字节值（0..255）出现的次数，使用多种模式返回结果。可选参数 mode 默认值为 0。根据不同的 mode ，count_chars() 返回下列不同的结果：

  • 0 - 以所有的每个字节值作为键名，出现次数作为值的数组。
  • 1 - 与 0 相同，但只列出出现次数大于零的字节值。
  • 2 - 与 0 相同，但只列出出现次数等于零的字节值。
  • 3 - 返回由所有使用了的字节值组成的字符串。
  • 4 - 返回由所有未使用的字节值组成的字符串。

Example #1 count_chars() 示例

<?php
$data = "Two Ts and one F.";

foreach (count_chars($data, 1) as $i => $val) {
    echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n";
}
?>

上例将输出：

There were 4 instance(s) of " " in the string.
There were 1 instance(s) of "." in the string.
There were 1 instance(s) of "F" in the string.
There were 2 instance(s) of "T" in the string.
There were 1 instance(s) of "a" in the string.
There were 1 instance(s) of "d" in the string.
There were 1 instance(s) of "e" in the string.
There were 2 instance(s) of "n" in the string.
There were 2 instance(s) of "o" in the string.
There were 1 instance(s) of "s" in the string.
There were 1 instance(s) of "w" in the string.

参见 strpos() 和 substr_count()。

convert_uuencode
crc32
String 函数


计算一个字符串的 crc32 多项式

count_chars
crypt
String 函数
PHP 手册

crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 — 计算一个字符串的 crc32 多项式

说明

int crc32 ( string $str )

生成 str 的 32 位循环冗余校验码多项式。这通常用于检查传输的数据是否完整。

由于 PHP 的整数是带符号的，许多 crc32 校验码将返回负整数，因此你需要使用 sprintf() 或 printf() 的“%u”格式符来获取表示无符号 crc32 校验码的字符串。

示例中的第二行演示了如何使用 printf() 函数转换校验码：

Example #1 显示 crc32 校验码

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

参见 md5() 和 sha1()。

count_chars
crypt
String 函数


One-way string encryption (hashing)

crc32
echo
String 函数
PHP 手册

crypt

(PHP 4, PHP 5)

crypt — One-way string encryption (hashing)

说明

string crypt ( string $str [, string $salt ] )

crypt() will return an encrypted string using the standard Unix DES-based encryption algorithm or alternative algorithms that may be available on the system.

Some operating systems support more than one type of encryption. In fact, sometimes the standard DES-based encryption is replaced by an MD5-based encryption algorithm. The encryption type is triggered by the salt argument. At install time, PHP determines the capabilities of the crypt function and will accept salts for other encryption types. If no salt is provided, PHP will auto-generate a standard two character salt by default, unless the default encryption type on the system is MD5, in which case a random MD5-compatible salt is generated. PHP sets a constant named CRYPT_SALT_LENGTH which tells you whether a regular two character salt applies to your system or the longer twelve character salt is applicable.

The standard DES-based encryption crypt() returns the salt as the first two characters of the output. It also only uses the first eight characters of str , so longer strings that start with the same eight characters will generate the same result (when the same salt is used).

On systems where the crypt() function supports multiple encryption types, the following constants are set to 0 or 1 depending on whether the given type is available:

  • CRYPT_STD_DES - Standard DES-based encryption with a two character salt
  • CRYPT_EXT_DES - Extended DES-based encryption with a nine character salt
  • CRYPT_MD5 - MD5 encryption with a twelve character salt starting with $1$
  • CRYPT_BLOWFISH - Blowfish encryption with a sixteen character salt starting with $2$ or $2a$

Note: As of PHP 5.3.0, PHP contains its own implementation and will use that if the system lacks of support for one or more of the algorithms.

参数

str

The string to be encrypted.

salt

An optional salt string to base the encryption on. If not provided, one will be randomly generated by PHP each time you call this function.

If you are using the supplied salt, you should be aware that the salt is generated once. If you are calling this function repeatedly, this may impact both appearance and security.

返回值

Returns the encrypted string.

更新日志

版本 | 说明
5.3.0 | PHP now contains its own implementation for the MD5 crypt, Standard DES, Extended DES and the Blowfish algorithms and will use that if the system lacks of support for one or more of the algorithms.

范例

Example #1 crypt() examples

<?php
$password = crypt('mypassword'); // let the salt be automatically generated

/* You should pass the entire results of crypt() as the salt for comparing a
   password, to avoid problems when different hashing algorithms are used. (As
   it says above, standard DES-based password hashing uses a 2-character salt,
   but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
   echo "Password verified!";
}
?>

Example #2 Using crypt() with htpasswd

<?php
// Set the password
$password = 'mypassword';

// Get the hash, letting the salt be automatically generated
$hash = crypt($password);
?>

Example #3 Using crypt() with different encryption types

<?php
if (CRYPT_STD_DES == 1) {
    echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (CRYPT_EXT_DES == 1) {
    echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (CRYPT_MD5 == 1) {
    echo 'MD5:          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$rasmuslerd...........$') . "\n";
}
?>

上例的输出类似于：

Standard DES: rl.3StKT.4T8M
Extended DES: _J9..rasmBYk8r9AiWNc
MD5:          $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish:     $2a$07$rasmuslerd............nIdrcHdxcUxWomQX9j6kvERCFjTg7Ra

注释

Note: There is no decrypt function, since crypt() uses a one-way algorithm.

参见

  • md5() - Calculate the md5 hash of a string
  • The Mcrypt extension
  • The Unix man page for your crypt function for more information

crc32
echo
String 函数


Output one or more strings

crypt
explode
String 函数
PHP 手册

echo

(PHP 4, PHP 5)

echo — Output one or more strings

说明

void echo ( string $arg1 [, string $... ] )

Outputs all parameters.

echo() is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo() (unlike some other language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want to pass more than one parameter to echo(), the parameters must not be enclosed within parentheses.

echo() also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. This short syntax only works with the short_open_tag configuration setting enabled.

I have <?=$foo?> foo.

参数

arg1

The parameter to output.

...

返回值

无返回值。

范例

Example #1 echo() examples

<?php
echo "Hello World";

echo "This spans
multiple lines. The newlines will be
output as well";

echo "This spans\nmultiple lines. The newlines will be\noutput as well.";

echo "Escaping characters is done \"Like this\".";

// You can use variables inside of an echo statement
$foo = "foobar";
$bar = "barbaz";

echo "foo is $foo"; // foo is foobar

// You can also use arrays
$baz = array("value" => "foo");

echo "this is {$baz['value']} !"; // this is foo !

// Using single quotes will print the variable name, not the value
echo 'foo is $foo'; // foo is $foo

// If you are not using any other characters, you can just echo variables
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Some people prefer passing multiple parameters to echo over concatenation.
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";

echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END;

// Because echo does not behave like a function, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';

// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
                                            // it behaves like a function, so
                                            // it may be used in this context.
echo $some_var ? 'true': 'false'; // changing the statement around
?>

注释

For a short discussion about the differences between print() and echo(), see this FAQTs Knowledge Base Article: » http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

参见

  • print() - Output a string
  • printf() - Output a formatted string
  • flush() - 刷新输出缓冲

crypt
explode
String 函数


使用一个字符串分割另一个字符串

echo
fprintf
String 函数
PHP 手册

explode

(PHP 4, PHP 5)

explode — 使用一个字符串分割另一个字符串

说明

array explode ( string $separator , string $string [, int $limit ] )

此函数返回由字符串组成的数组，每个元素都是 string 的一个子串，它们被字符串 separator 作为边界点分割出来。如果设置了 limit 参数，则返回的数组包含最多 limit 个元素，而最后那个元素将包含 string 的剩余部分。

如果 separator 为空字符串（""），explode() 将返回 FALSE。如果 separator 所包含的值在 string 中找不到，那么 explode() 将返回包含 string 单个元素的数组。

如果 limit 参数是负数，则返回除了最后的 -limit 个元素外的所有元素。此特性是 PHP 5.1.0 中新增的。

由于历史原因，虽然 implode() 可以接收两种参数顺序，但是 explode() 不行。你必须保证 separator 参数在 string 参数之前才行。

Note: 参数 limit 是在 PHP 4.0.1 中加入的。

Example #1 explode() 例子

<?php
// 示例 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Example #2 limit 参数例子

<?php
$str = 'one|two|three|four';

// 正数的 limit
print_r(explode('|', $str, 2));

// 负数的 limit（自 PHP 5.1 起）
print_r(explode('|', $str, -1));
?>

上例将输出：

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

Note: 本函数可安全用于二进制对象。

参见 preg_split()，spliti()，split()，strtok() 和 implode()。

echo
fprintf
String 函数


Write a formatted string to a stream

explode
get_html_translation_table
String 函数
PHP 手册

fprintf

(PHP 5)

fprintf — Write a formatted string to a stream

说明

int fprintf ( resource $handle , string $format [, mixed $args [, mixed $... ]] )

Write a string produced according to format to the stream resource specified by handle .

参数

handle

A file system pointer resource that is typically created using fopen().

format

See sprintf() for a description of format .

args

...

返回值

Returns the length of the string written.

范例

Example #1 fprintf(): zero-padded integers

<?php
if (!($fp = fopen('date.txt', 'w'))) {
    return;
}

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// will write the formatted ISO date to date.txt
?>

Example #2 fprintf(): formatting currency

<?php
if (!($fp = fopen('currency.txt', 'w'))) {
    return;
}

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$len = fprintf($fp, '%01.2f', $money);
// will write "123.10" to currency.txt

echo "wrote $len bytes to currency.txt";
// use the return value of fprintf to determine how many bytes we wrote
?>

参见

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • sscanf() - Parses input from a string according to a format
  • fscanf() - 从文件中格式化输入
  • vsprintf() - Return a formatted string
  • number_format() - Format a number with grouped thousands

explode
get_html_translation_table
String 函数


Returns the translation table used by htmlspecialchars and htmlentities

fprintf
hebrev
String 函数
PHP 手册

get_html_translation_table

(PHP 4, PHP 5)

get_html_translation_table — Returns the translation table used by htmlspecialchars() and htmlentities()

说明

array get_html_translation_table ([ int $table=HTML_SPECIALCHARS [, int $quote_style=ENT_COMPAT ]] )

get_html_translation_table() will return the translation table that is used internally for htmlspecialchars() and htmlentities().

Note: Special characters can be encoded in several ways. E.g. " can be encoded as &quot;, &#34; or &#x22. get_html_translation_table() returns only the most common form for them.

参数

table

There are two new constants (HTML_ENTITIES, HTML_SPECIALCHARS) that allow you to specify the table you want. Default value for table is HTML_SPECIALCHARS.

quote_style

Like the htmlspecialchars() and htmlentities() functions you can optionally specify the quote_style you are working with. The default is ENT_COMPAT mode. See the description of these modes in htmlspecialchars().

返回值

Returns the translation table as an array.

范例

Example #1 Translation Table Example

<?php
$trans = get_html_translation_table(HTML_ENTITIES);
$str = "Hallo & <Frau> & Krämer";
$encoded = strtr($str, $trans);

echo $encoded;
?>

上例将输出：

Hallo &amp;amp; &amp;lt;Frau&amp;gt; &amp;amp; Kr&amp;auml;mer

参见

  • htmlspecialchars() - Convert special characters to HTML entities
  • htmlentities() - Convert all applicable characters to HTML entities
  • html_entity_decode() - Convert all HTML entities to their applicable characters

fprintf
hebrev
String 函数


Convert logical Hebrew text to visual text

get_html_translation_table
hebrevc
String 函数
PHP 手册

hebrev

(PHP 4, PHP 5)

hebrev — Convert logical Hebrew text to visual text

说明

string hebrev ( string $hebrew_text [, int $max_chars_per_line=0 ] )

Converts logical Hebrew text to visual text.

The function tries to avoid breaking words.

参数

hebrew_text

A Hebrew input string.

max_chars_per_line

This optional parameter indicates maximum number of characters per line that will be returned.

返回值

Returns the visual string.

参见

  • hebrevc() - Convert logical Hebrew text to visual text with newline conversion

get_html_translation_table
hebrevc
String 函数


Convert logical Hebrew text to visual text with newline conversion

hebrev
html_entity_decode
String 函数
PHP 手册

hebrevc

(PHP 4, PHP 5)

hebrevc — Convert logical Hebrew text to visual text with newline conversion

说明

string hebrevc ( string $hebrew_text [, int $max_chars_per_line=0 ] )

This function is similar to hebrev() with the difference that it converts newlines (\n) to "<br>\n".

The function tries to avoid breaking words.

参数

hebrew_text

A Hebrew input string.

max_chars_per_line

This optional parameter indicates maximum number of characters per line that will be returned.

返回值

Returns the visual string.

参见

  • hebrev() - Convert logical Hebrew text to visual text

hebrev
html_entity_decode
String 函数


Convert all HTML entities to their applicable characters

hebrevc
htmlentities
String 函数
PHP 手册

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode — Convert all HTML entities to their applicable characters

说明

string html_entity_decode ( string $string [, int $quote_style=ENT_COMPAT [, string $charset ]] )

html_entity_decode() is the opposite of htmlentities() in that it converts all HTML entities to their applicable characters from string .

参数

string

The input string.

quote_style

The optional second quote_style parameter lets you define what will be done with 'single' and "double" quotes. It takes on one of three constants with the default being ENT_COMPAT:

Available quote_style constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.

charset

The ISO-8859-1 character set is used as default for the optional third charset . This defines the character set used in conversion.

PHP 4.3.0 及其后续版本支持如下字符集。

已支持字符集
字符集 | 别名 | 描述
ISO-8859-1 | ISO8859-1 | 西欧，Latin-1
ISO-8859-15 | ISO8859-15 | 西欧，Latin-9。增加了 Latin-1（ISO-8859-1）中缺少的欧元符号、法国及芬兰字母。
UTF-8 | ASCII 兼容多字节 8-bit Unicode。
cp866 | ibm866, 866 | DOS-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1251 | Windows-1251, win-1251, 1251 | Windows-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1252 | Windows-1252, 1252 | Windows 对于西欧特有的字符集。
KOI8-R | koi8-ru, koi8r | 俄文。PHP 4.3.2 开始支持该字符集。
BIG5 | 950 | 繁体中文，主要用于中国台湾。
GB2312 | 936 | 简体中文，国际标准字符集。
BIG5-HKSCS | 繁体中文，Big5 的延伸，主要用于香港。
Shift_JIS | SJIS, 932 | 日文。
EUC-JP | EUCJP | 日文。

Note: ISO-8859-1 将代替任何其它无法识别的字符集。

返回值

Returns the decoded string.

更新日志

版本 | 说明
5.0.0 | Support for multi-byte character sets was added.

范例

Example #1 Decoding HTML entities

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now

// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string)
{
    // replace numeric entities
    $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
    $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
    // replace literal entities
    $trans_tbl = get_html_translation_table(HTML_ENTITIES);
    $trans_tbl = array_flip($trans_tbl);
    return strtr($string, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>

注释

Note: You might wonder why trim(html_entity_decode('&nbsp;')); doesn't reduce the string to an empty string, that's because the '&nbsp;' entity is not ASCII code 32 (which is stripped by trim()) but ASCII code 160 (0xa0) in the default ISO 8859-1 characterset.

参见

  • htmlentities() - Convert all applicable characters to HTML entities
  • htmlspecialchars() - Convert special characters to HTML entities
  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities
  • urldecode() - 解码已编码的 URL 字符串

hebrevc
htmlentities
String 函数


Convert all applicable characters to HTML entities

html_entity_decode
htmlspecialchars_decode
String 函数
PHP 手册

htmlentities

(PHP 4, PHP 5)

htmlentities — Convert all applicable characters to HTML entities

说明

string htmlentities ( string $string [, int $quote_style=ENT_COMPAT [, string $charset [, bool $double_encode=true ]]] )

This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.

If you're wanting to decode instead (the reverse) you can use html_entity_decode().

参数

string

The input string.

quote_style

Like htmlspecialchars(), the optional second quote_style parameter lets you define what will be done with 'single' and "double" quotes. It takes on one of three constants with the default being ENT_COMPAT:

Available quote_style constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.

charset

Like htmlspecialchars(), it takes an optional third argument charset which defines character set used in conversion. Presently, the ISO-8859-1 character set is used as the default.

PHP 4.3.0 及其后续版本支持如下字符集。

已支持字符集
字符集 | 别名 | 描述
ISO-8859-1 | ISO8859-1 | 西欧，Latin-1
ISO-8859-15 | ISO8859-15 | 西欧，Latin-9。增加了 Latin-1（ISO-8859-1）中缺少的欧元符号、法国及芬兰字母。
UTF-8 | ASCII 兼容多字节 8-bit Unicode。
cp866 | ibm866, 866 | DOS-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1251 | Windows-1251, win-1251, 1251 | Windows-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1252 | Windows-1252, 1252 | Windows 对于西欧特有的字符集。
KOI8-R | koi8-ru, koi8r | 俄文。PHP 4.3.2 开始支持该字符集。
BIG5 | 950 | 繁体中文，主要用于中国台湾。
GB2312 | 936 | 简体中文，国际标准字符集。
BIG5-HKSCS | 繁体中文，Big5 的延伸，主要用于香港。
Shift_JIS | SJIS, 932 | 日文。
EUC-JP | EUCJP | 日文。

Note: ISO-8859-1 将代替任何其它无法识别的字符集。

double_encode

When double_encode is turned off PHP will not encode existing html entities. The default is to convert everything.

返回值

Returns the encoded string.

更新日志

版本 | 说明
5.2.3 | The double_encode parameter was added.
4.1.0 | The charset parameter was added.
4.0.3 | The quote_style parameter was added.

范例

Example #1 A htmlentities() example

<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

参见

  • html_entity_decode() - Convert all HTML entities to their applicable characters
  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities
  • htmlspecialchars() - Convert special characters to HTML entities
  • nl2br() - Inserts HTML line breaks before all newlines in a string
  • urlencode() - 编码 URL 字符串

html_entity_decode
htmlspecialchars_decode
String 函数


Convert special HTML entities back to characters

htmlentities
htmlspecialchars
String 函数
PHP 手册

htmlspecialchars_decode

(PHP 5 >= 5.1.0)

htmlspecialchars_decode — Convert special HTML entities back to characters

说明

string htmlspecialchars_decode ( string $string [, int $quote_style=ENT_COMPAT ] )

This function is the opposite of htmlspecialchars(). It converts special HTML entities back to characters.

The converted entities are: &amp;, &quot; (when ENT_NOQUOTES is not set), &#039; (when ENT_QUOTES is set), &lt; and &gt;.

参数

string

The string to decode

quote_style

The quote style. One of the following constants:

quote_style constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone (default)
ENT_QUOTES | Will convert both double and single quotes
ENT_NOQUOTES | Will leave both double and single quotes unconverted

返回值

Returns the decoded string.

范例

Example #1 A htmlspecialchars_decode() example

<?php
$str = '<p>this -&gt; &quot;</p>';

echo htmlspecialchars_decode($str);

// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

上例将输出：

<p>this -> "</p>
<p>this -> &quot;</p>

参见

  • htmlspecialchars() - Convert special characters to HTML entities
  • html_entity_decode() - Convert all HTML entities to their applicable characters
  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities

htmlentities
htmlspecialchars
String 函数


Convert special characters to HTML entities

htmlspecialchars_decode
implode
String 函数
PHP 手册

htmlspecialchars

(PHP 4, PHP 5)

htmlspecialchars — Convert special characters to HTML entities

说明

string htmlspecialchars ( string $string [, int $quote_style=ENT_COMPAT [, string $charset [, bool $double_encode=true ]]] )

Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings. This function returns a string with some of these conversions made; the translations made are those most useful for everyday web programming. If you require all HTML character entities to be translated, use htmlentities() instead.

This function is useful in preventing user-supplied text from containing HTML markup, such as in a message board or guest book application.

The translations performed are:

  • '&' (ampersand) becomes '&amp;'
  • '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
  • ''' (single quote) becomes '&#039;' only when ENT_QUOTES is set.
  • '<' (less than) becomes '&lt;'
  • '>' (greater than) becomes '&gt;'

参数

string

The string being converted.

quote_style

The optional second argument, quote_style , tells the function what to do with single and double quote characters. The default mode, ENT_COMPAT, is the backwards compatible mode which only translates the double-quote character and leaves the single-quote untranslated. If ENT_QUOTES is set, both single and double quotes are translated and if ENT_NOQUOTES is set neither single nor double quotes are translated.

charset

Defines character set used in conversion. The default character set is ISO-8859-1.

PHP 4.3.0 及其后续版本支持如下字符集。

已支持字符集
字符集 | 别名 | 描述
ISO-8859-1 | ISO8859-1 | 西欧，Latin-1
ISO-8859-15 | ISO8859-15 | 西欧，Latin-9。增加了 Latin-1（ISO-8859-1）中缺少的欧元符号、法国及芬兰字母。
UTF-8 | ASCII 兼容多字节 8-bit Unicode。
cp866 | ibm866, 866 | DOS-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1251 | Windows-1251, win-1251, 1251 | Windows-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1252 | Windows-1252, 1252 | Windows 对于西欧特有的字符集。
KOI8-R | koi8-ru, koi8r | 俄文。PHP 4.3.2 开始支持该字符集。
BIG5 | 950 | 繁体中文，主要用于中国台湾。
GB2312 | 936 | 简体中文，国际标准字符集。
BIG5-HKSCS | 繁体中文，Big5 的延伸，主要用于香港。
Shift_JIS | SJIS, 932 | 日文。
EUC-JP | EUCJP | 日文。

Note: ISO-8859-1 将代替任何其它无法识别的字符集。

double_encode

When double_encode is turned off PHP will not encode existing html entities, the default is to convert everything.

返回值

The converted string.

更新日志

版本 | 说明
5.2.3 | The double_encode parameter was added.
4.1.0 | The charset parameter was added.

范例

Example #1 htmlspecialchars() example

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

注释

Note: Note that this function does not translate anything beyond what is listed above. For full entity translation, see htmlentities().

参见

  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities
  • htmlspecialchars_decode() - Convert special HTML entities back to characters
  • strip_tags() - Strip HTML and PHP tags from a string
  • htmlentities() - Convert all applicable characters to HTML entities
  • nl2br() - Inserts HTML line breaks before all newlines in a string

htmlspecialchars_decode
implode
String 函数


Join array elements with a string

htmlspecialchars
join
String 函数
PHP 手册

implode

(PHP 4, PHP 5)

implode — Join array elements with a string

说明

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

Join array elements with a glue string.

Note: implode() can, for historical reasons, accept its parameters in either order. For consistency with explode(), however, it may be less confusing to use the documented order of arguments.

参数

glue

Defaults to an empty string. This is not the preferred usage of implode() as glue would be the second parameter and thus, the bad prototype would be used.

pieces

The array of strings to implode.

返回值

Returns a string containing a string representation of all the array elements in the same order, with the glue string between each element.

更新日志

版本 | 说明
4.3.0 | The glue parameter became optional.

范例

Example #1 implode() example

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • explode() - 使用一个字符串分割另一个字符串
  • split() - 用正则表达式将字符串分割到数组中

htmlspecialchars
join
String 函数


别名 implode

implode
lcfirst
String 函数
PHP 手册

join

(PHP 4, PHP 5)

join — 别名 implode()

说明

本函数是该函数的别名： implode().

implode
lcfirst
String 函数


Make a string's first character lowercase

join
levenshtein
String 函数
PHP 手册

lcfirst

(PHP 5 >= 5.3.0)

lcfirst — Make a string's first character lowercase

说明

string lcfirst ( string $str )

Returns a string with the first character of str , lowercased if that character is alphabetic.

Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted.

参数

str

The input string.

返回值

Returns the resulting string.

范例

Example #1 lcfirst() example

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo);             // helloWorld

$bar = 'HELLO WORLD!';
$bar = lcfirst($bar);             // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>

参见

  • ucfirst() - Make a string's first character uppercase
  • strtolower() - Make a string lowercase
  • strtoupper() - Make a string uppercase
  • ucwords() - Uppercase the first character of each word in a string

join
levenshtein
String 函数


Calculate Levenshtein distance between two strings

lcfirst
localeconv
String 函数
PHP 手册

levenshtein

(PHP 4 >= 4.0.1, PHP 5)

levenshtein — Calculate Levenshtein distance between two strings

说明

int levenshtein ( string $str1 , string $str2 )
int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )

The Levenshtein distance is defined as the minimal number of characters you have to replace, insert or delete to transform str1 into str2 . The complexity of the algorithm is O(m*n), where n and m are the length of str1 and str2 (rather good when compared to similar_text(), which is O(max(n,m)**3), but still expensive).

In its simplest form the function will take only the two strings as parameter and will calculate just the number of insert, replace and delete operations needed to transform str1 into str2 .

A second variant will take three additional parameters that define the cost of insert, replace and delete operations. This is more general and adaptive than variant one, but not as efficient.

参数

str1

One of the strings being evaluated for Levenshtein distance.

str2

One of the strings being evaluated for Levenshtein distance.

cost_ins

Defines the cost of insertion.

cost_rep

Defines the cost of replacement.

cost_del

Defines the cost of deletion.

返回值

This function returns the Levenshtein-Distance between the two argument strings or -1, if one of the argument strings is longer than the limit of 255 characters.

范例

Example #1 levenshtein() example

<?php
// input misspelled word
$input = 'carrrot';

// array of words to check against
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// no shortest distance found, yet
$shortest = -1;

// loop through words to find the closest
foreach ($words as $word) {

    // calculate the distance between the input word,
    // and the current word
    $lev = levenshtein($input, $word);

    // check for an exact match
    if ($lev == 0) {

        // closest word is this one (exact match)
        $closest = $word;
        $shortest = 0;

        // break out of the loop; we've found an exact match
        break;
    }

    // if this distance is less than the next found shortest
    // distance, OR if a next shortest word has not yet been found
    if ($lev <= $shortest || $shortest < 0) {
        // set the closest match, and shortest distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Input word: $input\n";
if ($shortest == 0) {
    echo "Exact match found: $closest\n";
} else {
    echo "Did you mean: $closest?\n";
}

?>

上例将输出：

Input word: carrrot
Did you mean: carrot?

参见

  • soundex() - Calculate the soundex key of a string
  • similar_text() - Calculate the similarity between two strings
  • metaphone() - Calculate the metaphone key of a string

lcfirst
localeconv
String 函数


Get numeric formatting information

levenshtein
ltrim
String 函数
PHP 手册

localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv — Get numeric formatting information

说明

array localeconv ( void )

Returns an associative array containing localized numeric and monetary formatting information.

返回值

localeconv() returns data based upon the current locale as set by setlocale(). The associative array that is returned contains the following fields:

Array element | Description
decimal_point | Decimal point character
thousands_sep | Thousands separator
grouping | Array containing numeric groupings
int_curr_symbol | International currency symbol (i.e. USD)
currency_symbol | Local currency symbol (i.e. $)
mon_decimal_point | Monetary decimal point character
mon_thousands_sep | Monetary thousands separator
mon_grouping | Array containing monetary groupings
positive_sign | Sign for positive values
negative_sign | Sign for negative values
int_frac_digits | International fractional digits
frac_digits | Local fractional digits
p_cs_precedes | TRUE if currency_symbol precedes a positive value, FALSE if it succeeds one
p_sep_by_space | TRUE if a space separates currency_symbol from a positive value, FALSE otherwise
n_cs_precedes | TRUE if currency_symbol precedes a negative value, FALSE if it succeeds one
n_sep_by_space | TRUE if a space separates currency_symbol from a negative value, FALSE otherwise
p_sign_posn
  • 0 - Parentheses surround the quantity and currency_symbol
  • 1 - The sign string precedes the quantity and currency_symbol
  • 2 - The sign string succeeds the quantity and currency_symbol
  • 3 - The sign string immediately precedes the currency_symbol
  • 4 - The sign string immediately succeeds the currency_symbol
n_sign_posn
  • 0 - Parentheses surround the quantity and currency_symbol
  • 1 - The sign string precedes the quantity and currency_symbol
  • 2 - The sign string succeeds the quantity and currency_symbol
  • 3 - The sign string immediately precedes the currency_symbol
  • 4 - The sign string immediately succeeds the currency_symbol

The p_sign_posn, and n_sign_posn contain a string of formatting options. Each number representing one of the above listed conditions.

The grouping fields contain arrays that define the way numbers should be grouped. For example, the monetary grouping field for the nl_NL locale (in UTF-8 mode with the euro sign), would contain a 2 item array with the values 3 and 3. The higher the index in the array, the farther left the grouping is. If an array element is equal to CHAR_MAX, no further grouping is done. If an array element is equal to 0, the previous element should be used.

范例

Example #1 localeconv() example

<?php
if (false !== setlocale(LC_ALL, 'nl_NL.UTF-8@euro')) {
    $locale_info = localeconv();
    print_r($locale_info);
}
?>

上例将输出：

Array
(
    [decimal_point] => .
    [thousands_sep] =>
    [int_curr_symbol] => EUR
    [currency_symbol] => €
    [mon_decimal_point] => ,
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 1
    [p_sep_by_space] => 1
    [n_cs_precedes] => 1
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 2
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

参见

  • setlocale() - Set locale information

levenshtein
ltrim
String 函数


Strip whitespace (or other characters) from the beginning of a string

localeconv
md5_file
String 函数
PHP 手册

ltrim

(PHP 4, PHP 5)

ltrim — Strip whitespace (or other characters) from the beginning of a string

说明

string ltrim ( string $str [, string $charlist ] )

Strip whitespace (or other characters) from the beginning of a string.

参数

str

The input string.

charlist

You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters.

返回值

This function returns a string with whitespace stripped from the beginning of str . Without the second parameter, ltrim() will strip these characters:

  • " " (ASCII 32 (0x20)), an ordinary space.
  • "\t" (ASCII 9 (0x09)), a tab.
  • "\n" (ASCII 10 (0x0A)), a new line (line feed).
  • "\r" (ASCII 13 (0x0D)), a carriage return.
  • "\0" (ASCII 0 (0x00)), the NUL-byte.
  • "\x0B" (ASCII 11 (0x0B)), a vertical tab.

更新日志

版本 | 说明
4.1.0 | The charlist parameter was added.

范例

Example #1 Usage example of ltrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = ltrim($text);
var_dump($trimmed);

$trimmed = ltrim($text, " \t.");
var_dump($trimmed);

$trimmed = ltrim($hello, "Hdle");
var_dump($trimmed);

// trim the ASCII control characters at the beginning of $binary
// (from 0 to 31 inclusive)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

上例将输出：

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

参见

  • trim() - Strip whitespace (or other characters) from the beginning and end of a string
  • rtrim() - Strip whitespace (or other characters) from the end of a string

localeconv
md5_file
String 函数


Calculates the md5 hash of a given file

ltrim
md5
String 函数
PHP 手册

md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_file — Calculates the md5 hash of a given file

说明

string md5_file ( string $filename [, bool $raw_output=false ] )

Calculates the MD5 hash of the file specified by the filename parameter using the » RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character hexadecimal number.

参数

filename

The filename

raw_output

When TRUE, returns the digest in raw binary format with a length of 16. Defaults to FALSE.

返回值

Returns a string on success, FALSE otherwise.

更新日志

版本 | 说明
5.0.0 | Added the raw_output parameter
5.1.0 | Changed the function to use the streams API. It means that you can use it with wrappers, like md5_file('http://example.com/..')

范例

Example #1 Usage example of md5_file()

<?php
$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 'MD5 file hash of ' . $file . ': ' . md5_file($file);
?>

参见

  • md5() - Calculate the md5 hash of a string
  • sha1_file() - Calculate the sha1 hash of a file
  • crc32() - 计算一个字符串的 crc32 多项式

ltrim
md5
String 函数


Calculate the md5 hash of a string

md5_file
metaphone
String 函数
PHP 手册

md5

(PHP 4, PHP 5)

md5 — Calculate the md5 hash of a string

说明

string md5 ( string $str [, bool $raw_output=false ] )

Calculates the MD5 hash of str using the » RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash.

参数

str

The string.

raw_output

If the optional raw_output is set to TRUE, then the md5 digest is instead returned in raw binary format with a length of 16. Defaults to FALSE.

返回值

Returns the hash as a 32-character hexadecimal number.

更新日志

版本 | 说明
5.0.0 | The raw_output parameter was added.

范例

Example #1 A md5() example

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

参见

  • md5_file() - Calculates the md5 hash of a given file
  • sha1_file() - Calculate the sha1 hash of a file
  • crc32() - 计算一个字符串的 crc32 多项式
  • sha1() - Calculate the sha1 hash of a string
  • hash() - Generate a hash value (message digest)

md5_file
metaphone
String 函数


Calculate the metaphone key of a string

md5
money_format
String 函数
PHP 手册

metaphone

(PHP 4, PHP 5)

metaphone — Calculate the metaphone key of a string

说明

string metaphone ( string $str [, int $phones=0 ] )

Calculates the metaphone key of str .

Similar to soundex() metaphone creates the same key for similar sounding words. It's more accurate than soundex() as it knows the basic rules of English pronunciation. The metaphone generated keys are of variable length.

Metaphone was developed by Lawrence Philips <lphilips at verity dot com>. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

参数

str

The input string.

phones

返回值

Returns the metaphone key as a string.

md5
money_format
String 函数


Formats a number as a currency string

metaphone
nl_langinfo
String 函数
PHP 手册

money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format — Formats a number as a currency string

说明

string money_format ( string $format , float $number )

money_format() returns a formatted version of number . This function wraps the C library function strfmon(), with the difference that this implementation converts only one number at a time.

参数

format

The format specification consists of the following sequence:

  • a % character

  • optional flags

  • optional field width

  • optional left precision

  • optional right precision

  • a required conversion character

Flags

One or more of the optional flags below can be used:

=f

The character = followed by a (single byte) character f to be used as the numeric fill character. The default fill character is space.

^

Disable the use of grouping characters (as defined by the current locale).

+ or (

Specify the formatting style for positive and negative numbers. If + is used, the locale's equivalent for + and - will be used. If ( is used, negative amounts are enclosed in parenthesis. If no specification is given, the default is +.

!

Suppress the currency symbol from the output string.

-

If present, it will make all fields left-justified (padded to the right), as opposed to the default which is for the fields to be right-justified (padded to the left).

Field width

w

A decimal digit string specifying a minimum field width. Field will be right-justified unless the flag - is used. Default value is 0 (zero).

Left precision

#n

The maximum number of digits (n) expected to the left of the decimal character (e.g. the decimal point). It is used usually to keep formatted output aligned in the same columns, using the fill character if the number of digits is less than n. If the number of actual digits is bigger than n, then this specification is ignored.

If grouping has not been suppressed using the ^ flag, grouping separators will be inserted before the fill characters (if any) are added. Grouping separators will not be applied to fill characters, even if the fill character is a digit.

To ensure alignment, any characters appearing before or after the number in the formatted output such as currency or sign symbols are padded as necessary with space characters to make their positive and negative formats an equal length.

Right precision

.p

A period followed by the number of digits (p) after the decimal character. If the value of p is 0 (zero), the decimal character and the digits to its right will be omitted. If no right precision is included, the default will dictated by the current local in use. The amount being formatted is rounded to the specified number of digits prior to formatting.

Conversion characters

i

The number is formatted according to the locale's international currency format (e.g. for the USA locale: USD 1,234.56).

n

The number is formatted according to the locale's national currency format (e.g. for the de_DE locale: DM1.234,56).

%

Returns the % character.

number

The number to be formatted.

返回值

Returns the formatted string. Characters before and after the formatting string will be returned unchanged. Non-numeric number causes returning NULL and emitting E_WARNING.

注释

Note: The function money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows.

Note: The LC_MONETARY category of the locale settings, affects the behavior of this function. Use setlocale() to set to the appropriate default locale before using this function.

范例

Example #1 money_format() Example

We will use different locales and format specifications to illustrate the use of this function.

<?php

$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56

// Using a negative number
$number = -1234.5672;

// US national format, using () for negative numbers
// and 10 digits for left precision
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// Similar format as above, adding the use of 2 digits of right
// precision and '*' as a fill character
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Let's justify to the left, with 14 positions of width, 8 digits of
// left precision, 2 of right precision, withouth grouping character
// and using the international format for the de_DE locale.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****

// Let's add some blurb before and after the conversion specification
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'The final value is %i (after a 10%% discount)';
echo money_format($fmt, 1234.56) . "\n";
// The final value is  GBP 1,234.56 (after a 10% discount)

?>

参见

  • setlocale() - Set locale information
  • sscanf() - Parses input from a string according to a format
  • sprintf() - Return a formatted string
  • printf() - Output a formatted string
  • number_format() - Format a number with grouped thousands

metaphone
nl_langinfo
String 函数


Query language and locale information

money_format
nl2br
String 函数
PHP 手册

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfo — Query language and locale information

说明

string nl_langinfo ( int $item )

nl_langinfo() is used to access individual elements of the locale categories. Unlike localeconv(), which returns all of the elements, nl_langinfo() allows you to select any specific element.

参数

item

item may be an integer value of the element or the constant name of the element. The following is a list of constant names for item that may be used and their description. Some of these constants may not be defined or hold no value for certain locales.

nl_langinfo Constants
Constant | Description
LC_TIME Category Constants
ABDAY_(1-7) | Abbreviated name of n-th day of the week.
DAY_(1-7) | Name of the n-th day of the week (DAY_1 = Sunday).
ABMON_(1-12) | Abbreviated name of the n-th month of the year.
MON_(1-12) | Name of the n-th month of the year.
AM_STR | String for Ante meridian.
PM_STR | String for Post meridian.
D_T_FMT | String that can be used as the format string for strftime() to represent time and date.
D_FMT | String that can be used as the format string for strftime() to represent date.
T_FMT | String that can be used as the format string for strftime() to represent time.
T_FMT_AMPM | String that can be used as the format string for strftime() to represent time in 12-hour format with ante/post meridian.
ERA | Alternate era.
ERA_YEAR | Year in alternate era format.
ERA_D_T_FMT | Date and time in alternate era format (string can be used in strftime()).
ERA_D_FMT | Date in alternate era format (string can be used in strftime()).
ERA_T_FMT | Time in alternate era format (string can be used in strftime()).
LC_MONETARY Category Constants
INT_CURR_SYMBOL | International currency symbol.
CURRENCY_SYMBOL | Local currency symbol.
CRNCYSTR | Same value as CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Decimal point character.
MON_THOUSANDS_SEP | Thousands separator (groups of three digits).
MON_GROUPING | Like 'grouping' element.
POSITIVE_SIGN | Sign for positive values.
NEGATIVE_SIGN | Sign for negative values.
INT_FRAC_DIGITS | International fractional digits.
FRAC_DIGITS | Local fractional digits.
P_CS_PRECEDES | Returns 1 if CURRENCY_SYMBOL precedes a positive value.
P_SEP_BY_SPACE | Returns 1 if a space separates CURRENCY_SYMBOL from a positive value.
N_CS_PRECEDES | Returns 1 if CURRENCY_SYMBOL precedes a negative value.
N_SEP_BY_SPACE | Returns 1 if a space separates CURRENCY_SYMBOL from a negative value.
P_SIGN_POSN
  • Returns 0 if parentheses surround the quantity and currency_symbol.
  • Returns 1 if the sign string precedes the quantity and currency_symbol.
  • Returns 2 if the sign string follows the quantity and currency_symbol.
  • Returns 3 if the sign string immediately precedes the currency_symbol.
  • Returns 4 if the sign string immediately follows the currency_symbol.
N_SIGN_POSN
LC_NUMERIC Category Constants
DECIMAL_POINT | Decimal point character.
RADIXCHAR | Same value as DECIMAL_POINT.
THOUSANDS_SEP | Separator character for thousands (groups of three digits).
THOUSEP | Same value as THOUSANDS_SEP.
GROUPING
LC_MESSAGES Category Constants
YESEXPR | Regex string for matching 'yes' input.
NOEXPR | Regex string for matching 'no' input.
YESSTR | Output string for 'yes'.
NOSTR | Output string for 'no'.
LC_CTYPE Category Constants
CODESET | Return a string with the name of the character encoding.

返回值

Returns the element as a string, or FALSE if item is not valid.

注释

Note: 本函数未在 Windows 平台下实现。

参见

  • setlocale() - Set locale information
  • localeconv() - Get numeric formatting information

money_format
nl2br
String 函数


Inserts HTML line breaks before all newlines in a string

nl_langinfo
number_format
String 函数
PHP 手册

nl2br

(PHP 4, PHP 5)

nl2br — Inserts HTML line breaks before all newlines in a string

说明

string nl2br ( string $string [, bool $is_xhtml=true ] )

Returns string with '<br />' or '<br>' inserted before all newlines.

参数

string

The input string.

is_xhtml

Whenever to use XHTML compatible line breaks or not (defaults to TRUE).

返回值

Returns the altered string.

范例

Example #1 using nl2br()

<?php
echo nl2br("foo isn't\n bar");
?>

上例将输出：

foo isn't<br />
 bar

Example #2 Generating valid HTML markup using the is_xhtml parameter

<?php
echo nl2br("Welcome\r\nThis is my HTML document", false);
?>

上例将输出：

Welcome<br>
This is my HTML document

更新日志

版本 | 说明
5.3.0 | Added the optional is_xhtml parameter.
4.0.5 | nl2br() is now XHTML compliant. All older versions will return string with '<br>' inserted before newlines instead of '<br />'.

参见

  • htmlspecialchars() - Convert special characters to HTML entities
  • htmlentities() - Convert all applicable characters to HTML entities
  • wordwrap() - Wraps a string to a given number of characters
  • str_replace() - Replace all occurrences of the search string with the replacement string

nl_langinfo
number_format
String 函数


Format a number with grouped thousands

nl2br
ord
String 函数
PHP 手册

number_format

(PHP 4, PHP 5)

number_format — Format a number with grouped thousands

说明

string number_format ( float $number [, int $decimals ] )
string number_format ( float $number , int $decimals , string $dec_point , string $thousands_sep )

This function accepts either one, two, or four parameters (not three):

If only one parameter is given, number will be formatted without decimals, but with a comma (",") between every group of thousands.

If two parameters are given, number will be formatted with decimals decimals with a dot (".") in front, and a comma (",") between every group of thousands.

If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (".") before the decimals and thousands_sep instead of a comma (",") between every group of thousands.

返回值

A formatted version of number .

参数

number

The number being formatted.

decimals

Sets the number of decimal points.

dec_point

Sets the separator for the decimal point.

thousands_sep

Sets the thousands separator.

Only the first character of thousands_sep is used. For example, if you use bar as thousands_sep on the number 1000, number_format() will return 1b000.

范例

Example #1 number_format() Example

For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. This is achieved with this line :

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

参见

  • money_format() - Formats a number as a currency string
  • sprintf() - Return a formatted string
  • printf() - Output a formatted string
  • sscanf() - Parses input from a string according to a format

nl2br
ord
String 函数


Return ASCII value of character

number_format
parse_str
String 函数
PHP 手册

ord

(PHP 4, PHP 5)

ord — Return ASCII value of character

说明

int ord ( string $string )

Returns the ASCII value of the first character of string .

This function complements chr().

参数

string

A character.

返回值

Returns the ASCII value as an integer.

范例

Example #1 ord() example

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "The first character of \$str is a line feed.\n";
}
?>

参见

  • chr() - 返回指定的字符
  • An » ASCII-table

number_format
parse_str
String 函数


Parses the string into variables

ord
print
String 函数
PHP 手册

parse_str

(PHP 4, PHP 5)

parse_str — Parses the string into variables

说明

void parse_str ( string $str [, array &$arr ] )

Parses str as if it were the query string passed via a URL and sets variables in the current scope.

Note: To get the current QUERY_STRING, you may use the variable $_SERVER['QUERY_STRING']. Also, you may want to read the section on variables from external sources.

Note: The magic_quotes_gpc setting affects the output of this function, as parse_str() uses the same mechanism that PHP uses to populate the $_GET, $_POST, etc. variables.

参数

str

The input string.

arr

If the second parameter arr is present, variables are stored in this variable as array elements instead.

返回值

无返回值。

更新日志

版本 | 说明
4.0.3 | The arr parameter was added

范例

Example #1 Using parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

参见

  • parse_url() - 解析 URL，返回其组成部分
  • pathinfo() - 返回文件路径的信息
  • http_build_query() - 生成 URL-encode 之后的请求字符串
  • get_magic_quotes_gpc() - Gets the current configuration setting of magic quotes gpc
  • urldecode() - 解码已编码的 URL 字符串

ord
print
String 函数


Output a string

parse_str
printf
String 函数
PHP 手册

print

(PHP 4, PHP 5)

print — Output a string

说明

int print ( string $arg )

Outputs arg .

print() is not actually a real function (it is a language construct) so you are not required to use parentheses with its argument list.

For a short discussion about the differences between print() and echo(), see this FAQTs Knowledge Base Article: » http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

参数

arg

The input data.

返回值

Returns 1, always.

范例

Example #1 print() examples

<?php
print("Hello World");

print "print() also works without parentheses.";

print "This spans
multiple lines. The newlines will be
output as well";

print "This spans\nmultiple lines. The newlines will be\noutput as well.";

print "escaping characters is done \"Like this\".";

// You can use variables inside of a print statement
$foo = "foobar";
$bar = "barbaz";

print "foo is $foo"; // foo is foobar

// You can also use arrays
$bar = array("value" => "foo");

print "this is {$bar['value']} !"; // this is foo !

// Using single quotes will print the variable name, not the value
print 'foo is $foo'; // foo is $foo

// If you are not using any other characters, you can just print variables
print $foo;          // foobar

print <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon no extra whitespace!
END;
?>

注释

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

参见

  • echo() - Output one or more strings
  • printf() - Output a formatted string
  • flush() - 刷新输出缓冲

parse_str
printf
String 函数


Output a formatted string

print
quoted_printable_decode
String 函数
PHP 手册

printf

(PHP 4, PHP 5)

printf — Output a formatted string

说明

int printf ( string $format [, mixed $args [, mixed $... ]] )

Produces output according to format .

参数

format

See sprintf() for a description of format .

args

...

返回值

Returns the length of the outputted string.

参见

  • print() - Output a string
  • sprintf() - Return a formatted string
  • vprintf() - Output a formatted string
  • sscanf() - Parses input from a string according to a format
  • fscanf() - 从文件中格式化输入
  • flush() - 刷新输出缓冲

print
quoted_printable_decode
String 函数


Convert a quoted-printable string to an 8 bit string

printf
quoted_printable_encode
String 函数
PHP 手册

quoted_printable_decode

(PHP 4, PHP 5)

quoted_printable_decode — Convert a quoted-printable string to an 8 bit string

说明

string quoted_printable_decode ( string $str )

This function returns an 8-bit binary string corresponding to the decoded quoted printable string (according to » RFC2045, section 6.7, not » RFC2821, section 4.5.2, so additional periods are not stripped from the beginning of line).

This function is similar to imap_qprint(), except this one does not require the IMAP module to work.

参数

str

The input string.

返回值

Returns the 8-bit binary string.

printf
quoted_printable_encode
String 函数


Convert a 8 bit string to a quoted-printable string

quoted_printable_decode
quotemeta
String 函数
PHP 手册

quoted_printable_encode

(PHP 5 >= 5.3.0)

quoted_printable_encode — Convert a 8 bit string to a quoted-printable string

说明

string quoted_printable_encode ( string $str )

Returns a quoted printable string created according to » RFC2045, section 6.7.

This function is similar to imap_8bit(), except this one does not require the IMAP module to work.

参数

str

The input string.

返回值

Returns the encoded string.

参见

  • quoted_printable_decode() - Convert a quoted-printable string to an 8 bit string

quoted_printable_decode
quotemeta
String 函数


Quote meta characters

quoted_printable_encode
rtrim
String 函数
PHP 手册

quotemeta

(PHP 4, PHP 5)

quotemeta — Quote meta characters

说明

string quotemeta ( string $str )

Returns a version of str with a backslash character (\) before every character that is among these:

. \ + * ? [ ^ ] ( $ )

参数

str

The input string.

返回值

Returns the string with meta characters quoted.

注释

Note: 本函数可安全用于二进制对象。

参见

  • addslashes() - 使用反斜线引用字符串
  • addcslashes() - 以 C 语言风格使用反斜线转义字符串中的字符
  • htmlentities() - Convert all applicable characters to HTML entities
  • htmlspecialchars() - Convert special characters to HTML entities
  • nl2br() - Inserts HTML line breaks before all newlines in a string
  • stripslashes() - Un-quotes a quoted string
  • stripcslashes() - Un-quote string quoted with addcslashes
  • preg_match() - 进行正则表达式匹配

quoted_printable_encode
rtrim
String 函数


Strip whitespace (or other characters) from the end of a string

quotemeta
setlocale
String 函数
PHP 手册

rtrim

(PHP 4, PHP 5)

rtrim — Strip whitespace (or other characters) from the end of a string

说明

string rtrim ( string $str [, string $charlist ] )

This function returns a string with whitespace stripped from the end of str .

Without the second parameter, rtrim() will strip these characters:

  • " " (ASCII 32 (0x20)), an ordinary space.
  • "\t" (ASCII 9 (0x09)), a tab.
  • "\n" (ASCII 10 (0x0A)), a new line (line feed).
  • "\r" (ASCII 13 (0x0D)), a carriage return.
  • "\0" (ASCII 0 (0x00)), the NUL-byte.
  • "\x0B" (ASCII 11 (0x0B)), a vertical tab.

参数

str

The input string.

charlist

You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters.

返回值

Returns the modified string.

更新日志

版本 | 说明
4.1.0 | The charlist parameter was added.

范例

Example #1 Usage example of rtrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = rtrim($text);
var_dump($trimmed);

$trimmed = rtrim($text, " \t.");
var_dump($trimmed);

$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);

// trim the ASCII control characters at the end of $binary
// (from 0 to 31 inclusive)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

上例将输出：

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

参见

  • trim() - Strip whitespace (or other characters) from the beginning and end of a string
  • ltrim() - Strip whitespace (or other characters) from the beginning of a string

quotemeta
setlocale
String 函数


Set locale information

rtrim
sha1_file
String 函数
PHP 手册

setlocale

(PHP 4, PHP 5)

setlocale — Set locale information

说明

string setlocale ( int $category , string $locale [, string $... ] )
string setlocale ( int $category , array $locale )

Sets locale information.

参数

category

category is a named constant specifying the category of the functions affected by the locale setting:

  • LC_ALL for all of the below
  • LC_COLLATE for string comparison, see strcoll()
  • LC_CTYPE for character classification and conversion, for example strtoupper()
  • LC_MONETARY for localeconv()
  • LC_NUMERIC for decimal separator (See also localeconv())
  • LC_TIME for date and time formatting with strftime()
  • LC_MESSAGES for system responses (available if PHP was compiled with libintl)

locale

If locale is NULL or the empty string "", the locale names will be set from the values of environment variables with the same names as the above categories, or from "LANG".

If locale is "0", the locale setting is not affected, only the current setting is returned.

If locale is an array or followed by additional parameters then each array element or parameter is tried to be set as new locale until success. This is useful if a locale is known under different names on different systems or for providing a fallback for a possibly not available locale.

...

返回值

Returns the new current locale, or FALSE if the locale functionality is not implemented on your platform, the specified locale does not exist or the category name is invalid.

An invalid category name also causes a warning message. Category/locale names can be found in » RFC 1766 and » ISO 639. Different systems have different naming schemes for locales.

Note: The return value of setlocale() depends on the system that PHP is running. It returns exactly what the system setlocale function returns.

更新日志

版本 | 说明
5.3.0 | This function now throws an E_DEPRECATED notice if a string is passed to the category parameter instead of one of the LC_* constants.
4.3.0 | Passing multiple locales became possible.
4.2.0 | Passing category as a string is now deprecated, use the above constants instead. Passing them as a string (within quotes) will result in a warning message.

范例

Example #1 setlocale() Examples

<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nl_NL');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german as of PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Example #2 setlocale() Examples for Windows

<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nld_nld');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german as of PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>

注释

Warning

The locale information is maintained per process, not per thread. If you are running PHP on a multithreaded server api like IIS or Apache on Windows you may experience sudden changes of locale settings while a script is running although the script itself never called setlocale() itself. This happens due to other scripts running in different threads of the same process at the same time changing the processwide locale using setlocale().

Tip

Windows users will find useful information about locale strings at Microsoft's MSDN website. Supported language strings can be found at » http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp and supported country/region strings at » http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp. Windows systems support the three letter codes for country/region specified by ISO 3166-Alpha-3, which can be found at this » Unicode website.

rtrim
sha1_file
String 函数


Calculate the sha1 hash of a file

setlocale
sha1
String 函数
PHP 手册

sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_file — Calculate the sha1 hash of a file

说明

string sha1_file ( string $filename [, bool $raw_output=false ] )

Calculates the sha1 hash of filename using the » US Secure Hash Algorithm 1, and returns that hash. The hash is a 40-character hexadecimal number.

参数

filename

The filename

raw_output

When TRUE, returns the digest in raw binary format with a length of 20. Defaults to FALSE.

返回值

Returns a string on success, FALSE otherwise.

范例

Example #1 sha1_file() example

<?php
foreach(glob('/home/Kalle/myproject/*.php') as $ent)
{
    if(is_dir($ent))
    {
        continue;
    }

    echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>

更新日志

版本 | 说明
5.0.0 | Added the raw_output parameter
5.1.0 | Changed the function to use the streams API. It means that you can use it with wrappers, like sha1_file('http://example.com/..')

参见

  • sha1() - Calculate the sha1 hash of a string
  • md5_file() - Calculates the md5 hash of a given file
  • crc32() - 计算一个字符串的 crc32 多项式

setlocale
sha1
String 函数


Calculate the sha1 hash of a string

sha1_file
similar_text
String 函数
PHP 手册

sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1 — Calculate the sha1 hash of a string

说明

string sha1 ( string $str [, bool $raw_output=false ] )

Calculates the sha1 hash of str using the » US Secure Hash Algorithm 1.

参数

str

The input string.

raw_output

If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20, otherwise the returned value is a 40-character hexadecimal number. Defaults to FALSE.

返回值

Returns the sha1 hash as a string.

更新日志

版本 | 说明
5.0.0 | The raw_output parameter was added.

范例

Example #1 A sha1() example

<?php
$str = 'apple';

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

参见

  • sha1_file() - Calculate the sha1 hash of a file
  • crc32() - 计算一个字符串的 crc32 多项式
  • md5() - Calculate the md5 hash of a string
  • hash() - Generate a hash value (message digest)

sha1_file
similar_text
String 函数


Calculate the similarity between two strings

sha1
soundex
String 函数
PHP 手册

similar_text

(PHP 4, PHP 5)

similar_text — Calculate the similarity between two strings

说明

int similar_text ( string $first , string $second [, float &$percent ] )

This calculates the similarity between two strings as described in Oliver [1993]. Note that this implementation does not use a stack as in Oliver's pseudo code, but recursive calls which may or may not speed up the whole process. Note also that the complexity of this algorithm is O(N**3) where N is the length of the longest string.

参数

first

The first string.

second

The second string.

percent

By passing a reference as third argument, similar_text() will calculate the similarity in percent for you.

返回值

Returns the number of matching chars in both strings.

参见

  • levenshtein() - Calculate Levenshtein distance between two strings
  • soundex() - Calculate the soundex key of a string

sha1
soundex
String 函数


Calculate the soundex key of a string

similar_text
sprintf
String 函数
PHP 手册

soundex

(PHP 4, PHP 5)

soundex — Calculate the soundex key of a string

说明

string soundex ( string $str )

Calculates the soundex key of str .

Soundex keys have the property that words pronounced similarly produce the same soundex key, and can thus be used to simplify searches in databases where you know the pronunciation but not the spelling. This soundex function returns a string 4 characters long, starting with a letter.

This particular soundex function is one described by Donald Knuth in "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

参数

str

The input string.

返回值

Returns the soundex key as a string.

范例

Example #1 Soundex Examples

<?php
soundex("Euler")       == soundex("Ellery");    // E460
soundex("Gauss")       == soundex("Ghosh");     // G200
soundex("Hilbert")     == soundex("Heilbronn"); // H416
soundex("Knuth")       == soundex("Kant");      // K530
soundex("Lloyd")       == soundex("Ladd");      // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

参见

  • levenshtein() - Calculate Levenshtein distance between two strings
  • metaphone() - Calculate the metaphone key of a string
  • similar_text() - Calculate the similarity between two strings

similar_text
sprintf
String 函数


Return a formatted string

soundex
sscanf
String 函数
PHP 手册

sprintf

(PHP 4, PHP 5)

sprintf — Return a formatted string

说明

string sprintf ( string $format [, mixed $args [, mixed $... ]] )

Returns a string produced according to the formatting string format .

参数

format

The format string is composed of zero or more directives: ordinary characters (excluding %) that are copied directly to the result, and conversion specifications, each of which results in fetching its own parameter. This applies to both sprintf() and printf().

Each conversion specification consists of a percent sign (%), followed by one or more of these elements, in order:

  1. An optional sign specifier that forces a sign (- or +) to be used on a number. By default, only the - sign is used on a number if it's negative. This specifier forces positive numbers to have the + sign attached as well, and was added in PHP 4.3.0.
  2. An optional padding specifier that says what character will be used for padding the results to the right string size. This may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character can be specified by prefixing it with a single quote ('). See the examples below.
  3. An optional alignment specifier that says if the result should be left-justified or right-justified. The default is right-justified; a - character here will make it left-justified.
  4. An optional number, a width specifier that says how many characters (minimum) this conversion should result in.
  5. An optional precision specifier that says how many decimal digits should be displayed for floating-point numbers. When using this specifier on a string, it acts as a cutoff point, setting a maximum character limit to the string.

  6. A type specifier that says what type the argument data should be treated as. Possible types:

    • % - a literal percent character. No argument is required.
    • b - the argument is treated as an integer, and presented as a binary number.
    • c - the argument is treated as an integer, and presented as the character with that ASCII value.
    • d - the argument is treated as an integer, and presented as a (signed) decimal number.
    • e - the argument is treated as scientific notation (e.g. 1.2e+2). The precision specifier stands for the number of digits after the decimal point since PHP 5.2.1. In earlier versions, it was taken as number of significant digits (one less).
    • u - the argument is treated as an integer, and presented as an unsigned decimal number.
    • f - the argument is treated as a float, and presented as a floating-point number (locale aware).
    • F - the argument is treated as a float, and presented as a floating-point number (non-locale aware). Available since PHP 4.3.10 and PHP 5.0.3.
    • o - the argument is treated as an integer, and presented as an octal number.
    • s - the argument is treated as and presented as a string.
    • x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
    • X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).

The format string supports argument numbering/swapping. Here is an example:

Example #1 Argument swapping

<?php
$format = 'There are %d monkeys in the %s';
printf($format, $num, $location);
?>

This might output, "There are 5 monkeys in the tree". But imagine we are creating a format string in a separate file, commonly because we would like to internationalize it and we rewrite it as:

Example #2 Argument swapping

<?php
$format = 'The %s contains %d monkeys';
printf($format, $num, $location);
?>

We now have a problem. The order of the placeholders in the format string does not match the order of the arguments in the code. We would like to leave the code as is and simply indicate in the format string which arguments the placeholders refer to. We would write the format string like this instead:

Example #3 Argument swapping

<?php
$format = 'The %2$s contains %1$d monkeys';
printf($format, $num, $location);
?>

An added benefit here is that you can repeat the placeholders without adding more arguments in the code. For example:

Example #4 Argument swapping

<?php
$format = 'The %2$s contains %1$d monkeys.
           That\'s a nice %2$s full of %1$d monkeys.';
printf($format, $num, $location);
?>

args

...

返回值

Returns a string produced according to the formatting string format .

更新日志

版本 | 说明
4.0.6 | Support for argument numbering/swapping was added

范例

Example #5 printf(): various examples

<?php
$n =  43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'

// notice the double %%, this prints a literal '%' character
printf("%%b = '%b'\n", $n); // binary representation
printf("%%c = '%c'\n", $c); // print the ascii character, same as chr() function
printf("%%d = '%d'\n", $n); // standard integer representation
printf("%%e = '%e'\n", $n); // scientific notation
printf("%%u = '%u'\n", $n); // unsigned integer representation of a positive integer
printf("%%u = '%u'\n", $u); // unsigned integer representation of a negative integer
printf("%%f = '%f'\n", $n); // floating point representation
printf("%%o = '%o'\n", $n); // octal representation
printf("%%s = '%s'\n", $n); // string representation
printf("%%x = '%x'\n", $n); // hexadecimal representation (lower-case)
printf("%%X = '%X'\n", $n); // hexadecimal representation (upper-case)

printf("%%+d = '%+d'\n", $n); // sign specifier on a positive integer
printf("%%+d = '%+d'\n", $u); // sign specifier on a negative integer
?>

上例将输出：

%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'

Example #6 printf(): string specifiers

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // standard string output
printf("[%10s]\n",    $s); // right-justification with spaces
printf("[%-10s]\n",   $s); // left-justification with spaces
printf("[%010s]\n",   $s); // zero-padding works on strings too
printf("[%'#10s]\n",  $s); // use the custom padding character '#'
printf("[%10.10s]\n", $t); // left-justification but with a cutoff of 10 characters
?>

上例将输出：

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

Example #7 sprintf(): zero-padded integers

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Example #8 sprintf(): formatting currency

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted will output "123.10"
?>

Example #9 sprintf(): scientific notation

<?php
$number = 362525200;

echo sprintf("%.3e", $number); // outputs 3.625e+8
?>

参见

  • printf() - Output a formatted string
  • sscanf() - Parses input from a string according to a format
  • fscanf() - 从文件中格式化输入
  • vsprintf() - Return a formatted string
  • number_format() - Format a number with grouped thousands

soundex
sscanf
String 函数


Parses input from a string according to a format

sprintf
str_getcsv
String 函数
PHP 手册

sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf — Parses input from a string according to a format

说明

mixed sscanf ( string $str , string $format [, mixed &$... ] )

The function sscanf() is the input analog of printf(). sscanf() reads from the string str and interprets it according to the specified format , which is described in the documentation for sprintf().

Any whitespace in the format string matches any whitespace in the input string. This means that even a tab \t in the format string can match a single space character in the input string.

参数

str

The input string being parsed.

format

The interpreted format for str , which is described in the documentation for sprintf().

...

Optionally pass in variables by reference that will contain the parsed values.

返回值

If only two parameters were passed to this function, the values parsed will be returned as an array. Otherwise, if optional parameters are passed, the function will return the number of assigned values. The optional parameters must be passed by reference.

范例

Example #1 sscanf() Example

<?php
// getting the serial number
list($serial) = sscanf("SN/2350001", "SN/%d");
// and the date of manufacturing
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n";
?>

If optional parameters are passed, the function will return the number of assigned values.

Example #2 sscanf() - using optional parameters

<?php
// get author info and generate DocBook entry
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>

参见

  • fscanf() - 从文件中格式化输入
  • printf() - Output a formatted string
  • sprintf() - Return a formatted string

sprintf
str_getcsv
String 函数


Parse a CSV string into an array

sscanf
str_ireplace
String 函数
PHP 手册

str_getcsv

(PHP 5 >= 5.3.0)

str_getcsv — Parse a CSV string into an array

说明

array str_getcsv ( string $input [, string $delimiter [, string $enclosure [, string $escape ]]] )

Similar to fgetcsv() this functions parses a string as its input unlike fgetcsv() which takes a file as its input.

参数

input

The string to parse.

delimiter

Set the field delimiter (one character only). Defaults as a comma.

enclosure

Set the field enclosure character (one character only). Defaults as a double quotation mark.

escape

Set the escape character (one character only). Defaults as a backslash (\)

返回值

Returns an indexed array containing the fields read.

参见

  • fgetcsv() - 从文件指针中读入一行并解析 CSV 字段

sscanf
str_ireplace
String 函数


Case-insensitive version of str_replace.

str_getcsv
str_pad
String 函数
PHP 手册

str_ireplace

(PHP 5)

str_ireplace — Case-insensitive version of str_replace().

说明

mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value. If you don't need fancy replacing rules, you should generally use this function instead of preg_replace() with the i modifier.

参数

search

Note: Every replacement with search array is performed on the result of previous replacement.

replace

subject

If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.

count

The number of matched and replaced needles will be returned in count which is passed by reference.

If search and replace are arrays, then str_ireplace() takes a value from each array and uses them to do search and replace on subject . If replace has fewer values than search , then an empty string is used for the rest of replacement values. If search is an array and replace is a string, then this replacement string is used for every value of search .

返回值

Returns a string or an array of replacements.

更新日志

版本 | 说明
5.0.0 | The count parameter was added.

范例

Example #1 str_ireplace() example

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • str_replace() - Replace all occurrences of the search string with the replacement string
  • preg_replace() - 执行正则表达式的搜索和替换
  • strtr() - Translate certain characters

str_getcsv
str_pad
String 函数


Pad a string to a certain length with another string

str_ireplace
str_repeat
String 函数
PHP 手册

str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_pad — Pad a string to a certain length with another string

说明

string str_pad ( string $input , int $pad_length [, string $pad_string=" " [, int $pad_type=STR_PAD_RIGHT ]] )

This functions returns the input string padded on the left, the right, or both sides to the specified padding length. If the optional argument pad_string is not supplied, the input is padded with spaces, otherwise it is padded with characters from pad_string up to the limit.

参数

input

The input string.

pad_length

If the value of pad_length is negative or less than the length of the input string, no padding takes place.

pad_string

Note: The pad_string may be truncated if the required number of padding characters can't be evenly divided by the pad_string 's length.

pad_type

Optional argument pad_type can be STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH. If pad_type is not specified it is assumed to be STR_PAD_RIGHT.

返回值

Returns the padded string.

范例

Example #1 str_pad() example

<?php
$input = "Alien";
echo str_pad($input, 10);                      // produces "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // produces "__Alien___"
echo str_pad($input, 6 , "___");               // produces "Alien_"
?>

str_ireplace
str_repeat
String 函数


Repeat a string

str_pad
str_replace
String 函数
PHP 手册

str_repeat

(PHP 4, PHP 5)

str_repeat — Repeat a string

说明

string str_repeat ( string $input , int $multiplier )

Returns input repeated multiplier times.

参数

input

The string to be repeated.

multiplier

Number of time the input string should be repeated.

multiplier has to be greater than or equal to 0. If the multiplier is set to 0, the function will return an empty string.

返回值

Returns the repeated string.

范例

Example #1 str_repeat() example

<?php
echo str_repeat("-=", 10);
?>

上例将输出：

-=-=-=-=-=-=-=-=-=-=

参见

  • for
  • str_pad() - Pad a string to a certain length with another string
  • substr_count() - Count the number of substring occurrences

str_pad
str_replace
String 函数


Replace all occurrences of the search string with the replacement string

str_repeat
str_rot13
String 函数
PHP 手册

str_replace

(PHP 4, PHP 5)

str_replace — Replace all occurrences of the search string with the replacement string

说明

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

This function returns a string or an array with all occurrences of search in subject replaced with the given replace value.

If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().

参数

If search and replace are arrays, then str_replace() takes a value from each array and uses them to do search and replace on subject . If replace has fewer values than search , then an empty string is used for the rest of replacement values. If search is an array and replace is a string, then this replacement string is used for every value of search . The converse would not make sense, though.

If search or replace are arrays, their elements are processed first to last.

search

replace

subject

If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.

count

Note: If passed, this will hold the number of matched and replaced needles.

返回值

This function returns a string or an array with the replaced values.

更新日志

版本 | 说明
5.0.0 | The count parameter was added.
4.3.3 | The behaviour of this function changed. In older versions a bug existed when using arrays as both search and replace parameters which caused empty search indexes to be skipped without advancing the internal pointer on the replace array. This has been corrected in PHP 4.3.3, any scripts which relied on this bug should remove empty search values prior to calling this function in order to mimic the original behavior.
4.0.5 | Most parameters can now be an array.

范例

Example #1 str_replace() examples

<?php
// Provides: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// Use of the count parameter is available as of PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2

// Order of replacement
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';
// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);

// Outputs: apearpearle pear
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

注释

Note: 本函数可安全用于二进制对象。

Note: This function is case-sensitive. Use str_ireplace() for case-insensitive replace.

参见

  • str_ireplace() - Case-insensitive version of str_replace.
  • substr_replace() - Replace text within a portion of a string
  • preg_replace() - 执行正则表达式的搜索和替换
  • strtr() - Translate certain characters

str_repeat
str_rot13
String 函数


Perform the rot13 transform on a string

str_replace
str_shuffle
String 函数
PHP 手册

str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 — Perform the rot13 transform on a string

说明

string str_rot13 ( string $str )

Performs the ROT13 encoding on the str argument and returns the resulting string.

The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha characters untouched. Encoding and decoding are done by the same function, passing an encoded string as argument will return the original version.

参数

str

The input string.

返回值

Returns the ROT13 version of the given string.

范例

Example #1 str_rot13() example

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

更新日志

版本 | 说明
4.3.0 | The behaviour of this function was fixed. Before this fix, the str was also modified, as if it was passed by reference.

str_replace
str_shuffle
String 函数


Randomly shuffles a string

str_rot13
str_split
String 函数
PHP 手册

str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffle — Randomly shuffles a string

说明

string str_shuffle ( string $str )

str_shuffle() shuffles a string. One permutation of all possible is created.

参数

str

The input string.

返回值

Returns the shuffled string.

范例

Example #1 str_shuffle() example

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// This will echo something like: bfdaec
echo $shuffled;
?>

参见

  • shuffle() - 将数组打乱
  • rand() - 产生一个随机整数

str_rot13
str_split
String 函数


Convert a string to an array

str_shuffle
str_word_count
String 函数
PHP 手册

str_split

(PHP 5)

str_split — Convert a string to an array

说明

array str_split ( string $string [, int $split_length=1 ] )

Converts a string to an array.

参数

string

The input string.

split_length

Maximum length of the chunk.

返回值

If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length.

FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string , the entire string is returned as the first (and only) array element.

范例

Example #1 Example uses of str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

上例将输出：

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

参见

  • chunk_split() - 将字符串分割成小块
  • preg_split() - 用正则表达式分割字符串
  • explode() - 使用一个字符串分割另一个字符串
  • count_chars() - 返回字符串所用字符的信息
  • str_word_count() - Return information about words used in a string
  • for

str_shuffle
str_word_count
String 函数


Return information about words used in a string

str_split
strcasecmp
String 函数
PHP 手册

str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_count — Return information about words used in a string

说明

mixed str_word_count ( string $string [, int $format=0 [, string $charlist ]] )

Counts the number of words inside string . If the optional format is not specified, then the return value will be an integer representing the number of words found. In the event the format is specified, the return value will be an array, content of which is dependent on the format . The possible value for the format and the resultant outputs are listed below.

For the purpose of this function, 'word' is defined as a locale dependent string containing alphabetic characters, which also may contain, but not start with "'" and "-" characters.

参数

string

The string

format

Specify the return value of this function. The current supported values are:

  • 0 - returns the number of words found
  • 1 - returns an array containing all the words found inside the string
  • 2 - returns an associative array, where the key is the numeric position of the word inside the string and the value is the actual word itself

charlist

A list of additional characters which will be considered as 'word'

返回值

Returns an array or an integer, depending on the format chosen.

更新日志

版本 | 说明
5.1.0 | Added the charlist parameter

范例

Example #1 A str_word_count() example

<?php

$str = "Hello fri3nd, you're
       looking          good today!";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));

echo str_word_count($str);

?>

上例将输出：

Array
(
    [0] => Hello
    [1] => fri
    [2] => nd
    [3] => you're
    [4] => looking
    [5] => good
    [6] => today
)

Array
(
    [0] => Hello
    [6] => fri
    [10] => nd
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

Array
(
    [0] => Hello
    [1] => fri3nd
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

7

参见

  • explode() - 使用一个字符串分割另一个字符串
  • preg_split() - 用正则表达式分割字符串
  • split() - 用正则表达式将字符串分割到数组中
  • count_chars() - 返回字符串所用字符的信息
  • substr_count() - Count the number of substring occurrences

str_split
strcasecmp
String 函数


Binary safe case-insensitive string comparison

str_word_count
strchr
String 函数
PHP 手册

strcasecmp

(PHP 4, PHP 5)

strcasecmp — Binary safe case-insensitive string comparison

说明

int strcasecmp ( string $str1 , string $str2 )

Binary safe case-insensitive string comparison.

参数

str1

The first string

str2

The second string

返回值

Returns < 0 if str1 is less than str2 ; > 0 if str1 is greater than str2 , and 0 if they are equal.

范例

Example #1 strcasecmp() example

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}
?>

参见

  • preg_match() - 进行正则表达式匹配
  • strcmp() - Binary safe string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Binary safe case-insensitive string comparison of the first n characters
  • strstr() - Find first occurrence of a string

str_word_count
strchr
String 函数


别名 strstr

strcasecmp
strcmp
String 函数
PHP 手册

strchr

(PHP 4, PHP 5)

strchr — 别名 strstr()

说明

本函数是该函数的别名： strstr().

strcasecmp
strcmp
String 函数


Binary safe string comparison

strchr
strcoll
String 函数
PHP 手册

strcmp

(PHP 4, PHP 5)

strcmp — Binary safe string comparison

说明

int strcmp ( string $str1 , string $str2 )

Note that this comparison is case sensitive.

参数

str1

The first string.

str2

The second string.

返回值

Returns < 0 if str1 is less than str2 ; > 0 if str1 is greater than str2 , and 0 if they are equal.

参见

  • preg_match() - 进行正则表达式匹配
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Binary safe case-insensitive string comparison of the first n characters
  • strncmp() - Binary safe string comparison of the first n characters
  • strstr() - Find first occurrence of a string

strchr
strcoll
String 函数


Locale based string comparison

strcmp
strcspn
String 函数
PHP 手册

strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcoll — Locale based string comparison

说明

int strcoll ( string $str1 , string $str2 )

Note that this comparison is case sensitive, and unlike strcmp() this function is not binary safe.

strcoll() uses the current locale for doing the comparisons. If the current locale is C or POSIX, this function is equivalent to strcmp().

参数

str1

The first string.

str2

The second string.

返回值

Returns < 0 if str1 is less than str2 ; > 0 if str1 is greater than str2 , and 0 if they are equal.

更新日志

版本 | 说明
4.2.3 | This function now works on win32.

参见

  • preg_match() - 进行正则表达式匹配
  • strcmp() - Binary safe string comparison
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Binary safe case-insensitive string comparison of the first n characters
  • strncmp() - Binary safe string comparison of the first n characters
  • strstr() - Find first occurrence of a string
  • setlocale() - Set locale information

strcmp
strcspn
String 函数


Find length of initial segment not matching mask

strcoll
strip_tags
String 函数
PHP 手册

strcspn

(PHP 4, PHP 5)

strcspn — Find length of initial segment not matching mask

说明

int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] )

Returns the length of the initial segment of str1 which does not contain any of the characters in str2 .

参数

str1

The first string.

str2

The second string.

start

The start position of the string to examine.

length

The length of the string to examine.

返回值

Returns the length of the segment as an integer.

更新日志

版本 | 说明
4.3.0 | The start and length were added

注释

Note: 本函数可安全用于二进制对象。

参见

  • strspn() - Find length of initial segment matching mask

strcoll
strip_tags
String 函数


Strip HTML and PHP tags from a string

strcspn
stripcslashes
String 函数
PHP 手册

strip_tags

(PHP 4, PHP 5)

strip_tags — Strip HTML and PHP tags from a string

说明

string strip_tags ( string $str [, string $allowable_tags ] )

This function tries to return a string with all HTML and PHP tags stripped from a given str . It uses the same tag stripping state machine as the fgetss() function.

参数

str

The input string.

allowable_tags

You can use the optional second parameter to specify tags which should not be stripped.

Note: HTML comments and PHP tags are also stripped. This is hardcoded and can not be changed with allowable_tags .

返回值

Returns the stripped string.

更新日志

版本 | 说明
5.0.0 | strip_tags() is now binary safe
4.3.0 | HTML comments are now always stripped
4.0.0 | The allowable_tags parameter was added

范例

Example #1 strip_tags() example

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>

上例将输出：

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

注释

Warning

Because strip_tags() does not actually validate the HTML, partial, or broken tags can result in the removal of more text/data than expected.

Warning

This function does not modify any attributes on the tags that you allow using allowable_tags , including the style and onmouseover attributes that a mischievous user may abuse when posting text that will be shown to other users.

参见

  • htmlspecialchars() - Convert special characters to HTML entities

strcspn
stripcslashes
String 函数


Un-quote string quoted with addcslashes

strip_tags
stripos
String 函数
PHP 手册

stripcslashes

(PHP 4, PHP 5)

stripcslashes — Un-quote string quoted with addcslashes()

说明

string stripcslashes ( string $str )

Returns a string with backslashes stripped off. Recognizes C-like \n, \r ..., octal and hexadecimal representation.

参数

str

The string to be unescaped.

返回值

Returns the unescaped string.

参见

  • addcslashes() - 以 C 语言风格使用反斜线转义字符串中的字符

strip_tags
stripos
String 函数


Find position of first occurrence of a case-insensitive string

stripcslashes
stripslashes
String 函数
PHP 手册

stripos

(PHP 5)

stripos — Find position of first occurrence of a case-insensitive string

说明

int stripos ( string $haystack , string $needle [, int $offset=0 ] )

Returns the numeric position of the first occurrence of needle in the haystack string.

Unlike strpos(), stripos() is case-insensitive.

参数

haystack

The string to search in

needle

Note that the needle may be a string of one or more characters.

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

offset

The optional offset parameter allows you to specify which character in haystack to start searching. The position returned is still relative to the beginning of haystack .

返回值

If needle is not found, stripos() will return boolean FALSE.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

范例

Example #1 stripos() examples

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// Nope, 'a' is certainly not in 'xyz'
if ($pos1 === false) {
    echo "The string '$findme' was not found in the string '$mystring1'";
}

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' is the 0th (first) character.
if ($pos2 !== false) {
    echo "We found '$findme' in '$mystring2' at position $pos2";
}
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strpos() - Find position of first occurrence of a string
  • strrpos() - Find position of last occurrence of a char in a string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string
  • strripos() - Find position of last occurrence of a case-insensitive string in a string
  • str_ireplace() - Case-insensitive version of str_replace.

stripcslashes
stripslashes
String 函数


Un-quotes a quoted string

stripos
stristr
String 函数
PHP 手册

stripslashes

(PHP 4, PHP 5)

stripslashes — Un-quotes a quoted string

说明

string stripslashes ( string $str )

Un-quotes a quoted string.

Note: If magic_quotes_sybase is on, no backslashes are stripped off but two apostrophes are replaced by one instead.

An example use of stripslashes() is when the PHP directive magic_quotes_gpc is on (it's on by default), and you aren't inserting this data into a place (such as a database) that requires escaping. For example, if you're simply outputting data straight from an HTML form.

参数

str

The input string.

返回值

Returns a string with backslashes stripped off. (\' becomes ' and so on.) Double backslashes (\\) are made into a single backslash (\).

范例

Example #1 A stripslashes() example

<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

Note: stripslashes() is not recursive. If you want to apply this function to a multi-dimensional array, you need to use a recursive function.

Example #2 Using stripslashes() on an array

<?php
function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

// Example
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Output
print_r($array);
?>

上例将输出：

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

参见

  • addslashes() - 使用反斜线引用字符串
  • get_magic_quotes_gpc() - Gets the current configuration setting of magic quotes gpc

stripos
stristr
String 函数


Case-insensitive strstr

stripslashes
strlen
String 函数
PHP 手册

stristr

(PHP 4, PHP 5)

stristr — Case-insensitive strstr()

说明

string stristr ( string $haystack , mixed $needle [, bool $before_needle=false ] )

Returns all of haystack from the first occurrence of needle to the end.

参数

haystack

The string to search in

needle

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

before_needle

If TRUE (the default is FALSE), stristr() returns the part of the haystack before the first occurrence of the needle .

needle and haystack are examined in a case-insensitive manner.

返回值

Returns the matched substring. If needle is not found, returns FALSE.

更新日志

版本 | 说明
5.3.0 | Added the optional parameter before_needle .
4.3.0 | stristr() was made binary safe.

范例

Example #1 stristr() example

<?php
  $email = 'USER@EXAMPLE.com';
  echo stristr($email, 'e'); // outputs ER@EXAMPLE.com
  echo stristr($email, 'e', true); // As of PHP 5.3.0, outputs US
?>

Example #2 Testing if a string is found or not

<?php
  $string = 'Hello World!';
  if(stristr($string, 'earth') === FALSE) {
    echo '"earth" not found in string';
  }
// outputs: "earth" not found in string
?>

Example #3 Using a non "string" needle

<?php
  $string = 'APPLE';
  echo stristr($string, 97); // 97 = lowercase a
// outputs: APPLE
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strstr() - Find first occurrence of a string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Return part of a string
  • preg_match() - 进行正则表达式匹配

stripslashes
strlen
String 函数


Get string length

stristr
strnatcasecmp
String 函数
PHP 手册

strlen

(PHP 4, PHP 5)

strlen — Get string length

说明

int strlen ( string $string )

Returns the length of the given string .

参数

string

The string being measured for length.

返回值

The length of the string on success, and 0 if the string is empty.

范例

Example #1 A strlen() example

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

参见

  • count() - 计算数组中的单元数目或对象中的属性个数
  • mb_strlen() - Get string length

stristr
strnatcasecmp
String 函数


Case insensitive string comparisons using a "natural order" algorithm

strlen
strnatcmp
String 函数
PHP 手册

strnatcasecmp

(PHP 4, PHP 5)

strnatcasecmp — Case insensitive string comparisons using a "natural order" algorithm

说明

int strnatcasecmp ( string $str1 , string $str2 )

This function implements a comparison algorithm that orders alphanumeric strings in the way a human being would. The behaviour of this function is similar to strnatcmp(), except that the comparison is not case sensitive. For more information see: Martin Pool's » Natural Order String Comparison page.

参数

str1

The first string.

str2

The second string.

返回值

Similar to other string comparison functions, this one returns < 0 if str1 is less than str2 > 0 if str1 is greater than str2 , and 0 if they are equal.

参见

  • preg_match() - 进行正则表达式匹配
  • strcmp() - Binary safe string comparison
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Binary safe case-insensitive string comparison of the first n characters
  • strncmp() - Binary safe string comparison of the first n characters
  • strstr() - Find first occurrence of a string
  • setlocale() - Set locale information

strlen
strnatcmp
String 函数


String comparisons using a "natural order" algorithm

strnatcasecmp
strncasecmp
String 函数
PHP 手册

strnatcmp

(PHP 4, PHP 5)

strnatcmp — String comparisons using a "natural order" algorithm

说明

int strnatcmp ( string $str1 , string $str2 )

This function implements a comparison algorithm that orders alphanumeric strings in the way a human being would, this is described as a "natural ordering". Note that this comparison is case sensitive.

参数

str1

The first string.

str2

The second string.

返回值

Similar to other string comparison functions, this one returns < 0 if str1 is less than str2 ; > 0 if str1 is greater than str2 , and 0 if they are equal.

范例

An example of the difference between this algorithm and the regular computer string sorting algorithms (used in strcmp()) can be seen below:

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

上例将输出：

Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

For more information see: Martin Pool's » Natural Order String Comparison page.

参见

  • preg_match() - 进行正则表达式匹配
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strcmp() - Binary safe string comparison
  • strncmp() - Binary safe string comparison of the first n characters
  • strncasecmp() - Binary safe case-insensitive string comparison of the first n characters
  • strnatcasecmp() - Case insensitive string comparisons using a "natural order" algorithm
  • strstr() - Find first occurrence of a string
  • natsort() - 用“自然排序”算法对数组排序
  • natcasesort() - 用“自然排序”算法对数组进行不区分大小写字母的排序

strnatcasecmp
strncasecmp
String 函数


Binary safe case-insensitive string comparison of the first n characters

strnatcmp
strncmp
String 函数
PHP 手册

strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmp — Binary safe case-insensitive string comparison of the first n characters

说明

int strncasecmp ( string $str1 , string $str2 , int $len )

This function is similar to strcasecmp(), with the difference that you can specify the (upper limit of the) number of characters from each string to be used in the comparison.

参数

str1

The first string.

str2

The second string.

len

The length of strings to be used in the comparison.

返回值

Returns < 0 if str1 is less than str2 ; > 0 if str1 is greater than str2 , and 0 if they are equal.

参见

  • preg_match() - 进行正则表达式匹配
  • strcmp() - Binary safe string comparison
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string

strnatcmp
strncmp
String 函数


Binary safe string comparison of the first n characters

strncasecmp
strpbrk
String 函数
PHP 手册

strncmp

(PHP 4, PHP 5)

strncmp — Binary safe string comparison of the first n characters

说明

int strncmp ( string $str1 , string $str2 , int $len )

This function is similar to strcmp(), with the difference that you can specify the (upper limit of the) number of characters from each string to be used in the comparison.

Note that this comparison is case sensitive.

参数

str1

The first string.

str2

The second string.

len

Number of characters to use in the comparison.

返回值

Returns < 0 if str1 is less than str2 ; > 0 if str1 is greater than str2 , and 0 if they are equal.

参见

  • preg_match() - 进行正则表达式匹配
  • strcmp() - Binary safe string comparison
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Binary safe case-insensitive string comparison of the first n characters
  • strstr() - Find first occurrence of a string

strncasecmp
strpbrk
String 函数


Search a string for any of a set of characters

strncmp
strpos
String 函数
PHP 手册

strpbrk

(PHP 5)

strpbrk — Search a string for any of a set of characters

说明

string strpbrk ( string $haystack , string $char_list )

strpbrk() searches the haystack string for a char_list .

参数

haystack

The string where char_list is looked for.

char_list

This parameter is case sensitive.

返回值

Returns a string starting from the character found, or FALSE if it is not found.

范例

Example #1 strpbrk() example

<?php

$text = 'This is a Simple text.';

// this echoes "is is a Simple text." because 'i' is matched first
echo strpbrk($text, 'mi');

// this echoes "Simple text." because chars are case sensitive
echo strpbrk($text, 'S');
?>

strncmp
strpos
String 函数


Find position of first occurrence of a string

strpbrk
strrchr
String 函数
PHP 手册

strpos

(PHP 4, PHP 5)

strpos — Find position of first occurrence of a string

说明

int strpos ( string $haystack , mixed $needle [, int $offset=0 ] )

Returns the numeric position of the first occurrence of needle in the haystack string. Unlike the strrpos() before PHP 5, this function can take a full string as the needle parameter and the entire string will be used.

参数

haystack

The string to search in

needle

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

offset

The optional offset parameter allows you to specify which character in haystack to start searching. The position returned is still relative to the beginning of haystack .

返回值

Returns the position as an integer. If needle is not found, strpos() will return boolean FALSE.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

范例

Example #1 Using ===

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}
?>

Example #2 Using !==

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// The !== operator can also be used.  Using != would not work as expected
// because the position of 'a' is 0. The statement (0 != false) evaluates
// to false.
if ($pos !== false) {
     echo "The string '$findme' was found in the string '$mystring'";
         echo " and exists at position $pos";
} else {
     echo "The string '$findme' was not found in the string '$mystring'";
}
?>

Example #3 Using an offset

<?php
// We can search for the character, ignoring anything before the offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strrpos() - Find position of last occurrence of a char in a string
  • stripos() - Find position of first occurrence of a case-insensitive string
  • strripos() - Find position of last occurrence of a case-insensitive string in a string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string

strpbrk
strrchr
String 函数


Find the last occurrence of a character in a string

strpos
strrev
String 函数
PHP 手册

strrchr

(PHP 4, PHP 5)

strrchr — Find the last occurrence of a character in a string

说明

string strrchr ( string $haystack , mixed $needle )

This function returns the portion of haystack which starts at the last occurrence of needle and goes until the end of haystack .

参数

haystack

The string to search in

needle

If needle contains more than one character, only the first is used. This behavior is different from that of strstr().

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

返回值

This function returns the portion of string, or FALSE if needle is not found.

更新日志

版本 | 说明
4.3.0 | This function is now binary safe.

范例

Example #1 strrchr() example

<?php
// get last directory in $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// get everything after last newline
$text = "Line 1\nLine 2\nLine 3";
$last = substr(strrchr($text, 10), 1 );
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strstr() - Find first occurrence of a string
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr

strpos
strrev
String 函数


Reverse a string

strrchr
strripos
String 函数
PHP 手册

strrev

(PHP 4, PHP 5)

strrev — Reverse a string

说明

string strrev ( string $string )

Returns string , reversed.

参数

string

The string to be reversed.

返回值

Returns the reversed string.

范例

Example #1 Reversing a string with strrev()

<?php
echo strrev("Hello world!"); // outputs "!dlrow olleH"
?>

strrchr
strripos
String 函数


Find position of last occurrence of a case-insensitive string in a string

strrev
strrpos
String 函数
PHP 手册

strripos

(PHP 5)

strripos — Find position of last occurrence of a case-insensitive string in a string

说明

int strripos ( string $haystack , string $needle [, int $offset=0 ] )

Find position of last occurrence of a case-insensitive string in a string. Unlike strrpos(), strripos() is case-insensitive.

参数

haystack

The string to search in

needle

Note that the needle may be a string of one or more characters.

offset

The offset parameter may be specified to begin searching an arbitrary number of characters into the string.

Negative offset values will start the search at offset characters from the start of the string.

返回值

Returns the numerical position of the last occurrence of needle . Also note that string positions start at 0, and not 1.

If needle is not found, FALSE is returned.

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

范例

Example #1 A simple strripos() example

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "Sorry, we did not find ($needle) in ($haystack)";
} else {
    echo "Congratulations!\n";
    echo "We found the last ($needle) in ($haystack) at position ($pos)";
}
?>

上例将输出：

   Congratulations!
   We found the last (aB) in (ababcd) at position (2)

参见

  • strpos() - Find position of first occurrence of a string
  • stripos() - Find position of first occurrence of a case-insensitive string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string

strrev
strrpos
String 函数


Find position of last occurrence of a char in a string

strripos
strspn
String 函数
PHP 手册

strrpos

(PHP 4, PHP 5)

strrpos — Find position of last occurrence of a char in a string

说明

int strrpos ( string $haystack , string $needle [, int $offset=0 ] )

Returns the numeric position of the last occurrence of needle in the haystack string. Note that the needle in this case can only be a single character in PHP 4. If a string is passed as the needle, then only the first character of that string will be used.

If needle is not found, returns FALSE.

It is easy to mistake the return values for "character found at position 0" and "character not found". Here's how to detect the difference:

<?php

// in PHP 4.0.0 and newer:
$pos = strrpos($mystring, "b");
if ($pos === false) { // note: three equal signs
    // not found...
}

// in versions older than 4.0.0:
$pos = strrpos($mystring, "b");
if (is_bool($pos) && !$pos) {
    // not found...
}
?>

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

Note: As of PHP 5.0.0 offset may be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string.

Note: The needle may be a string of more than one character as of PHP 5.0.0.

参数

haystack

needle

offset

返回值

参见

  • strpos() - Find position of first occurrence of a string
  • strripos() - Find position of last occurrence of a case-insensitive string in a string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Return part of a string
  • stristr() - Case-insensitive strstr
  • strstr() - Find first occurrence of a string

strripos
strspn
String 函数


Find length of initial segment matching mask

strrpos
strstr
String 函数
PHP 手册

strspn

(PHP 4, PHP 5)

strspn — Find length of initial segment matching mask

说明

int strspn ( string $str1 , string $str2 [, int $start [, int $length ]] )

Finds the length of the initial segment matching mask.

The line of code:

<?php
$var = strspn("42 is the answer, what is the question ...", "1234567890");
?>

will assign 2 to $var, because the string "42" will be the longest segment containing characters from "1234567890".

参数

str1

The first string.

str2

The second string.

start

The start position of the string to examine. Negative value counts position from the end of a string.

length

The length of the string to examine. Negative value sets length from the end of a string.

返回值

Returns the length of the initial segment of str1 which consists entirely of characters in str2 .

更新日志

版本 | 说明
4.3.0 | The start and length parameters were added

范例

Example #1 strspn() example

<?php
echo strspn("foo", "o", 1, 2); // 2
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strcspn() - Find length of initial segment not matching mask

strrpos
strstr
String 函数


Find first occurrence of a string

strspn
strtok
String 函数
PHP 手册

strstr

(PHP 4, PHP 5)

strstr — Find first occurrence of a string

说明

string strstr ( string $haystack , mixed $needle [, bool $before_needle=false ] )

Returns part of haystack string from the first occurrence of needle to the end of haystack .

Note: This function is case-sensitive. For case-insensitive searches, use stristr().

Note: If you only want to determine if a particular needle occurs within haystack , use the faster and less memory intensive function strpos() instead.

参数

haystack

The input string.

needle

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

before_needle

If TRUE (the default is FALSE), strstr() returns the part of the haystack before the first occurrence of the needle .

返回值

Returns the portion of string, or FALSE if needle is not found.

更新日志

版本 | 说明
5.3.0 | Added the optional parameter before_needle .
4.3.0 | strstr() was made binary safe.

范例

Example #1 strstr() example

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com

$user = strstr($email, '@', true); // As of PHP 5.3.0
echo $user; // prints name
?>

参见

  • preg_match() - 进行正则表达式匹配
  • stristr() - Case-insensitive strstr
  • strpos() - Find position of first occurrence of a string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Return part of a string

strspn
strtok
String 函数


Tokenize string

strstr
strtolower
String 函数
PHP 手册

strtok

(PHP 4, PHP 5)

strtok — Tokenize string

说明

string strtok ( string $str , string $token )
string strtok ( string $token )

strtok() splits a string (str ) into smaller strings (tokens), with each token being delimited by any character from token . That is, if you have a string like "This is an example string" you could tokenize this string into its individual words by using the space character as the token.

Note that only the first call to strtok uses the string argument. Every subsequent call to strtok only needs the token to use, as it keeps track of where it is in the current string. To start over, or to tokenize a new string you simply call strtok with the string argument again to initialize it. Note that you may put multiple tokens in the token parameter. The string will be tokenized when any one of the characters in the argument are found.

参数

str

The string being split up into smaller strings (tokens).

token

The delimiter used when splitting up str .

返回值

A string token.

范例

Example #1 strtok() example

<?php
$string = "This is\tan example\nstring";
/* Use tab and newline as tokenizing characters as well  */
$tok = strtok($string, " \n\t");

while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>

The behavior when an empty part was found changed with PHP 4.1.0. The old behavior returned an empty string, while the new, correct, behavior simply skips the part of the string:

Example #2 Old strtok() behavior

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

上例将输出：

    string(0) ""
    string(9) "something"

Example #3 New strtok() behavior

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

上例将输出：

    string(9) "something"
    bool(false)

注释

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

参见

  • split() - 用正则表达式将字符串分割到数组中
  • explode() - 使用一个字符串分割另一个字符串

strstr
strtolower
String 函数


Make a string lowercase

strtok
strtoupper
String 函数
PHP 手册

strtolower

(PHP 4, PHP 5)

strtolower — Make a string lowercase

说明

string strtolower ( string $str )

Returns string with all alphabetic characters converted to lowercase.

Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters such as umlaut-A (Ä) will not be converted.

参数

str

The input string.

返回值

Returns the lowercased string.

范例

Example #1 strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strtoupper() - Make a string uppercase
  • ucfirst() - Make a string's first character uppercase
  • ucwords() - Uppercase the first character of each word in a string
  • mb_strtolower() - Make a string lowercase

strtok
strtoupper
String 函数


Make a string uppercase

strtolower
strtr
String 函数
PHP 手册

strtoupper

(PHP 4, PHP 5)

strtoupper — Make a string uppercase

说明

string strtoupper ( string $string )

Returns string with all alphabetic characters converted to uppercase.

Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted.

参数

string

The input string.

返回值

Returns the uppercased string.

范例

Example #1 strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strtolower() - Make a string lowercase
  • ucfirst() - Make a string's first character uppercase
  • ucwords() - Uppercase the first character of each word in a string
  • mb_strtoupper() - Make a string uppercase

strtolower
strtr
String 函数


Translate certain characters

strtoupper
substr_compare
String 函数
PHP 手册

strtr

(PHP 4, PHP 5)

strtr — Translate certain characters

说明

string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )

This function returns a copy of str , translating all occurrences of each character in from to the corresponding character in to .

If from and to are different lengths, the extra characters in the longer of the two are ignored.

参数

str

The string being translated.

from

The string being translated to to .

to

The string replacing from .

replace_pairs

The replace_pairs parameter may be used as a substitute for to and from in which case it's an array in the form array('from' => 'to', ...).

返回值

This function returns a copy of str , translating all occurrences of each character in from to the corresponding character in to .

更新日志

版本 | 说明
4.0.0 | The optional to and from parameters were added.

范例

Example #1 strtr() example

<?php
$addr = strtr($addr, "äåö", "aao");
?>

strtr() may be called with only two arguments. If called with two arguments it behaves in a new way: from then has to be an array that contains string -> string pairs that will be replaced in the source string. strtr() will always look for the longest possible match first and will *NOT* try to replace stuff that it has already worked on.

Example #2 strtr() example with two arguments

<?php
$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

上例将输出：

hello all, I said hi

参见

  • preg_replace() - 执行正则表达式的搜索和替换

strtoupper
substr_compare
String 函数


Binary safe comparison of 2 strings from an offset, up to length characters

strtr
substr_count
String 函数
PHP 手册

substr_compare

(PHP 5)

substr_compare — Binary safe comparison of 2 strings from an offset, up to length characters

说明

int substr_compare ( string $main_str , string $str , int $offset [, int $length=0 [, bool $case_insensitivity=false ]] )

substr_compare() compares main_str from position offset with str up to length characters.

参数

main_str

str

offset

The start position for the comparison. If negative, it starts counting from the end of the string.

length

The length of the comparison.

case_insensitivity

If case_insensitivity is TRUE, comparison is case insensitive.

返回值

Returns < 0 if main_str from position offset is less than str , > 0 if it is greater than str , and 0 if they are equal. If length is equal or greater than length of main_str and length is set, substr_compare() prints warning and returns FALSE.

更新日志

版本 | 说明
5.1.0 | Added the possibility to use a negative offset .

范例

Example #1 A substr_compare() example

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>

strtr
substr_count
String 函数


Count the number of substring occurrences

substr_compare
substr_replace
String 函数
PHP 手册

substr_count

(PHP 4, PHP 5)

substr_count — Count the number of substring occurrences

说明

int substr_count ( string $haystack , string $needle [, int $offset=0 [, int $length ]] )

substr_count() returns the number of times the needle substring occurs in the haystack string. Please note that needle is case sensitive.

Note: This function doesn't count overlapped substrings. See the example below!

参数

haystack

The string to search in

needle

The substring to search for

offset

The offset where to start counting

length

The maximum length after the specified offset to search for the substring. It outputs a warning if the offset plus the length is greater than the haystack length.

返回值

This functions returns an integer.

更新日志

版本 | 说明
5.1.0 | Added the offset and the length parameters

范例

Example #1 A substr_count() example

<?php
$text = 'This is a test';
echo strlen($text); // 14

echo substr_count($text, 'is'); // 2

// the string is reduced to 's is a test', so it prints 1
echo substr_count($text, 'is', 3);

// the text is reduced to 's i', so it prints 0
echo substr_count($text, 'is', 3, 3);

// generates a warning because 5+10 > 14
echo substr_count($text, 'is', 5, 10);

// prints only 1, because it doesn't count overlapped subtrings
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

参见

  • count_chars() - 返回字符串所用字符的信息
  • strpos() - Find position of first occurrence of a string
  • substr() - Return part of a string
  • strstr() - Find first occurrence of a string

substr_compare
substr_replace
String 函数


Replace text within a portion of a string

substr_count
substr
String 函数
PHP 手册

substr_replace

(PHP 4, PHP 5)

substr_replace — Replace text within a portion of a string

说明

mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] )

substr_replace() replaces a copy of string delimited by the start and (optionally) length parameters with the string given in replacement .

参数

string

The input string.

replacement

The replacement string.

start

If start is positive, the replacing will begin at the start 'th offset into string .

If start is negative, the replacing will begin at the start 'th character from the end of string .

length

If given and is positive, it represents the length of the portion of string which is to be replaced. If it is negative, it represents the number of characters from the end of string at which to stop replacing. If it is not given, then it will default to strlen( string ); i.e. end the replacing at the end of string . Of course, if length is zero then this function will have the effect of inserting replacement into string at the given start offset.

返回值

The result string is returned. If string is an array then array is returned.

范例

Example #1 substr_replace() example

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";

/* These two examples replace all of $var with 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* Insert 'bob' right at the beginning of $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* These next two replace 'MNRPQR' in $var with 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* Delete 'MNRPQR' from $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • str_replace() - Replace all occurrences of the search string with the replacement string
  • substr() - Return part of a string

substr_count
substr
String 函数


Return part of a string

substr_replace
trim
String 函数
PHP 手册

substr

(PHP 4, PHP 5)

substr — Return part of a string

说明

string substr ( string $string , int $start [, int $length ] )

Returns the portion of string specified by the start and length parameters.

参数

string

The input string.

start

If start is non-negative, the returned string will start at the start 'th position in string , counting from zero. For instance, in the string 'abcdef', the character at position 0 is 'a', the character at position 2 is 'c', and so forth.

If start is negative, the returned string will start at the start 'th character from the end of string .

If string is less than or equal to start characters long, FALSE will be returned.

Example #1 Using a negative start

<?php
$rest = substr("abcdef", -1);    // returns "f"
$rest = substr("abcdef", -2);    // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>

length

If length is given and is positive, the string returned will contain at most length characters beginning from start (depending on the length of string ).

If length is given and is negative, then that many characters will be omitted from the end of string (after the start position has been calculated when a start is negative). If start denotes a position beyond this truncation, an empty string will be returned.

Example #2 Using a negative length

<?php
$rest = substr("abcdef", 0, -1);  // returns "abcde"
$rest = substr("abcdef", 2, -1);  // returns "cde"
$rest = substr("abcdef", 4, -4);  // returns ""
$rest = substr("abcdef", -3, -1); // returns "de"
?>

返回值

Returns the extracted part of string.

范例

Example #3 Basic substr() usage

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

参见

  • strrchr() - Find the last occurrence of a character in a string
  • substr_replace() - Replace text within a portion of a string
  • preg_match() - 进行正则表达式匹配
  • trim() - Strip whitespace (or other characters) from the beginning and end of a string
  • mb_substr() - Get part of string
  • wordwrap() - Wraps a string to a given number of characters

substr_replace
trim
String 函数


Strip whitespace (or other characters) from the beginning and end of a string

substr
ucfirst
String 函数
PHP 手册

trim

(PHP 4, PHP 5)

trim — Strip whitespace (or other characters) from the beginning and end of a string

说明

string trim ( string $str [, string $charlist ] )

This function returns a string with whitespace stripped from the beginning and end of str . Without the second parameter, trim() will strip these characters:

  • " " (ASCII 32 (0x20)), an ordinary space.
  • "\t" (ASCII 9 (0x09)), a tab.
  • "\n" (ASCII 10 (0x0A)), a new line (line feed).
  • "\r" (ASCII 13 (0x0D)), a carriage return.
  • "\0" (ASCII 0 (0x00)), the NUL-byte.
  • "\x0B" (ASCII 11 (0x0B)), a vertical tab.

参数

str

The string that will be trimmed.

charlist

Optionally, the stripped characters can also be specified using the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters.

返回值

The trimmed string.

更新日志

版本 | 说明
4.1.0 | The optional charlist parameter was added.

范例

Example #1 Usage example of trim()

<?php

$text   = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

// trim the ASCII control characters at the beginning and end of $binary
// (from 0 to 31 inclusive)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

上例将输出：

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(14) "Example string"

Example #2 Trimming array values with trim()

<?php
function trim_value(&$value)
{
    $value = trim($value);
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

上例将输出：

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

参见

  • ltrim() - Strip whitespace (or other characters) from the beginning of a string
  • rtrim() - Strip whitespace (or other characters) from the end of a string

substr
ucfirst
String 函数


Make a string's first character uppercase

trim
ucwords
String 函数
PHP 手册

ucfirst

(PHP 4, PHP 5)

ucfirst — Make a string's first character uppercase

说明

string ucfirst ( string $str )

Returns a string with the first character of str capitalized, if that character is alphabetic.

Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted.

参数

str

The input string.

返回值

Returns the resulting string.

范例

Example #1 ucfirst() example

<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

参见

  • lcfirst() - Make a string's first character lowercase
  • strtolower() - Make a string lowercase
  • strtoupper() - Make a string uppercase
  • ucwords() - Uppercase the first character of each word in a string

trim
ucwords
String 函数


Uppercase the first character of each word in a string

ucfirst
vfprintf
String 函数
PHP 手册

ucwords

(PHP 4, PHP 5)

ucwords — Uppercase the first character of each word in a string

说明

string ucwords ( string $str )

Returns a string with the first character of each word in str capitalized, if that character is alphabetic.

The definition of a word is any string of characters that is immediately after a whitespace (These are: space, form-feed, newline, carriage return, horizontal tab, and vertical tab).

参数

str

The input string.

返回值

Returns the modified string.

范例

Example #1 ucwords() example

<?php
$foo = 'hello world!';
$foo = ucwords($foo);             // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar);             // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

注释

Note: 本函数可安全用于二进制对象。

参见

  • strtoupper() - Make a string uppercase
  • strtolower() - Make a string lowercase
  • ucfirst() - Make a string's first character uppercase
  • mb_convert_case() - Perform case folding on a string

ucfirst
vfprintf
String 函数


Write a formatted string to a stream

ucwords
vprintf
String 函数
PHP 手册

vfprintf

(PHP 5)

vfprintf — Write a formatted string to a stream

说明

int vfprintf ( resource $handle , string $format , array $args )

Write a string produced according to format to the stream resource specified by handle .

Operates as fprintf() but accepts an array of arguments, rather than a variable number of arguments.

参数

handle

format

See sprintf() for a description of format .

args

返回值

Returns the length of the outputted string.

范例

Example #1 vfprintf(): zero-padded integers

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// will write the formatted ISO date to date.txt
?>

参见

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • sscanf() - Parses input from a string according to a format
  • fscanf() - 从文件中格式化输入
  • vsprintf() - Return a formatted string
  • number_format() - Format a number with grouped thousands

ucwords
vprintf
String 函数


Output a formatted string

vfprintf
vsprintf
String 函数
PHP 手册

vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintf — Output a formatted string

说明

int vprintf ( string $format , array $args )

Display array values as a formatted string according to format (which is described in the documentation for sprintf()).

Operates as printf() but accepts an array of arguments, rather than a variable number of arguments.

参数

format

See sprintf() for a description of format .

args

返回值

Returns the length of the outputted string.

范例

Example #1 vprintf(): zero-padded integers

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01
?>

参见

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • vsprintf() - Return a formatted string

vfprintf
vsprintf
String 函数


Return a formatted string

vprintf
wordwrap
String 函数
PHP 手册

vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintf — Return a formatted string

说明

string vsprintf ( string $format , array $args )

Operates as sprintf() but accepts an array of arguments, rather than a variable number of arguments.

参数

format

See sprintf() for a description of format .

args

返回值

Return array values as a formatted string according to format (which is described in the documentation for sprintf()).

范例

Example #1 vsprintf(): zero-padded integers

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01
?>

参见

  • sprintf() - Return a formatted string
  • vprintf() - Output a formatted string

vprintf
wordwrap
String 函数


Wraps a string to a given number of characters

vsprintf
与变量和类型有关的扩展
String 函数
PHP 手册

wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrap — Wraps a string to a given number of characters

说明

string wordwrap ( string $str [, int $width=75 [, string $break="\n" [, bool $cut=false ]]] )

Wraps a string to a given number of characters using a string break character.

参数

str

The input string.

width

The column width. Defaults to 75.

break

The line is broken using the optional break parameter. Defaults to '\n'.

cut

If the cut is set to TRUE, the string is always wrapped at the specified width. So if you have a word that is larger than the given width, it is broken apart. (See second example).

返回值

Returns the given string wrapped at the specified column.

更新日志

版本 | 说明
4.0.3 | The optional cut parameter was added.

范例

Example #1 wordwrap() example

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />\n");

echo $newtext;
?>

上例将输出：

The quick brown fox<br />
jumped over the lazy<br />
dog.

Example #2 wordwrap() example

<?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, "\n", true);

echo "$newtext\n";
?>

上例将输出：

A very
long
wooooooo
ooooord.

参见

  • nl2br() - Inserts HTML line breaks before all newlines in a string
  • chunk_split() - 将字符串分割成小块

vsprintf
与变量和类型有关的扩展
String 函数


与变量和类型有关的扩展

  • 数组
    • 简介
    • 安装/配置
    • 预定义常量
    • 数组 函数
  • Classes/Objects — Class/Object Information
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Classes/Object 函数
  • Classkit
    • 简介
    • 安装/配置
    • 预定义常量
    • Classkit 函数
  • Ctype — Character type checking
    • 简介
    • 安装/配置
    • 预定义常量
    • Ctype 函数
  • Filter — Data Filtering
    • 简介
    • 安装/配置
    • 预定义常量
    • Filter 函数
  • Function Handling
    • 简介
    • 安装/配置
    • 预定义常量
    • Function handling 函数
  • Object Aggregation — Object Aggregation/Composition
    • 简介
    • 范例
    • Object Aggregation 函数
  • Variable handling
    • 简介
    • 安装/配置
    • 预定义常量
    • Variable handling 函数
wordwrap
数组
函数参考


数组

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 数组 函数
    • array_change_key_case — 返回字符串键名全为小写或大写的数组
    • array_chunk — 将一个数组分割成多个
    • array_combine — 创建一个数组，用一个数组的值作为其键名，另一个数组的值作为其值
    • array_count_values — 统计数组中所有的值出现的次数
    • array_diff_assoc — 带索引检查计算数组的差集
    • array_diff_key — 使用键名比较计算数组的差集
    • array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
    • array_diff_ukey — 用回调函数对键名比较计算数组的差集
    • array_diff — 计算数组的差集
    • array_fill_keys — Fill an array with values, specifying keys
    • array_fill — 用给定的值填充数组
    • array_filter — 用回调函数过滤数组中的单元
    • array_flip — 交换数组中的键和值
    • array_intersect_assoc — 带索引检查计算数组的交集
    • array_intersect_key — 使用键名比较计算数组的交集
    • array_intersect_uassoc — 带索引检查计算数组的交集，用回调函数比较索引
    • array_intersect_ukey — 用回调函数比较键名来计算数组的交集
    • array_intersect — 计算数组的交集
    • array_key_exists — 检查给定的键名或索引是否存在于数组中
    • array_keys — 返回数组中所有的键名
    • array_map — 将回调函数作用到给定数组的单元上
    • array_merge_recursive — 递归地合并一个或多个数组
    • array_merge — 合并一个或多个数组
    • array_multisort — 对多个数组或多维数组进行排序
    • array_pad — 用值将数组填补到指定长度
    • array_pop — 将数组最后一个单元弹出（出栈）
    • array_product — 计算数组中所有值的乘积
    • array_push — 将一个或多个单元压入数组的末尾（入栈）
    • array_rand — 从数组中随机取出一个或多个单元
    • array_reduce — 用回调函数迭代地将数组简化为单一的值
    • array_reverse — 返回一个单元顺序相反的数组
    • array_search — 在数组中搜索给定的值，如果成功则返回相应的键名
    • array_shift — 将数组开头的单元移出数组
    • array_slice — 从数组中取出一段
    • array_splice — 把数组中的一部分去掉并用其它值取代
    • array_sum — 计算数组中所有值的和
    • array_udiff_assoc — 带索引检查计算数组的差集，用回调函数比较数据
    • array_udiff_uassoc — 带索引检查计算数组的差集，用回调函数比较数据和索引
    • array_udiff — 用回调函数比较数据来计算数组的差集
    • array_uintersect_assoc — 带索引检查计算数组的交集，用回调函数比较数据
    • array_uintersect_uassoc — 带索引检查计算数组的交集，用回调函数比较数据和索引
    • array_uintersect — 计算数组的交集，用回调函数比较数据
    • array_unique — 移除数组中重复的值
    • array_unshift — 在数组开头插入一个或多个单元
    • array_values — 返回数组中所有的值
    • array_walk_recursive — 对数组中的每个成员递归地应用用户函数
    • array_walk — 对数组中的每个成员应用用户函数
    • array — 新建一个数组
    • arsort — 对数组进行逆向排序并保持索引关系
    • asort — 对数组进行排序并保持索引关系
    • compact — 建立一个数组，包括变量名和它们的值
    • count — 计算数组中的单元数目或对象中的属性个数
    • current — 返回数组中的当前单元
    • each — 返回数组中当前的键／值对并将数组指针向前移动一步
    • end — 将数组的内部指针指向最后一个单元
    • extract — 从数组中将变量导入到当前的符号表
    • in_array — 检查数组中是否存在某个值
    • key — 从关联数组中取得键名
    • krsort — 对数组按照键名逆向排序
    • ksort — 对数组按照键名排序
    • list — 把数组中的值赋给一些变量
    • natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
    • natsort — 用“自然排序”算法对数组排序
    • next — 将数组中的内部指针向前移动一位
    • pos — current 的别名
    • prev — 将数组的内部指针倒回一位
    • range — 建立一个包含指定范围单元的数组
    • reset — 将数组的内部指针指向第一个单元
    • rsort — 对数组逆向排序
    • shuffle — 将数组打乱
    • sizeof — count 的别名
    • sort — 对数组排序
    • uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
    • uksort — 使用用户自定义的比较函数对数组中的键名进行排序
    • usort — 使用用户自定义的比较函数对数组中的值进行排序
与变量和类型有关的扩展
简介
与变量和类型有关的扩展


简介

这些函数允许你通过不同的方式来使用和操作数组。数组是存储、管理和操作变量组的必不可少的工具。

PHP 支持简单数组和多维数组，数组可由用户自己创建也可以由其它函数创建。有很多特殊的数据库处理函数可以从数据库查询中返回数组以及一些返回数组的函数。

请参考手册中有关数组的章节来详细了解 PHP 中数组是如何实现及使用的。也可以参考 数组操作符来了解操作数组的一些其它方式。

数组
安装/配置
数组


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
数组


预定义常量

以下常量作为 PHP 核心的一部分一直有效。

CASE_LOWER (integer)
CASE_LOWER 用在 array_change_key_case() 中将数组的键名转换成小写字母。这也是 array_change_key_case() 的默认值。
CASE_UPPER (integer)
CASE_UPPER 用在 array_change_key_case() 中将数组的键名转换成大写字母。

排序顺序标识：

SORT_ASC (integer)
SORT_ASC 用在 array_multisort() 函数中，使其升序排列。
SORT_DESC (integer)
SORT_DESC 用在 array_multisort() 函数中，使其降序排列。

排序类型标识：用于各种排序函数

SORT_REGULAR (integer)
SORT_REGULAR 用于对对象进行通常比较。
SORT_NUMERIC (integer)
SORT_NUMERIC 用于对对象进行数值比较。
SORT_STRING (integer)
SORT_STRING 用于对对象进行字符串比较。
SORT_LOCALE_STRING (integer)
SORT_LOCALE_STRING 基于当前区域来对对象进行字符串比较。PHP 4.4.0 和 5.0.2 新加。

COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
EXTR_OVERWRITE (integer)
EXTR_SKIP (integer)
EXTR_PREFIX_SAME (integer)
EXTR_PREFIX_ALL (integer)
EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)
EXTR_IF_EXISTS (integer)
EXTR_REFS (integer)
资源类型
数组 函数
数组


数组 函数

参见

参考 is_array(), explode(),
implode(), split(),
preg_split(), and unset().

Table of Contents

  • array_change_key_case — 返回字符串键名全为小写或大写的数组
  • array_chunk — 将一个数组分割成多个
  • array_combine — 创建一个数组，用一个数组的值作为其键名，另一个数组的值作为其值
  • array_count_values — 统计数组中所有的值出现的次数
  • array_diff_assoc — 带索引检查计算数组的差集
  • array_diff_key — 使用键名比较计算数组的差集
  • array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
  • array_diff_ukey — 用回调函数对键名比较计算数组的差集
  • array_diff — 计算数组的差集
  • array_fill_keys — Fill an array with values, specifying keys
  • array_fill — 用给定的值填充数组
  • array_filter — 用回调函数过滤数组中的单元
  • array_flip — 交换数组中的键和值
  • array_intersect_assoc — 带索引检查计算数组的交集
  • array_intersect_key — 使用键名比较计算数组的交集
  • array_intersect_uassoc — 带索引检查计算数组的交集，用回调函数比较索引
  • array_intersect_ukey — 用回调函数比较键名来计算数组的交集
  • array_intersect — 计算数组的交集
  • array_key_exists — 检查给定的键名或索引是否存在于数组中
  • array_keys — 返回数组中所有的键名
  • array_map — 将回调函数作用到给定数组的单元上
  • array_merge_recursive — 递归地合并一个或多个数组
  • array_merge — 合并一个或多个数组
  • array_multisort — 对多个数组或多维数组进行排序
  • array_pad — 用值将数组填补到指定长度
  • array_pop — 将数组最后一个单元弹出（出栈）
  • array_product — 计算数组中所有值的乘积
  • array_push — 将一个或多个单元压入数组的末尾（入栈）
  • array_rand — 从数组中随机取出一个或多个单元
  • array_reduce — 用回调函数迭代地将数组简化为单一的值
  • array_reverse — 返回一个单元顺序相反的数组
  • array_search — 在数组中搜索给定的值，如果成功则返回相应的键名
  • array_shift — 将数组开头的单元移出数组
  • array_slice — 从数组中取出一段
  • array_splice — 把数组中的一部分去掉并用其它值取代
  • array_sum — 计算数组中所有值的和
  • array_udiff_assoc — 带索引检查计算数组的差集，用回调函数比较数据
  • array_udiff_uassoc — 带索引检查计算数组的差集，用回调函数比较数据和索引
  • array_udiff — 用回调函数比较数据来计算数组的差集
  • array_uintersect_assoc — 带索引检查计算数组的交集，用回调函数比较数据
  • array_uintersect_uassoc — 带索引检查计算数组的交集，用回调函数比较数据和索引
  • array_uintersect — 计算数组的交集，用回调函数比较数据
  • array_unique — 移除数组中重复的值
  • array_unshift — 在数组开头插入一个或多个单元
  • array_values — 返回数组中所有的值
  • array_walk_recursive — 对数组中的每个成员递归地应用用户函数
  • array_walk — 对数组中的每个成员应用用户函数
  • array — 新建一个数组
  • arsort — 对数组进行逆向排序并保持索引关系
  • asort — 对数组进行排序并保持索引关系
  • compact — 建立一个数组，包括变量名和它们的值
  • count — 计算数组中的单元数目或对象中的属性个数
  • current — 返回数组中的当前单元
  • each — 返回数组中当前的键／值对并将数组指针向前移动一步
  • end — 将数组的内部指针指向最后一个单元
  • extract — 从数组中将变量导入到当前的符号表
  • in_array — 检查数组中是否存在某个值
  • key — 从关联数组中取得键名
  • krsort — 对数组按照键名逆向排序
  • ksort — 对数组按照键名排序
  • list — 把数组中的值赋给一些变量
  • natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
  • natsort — 用“自然排序”算法对数组排序
  • next — 将数组中的内部指针向前移动一位
  • pos — current 的别名
  • prev — 将数组的内部指针倒回一位
  • range — 建立一个包含指定范围单元的数组
  • reset — 将数组的内部指针指向第一个单元
  • rsort — 对数组逆向排序
  • shuffle — 将数组打乱
  • sizeof — count 的别名
  • sort — 对数组排序
  • uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
  • uksort — 使用用户自定义的比较函数对数组中的键名进行排序
  • usort — 使用用户自定义的比较函数对数组中的值进行排序
预定义常量
array_change_key_case
数组


返回字符串键名全为小写或大写的数组

数组 函数
array_chunk
数组 函数
PHP 手册

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case — 返回字符串键名全为小写或大写的数组

说明

array array_change_key_case ( array $input [, int $case ] )

array_change_key_case() 将 input 数组中的所有键名改为全小写或大写。改变是根据后一个选项 case 参数来进行的。可以在这里用两个常量，CASE_UPPER 和 CASE_LOWER。默认值是 CASE_LOWER。本函数不改变数字索引。

Example #1 array_change_key_case() 例子

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

上例将输出：

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

如果一个数组中的多个键名经过本函数后变成一样的话（例如 "keY" 和 "kEY"），最后一个值将覆盖其它的值。

数组 函数
array_chunk
数组 函数


将一个数组分割成多个

array_change_key_case
array_combine
数组 函数
PHP 手册

array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunk — 将一个数组分割成多个

说明

array array_chunk ( array $input , int $size [, bool $preserve_keys ] )

array_chunk() 将一个数组分割成多个数组，其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元，其索引从零开始。

将可选参数 preserve_keys 设为 TRUE，可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE，那每个结果数组将用从零开始的新数字索引。默认值是 FALSE。

Example #1 array_chunk() 例子

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>

上例将输出：

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)
array_change_key_case
array_combine
数组 函数


创建一个数组，用一个数组的值作为其键名，另一个数组的值作为其值

array_chunk
array_count_values
数组 函数
PHP 手册

array_combine

(PHP 5)

array_combine — 创建一个数组，用一个数组的值作为其键名，另一个数组的值作为其值

说明

array array_combine ( array $keys , array $values )

返回一个 array，用来自 keys 数组的值作为键名，来自 values 数组的值作为相应的值。

如果两个数组的单元数不同或者数组为空时返回 FALSE。

Example #1 简单的 array_combine() 例子

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

上例将输出：

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

参见 array_merge()，array_walk() 和 array_values()。

array_chunk
array_count_values
数组 函数


统计数组中所有的值出现的次数

array_combine
array_diff_assoc
数组 函数
PHP 手册

array_count_values

(PHP 4, PHP 5)

array_count_values — 统计数组中所有的值出现的次数

说明

array array_count_values ( array $input )

array_count_values() 返回一个数组，该数组用 input 数组中的值作为键名，该值在 input 数组中出现的次数作为值。

Example #1 array_count_values() 例子

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values ($array));
?>

上例将输出：

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

参见 count()，array_unique()，array_values() 和 count_chars()。

array_combine
array_diff_assoc
数组 函数


带索引检查计算数组的差集

array_count_values
array_diff_key
数组 函数
PHP 手册

array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assoc — 带索引检查计算数组的差集

说明

array array_diff_assoc ( array $array1 , array $array2 [, array $ ... ] )

array_diff_assoc() 返回一个数组，该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

Example #1 array_diff_assoc() 例子

<?php
$array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array ("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
?>

上例将输出：

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

上面的例子中可以看到键值对 "a" => "green" 在两个数组中都有，因此不在本函数的输出中。与此不同，键值对 0 => "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。

键值对 key => value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查，字符串的表达必须相同。

Note: 注意本函数只检查了多维数组中的一维。当然可以用 array_diff_assoc($array1[0], $array2[0]); 检查更深的维度。

参见 array_diff()，array_intersect() 和 array_intersect_assoc()。

array_count_values
array_diff_key
数组 函数


使用键名比较计算数组的差集

array_diff_assoc
array_diff_uassoc
数组 函数
PHP 手册

array_diff_key

(PHP 5 >= 5.1.0)

array_diff_key — 使用键名比较计算数组的差集

说明

array array_diff_key ( array $array1 , array $array2 [, array $ ... ] )

array_diff_key() 返回一个数组，该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。

Example #1 array_diff_key() 例子

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_key($array1, $array2));
?>

上例将输出：

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

在 key => value 对中的两个键名仅在 (string) $key1 === (string) $key2 时被认为相等。换句话说，执行的是严格类型检查，因此字符串的表达必须完全一样。

Note: 注意本函数只检查了多维数组中的一维。当然，可以用 array_diff_key($array1[0], $array2[0]); 来检查更深的维度。

参见 array_diff()，array_udiff()，array_diff_assoc()，array_diff_uassoc()，array_udiff_assoc()，array_udiff_uassoc()，array_diff_ukey()，array_intersect()，array_intersect_assoc()，array_intersect_uassoc()，array_intersect_key() 和 array_intersect_ukey()。

array_diff_assoc
array_diff_uassoc
数组 函数


用用户提供的回调函数做索引检查来计算数组的差集

array_diff_key
array_diff_ukey
数组 函数
PHP 手册

array_diff_uassoc

(PHP 5)

array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集

说明

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callback $key_compare_func )

array_diff_uassoc() 返回一个数组，该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。这和 array_diff_assoc() 不同的是还使用了比较索引的内部函数。

Example #1 array_diff_uassoc() 例子

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

上例将输出：

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

上面的例子中 "a" => "green" 出现在两个数组中因此不在函数的输出中。但是 0 => "red" 却在输出中，因为第二个参数中的 "red" 的键名是 1。

两个索引是否相同是由用户提供的回调函数来检查的。

Note: 注意本函数只检查了多维数组中的一维。当然可以用 array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); 检查更深的维度。

参见 array_diff()，array_diff_assoc()，array_udiff()，array_udiff_assoc()，array_udiff_uassoc()，array_intersect()，array_intersect_assoc()，array_uintersect()，array_uintersect_assoc() 和 array_uintersect_uassoc()。

array_diff_key
array_diff_ukey
数组 函数


用回调函数对键名比较计算数组的差集

array_diff_uassoc
array_diff
数组 函数
PHP 手册

array_diff_ukey

(PHP 5 >= 5.1.0)

array_diff_ukey — 用回调函数对键名比较计算数组的差集

说明

array array_diff_ukey ( array $array1 , array $array2 [, array $ ... ], callback $key_compare_func )

array_diff_ukey() 返回一个数组，该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

Example #1 array_diff_ukey() 例子

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

上例将输出：

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Note: 注意本函数只检查了多维数组中的一维。当然，可以用 array_diff_ukey($array1[0], $array2[0], 'callback_func'); 来检查更深的维度。

参见 array_diff()，array_udiff()，array_diff_assoc()，array_diff_uassoc()，array_udiff_assoc()，array_udiff_uassoc()，array_diff_key()，array_intersect()，array_intersect_assoc()，array_intersect_uassoc()，array_intersect_key() 和 array_intersect_ukey()。

array_diff_uassoc
array_diff
数组 函数


计算数组的差集

array_diff_ukey
array_fill_keys
数组 函数
PHP 手册

array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff — 计算数组的差集

说明

array array_diff ( array $array1 , array $array2 [, array $ ... ] )

array_diff() 返回一个数组，该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。

Example #1 array_diff() 例子

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

在 $array1 中多次出现的值一样处理，输出结果为：

Array
(
    [1] => blue
)

Note: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说，当字符串的表达是一样的时候。

Note: 注意本函数只检查了多维数组中的一维。当然可以用 array_diff($array1[0], $array2[0]); 检查更深的维度。

Warning

本函数在 PHP 4.0.4 中是坏的！

参见 array_diff_assoc()，array_intersect() 和 array_intersect_assoc()。

array_diff_ukey
array_fill_keys
数组 函数


Fill an array with values, specifying keys

array_diff
array_fill
数组 函数
PHP 手册

array_fill_keys

(PHP 5 >= 5.2.0)

array_fill_keys — Fill an array with values, specifying keys

说明

array array_fill_keys ( array $keys , mixed $value )

Fills an array with the value of the value parameter, using the values of the keys array as keys.

参数

keys

Array of values that will be used as keys. Illegal values for key will be converted to string.

value

Value to use for filling

返回值

Returns the filled array

范例

Example #1 array_fill_keys() example

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>

上例将输出：

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

参见

  • array_fill() - 用给定的值填充数组
  • array_combine() - 创建一个数组，用一个数组的值作为其键名，另一个数组的值作为其值

array_diff
array_fill
数组 函数


用给定的值填充数组

array_fill_keys
array_filter
数组 函数
PHP 手册

array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fill — 用给定的值填充数组

说明

array array_fill ( int $start_index , int $num , mixed $value )

array_fill() 用 value 参数的值将一个数组填充 num 个条目，键名由 start_index 参数指定的开始。注意 num 必须是一个大于零的数值，否则 PHP 会发出一条警告。

Example #1 array_fill() 例子

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

$a 现在是：

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

参见 str_repeat() 和 range()。

array_fill_keys
array_filter
数组 函数


用回调函数过滤数组中的单元

array_fill
array_flip
数组 函数
PHP 手册

array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter — 用回调函数过滤数组中的单元

说明

array array_filter ( array $input [, callback $callback ] )

array_filter() 依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE，则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

Example #1 array_filter() 例子

<?php
function odd($var)
{
    return($var % 2 == 1);
}

function even($var)
{
    return($var % 2 == 0);
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>

上例将输出：

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

用户不应在回调函数中修改数组本身。例如增加／删除单元或者对 array_filter() 正在作用的数组进行 unset。如果数组改变了，此函数的行为没有定义。

如果没有提供 callback 函数，array_filter() 将删除 input 中所有等值为 FALSE 的条目。更多信息见转换为布尔值。

Example #2 array_filter() 无 callback

<?php

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));
?>

上例将输出：

Array
(
    [0] => foo
    [2] => -1
)

参见 array_map()，array_reduce() 和 array_walk()。

array_fill
array_flip
数组 函数


交换数组中的键和值

array_filter
array_intersect_assoc
数组 函数
PHP 手册

array_flip

(PHP 4, PHP 5)

array_flip — 交换数组中的键和值

说明

array array_flip ( array $trans )

array_flip() 返回一个反转后的 array，例如 trans 中的键名变成了值，而 trans 中的值成了键名。

注意 trans 中的值需要能够作为合法的键名，例如需要是 integer 或者 string。如果值的类型不对将发出一个警告，并且有问题的键／值对将不会反转。

如果同一个值出现了多次，则最后一个键名将作为它的值，所有其它的都丢失了。

array_flip() 如果失败返回 FALSE。

Example #1 array_flip() 例子

<?php
$trans = array_flip($trans);
$original = strtr($str, $trans);
?>

Example #2 array_flip() 例子：冲突

<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>

现在 $trans 变成了：

Array
(
    [1] => b
    [2] => c
)

参见 array_values()，array_keys() 和 array_reverse()。

array_filter
array_intersect_assoc
数组 函数


带索引检查计算数组的交集

array_flip
array_intersect_key
数组 函数
PHP 手册

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assoc — 带索引检查计算数组的交集

说明

array array_intersect_assoc ( array $array1 , array $array2 [, array $ ... ] )

array_intersect_assoc() 返回一个数组，该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较。

Example #1 array_intersect_assoc() 例子

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
?>

$result_array 将是：

Array
(
    [a] => green
)

上面例子中可以看到只有键值对 "a" => "green" 在两个数组中都存在从而被返回。值 "red" 没有被返回是因为在 $array1 中它的键名是 0 而在 $array2 中 "red" 的键名是 1。

键值对 key => value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查，字符串的表达必须相同。

参见 array_intersect()，array_uintersect_assoc()，array_intersect_uassoc()，array_uintersect_uassoc()，array_diff() 和 array_diff_assoc()。

array_flip
array_intersect_key
数组 函数


使用键名比较计算数组的交集

array_intersect_assoc
array_intersect_uassoc
数组 函数
PHP 手册

array_intersect_key

(PHP 5 >= 5.1.0)

array_intersect_key — 使用键名比较计算数组的交集

说明

array array_intersect_key ( array $array1 , array $array2 [, array $ ... ] )

array_intersect_key() 返回一个数组，该数组包含了所有出现在 array1 中并同时出现在所有其它参数数组中的键名的值。

Example #1 array_intersect_key() 例子

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_key($array1, $array2));
?>

上例将输出：

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
})

上例中可以看到只有 'blue' 和 'green' 两个键名出现在两个数组中，因此被返回。此外注意 'blue' 和 'green' 的值在两个数组中是不同的。但因为只检查键名，因此还是匹配。返回的值只是 array1 中的。

在 key => value 对中的两个键名仅在 (string) $key1 === (string) $key2 时被认为相等。换句话说，执行的是严格类型检查，因此字符串的表达必须完全一样。

参见 array_diff()，array_udiff()，array_diff_assoc()，array_diff_uassoc()，array_udiff_assoc()，array_udiff_uassoc()，array_diff_key()，array_diff_ukey()，array_intersect()，array_intersect_assoc()，array_intersect_uassoc() 和 array_intersect_ukey()。

array_intersect_assoc
array_intersect_uassoc
数组 函数


带索引检查计算数组的交集，用回调函数比较索引

array_intersect_key
array_intersect_ukey
数组 函数
PHP 手册

array_intersect_uassoc

(PHP 5)

array_intersect_uassoc — 带索引检查计算数组的交集，用回调函数比较索引

说明

array array_intersect_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $key_compare_func )

array_intersect_uassoc() 返回一个数组，该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

Example #1 array_intersect_uassoc() 例子

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

上例将输出：

Array
(
    [b] => brown
)

参见 array_intersect()，array_intersect_assoc()，array_uintersect_assoc()，array_uintersect_uassoc()，array_intersect_key() 和 array_intersect_ukey()。

array_intersect_key
array_intersect_ukey
数组 函数


用回调函数比较键名来计算数组的交集

array_intersect_uassoc
array_intersect
数组 函数
PHP 手册

array_intersect_ukey

(PHP 5 >= 5.1.0)

array_intersect_ukey — 用回调函数比较键名来计算数组的交集

说明

array array_intersect_ukey ( array $array1 , array $array2 [, array $... ], callback $key_compare_func )

array_intersect_ukey() 返回一个数组，该数组包含了所有出现在 array1 中并同时出现在所有其它参数数组中的键名的值。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

Example #1 array_intersect_ukey() 例子

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

上例将输出：

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
})

上例中可以看到只有 'blue' 和 'green' 两个键名出现在两个数组中，因此被返回。此外注意 'blue' 和 'green' 的值在两个数组中是不同的。但因为只检查键名，因此还是匹配。返回的值只是 array1 中的。

参见 array_diff()，array_udiff()，array_diff_assoc()，array_diff_uassoc()，array_udiff_assoc()，array_udiff_uassoc()，array_diff_key()，array_diff_ukey()，array_intersect()，array_intersect_assoc()，array_intersect_uassoc() 和 array_intersect_key()。

array_intersect_uassoc
array_intersect
数组 函数


计算数组的交集

array_intersect_ukey
array_key_exists
数组 函数
PHP 手册

array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect — 计算数组的交集

说明

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

array_intersect() 返回一个数组，该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。

Example #1 array_intersect() 例子

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>

这使得 $result 成为：

Array
(
    [a] => green
    [0] => red
)

Note: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说，当字符串的表达是一样的时候。

参见 array_intersect_assoc()，array_diff() 和 array_diff_assoc()。

array_intersect_ukey
array_key_exists
数组 函数


检查给定的键名或索引是否存在于数组中

array_intersect
array_keys
数组 函数
PHP 手册

array_key_exists

(PHP 4 >= 4.0.7, PHP 5)

array_key_exists — 检查给定的键名或索引是否存在于数组中

说明

bool array_key_exists ( mixed $key , array $search )

array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。

Example #1 array_key_exists() 例子

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

Note: 在 PHP 4.0.6 中本函数名为 key_exists()。

Example #2 array_key_exists() 与 isset() 对比

isset() 对于数组中为 NULL 的值不会返回 TRUE，而 array_key_exists() 会。

<?php
$search_array = array('first' => null, 'second' => 4);

// returns false
isset($search_array['first']);

// returns true
array_key_exists('first', $search_array);
?>

参见 isset()，array_keys() 和 in_array()。

array_intersect
array_keys
数组 函数


返回数组中所有的键名

array_key_exists
array_map
数组 函数
PHP 手册

array_keys

(PHP 4, PHP 5)

array_keys — 返回数组中所有的键名

说明

array array_keys ( array $input [, mixed $search_value [, bool $strict ]] )

array_keys() 返回 input 数组中的数字或者字符串的键名。

如果指定了可选参数 search_value ，则只返回该值的键名。否则 input 数组中的所有键名都会被返回。自 PHP 5 起，可以用 strict 参数来进行全等比较（===）。

Example #1 array_keys() 例子

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

上例将输出：

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

参见 array_values() 和 array_key_exists()。

array_key_exists
array_map
数组 函数


将回调函数作用到给定数组的单元上

array_keys
array_merge_recursive
数组 函数
PHP 手册

array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map — 将回调函数作用到给定数组的单元上

说明

array array_map ( callback $callback , array $arr1 [, array $... ] )

array_map() 返回一个数组，该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

Example #1 array_map() 例子

<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

这使得 $b 成为：

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Example #2 array_map() - 使用更多的数组

<?php
function show_Spanish($n, $m)
{
    return("The number $n is called $m in Spanish");
}

function map_Spanish($n, $m)
{
    return(array($n => $m));
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

上例将输出：

// printout of $c
Array
(
    [0] => The number 1 is called uno in Spanish
    [1] => The number 2 is called dos in Spanish
    [2] => The number 3 is called tres in Spanish
    [3] => The number 4 is called cuatro in Spanish
    [4] => The number 5 is called cinco in Spanish
)

// printout of $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

通常使用了两个或更多数组时，它们的长度应该相同，因为回调函数是平行作用于相应的单元上的。如果数组的长度不同，则最短的一个将被用空的单元扩充。

本函数一个有趣的用法是构造一个数组的数组，这可以很容易的通过用 NULL 作为回调函数名来实现。

Example #3 建立一个数组的数组

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

上例将输出：

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

参见 array_filter()，array_reduce()，array_walk() 和有关 callback 类型的信息。

array_keys
array_merge_recursive
数组 函数


递归地合并一个或多个数组

array_map
array_merge
数组 函数
PHP 手册

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursive — 递归地合并一个或多个数组

说明

array array_merge_recursive ( array $array1 [, array $... ] )

array_merge_recursive() 将一个或多个数组的单元合并起来，一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名，则这些值会被合并到一个数组中去，这将递归下去，因此如果一个值本身是一个数组，本函数将按照相应的条目把它合并为另一个数组。然而，如果数组具有相同的数组键名，后一个值将不会覆盖原来的值，而是附加到后面。

Example #1 array_merge_recursive() 例子

<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
?>

$result 成为：

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

参见 array_merge()。

array_map
array_merge
数组 函数


合并一个或多个数组

array_merge_recursive
array_multisort
数组 函数
PHP 手册

array_merge

(PHP 4, PHP 5)

array_merge — 合并一个或多个数组

说明

array array_merge ( array $array1 [, array $array2 [, array $... ]] )

array_merge() 将一个或多个数组的单元合并起来，一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名，则该键名后面的值将覆盖前一个值。然而，如果数组包含数字键名，后面的值将不会覆盖原来的值，而是附加到后面。

如果只给了一个数组并且该数组是数字索引的，则键名会以连续方式重新索引。

Example #1 array_merge() 例子

<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>

上例将输出：

Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)

Example #2 简单的 array_merge() 例子

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

别忘了数字键名将会被重新编号！

Array
(
    [0] => data
)

如果你想完全保留原有数组并只想新的数组附加到后面，用 + 运算符：

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>

数字键名将被保留从而原来的关联保持不变。

Array
(
    [1] => data
)

Warning

array_merge() 的行为在 PHP 5 中被修改了。和 PHP 4 不同，array_merge() 现在只接受 array 类型的参数。不过可以用强制转换来合并其它类型。请看下面的例子。

Example #3 array_merge() PHP 5 例子

<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>

上例将输出：

Array
(
    [0] => foo
    [1] => bar
)

参见 array_merge_recursive()，array_combine() 和数组运算符。

array_merge_recursive
array_multisort
数组 函数


对多个数组或多维数组进行排序

array_merge
array_pad
数组 函数
PHP 手册

array_multisort

(PHP 4, PHP 5)

array_multisort — 对多个数组或多维数组进行排序

说明

bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )

如果成功则返回 TRUE，失败则返回 FALSE。

array_multisort() 可以用来一次对多个数组进行排序，或者根据某一维或多维对多维数组进行排序。

关联（string）键名保持不变，但数字键名会被重新索引。

输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行（值）比较为相同的话就按照下一个输入数组中相应值的大小来排序，依此类推。

本函数的参数结构有些不同寻常，但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。

排序顺序标志：

  • SORT_ASC - 按照上升顺序排序
  • SORT_DESC - 按照下降顺序排序

排序类型标志：

  • SORT_REGULAR - 将项目按照通常方法比较
  • SORT_NUMERIC - 将项目按照数值比较
  • SORT_STRING - 将项目按照字符串比较

每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。

Example #1 对多个数组排序

<?php
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

本例中经过排序后，第一个数组将包含 "10"，"a"，100，100。第二个数组将包含 1，1，"2"，3。第二个数组中的项目顺序完全和第一个数组中相应的项目（100 和 100）顺序一致。

array(4) {
  [0]=> string(2) "10"
  [1]=> string(1) "a"
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(1)
  [1]=> int(1)
  [2]=> string(1) "2"
  [3]=> int(3)
}

Example #2 对多维数组排序

<?php
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);
?>

本例中经过排序后，第一个数组将包含 10，100，100，"a"（作为字符串上升排序），第二个数组将包含 1，3，"2"，1（作为数值下降排序）。

Example #3 Sorting multi-dimensional array

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

本例中在排序后，第一个数组将变成 "10"，100，100，11，"a"（被当作字符串以升序排列）。第二个数组将包含 1, 3, "2", 2, 1（被当作数字以降序排列）。

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Example #4 对数据库结果进行排序

本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。

例子中的数据如下：

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果，例如 mysql_fetch_assoc()。

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

本例中将把 volume 降序排列，把 edition 升序排列。

现在有了包含有行的数组，但是 array_multisort() 需要一个包含列的数组，因此用以下代码来取得列，然后排序。

<?php
// 取得列的列表
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// 将数据根据 volume 降序排列，根据 edition 升序排列
// 把 $data 作为最后一个参数，以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

数据集合现在排好序了，结果如下：

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

Example #5 不区分大小写字母排序

SORT_STRING 和 SORT_REGULAR 都是区分大小写字母的，大写字母会排在小写字母之前。

要进行不区分大小写的排序，就要按照原数组的小写字母拷贝来排序。

<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>

上例将输出：

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

【译者注】本函数相当有用，为有助于理解，请再看下面这个例子：

Example #6 名次排列

<?php
$grade = array("score" => array(70, 95, 70.0, 60, "70"),
               "name" => array("Zhang San", "Li Si", "Wang Wu",
                               "Zhao Liu", "Liu Qi"));
array_multisort($grade["score"], SORT_NUMERIC, SORT_DESC,
                // 将分数作为数值，由高到低排序
                $grade["name"], SORT_STRING, SORT_ASC);
                // 将名字作为字符串，由小到大排序
var_dump($grade);
?>

上例将输出：

array(2) {
  ["score"]=>
  array(5) {
    [0]=>
    int(95)
    [1]=>
    string(2) "70"
    [2]=>
    float(70)
    [3]=>
    int(70)
    [4]=>
    int(60)
  }
  ["name"]=>
  array(5) {
    [0]=>
    string(5) "Li Si"
    [1]=>
    string(6) "Liu Qi"
    [2]=>
    string(7) "Wang Wu"
    [3]=>
    string(9) "Zhang San"
    [4]=>
    string(8) "Zhao Liu"
  }
}

本例中对包含成绩的数组 $grade 按照分数（score）由高到低进行排序，分数相同的人则按照名字（name）由小到大排序。排序后李四 95 分为第一名，赵六 60 分为第五名没有异议。张三、王五和刘七都是 70 分，他们的名次则由其姓名的字母顺序排列，Liu 在前，Wang 在后而 Zhang 在最后。为了区别，三个 70 分分别用了整数，浮点数和字符串来表示，可以在程序输出中清楚地看到它们排序的结果。

array_merge
array_pad
数组 函数


用值将数组填补到指定长度

array_multisort
array_pop
数组 函数
PHP 手册

array_pad

(PHP 4, PHP 5)

array_pad — 用值将数组填补到指定长度

说明

array array_pad ( array $input , int $pad_size , mixed $pad_value )

array_pad() 返回 input 的一个拷贝，并用 pad_value 将其填补到 pad_size 指定的长度。如果 pad_size 为正，则数组被填补到右侧，如果为负则从左侧开始填补。如果 pad_size 的绝对值小于或等于 input 数组的长度则没有任何填补。有可能一次最多填补 1048576 个单元。

Example #1 array_pad() 例子

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// not padded
?>

参见 array_fill() 和 range()。

array_multisort
array_pop
数组 函数


将数组最后一个单元弹出（出栈）

array_pad
array_product
数组 函数
PHP 手册

array_pop

(PHP 4, PHP 5)

array_pop — 将数组最后一个单元弹出（出栈）

说明

mixed array_pop ( array &$array )

array_pop() 弹出并返回 array 数组的最后一个单元，并将数组 array 的长度减一。如果 array 为空（或者不是数组）将返回 NULL。

Note: 使用本函数后会重置（reset()）数组指针。

Example #1 array_pop() 例子

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

经过此操作后，$stack 将只有 3 个单元：

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

并且 rasberry 将被赋给 $fruit。

参见 array_push()，array_shift() 和 array_unshift()。

array_pad
array_product
数组 函数


计算数组中所有值的乘积

array_pop
array_push
数组 函数
PHP 手册

array_product

(PHP 5 >= 5.1.0)

array_product — 计算数组中所有值的乘积

说明

number array_product ( array $array )

array_product() 以整数或浮点数返回一个数组中所有值的乘积。

Example #1 array_product() 例子

<?php

$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";

?>

上例将输出：

product(a) = 384

array_pop
array_push
数组 函数


将一个或多个单元压入数组的末尾（入栈）

array_product
array_rand
数组 函数
PHP 手册

array_push

(PHP 4, PHP 5)

array_push — 将一个或多个单元压入数组的末尾（入栈）

说明

int array_push ( array &$array , mixed $var [, mixed $... ] )

array_push() 将 array 当成一个栈，并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。和如下效果相同：

<?php
$array[] = $var;
?>

并对每个 var 重复以上动作。

返回数组新的单元总数。

Example #1 array_push() 例子

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

本例将使 $stack 具有如下单元：

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Note: 如果用 array_push() 来给数组增加一个单元，还不如用 $array[] = ，因为这样没有调用函数的额外负担。

Note: 如果第一个参数不是数组，array_push() 将发出一条警告。这和 $var[] 的行为不同，后者会新建一个数组。

参见 array_pop()，array_shift() 和 array_unshift()。

array_product
array_rand
数组 函数


从数组中随机取出一个或多个单元

array_push
array_reduce
数组 函数
PHP 手册

array_rand

(PHP 4, PHP 5)

array_rand — 从数组中随机取出一个或多个单元

说明

mixed array_rand ( array $input [, int $num_req ] )

array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用。它接受 input 作为输入数组和一个可选的参数 num_req ，指明了你想取出多少个单元 － 如果没有指定，默认为 1。

如果你只取出一个，array_rand() 返回一个随机单元的键名，否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。

Note: 自 PHP 4.2.0 起，不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种，现已自动完成。

Example #1 array_rand() 例子

<?php
srand((float) microtime() * 10000000);
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
print $input[$rand_keys[0]] . "\n";
print $input[$rand_keys[1]] . "\n";
?>

参见 shuffle()。

array_push
array_reduce
数组 函数


用回调函数迭代地将数组简化为单一的值

array_rand
array_reverse
数组 函数
PHP 手册

array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduce — 用回调函数迭代地将数组简化为单一的值

说明

mixed array_reduce ( array $input , callback $function [, int $initial ] )

array_reduce() 将回调函数 function 迭代地作用到 input 数组中的每一个单元中，从而将数组简化为单一的值。如果指定了可选参数 initial ，该参数将被当成是数组中的第一个值来处理，或者如果数组为空的话就作为最终返回值。如果数组为空并且没有传递 initial 参数，array_reduce() 返回 NULL。

Example #1 array_reduce() 例子

<?php
function rsum($v, $w)
{
    $v += $w;
    return $v;
}

function rmul($v, $w)
{
    $v *= $w;
    return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "rsum");
$c = array_reduce($a, "rmul", 10);
$d = array_reduce($x, "rsum", 1);
?>

这将使 $b 的值为 15，$c 的值为 1200（= 10*1*2*3*4*5），以及 $d 的值为 1。

参见 array_filter()，array_map()，array_unique() 和 array_count_values()。

array_rand
array_reverse
数组 函数


返回一个单元顺序相反的数组

array_reduce
array_search
数组 函数
PHP 手册

array_reverse

(PHP 4, PHP 5)

array_reverse — 返回一个单元顺序相反的数组

说明

array array_reverse ( array $array [, bool $preserve_keys ] )

array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组，如果 preserve_keys 为 TRUE 则保留原来的键名。

Example #1 array_reverse() 例子

<?php
$input  = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input, TRUE);
?>

这将使 $result 和 $result_keyed 具有相同的单元，但是注意键名的区别。$result 和 $result_keyed 的打印输出显示分别为：

Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Note: 第二个参数是 PHP 4.0.3 中新加的。

参见 array_flip()。

array_reduce
array_search
数组 函数


在数组中搜索给定的值，如果成功则返回相应的键名

array_reverse
array_shift
数组 函数
PHP 手册

array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search — 在数组中搜索给定的值，如果成功则返回相应的键名

说明

mixed array_search ( mixed $needle , array $haystack [, bool $strict ] )

在 haystack 中搜索 needle 参数并在找到的情况下返回键名，否则返回 FALSE。

Note: 如果 needle 是字符串，则比较以区分大小写的方式进行。

Note: 在 PHP 4.2.0 之前，array_search() 在失败时返回 NULL 而不是 FALSE。

如果可选的第三个参数 strict 为 TRUE，则 array_search() 还将在 haystack 中检查 needle 的类型。

如果 needle 在 haystack 中出现不止一次，则返回第一个匹配的键。要返回所有匹配值的键，应该用 array_keys() 加上可选参数 search_value 来代替。

Example #1 array_search() 例子

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
?>

Warning

本函数可能返回布尔值 FALSE，但也可能返回一个与 FALSE 等值的非布尔值，例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

参见 array_keys()，array_values()，array_key_exists() 和 in_array()。

array_reverse
array_shift
数组 函数


将数组开头的单元移出数组

array_search
array_slice
数组 函数
PHP 手册

array_shift

(PHP 4, PHP 5)

array_shift — 将数组开头的单元移出数组

说明

mixed array_shift ( array &$array )

array_shift() 将 array 的第一个单元移出并作为结果返回，将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数，文字键名将不变。如果 array 为空（或者不是数组），则返回 NULL。

Note: 使用本函数后会重置（reset()）数组指针。

Example #1 array_shift() 例子

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

这将使 $stack 剩下 3 个单元：

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

并且 orange 被赋给了 $fruit。

参见 array_unshift()，array_push() 和 array_pop()。

array_search
array_slice
数组 函数


从数组中取出一段

array_shift
array_splice
数组 函数
PHP 手册

array_slice

(PHP 4, PHP 5)

array_slice — 从数组中取出一段

说明

array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )

array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。

如果 offset 非负，则序列将从 array 中的此偏移量开始。如果 offset 为负，则序列将从 array 中距离末端这么远的地方开始。

如果给出了 length 并且为正，则序列中将具有这么多的单元。如果给出了 length 并且为负，则序列将终止在距离数组末端这么远的地方。如果省略，则序列将从 offset 开始一直到 array 的末端。

注意 array_slice() 默认将重置数组的键。自 PHP 5.0.2 起，可以通过将 preserve_keys 设为 TRUE 来改变此行为。

Example #1 array_slice() 例子

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // returns "c", "d", and "e"
$output = array_slice($input, -2, 1);  // returns "d"
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

上例将输出：

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

参见 array_splice() 和 unset()。

array_shift
array_splice
数组 函数


把数组中的一部分去掉并用其它值取代

array_slice
array_sum
数组 函数
PHP 手册

array_splice

(PHP 4, PHP 5)

array_splice — 把数组中的一部分去掉并用其它值取代

说明

array array_splice ( array &$input , int $offset [, int $length [, array $ replacement ]] )

array_splice() 把 input 数组中由 offset 和 length 指定的单元去掉，如果提供了 replacement 参数，则用 replacement 数组中的单元取代。返回一个包含有被移除单元的数组。注意 input 中的数字键名不被保留。

如果 offset 为正，则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负，则从 input 末尾倒数该值指定的偏移量开始移除。

如果省略 length ，则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值，则移除这么多单元。如果指定了 length 并且为负值，则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门：当给出了 replacement 时要移除从 offset 到数组末尾所有单元时，用 count($input) 作为 length 。

如果给出了 replacement 数组，则被移除的单元被此数组中的单元替代。如果 offset 和 length 的组合结果是不会移除任何值，则 replacement 数组中的单元将被插入到 offset 指定的位置。注意替换数组中的键名不保留。如果用来替换的值只是一个单元，那么不需要给它加上 array()，除非该单元本身就是一个数组。

以下表达式以同样方式修改了 $input：

array_splice() 等价表达式
array_push($input, $x, $y) | array_splice($input, count($input), 0, array($x, $y))
array_pop($input) | array_splice($input, -1)
array_shift($input) | array_splice($input, 0, 1)
array_unshift($input, $x, $y) | array_splice($input, 0, 0, array($x, $y))
$input[$x] = $y // 对于键名和偏移量等值的数组 | array_splice($input, $x, 1, $y)

返回一个包含被移除单元的数组。

Example #1 array_splice() 例子

<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green",
//          "blue", "black", "maroon")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green",
//          "blue", "purple", "yellow");
?>

参见 array_slice()，unset() 和 array_merge()。

array_slice
array_sum
数组 函数


计算数组中所有值的和

array_splice
array_udiff_assoc
数组 函数
PHP 手册

array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sum — 计算数组中所有值的和

说明

number array_sum ( array $array )

array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。

Example #1 array_sum() 例子

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

上例将输出：

sum(a) = 20
sum(b) = 6.9

Note: PHP 4.2.1 之前的版本修改了传入的数组本身，将其中的字符串值转换成数值（大多数情况下都转换成了零，根据具体值而定）。

array_splice
array_udiff_assoc
数组 函数


带索引检查计算数组的差集，用回调函数比较数据

array_sum
array_udiff_uassoc
数组 函数
PHP 手册

array_udiff_assoc

(PHP 5)

array_udiff_assoc — 带索引检查计算数组的差集，用回调函数比较数据

说明

array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

array_udiff_assoc() 返回一个数组，该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 与 array_udiff() 不同的是键名也用于比较。数组数据的比较是用用户提供的回调函数进行的。在此方面和 array_diff_assoc() 的行为正好相反，后者是用内部函数进行比较的。

Example #1 array_udiff_assoc() 例子

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

上例将输出：

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

上例中可以看到键值对 "1" => new cr(4) 同时出现在两个数组中因此不在本函数的输出中。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

Note: 注意本函数只检查了多维数组中的一维。当然，可以用 array_udiff_assoc($array1[0], $array2[0], "some_comparison_func"); 来检查更深的维度。

参见 array_diff()，array_diff_assoc()，array_diff_uassoc()，array_udiff()，array_udiff_uassoc()，array_intersect()，array_intersect_assoc()，array_uintersect()，array_uintersect_assoc() 和 array_uintersect_uassoc()。

array_sum
array_udiff_uassoc
数组 函数


带索引检查计算数组的差集，用回调函数比较数据和索引

array_udiff_assoc
array_udiff
数组 函数
PHP 手册

array_udiff_uassoc

(PHP 5)

array_udiff_uassoc — 带索引检查计算数组的差集，用回调函数比较数据和索引

说明

array array_udiff_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func , callback $key_compare_func )

array_udiff_uassoc() 返回一个数组，该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 与 array_udiff() 不同的是键名也用于比较。数组数据的比较是用用户提供的回调函数 data_compare_func 进行的。在此方面和 array_diff_assoc() 的行为正好相反，后者是用内部函数进行比较的。对键名（索引）的检查也是由回调函数 key_compare_func 进行的。这和 array_udiff_assoc() 的行为不同，后者是用内部函数比较索引的。

Example #1 array_udiff_uassoc() 例子

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

上例将输出：

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

在上例中键值对 "1" => new cr(4) 同时出现在两个数组中，因此不在本函数的输出中。要记住必须提供两个回调函数。

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

Note: 注意本函数只检查了多维数组中的一维。当然，可以用 array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func"); 来检查更深的维度。

参见 array_diff()，array_diff_assoc()，array_diff_uassoc()，array_udiff()，array_udiff_assoc()，array_intersect()，array_intersect_assoc()，array_uintersect()，array_uintersect_assoc() 和 array_uintersect_uassoc()。

array_udiff_assoc
array_udiff
数组 函数


用回调函数比较数据来计算数组的差集

array_udiff_uassoc
array_uintersect_assoc
数组 函数
PHP 手册

array_udiff

(PHP 5)

array_udiff — 用回调函数比较数据来计算数组的差集

说明

array array_udiff ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

array_udiff() 返回一个数组，该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保持不变。数据的比较是用 data_compare_func 进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。这和 array_diff() 不同，后者使用了内部函数来比较数据。

Example #1 array_udiff() 例子

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

上例将输出：

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Note: 注意本函数只检查了多维数组中的一维。当然，可以用 array_udiff($array1[0], $array2[0], "data_compare_func"); 来检查更深的维度。

参见 array_diff()，array_diff_assoc()，array_diff_uassoc()，array_udiff_assoc()，array_udiff_uassoc()，array_intersect()，array_intersect_assoc()，array_uintersect()，array_uintersect_assoc() 和 array_uintersect_uassoc()。

array_udiff_uassoc
array_uintersect_assoc
数组 函数


带索引检查计算数组的交集，用回调函数比较数据

array_udiff
array_uintersect_uassoc
数组 函数
PHP 手册

array_uintersect_assoc

(PHP 5)

array_uintersect_assoc — 带索引检查计算数组的交集，用回调函数比较数据

说明

array array_uintersect_assoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

array_uintersect_assoc() 返回一个数组，该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_uintersect() 不同的是键名也要比较。数据是用回调函数比较的。

Example #1 array_uintersect_assoc() 例子

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

上例将输出：

Array
(
    [a] => green
)

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

参见 array_uintersect()，array_intersect_assoc()，array_intersect_uassoc() 和 array_uintersect_uassoc()。

array_udiff
array_uintersect_uassoc
数组 函数


带索引检查计算数组的交集，用回调函数比较数据和索引

array_uintersect_assoc
array_uintersect
数组 函数
PHP 手册

array_uintersect_uassoc

(PHP 5)

array_uintersect_uassoc — 带索引检查计算数组的交集，用回调函数比较数据和索引

说明

array array_uintersect_uassoc ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func , callback $key_compare_func )

array_uintersect_uassoc() 返回一个数组，该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_uintersect() 不同的是键名也要比较。数据和索引都是用回调函数比较的。

Example #1 array_uintersect_uassoc() 例子

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

上例将输出：

Array
(
    [a] => green
    [b] => brown
)

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

参见 array_uintersect()，array_intersect_assoc()，array_intersect_uassoc() 和 array_uintersect_assoc()。

array_uintersect_assoc
array_uintersect
数组 函数


计算数组的交集，用回调函数比较数据

array_uintersect_uassoc
array_unique
数组 函数
PHP 手册

array_uintersect

(PHP 5)

array_uintersect — 计算数组的交集，用回调函数比较数据

说明

array array_uintersect ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

array_uintersect() 返回一个数组，该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。数据比较是用回调函数进行的。

Example #1 array_uintersect() 例子

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

上例将输出：

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

参见 array_intersect()，array_uintersect_assoc()，array_intersect_uassoc() 和 array_uintersect_uassoc()。

array_uintersect_uassoc
array_unique
数组 函数


移除数组中重复的值

array_uintersect
array_unshift
数组 函数
PHP 手册

array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_unique — 移除数组中重复的值

说明

array array_unique ( array $array )

array_unique() 接受 array 作为输入并返回没有重复值的新数组。

注意键名保留不变。array_unique() 先将值作为字符串排序，然后对每个值只保留第一个遇到的键名，接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

Note: 当且仅当 (string) $elem1 === (string) $elem2 时两个单元被认为相同。就是说，当字符串的表达一样时。 第一个单元将被保留。

Example #1 array_unique() 例子

<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

上例将输出：

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Example #2 array_unique() 和类型

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

上例将输出：

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

array_uintersect
array_unshift
数组 函数


在数组开头插入一个或多个单元

array_unique
array_values
数组 函数
PHP 手册

array_unshift

(PHP 4, PHP 5)

array_unshift — 在数组开头插入一个或多个单元

说明

int array_unshift ( array &$array , mixed $var [, mixed $... ] )

array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的，因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数，所有的文字键名保持不变。

返回 array 数组新的单元数目。

Example #1 array_unshift() 例子

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
?>

这将使 $queue 包含如下单元：

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

参见 array_shift()，array_push() 和 array_pop()。

array_unique
array_values
数组 函数


返回数组中所有的值

array_unshift
array_walk_recursive
数组 函数
PHP 手册

array_values

(PHP 4, PHP 5)

array_values — 返回数组中所有的值

说明

array array_values ( array $input )

array_values() 返回 input 数组中所有的值并给其建立数字索引。

Example #1 array_values() 例子

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

上例将输出：

Array
(
    [0] => XL
    [1] => gold
)

参见 array_keys()。

array_unshift
array_walk_recursive
数组 函数


对数组中的每个成员递归地应用用户函数

array_values
array_walk
数组 函数
PHP 手册

array_walk_recursive

(PHP 5)

array_walk_recursive — 对数组中的每个成员递归地应用用户函数

说明

bool array_walk_recursive ( array &$input , callback $funcname [, mixed $userdata ] )

将用户自定义函数 funcname 应用到 array 数组中的每个单元。本函数会递归到更深层的数组中去。典型情况下 funcname 接受两个参数。input 参数的值作为第一个，键名作为第二个。如果提供了可选参数 userdata ，将被作为第三个参数传递给 callback funcname 。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 如果 funcname 需要直接作用于数组中的值，则给 funcname 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。

Example #1 array_walk_recursive() 例子

<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');

function test_print($item, $key)
{
    echo "$key holds $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

上例将输出：

a holds apple
b holds banana
sour holds lemon

注意上例中的键 'sweet' 并没有显示出来。任何其值为数组的键都不会被传递到回调函数中去。

参见 array_walk() 和有关 callback 类型的信息。

array_values
array_walk
数组 函数


对数组中的每个成员应用用户函数

array_walk_recursive
array
数组 函数
PHP 手册

array_walk

(PHP 4, PHP 5)

array_walk — 对数组中的每个成员应用用户函数

说明

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

如果成功则返回 TRUE，失败则返回 FALSE。

将用户自定义函数 funcname 应用到 array 数组中的每个单元。典型情况下 funcname 接受两个参数。array 参数的值作为第一个，键名作为第二个。如果提供了可选参数 userdata ，将被作为第三个参数传递给 callback funcname 。

如果 funcname 函数需要的参数比给出的多，则每次 array_walk() 调用 funcname 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制，或者用 error_reporting()。

Note: 如果 funcname 需要直接作用于数组中的值，则给 funcname 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。

Note: 将键名和 userdata 传递到 funcname 中是 PHP 4.0 新增加的。

array_walk() 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针的位置。

用户不应在回调函数中改变该数组本身。例如增加/删除单元，unset 单元等等。如果 array_walk() 作用的数组改变了，则此函数的的行为未经定义，且不可预期。

Example #1 array_walk() 例子

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

echo "Before ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";

array_walk($fruits, 'test_print');
?>

上例将输出：

Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

参见 array_walk_recursive()，create_function()，list()，foreach，each()，call_user_func_array()，array_map() 和有关 callback 类型的信息。

array_walk_recursive
array
数组 函数


新建一个数组

array_walk
arsort
数组 函数
PHP 手册

array

(PHP 4, PHP 5)

array — 新建一个数组

说明

array array ([ mixed $... ] )

返回根据参数建立的数组。参数可以用 => 运算符给出索引。关于数组是什么的信息请阅读数组一节。

Note: array() 是一个语言结构，用于字面上表示数组，不是常规的函数。

语法“index => values”，用逗号分开，定义了索引和值。索引可以是字符串或数字。如果省略了索引，会自动产生从 0 开始的整数索引。如果索引是整数，则下一个产生的索引将是目前最大的整数索引 + 1。注意如果定义了两个完全一样的索引，则后面一个会覆盖前一个。

在最后一个定义的数组项目之后加一个逗号虽然不常见，却是合法的语法。

下面的例子演示了怎样建立一个二维数组，怎样给相应的数组指定键名，以及怎样在普通数组中略过和继续数字索引。

Example #1 array() 例子

<?php
$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third")
);
?>

Example #2 array() 的自动索引

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>

上例将输出：

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

注意索引 3 被定义了两次，保留了最后的值 13。索引 4 在 索引 8 之后定义，下一个自动生成的索引（值为 19 那个）为 9，因为最大的索引是 8。

本例建立了从 1 开始的数组。

Example #3 从 1 开始索引的 array()

<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

上例将输出：

Array
(
    [1] => January
    [2] => February
    [3] => March
)

在 Perl 中，可以访问在双引号内的数组的值。但在 PHP 中需要将数组用花括号括起来。

Example #4 访问双引号内的数组

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

参见 array_pad()，list()，count()，foreach 和 range()。

array_walk
arsort
数组 函数


对数组进行逆向排序并保持索引关系

array
asort
数组 函数
PHP 手册

arsort

(PHP 4, PHP 5)

arsort — 对数组进行逆向排序并保持索引关系

说明

bool arsort ( array &$array [, int $sort_flags ] )

本函数对数组进行排序，数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 arsort() 例子

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

上例将输出：

a = orange
d = lemon
b = banana
c = apple

fruits 被按照字母顺序逆向排序，并且单元的索引关系不变。

可以用可选的参数 sort_flags 改变排序的行为，详情见 sort()。

参见 asort()，rsort()，ksort() 和 sort()。

array
asort
数组 函数


对数组进行排序并保持索引关系

arsort
compact
数组 函数
PHP 手册

asort

(PHP 4, PHP 5)

asort — 对数组进行排序并保持索引关系

说明

bool asort ( array &$array [, int $sort_flags ] )

本函数对数组进行排序，数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 asort() 例子

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

上例将输出：

c = apple
b = banana
d = lemon
a = orange

fruits 被按照字母顺序排序，并且单元的索引关系不变。

可以用可选的参数 sort_flags 改变排序的行为，详情见 sort()。

参见 arsort()，rsort()，ksort() 和 sort()。

arsort
compact
数组 函数


建立一个数组，包括变量名和它们的值

asort
count
数组 函数
PHP 手册

compact

(PHP 4, PHP 5)

compact — 建立一个数组，包括变量名和它们的值

说明

array compact ( mixed $varname [, mixed $... ] )

compact() 接受可变的参数数目。每个参数可以是一个包括变量名的字符串或者是一个包含变量名的数组，该数组中还可以包含其它单元内容为变量名的数组， compact() 可以递归处理。

对每个参数，compact() 在当前的符号表中查找该变量名并将它添加到输出的数组中，变量名成为键名而变量的内容成为该键的值。简单说，它做的事和 extract() 正好相反。返回将所有变量添加进去后的数组。

任何没有变量名与之对应的字符串都被略过。

Note: Gotcha
因为可变变量也许不能在函数内部用于 PHP 的超全局数组，此时不能将超全局数组传递入 compact() 中。

Example #1 compact() 例子

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);
?>

经过处理后，$result 为：

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

参见 extract()。

asort
count
数组 函数


计算数组中的单元数目或对象中的属性个数

compact
current
数组 函数
PHP 手册

count

(PHP 4, PHP 5)

count — 计算数组中的单元数目或对象中的属性个数

说明

int count ( mixed $var [, int $mode ] )

返回 var 中的单元数目，通常是一个 array，任何其它类型都只有一个单元。

对于对象，如果安装了 SPL，可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count()，此方法返回 count() 函数的返回值。

如果 var 不是数组类型或者实现了 Countable 接口的对象，将返回 1，有一个例外，如果 var 是 NULL 则结果是 0。

Note: 可选的 mode 参数自 PHP 4.2.0 起可用。

如果可选的 mode 参数设为 COUNT_RECURSIVE（或 1），count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。mode 的默认值是 0。count() 识别不了无限递归。

Caution

count() 对没有初始化的变量返回 0，但对于空的数组也会返回 0。用 isset() 来测试变量是否已经初始化。

请参考手册中数组一节中关于怎样在 PHP 中实现和使用数组的详细解释。

Example #1 count() 例子

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result == 3;

$result = count(null);
// $result == 0

$result = count(false);
// $result == 1
?>

Example #2 count() 的递归例子（PHP >= 4.2.0）

<?php
$food = array('fruits'  => array('orange', 'banana', 'apple'),
              'veggie'  => array('carrot', 'collard','pea'));

// recursive count
echo count($food, COUNT_RECURSIVE);  // output 8

// normal count
echo count($food);                  // output 2
?>

参见 is_array()，isset() 和 strlen()。

compact
current
数组 函数


返回数组中的当前单元

count
each
数组 函数
PHP 手册

current

(PHP 4, PHP 5)

current — 返回数组中的当前单元

说明

mixed current ( array &$array )

每个数组中都有一个内部的指针指向它“当前的”单元，初始指向插入到数组中的第一个单元。

current() 函数返回当前被内部指针指向的数组单元的值，并不移动指针。如果内部指针指向超出了单元列表的末端，current() 返回 FALSE。

Warning

如果数组包含有空的单元（0 或者 ""，空字符串）则本函数在碰到这个单元时也返回 FALSE。这使得用 current() 不可能判断是否到了此数组列表的末端。要正确遍历可能含有空单元的数组，用 each() 函数。

Example #1 current() 及相关函数的用法示例

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
?>

参见 end()，key()，next()，prev() 和 reset()。

count
each
数组 函数


返回数组中当前的键／值对并将数组指针向前移动一步

current
end
数组 函数
PHP 手册

each

(PHP 4, PHP 5)

each — 返回数组中当前的键／值对并将数组指针向前移动一步

说明

array each ( array &$array )

返回 array 数组中当前指针位置的键／值对并向前移动数组指针。键值对被返回为四个单元的数组，键名为 0，1，key 和 value。单元 0 和 key 包含有数组单元的键名，1 和 value 包含有数据。

如果内部指针越过了数组的末端，则 each() 返回 FALSE。

Example #1 each() 例子

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar 现在包含有如下的键／值对：

Array
{
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
}

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar 现在包含有如下的键／值对：

Array
{
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
}

each() 经常和 list() 结合使用来遍历数组，例如：

Example #2 用 each() 遍历数组

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

上例将输出：

a => apple
b => banana
c => cranberry

在执行 each() 之后，数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组，必须使用 reset()。

Caution

因为将一个数组赋值给另一个数组时会重置原来的数组指针，因此在上边的例子中如果我们在循环内部将 $fruit 赋给了另一个变量的话将会导致无限循环。

参见 key()，list()，current()，reset()，next()，prev() 和 foreach。

current
end
数组 函数


将数组的内部指针指向最后一个单元

each
extract
数组 函数
PHP 手册

end

(PHP 4, PHP 5)

end — 将数组的内部指针指向最后一个单元

说明

mixed end ( array &$array )

end() 将 array 的内部指针移动到最后一个单元并返回其值。

Example #1 简单的 end() 例子

<?php
$fruits = array('apple','banana','cranberry');
echo end($fruits); // cranberry
?>

参见 current()，each()，prev()，next() 和 reset()。

each
extract
数组 函数


从数组中将变量导入到当前的符号表

end
in_array
数组 函数
PHP 手册

extract

(PHP 4, PHP 5)

extract — 从数组中将变量导入到当前的符号表

说明

int extract ( array $var_array [, int $extract_type [, string $prefix ]] )

本函数用来将变量从数组中导入到当前的符号表中。接受结合数组 var_array 作为参数并将键名当作变量名，值作为变量的值。对每个键／值对都会在当前的符号表中建立变量，并受到 extract_type 和 prefix 参数的影响。

Note: 自版本 4.0.5 起本函数返回被提取的变量数目。

Note: EXTR_IF_EXISTS 和 EXTR_PREFIX_IF_EXISTS 是版本 4.2.0 中引进的。

Note: EXTR_REFS 是版本 4.3.0 中引进的。

extract() 检查每个键名看是否可以作为一个合法的变量名，同时也检查和符号表中已有的变量名的冲突。对待非法／数字和冲突的键名的方法将根据 extract_type 参数决定。可以是以下值之一：

EXTR_OVERWRITE
如果有冲突，覆盖已有的变量。
EXTR_SKIP
如果有冲突，不覆盖已有的变量。
EXTR_PREFIX_SAME
如果有冲突，在变量名前加上前缀 prefix 。
EXTR_PREFIX_ALL
给所有变量名加上前缀 prefix 。自 PHP 4.0.5 起这也包括了对数字索引的处理。
EXTR_PREFIX_INVALID
仅在非法／数字的变量名前加上前缀 prefix 。本标记是 PHP 4.0.5 新加的。
EXTR_IF_EXISTS
仅在当前符号表中已有同名变量时，覆盖它们的值。其它的都不处理。可以用在已经定义了一组合法的变量，然后要从一个数组例如 $_REQUEST 中提取值覆盖这些变量的场合。本标记是 PHP 4.2.0 新加的。
EXTR_PREFIX_IF_EXISTS
仅在当前符号表中已有同名变量时，建立附加了前缀的变量名，其它的都不处理。本标记是 PHP 4.2.0 新加的。
EXTR_REFS
将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array 参数的值。可以单独使用这个标志或者在 extract_type 中用 OR 与其它任何标志结合使用。本标记是 PHP 4.3.0 新加的。

如果没有指定 extract_type ，则被假定为 EXTR_OVERWRITE。

注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME，EXTR_PREFIX_ALL，EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名，将不会导入到符号表中。前缀和数组键名之间会自动加上一个下划线。

extract() 返回成功导入到符号表中的变量数目。

Warning

不要对不能信任的数据使用 extract()，例如用户的输入（$_GET，...）。如果这样做，举例说，要临时运行依赖于 register_globals 的老代码，要确保使用不会覆盖的 extract_type 值，例如 EXTR_SKIP，并且要留意应该按照 php.ini 中由 variables_order 定义的顺序来提取。

extract() 的一种可能用法是将 wddx_deserialize() 返回的结合数组中的内容导入到符号表变量中去。

Example #1 extract() 例子

<?php

/* 假定 $var_array 是 wddx_deserialize 返回的数组*/

$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";

?>

上例将输出：

blue, large, sphere, medium

$size 没有被覆盖，因为指定了 EXTR_PREFIX_SAME，这使得 $wddx_size 被建立。如果指定了 EXTR_SKIP，则 $wddx_size 也不会被建立。EXTR_OVERWRITE 将使 $size 的值为“medium”，EXTR_PREFIX_ALL 将建立新变量 $wddx_color，$wddx_size 和 $wddx_shape。

必须使用关联数组，数字索引的数组将不会产生结果，除非用了 EXTR_PREFIX_ALL 或者 EXTR_PREFIX_INVALID。

参见 compact()。

end
in_array
数组 函数


检查数组中是否存在某个值

extract
key
数组 函数
PHP 手册

in_array

(PHP 4, PHP 5)

in_array — 检查数组中是否存在某个值

说明

bool in_array ( mixed $needle , array $haystack [, bool $strict ] )

在 haystack 中搜索 needle ，如果找到则返回 TRUE，否则返回 FALSE。

如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。

Note: 如果 needle 是字符串，则比较是区分大小写的。

Note: 在 PHP 版本 4.2.0 之前，needle 不允许是一个数组。

Example #1 in_array() 例子

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

第二个条件失败，因为 in_array() 是区分大小写的，所以以上程序显示为：

Got Irix

Example #2 in_array() 严格类型检查例子

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' found with strict check\n";
}
if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict check\n";
}
?>

上例将输出：

1.13 found with strict check

Example #3 in_array() 中用数组作为 needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' was found\n";
}
if (in_array(array('f', 'i'), $a)) {
    echo "'fi' was found\n";
}
if (in_array('o', $a)) {
    echo "'o' was found\n";
}
?>

上例将输出：

  'ph' was found
  'o' was found

参见 array_search()，array_key_exists() 和 isset()。

extract
key
数组 函数


从关联数组中取得键名

in_array
krsort
数组 函数
PHP 手册

key

(PHP 4, PHP 5)

key — 从关联数组中取得键名

说明

mixed key ( array &$array )

key() 返回数组中当前单元的键名。

Example #1 key() 例子

<?php
$array = array(
 'fruit1' => 'apple',
 'fruit2' => 'orange',
 'fruit3' => 'grape',
 'fruit4' => 'apple',
 'fruit5' => 'apple');

// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array).'<br />';
    }
    next($array);
}
?>

参见 current() 和 next()。

in_array
krsort
数组 函数


对数组按照键名逆向排序

key
ksort
数组 函数
PHP 手册

krsort

(PHP 4, PHP 5)

krsort — 对数组按照键名逆向排序

说明

bool krsort ( array &$array [, int $sort_flags ] )

对数组按照键名逆向排序，保留键名到数据的关联。主要用于结合数组。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 krsort() 例子

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

上例将输出：

d = lemon
c = apple
b = banana
a = orange

可以用可选参数 sort_flags 改变排序的行为，详情见 sort()。

参见 asort()，arsort()，ksort()，sort()，natsort() 和 rsort()。

key
ksort
数组 函数


对数组按照键名排序

krsort
list
数组 函数
PHP 手册

ksort

(PHP 4, PHP 5)

ksort — 对数组按照键名排序

说明

bool ksort ( array &$array [, int $sort_flags ] )

对数组按照键名排序，保留键名到数据的关联。本函数主要用于关联数组。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 ksort() 例子

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

上例将输出：

a = orange
b = banana
c = apple
d = lemon

可以用可选参数 sort_flags 改变排序的行为，详情见 sort()。

参见 asort()，arsort()，krsort()，uksort()，sort()，natsort() 和 rsort()。

Note: 第二个参数是 PHP 4 新加的。

krsort
list
数组 函数


把数组中的值赋给一些变量

ksort
natcasesort
数组 函数
PHP 手册

list

(PHP 4, PHP 5)

list — 把数组中的值赋给一些变量

说明

void list ( mixed $varname , mixed $... )

像 array() 一样，这不是真正的函数，而是语言结构。list() 用一步操作给一组变量进行赋值。

Note: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

Example #1 list() 例子

<?php

$info = array('coffee', 'brown', 'caffeine');

// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.\n";

// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!\n";

?>

Example #2 使用 list() 的例子

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result = mysql_query("SELECT id, name, salary FROM employees",$conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    echo " <tr>\n".
         "  <td><a href=\"info.php?id=$id\">$name</a></td>\n".
         "  <td>$salary</td>\n".
         " </tr>\n";
}

?>

</table>

Warning

list() 从最右边一个参数开始赋值。如果你用单纯的变量，不用担心这一点。但是如果你用了具有索引的数组，通常你期望得到的结果和在 list() 中写的一样是从左到右的，但实际上不是。是以相反顺序赋值的。

Example #3 在 list() 中使用数组索引

<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>

产生如下输出（注意单元顺序和 list() 语法中所写的顺序的比较）：

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

参见 each()，array() 和 extract()。

ksort
natcasesort
数组 函数


用“自然排序”算法对数组进行不区分大小写字母的排序

list
natsort
数组 函数
PHP 手册

natcasesort

(PHP 4, PHP 5)

natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序

说明

bool natcasesort ( array &$array )

本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键／值的关联，这被称为“自然排序”。

如果成功则返回 TRUE，失败则返回 FALSE。

natcasesort() 是 natsort() 函数的不区分大小写字母的版本。

Example #1 natcasesort() 例子

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Standard sorting\n";
print_r($array1);

natcasesort($array2);
echo "\nNatural order sorting (case-insensitive)\n";
print_r($array2);
?>

上例将输出：

Standard sorting
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natural order sorting (case-insensitive)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

更多信息见 Martin Pool 的 » Natural Order String Comparison 页面。

参见 sort()，natsort()，strnatcmp() 和 strnatcasecmp()。

list
natsort
数组 函数


用“自然排序”算法对数组排序

natcasesort
next
数组 函数
PHP 手册

natsort

(PHP 4, PHP 5)

natsort — 用“自然排序”算法对数组排序

说明

bool natsort ( array &$array )

本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键／值的关联，这被称为“自然排序”。本算法和通常的计算机字符串排序算法（用于 sort()）的区别见下面示例。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 natsort() 例子

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);
echo "Standard sorting\n";
print_r($array1);

natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
?>

上例将输出：

Standard sorting
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

更多信息见 Martin Pool 的 » Natural Order String Comparison 页面。

参见 natcasesort()，strnatcmp() 和 strnatcasecmp()。

natcasesort
next
数组 函数


将数组中的内部指针向前移动一位

natsort
pos
数组 函数
PHP 手册

next

(PHP 4, PHP 5)

next — 将数组中的内部指针向前移动一位

说明

mixed next ( array &$array )

返回数组内部指针指向的下一个单元的值，或当没有更多单元时返回 FALSE。

next() 和 current() 的行为类似，只有一点区别，在返回值之前将内部指针向前移动一位。这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位。如果移动指针的结果是超出了数组单元的末端，则 next() 返回 FALSE。

Warning

如果数组包含空的单元，或者单元的值是 0 则本函数碰到这些单元也返回 FALSE。要正确遍历可能含有空单元或者单元值为 0 的数组，参见 each() 函数。

Example #1 next() 及相关函数的用法示例

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

参见 current()，end()，prev() 和 reset()。

natsort
pos
数组 函数


current 的别名

next
prev
数组 函数
PHP 手册

pos

(PHP 4, PHP 5)

pos — current() 的别名

说明

本函数是该函数的别名：current()。

next
prev
数组 函数


将数组的内部指针倒回一位

pos
range
数组 函数
PHP 手册

prev

(PHP 4, PHP 5)

prev — 将数组的内部指针倒回一位

说明

mixed prev ( array &$array )

返回数组内部指针指向的前一个单元的值，或当没有更多单元时返回 FALSE。

Warning

如果数组包含空的单元，或者单元的值是 0 则本函数碰到这些单元也返回 FALSE。要正确遍历可能含有空单元或者单元值为 0 的数组，参见 each() 函数。

prev() 和 next() 的行为类似，只除了它将内部指针倒回一位而不是前移一位。

Example #1 prev() 及相关函数用法示例

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

参见 current()，end()，next() 和 reset()。

pos
range
数组 函数


建立一个包含指定范围单元的数组

prev
reset
数组 函数
PHP 手册

range

(PHP 4, PHP 5)

range — 建立一个包含指定范围单元的数组

说明

array range ( mixed $low , mixed $high [, number $step ] )

range() 返回数组中从 low 到 high 的单元，包括它们本身。如果 low > high，则序列将从 high 到 low。

Note: 新参数
可选的 step 参数是 PHP 5.0.0 新加的。

如果给出了 step 的值，它将被作为单元之间的步进值。step 应该为正值。如果未指定，step 则默认为 1。

Example #1 range() 例子

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
    echo $number;
}

// The step parameter was introduced in 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// Use of character sequences introduced in 4.1.0
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
    echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
    echo $letter;
}

Note: 在版本 4.1.0 之前 range() 函数只产生递增的整数数组。对于字符序列和递减数组的支持是 4.1.0 加入的。字符序列值的长度限定为一。如果输入的长度超过一，则只使用第一个字符。

Caution

在 PHP 版本 4.1.0 到 4.3.2 中，range() 将数字字符串看作字符串而不是整数，因此将会被作为字符序列使用。例如，"4242" 会被当作 "4" 来对待。

参见 shuffle()，array_fill() 和 foreach。

prev
reset
数组 函数


将数组的内部指针指向第一个单元

range
rsort
数组 函数
PHP 手册

reset

(PHP 4, PHP 5)

reset — 将数组的内部指针指向第一个单元

说明

mixed reset ( array &$array )

reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值，如果数组为空则返回 FALSE。

Example #1 reset() 例子

<?php

$array = array('step one', 'step two', 'step three', 'step four');

// by default, the pointer is on the first element
echo current($array) . "<br />\n"; // "step one"

// skip two steps
next($array);
next($array);
echo current($array) . "<br />\n"; // "step three"

// reset pointer, start again on step one
reset($array);
echo current($array) . "<br />\n"; // "step one"

?>

参见 current()，each()，end()，next() 和 prev()。

range
rsort
数组 函数


对数组逆向排序

reset
shuffle
数组 函数
PHP 手册

rsort

(PHP 4, PHP 5)

rsort — 对数组逆向排序

说明

bool rsort ( array &$array [, int $sort_flags ] )

本函数对数组进行逆向排序（最高到最低）。

Note: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 rsort() 例子

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

上例将输出：

0 = orange
1 = lemon
2 = banana
3 = apple

fruits 被按照字母顺序逆向排序。

可以用可选参数 sort_flags 改变排序的行为，详情见 sort()。

参见 arsort()，asort()，ksort()，krsort()，sort() 和 usort()。

reset
shuffle
数组 函数


将数组打乱

rsort
sizeof
数组 函数
PHP 手册

shuffle

(PHP 4, PHP 5)

shuffle — 将数组打乱

说明

bool shuffle ( array &$array )

本函数打乱（随机排列单元的顺序）一个数组。

Note: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

Example #1 shuffle() 例子

<?php
$numbers = range(1,20);
srand((float)microtime()*1000000);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

Note: 自 PHP 4.2.0 起，不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种，现已自动完成。

参见 arsort()，asort()，ksort()，rsort()，sort() 和 usort()。

rsort
sizeof
数组 函数


count 的别名

shuffle
sort
数组 函数
PHP 手册

sizeof

(PHP 4, PHP 5)

sizeof — count() 的别名

说明

本函数是该函数的别名：count()。

shuffle
sort
数组 函数


对数组排序

sizeof
uasort
数组 函数
PHP 手册

sort

(PHP 4, PHP 5)

sort — 对数组排序

说明

bool sort ( array &$array [, int $sort_flags ] )

本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。

Note: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 sort() 例子

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[".$key."] = " . $val . "\n";
}

?>

上例将输出：

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

fruits 被按照字母顺序排序。

可选的第二个参数 sort_flags 可以用以下值改变排序的行为：

排序类型标记：

  • SORT_REGULAR - 正常比较单元（不改变类型）
  • SORT_NUMERIC - 单元被作为数字来比较
  • SORT_STRING - 单元被作为字符串来比较
  • SORT_LOCALE_STRING - 根据当前的区域（locale）设置来把单元当作字符串比较。PHP 4.4.0 和 5.0.2 新加。在 PHP 6 之前，使用了系统的区域设置，可以用 setlocale() 来改变。自 PHP 6 起，必须用 i18n_loc_set_default() 函数。

Note: 第二个参数是 PHP 4 新加的。

Warning

在对含有混合类型值的数组排序时要小心，因为 sort() 可能会产生不可预知的结果。

参见 arsort()，asort()，ksort()，krsort()，natsort()，natcasesort()，rsort()，usort()，array_multisort() 和 uksort()。

sizeof
uasort
数组 函数


使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

sort
uksort
数组 函数
PHP 手册

uasort

(PHP 4, PHP 5)

uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

说明

bool uasort ( array &$array , callback $cmp_function )

本函数对数组排序并保持索引和单元之间的关联。主要用于对那些单元顺序很重要的结合数组进行排序。比较函数是用户自定义的。

如果成功则返回 TRUE，失败则返回 FALSE。

Note: 用户自定义比较函数的例子请参考 usort() 和 uksort()。

参见 usort()，uksort()，sort()，asort()，arsort()，ksort() 和 rsort()。

sort
uksort
数组 函数


使用用户自定义的比较函数对数组中的键名进行排序

uasort
usort
数组 函数
PHP 手册

uksort

(PHP 4, PHP 5)

uksort — 使用用户自定义的比较函数对数组中的键名进行排序

说明

bool uksort ( array &$array , callback $cmp_function )

本函数将使用用户提供的比较函数对数组中的键名进行排序。如果要排序的数组需要用一种不寻常的标准进行排序，那么应该使用此函数。

cmp_function 函数应接受两个参数，该参数将被 array 中的一对键名填充。比较函数在第一个参数小于，等于，或大于第二个参数时必须分别返回一个小于零，等于零，或大于零的整数。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 uksort() 例子

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? -1 : 1;
}

$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");

uksort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

上例将输出：

20: twenty
10: ten
4: four
3: three

参见 usort()，uasort()，sort()，asort()，arsort()，ksort()，natsort() 和 rsort()。

uasort
usort
数组 函数


使用用户自定义的比较函数对数组中的值进行排序

uksort
Classes/Objects
数组 函数
PHP 手册

usort

(PHP 4, PHP 5)

usort — 使用用户自定义的比较函数对数组中的值进行排序

说明

bool usort ( array &$array , callback $cmp_function )

本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序，那么应该使用此函数。

比较函数必须在第一个参数被认为小于，等于或大于第二个参数时分别返回一个小于，等于或大于零的整数。

Note: 如果两个成员比较结果相同，则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前，用户自定义函数将保留这些单元的原有顺序。但是由于在 4.1.0 中引进了新的排序算法，结果将不是这样了，因为对此没有一个有效的解决方案。

Note: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 usort() 例子

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

上例将输出：

0: 1
1: 2
2: 3
3: 5
4: 6

Note: 很明显在这个小例子中用 sort() 函数更合适。

Example #2 使用多维数组的 usort() 例子

<?php
function cmp($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

当排序多维数组时，$a 和 $b 包含到数组第一个索引的引用。

上例将输出：

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Example #3 使用对象的成员函数的 usort() 例子

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* This is the static comparing function: */
    function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
    echo $item->name . "\n";
}
?>

上例将输出：

b
c
d

参见 uasort()，uksort()，sort()，asort()，arsort()，ksort()，natsort() 和 rsort()。

uksort
Classes/Objects
数组 函数


Class/Object Information

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • Classes/Object 函数
    • call_user_method_array — 调用一个用户方法，同时传递参数数组（已废弃）
    • call_user_method — 对特定对象调用用户方法（已废弃）
    • class_exists — 检查类是否已定义
    • get_called_class — the "Late Static Binding" class name
    • get_class_methods — 返回由类的方法名组成的数组
    • get_class_vars — 返回由类的默认属性组成的数组
    • get_class — 返回对象的类名
    • get_declared_classes — 返回由已定义类的名字所组成的数组
    • get_declared_interfaces — 返回一个数组包含所有已声明的接口
    • get_object_vars — 返回由对象属性组成的关联数组
    • get_parent_class — 返回对象或类的父类名
    • interface_exists — 检查接口是否已被定义
    • is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
    • is_subclass_of — 如果此对象是该类的子类，则返回 TRUE
    • method_exists — 检查类的方法是否存在
    • property_exists — 检查对象或类是否具有该属性
usort
简介
与变量和类型有关的扩展


简介

These functions allow you to obtain information about classes and instance objects. You can obtain the name of the class to which an object belongs, as well as its member properties and methods. Using these functions, you can find out not only the class membership of an object, but also its parentage (i.e. what class is the object class extending).

Classes/Objects
安装/配置
Classes/Objects


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Classes/Objects


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
Classes/Objects


范例

In this example, we first define a base class and an extension of the class. The base class describes a general vegetable, whether it is edible or not and what is its color. The subclass Spinach adds a method to cook it and another to find out if it is cooked.

Example #1 classes.inc

<?php

// base class with member properties and methods
class Vegetable {

   var $edible;
   var $color;

   function Vegetable($edible, $color="green")
   {
       $this->edible = $edible;
       $this->color = $color;
   }

   function is_edible()
   {
       return $this->edible;
   }

   function what_color()
   {
       return $this->color;
   }

} // end of class Vegetable

// extends the base class
class Spinach extends Vegetable {

   var $cooked = false;

   function Spinach()
   {
       $this->Vegetable(true, "green");
   }

   function cook_it()
   {
       $this->cooked = true;
   }

   function is_cooked()
   {
       return $this->cooked;
   }

} // end of class Spinach

?>

We then instantiate 2 objects from these classes and print out information about them, including their class parentage. We also define some utility functions, mainly to have a nice printout of the variables.

Example #2 test_script.php

<pre>
<?php

include "classes.inc";

// utility functions

function print_vars($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
    echo "\t$prop = $val\n";
}
}

function print_methods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
    echo "\tfunction $method()\n";
}
}

function class_parentage($obj, $class)
{
if (is_subclass_of($GLOBALS[$obj], $class)) {
    echo "Object $obj belongs to class " . get_class($$obj);
    echo " a subclass of $class\n";
} else {
    echo "Object $obj does not belong to a subclass of $class\n";
}
}

// instantiate 2 objects

$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// print out information about objects
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";

// show veggie properties
echo "\nveggie: Properties\n";
print_vars($veggie);

// and leafy methods
echo "\nleafy: Methods\n";
print_methods($leafy);

echo "\nParentage:\n";
class_parentage("leafy", "Spinach");
class_parentage("leafy", "Vegetable");
?>
</pre>

One important thing to note in the example above is that the object $leafy is an instance of the class Spinach which is a subclass of Vegetable, therefore the last part of the script above will output:

   [...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable

预定义常量
Classes/Object 函数
Classes/Objects


Classes/Object 函数

Table of Contents

  • call_user_method_array — 调用一个用户方法，同时传递参数数组（已废弃）
  • call_user_method — 对特定对象调用用户方法（已废弃）
  • class_exists — 检查类是否已定义
  • get_called_class — the "Late Static Binding" class name
  • get_class_methods — 返回由类的方法名组成的数组
  • get_class_vars — 返回由类的默认属性组成的数组
  • get_class — 返回对象的类名
  • get_declared_classes — 返回由已定义类的名字所组成的数组
  • get_declared_interfaces — 返回一个数组包含所有已声明的接口
  • get_object_vars — 返回由对象属性组成的关联数组
  • get_parent_class — 返回对象或类的父类名
  • interface_exists — 检查接口是否已被定义
  • is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
  • is_subclass_of — 如果此对象是该类的子类，则返回 TRUE
  • method_exists — 检查类的方法是否存在
  • property_exists — 检查对象或类是否具有该属性
范例
call_user_method_array
Classes/Objects


调用一个用户方法，同时传递参数数组（已废弃）

Classes/Object 函数
call_user_method
Classes/Object 函数
PHP 手册

call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array — 调用一个用户方法，同时传递参数数组（已废弃）

说明

mixed call_user_method_array ( string $method_name , object &$obj , array $paramarr )
Warning

call_user_method_array()
函数自 PHP 4.1.0 起已废弃，使用  call_user_func_array()
函数和  array(&$obj, "method_name")
语法代替。

从用户定义的 obj 对象中调用 method_name 所指的方法，同时使用 paramarr 中的参数。

参见 call_user_func_array() 和 call_user_func()。

Classes/Object 函数
call_user_method
Classes/Object 函数


对特定对象调用用户方法（已废弃）

call_user_method_array
class_exists
Classes/Object 函数
PHP 手册

call_user_method

(PHP 4, PHP 5)

call_user_method — 对特定对象调用用户方法（已废弃）

说明

mixed call_user_method ( string $method_name , object &$obj [, mixed $parameter [, mixed $... ]] )
Warning

call_user_method()
函数从 PHP 4.1.0 开始已经停用，使用 call_user_func()
函数和 array(&$obj, "method_name")
语法代替。

从用户定义的 obj 对象中调用 method_name 指的方法。下边是用法示例，我们定义了一个类，接着创建了一个对象实例，然后使用 call_user_method() 间接调用它的 print_info 方法。

<?php
class Country {
    var $NAME;
    var $TLD;

    function Country($name, $tld)
    {
        $this->NAME = $name;
        $this->TLD = $tld;
    }

    function print_info($prestr="")
    {
        echo $prestr . "Country: " . $this->NAME . "\n";
        echo $prestr . "Top Level Domain: " . $this->TLD . "\n";
    }
}

$cntry = new Country("Peru", "pe");

echo "* Calling the object method directly\n";
$cntry->print_info();

echo "\n* Calling the same method indirectly\n";
call_user_method("print_info", $cntry, "\t");
?>

参见 call_user_func_array() 和 call_user_func()。

call_user_method_array
class_exists
Classes/Object 函数


检查类是否已定义

call_user_method
get_called_class
Classes/Object 函数
PHP 手册

class_exists

(PHP 4, PHP 5)

class_exists — 检查类是否已定义

说明

bool class_exists ( string $class_name [, bool $autoload ] )

如果由 class_name 所指的类已经定义，此函数返回 TRUE，否则返回 FALSE。

Example #1 class_exists() 例子

<?php
// Check the class exists before trying to use it
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

class_exists() 默认将会尝试调用 __autoload，如果不想让 class_exists() 调用 __autoload，可以将 autoload 参数设为 FALSE。

Example #2 autoload 参数例子

<?php
function __autoload($class)
{
    include($class . '.php');

    // Check to see if the include declared the class
    if (!class_exists($class, false)) {
        trigger_error("Unable to load class: $class", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Note: autoload 参数是 PHP 5 添加的。

参见 interface_exists() 和 get_declared_classes()。

call_user_method
get_called_class
Classes/Object 函数


the "Late Static Binding" class name

class_exists
get_class_methods
Classes/Object 函数
PHP 手册

get_called_class

(PHP 5 >= 5.3.0)

get_called_class — the "Late Static Binding" class name

说明

string get_called_class ( void )

Gets the name of the class the static method is called in.

返回值

Returns the class name. Returns FALSE if called from outside a class.

范例

Example #1 Using get_called_class()

<?php

class foo {
    static public function test() {
        var_dump(get_called_class());
    }
}

class bar extends foo {
}

foo::test();
bar::test();

?>

上例将输出：

string(3) "foo"
string(3) "bar"

参见

  • get_parent_class() - 返回对象或类的父类名
  • get_class() - 返回对象的类名
  • is_subclass_of() - 如果此对象是该类的子类，则返回 TRUE

class_exists
get_class_methods
Classes/Object 函数


返回由类的方法名组成的数组

get_called_class
get_class_vars
Classes/Object 函数
PHP 手册

get_class_methods

(PHP 4, PHP 5)

get_class_methods — 返回由类的方法名组成的数组

说明

array get_class_methods ( mixed $class_name )

返回由 class_name 指定的类中定义的方法名所组成的数组。如果出错，则返回 NULL。

Note: 从 PHP 4.0.6 开始，可以指定对象本身来代替 class_name ，例如：

<?php
$class_methods = get_class_methods($my_object); // see below the full example
?>

Example #1 get_class_methods() 示例

<?php

class myclass {
    // constructor
    function myclass()
    {
        return(true);
    }

    // method 1
    function myfunc1()
    {
        return(true);
    }

    // method 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

上例将输出：

myclass
myfunc1
myfunc2

Warning

自 PHP 5 起，本函数按照方法被定义的名字返回（区分大小写）。在 PHP 4 中总是返回小写的。

参见 get_class()，get_class_vars() 和 get_object_vars()。

get_called_class
get_class_vars
Classes/Object 函数


返回由类的默认属性组成的数组

get_class_methods
get_class
Classes/Object 函数
PHP 手册

get_class_vars

(PHP 4, PHP 5)

get_class_vars — 返回由类的默认属性组成的数组

说明

array get_class_vars ( string $class_name )

返回由类的默认公有属性组成的关联数组，此数组的元素以 varname => value 的形式存在。

Note: 在 PHP 4.2.0 之前，get_class_vars() 不会包含未初始化的类变量。

Example #1 get_class_vars() 示例

<?php

class myclass {

    var $var1; // 此变量没有默认值……
    var $var2 = "xyz";
    var $var3 = 100;
    private $var4; // PHP 5

    // constructor
    function myclass() {
        // change some properties
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

上例将输出：

// 在 PHP 4.2.0 之前
var2 : xyz
var3 : 100

// 从 PHP 4.2.0 开始
var1 :
var2 : xyz
var3 : 100

参见 get_class_methods()、 get_object_vars()

get_class_methods
get_class
Classes/Object 函数


返回对象的类名

get_class_vars
get_declared_classes
Classes/Object 函数
PHP 手册

get_class

(PHP 4, PHP 5)

get_class — 返回对象的类名

说明

string get_class ([ object $obj ] )

返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE。

Note: 在 PHP 扩展库中定义的类返回其原始定义的名字。在 PHP 4 中 get_class() 返回用户定义的类名的小写形式，但是在 PHP 5 中将返回类名定义时的名字，如同扩展库中的类名一样。

Note: 自 PHP 5 起，如果在对象的方法中调用则 obj 为可选项。

Example #1 使用 get_class()

<?php

class foo {
    function foo()
    {
    // implements some logic
    }

    function name()
    {
        echo "My name is " , get_class($this) , "\n";
    }
}

// create an object
$bar = new foo();

// external call
echo "Its name is " , get_class($bar) , "\n";

// internal call
$bar->name();

?>

上例将输出：

Its name is foo
My name is foo

参见 get_parent_class()、
gettype() 和
is_subclass_of()。

get_class_vars
get_declared_classes
Classes/Object 函数


返回由已定义类的名字所组成的数组

get_class
get_declared_interfaces
Classes/Object 函数
PHP 手册

get_declared_classes

(PHP 4, PHP 5)

get_declared_classes — 返回由已定义类的名字所组成的数组

说明

array get_declared_classes ( void )

返回由当前脚本中已定义类的名字组成的数组。

Note: 在 PHP 4.0.1pl2 中，有三个额外的类存在于返回的数组中：stdClass（在 Zend/zend.c 中定义）、OverloadedTestClass（在 ext/standard/basic_functions.c 中定义）和 Directory（在 ext/standard/dir.c 中定义）。
还需要注意的是额外类的出现依赖于你已编译到 PHP 中的库。这意味着你不能使用这些类名定义自己的类。在附录的 预定义类 部分有预定义类的列表。

Example #1 get_declared_classes() 例子

<?php
print_r(get_declared_classes());
?>

上例的输出类似于：

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

参见 class_exists() 和 get_declared_interfaces()。

get_class
get_declared_interfaces
Classes/Object 函数


返回一个数组包含所有已声明的接口

get_declared_classes
get_object_vars
Classes/Object 函数
PHP 手册

get_declared_interfaces

(PHP 5)

get_declared_interfaces — 返回一个数组包含所有已声明的接口

说明

array get_declared_interfaces ( void )

本函数返回一个数组，其内容是当前脚本中所有已声明的接口的名字。

Example #1 get_declared_interfaces() 例子

<?php
print_r(get_declared_interfaces());
?>

上例的输出类似于：

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

参见 get_declared_classes()。

get_declared_classes
get_object_vars
Classes/Object 函数


返回由对象属性组成的关联数组

get_declared_interfaces
get_parent_class
Classes/Object 函数
PHP 手册

get_object_vars

(PHP 4, PHP 5)

get_object_vars — 返回由对象属性组成的关联数组

说明

array get_object_vars ( object $obj )

返回由 obj 指定的对象中定义的属性组成的关联数组。

Note: 在 PHP 4.2.0 之前的版本中，如果在 obj 对象实例中声明的变量没有被赋值，则它们将不会在返回的数组中。而在 PHP 4.2.0 之后，这些变量作为键名将被赋予 NULL 值。

Example #1 使用 get_object_vars()

<?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y)
    {
        $this->x = $x;
        $this->y = $y;
    }

    function setLabel($label)
    {
        $this->label = $label;
    }

    function getPoint()
    {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}

// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));

$p1->setLabel("point #1");
print_r(get_object_vars($p1));

?>

上例将输出：

 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )

 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )

参见 get_class_methods() 和 get_class_vars()。

get_declared_interfaces
get_parent_class
Classes/Object 函数


返回对象或类的父类名

get_object_vars
interface_exists
Classes/Object 函数
PHP 手册

get_parent_class

(PHP 4, PHP 5)

get_parent_class — 返回对象或类的父类名

说明

string get_parent_class ([ mixed $obj ] )

如果 obj 是对象，则返回对象实例 obj 所属类的父类名。

如果 obj 是字符串，则返回以此字符串为名的类的父类名。此功能是在 PHP 4.0.5 中增加的。

Note: 自 PHP 5 起，如果在对象的方法内调用，则 obj 为可选项。

Example #1 使用 get_parent_class()

<?php

class dad {
    function dad()
    {
    // implements some logic
    }
}

class child extends dad {
    function child()
    {
        echo "I'm " , get_parent_class($this) , "'s son\n";
    }
}

class child2 extends dad {
    function child2()
    {
        echo "I'm " , get_parent_class('child2') , "'s son too\n";
    }
}

$foo = new child();
$bar = new child2();

?>

上例将输出：

I'm dad's son
I'm dad's son too

参见 get_class() 和 is_subclass_of()。

get_object_vars
interface_exists
Classes/Object 函数


检查接口是否已被定义

get_parent_class
is_a
Classes/Object 函数
PHP 手册

interface_exists

(PHP 5 >= 5.0.2)

interface_exists — 检查接口是否已被定义

说明

bool interface_exists ( string $interface_name [, bool $autoload ] )

本函数在由 interface_name 给出的接口已定义时返回 TRUE，否则返回 FALSE。

Example #1 interface_exists() 例子

<?php
// Check the interface exists before trying to use it
if (interface_exists('MyInterface')) {
    class MyClass implements MyInterface
    {
        // Methods
    }
}
?>

interface_exists() 默认会尝试调用 __autoload，如果不希望 interface_exists() 去调用 __autoload，可以将 autoload 参数设为 FALSE。

参见 class_exists()。

get_parent_class
is_a
Classes/Object 函数


如果对象属于该类或该类是此对象的父类则返回 TRUE

interface_exists
is_subclass_of
Classes/Object 函数
PHP 手册

is_a

(PHP 4 >= 4.2.0, PHP 5)

is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE

说明

bool is_a ( object $object , string $class_name )

如果对象是该类或该类是此对象的父类则返回 TRUE，否则返回 FALSE。

Example #1 is_a() 例子

<?php
// define a class
class WidgetFactory
{
  var $oink = 'moo';
}

// create a new object
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "yes, \$WF is still a WidgetFactory\n";
}
?>

is_a() 函数已废弃，自 PHP 5 起请使用 instanceof 类型运算符。上例在 PHP 5 中会是这样：

Example #2 在 PHP 5 中使用 instanceof 运算符

<?php
if ($WF instanceof WidgetFactory) {
    echo 'Yes, $WF is a WidgetFactory';
}
?>

参见 get_class()，get_parent_class() 和 is_subclass_of()。

interface_exists
is_subclass_of
Classes/Object 函数


如果此对象是该类的子类，则返回 TRUE

is_a
method_exists
Classes/Object 函数
PHP 手册

is_subclass_of

(PHP 4, PHP 5)

is_subclass_of — 如果此对象是该类的子类，则返回 TRUE

说明

bool is_subclass_of ( object $object , string $class_name )

如果对象 object 所属类是类 class_name 的子类，则返回 TRUE，否则返回 FALSE。

Note: 自 PHP 5.0.3 起也可以用一个字符串来指定 object 参数（类名）。

Example #1 is_subclass_of() 例子

<?php
// define a class
class WidgetFactory
{
  var $oink = 'moo';
}

// define a child class
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// create a new object
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "yes, \$WFC is a subclass of WidgetFactory\n";
} else {
  echo "no, \$WFC is not a subclass of WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "yes, \$WF is a subclass of WidgetFactory\n";
} else {
  echo "no, \$WF is not a subclass of WidgetFactory\n";
}

// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
  echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>

上例将输出：

yes, $WFC is a subclass of WidgetFactory
no, $WF is not a subclass of WidgetFactory
yes, WidgetFactory_Child is a subclass of WidgetFactory

参见 get_class()、
get_parent_class() 和
is_a()。

is_a
method_exists
Classes/Object 函数


检查类的方法是否存在

is_subclass_of
property_exists
Classes/Object 函数
PHP 手册

method_exists

(PHP 4, PHP 5)

method_exists — 检查类的方法是否存在

说明

bool method_exists ( object $object , string $method_name )

如果 method_name 所指的方法在 object 所指的对象类中已定义，则返回 TRUE，否则返回 FALSE。

Example #1 method_exists() 例子

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

上例将输出：

bool(true)

参见 function_exists() 和 is_callable()。

is_subclass_of
property_exists
Classes/Object 函数


检查对象或类是否具有该属性

method_exists
Classkit
Classes/Object 函数
PHP 手册

property_exists

(PHP 5 >= 5.1.0)

property_exists — 检查对象或类是否具有该属性

说明

bool property_exists ( mixed $class , string $property )

本函数检查给出的 property 是否存在于指定的类中（以及是否能在当前范围内访问）。

Note: As opposed with isset(), property_exists() returns TRUE even if the property has the value NULL.

参数

class

字符串形式的类名或要检查的类的一个对象

property

属性的名字

返回值

如果该属性存在则返回 TRUE，如果不存在则返回 FALSE，出错返回 NULL。

范例

Example #1 property_exists() 例子

<?php

class myClass {
    public $mine;
    private $xpto;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); // true, it can be accessed from here
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //false, isn't public
myClass::test();
?>

参见

  • method_exists() - 检查类的方法是否存在

method_exists
Classkit
Classes/Object 函数


Classkit

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Classkit 函数
    • classkit_import — Import new class method definitions from a file
    • classkit_method_add — Dynamically adds a new method to a given class
    • classkit_method_copy — Copies a method from class to another
    • classkit_method_redefine — Dynamically changes the code of the given method
    • classkit_method_remove — Dynamically removes the given method
    • classkit_method_rename — Dynamically changes the name of the given method
property_exists
简介
与变量和类型有关的扩展


简介

These functions allow the dynamic manipulation of PHP classes, at runtime.

Note: This extension has been replaced by runkit, which is not limited to class manipulation but has function manipulation, as well.

Classkit
安装/配置
Classkit


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Classkit


安装

本 » PECL 扩展未绑定于 PHP 中。

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到：» http://pecl.php.net/package/classkit。

可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

CLASSKIT_ACC_PRIVATE (int)
将方法标记为 private
CLASSKIT_ACC_PROTECTED (int)
将方法标记为 protected
CLASSKIT_ACC_PUBLIC (int)
将方法标记为 public

资源类型
Classkit 函数
Classkit


Classkit 函数

Table of Contents

  • classkit_import — Import new class method definitions from a file
  • classkit_method_add — Dynamically adds a new method to a given class
  • classkit_method_copy — Copies a method from class to another
  • classkit_method_redefine — Dynamically changes the code of the given method
  • classkit_method_remove — Dynamically removes the given method
  • classkit_method_rename — Dynamically changes the name of the given method
预定义常量
classkit_import
Classkit


Import new class method definitions from a file

Classkit 函数
classkit_method_add
Classkit 函数
PHP 手册

classkit_import

(PECL classkit >= 0.3)

classkit_import — Import new class method definitions from a file

说明

array classkit_import ( string $filename )

Note: 本函数不能用于操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

filename

The filename of the class method definitions to import

返回值

Associative array of imported methods

范例

Example #1 classkit_import() example

<?php
// file: newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// requires newclass.php (see above)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// output original
echo $e->foo();

// import replacement method
classkit_import('newclass.php');

// output imported
echo $e->foo();

?>

上例将输出：

foo!
bar!

参见

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another

Classkit 函数
classkit_method_add
Classkit 函数


Dynamically adds a new method to a given class

classkit_import
classkit_method_copy
Classkit 函数
PHP 手册

classkit_method_add

(PECL classkit >= 0.1)

classkit_method_add — Dynamically adds a new method to a given class

说明

bool classkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags=CLASSKIT_ACC_PUBLIC ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class to which this method will be added

methodname

The name of the method to add

args

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when methodname is called

flags

The type of method to create, can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Note: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 classkit_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

上例将输出：

16

参见

  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_remove() - Dynamically removes the given method
  • classkit_method_rename() - Dynamically changes the name of the given method
  • create_function() - Create an anonymous (lambda-style) function

classkit_import
classkit_method_copy
Classkit 函数


Copies a method from class to another

classkit_method_add
classkit_method_redefine
Classkit 函数
PHP 手册

classkit_method_copy

(PECL classkit >= 0.2)

classkit_method_copy — Copies a method from class to another

说明

bool classkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

dClass

Destination class for copied method

dMethod

Destination method name

sClass

Source class of the method to copy

sMethod

Name of the method to copy from the source class. If this parameter is omitted, the value of dMethod is assumed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 classkit_method_copy() example

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

上例将输出：

foo!

参见

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_remove() - Dynamically removes the given method
  • classkit_method_rename() - Dynamically changes the name of the given method

classkit_method_add
classkit_method_redefine
Classkit 函数


Dynamically changes the code of the given method

classkit_method_copy
classkit_method_remove
Classkit 函数
PHP 手册

classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefine — Dynamically changes the code of the given method

说明

bool classkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags=CLASSKIT_ACC_PUBLIC ] )

Note: 本函数不能用于操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class in which to redefine the method

methodname

The name of the method to redefine

args

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when methodname is called

flags

The redefined method can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Note: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 classkit_method_redefine() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

上例将输出：

Before: foo!
After: bar!

参见

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_remove() - Dynamically removes the given method
  • classkit_method_rename() - Dynamically changes the name of the given method

classkit_method_copy
classkit_method_remove
Classkit 函数


Dynamically removes the given method

classkit_method_redefine
classkit_method_rename
Classkit 函数
PHP 手册

classkit_method_remove

(PECL classkit >= 0.1)

classkit_method_remove — Dynamically removes the given method

说明

bool classkit_method_remove ( string $classname , string $methodname )

Note: 本函数不能用于操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class in which to remove the method

methodname

The name of the method to remove

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 classkit_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
classkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

上例将输出：

bar

参见

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_rename() - Dynamically changes the name of the given method

classkit_method_redefine
classkit_method_rename
Classkit 函数


Dynamically changes the name of the given method

classkit_method_remove
Ctype
Classkit 函数
PHP 手册

classkit_method_rename

(PECL classkit >= 0.1)

classkit_method_rename — Dynamically changes the name of the given method

说明

bool classkit_method_rename ( string $classname , string $methodname , string $newname )

Note: 本函数不能用于操作当前正在运行（或运行链上）的方法。

Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

classname

The class in which to rename the method

methodname

The name of the method to rename

newname

The new name to give to the renamed method

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 classkit_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

上例将输出：

foo!

参见

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_remove() - Dynamically removes the given method

classkit_method_remove
Ctype
Classkit 函数


Character type checking

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Ctype 函数
    • ctype_alnum — Check for alphanumeric character(s)
    • ctype_alpha — Check for alphabetic character(s)
    • ctype_cntrl — Check for control character(s)
    • ctype_digit — Check for numeric character(s)
    • ctype_graph — Check for any printable character(s) except space
    • ctype_lower — Check for lowercase character(s)
    • ctype_print — Check for printable character(s)
    • ctype_punct — Check for any printable character which is not whitespace or an alphanumeric character
    • ctype_space — Check for whitespace character(s)
    • ctype_upper — Check for uppercase character(s)
    • ctype_xdigit — Check for character(s) representing a hexadecimal digit
classkit_method_rename
简介
与变量和类型有关的扩展


简介

The functions provided by this extension check whether a character or string falls into a certain character class according to the current locale (see also setlocale()).

When called with an integer argument these functions behave exactly like their C counterparts from ctype.h. It means that if you pass an integer smaller than 256 it will use the ASCII value of it to see if it fits in the specified range (digits are in 0x30-0x39). If the number is between -128 and -1 inclusive then 256 will be added and the check will be done on that.

When called with a string argument they will check every character in the string and will only return TRUE if every character in the string matches the requested criteria. When called with an empty string the result will always be TRUE in PHP < 5.1 and FALSE since 5.1.

Passing anything else but a string or integer will return FALSE immediately.

It should be noted that ctype functions are always preferred over regular expressions, and even to some equivalent str_* and is_* functions. This is because of the fact that ctype uses a native C library and thus processes significantly faster.

Ctype
安装/配置
Ctype


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Ctype


需求

None besides functions from the standard C library which are always available.

安装/配置
安装
安装/配置


安装

Beginning with PHP 4.2.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-ctype. You can disable ctype support with --disable-ctype.

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

Note: Builtin support for ctype is available with PHP 4.3.0.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Ctype 函数
Ctype


Ctype 函数

Table of Contents

  • ctype_alnum — Check for alphanumeric character(s)
  • ctype_alpha — Check for alphabetic character(s)
  • ctype_cntrl — Check for control character(s)
  • ctype_digit — Check for numeric character(s)
  • ctype_graph — Check for any printable character(s) except space
  • ctype_lower — Check for lowercase character(s)
  • ctype_print — Check for printable character(s)
  • ctype_punct — Check for any printable character which is not whitespace or an alphanumeric character
  • ctype_space — Check for whitespace character(s)
  • ctype_upper — Check for uppercase character(s)
  • ctype_xdigit — Check for character(s) representing a hexadecimal digit
预定义常量
ctype_alnum
Ctype


Check for alphanumeric character(s)

Ctype 函数
ctype_alpha
Ctype 函数
PHP 手册

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnum — Check for alphanumeric character(s)

说明

bool ctype_alnum ( string $text )

Checks if all of the characters in the provided string, text , are alphanumeric. In the standard C locale letters are just [A-Za-z].

参数

text

The tested string.

返回值

Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.

范例

Example #1 A ctype_alnum() example (using the default locale)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "The string $testcase consists of all letters or digits.\n";
    } else {
        echo "The string $testcase does not consist of all letters or digits.\n";
    }
}
?>

上例将输出：

The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consist of all letters or digits.

参见

  • ctype_alpha() - Check for alphabetic character(s)
  • ctype_digit() - Check for numeric character(s)
  • setlocale() - Set locale information

Ctype 函数
ctype_alpha
Ctype 函数


Check for alphabetic character(s)

ctype_alnum
ctype_cntrl
Ctype 函数
PHP 手册

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alpha — Check for alphabetic character(s)

说明

bool ctype_alpha ( string $text )

Checks if all of the characters in the provided string, text , are alphabetic. In the standard C locale letters are just [A-Za-z] and ctype_alpha() is equivalent to (ctype_upper($text) || ctype_lower($text)) if $text is just a single character, but other languages have letters that are considered neither upper nor lower case.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is a letter from the current locale, FALSE otherwise.

范例

Example #1 A ctype_alpha() example (using the default locale)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
    if (ctype_alpha($testcase)) {
        echo "The string $testcase consists of all letters.\n";
    } else {
        echo "The string $testcase does not consist of all letters.\n";
    }
}
?>

上例将输出：

The string KjgWZC consists of all letters.
The string arf12 does not consist of all letters.

参见

  • ctype_upper() - Check for uppercase character(s)
  • ctype_lower() - Check for lowercase character(s)
  • setlocale() - Set locale information

ctype_alnum
ctype_cntrl
Ctype 函数


Check for control character(s)

ctype_alpha
ctype_digit
Ctype 函数
PHP 手册

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrl — Check for control character(s)

说明

bool ctype_cntrl ( string $text )

Checks if all of the characters in the provided string, text , are control characters. Control characters are e.g. line feed, tab, escape.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise.

范例

Example #1 A ctype_cntrl() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
    if (ctype_cntrl($testcase)) {
        echo "The string '$name' consists of all control characters.\n";
    } else {
        echo "The string '$name' does not consist of all control characters.\n";
    }
}
?>

上例将输出：

The string 'string1' consists of all control characters.
The string 'string2' does not consist of all control characters.

参见

  • ctype_print() - Check for printable character(s)

ctype_alpha
ctype_digit
Ctype 函数


Check for numeric character(s)

ctype_cntrl
ctype_graph
Ctype 函数
PHP 手册

ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digit — Check for numeric character(s)

说明

bool ctype_digit ( string $text )

Checks if all of the characters in the provided string, text , are numerical.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is a decimal digit, FALSE otherwise.

范例

Example #1 A ctype_digit() example

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "The string $testcase consists of all digits.\n";
    } else {
        echo "The string $testcase does not consist of all digits.\n";
    }
}
?>

上例将输出：

The string 1820.20 does not consist of all digits.
The string 10002 consists of all digits.
The string wsl!12 does not consist of all digits.

参见

  • ctype_alnum() - Check for alphanumeric character(s)
  • ctype_xdigit() - Check for character(s) representing a hexadecimal digit

ctype_cntrl
ctype_graph
Ctype 函数


Check for any printable character(s) except space

ctype_digit
ctype_lower
Ctype 函数
PHP 手册

ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graph — Check for any printable character(s) except space

说明

bool ctype_graph ( string $text )

Checks if all of the characters in the provided string, text , creates visible output.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.

范例

Example #1 A ctype_graph() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_graph($testcase)) {
        echo "The string '$name' consists of all (visibly) printable characters.\n";
    } else {
        echo "The string '$name' does not consist of all (visibly) printable characters.\n";
    }
}
?>

上例将输出：

The string 'string1' does not consist of all (visibly) printable characters.
The string 'string2' consists of all (visibly) printable characters.
The string 'string3' consists of all (visibly) printable characters.

参见

  • ctype_alnum() - Check for alphanumeric character(s)
  • ctype_print() - Check for printable character(s)
  • ctype_punct() - Check for any printable character which is not whitespace or an alphanumeric character

ctype_digit
ctype_lower
Ctype 函数


Check for lowercase character(s)

ctype_graph
ctype_print
Ctype 函数
PHP 手册

ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lower — Check for lowercase character(s)

说明

bool ctype_lower ( string $text )

Checks if all of the characters in the provided string, text , are lowercase letters.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is a lowercase letter in the current locale.

范例

Example #1 A ctype_lower() example (using the default locale)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
    if (ctype_lower($testcase)) {
        echo "The string $testcase consists of all lowercase letters.\n";
    } else {
        echo "The string $testcase does not consist of all lowercase letters.\n";
    }
}
?>

上例将输出：

The string aac123 does not consist of all lowercase letters.
The string qiutoas consists of all lowercase letters.
The string QASsdks does not consist of all lowercase letters.

参见

  • ctype_alpha() - Check for alphabetic character(s)
  • ctype_upper() - Check for uppercase character(s)
  • setlocale() - Set locale information

ctype_graph
ctype_print
Ctype 函数


Check for printable character(s)

ctype_lower
ctype_punct
Ctype 函数
PHP 手册

ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print — Check for printable character(s)

说明

bool ctype_print ( string $text )

Checks if all of the characters in the provided string, text , are printable.

参数

text

The tested string.

返回值

Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.

范例

Example #1 A ctype_print() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_print($testcase)) {
        echo "The string '$name' consists of all printable characters.\n";
    } else {
        echo "The string '$name' does not consist of all printable characters.\n";
    }
}
?>

上例将输出：

The string 'string1' does not consist of all printable characters.
The string 'string2' consists of all printable characters.
The string 'string3' consists of all printable characters.

参见

  • ctype_cntrl() - Check for control character(s)
  • ctype_graph() - Check for any printable character(s) except space
  • ctype_punct() - Check for any printable character which is not whitespace or an alphanumeric character

ctype_lower
ctype_punct
Ctype 函数


Check for any printable character which is not whitespace or an alphanumeric character

ctype_print
ctype_space
Ctype 函数
PHP 手册

ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct — Check for any printable character which is not whitespace or an alphanumeric character

说明

bool ctype_punct ( string $text )

Checks if all of the characters in the provided string, text , are punctuation character.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.

范例

Example #1 A ctype_punct() example

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
    if (ctype_punct($testcase)) {
        echo "The string $testcase consists of all punctuation.\n";
    } else {
        echo "The string $testcase does not consist of all punctuation.\n";
    }
}
?>

上例将输出：

The string ABasdk!@!$# does not consist of all punctuation.
The string !@ # $ does not consist of all punctuation.
The string *&$() consists of all punctuation.

参见

  • ctype_cntrl() - Check for control character(s)
  • ctype_graph() - Check for any printable character(s) except space

ctype_print
ctype_space
Ctype 函数


Check for whitespace character(s)

ctype_punct
ctype_upper
Ctype 函数
PHP 手册

ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_space — Check for whitespace character(s)

说明

bool ctype_space ( string $text )

Checks if all of the characters in the provided string, text , creates whitespace.

参数

text

The tested string.

返回值

Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.

范例

Example #1 A ctype_space() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "The string '$name' consists of all whitespace characters.\n";
    } else {
        echo "The string '$name' does not consist of all whitespace characters.\n";
    }
}
?>

上例将输出：

The string 'string1' consists of all whitespace characters.
The string 'string2' does not consist of all whitespace characters.
The string 'string3' does not consist of all whitespace characters.

参见

  • ctype_cntrl() - Check for control character(s)
  • ctype_graph() - Check for any printable character(s) except space
  • ctype_punct() - Check for any printable character which is not whitespace or an alphanumeric character

ctype_punct
ctype_upper
Ctype 函数


Check for uppercase character(s)

ctype_space
ctype_xdigit
Ctype 函数
PHP 手册

ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upper — Check for uppercase character(s)

说明

bool ctype_upper ( string $text )

Checks if all of the characters in the provided string, text , are uppercase characters.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is an uppercase letter in the current locale.

范例

Example #1 A ctype_upper() example (using the default locale)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
    if (ctype_upper($testcase)) {
        echo "The string $testcase consists of all uppercase letters.\n";
    } else {
        echo "The string $testcase does not consist of all uppercase letters.\n";
    }
}
?>

上例将输出：

The string AKLWC139 does not consist of all uppercase letters.
The string LMNSDO consists of all uppercase letters.
The string akwSKWsm does not consist of all uppercase letters.

参见

  • ctype_alpha() - Check for alphabetic character(s)
  • ctype_lower() - Check for lowercase character(s)
  • setlocale() - Set locale information

ctype_space
ctype_xdigit
Ctype 函数


Check for character(s) representing a hexadecimal digit

ctype_upper
Filter
Ctype 函数
PHP 手册

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit — Check for character(s) representing a hexadecimal digit

说明

bool ctype_xdigit ( string $text )

Checks if all of the characters in the provided string, text , are hexadecimal 'digits'.

参数

text

The tested string.

返回值

Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.

范例

Example #1 A ctype_xdigit() example

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
    if (ctype_xdigit($testcase)) {
        echo "The string $testcase consists of all hexadecimal digits.\n";
    } else {
        echo "The string $testcase does not consist of all hexadecimal digits.\n";
    }
}
?>

上例将输出：

The string AB10BC99 consists of all hexadecimal digits.
The string AR1012 does not consist of all hexadecimal digits.
The string ab12bc99 consists of all hexadecimal digits.

参见

  • ctype_digit() - Check for numeric character(s)

ctype_upper
Filter
Ctype 函数


Data Filtering

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Filter 函数
    • filter_has_var — Checks if variable of specified type exists
    • filter_id — Returns the filter ID belonging to a named filter
    • filter_input_array — Gets external variables and optionally filters them
    • filter_input — Gets a specific external variable by name and optionally filters it
    • filter_list — Returns a list of all supported filters
    • filter_var_array — Gets multiple variables and optionally filters them
    • filter_var — Filters a variable with a specified filter
ctype_xdigit
简介
与变量和类型有关的扩展


简介

This extension serves to validate and filter data coming from some insecure source, such as user input.

The following filters currently exist; be sure to read the Filter Constants section for information that describes the behavior of each constant:

Existing filters
ID | Name | Options | Flags | Description
FILTER_VALIDATE_INT | "int" | min_range , max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Validates value as integer, optionally from the specified range.
FILTER_VALIDATE_BOOLEAN | "boolean" |  | FILTER_NULL_ON_FAILURE | Returns TRUE for "1", "true", "on" and "yes". Returns FALSE otherwise. If FILTER_NULL_ON_FAILURE is set, FALSE is returned only for "0", "false", "off", "no", and "", and NULL is returned for all non-boolean values.
FILTER_VALIDATE_FLOAT | "float" | decimal | FILTER_FLAG_ALLOW_THOUSAND | Validates value as float.
FILTER_VALIDATE_REGEXP | "validate_regexp" | regexp |  | Validates value against regexp , a Perl-compatible regular expression.
FILTER_VALIDATE_URL | "validate_url" |  | FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Validates value as URL, optionally with required components.
FILTER_VALIDATE_EMAIL | "validate_email" |  |  | Validates value as e-mail.
FILTER_VALIDATE_IP | "validate_ip" |  | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Validates value as IP address, optionally only IPv4 or IPv6 or not from private or reserved ranges.
FILTER_SANITIZE_STRING | "string" |  | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Strip tags, optionally strip or encode special characters.
FILTER_SANITIZE_STRIPPED | "stripped" |  |  | Alias of "string" filter.
FILTER_SANITIZE_ENCODED | "encoded" |  | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | URL-encode string, optionally strip or encode special characters.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" |  | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH | HTML-escape '"<>& and characters with ASCII value less than 32, optionally strip or encode other special characters.
FILTER_UNSAFE_RAW | "unsafe_raw" |  | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Do nothing, optionally strip or encode special characters.
FILTER_SANITIZE_EMAIL | "email" |  |  | Remove all characters except letters, digits and !#$%&'*+-/=?^_`{|}~@.[].
FILTER_SANITIZE_URL | "url" |  |  | Remove all characters except letters, digits and $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  |  | Remove all characters except digits, plus and minus sign.
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" |  | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Remove all characters except digits, +- and optionally .,eE.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  |  | Apply addslashes().
FILTER_CALLBACK | "callback" | callback function or method |  | Call user-defined function to filter data.

Filter
安装/配置
Filter


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Filter


安装

The filter extension is enabled by default as of PHP 5.2.0. Before this time an experimental PECL extension was used, however, the PECL version is no longer recommended or updated.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Filter Configuration Options
Name | Default | Changeable | Changelog
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL in filter <= 0.9.4. Available since PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL in filter <= 0.9.4. Available since PHP 5.2.0.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

filter.default string

Filter all $_GET, $_POST, $_COOKIE and $_REQUEST data by this filter. Original data can be accessed through filter_input().

Accepts the name of the filter you like to use by default. See the existing filter list for the list of the filter names.

filter.default_flags integer

Default flags

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

INPUT_POST (integer)
POST variables.
INPUT_GET (integer)
GET variables.
INPUT_COOKIE (integer)
COOKIE variables.
INPUT_ENV (integer)
ENV variables.
INPUT_SERVER (integer)
SERVER variables.
INPUT_SESSION (integer)
SESSION variables. (not implemented yet)
INPUT_REQUEST (integer)
REQUEST variables. (not implemented yet)
FILTER_FLAG_NONE (integer)
No flags.
FILTER_REQUIRE_SCALAR (integer)
Flag used to require scalar as input
FILTER_REQUIRE_ARRAY (integer)
Require an array as input.
FILTER_FORCE_ARRAY (integer)
Always returns an array.
FILTER_NULL_ON_FAILURE (integer)
Use NULL instead of FALSE on failure.
FILTER_VALIDATE_INT (integer)
ID of "int" filter.
FILTER_VALIDATE_BOOLEAN (integer)
ID of "boolean" filter.
FILTER_VALIDATE_FLOAT (integer)
ID of "float" filter.
FILTER_VALIDATE_REGEXP (integer)
ID of "validate_regexp" filter.
FILTER_VALIDATE_URL (integer)
ID of "validate_url" filter.
FILTER_VALIDATE_EMAIL (integer)
ID of "validate_email" filter.
FILTER_VALIDATE_IP (integer)
ID of "validate_ip" filter.
FILTER_DEFAULT (integer)
ID of default ("string") filter.
FILTER_UNSAFE_RAW (integer)
ID of "unsafe_raw" filter.
FILTER_SANITIZE_STRING (integer)
ID of "string" filter.
FILTER_SANITIZE_STRIPPED (integer)
ID of "stripped" filter.
FILTER_SANITIZE_ENCODED (integer)
ID of "encoded" filter.
FILTER_SANITIZE_SPECIAL_CHARS (integer)
ID of "special_chars" filter.
FILTER_SANITIZE_EMAIL (integer)
ID of "email" filter.
FILTER_SANITIZE_URL (integer)
ID of "url" filter.
FILTER_SANITIZE_NUMBER_INT (integer)
ID of "number_int" filter.
FILTER_SANITIZE_NUMBER_FLOAT (integer)
ID of "number_float" filter.
FILTER_SANITIZE_MAGIC_QUOTES (integer)
ID of "magic_quotes" filter.
FILTER_CALLBACK (integer)
ID of "callback" filter.
FILTER_FLAG_ALLOW_OCTAL (integer)
Allow octal notation (0[0-7]+) in "int" filter.
FILTER_FLAG_ALLOW_HEX (integer)
Allow hex notation (0x[0-9a-fA-F]+) in "int" filter.
FILTER_FLAG_STRIP_LOW (integer)
Strip characters with ASCII value less than 32.
FILTER_FLAG_STRIP_HIGH (integer)
Strip characters with ASCII value greater than 127.
FILTER_FLAG_ENCODE_LOW (integer)
Encode characters with ASCII value less than 32.
FILTER_FLAG_ENCODE_HIGH (integer)
Encode characters with ASCII value greater than 127.
FILTER_FLAG_ENCODE_AMP (integer)
Encode &.
FILTER_FLAG_NO_ENCODE_QUOTES (integer)
Don't encode ' and ".
FILTER_FLAG_EMPTY_STRING_NULL (integer)
(No use for now.)
FILTER_FLAG_ALLOW_FRACTION (integer)
Allow fractional part in "number_float" filter.
FILTER_FLAG_ALLOW_THOUSAND (integer)
Allow thousand separator (,) in "number_float" filter.
FILTER_FLAG_ALLOW_SCIENTIFIC (integer)
Allow scientific notation (e, E) in "number_float" filter.
FILTER_FLAG_SCHEME_REQUIRED (integer)
Require scheme in "validate_url" filter.
FILTER_FLAG_HOST_REQUIRED (integer)
Require host in "validate_url" filter.
FILTER_FLAG_PATH_REQUIRED (integer)
Require path in "validate_url" filter.
FILTER_FLAG_QUERY_REQUIRED (integer)
Require query in "validate_url" filter.
FILTER_FLAG_IPV4 (integer)
Allow only IPv4 address in "validate_ip" filter.
FILTER_FLAG_IPV6 (integer)
Allow only IPv6 address in "validate_ip" filter.
FILTER_FLAG_NO_RES_RANGE (integer)
Deny reserved addresses in "validate_ip" filter.
FILTER_FLAG_NO_PRIV_RANGE (integer)
Deny private addresses in "validate_ip" filter.
资源类型
Filter 函数
Filter


Filter 函数

Table of Contents

  • filter_has_var — Checks if variable of specified type exists
  • filter_id — Returns the filter ID belonging to a named filter
  • filter_input_array — Gets external variables and optionally filters them
  • filter_input — Gets a specific external variable by name and optionally filters it
  • filter_list — Returns a list of all supported filters
  • filter_var_array — Gets multiple variables and optionally filters them
  • filter_var — Filters a variable with a specified filter
预定义常量
filter_has_var
Filter


Checks if variable of specified type exists

Filter 函数
filter_id
Filter 函数
PHP 手册

filter_has_var

(PHP 5 >= 5.2.0)

filter_has_var — Checks if variable of specified type exists

说明

bool filter_has_var ( int $type , string $variable_name )

参数

type

One of INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV.

variable_name

Name of a variable to check.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Filter 函数
filter_id
Filter 函数


Returns the filter ID belonging to a named filter

filter_has_var
filter_input_array
Filter 函数
PHP 手册

filter_id

(PHP 5 >= 5.2.0)

filter_id — Returns the filter ID belonging to a named filter

说明

int filter_id ( string $filtername )

参数

filtername

Name of a filter to get.

返回值

ID of a filter on success or NULL if filter doesn't exist.

参见

  • filter_list() - Returns a list of all supported filters

filter_has_var
filter_input_array
Filter 函数


Gets external variables and optionally filters them

filter_id
filter_input
Filter 函数
PHP 手册

filter_input_array

(PHP 5 >= 5.2.0)

filter_input_array — Gets external variables and optionally filters them

说明

mixed filter_input_array ( int $type [, mixed $definition ] )

This function is useful for retrieving many values without repetitively calling filter_input().

参数

type

One of INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION, or INPUT_REQUEST.

definition

An array defining the arguments. A valid key is a string containing a variable name and a valid value is either a filter type, or an array optionally specifying the filter, flags and options. If the value is an array, valid keys are filter which specifies the filter type, flags which specifies any flags that apply to the filter, and options which specifies any options that apply to the filter. See the example below for a better understanding.

This parameter can be also an integer holding a filter constant. Then all values in the input array are filtered by this filter.

返回值

An array containing the values of the requested variables on success, or FALSE on failure. An array value will be FALSE if the filter fails, or NULL if the variable is not set. Or if the flag FILTER_NULL_ON_FAILURE is used, it returns FALSE if the variable is not set and NULL if the filter fails.

范例

Example #1 A filter_input_array() example

<?php
error_reporting(E_ALL | E_STRICT);
/* data actually came from POST
$_POST = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_REQUIRE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $args);

var_dump($myinputs);
echo "\n";
?>

上例将输出：

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

参见

  • filter_input() - Gets a specific external variable by name and optionally filters it
  • filter_var_array() - Gets multiple variables and optionally filters them

filter_id
filter_input
Filter 函数


Gets a specific external variable by name and optionally filters it

filter_input_array
filter_list
Filter 函数
PHP 手册

filter_input

(PHP 5 >= 5.2.0)

filter_input — Gets a specific external variable by name and optionally filters it

说明

mixed filter_input ( int $type , string $variable_name [, int $filter=FILTER_DEFAULT [, mixed $options ]] )

参数

type

One of INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION (not implemented yet) and INPUT_REQUEST (not implemented yet).

variable_name

Name of a variable to get.

filter

Filter to apply. Defaults to FILTER_DEFAULT.

options

Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in "flags" field of array.

返回值

Value of the requested variable on success, FALSE if the filter fails, or NULL if the variable_name variable is not set. If the flag FILTER_NULL_ON_FAILURE is used, it returns FALSE if the variable is not set and NULL if the filter fails.

范例

Example #1 A filter_input() example

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "You have searched for $search_html.\n";
echo "<a href='?search=$search_url'>Search again.</a>";
?>

上例的输出类似于：

You have searched for Me &#38; son.
<a href='?search=Me%20%26%20son'>Search again.</a>

参见

  • filter_var() - Filters a variable with a specified filter
  • filter_input_array() - Gets external variables and optionally filters them
  • filter_var_array() - Gets multiple variables and optionally filters them

filter_input_array
filter_list
Filter 函数


Returns a list of all supported filters

filter_input
filter_var_array
Filter 函数
PHP 手册

filter_list

(PHP 5 >= 5.2.0)

filter_list — Returns a list of all supported filters

说明

array filter_list ( void )

返回值

Returns an array of names of all supported filters, empty array if there are no such filters. Indexes of this array are not filter IDs, they can be obtained with filter_id() from a name instead.

范例

Example #1 A filter_list() example

<?php
print_r(filter_list());
?>

上例的输出类似于：

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)

filter_input
filter_var_array
Filter 函数


Gets multiple variables and optionally filters them

filter_list
filter_var
Filter 函数
PHP 手册

filter_var_array

(PHP 5 >= 5.2.0)

filter_var_array — Gets multiple variables and optionally filters them

说明

mixed filter_var_array ( array $data [, mixed $definition ] )

This function is useful for retrieving many values without repetitively calling filter_var().

参数

data

An array with string keys containing the data to filter.

definition

An array defining the arguments. A valid key is a string containing a variable name and a valid value is either a filter type, or an array optionally specifying the filter, flags and options. If the value is an array, valid keys are filter which specifies the filter type, flags which specifies any flags that apply to the filter, and options which specifies any options that apply to the filter. See the example below for a better understanding.

This parameter can be also an integer holding a filter constant. Then all values in the input array are filtered by this filter.

返回值

An array containing the values of the requested variables on success, or FALSE on failure. An array value will be FALSE if the filter fails, or NULL if the variable is not set.

范例

Example #1 A filter_var_array() example

<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

上例将输出：

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

参见

  • filter_input_array() - Gets external variables and optionally filters them
  • filter_var() - Filters a variable with a specified filter
  • filter_input() - Gets a specific external variable by name and optionally filters it

filter_list
filter_var
Filter 函数


Filters a variable with a specified filter

filter_var_array
Function Handling
Filter 函数
PHP 手册

filter_var

(PHP 5 >= 5.2.0)

filter_var — Filters a variable with a specified filter

说明

mixed filter_var ( mixed $variable [, int $filter=FILTER_DEFAULT [, mixed $options ]] )

参数

variable

Value to filter.

filter

ID of a filter to use. Defaults to FILTER_DEFAULT.

options

Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in "flags" field of array. For the "callback" filter, callback type should be passed.

返回值

Returns the filtered data, or FALSE if the filter fails.

范例

Example #1 A filter_var() example

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('example.com', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
?>

上例将输出：

string(15) "bob@example.com"
bool(false)

参见

  • filter_var_array() - Gets multiple variables and optionally filters them
  • filter_input() - Gets a specific external variable by name and optionally filters it
  • filter_input_array() - Gets external variables and optionally filters them
  • 有关 callback 类型的信息

filter_var_array
Function Handling
Filter 函数


Function Handling

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Function handling 函数
    • call_user_func_array — Call a user function given with an array of parameters
    • call_user_func — Call a user function given by the first parameter
    • create_function — Create an anonymous (lambda-style) function
    • func_get_arg — Return an item from the argument list
    • func_get_args — Returns an array comprising a function's argument list
    • func_num_args — Returns the number of arguments passed to the function
    • function_exists — Return TRUE if the given function has been defined
    • get_defined_functions — Returns an array of all defined functions
    • register_shutdown_function — Register a function for execution on shutdown
    • register_tick_function — Register a function for execution on each tick
    • unregister_tick_function — De-register a function for execution on each tick
filter_var
简介
与变量和类型有关的扩展


简介

These functions all handle various operations involved in working with functions.

Function Handling
安装/配置
Function Handling


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Function Handling


预定义常量

本扩展模块未定义任何常量。

资源类型
Function handling 函数
Function Handling


Function handling 函数

Table of Contents

  • call_user_func_array — Call a user function given with an array of parameters
  • call_user_func — Call a user function given by the first parameter
  • create_function — Create an anonymous (lambda-style) function
  • func_get_arg — Return an item from the argument list
  • func_get_args — Returns an array comprising a function's argument list
  • func_num_args — Returns the number of arguments passed to the function
  • function_exists — Return TRUE if the given function has been defined
  • get_defined_functions — Returns an array of all defined functions
  • register_shutdown_function — Register a function for execution on shutdown
  • register_tick_function — Register a function for execution on each tick
  • unregister_tick_function — De-register a function for execution on each tick
预定义常量
call_user_func_array
Function Handling


Call a user function given with an array of parameters

Function handling 函数
call_user_func
Function handling 函数
PHP 手册

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array — Call a user function given with an array of parameters

说明

mixed call_user_func_array ( callback $function , array $param_arr )

Call a user defined function with the parameters in param_arr .

参数

function

The function to be called.

param_arr

The parameters to be passed to the function, as an indexed array.

返回值

Returns the function result, or FALSE on error.

范例

Example #1 call_user_func_array() example

<?php
function debug($var, $val)
{
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val)) {
        print_r($val);
    } else {
        echo "\n$val\n";
    }
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array('debug', array("host", $host));
call_user_func_array('debug', array("c", $c));
call_user_func_array('debug', array("_POST", $_POST));
?>

Example #2 call_user_func_array() using namespace name

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print "Hello {$name}!\n";
    }
}

// As of PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'::Foo::test', array('Hannes'));
// Hello Hannes!

// As of PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'::Foo', 'test'), array('Philip'));
// Hello Philip!

?>

Example #3 Using lambda function

<?php

$func = function($arg1, $arg2) {
    return $arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.3.0 */
// int(8)

?>

注释

Note: Referenced variables in param_arr are passed to the function by a reference, others are passed by a value. In other words, it does not depend on the function signature whether the parameter is passed by a value or by a reference.

参见

  • call_user_func() - Call a user function given by the first parameter
  • 有关 callback 类型的信息

Function handling 函数
call_user_func
Function handling 函数


Call a user function given by the first parameter

call_user_func_array
create_function
Function handling 函数
PHP 手册

call_user_func

(PHP 4, PHP 5)

call_user_func — Call a user function given by the first parameter

说明

mixed call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )

Call a user defined function given by the function parameter.

参数

function

The function to be called. Class methods may also be invoked statically using this function by passing array($classname, $methodname) to this parameter.

parameter

Zero or more parameters to be passed to the function.

Note: Note that the parameters for call_user_func() are not passed by reference.

<?php
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a; // 0

call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>

返回值

Returns the function result, or FALSE on error.

范例

Example #1 call_user_func() example

<?php
function barber($type)
{
    echo "You wanted a $type haircut, no problem";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");
?>

Example #2 call_user_func() using namespace name

<?php

namespace Foobar;

class Foo {
    static public function test() {
        print "Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'::Foo::test'); // As of PHP 5.3.0
// Hello world!
call_user_func(array(__NAMESPACE__ .'::Foo', 'test')); // As of PHP 5.3.0
// Hello world!

?>

Example #3 Using a class method

<?php

class myclass {
    static function say_hello()
    {
        echo "Hello!\n";
    }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
call_user_func($classname .'::say_hello'); // As of 5.2.3

?>

Example #4 Using lambda function

<?php

call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* As of PHP 5.3.0 */
// [test]

?>

参见

  • call_user_func_array() - Call a user function given with an array of parameters
  • is_callable() - 检测参数是否为合法的可调用结构
  • 有关 callback 类型的信息

call_user_func_array
create_function
Function handling 函数


Create an anonymous (lambda-style) function

call_user_func
func_get_arg
Function handling 函数
PHP 手册

create_function

(PHP 4 >= 4.0.1, PHP 5)

create_function — Create an anonymous (lambda-style) function

说明

string create_function ( string $args , string $code )

Creates an anonymous function from the parameters passed, and returns a unique name for it.

参数

Usually these parameters will be passed as single quote delimited strings. The reason for using single quoted strings, is to protect the variable names from parsing, otherwise, if you use double quotes there will be a need to escape the variable names, e.g. \$avar.

args

The function arguments.

code

The function code.

返回值

Returns a unique function name as a string, or FALSE on error.

范例

Example #1 Creating an anonymous function with create_function()

You can use this function, to (for example) create a function from information gathered at run time:

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Or, perhaps to have general handler function that can apply a set of operations to a list of parameters:

Example #2 Making a general processing function with create_function()

<?php
function process($var1, $var2, $farr)
{
    foreach ($farr as $f) {
        echo $f($var1, $var2) . "\n";
    }
}

// create a bunch of math functions
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nUsing the first array of anonymous functions\n";
echo "parameters: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// now make a bunch of string processing functions
$garr = array(
    create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    create_function('$a,$b', '; return "CRCs: " . crc32($a) . " , ".crc32(b);'),
    create_function('$a,$b', '; return "similar(a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo "\nUsing the second array of anonymous functions\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

上例将输出：

Using the first array of anonymous functions
parameters: 2.3445, M_PI
some trig: -1.6291725057799
a hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Using the second array of anonymous functions
** "Twas the night" and "Twas brilling and the slithy toves"
** Look the same to me! (looking at the first 3 chars)
CRCs: -725381282 , 1908338681
similar(a,b) = 11(45.833333333333%)

But perhaps the most common use for of lambda-style (anonymous) functions is to create callback functions, for example when using array_walk() or usort()

Example #3 Using anonymous functions as callback functions

<?php
$av = array("the ", "a ", "that ", "this ");
array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));
print_r($av);
?>

上例将输出：

Array
(
  [0] => the mango
  [1] => a mango
  [2] => that mango
  [3] => this mango
)

an array of strings ordered from shorter to longer

<?php

$sv = array("small", "larger", "a big string", "it is a string thing");
print_r($sv);

?>

上例将输出：

Array
(
  [0] => small
  [1] => larger
  [2] => a big string
  [3] => it is a string thing
)

sort it from longer to shorter

<?php

usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

上例将输出：

Array
(
  [0] => it is a string thing
  [1] => a big string
  [2] => larger
  [3] => small
)

call_user_func
func_get_arg
Function handling 函数


Return an item from the argument list

create_function
func_get_args
Function handling 函数
PHP 手册

func_get_arg

(PHP 4, PHP 5)

func_get_arg — Return an item from the argument list

说明

mixed func_get_arg ( int $arg_num )

Gets the specified argument from a user-defined function's argument list.

This function may be used in conjunction with func_get_args() and func_num_args() to allow user-defined functions to accept variable-length argument lists.

参数

arg_num

The argument offset. Function arguments are counted starting from zero.

返回值

Returns the specified argument, or FALSE on error.

更新日志

版本 | 说明
5.3.0 | This function can now be used in parameter lists.

错误／异常

Generates a warning if called from outside of a user-defined function, or if arg_num is greater than the number of arguments actually passed.

范例

Example #1 func_get_arg() example

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Number of arguments: $numargs<br />\n";
     if ($numargs >= 2) {
         echo "Second argument is: " . func_get_arg(1) . "<br />\n";
     }
}

foo (1, 2, 3);
?>

注释

Note: Because this function depends on the current scope to determine parameter details, it cannot be used as a function parameter. If this value must be passed, the results should be assigned to a variable, and that variable should be passed.

Note: This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

参见

  • func_get_args() - Returns an array comprising a function's argument list
  • func_num_args() - Returns the number of arguments passed to the function

create_function
func_get_args
Function handling 函数


Returns an array comprising a function's argument list

func_get_arg
func_num_args
Function handling 函数
PHP 手册

func_get_args

(PHP 4, PHP 5)

func_get_args — Returns an array comprising a function's argument list

说明

array func_get_args ( void )

Gets an array of the function's argument list.

This function may be used in conjunction with func_get_arg() and func_num_args() to allow user-defined functions to accept variable-length argument lists.

返回值

Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list.

更新日志

版本 | 说明
5.3.0 | This function can now be used in parameter lists.

错误／异常

Generates a warning if called from outside of a user-defined function.

范例

Example #1 func_get_args() example

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />\n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
    }
}

foo(1, 2, 3);
?>

注释

Note: Because this function depends on the current scope to determine parameter details, it cannot be used as a function parameter. If this value must be passed, the results should be assigned to a variable, and that variable should be passed.

Note: This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

参见

  • func_get_arg() - Return an item from the argument list
  • func_num_args() - Returns the number of arguments passed to the function

func_get_arg
func_num_args
Function handling 函数


Returns the number of arguments passed to the function

func_get_args
function_exists
Function handling 函数
PHP 手册

func_num_args

(PHP 4, PHP 5)

func_num_args — Returns the number of arguments passed to the function

说明

int func_num_args ( void )

Gets the number of arguments passed to the function.

This function may be used in conjunction with func_get_arg() and func_get_args() to allow user-defined functions to accept variable-length argument lists.

返回值

Returns the number of arguments passed into the current user-defined function.

更新日志

版本 | 说明
5.3.0 | This function can now be used in parameter lists.

错误／异常

Generates a warning if called from outside of a user-defined function.

范例

Example #1 func_num_args() example

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs\n";
}

foo(1, 2, 3);    // Prints 'Number of arguments: 3'
?>

注释

Note: Because this function depends on the current scope to determine parameter details, it cannot be used as a function parameter. If this value must be passed, the results should be assigned to a variable, and that variable should be passed.

参见

  • func_get_arg() - Return an item from the argument list
  • func_get_args() - Returns an array comprising a function's argument list

func_get_args
function_exists
Function handling 函数


Return TRUE if the given function has been defined

func_num_args
get_defined_functions
Function handling 函数
PHP 手册

function_exists

(PHP 4, PHP 5)

function_exists — Return TRUE if the given function has been defined

说明

bool function_exists ( string $function_name )

Checks the list of defined functions, both built-in (internal) and user-defined, for function_name .

参数

function_name

The function name, as a string.

返回值

Returns TRUE if function_name exists and is a function, FALSE otherwise.

Note: This function will return FALSE for constructs, such as include_once() and echo().

范例

Example #1 function_exists() example

<?php
if (function_exists('imap_open')) {
    echo "IMAP functions are available.<br />\n";
} else {
    echo "IMAP functions are not available.<br />\n";
}
?>

注释

Note: A function name may exist even if the function itself is unusable due to configuration or compiling options (with the image functions being an example).

参见

  • method_exists() - 检查类的方法是否存在
  • is_callable() - 检测参数是否为合法的可调用结构
  • get_defined_functions() - Returns an array of all defined functions

func_num_args
get_defined_functions
Function handling 函数


Returns an array of all defined functions

function_exists
register_shutdown_function
Function handling 函数
PHP 手册

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions — Returns an array of all defined functions

说明

array get_defined_functions ( void )

Gets an array of all defined functions.

返回值

Returns an multidimensional array containing a list of all defined functions, both built-in (internal) and user-defined. The internal functions will be accessible via $arr["internal"], and the user defined ones using $arr["user"] (see example below).

范例

Example #1 get_defined_functions() example

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

上例的输出类似于：

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

参见

  • function_exists() - Return TRUE if the given function has been defined
  • get_defined_vars() - 返回由所有已定义变量所组成的数组
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • get_declared_classes() - 返回由已定义类的名字所组成的数组

function_exists
register_shutdown_function
Function handling 函数


Register a function for execution on shutdown

get_defined_functions
register_tick_function
Function handling 函数
PHP 手册

register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_function — Register a function for execution on shutdown

说明

void register_shutdown_function ( callback $function [, mixed $parameter [, mixed $... ]] )

Registers the function named by function to be executed when script processing is complete.

Multiple calls to register_shutdown_function() can be made, and each will be called in the same order as they were registered. If you call exit() within one registered shutdown function, processing will stop completely and no other registered shutdown functions will be called.

In PHP 4.0.6 and earlier under Apache, the registered shutdown functions are called after the request has been completed (including sending any output buffers), so it is not possible to send output to the browser using echo() or print(), or retrieve the contents of any output buffers using ob_get_contents(). Since PHP 4.1, the shutdown functions are called as the part of the request so that it's possible to send the output from them. There is currently no way to process the data with output buffering functions in the shutdown function. Shutdown function is called after closing all opened output buffers thus, for example, its output will not be compressed if zlib.output_compression is enabled.

As of PHP 4, it is possible to pass parameters to the shutdown function by passing additional parameters to register_shutdown_function().

参数

function

parameter

...

返回值

无返回值。

范例

Example #1 register_shutdown_function() example

<?php
function shutdown()
{
    // This is our shutdown function, in
    // here we can do any last operations
    // before the script is complete.

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

注释

Note: Typically undefined functions cause fatal errors in PHP, but when the function called with register_shutdown_function() is undefined, an error of level E_WARNING is generated instead. Also, for reasons internal to PHP, this error will refer to Unknown at line #0.

Note: Working directory of the script can change inside the shutdown function under some web servers, e.g. Apache.

Note: Shutdown function is called during the script shutdown so headers are always already sent.

参见

  • auto_append_file
  • exit() - Output a message and terminate the current script
  • The section on connection handling

get_defined_functions
register_tick_function
Function handling 函数


Register a function for execution on each tick

register_shutdown_function
unregister_tick_function
Function handling 函数
PHP 手册

register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_function — Register a function for execution on each tick

说明

bool register_tick_function ( callback $function [, mixed $arg [, mixed $... ]] )

Registers the given function to be executed when a tick is called.

参数

function

The function name as a string, or an array consisting of an object and a method.

arg

...

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 register_tick_function() example

<?php
// using a function as the callback
register_tick_function('my_function', true);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

更新日志

版本 | 说明
5.3.0 | Ticks are now deprecated and register_tick_function() now throws an E_DEPRECATED notice.

注释

Warning

register_tick_function() should not be used with threaded web server modules. Ticks are not working in ZTS mode and may crash your web server.

参见

  • declare
  • unregister_tick_function() - De-register a function for execution on each tick

register_shutdown_function
unregister_tick_function
Function handling 函数


De-register a function for execution on each tick

register_tick_function
Object Aggregation
Function handling 函数
PHP 手册

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_function — De-register a function for execution on each tick

说明

void unregister_tick_function ( string $function_name )

De-registers the function named by function_name so it is no longer executed when a tick is called.

参数

function_name

The function name, as a string.

返回值

无返回值。

参见

  • register_tick_function() - Register a function for execution on each tick

register_tick_function
Object Aggregation
Function handling 函数


Object Aggregation/Composition

  • 简介
  • 范例
    • Object Aggregation examples
    • 范例
  • Object Aggregation 函数
    • aggregate_info — Gets aggregation information for a given object
    • aggregate_methods_by_list — Selective dynamic class methods aggregation to an object
    • aggregate_methods_by_regexp — Selective class methods aggregation to an object using a regular expression
    • aggregate_methods — Dynamic class and object aggregation of methods
    • aggregate_properties_by_list — Selective dynamic class properties aggregation to an object
    • aggregate_properties_by_regexp — Selective class properties aggregation to an object using a regular expression
    • aggregate_properties — Dynamic aggregation of class properties to an object
    • aggregate — Dynamic class and object aggregation of methods and properties
    • aggregation_info — 别名 aggregate_info
    • deaggregate — Removes the aggregated methods and properties from an object
unregister_tick_function
简介
与变量和类型有关的扩展


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

In Object Oriented Programming, it is common to see the composition of simple classes (and/or instances) into a more complex one. This is a flexible strategy for building complicated objects and object hierarchies and can function as a dynamic alternative to multiple inheritance. There are two ways to perform class (and/or object) composition depending on the relationship between the composed elements: Association and Aggregation.

Object Aggregation
范例
Object Aggregation


范例

Table of Contents

  • Object Aggregation examples
  • 范例
简介
Object Aggregation examples
Object Aggregation


Object Aggregation examples

An Association is a composition of independently constructed and externally visible parts. When we associate classes or objects, each one keeps a reference to the ones it is associated with. When we associate classes statically, one class will contain a reference to an instance of the other class. For example:

Example #1 Class association

<?php
class MyDateTime {

  function MyDateTime()
  {
      // empty constructor
  }

  function now()
  {
      return date("Y-m-d H:i:s");
  }
}

class Report {
  var $_dt;
  // more properties ...

  function Report()
  {
      $this->_dt = new MyDateTime();
      // initialization code ...
  }

  function generateReport()
  {
      $dateTime = $this->_dt->now();
      // more code ...
  }

  // more methods ...
}

$rep = new Report();
?>

We can also associate instances at runtime by passing a reference in a constructor (or any other method), which allow us to dynamically change the association relationship between objects. We will modify the example above to illustrate this point:

Example #2 Object association

<?php
class MyDateTime {
  // same as previous example
}

class MyDateTimePlus {
  var $_format;

  function MyDateTimePlus($format="Y-m-d H:i:s")
  {
      $this->_format = $format;
  }

  function now()
  {
      return date($this->_format);
  }
}

class Report {
  var $_dt;    // we'll keep the reference to MyDateTime here
  // more properties ...

  function Report()
  {
      // do some initialization
  }

  function setMyDateTime(&$dt)
  {
      $this->_dt =& $dt;
  }

  function generateReport()
  {
      $dateTime = $this->_dt->now();
      // more code ...
  }

  // more methods ...
}

$rep = new Report();
$dt = new MyDateTime();
$dtp = new MyDateTimePlus("l, F j, Y (h:i:s a, T)");

// generate report with simple date for web display
$rep->setMyDateTime(&$dt);
echo $rep->generateReport();

// later on in the code ...

// generate report with fancy date
$rep->setMyDateTime(&$dtp);
$output = $rep->generateReport();
// save $output in database
// ... etc ...
?>

Aggregation, on the other hand, implies encapsulation (hidding) of the parts of the composition. We can aggregate classes by using a (static) inner class (PHP does not yet support inner classes), in this case the aggregated class definition is not accessible, except through the class that contains it. The aggregation of instances (object aggregation) involves the dynamic creation of subobjects inside an object, in the process, expanding the properties and methods of that object.

Object aggregation is a natural way of representing a whole-part relationship, (for example, molecules are aggregates of atoms), or can be used to obtain an effect equivalent to multiple inheritance, without having to permanently bind a subclass to two or more parent classes and their interfaces. In fact object aggregation can be more flexible, in which we can select what methods or properties to "inherit" in the aggregated object.

范例
范例
范例


范例
PHP 手册

范例

We define 3 classes, each implementing a different storage method:

Example #1 storage_classes.inc

<?php
class FileStorage {
   var $data;

   function FileStorage($data)
   {
       $this->data = $data;
   }

   function write($name)
   {
       $fp = fopen(name, "w");
       fwrite($fp, $this->data);
       fclose($data);
   }
}

class WDDXStorage {
   var $data;
   var $version = "1.0";
   var $_id; // "private" variable

   function WDDXStorage($data)
   {
       $this->data = $data;
       $this->_id = $this->_genID();
   }

   function store()
   {
       if ($this->_id) {
           $pid = wddx_packet_start($this->_id);
           wddx_add_vars($pid, "this->data");
           $packet = wddx_packet_end($pid);
       } else {
           $packet = wddx_serialize_value($this->data);
       }
       $dbh = dba_open("varstore", "w", "gdbm");
       dba_insert(md5(uniqid("", true)), $packet, $dbh);
       dba_close($dbh);
   }

   // a private method
   function _genID()
   {
       return md5(uniqid(rand(), true));
   }
}

class DBStorage {
   var $data;
   var $dbtype = "mysql";

   function DBStorage($data)
   {
       $this->data = $data;
   }

   function save()
   {
       $dbh = mysql_connect();
       mysql_select_db("storage", $dbh);
       $serdata = serialize($this->data);
       mysql_query("insert into vars ('$serdata',now())", $dbh);
       mysql_close($dbh);
   }
}

?>

We then instantiate a couple of objects from the defined classes, and perform some aggregations and deaggregations, printing some object information along the way:

Example #2 test_aggregation.php

<?php
include "storageclasses.inc";

// some utilty functions

function p_arr($arr)
{
   foreach ($arr as $k => $v)
       $out[] = "\t$k => $v";
   return implode("\n", $out);
}

function object_info($obj)
{
   $out[] = "Class: " . get_class($obj);
   foreach (get_object_vars($obj) as $var=>$val) {
       if (is_array($val)) {
           $out[] = "property: $var (array)\n" . p_arr($val);
       } else {
           $out[] = "property: $var = $val";
       }
   }
   foreach (get_class_methods($obj) as $method) {
       $out[] = "method: $method";
   }
   return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// we create some basic objects
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// print information on the objects
echo "\$fs object\n";
echo object_info($fs) . "\n";
echo "\n\$ws object\n";
echo object_info($ws) . "\n";

// do some aggregation

echo "\nLet's aggregate \$fs to the WDDXStorage class\n";
aggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nNow let us aggregate it to the DBStorage class\n";
aggregate($fs, "DBStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nAnd finally deaggregate WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

?>

We will now consider the output to understand some of the side-effects and limitation of object aggregation in PHP. First, the newly created $fs and $ws objects give the expected output (according to their respective class declaration). Note that for the purposes of object aggregation, private elements of a class/object begin with an underscore character ("_"), even though there is not real distinction between public and private class/object elements in PHP.

$fs object
Class: filestorage
property: data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
method: filestorage
method: write

$ws object
Class: wddxstorage
property: data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
property: version = 1.0
property: _id = ID::9bb2b640764d4370eb04808af8b076a5
method: wddxstorage
method: store
method: _genid

We then aggregate $fs with the WDDXStorage class, and print out the object information. We can see now that even though nominally the $fs object is still of FileStorage, it now has the property $version, and the method store(), both defined in WDDXStorage. One important thing to note is that it has not aggregated the private elements defined in the class, which are present in the $ws object. Also absent is the constructor from WDDXStorage, which will not be logical to aggegate.

Let's aggregate $fs to the WDDXStorage class
$fs object
Class: filestorage
property: data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
property: version = 1.0
method: filestorage
method: write
method: store

The process of aggregation is cumulative, so when we aggregate $fs with the class DBStorage, generating an object that can use the storage methods of all the defined classes.

Now let us aggregate it to the DBStorage class
$fs object
Class: filestorage
property: data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
property: version = 1.0
property: dbtype = mysql
method: filestorage
method: write
method: store
method: save

Finally, the same way we aggregated properties and methods dynamically, we can also deaggregate them from the object. So, if we deaggregate the class WDDXStorage from $fs, we will obtain:

And deaggregate the WDDXStorage methods and properties
$fs object
Class: filestorage
property: data (array)
   0 => 3.1415926535898
   1 => kludge != cruft
property: dbtype = mysql
method: filestorage
method: write
method: save

One point that we have not mentioned above, is that the process of aggregation will not override existing properties or methods in the objects. For example, the class FileStorage defines a $data property, and the class WDDXStorage also defines a similar property which will not override the one in the object acquired during instantiation from the class FileStorage.

Object Aggregation examples
Object Aggregation 函数
范例
PHP 手册


Object Aggregation 函数

Table of Contents

  • aggregate_info — Gets aggregation information for a given object
  • aggregate_methods_by_list — Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp — Selective class methods aggregation to an object using a regular expression
  • aggregate_methods — Dynamic class and object aggregation of methods
  • aggregate_properties_by_list — Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp — Selective class properties aggregation to an object using a regular expression
  • aggregate_properties — Dynamic aggregation of class properties to an object
  • aggregate — Dynamic class and object aggregation of methods and properties
  • aggregation_info — 别名 aggregate_info
  • deaggregate — Removes the aggregated methods and properties from an object
范例
aggregate_info
Object Aggregation


Gets aggregation information for a given object

Object Aggregation 函数
aggregate_methods_by_list
Object Aggregation 函数
PHP 手册

aggregate_info

(PHP 4 >= 4.3.0)

aggregate_info — Gets aggregation information for a given object

说明

array aggregate_info ( object $object )

Gets the aggregation information for the given object .

参数

object

返回值

Returns the aggregation information as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

范例

Example #1 Using aggregate_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts)
    {
        echo "Doing some simple slicing\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degrees

    function Dicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts)
    {
        echo "Cutting in one direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some cutting
        }
        $this->rotate($this->rotation_angle);
        echo "Cutting in a second direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some more cutting
        }
    }

    function rotate($deg)
    {
        echo "Now rotating {$this->vegetable} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts)
    {
        // so secret we cannot show you ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

上例将输出：

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)

As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method _secret_super_dicing

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate() - Removes the aggregated methods and properties from an object

Object Aggregation 函数
aggregate_methods_by_list
Object Aggregation 函数


Selective dynamic class methods aggregation to an object

aggregate_info
aggregate_methods_by_regexp
Object Aggregation 函数
PHP 手册

aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list — Selective dynamic class methods aggregation to an object

说明

void aggregate_methods_by_list ( object $object , string $class_name , array $methods_list [, bool $exclude ] )

Aggregates methods from a class to an existing object using a list of method names.

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

参数

object

class_name

methods_list

exclude

The optional parameter exclude is used to decide whether the list contains the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_info() - Gets aggregation information for a given object
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_info
aggregate_methods_by_regexp
Object Aggregation 函数


Selective class methods aggregation to an object using a regular expression

aggregate_methods_by_list
aggregate_methods
Object Aggregation 函数
PHP 手册

aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp — Selective class methods aggregation to an object using a regular expression

说明

void aggregate_methods_by_regexp ( object $object , string $class_name , string $regexp [, bool $exclude ] )

Aggregates methods from a class to an existing object using a regular expression to match method names.

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

参数

object

class_name

regexp

exclude

The optional parameter exclude is used to decide whether the regular expression will select the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_info() - Gets aggregation information for a given object
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_methods_by_list
aggregate_methods
Object Aggregation 函数


Dynamic class and object aggregation of methods

aggregate_methods_by_regexp
aggregate_properties_by_list
Object Aggregation 函数
PHP 手册

aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods — Dynamic class and object aggregation of methods

说明

void aggregate_methods ( object $object , string $class_name )

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

参数

object

class_name

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_info() - Gets aggregation information for a given object
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_methods_by_regexp
aggregate_properties_by_list
Object Aggregation 函数


Selective dynamic class properties aggregation to an object

aggregate_methods
aggregate_properties_by_regexp
Object Aggregation 函数
PHP 手册

aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list — Selective dynamic class properties aggregation to an object

说明

void aggregate_properties_by_list ( object $object , string $class_name , array $properties_list [, bool $exclude ] )

Aggregates properties from a class to an existing object using a list of property names.

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

参数

object

class_name

properties_list

exclude

The optional parameter exclude is used to decide whether the list contains the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • aggregate_info() - Gets aggregation information for a given object
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_methods
aggregate_properties_by_regexp
Object Aggregation 函数


Selective class properties aggregation to an object using a regular expression

aggregate_properties_by_list
aggregate_properties
Object Aggregation 函数
PHP 手册

aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp — Selective class properties aggregation to an object using a regular expression

说明

void aggregate_properties_by_regexp ( object $object , string $class_name , string $regexp [, bool $exclude ] )

Aggregates properties from a class to an existing object using a regular expression to match their names.

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

参数

object

class_name

regexp

exclude

The optional parameter exclude is used to decide whether the regular expression will select the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_info() - Gets aggregation information for a given object
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_properties_by_list
aggregate_properties
Object Aggregation 函数


Dynamic aggregation of class properties to an object

aggregate_properties_by_regexp
aggregate
Object Aggregation 函数
PHP 手册

aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties — Dynamic aggregation of class properties to an object

说明

void aggregate_properties ( object $object , string $class_name )

Aggregates all properties defined in a class to an existing object, except for properties whose names start with an underscore character (_) which are considered private to the aggregated class.

参数

object

class_name

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties()
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_properties_by_regexp
aggregate
Object Aggregation 函数


Dynamic class and object aggregation of methods and properties

aggregate_properties
aggregation_info
Object Aggregation 函数
PHP 手册

aggregate

(PHP 4 >= 4.2.0)

aggregate — Dynamic class and object aggregation of methods and properties

说明

void aggregate ( object $object , string $class_name )

Aggregates methods and properties defined in a class to an existing object. Methods and properties with names starting with an underscore character (_) are considered private to the aggregated class and are not used, constructors are also excluded from the aggregation procedure.

参数

object

class_name

返回值

无返回值。

参见

  • aggregate_info() - Gets aggregation information for a given object
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate() - Removes the aggregated methods and properties from an object

aggregate_properties
aggregation_info
Object Aggregation 函数


别名 aggregate_info

aggregate
deaggregate
Object Aggregation 函数
PHP 手册

aggregation_info

(PHP 4 >= 4.2.0 and < 4.3.0)

aggregation_info — 别名 aggregate_info()

说明

本函数是该函数的别名： aggregate_info().

aggregate
deaggregate
Object Aggregation 函数


Removes the aggregated methods and properties from an object

aggregation_info
Variable handling
Object Aggregation 函数
PHP 手册

deaggregate

(PHP 4 >= 4.2.0)

deaggregate — Removes the aggregated methods and properties from an object

说明

void deaggregate ( object $object [, string $class_name ] )

Removes the methods and properties from classes that were aggregated to an object.

参数

object

class_name

If the optional class_name parameters is passed, only those methods and properties defined in that class are removed, otherwise all aggregated methods and properties are eliminated.

返回值

无返回值。

参见

  • aggregate() - Dynamic class and object aggregation of methods and properties
  • aggregate_methods() - Dynamic class and object aggregation of methods
  • aggregate_methods_by_list() - Selective dynamic class methods aggregation to an object
  • aggregate_methods_by_regexp() - Selective class methods aggregation to an object using a regular expression
  • aggregate_properties() - Dynamic aggregation of class properties to an object
  • aggregate_properties_by_list() - Selective dynamic class properties aggregation to an object
  • aggregate_properties_by_regexp() - Selective class properties aggregation to an object using a regular expression
  • deaggregate()

aggregation_info
Variable handling
Object Aggregation 函数


Variable handling

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Variable handling 函数
    • debug_zval_dump — Dumps a string representation of an internal zend value to output
    • doubleval — floatval 的别名
    • empty — 检查一个变量是否为空
    • floatval — 获取变量的浮点值
    • get_defined_vars — 返回由所有已定义变量所组成的数组
    • get_resource_type — 返回资源（resource）类型
    • gettype — 获取变量的类型
    • import_request_variables — 将 GET／POST／Cookie 变量导入到全局作用域中
    • intval — 获取变量的整数值
    • is_array — 检测变量是否是数组
    • is_binary — Finds whether a variable is a native binary string
    • is_bool — 检测变量是否是布尔型
    • is_buffer — Finds whether a variable is a native unicode or binary string
    • is_callable — 检测参数是否为合法的可调用结构
    • is_double — is_float 的别名
    • is_float — 检测变量是否是浮点型
    • is_int — 检测变量是否是整数
    • is_integer — is_int 的别名
    • is_long — is_int 的别名
    • is_null — 检测变量是否为 NULL
    • is_numeric — 检测变量是否为数字或数字字符串
    • is_object — 检测变量是否是一个对象
    • is_real — is_float 的别名
    • is_resource — 检测变量是否为资源类型
    • is_scalar — 检测变量是否是一个标量
    • is_string — 检测变量是否是字符串
    • is_unicode — Finds whether a variable is a unicode string
    • isset — 检测变量是否设置
    • print_r — 打印关于变量的易于理解的信息。
    • serialize — 产生一个可存储的值的表示
    • settype — 设置变量的类型
    • strval — 获取变量的字符串值
    • unserialize — 从已存储的表示中创建 PHP 的值
    • unset — 释放给定的变量
    • var_dump — 打印变量的相关信息
    • var_export — 输出或返回一个变量的字符串表示
deaggregate
简介
与变量和类型有关的扩展


简介

For information on how variables behave, see the Variables entry in the Language Reference section of the manual.

Variable handling
安装/配置
Variable handling


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Variable handling


运行时配置

这些函数的行为受 php.ini 的影响。

变量配置选项
名称 | 默认值 | 可修改范围 | 更新记录
unserialize_callback_func | NULL | PHP_INI_ALL | 自 PHP 4.2.0 起可用。

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

unserialize_callback_func string

如果解串行器发现有未定义类要被实例化，将会调用 unserialize() 回调函数（用该未定义类名作为参数）。如果指定函数不存在，或者此函数没有包含／实现该未定义类，则显示警告。所以仅在确实需要实现这样的回调函数时才设置该选项。

参见 unserialize()。

安装
资源类型
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
Variable handling 函数
Variable handling


Variable handling 函数

Table of Contents

  • debug_zval_dump — Dumps a string representation of an internal zend value to output
  • doubleval — floatval 的别名
  • empty — 检查一个变量是否为空
  • floatval — 获取变量的浮点值
  • get_defined_vars — 返回由所有已定义变量所组成的数组
  • get_resource_type — 返回资源（resource）类型
  • gettype — 获取变量的类型
  • import_request_variables — 将 GET／POST／Cookie 变量导入到全局作用域中
  • intval — 获取变量的整数值
  • is_array — 检测变量是否是数组
  • is_binary — Finds whether a variable is a native binary string
  • is_bool — 检测变量是否是布尔型
  • is_buffer — Finds whether a variable is a native unicode or binary string
  • is_callable — 检测参数是否为合法的可调用结构
  • is_double — is_float 的别名
  • is_float — 检测变量是否是浮点型
  • is_int — 检测变量是否是整数
  • is_integer — is_int 的别名
  • is_long — is_int 的别名
  • is_null — 检测变量是否为 NULL
  • is_numeric — 检测变量是否为数字或数字字符串
  • is_object — 检测变量是否是一个对象
  • is_real — is_float 的别名
  • is_resource — 检测变量是否为资源类型
  • is_scalar — 检测变量是否是一个标量
  • is_string — 检测变量是否是字符串
  • is_unicode — Finds whether a variable is a unicode string
  • isset — 检测变量是否设置
  • print_r — 打印关于变量的易于理解的信息。
  • serialize — 产生一个可存储的值的表示
  • settype — 设置变量的类型
  • strval — 获取变量的字符串值
  • unserialize — 从已存储的表示中创建 PHP 的值
  • unset — 释放给定的变量
  • var_dump — 打印变量的相关信息
  • var_export — 输出或返回一个变量的字符串表示
预定义常量
debug_zval_dump
Variable handling


Dumps a string representation of an internal zend value to output

Variable handling 函数
doubleval
Variable handling 函数
PHP 手册

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5)

debug_zval_dump — Dumps a string representation of an internal zend value to output

说明

void debug_zval_dump ( mixed $variable )

Dumps a string representation of an internal zend value to output.

参数

variable

The variable being evaluated.

返回值

无返回值。

范例

Example #1 debug_zval_dump() example

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

上例将输出：

&string(11) "Hello World" refcount(3)

Note: Beware the refcount
The refcount value returned by this function is non-obvious in certain circumstances. For example, a developer might expect the above example to indicate a refcount of 2. The third reference is created when actually calling debug_zval_dump().
This behavior is further compounded when a variable is not passed to debug_zval_dump() by reference. To illustrate, consider a slightly modified version of the above example:

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // not passed by reference, this time
?>

上例将输出：

string(11) "Hello World" refcount(1)

Why refcount(1)? Because a copy of $var1 is being made, when the function is called.
This function becomes even more confusing when a variable with a refcount of 1 is passed (by copy/value):

<?php
$var1 = 'Hello World';

debug_zval_dump($var1);
?>

上例将输出：

string(11) "Hello World" refcount(2)

A refcount of 2, here, is extremely non-obvious. Especially considering the above examples. So what's happening?
When a variable has a single reference (as did $var1 before it was used as an argument to debug_zval_dump()), PHP's engine optimizes the manner in which it is passed to a function. Internally, PHP treats $var1 like a reference (in that the refcount is increased for the scope of this function), with the caveat that if the passed reference happens to be written to, a copy is made, but only at the moment of writing. This is known as "copy on write."
So, if debug_zval_dump() happened to write to its sole parameter (and it doesn't), then a copy would be made. Until then, the parameter remains a reference, causing the refcount to be incremented to 2 for the scope of the function call.

参见

  • var_dump() - 打印变量的相关信息
  • debug_backtrace() - Generates a backtrace
  • References Explained
  • » References Explained (by Derick Rethans)

Variable handling 函数
doubleval
Variable handling 函数


floatval 的别名

debug_zval_dump
empty
Variable handling 函数
PHP 手册

doubleval

(PHP 4, PHP 5)

doubleval — floatval() 的别名

描述

此函数是 floatval() 的别名。

Note: 此别名是函数改名之后的遗留问题。在 PHP 旧的版本中由于还没有 floatval() 函数，所以你可能需要用到这个 floatval() 的别名函数。

debug_zval_dump
empty
Variable handling 函数


检查一个变量是否为空

doubleval
floatval
Variable handling 函数
PHP 手册

empty

(PHP 4, PHP 5)

empty — 检查一个变量是否为空

描述

bool empty ( mixed $var )

如果 var 是非空或非零的值，则 empty() 返回 FALSE。换句话说，""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的，如果 var 为空，则返回 TRUE。

除了当变量没有置值时不产生警告之外，empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。

Example #1 empty() 与 isset() 的一个简单比较。

<?php
$var = 0;

// 结果为 true，因为 $var 为空
if (empty($var)) {
    echo '$var is either 0 or not set at all';
}

// 结果为 false，因为 $var 已设置
if (!isset($var)) {
    echo '$var is not set at all';
}
?>

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

Note: empty() 只检测变量，检测任何非变量的东西都将导致解析错误。换句话说，后边的语句将不会起作用： empty(addslashes($name))。

参见 isset()、unset()、array_key_exists()、count() 和 strlen()。

doubleval
floatval
Variable handling 函数


获取变量的浮点值

empty
get_defined_vars
Variable handling 函数
PHP 手册

floatval

(PHP 4 >= 4.2.0, PHP 5)

floatval — 获取变量的浮点值

描述

float floatval ( mixed $var )

返回变量 var 的 float 数值。

var 可以是任何标量类型。你不能将 floatval() 用于数组或对象。

<?php
$var = '122.34343The';
$float_value_of_var = floatval ($var);
print $float_value_of_var; // 打印出 122.34343
?>

参见 intval()、strval()、settype() 和 类型戏法。

empty
get_defined_vars
Variable handling 函数


返回由所有已定义变量所组成的数组

floatval
get_resource_type
Variable handling 函数
PHP 手册

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars — 返回由所有已定义变量所组成的数组

描述

array get_defined_vars ( void )

此函数返回一个包含所有已定义变量列表的多维数组，这些变量包括环境变量、服务器变量和用户定义的变量。

<?php
$b = array(1,1,2,3,5,8);

$arr = get_defined_vars();

// 打印 $b
print_r($arr["b"]);

// 打印 PHP 解释程序的路径（如果 PHP 作为 CGI 使用的话）
// 例如：/usr/local/bin/php
echo $arr["_"];

// 打印命令行参数（如果有的话）
print_r($arr["argv"]);

// 打印所有服务器变量
print_r($arr["_SERVER"]);

// 打印变量数组的所有可用键值
print_r(array_keys(get_defined_vars()));
?>

参见 get_defined_functions() 和 get_defined_constants()。

floatval
get_resource_type
Variable handling 函数


返回资源（resource）类型

get_defined_vars
gettype
Variable handling 函数
PHP 手册

get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type — 返回资源（resource）类型

描述

string get_resource_type ( resource $handle )

此函数返回一个字符串，用于表示传递给它的 resource 的类型。如果参数不是合法的 resource，将产生错误。

<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印：mysql link

$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印：file

$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印：domxml document
?>

get_defined_vars
gettype
Variable handling 函数


获取变量的类型

get_resource_type
import_request_variables
Variable handling 函数
PHP 手册

gettype

(PHP 4, PHP 5)

gettype — 获取变量的类型

描述

string gettype ( mixed $var )

返回 PHP 变量的类型 var .

Warning

不要使用 gettype() 来测试某种类型，因为其返回的字符串在未来的版本中可能需要改变。此外，由于包含了字符串的比较，它的运行也是较慢的。

使用 is_* 函数代替。

返回的字符串的可能值为：

  • “boolean”（从 PHP 4 起）
  • “integer”
  • “double”（由于历史原因，如果是 float 则返回“double”，而不是“float”）
  • “string”
  • “array”
  • “object”
  • “resource”（从 PHP 4 起）
  • “NULL”（从 PHP 4 起）
  • “user function”（只用于 PHP 3，现已停用）
  • “unknown type”

对于 PHP 4，你应该使用 function_exists()
和 method_exists()
取代先前将 gettype()
作用于函数的用法。

参见 settype()、is_array()、is_bool()、is_float()、is_integer()、is_null()、is_numeric()、is_object()、is_resource()、is_scalar() 和 is_string()。

get_resource_type
import_request_variables
Variable handling 函数


将 GET／POST／Cookie 变量导入到全局作用域中

gettype
intval
Variable handling 函数
PHP 手册

import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables — 将 GET／POST／Cookie 变量导入到全局作用域中

描述

bool import_request_variables ( string $types [, string $prefix ] )

将 GET／POST／Cookie 变量导入到全局作用域中。如果你禁止了 register_globals，但又想用到一些全局变量，那么此函数就很有用。

你可以使用 types 参数指定需要导入的变量。可以用字母‘G’、‘P’和‘C’分别表示 GET、POST 和 Cookie。这些字母不区分大小写，所以你可以使用‘g’、‘p’和‘c’的任何组合。POST 包含了通过 POST 方法上传的文件信息。注意这些字母的顺序，当使用“gp”时，POST 变量将使用相同的名字覆盖 GET 变量。任何 GPC 以外的字母都将被忽略。

prefix 参数作为变量名的前缀，置于所有被导入到全局作用域的变量之前。所以如果你有个名为“userid”的 GET 变量，同时提供了“pref_”作为前缀，那么你将获得一个名为 $pref_userid 的全局变量。

如果你对导入其它全局变量（例如 SERVER 变量）感兴趣，请考虑使用 extract()。

Note: 虽然 prefix 参数是可选的，但如果不指定前缀，或者指定一个空字符串作为前缀，你将获得一个 E_NOTICE 级别的错误。使用默认错误报告级别是不显示注意（Notice）级别的错误的。

<?php
// 此处将导入 GET 和 POST 变量
// 使用“rvar_”作为前缀
import_request_variables("gP", "rvar_");

echo $rvar_foo;
?>

参见 $_REQUEST、register_globals、预定义变量 和 extract()。

gettype
intval
Variable handling 函数


获取变量的整数值

import_request_variables
is_array
Variable handling 函数
PHP 手册

intval

(PHP 4, PHP 5)

intval — 获取变量的整数值

描述

int intval ( mixed $var [, int $base ] )

通过使用特定的进制转换（默认是十进制），返回变量 var 的 integer 数值。

var 可以是任何标量类型。intval() 不能用于 array 或 object。

Note: 除非 var 参数是字符串，否则 intval() 的 base 参数不会有效果。

参见 floatval()、strval()、settype() 和 类型戏法。

import_request_variables
is_array
Variable handling 函数


检测变量是否是数组

intval
is_binary
Variable handling 函数
PHP 手册

is_array

(PHP 4, PHP 5)

is_array — 检测变量是否是数组

描述

bool is_array ( mixed $var )

如果 var 是 array，则返回 TRUE，否则返回 FALSE。

参见 is_float()、is_int()、is_integer()、is_string() 和 is_object()。

intval
is_binary
Variable handling 函数


Finds whether a variable is a native binary string

is_array
is_bool
Variable handling 函数
PHP 手册

is_binary

(PHP 6 >= 6.0.0)

is_binary — Finds whether a variable is a native binary string

说明

bool is_binary ( mixed $var )

Finds whether the given variable is a native binary string.

参数

var

The variable being evaluated.

返回值

Returns TRUE if var is a native binary string, FALSE otherwise.

范例

Example #1 is_binary() example

<?php
// Declare a unicode string
$unicode = 'This is a unicode string';

// Declare a binary string using the 'b' prefix
// available as of PHP 5.2.1, but it will only have
// effect as of PHP 6.0.0
$binary = b'This is a binary string';

var_dump(is_binary($unicode), is_binary($binary));
?>

上例将输出：

bool(false)
bool(true)

参见

  • is_buffer() - Finds whether a variable is a native unicode or binary string
  • is_string() - 检测变量是否是字符串
  • is_unicode() - Finds whether a variable is a unicode string

is_array
is_bool
Variable handling 函数


检测变量是否是布尔型

is_binary
is_buffer
Variable handling 函数
PHP 手册

is_bool

(PHP 4, PHP 5)

is_bool — 检测变量是否是布尔型

描述

bool is_bool ( mixed $var )

如果 var 是 boolean 则返回 TRUE。

Example #1 is_bool() 示例

<?php
$a = false;
$b = 0;

// 因为 $a 是布尔型，所以结果为真
if (is_bool($a)) {
    print "Yes, this is a boolean";
}

// 因为 $b 不是布尔型，所以结果为非真
if (is_bool($b)) {
    print "Yes, this is a boolean";
}
?>

参见 is_array()、is_float()、is_int()、is_integer()、is_string() 和 is_object()。

is_binary
is_buffer
Variable handling 函数


Finds whether a variable is a native unicode or binary string

is_bool
is_callable
Variable handling 函数
PHP 手册

is_buffer

(PHP 6 >= 6.0.0)

is_buffer — Finds whether a variable is a native unicode or binary string

说明

bool is_buffer ( mixed $var )

Finds whether the given variable is a native unicode or binary string.

参数

var

The variable being evaluated.

返回值

Returns TRUE if var is a native unicode or binary string, FALSE otherwise.

范例

Example #1 is_buffer() example

<?php
// Declare some variables with different types
$types = array(
            'unicode'    => 'Unicode string',
            'binary'    => b'Binary string',
            'resource'    => fopen('php://stdin', 'r'),
            'integer'    => 42
            );

// Test which types thats a buffer
foreach($types as $type => $value)
{
    if(is_buffer($value))
    {
        echo $type . ' is a either a unicode or binary string';
    }
    else
    {
        echo $type . ' is not a buffer value';
    }

    echo PHP_EOL;
}
?>

上例将输出：

unicode is a either a unicode or binary string
binary is a either a unicode or binary string
resource is not a buffer value
integer is not a buffer value

参见

  • is_binary() - Finds whether a variable is a native binary string
  • is_string() - 检测变量是否是字符串
  • is_unicode() - Finds whether a variable is a unicode string

is_bool
is_callable
Variable handling 函数


检测参数是否为合法的可调用结构

is_buffer
is_double
Variable handling 函数
PHP 手册

is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable — 检测参数是否为合法的可调用结构

描述

bool is_callable ( mixed $var [, bool $syntax_only [, string $callable_name ]] )

Warning

本函数暂无文档，仅有参数列表。

is_buffer
is_double
Variable handling 函数


is_float 的别名

is_callable
is_float
Variable handling 函数
PHP 手册

is_double

(PHP 4, PHP 5)

is_double — is_float() 的别名

描述

此函数是 is_float() 的别名函数。

is_callable
is_float
Variable handling 函数


检测变量是否是浮点型

is_double
is_int
Variable handling 函数
PHP 手册

is_float

(PHP 4, PHP 5)

is_float — 检测变量是否是浮点型

描述

bool is_float ( mixed $var )

如果 var 是 float 则返回 TRUE，否则返回 FALSE。

Note: 若想测试一个变量是否是数字或数字字符串（如表单输入，它们通常为字符串），必须使用 is_numeric()。

参见 is_bool()、is_int()、is_integer()、is_numeric()、is_string()、is_array() 和 is_object()。

is_double
is_int
Variable handling 函数


检测变量是否是整数

is_float
is_integer
Variable handling 函数
PHP 手册

is_int

(PHP 4, PHP 5)

is_int — 检测变量是否是整数

描述

bool is_int ( mixed $var )

如果 var 是 integer 则返回 TRUE，否则返回 FALSE。

Note: 若想测试一个变量是否是数字或数字字符串（如表单输入，它们通常为字符串），必须使用 is_numeric()。

参见 is_bool()、is_float()、is_integer()、is_numeric()、is_string()、is_array() 和 is_object()。

is_float
is_integer
Variable handling 函数


is_int 的别名

is_int
is_long
Variable handling 函数
PHP 手册

is_integer

(PHP 4, PHP 5)

is_integer — is_int() 的别名

描述

此函数是 is_int() 的别名函数。

is_int
is_long
Variable handling 函数


is_int 的别名

is_integer
is_null
Variable handling 函数
PHP 手册

is_long

(PHP 4, PHP 5)

is_long — is_int() 的别名

描述

此函数是 is_int() 的别名函数。

is_integer
is_null
Variable handling 函数


检测变量是否为 NULL

is_long
is_numeric
Variable handling 函数
PHP 手册

is_null

(PHP 4 >= 4.0.4, PHP 5)

is_null — 检测变量是否为 NULL

描述

bool is_null ( mixed $var )

如果 var 是 null 则返回 TRUE，否则返回 FALSE。

查看 NULL 类型获知变量什么时候被认为是 NULL，而什么时候不是。

参见 NULL、is_bool()、is_numeric()、is_float()、is_int()、is_string()、is_object()、is_array()、is_integer() 和 is_real()。

is_long
is_numeric
Variable handling 函数


检测变量是否为数字或数字字符串

is_null
is_object
Variable handling 函数
PHP 手册

is_numeric

(PHP 4, PHP 5)

is_numeric — 检测变量是否为数字或数字字符串

描述

bool is_numeric ( mixed $var )

如果 var 是数字和数字字符串则返回 TRUE，否则返回 FALSE。

参见 is_bool()、is_float()、is_int()、is_string()、is_object()、is_array() 和 is_integer()。

is_null
is_object
Variable handling 函数


检测变量是否是一个对象

is_numeric
is_real
Variable handling 函数
PHP 手册

is_object

(PHP 4, PHP 5)

is_object — 检测变量是否是一个对象

描述

bool is_object ( mixed $var )

如果 var 是一个 object 则返回 TRUE，否则返回 FALSE。

参见 is_bool()、is_int()、is_integer()、is_float()、is_string() 和 is_array()。

is_numeric
is_real
Variable handling 函数


is_float 的别名

is_object
is_resource
Variable handling 函数
PHP 手册

is_real

(PHP 4, PHP 5)

is_real — is_float() 的别名

描述

此函数是 is_float() 的别名函数。

is_object
is_resource
Variable handling 函数


检测变量是否为资源类型

is_real
is_scalar
Variable handling 函数
PHP 手册

is_resource

(PHP 4, PHP 5)

is_resource — 检测变量是否为资源类型

描述

bool is_resource ( mixed $var )

如果给出的参数 var 是 resource 类型，is_resource() 返回 TRUE，否则返回 FALSE。

查看 resource 类型文档获取更多的信息。

is_real
is_scalar
Variable handling 函数


检测变量是否是一个标量

is_resource
is_string
Variable handling 函数
PHP 手册

is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar — 检测变量是否是一个标量

描述

bool is_scalar ( mixed $var )

如果给出的变量参数 var 是一个标量，is_scalar() 返回 TRUE，否则返回 FALSE。

标量变量是指那些包含了 integer、float、string 或 boolean的变量，而 array、object 和 resource 则不是标量。

<?php
function show_var($var) {
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
// 打印：3.1416

show_var($proteins)
// 打印：
// array(3) {
//   [0]=>
//   string(10) "hemoglobin"
//   [1]=>
//   string(20) "cytochrome c oxidase"
//   [2]=>
//   string(10) "ferredoxin"
// }
?>

Note: 尽管当前的 resource 类型是居于整数的，但 is_scalar() 不会把它们当作是标量，因为资源是抽象数据类型。不能依赖于执行细节，因为它可能会改变。

参见 is_bool()、is_numeric()、is_float()、is_int()、is_real()、is_string()、is_object()、is_array() 和 is_integer()。

is_resource
is_string
Variable handling 函数


检测变量是否是字符串

is_scalar
is_unicode
Variable handling 函数
PHP 手册

is_string

(PHP 4, PHP 5)

is_string — 检测变量是否是字符串

描述

bool is_string ( mixed $var )

如果 var 是 string 则返回 TRUE，否则返回 FALSE。

参见 is_bool()、is_int()、is_integer()、is_float()、is_real()、is_object() 和 is_array()。

is_scalar
is_unicode
Variable handling 函数


Finds whether a variable is a unicode string

is_string
isset
Variable handling 函数
PHP 手册

is_unicode

(PHP 6 >= 6.0.0)

is_unicode — Finds whether a variable is a unicode string

说明

bool is_unicode ( mixed $var )

Finds whether the given variable is a unicode string.

参数

var

The variable being evaluated.

返回值

Returns TRUE if var is a unicode string, FALSE otherwise.

范例

Example #1 is_unicode() example

<?php
// Declare a unicode string
$unicode = 'This is a unicode string';

// Declare a binary string
$binary = b'This is a binary string';

var_dump(is_unicode($unicode), is_unicode($binary));
?>

上例将输出：

bool(true)
bool(false)

参见

  • is_binary() - Finds whether a variable is a native binary string
  • is_buffer() - Finds whether a variable is a native unicode or binary string
  • is_string() - 检测变量是否是字符串
  • unicode_encode() - Convert a unicode string in any encoding

is_string
isset
Variable handling 函数


检测变量是否设置

is_unicode
print_r
Variable handling 函数
PHP 手册

isset

(PHP 4, PHP 5)

isset — 检测变量是否设置

描述

bool isset ( mixed $var [, mixed $var [, $... ]] )

如果 var 存在则返回 TRUE，否则返回 FALSE。

如果已经使用 unset() 释放了一个变量之后，它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量，将返回 FALSE。同时要注意的是一个 NULL 字节（"\0"）并不等同于 PHP 的 NULL 常数。

Note: 警告
isset() 只能用于变量，因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置，可使用 defined() 函数。

<?php

$var = '';

// 结果为 TRUE，所以后边的文本将被打印出来。
if (isset($var)) {
    print "This var is set set so I will print.";
}

// 在后边的例子中，我们将使用 var_dump 输出 isset() 的返回值。

$a = "test";
$b = "anothertest";

var_dump( isset($a) );      // TRUE
var_dump( isset ($a, $b) ); // TRUE

unset ($a);

var_dump( isset ($a) );     // FALSE
var_dump( isset ($a, $b) ); // FALSE

$foo = NULL;
var_dump( isset ($foo) );   // FALSE

?>

这对于数组中的元素也同样有效：

<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump( isset ($a['test']) );            // TRUE
var_dump( isset ($a['foo']) );             // FALSE
var_dump( isset ($a['hello']) );           // FALSE

// 键 'hello' 的值等于 NULL，所以被认为是未置值的。
// 如果想检测 NULL 键值，可以试试下边的方法。
var_dump( array_key_exists('hello', $a) ); // TRUE

?>

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

参见 empty()、unset()、defined()、array_key_exists() 和错误控制 @ 运算符。

is_unicode
print_r
Variable handling 函数


打印关于变量的易于理解的信息。

isset
serialize
Variable handling 函数
PHP 手册

print_r

(PHP 4, PHP 5)

print_r — 打印关于变量的易于理解的信息。

描述

bool print_r ( mixed $expression [, bool $return ] )

Note: 参数 return 是在 PHP 4.3.0 的时候加上的

print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float，将打印变量值本身。如果给出的是 array，将会按照一定格式显示键和元素。object 与数组类似。

记住，print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

<pre>
<?php
    $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
    print_r ($a);
?>
</pre>

上边的代码将输出：

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

如果想捕捉 print_r() 的输出，可使用 return 参数。若此参数设为 TRUE，print_r() 将不打印结果（此为默认动作），而是返回其输出。

Example #1 return 参数示例

<?php
    $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
    $results = print_r ($b, true); //$results 包含了 print_r 的输出结果
?>

Note: 如果想在 PHP 4.3.0 之前的版本中捕捉 print_r() 的输出，可使用输出控制函数。

Note: 在 PHP 4.0.4 之前的版本中，如果给出的 array 或 object 包含了直接或间接指向自身的引用，print_r() 将永远继续下去。print_r($GLOBALS) 就是一个例子，因为 $GLOBALS 自身即是全局变量，其包含了指向自身的引用。

参见 ob_start()、var_dump() 和 var_export()。

isset
serialize
Variable handling 函数


产生一个可存储的值的表示

print_r
settype
Variable handling 函数
PHP 手册

serialize

(PHP 4, PHP 5)

serialize — 产生一个可存储的值的表示

描述

string serialize ( mixed $value )

serialize() 返回字符串，此字符串包含了表示 value 的字节流，可以存储于任何地方。

这有利于存储或传递 PHP 的值，同时不丢失其类型和结构。

想要将已序列化的字符串变回 PHP 的值，可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组／对象中的引用也将被存储。

当序列化对象时，PHP 将试图在序列动作之前调用该对象的成员函数
__sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的，当使用
unserialize() 恢复对象时， 将调用
__wakeup() 成员函数。

Note: 在 PHP 3 中，对象属性将被序列化，但是方法则会丢失。PHP 4 打破了此限制，可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。

Example #1 serialize() 示例

<?php
// $session_data 是包含了当前用户 session 信息的多维数组。
// 我们使用 serialize() 在请求结束之前将其存储到数据库中。

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
    /* 出错 */
    }
}
?>

参见：unserialize()。

print_r
settype
Variable handling 函数


设置变量的类型

serialize
strval
Variable handling 函数
PHP 手册

settype

(PHP 4, PHP 5)

settype — 设置变量的类型

描述

bool settype ( mixed $var , string $type )

将变量 var 的类型设置成 type 。

type 的可能值为：

  • “boolean” （或为“bool”，从 PHP 4.2.0 起）
  • “integer” （或为“int”，从 PHP 4.2.0 起）
  • “float” （只在 PHP 4.2.0 之后可以使用，对于旧版本中使用的“double”现已停用）
  • “string”
  • “array”
  • “object”
  • “null” （从 PHP 4.2.0 起）

如果成功则返回 TRUE，失败则返回 FALSE。

Example #1 settype() 示例

<?php
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo 现在是 5   (integer)
settype($bar, "string");  // $bar 现在是 "1" (string)
?>

参见 gettype()、类型转换和类型戏法。

serialize
strval
Variable handling 函数


获取变量的字符串值

settype
unserialize
Variable handling 函数
PHP 手册

strval

(PHP 4, PHP 5)

strval — 获取变量的字符串值

描述

string strval ( mixed $var )

返回 var 的 string 值。 参见 string 文档获取更多关于字符串转换的信息。

var 可以是任何标量类型。不能将 strval() 用于数组或对象。

参见 floatval()、intval()、settype() 和类型戏法。

settype
unserialize
Variable handling 函数


从已存储的表示中创建 PHP 的值

strval
unset
Variable handling 函数
PHP 手册

unserialize

(PHP 4, PHP 5)

unserialize — 从已存储的表示中创建 PHP 的值

描述

mixed unserialize ( string $str [, string $callback ] )

unserialize() 对单一的已序列化的变量进行操作，将其转换回 PHP 的值。返回的是转换之后的值，可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化，则返回 FALSE。

Note: unserialize_callback_func 指令
如果在解序列化的时候需要实例化一个未定义类，则可以设置回调函数以供调用（以免得到的是不完整的 object “__PHP_Incomplete_Class”）。可通过 php.ini、ini_set() 或 .htaccess 定义‘unserialize_callback_func’。每次实例化一个未定义类时它都会被调用。若要禁止这个特性，只需置空此设定。还需要注意的是 unserialize_callback_func 指令是从 PHP 4.2.0 开始提供使用的。

Note: callback 参数是在 PHP 4.2.0 中添加的

若被解序列化的变量是一个对象，在成功地重新构造对象之后，PHP 会自动地试图去调用 __wakeup() 成员函数（如果存在的话）。

Example #1 unserialize_callback_func 示例

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func 从 PHP 4.2.0 起可用
ini_set('unserialize_callback_func','mycallback'); // 设置您的回调函数

function mycallback($classname) {
    // 只需包含含有类定义的文件
    // $classname 指出需要的是哪一个类
}
?>

Note: 在 PHP 3 中，解序列化一个对象时是不保存方法的。而 PHP 4 打破了这个限制，同时保存了属性和方法。请参见类与对象中的序列化对象部分获取更多信息。

Example #2 unserialize() 示例

<?php
// 这里，我们使用 unserialize() 装载来自数据库的 $session_data 数组中的会话数据。
// 此例是描述 serialize() 的那个例子的补充。

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
    // 如果执行出错或返回错误，则初始化为空数组
    $session_data = array();
} else {
    // 现在我们需要的是 $tmp[0] 中已序列化的数据。
    $session_data = unserialize ($tmp[0]);
    if (!is_array ($session_data)) {
        // 出错，初始化为空数组
        $session_data = array();
    }
}
?>

参见 serialize()。

strval
unset
Variable handling 函数


释放给定的变量

unserialize
var_dump
Variable handling 函数
PHP 手册

unset

(PHP 4, PHP 5)

unset — 释放给定的变量

描述

void unset ( mixed $var [, mixed $var [, $... ]] )

unset() 销毁指定的变量。注意在 PHP 3 中，unset() 将返回 TRUE（实际上是整型值 1），而在 PHP 4 中，unset() 不再是一个真正的函数：它现在是一个语句。这样就没有了返回值，试图获取 unset() 的返回值将导致解析错误。

Example #1 unset() 示例

<?php
// 销毁单个变量
unset ($foo);

// 销毁单个数组元素
unset ($bar['quux']);

// 销毁一个以上的变量
unset ($foo1, $foo2, $foo3);
?>

unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

如果在函数中 unset() 一个全局变量，则只是局部变量被销毁，而在调用环境中的变量将保持调用 unset() 之前一样的值。

<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

上边的例子将输出：

bar

如果在函数中 unset() 一个通过引用传递的变量，则只是局部变量被销毁，而在调用环境中的变量将保持调用 unset() 之前一样的值。

<?php
function foo(&$bar) {
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

上边的例子将输出：

something
something

如果在函数中 unset() 一个静态变量，则 unset() 将销毁此变量及其所有的引用。

<?php
function foo() {
    static $a;
    $a++;
    echo "$a\n";
    unset($a);
}

foo();
foo();
foo();
?>

上边的例子将输出：

1
2
3

如果您想在函数中 unset() 一个全局变量，可使用 $GLOBALS 数组来实现：

<?php
function foo() {
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Note: 由于这是一个语言结构而非函数，因此它无法被变量函数调用。

参见 isset() 和 empty()。

unserialize
var_dump
Variable handling 函数


打印变量的相关信息

unset
var_export
Variable handling 函数
PHP 手册

var_dump

(PHP 4, PHP 5)

var_dump — 打印变量的相关信息

描述

void var_dump ( mixed $expression [, mixed $expression [, $... ]] )

此函数显示关于一个或多个表达式的结构信息，包括表达式的类型与值。数组将递归展开值，通过缩进显示其结构。

Tip

为了防止程序直接将结果输出到浏览器，可以使用输出控制函数来捕获此函数的输出，并把它们保存到一个例如 string 类型的变量中。

可以比较一下 var_dump() 与 print_r()。

Example #1 var_dump() 示例

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);

/* 输出：
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

*/

$b = 3.1;
$c = TRUE;
var_dump($b,$c);

/* 输出：
float(3.1)
bool(true)

*/
?>
</pre>

unset
var_export
Variable handling 函数


输出或返回一个变量的字符串表示

var_dump
Web Services
Variable handling 函数
PHP 手册

var_export

(PHP 4 >= 4.2.0, PHP 5)

var_export — 输出或返回一个变量的字符串表示

描述

mixed var_export ( mixed $expression [, bool $return ] )

此函数返回关于传递给该函数的变量的结构信息，它和 var_dump() 类似，不同的是其返回的表示是合法的 PHP 代码。

您可以通过将函数的第二个参数设置为 TRUE，从而返回变量的表示。

比较 var_export() 和 var_dump().

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export ($a);

/* 输出：
array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
*/

$b = 3.1;
$v = var_export($b, TRUE);
echo $v;

/* 输出：
3.1
*/
?>
</pre>

var_dump
Web Services
Variable handling 函数


Web Services

  • OAuth
    • 简介
    • 安装/配置
    • 预定义常量
    • OAuth 函数
    • OAuth — The OAuth class
    • OAuthException — OAuthException class
  • SCA
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • SCA 函数
  • SOAP
    • 简介
    • 安装/配置
    • 预定义常量
    • SOAP 函数
  • XML-RPC
    • 简介
    • 安装/配置
    • 预定义常量
    • XML-RPC 函数
var_export
OAuth
函数参考


OAuth

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • OAuth 函数
    • oauth_urlencode — Encode a URI to RFC3686
  • OAuth — The OAuth class
    • OAuth::__construct — Create a new OAuth object
    • OAuth::fetch — Fetch an OAuth protected resource
    • OAuth::getAccessToken — The getAccessToken purpose
    • OAuth::getLastResponse — Get the last response
    • OAuth::getLastResponseInfo — Get HTTP information about the last response
    • OAuth::getRequestToken — Fetch a request token
    • OAuth::setAuthType — The setAuthType purpose
    • OAuth::setNonce — Set the nonce for subsequent requests
    • OAuth::setToken — Sets the token and secret
    • OAuth::setVersion — Set the OAuth version
  • OAuthException — OAuthException class
Web Services
简介
Web Services


简介

This extension provides OAuth consumer bindings. OAuth is an authorization protocol built on top of HTTP which allows applications to securely access data without having to store usernames and passwords.

OAuth
安装/配置
OAuth


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
OAuth


需求

PECL/oauth requires PHP 5.1 or newer, ext/hash and libcurl with HTTPS support.

安装/配置
安装
安装/配置


安装

安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pear.php.net/package/oauth

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

OAUTH_SIG_METHOD_HMACSHA1 (string)

OAuth HMAC-SHA1 signature method

OAUTH_AUTH_TYPE_AUTHORIZATION (string)

This constant represents putting OAuth parameters in the Authorization header.

OAUTH_AUTH_TYPE_URI (string)

This constant represents putting OAuth parameters in the request URI.

OAUTH_AUTH_TYPE_FORM (string)

This constant represents putting OAuth parameters as part of the HTTP POST body.

资源类型
OAuth 函数
OAuth


OAuth 函数

Table of Contents

  • oauth_urlencode — Encode a URI to RFC3686
预定义常量
oauth_urlencode
OAuth


Encode a URI to RFC3686

OAuth 函数
OAuth
OAuth 函数
PHP 手册

oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencode — Encode a URI to RFC3686

说明

string oauth_urlencode ( string $uri )

Encodes a URI to » RFC3686.

参数

uri

URI to encode.

返回值

Returns an » RFC3686 encoded string.

OAuth 函数
OAuth
OAuth 函数


The OAuth class

简介

The OAuth extension provides a simple interface to interact with data providers using the OAuth HTTP specification to protect private resources.

Class synopsis

OAuth
OAuth {
/* Methods */
__construct ( string $consumer_key , string $consumer_secret [, string $signature_method [, string $auth_type ]] )
public bool fetch ( string $protected_resource_url [, array &$extra_parameters ] )
public array getAccessToken ( string $access_token_url [, string $auth_session_handle ] )
public string getLastResponse ( void )
public array getLastResponseInfo ( void )
public array getRequestToken ( string $request_token_url )
public bool setAuthType ( string $auth_type )
public bool setNonce ( string $nonce )
public bool setToken ( string $token , string $token_secret )
public bool setVersion ( string $version )
}

Table of Contents

  • OAuth::__construct — Create a new OAuth object
  • OAuth::fetch — Fetch an OAuth protected resource
  • OAuth::getAccessToken — The getAccessToken purpose
  • OAuth::getLastResponse — Get the last response
  • OAuth::getLastResponseInfo — Get HTTP information about the last response
  • OAuth::getRequestToken — Fetch a request token
  • OAuth::setAuthType — The setAuthType purpose
  • OAuth::setNonce — Set the nonce for subsequent requests
  • OAuth::setToken — Sets the token and secret
  • OAuth::setVersion — Set the OAuth version
oauth_urlencode
OAuth::__construct
OAuth


Create a new OAuth object

OAuth
OAuth::fetch
OAuth
PHP 手册

OAuth::__construct

(PECL OAuth >= 0.99.1)

OAuth::__construct — Create a new OAuth object

说明

OAuth::__construct ( string $consumer_key , string $consumer_secret [, string $signature_method [, string $auth_type ]] )

Creates a new OAuth object

参数

consumer_key

The consumer key provided by the service provider.

consumer_secret

The consumer secret provided by the service provider.

signature_method

This optional parameter defines which signature method to use, by default it is OAUTH_SIG_METHOD_HMACSHA1 (HMAC-SHA1).

auth_type

This optional parameter defines how to pass the OAuth parameters to a consumer, by default it is OAUTH_AUTH_TYPE_AUTHORIZATION (in the Authorization header).

OAuth
OAuth::fetch
OAuth


Fetch an OAuth protected resource

OAuth::__construct
OAuth::getAccessToken
OAuth
PHP 手册

OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetch — Fetch an OAuth protected resource

说明

public bool OAuth::fetch ( string $protected_resource_url [, array &$extra_parameters ] )

Fetch a resource protected by OAuth.

参数

protected_resource_url

URL to the OAuth protected resource.

extra_parameters

Extra parameters to send with the request for the resource.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 OAuth::fetch() example

<?php
try {
    $oauth = new OAuth("consumer_key","consumer_secret",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setToken("access_token","access_token_secret");

    $oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

    $response_info = $oauth->getLastResponseInfo();
    header("Content-Type: {$response_info["content_type"]}");
    echo $oauth->getLastResponse();
} catch(OAuthException $E) {
    echo "Exception caught!\n";
    echo "Response: ". $E->lastResponse . "\n";
}
?>

参见

  • OAuth::getLastResponse - Get the last response
  • OAuth::getLastResponseInfo - Get HTTP information about the last response
  • OAuth::setToken - Sets the token and secret

OAuth::__construct
OAuth::getAccessToken
OAuth


The getAccessToken purpose

OAuth::fetch
OAuth::getLastResponse
OAuth
PHP 手册

OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessToken — The getAccessToken purpose

说明

public array OAuth::getAccessToken ( string $access_token_url [, string $auth_session_handle ] )

Fetch an access token, secret and any additional response parameters from the service provider.

参数

access_token_url

URL to the access token API.

auth_session_handle

Authorization session handle, this parameter does not have any citation in the core OAuth 1.0 specification but may be implemented by large providers. » See ScalableOAuth for more information.

返回值

Returns an array containing the parsed OAuth response on success or NULL on failure.

范例

Example #1 OAuth::getAccessToken() example

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $oauth->setToken($request_token,$request_token_secret);
    $access_token_info = $oauth->getRequestToken("https://example.com/oauth/access_token");
    if(!empty($access_token_info)) {
        print_r($access_token_info);
    } else {
        print "Failed fetching access token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

上例的输出类似于：

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

参见

  • OAuth::getLastResponse - Get the last response
  • OAuth::getLastResponseInfo - Get HTTP information about the last response
  • OAuth::setToken - Sets the token and secret

OAuth::fetch
OAuth::getLastResponse
OAuth


Get the last response

OAuth::getAccessToken
OAuth::getLastResponseInfo
OAuth
PHP 手册

OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponse — Get the last response

说明

public string OAuth::getLastResponse ( void )

Get the raw response of the most recent request.

参数

This function has no parameters.

返回值

Returns a string containing the last response.

参见

  • OAuth::getLastResponseInfo - Get HTTP information about the last response
  • OAuth::fetch - Fetch an OAuth protected resource

OAuth::getAccessToken
OAuth::getLastResponseInfo
OAuth


Get HTTP information about the last response

OAuth::getLastResponse
OAuth::getRequestToken
OAuth
PHP 手册

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Get HTTP information about the last response

说明

public array OAuth::getLastResponseInfo ( void )

Get HTTP information about the last response.

参数

This function has no parameters.

返回值

Returns an array containing the response information for the last request. Constants from curl_getinfo() may be used.

参见

  • OAuth::fetch - Fetch an OAuth protected resource
  • OAuth::getLastResponse - Get the last response

OAuth::getLastResponse
OAuth::getRequestToken
OAuth


Fetch a request token

OAuth::getLastResponseInfo
OAuth::setAuthType
OAuth
PHP 手册

OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestToken — Fetch a request token

说明

public array OAuth::getRequestToken ( string $request_token_url )

Fetch a request token, secret and any additional response parameters from the service provider.

参数

request_token_url

URL to the request token API.

返回值

Returns an array containing the parsed OAuth response on success or NULL on failure.

范例

Example #1 OAuth::getRequestToken() example

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $request_token_info = $oauth->getRequestToken("https://example.com/oauth/request_token");
    if(!empty($request_token_info)) {
        print_r($request_token_info);
    } else {
        print "Failed fetching request token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

上例的输出类似于：

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

参见

  • OAuth::getLastResponse - Get the last response
  • OAuth::getLastResponseInfo - Get HTTP information about the last response

OAuth::getLastResponseInfo
OAuth::setAuthType
OAuth


The setAuthType purpose

OAuth::getRequestToken
OAuth::setNonce
OAuth
PHP 手册

OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthType — The setAuthType purpose

说明

public bool OAuth::setAuthType ( string $auth_type )

Set where the OAuth parameters should be passed.

参数

auth_type

auth_type can be one of the following flags (in order of decreasing preference as per OAuth 1.0 section 5.2):

OAUTH_AUTH_TYPE_AUTHORIZATION
Pass the OAuth parameters in the HTTP Authorization header.
OAUTH_AUTH_TYPE_FORM
Append the OAuth parameters to the HTTP POST request body.
OAUTH_AUTH_TYPE_URI
Append the OAuth parameters to the request URI.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

OAuth::getRequestToken
OAuth::setNonce
OAuth


Set the nonce for subsequent requests

OAuth::setAuthType
OAuth::setToken
OAuth
PHP 手册

OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonce — Set the nonce for subsequent requests

说明

public bool OAuth::setNonce ( string $nonce )

Sets the nonce for all subsequent requests.

参数

nonce

The value for oauth_nonce.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • OAuth::setToken - Sets the token and secret
  • OAuth::setAuthType - The setAuthType purpose
  • OAuth::setVersion - Set the OAuth version

OAuth::setAuthType
OAuth::setToken
OAuth


Sets the token and secret

OAuth::setNonce
OAuth::setVersion
OAuth
PHP 手册

OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setToken — Sets the token and secret

说明

public bool OAuth::setToken ( string $token , string $token_secret )

Set the token and secret for subsequent requests.

参数

token

The OAuth token.

token_secret

The OAuth token secret.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 OAuth::setToken() example

<?php
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","token-secret");
?>

OAuth::setNonce
OAuth::setVersion
OAuth


Set the OAuth version

OAuth::setToken
OAuthException
OAuth
PHP 手册

OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersion — Set the OAuth version

说明

public bool OAuth::setVersion ( string $version )

Sets the OAuth version for subsequent requests

参数

version

OAuth version, default value is always "1.0"

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

OAuth::setToken
OAuthException
OAuth


OAuthException class

简介

This exception is thrown when exceptional errors when using the OAuth extension and contains useful debugging information.

Class synopsis

OAuthException
OAuthException extends Exception {
/* Properties */
public $lastResponse ;
/* Inherited methods */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

属性

message

A human readable message about what went wrong

code

Exception code

file

File where exception was thrown

line

File where exception was thrown

lastResponse

The response of the exception which occured, if any

OAuth::setVersion
SCA
OAuth


SCA

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • The structure of a Service Component
    • Obtaining a proxy for another Service Component
    • Calling another Service Component
    • Locating and calling services from a script which is not an SCA Component
    • Exposing a Service Component as a Web service
    • Deploying an SCA component
    • Obtaining the WSDL for an SCA component offering a Service as a Web service
    • Understanding how the WSDL is generated
    • Working with Data Structures
    • Error handling
  • SCA 函数
    • SCA_LocalProxy::createDataObject — create an SDO
    • SCA_SoapProxy::createDataObject — create an SDO
    • SCA::createDataObject — create an SDO
    • SCA::getService — Obtain a proxy for a service
OAuthException
简介
Web Services


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

SCA for PHP makes it possible for a PHP programmer to write reusable components, which can be called in a variety of ways, with an identical interface and with a minimum of fuss. At present components can call each other either locally or via Web services, but in the future it is expected that other ways will be possible. It provides the programmer with a way of doing this which will look as natural as possible in PHP.

SCA components use phpDocumentor-style (see http://www.phpdoc.org/) annotations to declare dependencies on other SCA components or Web services. The SCA for PHP runtime resolves these dependencies at runtime on behalf of the components, and thus allows the PHP programmer to focus on the business logic rather than on locating and obtaining references to dependencies.

The SCA for PHP programming model can be extended to support a number of service types, such as REST and Atompub. However, Web services (more accurately, WSDL defined, SOAP/HTTP services), are the only type currently specified.

Components also use annotations to define the interface which they expose as a service. The SCA for PHP runtime will automatically generate WSDL from these annotations, so that an SCA component is easily exposed as a web service. These annotations are a natural extension to those provided by phpDocumentor. Deploying a Web service can be as simple as placing a PHP component under the document root of a web server.

Components also use annotations to specify data structures (expressed using XML schema complex types) which are then handled using Service Data Objects (SDOs).

A PHP script which is not an SCA component and which contains no annotations can use the services of an SCA component. A PHP script or component can make calls to a web service that is not an SCA component, but using the same system of calls or annotations to obtain a reference.

First we show a single SCA component, ConvertedStockQuote which illustrates many of the features of SCA for PHP. It has one method, getQuote(), which given a stock "ticker" obtains a price quote for that stock, converted to a given currency. We shall be using this example as a basis for explaining the SCA for PHP throughout the rest of this document.

Example #1 A sample SCA component

<?php

include "SCA/SCA.php";

/**
 * Calculate a stock price for a given ticker symbol in a given currency.
 *
 * @service
 * @binding.soap
 */
class ConvertedStockQuote {

    /**
     * The currency exchange rate service to use.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;

    /**
     * The stock quote service to use.
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;

    /**
     * Get a stock quote for a given ticker symbol in a given currency.
     *
     * @param string $ticker The ticker symbol.
     * @param string $currency What currency to convert the value to.
     * @return float The stock value is the target currency.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
}
?>

In this example, we see that an SCA component is implemented by a script containing a PHP class and includes SCA.php. The class contains a mixture of business logic and references to other components or services. In the illustrated getQuote() method there is only business logic, but it relies on the instance variables $stock_quote and $exchange_rate having been initialized. These refer to two other components and will be initialized by the SCA runtime with proxies for these two services, whenever this component executes. The annotations for these two services show one to be a local component, which will be called within the same PHP runtime, and one to be a remote component which will be called via a SOAP request. This component also exposes the getQuote() method both locally and as a web service, so it in turn can be called either locally or remotely.

SCA
安装/配置
SCA


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SCA


需求

If you want to use SCA to consume or produce Web services then you need PHP 5.2.0 or later, built with the soap extension enabled. If you just want to use local components, and do not wish to use the Web service bindings, then this version of SCA for PHP will also run with PHP 5.1.6.

安装/配置
安装
安装/配置


安装

SCA is packaged along with SDO in one combined package on PECL. See http://www.php.net/sdo#sdo.installation for installing the SCA_SDO package from PECL. The SCA code must be on the include path of your PHP installation, for example if it is installed as /usr/local/lib/php/SCA, the include_path directive must include /usr/local/lib/php

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
SCA


范例

Table of Contents

  • The structure of a Service Component
  • Obtaining a proxy for another Service Component
  • Calling another Service Component
  • Locating and calling services from a script which is not an SCA Component
  • Exposing a Service Component as a Web service
  • Deploying an SCA component
  • Obtaining the WSDL for an SCA component offering a Service as a Web service
  • Understanding how the WSDL is generated
  • Working with Data Structures
  • Error handling

The examples in the subsequent sections illustrate the following aspects of PHP for SCA:

  • How PHP annotations are used to define PHP classes as SCA components, and how annotations are used to define the services.

  • How an SCA component can be exposed as a Web service

  • How an SCA component can consume a Web service, whether provided by another SCA component or by some other service which knows nothing of SCA

  • How an SCA component can call another SCA component locally (within the same process and on the same call stack)

  • How a client script which is not an SCA component can use the getService call to obtain a proxy for an SCA component.

  • How data structures such as Addresses, or Puchase Orders, are represented as Service Data Objects, and handled.

  • How SCA components are deployed, and in particular how and when WSDL is generated for a service.

  • How parameters are always passed by value (and not by reference) between components, even when the calls are local. This ensures that the semantics of a call do not change depending on the location of a component.

  • How positional parameters to a service are supported, even when the underlying WSDL is document literal wrapped, and naturally supports only named parameters.

  • How business and runtime exceptions are handled.

预定义常量
The structure of a Service Component
SCA


The structure of a Service Component

A service component is implemented by a class. To identify it as a service component, it contains an @service annotation. The SCA runtime will use the file name of the script to determine the component name, by convention. The class and script file must therefore share the same name.

PHP SCA components always expose a service, and there is no way for a component to be invoked other than to be called as a result of a Web service request, or called directly from another component or from a script. For this reason a valid PHP SCA component will always contain an @service annotation and at least one public method.

Each SCA Component requires that the SCA.php script is included. As well as containing the definition of the SCA class, this script contains executable PHP code that will run whenever the script is called, and which will be responsible for making the component behave as needed.

Caution

It is very important that if your file contains other includes, they come before the include for SCA.php. If there are includes after the include for SCA.php, they will not have been processed when the SCA runtime runs your class.

The example below illustrates this overall structure

Example #1 The structure of an SCA for PHP component

<?php

// any includes

include "SCA/SCA.php";

/**
 * @service
 */

class ConvertedStockQuote {

       // instance variables, business logic, including at least one public method

}
?>

范例
Obtaining a proxy for another Service Component
范例


Obtaining a proxy for another Service Component

One SCA component can call the service provided by another SCA component. The service a component provides is made up of all of its public methods. SCA for PHP currently provides two ways for one component to call another: either locally (i.e. within the same PHP run-time, and on the same call stack) or remotely if the called component exposes a Web service binding.

In order for one component to call another, the calling component needs a proxy for the called component. This proxy is usually provided as an instance variable in the calling component, though proxies can also be obtained with the SCA::getService() call, as we shall see later. When a component is constructed, proxies are constructed for any instance variable which refer to another component, and these proxies are "injected" into the instance variables. Proxies are always used, whether the component is local or remote, in order to provide identical calling behavior between remote and local calls (for example, local calls are made to always pass data by-value). The proxies know how to locate the required component and to pass the calls made on to them.

Instance variables which are intended to hold proxies for services are indicated by the two PHPDocumentor-style annotations, @reference and @binding. Both annotations are placed in the documentation section for a class instance variable, as shown by the code below.

The @reference annotation before an instance variable indicates that that instance variable is to be initialized with a proxy to a component.

The @binding annotation has two forms @binding.php and @binding.soap, and indicates that the proxy is either for a local component or for a Web service respectively. For both @binding.php and @binding.soap, the annotation gives a target URI.

At the moment, with the annotation-based method of specifying dependencies, the only way to alter the intended target of a reference is to alter the annotation within the component.

In our ConvertedStockQuote example, the $exchange_rate instance variable will be initialized with a proxy to the local ExchangeRate component whenever an instance of the ConvertedStockQuote is constructed.

Example #1 Obtaining a proxy for a local PHP class

<?php
   /**
     * The currency exchange rate service to use.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;
?>

For @binding.php, the URI identifies the location of the script containing the implementation of the component. The component will be called locally. The service provided is the set of public methods of the component. The URI must be a simple pathname, either absolute or relative. The component will be loaded with the PHP include directive, after testing to see if it is already loaded with class_exists(). If the URI is a relative path, it is resolved relative to the component containing the annotation. Note that this is different from the normal PHP behaviour where scripts would be looked for along the PHP include_path, This is intended to provide some location-independence for cross-component references.

If this ExchangeRate service were remote and to be called as a Web service, only the @binding line changes. Instead of giving the location of a PHP class, it gives the location of the WSDL describing the web service. In our example component, this is illustrated by the second reference:

Example #2 Obtaining a proxy for a web service

<?php
/**
     * The stock quote service to use.
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;
?>

The StockQuote component will be called via a Web service request. In this case the URI for the WSDL can be a simple pathname, or may contain a PHP wrapper and begin, for example, with file:// or http://. In the event that it is a simple pathname, it can be absolute or relative, and if relative will be resolved relative to the component containing the annotation. Note that this is like the behaviour for @binding.php, and different from the normal PHP behaviour where the file would be looked for relative to the PHP current working directory, which would usually be the location of the first script to be called. This behaviour is intended to give consistency across the different bindings and to provide some location-independence for references between components.

The structure of a Service Component
Calling another Service Component
范例


Calling another Service Component

The ConvertedStockQuote example also calls the proxies for the two components to which it refers.

Example #1 Calling services

<?php
$quote  = $this->stock_quote->getQuote($ticker);
$rate   = $this->exchange_rate->getRate($currency);
?>

The call to the StockQuote service is a call to a local service; the call to the ExchangeRate service is a call to a remote service. Note that the way the call is made looks the same regardless of whether the call is to a local service or a remote one.

The proxies which have been injected ensure that the way calls to components look and behave are the same way regardless of whether they are to a local or remote service, so that components are not sensitive to whether a call is to a local or a remote service. For example, the proxy for a local service takes copies of the arguments and passes only those copies, to ensure that calls are made to be pass-by-value, as they would be for a remote call. Also, the proxy for a remote service takes the arguments from a positional parameter list and ensures they are packaged properly in a SOAP request and converted back to a positional parameter list at the far end.

In the example above, the $ticker and $currency are clearly PHP scalar types. Components can pass the PHP scalar types string, integer, float and boolean, but data structures on service calls are always passed as Service Data Objects (SDOs). A later section describes how a component can create an SDO to pass on a local or Web service call, or how a component can create an SDO to return. The PHP SDO project documentation describes how to work with the SDO APIs (see the SDO pages.

Obtaining a proxy for another Service Component
Locating and calling services from a script which is not an SCA Component
范例


Locating and calling services from a script which is not an SCA Component

SCA components obtain proxies for other components or services as instance variables annotated with @reference, but this is not possible for a script that is not itself also a component. A client script which is not a component must use the SCA::getService() static method to obtain a proxy for a service, whether local or remote. The getService() method takes a URI as the argument. Typically this is the location of a local PHP script containing a component, or of a wsdl file, and is used in exactly the same way as the targets of the @binding annotations described in the previous section: that is, relative URIs are resolved against the location of the client script and not against the PHP include_path or current working directory.

For example, a script that needed to obtain proxies for the ExchangeRate and StockQuote services but was not a component would use the getService() method as follows:

Example #1 Obtaining a proxy using getService

<?php
$exchange_rate = SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   = SCA::getService('../StockQuote/StockQuote.wsdl');
?>

Methods on services can then be called on the returned proxy, just as they can in a component.

Example #2 Making calls on the proxy

<?php
$quote  = $stock_quote->getQuote($ticker);
$rate   = $exchange_rate->getRate($currency);
?>

Calling another Service Component
Exposing a Service Component as a Web service
范例


Exposing a Service Component as a Web service

SCA for PHP can generate WSDL from the annotations within a service component, so that it can be easily deployed and exposed as a Web service. To provide SCA with the information it needs to generate the WSDL, it is necessary to add the annotation @binding.soap under the @service annotation and to specify the parameters and return values of the methods using the @param and @return annotations. These annotations will be read when WSDL is generated, and the order and types of the parameters determine the contents of the <schema> section of the WSDL.

SCA for PHP always generates document/literal wrapped WSDL for components that are exposing a Web service. Note that this does not stop components from consuming Web services which are not SCA components and which are documented with WSDL written in a different style.

The scalar types which can be used in the @param annotation are the four common PHP scalar types: boolean, integer, float and string. These are simply mapped to the XML schema types of the same name in the WSDL. The example below, which is a trivial implementation of the StockQuote service that the ConvertedStockQuote component calls, illustrates string and float types.

Example #1 StockQuote Service

<?php

include "SCA/SCA.php";

/**
 * Scaffold implementation for a remote StockQuote Web service.
 *
 * @service
 * @binding.soap
 *
 */
class StockQuote {

    /**
     * Get a stock quote for a given ticker symbol.
     *
     * @param string $ticker The ticker symbol.
     * @return float The stock quote.
     */
    function getQuote($ticker) {
        return 80.9;
  }
}
?>

WSDL much like the following (though with a service location other than 'localhost', probably) would be generated from this service:

Example #2 Generated WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"
    xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote">
  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://StockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

  <message name="getQuoteRequest">
    <part name="getQuoteRequest" element="tns2:getQuote"/>
  </message>
  <message name="getQuoteResponse">
    <part name="return" element="tns2:getQuoteResponse"/>
  </message>
  <portType name="StockQuotePortType">
    <operation name="getQuote">
      <input message="tns2:getQuoteRequest"/>
      <output message="tns2:getQuoteResponse"/>
    </operation>
  </portType>
  <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">
    <operation name="getQuote">
      <input>
        <tns3:body xsi:type="tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tBody" use="literal"/>
      </output>
      <tns3:operation xsi:type="tOperation" soapAction=""/>
    </operation>
    <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>
  <service name="StockQuoteService">
    <port name="StockQuotePort" binding="tns2:StockQuoteBinding">
      <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->

Locating and calling services from a script which is not an SCA Component
Deploying an SCA component
范例


Deploying an SCA component

There are no special steps needed to deploy a PHP SCA component. It is sufficient to place the component PHP script in its proper place under the web server document root, just like any other PHP script. It is the SCA::initComponent() executable line within each component that will be executed whenever the script is called, and which will be responsible for making the component respond appropriately to Web service calls, local calls, or requests for WSDL.

Exposing a Service Component as a Web service
Obtaining the WSDL for an SCA component offering a Service as a Web service
范例


Obtaining the WSDL for an SCA component offering a Service as a Web service

SCA components that expose a Web service interface (i.e. have an @binding.soap annotation) will return their WSDL definition in response to an HTTP request with a get parameter of "wsdl". The usual way to obtain this is with "?wsdl" on the end of a URL. The example below uses file_get_contents() to obtain WSDL from a service and writes it to a temporary file before then obtaining a proxy for the service in the usual way. You could of course also obtain the WSDL in a browser, or by some other means, and save the file yourself.

Example #1 Generated WSDL

<?php
$wsdl = file_get_contents('http://www.example.com/Services/Example.php?wsdl');
file_put_contents("service.wsdl",$wsdl); //write the wsdl to a file
$service = SCA::getService('service.wsdl');
?>

NOTE: If the wsdl requires imported xsds, these will need to be fetched separately.

Deploying an SCA component
Understanding how the WSDL is generated
范例


Understanding how the WSDL is generated

SCA for PHP generates WSDL for components which contain an @binding.soap annotation after the @service annotation. To generate WSDL, the SCA runtime reflects on the component and examines the @param and @return annotations for each public method, as well as any @types annotations within the component. The information from the @param and @return annotations is used to build the <types> section of the WSDL. Any @types annotations which specify a separate schema file will result in an <import> element for that schema within the WSDL.

Location attribute of the <service> element

At the bottom of the WSDL is the <service> element which uses the location attribute to identify the URL of the service. For example this might look as follows:

Example #1 location attribute

    <service name="ConvertedStockQuote"
...
location="http://localhost/ConvertedStockQuote/ConvertedStockQuote.php"/>

Note that this location is relative to the document root of the web server, and cannot be worked out in advance. It can only be worked out once the component is in its proper place under a running web server, when the hostname and port can be known and placed in the WSDL. Detail from the URL that requests the WSDL is used, so for example if the WSDL is generated in response to a request to http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php?wsdl, a location of http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php is what will be inserted into the location attribute in the WSDL.

Document/literal wrapped WSDL and positional parameters

SCA for PHP generates WSDL in the document/literal wrapped style. This style encloses the parameters and return types of a method in 'wrappers' which are named after the corresponding method. The <types> element at the top of the WSDL defines each of these wrappers. If we consider the getQuote() method of the ConvertedStockQuote example:

Example #2 method with two arguments

<?php
   /**
     * Get a stock quote for a given ticker symbol in a given currency.
     *
     * @param string $ticker The ticker symbol.
     * @param string $currency What currency to convert the value to.
     * @return float The stock value is the target currency.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
?>

The WSDL generated to define this method will name both the method and the parameters, and give an XML schema type for the parameters. The types section of the WSDL looks like this:

Example #3 types section illustrating named parameters

  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://ConvertedStockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

The SCA run-time has special processing to handle how positional parameter lists in the interface are converted to XML containing named parameters in the soap request, and then back to positional parameter lists again. To see why this matters, consider how a PHP script which used a different interface to make a SOAP call would need to construct the parameter list. A PHP script using the PHP SoapClient, for example, would need to pass the SoapClient a single parameter giving the values for "ticker" and "currency", perhaps as an associative array. To insist that SCA components construct parameter lists to make Web service calls in this way would be to make local and remote calls look different, so a different approach is needed.

When SCA generates WSDL for an SCA component it includes a comment in the WSDL which marks that WSDL as being the interface for an SCA component. In this case, when one SCA component calls another through a Web service, the SCA runtime on the calling end takes the positional parameter list from the call and assigns the values one by one to the named elements in the soap message. For example a call to the getQuote() method defined above that passes the values 'IBM' and 'USD' and looks like this:

$quote = $remote_service->getQuote('IBM','USD');

will result in a soap message containing the following:

<getQuote>
  <ticker>IBM</ticker>
  <currency>USD</currency>
</getQuote>

On the service-providing end, the SCA run-time takes the parameters one by one from the soap message and forms a positional parameter list from them, re-forming the argument list ('IBM','USD').

Caution

At both ends the SCA runtime relies on the order in which the parameters appear in the soap message being the same as that in the target method's parameter list. This is ultimately determined by the order of the @param annotations: this determines the order in which the parameters appear in the WSDL and thereby the order in which they appear in the soap message. Therefore it is essential that the order of the @param annotations matches that of the parameters in the method's parameter list.

Obtaining the WSDL for an SCA component offering a Service as a Web service
Working with Data Structures
范例


Working with Data Structures

SCA components can pass and return the four PHP scalar types boolean, integer, float and string, but to pass or return data structures, SCA components use Service Data Objects (SDOs). SDOs are described in much more detail in the SDO pages of this manual. Readers familiar with SDOs will know that they are suitable for representing the sort of structured and semi-structured data that is frequently modeled in XML, and that they serialize very naturally for passing between remote components, or in Web services. SDOs are presently the only supported way to pass and return data structures. It is not possible to pass or return PHP objects, or PHP arrays.

The SCA runtime always assures data is passed by-value, even for local calls. To do this, the SCA runtime copies any SDOs in the parameter list before passing them on, just as it does for scalar types.

How data structures are defined to SCA components

Currently the only mechanism for specifying the location of a data structure definition is by specifying the types in an XML schema file. However, in the future it may be possible to define types in other ways, such as based on PHP classes or interfaces, or based on definitions expressed as associative arrays.

To illustrate the use of SDOs we introduce a new component. The PortfolioMangement service below returns an SDO representing a stock portfolio for a given customer.

Example #1 A Component that uses Data Structures

<?php

include "SCA/SCA.php";

/**
 * Manage the portfolio for a customer.
 *
 * @service
 * @binding.soap
 *
 * @types http://www.example.org/Portfolio PortfolioTypes.xsd
 *
 */
class PortfolioManagement {

    /**
     * Get the stock portfolio for a given customer.
     *
     * @param integer $customer_id The id for the customer
     * @return Portfolio http://www.example.org/Portfolio The stock portfolio (symbols and quantities)
     */
    function getPortfolio($customer_id) {
        // Pretend we just got this from a database
        $portfolio = SCA::createDataObject('http://www.example.org/Portfolio', 'Portfolio');
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'AAPL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'INTL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'IBM';
        $holding->number = 100.5;
        return $portfolio;
    }

}
?>

The @types annotation:

<?php
@types http://www.example.org/Portfolio PortfolioTypes.xsd
?>

indicates that types in the namespace http://www.example.org/Portfolio will be found in the schema file located by the URI PortfolioTypes.xsd. The generated WSDL would reproduce this information with an import statement as follows:

   <xs:import schemaLocation="PortfolioTypes.xsd"
                      namespace="http://www.example.org/Portfolio"/>

so the URI, absolute or relative, must be one that can be resolved when included in the schemaLocation attribute.

Creating SDOs

Readers familiar with SDOs will know that they are always created according to a description of the permitted structure (sometimes referred to as the 'schema' or 'model') and that, rather than creating them directly using 'new', some form of data factory is needed. Often, an existing data object can be used as the data factory, but sometimes, and especially in order to get the first data object, something else must act as the data factory.

In SCA, either the SCA runtime class or the proxies for services, whether local or remote, can act as the data factories for SDOs. The choice of which to use, and when, is described in the next two sections.

We switch to a new example in order to illustrate the creation of SDOs, both to pass to a service, and to be returned from a service.

Creating an SDO to pass to a service

A caller of a service which requires a data structure to be passed in to it uses the proxy to the service as the data factory for the corresponding SDOs. For example, suppose a component makes use of a proxy for a service provided by a local AddressBook component.

<?php
/**
 * @reference
 * @binding.local AddressBook.php
 */
$address_book;
?>

The AddressBook component that it wishes to call is defined as follows:

<?php
/**
* @service
* @binding.soap
* @types http://addressbook ../AddressBook/AddressBook.xsd
*/
class AddressBook {

    /**
     * @param personType $person http://addressbook (a person object)
     * @return addressType http://addressbook (the address object for the person object)
     */
    function lookupAddress($person)  {
        ...
    }
}
?>

The AddressBook component provides a service method called lookupAddress() which uses types from the http://addressbook namespace. The lookupAddress method takes a personType data structure and returns an addressType. Both types are defined in the schema file addressbook.xsd.

Once the component that wishes to use the AddressBook component has been constructed, so that the $address_book instance variable contains a proxy for the service, the calling component can use the proxy in $address_book to create the person SDO, as shown below:

<?php
$william_shakespeare        = $address_book->createDataObject('http://addressbook','personType');
$william_shakespeare ->name = "William Shakespeare";
$address                    = $address_book->lookupAddress($william_shakespeare);
?>

Note, the use of the proxy as the means to create the SDO is not limited to SCA components. If a service is being called from a general PHP script, and the proxy was obtained with getService() then the same approach is used.

<?php
$address_book = SCA::getService('AddressBook.php');
$william_shakespeare = $address_book->createDataObject('http://addressbook','personType');
?>

Creating an SDO to return from a component

A component that needs to create a data object for return to a caller will not have a proxy to use as a data object, In this case it uses the createDataObject() static method on SCA.php. Hence if the AddressBook component described above needed to create an object of type addressType within the namespace http://addressbook, it might do so as follows:

<?php
$address = SCA::createDataObject('http://addressbook','addressType');
?>

Understanding how the WSDL is generated
Error handling
范例


Error handling

This section describes how errors are handled. There are two types of errors:

  • SCA runtime exceptions are those that signal problems in the management of the execution of components, and in the interaction with remote services. These might occur due to network or configuration problems.

  • Business exceptions are those that are defined by the programmer. They extend the PHP Exception class, and are thrown and caught deliberately as part of the business logic.

Handling of Runtime exceptions

There are two types of SCA runtime exception:

  • SCA_RuntimeException - signals a problem found by or perhaps occurring within the SCA runtime. This can be thrown for a variety of reasons, many of which can occur regardless of whether a connection is being made to a local or a remote service: an error in one of the annotations within a component, a missing WSDL or php file, and so on. In the case of Web services, an SCA_RuntimeException can also be thrown if a SoapFault is received from a remote Web service and the fault code in the SoapFault indicates that a retry is unlikely to be successful.

  • SCA_ServiceUnavailableException - this is a subclass of SCA_RuntimeException and signals a problem in connecting to or using a remote service, but one which might succeed if retried. In the case of Web services, this exception is thrown if a SoapFault is received with a fault code that indicates that a retry might be successful.

Handling of Business exceptions

Business exceptions may be defined and thrown by a component in the normal way, regardless of whether the component has been called locally or remotely. The SCA runtime does not catch business exceptions that have been thrown by a component called locally, so they will be returned to a caller in the normal way. If a component has been called via a Web service, on the other hand, the SCA runtime on the service providing end does catch business exceptions, and will ensure these are passed back to the calling end and re-thrown. Assuming that the calling end has a definition of the exception (that is, is able to include a file containing the PHP class defining the exception) the re-thrown exception will contain the same details as the original, so that the getLine() and getFile() methods for example will contain the location where the exception was thrown within the business logic. The exception will be passed in the detail field of a soap fault with a fault code of "Client".

Working with Data Structures
SCA 函数
范例


Error handling
SCA_LocalProxy::createDataObject
SCA
PHP 手册

SCA 函数

预定义类

Most of the interface to SCA is through the annotations within SCA components so there are few public classes and methods. The only SCA classes that scripts or components can call are the SCA class itself, and the proxy classes SCA_LocalProxy and SCA_SoapProxy.

SCA

Much of the work of the SCA class is performed when the file SCA.php is included within an SCA component. However, a PHP script may include SCA.php and call the getService() method on the SCA class in order to obtain a proxy for a service. A component will not need to do this as proxies are obtained instead by defining an instance variable with the @reference annotation.

Components that need to create an SDO to return to a caller will need a data factory to call. For this purpose the SCA class supports the createDataObject() method, which will create an SDO according to the model defined by the component's @types annotations. The arguments to createDataObject() are the same as those to SDO's XML Data Access Service.

方法

  • getService - obtain a proxy for a service

  • createDataObject - create an SDO

SCA_LocalProxy

When getService() is called with the target of a local PHP component, a local proxy is returned. A local proxy is also injected into the instance variables of a component that are defined with an @reference and an @binding.php anotation. When the script or component makes calls on the local proxy, they are passed on to the target component itself.

Components that need to create an SDO to pass to a component will need a data factory to call. For this purpose the SCA_LocalProxy class supports the createDataObject method, which will create an SDO according to the model defined by the components' @types annotations. The arguments to the createDataObject are the same as those to SDO's XML Data Access Service.

方法

  • createDataObject - create an SDO

SCA_SoapProxy

When getService() is called with the target of a WSDL file, a SOAP proxy is returned. A SOAP proxy is also injected into the instance variables of a component that are defined with an @reference and an @binding.soap anotations. When the script or component makes calls on the SOAP proxy, they are formed into Web service SOAP requests and passed on to the target component, with the help of the PHP Soap extension.

Components that need to create an SDO to pass to a component will need a data factory to call. For this purpose the SCA_SoapProxy class supports the createDataObject method, which will create an SDO according to the model defined within the target WSDL. The arguments to the createDataObject are the same as those to SDO's XML Data Access Service.

方法

  • createDataObject - create an SDO

Table of Contents

  • SCA_LocalProxy::createDataObject — create an SDO
  • SCA_SoapProxy::createDataObject — create an SDO
  • SCA::createDataObject — create an SDO
  • SCA::getService — Obtain a proxy for a service
Error handling
SCA_LocalProxy::createDataObject
SCA
PHP 手册


create an SDO

SCA 函数
SCA_SoapProxy::createDataObject
SCA 函数
PHP 手册

SCA_LocalProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_LocalProxy::createDataObject — create an SDO

说明

SDO_DataObject SCA_LocalProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

This method is used inside either an ordinary PHP script or an SCA component that needs to create an SDO to pass to a local service. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in the interface of the component that is to be called, so the namespace and type must be defined in one of the schema files which are specified on the @types annotation within the component for which the SCA_LocalProxy object is a proxy.

参数

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

返回值

Returns the newly created SDO_DataObject.

错误／异常

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type in any of the schema files specified in the @types annotations within the component for which the SCA_LocalProxy object is a proxy..

SCA 函数
SCA_SoapProxy::createDataObject
SCA 函数


create an SDO

SCA_LocalProxy::createDataObject
SCA::createDataObject
SCA 函数
PHP 手册

SCA_SoapProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_SoapProxy::createDataObject — create an SDO

说明

SDO_DataObject SCA_SoapProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

This method is used inside either an ordinary PHP script or an SCA component that needs to create an SDO to pass to a web service. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in the interface of the component that is to be called, so the namespace and type must be defined within the WSDL for the web service. If the web service is also an SCA component then the types will have been defined within one of the schema files which are specified on the @types annotation within the component for which the SCA_SoapProxy object is a proxy.

参数

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

返回值

Returns the newly created SDO_DataObject.

错误／异常

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type found in the WSDL that was used to initialise this SCA_SoapProxy.

SCA_LocalProxy::createDataObject
SCA::createDataObject
SCA 函数


create an SDO

SCA_SoapProxy::createDataObject
SCA::getService
SCA 函数
PHP 手册

SCA::createDataObject

(PECL SDO >= 0.5.0)

SCA::createDataObject — create an SDO

说明

SDO_DataObject SCA::createDataObject ( string $type_namespace_uri , string $type_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

This method is used inside an SCA component that needs to create an SDO to return. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in one of the schema files which are specified on the @types annotation within the component.

参数

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

返回值

Returns the newly created SDO_DataObject.

错误／异常

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type in any of the schema files specified in the @types annotations.

SCA_SoapProxy::createDataObject
SCA::getService
SCA 函数


Obtain a proxy for a service

SCA::createDataObject
SOAP
SCA 函数
PHP 手册

SCA::getService

(PECL SDO >= 0.5.0)

SCA::getService — Obtain a proxy for a service

说明

mixed SCA::getService ( string $target [, string $binding [, array $config ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Examine the target and initialize and return a proxy of the appropriate sort. If the target is for a local PHP component the returned proxy will be an SCA_LocalProxy. If the target is for a WSDL file, the returned proxy will be a SCA_SoapProxy.

参数

target

An absolute or relative path to the target service or service description (e.g. a URL to a json-rpc service description, a PHP component, a WSDL file, and so on.). A relative path, if specified, is resolved relative to the location of the script issuing the getService() call, and not against the include_path or current working directory.

binding

The binding (i.e. protocol) to use to communicate with the service (e.g binding.jsonrpc for a json-rpc service). Note, some service types can be deduced from the target parameter (e.g. if the target parameter ends in .wsdl then SCA will assume binding.soap). Any binding which can be specified in an annotation can be specified here. For example 'binding.soap' is equivalent to the '@binding.soap' annotation.

config

Any additional configuration properties for the binding (e.g. array('location' => 'http://example.org')). Any binding configuration which can be specified in an annotation can be specified here. For example, 'location' is equivalent to the '@location' annotation to configure the location of a target soap service.

返回值

The SCA_LocalProxy or SCA_SoapProxy.

范例

Example #1 An SCA::getService() example

This example shows how to get a proxy to an email soap service described by EmailService.wsdl and located at http://example.org.

<?php
include 'SCA/SCA.php';
$service = SCA::getService('EmailService.wsdl', 'binding.soap', array('location' => 'http://example.org'));
$service->send(...);
?>

上例将输出：

SCA::createDataObject
SOAP
SCA 函数


SOAP

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • SOAP 函数
    • is_soap_fault — Checks if SOAP call was failed
    • SoapClient->__call — Calls a SOAP function (deprecated)
    • SoapClient->__construct — SoapClient constructor
    • SoapClient->__doRequest — Performs a SOAP request
    • SoapClient->__getFunctions — Returns list of SOAP functions
    • SoapClient->__getLastRequest — Returns last SOAP request
    • SoapClient->__getLastRequestHeaders — Returns last SOAP request headers
    • SoapClient->__getLastResponse — Returns last SOAP response.
    • SoapClient->__getLastResponseHeaders — Returns last SOAP response headers.
    • SoapClient->__getTypes — Returns list of SOAP types
    • SoapClient->__setCookie — Sets the cookie that will be sent with the SOAP request
    • SoapClient->__setLocation — Sets the location option.
    • SoapClient->__setSoapHeaders — Sets SOAP headers for subsequent calls.
    • SoapClient->__soapCall — Calls a SOAP function
    • SoapFault->__construct — SoapFault constructor
    • SoapHeader->__construct — SoapHeader constructor
    • SoapParam->__construct — SoapParam constructor
    • SoapServer->addFunction — Adds one or several functions those will handle SOAP requests
    • SoapServer->__construct — SoapServer constructor
    • SoapServer->fault — Issue SoapServer fault indicating an error
    • SoapServer->getFunctions — Returns list of defined functions
    • SoapServer->handle — Handles a SOAP request
    • SoapServer->setClass — Sets class which will handle SOAP requests
    • SoapServer->setPersistence — Sets persistence mode of SoapServer
    • SoapVar->__construct — SoapVar constructor
    • use_soap_error_handler — Set whether to use the SOAP error handler and return the former value
SCA::getService
简介
Web Services


简介

The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of » SOAP 1.1, » SOAP 1.2 and » WSDL 1.1 specifications.

SOAP
安装/配置
SOAP


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SOAP


需求

This extension makes use of the » GNOME xml library. Download and install this library. You will need at least libxml-2.5.4.

安装/配置
安装
安装/配置


安装

This extension is only available if PHP was configured with --enable-soap.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

SOAP Configuration Options
Name | Default | Changeable | Changelog
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Available since PHP 5.0.0.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Available since PHP 5.0.0.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | Available since PHP 5.0.0.
soap.wsdl_cache_limit | "5" | PHP_INI_ALL | Available since PHP 5.1.5.
soap.wsdl_cache | "1" | PHP_INI_ALL | Available since PHP 5.1.5.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

soap.wsdl_cache_enabled boolean

Enables or disables the WSDL caching feature.

soap.wsdl_cache_dir string

Sets the directory name where the SOAP extension will put cache files.

soap.wsdl_cache_ttl integer

Sets the number of seconds (time to live) that cached files will be used instead of the originals.

soap.wsdl_cache_limit integer

Maximum number of in-memory cached WSDL files. Adding further files into a full memory cache will delete the oldest files from it.

soap.wsdl_cache integer

If soap.wsdl_cache_enabled is on, this setting determines the type of caching. It can be any of: WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) or WSDL_CACHE_BOTH (3). This can also be set via the options array in the SoapClient or SoapServer constructor.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SOAP_1_1 (integer)
SOAP_1_2 (integer)
SOAP_PERSISTENCE_SESSION (integer)
SOAP_PERSISTENCE_REQUEST (integer)
SOAP_FUNCTIONS_ALL (integer)
SOAP_ENCODED (integer)
SOAP_LITERAL (integer)
SOAP_RPC (integer)
SOAP_DOCUMENT (integer)
SOAP_ACTOR_NEXT (integer)
SOAP_ACTOR_NONE (integer)
SOAP_ACTOR_UNLIMATERECEIVER (integer)
SOAP_COMPRESSION_ACCEPT (integer)
SOAP_COMPRESSION_GZIP (integer)
SOAP_COMPRESSION_DEFLATE (integer)
SOAP_WAIT_ONE_WAY_CALLS (integer)
Added in PHP 5.1.0.
SOAP_USE_XSI_ARRAY_TYPE (integer)
SOAP_SINGLE_ELEMENT_ARRAYS (integer)
UNKNOWN_TYPE (integer)
XSD_STRING (integer)
XSD_BOOLEAN (integer)
XSD_DECIMAL (integer)
XSD_FLOAT (integer)
XSD_DOUBLE (integer)
XSD_DURATION (integer)
XSD_DATETIME (integer)
XSD_TIME (integer)
XSD_DATE (integer)
XSD_GYEARMONTH (integer)
XSD_GYEAR (integer)
XSD_GMONTHDAY (integer)
XSD_GDAY (integer)
XSD_GMONTH (integer)
XSD_HEXBINARY (integer)
XSD_BASE64BINARY (integer)
XSD_ANYURI (integer)
XSD_ANYXML (integer)
Added in PHP 5.1.0.
XSD_QNAME (integer)
XSD_NOTATION (integer)
XSD_NORMALIZEDSTRING (integer)
XSD_TOKEN (integer)
XSD_LANGUAGE (integer)
XSD_NMTOKEN (integer)
XSD_NAME (integer)
XSD_NCNAME (integer)
XSD_ID (integer)
XSD_IDREF (integer)
XSD_IDREFS (integer)
XSD_ENTITY (integer)
XSD_ENTITIES (integer)
XSD_INTEGER (integer)
XSD_NONPOSITIVEINTEGER (integer)
XSD_NEGATIVEINTEGER (integer)
XSD_LONG (integer)
XSD_INT (integer)
XSD_SHORT (integer)
XSD_BYTE (integer)
XSD_NONNEGATIVEINTEGER (integer)
XSD_UNSIGNEDLONG (integer)
XSD_UNSIGNEDINT (integer)
XSD_UNSIGNEDSHORT (integer)
XSD_UNSIGNEDBYTE (integer)
XSD_POSITIVEINTEGER (integer)
XSD_NMTOKENS (integer)
XSD_ANYTYPE (integer)
SOAP_ENC_OBJECT (integer)
SOAP_ENC_ARRAY (integer)
XSD_1999_TIMEINSTANT (integer)
XSD_NAMESPACE (string)
XSD_1999_NAMESPACE (string)
WSDL_CACHE_NONE (integer)
Switches off WSDL caching even if soap.wsdl_cache_enabled is on. Available since PHP 5.1.5.
WSDL_CACHE_DISK (integer)
Available since PHP 5.1.5.
WSDL_CACHE_MEMORY (integer)
Caches WSDL data in process memory. Available since PHP 5.1.5.
WSDL_CACHE_BOTH (integer)
Available since PHP 5.1.5.
资源类型
SOAP 函数
SOAP


SOAP 函数

预定义类

SoapClient

构造函数

  • SoapClient->__construct - constructs a new SoapClient object

方法

  • SoapClient->__call - Calls a SOAP function (deprecated)

  • SoapClient->__doRequest - Performs a SOAP request

  • SoapClient->__getFunctions - Returns list of SOAP functions

  • SoapClient->__getLastRequest - Returns last SOAP request

  • SoapClient->__getLastRequestHeaders - Returns last SOAP request headers

  • SoapClient->__getLastResponse - Returns last SOAP response

  • SoapClient->__getLastResponseHeaders - Returns last SOAP response headers

  • SoapClient->__getTypes - Returns list of SOAP types

  • SoapClient->__setCookie - Sets the cookie that will be sent with the SOAP request

  • SoapClient->__soapCall - Calls a SOAP function

SoapFault

构造函数

  • SoapFault->__construct - construct a new SoapFault object

SoapHeader

SoapHeader is a special low-level class for passing or returning SOAP headers. It's just a data holder and it does not have any special methods except its constructor. It can be used in the SoapClient->__soapCall method to pass a SOAP header or in a SOAP header handler to return the header in a SOAP response.

构造函数

  • SoapHeader->__construct - construct a new SoapHeader object

SoapParam

SoapParam is a special low-level class for naming parameters and returning values in non-WSDL mode. It's just a data holder and it does not have any special methods except its constructor.

构造函数

  • SoapParam->__construct - construct a new SoapParam object

SoapServer

构造函数

  • SoapServer->__construct - construct a new SoapServer object

方法

  • SoapServer->addFunction - Adds one or several functions those will handle SOAP requests

  • SoapServer->fault -

  • SoapServer->getFunctions - Returns list of defined functions

  • SoapServer->handle - Handles a SOAP request

  • SoapServer->setClass - Sets class which will handle SOAP requests

  • SoapServer->setPersistence - Sets persistence mode of SoapServer

SoapVar

SoapVar is a special low-level class for encoding parameters and returning values in non-WSDL mode. It's just a data holder and does not have any special methods except the constructor. It's useful when you want to set the type property in SOAP request or response.

构造函数

  • SoapVar->__construct - construct a new SoapVar object

Table of Contents

  • is_soap_fault — Checks if SOAP call was failed
  • SoapClient->__call — Calls a SOAP function (deprecated)
  • SoapClient->__construct — SoapClient constructor
  • SoapClient->__doRequest — Performs a SOAP request
  • SoapClient->__getFunctions — Returns list of SOAP functions
  • SoapClient->__getLastRequest — Returns last SOAP request
  • SoapClient->__getLastRequestHeaders — Returns last SOAP request headers
  • SoapClient->__getLastResponse — Returns last SOAP response.
  • SoapClient->__getLastResponseHeaders — Returns last SOAP response headers.
  • SoapClient->__getTypes — Returns list of SOAP types
  • SoapClient->__setCookie — Sets the cookie that will be sent with the SOAP request
  • SoapClient->__setLocation — Sets the location option.
  • SoapClient->__setSoapHeaders — Sets SOAP headers for subsequent calls.
  • SoapClient->__soapCall — Calls a SOAP function
  • SoapFault->__construct — SoapFault constructor
  • SoapHeader->__construct — SoapHeader constructor
  • SoapParam->__construct — SoapParam constructor
  • SoapServer->addFunction — Adds one or several functions those will handle SOAP requests
  • SoapServer->__construct — SoapServer constructor
  • SoapServer->fault — Issue SoapServer fault indicating an error
  • SoapServer->getFunctions — Returns list of defined functions
  • SoapServer->handle — Handles a SOAP request
  • SoapServer->setClass — Sets class which will handle SOAP requests
  • SoapServer->setPersistence — Sets persistence mode of SoapServer
  • SoapVar->__construct — SoapVar constructor
  • use_soap_error_handler — Set whether to use the SOAP error handler and return the former value
预定义常量
is_soap_fault
SOAP


Checks if SOAP call was failed

SOAP 函数
SoapClient->__call
SOAP 函数
PHP 手册

is_soap_fault

(PHP 5)

is_soap_fault — Checks if SOAP call was failed

说明

bool is_soap_fault ( mixed $obj )

This function is useful when you like to check if the SOAP call failed, but don't like to use exceptions. To use it you must create a SoapClient object with the exceptions option set to zero or FALSE. In this case, the SOAP method will return a special SoapFault object which encapsulates the fault details (faultcode, faultstring, faultactor and faultdetails).

If exceptions is not set then SOAP call will throw an exception on error. is_soap_fault() checks if the given parameter is a SoapFault object.

参数

obj

The tested object.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 is_soap_fault() example

<?php
$client = new SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction();
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
?>

Example #2 SOAP's standard method for error reporting is exceptions

<?php
try {
    $client = new SoapClient("some.wsdl");
    $result = $client->SomeFunction(/* ... */);
} catch (SoapFault $fault) {
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
?>

参见

  • SoapClient->__construct
  • SoapFault->__construct

SOAP 函数
SoapClient->__call
SOAP 函数


Calls a SOAP function (deprecated)

is_soap_fault
SoapClient->__construct
SOAP 函数
PHP 手册

SoapClient->__call

(No version information available, might be only in CVS)

SoapClient->__call — Calls a SOAP function (deprecated)

说明

SoapClient
mixed __call ( string $function_name , array $arguments [, array $options [, array $input_headers [, array $output_headers ]]] )

This method is deprecated. Use SoapClient->__soapCall instead of it.

is_soap_fault
SoapClient->__construct
SOAP 函数


SoapClient constructor

SoapClient->__call
SoapClient->__doRequest
SOAP 函数
PHP 手册

SoapClient->__construct

(No version information available, might be only in CVS)

SoapClient->__construct — SoapClient constructor

说明

SoapClient
__construct ( mixed $wsdl [, array $options ] )

This constructor creates SoapClient objects in WSDL or non-WSDL mode.

参数

wsdl

URI of the WSDL file or NULL if working in non-WSDL mode.

Note: During development stage, you may want to disable WSDL caching by the mean of the soap.wsdl_cache_ttl php.ini setting, otherwise changes made to the WSDL file will have no effect until soap.wsdl_cache_ttl is expired.

options

An array of options. If working in WSDL mode, this parameter is optional. If working in non-WSDL mode, you must set the location and uri options, where location is the URL to request and uri is the target namespace of the SOAP service.

The style and use options only work in non-WSDL mode. In WSDL mode, they come from the WSDL file.

The soap_version option specifies whether to use SOAP 1.1, or SOAP 1.2 client.

For HTTP authentication, you may use the login and password options. For making an HTTP connection through a proxy server, use the options proxy_host, proxy_port, proxy_login and proxy_password. For HTTPS client certificate authentication use local_cert and passphrase options.

The compression option allows to use compression of HTTP SOAP requests and responses.

The encoding option defines internal character encoding. This option does not change the encoding of SOAP requests (it is always utf-8), but converts strings into it.

The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

Setting the boolean trace option enables use of the
methods
SoapClient->__getLastRequest,

SoapClient->__getLastRequestHeaders,

SoapClient->__getLastResponse and

SoapClient->__getLastResponseHeaders.

The exceptions option is a boolean value defining whether soap errors throw exceptions of type SoapFault.

The connection_timeout option defines a timeout in seconds for the connection to the SOAP service. This option does not define a timeout for services with slow responses. To limit the time to wait for calls to finish the default_socket_timeout setting is available.

The typemap option is an array of type mappings. Type mapping is an array with keys type_name, type_ns (namespace URI), from_xml (callback accepting one string parameter) and to_xml (callback accepting one object parameter).

The cache_wsdl option is one of WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY or WSDL_CACHE_BOTH.

The user_agent option specifies string to use in User-Agent header.

The stream_context option is a resource for context.

The features option is a bitmask of SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE, SOAP_WAIT_ONE_WAY_CALLS.

范例

Example #1 SoapClient examples

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl",
  array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

SoapClient->__call
SoapClient->__doRequest
SOAP 函数


Performs a SOAP request

SoapClient->__construct
SoapClient->__getFunctions
SOAP 函数
PHP 手册

SoapClient->__doRequest

(No version information available, might be only in CVS)

SoapClient->__doRequest — Performs a SOAP request

说明

SoapClient
string __doRequest ( string $request , string $location , string $action , int $version [, int $one_way=0 ] )

Performs SOAP request over HTTP.

This method can be overridden in subclasses to implement different transport layers, perform additional XML processing or other purpose.

参数

request

The XML SOAP request.

location

The URL to request.

action

The SOAP action.

version

The SOAP version.

one_way

返回值

The XML SOAP response.

更新日志

版本 | 说明
5.1.3 | The one_way parameter was added.

范例

Example #1 Some examples

<?php
function Add($x,$y) {
  return $x+$y;
}

class LocalSoapClient extends SoapClient {

  function __construct($wsdl, $options) {
    parent::__construct($wsdl, $options);
    $this->server = new SoapServer($wsdl, $options);
    $this->server->addFunction('Add');
  }

  function __doRequest($request, $location, $action, $version) {
    ob_start();
    $this->server->handle($request);
    $response = ob_get_contents();
    ob_end_clean();
    return $response;
  }

}

$x = new LocalSoapClient(NULL,array('location'=>'test://',
                                   'uri'=>'http://testuri.org'));
var_dump($x->Add(3,4));
?>

SoapClient->__construct
SoapClient->__getFunctions
SOAP 函数


Returns list of SOAP functions

SoapClient->__doRequest
SoapClient->__getLastRequest
SOAP 函数
PHP 手册

SoapClient->__getFunctions

(No version information available, might be only in CVS)

SoapClient->__getFunctions — Returns list of SOAP functions

说明

SoapClient
array __getFunctions ( void )

Returns the list of SOAP functions.

Note: This function works only in WSDL mode.

返回值

The list of SOAP functions.

范例

Example #1 SoapClient->__getFunctions() example

<?php
$client = new SoapClient('some.wsdl');
var_dump($client->__getFunctions());
?>

参见

  • SoapClient->__construct

SoapClient->__doRequest
SoapClient->__getLastRequest
SOAP 函数


Returns last SOAP request

SoapClient->__getFunctions
SoapClient->__getLastRequestHeaders
SOAP 函数
PHP 手册

SoapClient->__getLastRequest

(No version information available, might be only in CVS)

SoapClient->__getLastRequest — Returns last SOAP request

说明

SoapClient
string __getLastRequest ( void )

Note: This method works only if the SoapClient object was created with the trace option.

返回值

The last SOAP request.

范例

Example #1 SoapClient->__getLastRequest() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

参见

  • SoapClient->__construct
  • SoapClient->__getLastRequestHeaders
  • SoapClient->__getLastResponse
  • SoapClient->__getLastResponseHeaders

SoapClient->__getFunctions
SoapClient->__getLastRequestHeaders
SOAP 函数


Returns last SOAP request headers

SoapClient->__getLastRequest
SoapClient->__getLastResponse
SOAP 函数
PHP 手册

SoapClient->__getLastRequestHeaders

(No version information available, might be only in CVS)

SoapClient->__getLastRequestHeaders — Returns last SOAP request headers

说明

SoapClient
string __getLastRequestHeaders ( void )

Note: This method works only if the SoapClient object was created with the trace option.

返回值

The last SOAP request headers.

参见

  • SoapClient->__construct
  • SoapClient->__getLastRequest
  • SoapClient->__getLastResponse
  • SoapClient->__getLastResponseHeaders

SoapClient->__getLastRequest
SoapClient->__getLastResponse
SOAP 函数


Returns last SOAP response.

SoapClient->__getLastRequestHeaders
SoapClient->__getLastResponseHeaders
SOAP 函数
PHP 手册

SoapClient->__getLastResponse

(No version information available, might be only in CVS)

SoapClient->__getLastResponse — Returns last SOAP response.

说明

SoapClient
string __getLastResponse ( void )

Note: This method works only if the SoapClient object was created with the trace option.

返回值

The last SOAP response.

范例

Example #1 SoapClient->__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
?>

参见

  • SoapClient->__construct
  • SoapClient->__getLastResponseHeaders
  • SoapClient->__getLastRequest
  • SoapClient->__getLastRequestHeaders

SoapClient->__getLastRequestHeaders
SoapClient->__getLastResponseHeaders
SOAP 函数


Returns last SOAP response headers.

SoapClient->__getLastResponse
SoapClient->__getTypes
SOAP 函数
PHP 手册

SoapClient->__getLastResponseHeaders

(No version information available, might be only in CVS)

SoapClient->__getLastResponseHeaders — Returns last SOAP response headers.

说明

SoapClient
string __getLastResponseHeaders ( void )

Note: This method works only if the SoapClient object was created with the trace option.

返回值

The last SOAP response headers.

参见

  • SoapClient->__construct
  • SoapClient->__getLastResponse
  • SoapClient->__getLastRequest
  • SoapClient->__getLastRequestHeaders

SoapClient->__getLastResponse
SoapClient->__getTypes
SOAP 函数


Returns list of SOAP types

SoapClient->__getLastResponseHeaders
SoapClient->__setCookie
SOAP 函数
PHP 手册

SoapClient->__getTypes

(No version information available, might be only in CVS)

SoapClient->__getTypes — Returns list of SOAP types

说明

SoapClient
array __getTypes ( void )

This function works only in WSDL mode.

返回值

The list of SOAP types.

范例

Example #1 SoapClient->__getTypes() example

<?php
$client = new SoapClient("some.wsdl");
var_dump($client->__getTypes());
?>

参见

  • SoapClient->__construct

SoapClient->__getLastResponseHeaders
SoapClient->__setCookie
SOAP 函数


Sets the cookie that will be sent with the SOAP request

SoapClient->__getTypes
SoapClient->__setLocation
SOAP 函数
PHP 手册

SoapClient->__setCookie

(No version information available, might be only in CVS)

SoapClient->__setCookie — Sets the cookie that will be sent with the SOAP request

说明

SoapClient
void __setCookie ( string $name [, string $value ] )

Defines a cookie to be sent along with the SOAP requests.

Note: Calling this method will affect all following calls to SoapClient methods.

参数

name

The name of the cookie.

value

The value of the cookie. If not specified, the cookie will be deleted.

返回值

无返回值。

SoapClient->__getTypes
SoapClient->__setLocation
SOAP 函数


Sets the location option.

SoapClient->__setCookie
SoapClient->__setSoapHeaders
SOAP 函数
PHP 手册

SoapClient->__setLocation

(No version information available, might be only in CVS)

SoapClient->__setLocation — Sets the location option.

说明

SoapClient
string __setLocation ([ string $location ] )

Sets the endpoint URL that will be touched by following SOAP requests.

Note: Calling this method is optional. The SoapClient uses the endpoint from the WSDL file by default.

参数

location

The URL to be set. If not specified, the existing value of the location option will be unset.

返回值

The old value of the location option.

范例

Example #1 Set A Location

<?php
$client = new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location = $client->__setLocation(); // unsets the location option

echo $old_location;

?>

上例将输出：

http://www.somethirdparty.com

SoapClient->__setCookie
SoapClient->__setSoapHeaders
SOAP 函数


Sets SOAP headers for subsequent calls.

SoapClient->__setLocation
SoapClient->__soapCall
SOAP 函数
PHP 手册

SoapClient->__setSoapHeaders

(No version information available, might be only in CVS)

SoapClient->__setSoapHeaders — Sets SOAP headers for subsequent calls.

说明

SoapClient
bool __setSoapHeaders ([ mixed $headers ] )

Defines headers to be sent along with the SOAP requests.

Note: Calling this method will replace any previous values.

参数

headers

The headers to be set. If not specified, the headers will be deleted.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Set A Single Header

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world'));

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid", null);
?>

Example #2 Set Multiple Headers

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world'));

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world again'));

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid", null);
?>

SoapClient->__setLocation
SoapClient->__soapCall
SOAP 函数


Calls a SOAP function

SoapClient->__setSoapHeaders
SoapFault->__construct
SOAP 函数
PHP 手册

SoapClient->__soapCall

(No version information available, might be only in CVS)

SoapClient->__soapCall — Calls a SOAP function

说明

SoapClient
mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

This is a low level API function that is used to make a SOAP call. Usually, in WSDL mode, you can simply call SOAP functions as SoapClient methods. This method useful in non-WSDL mode when soapaction is unknown, uri differs from the default or when sending and/or receiving SOAP Headers.

On error, a call to a SOAP function can cause PHP to throw exceptions or return a SoapFault object if exceptions are disabled. To check if the function call failed to catch the SoapFault exceptions, check the result with is_soap_fault().

返回值

SOAP functions may return one, or multiple values. If only one value is returned by the SOAP function, the return value of __soapCall will be a simple value (e.g. an integer, a string, etc). If multiple values are returned, __soapCall will return an associative array of named output parameters.

范例

Example #1 SoapClient->__soapCall() Examples

<?php

$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);

$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
                    new SoapHeader(), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
                    array('soapaction' => 'some_action',
                          'uri'        => 'some_uri'));
?>

参见

  • SoapClient->__construct
  • SoapParam->__construct
  • SoapVar->__construct
  • SoapHeader->__construct
  • SoapFault->__construct
  • is_soap_fault() - Checks if SOAP call was failed

SoapClient->__setSoapHeaders
SoapFault->__construct
SOAP 函数


SoapFault constructor

SoapClient->__soapCall
SoapHeader->__construct
SOAP 函数
PHP 手册

SoapFault->__construct

(No version information available, might be only in CVS)

SoapFault->__construct — SoapFault constructor

说明

SoapFault
__construct ( string $faultcode , string $faultstring [, string $faultactor [, mixed $detail [, string $faultname [, SoapHeader $headerfault ]]]] )

This class is useful when you would like to send SOAP fault responses from the PHP handler. faultcode , faultstring , faultactor and details are standard elements of SOAP Fault;

参数

faultcode

The error code of the SoapFault.

faultstring

The error message of the SoapFault.

faultactor

A string identifying the actor that caused the error.

detail

faultname

Can be used to select the proper fault encoding from WSDL.

headerfault

Can be used during SOAP header handling to report an error in the response header.

范例

Example #1 Some examples

<?php
function test($x)
{
    return new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

It is possible to use PHP exception mechanism to throw SOAP Fault.

Example #2 Some examples

<?php
function test($x)
{
    throw new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

参见

  • SoapClient->__construct
  • SoapClient->__soapCall
  • SoapVar->__construct
  • SoapParam->__construct
  • SoapFault->__construct
  • is_soap_fault() - Checks if SOAP call was failed

SoapClient->__soapCall
SoapHeader->__construct
SOAP 函数


SoapHeader constructor

SoapFault->__construct
SoapParam->__construct
SOAP 函数
PHP 手册

SoapHeader->__construct

(No version information available, might be only in CVS)

SoapHeader->__construct — SoapHeader constructor

说明

SoapHeader
__construct ( string $namespace , string $name [, mixed $data [, bool $mustUnderstand [, mixed $actor ]]] )

Constructs a new SoapHeader object.

参数

namespace

The namespace of the SOAP header element.

name

The name of the SOAP header element.

data

A SOAP header's content. It can be a PHP value or a SoapVar object.

mustUnderstand

Value of the mustUnderstand attribute of the SOAP header element.

actor

Value of the actor attribute of the SOAP header element.

范例

Example #1 Basic Example

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__soapCall("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

Example #2 Complex Type With Attributes

<?php
$client = new SoapClient('http://example.com/webservice.asmx?wsdl');

$attributes = array('attr1' => 'value1', 'attr2' => 'value2');

// the type_name and type_namespace parameters must be specified
// when specifying attributes
$complex_type = new SOAPVar($attributes,
                        SOAP_ENC_OBJECT,
                        'ComplexType', // type_name
                        'http://www.example.com/namespace', // type_namespace
                        'complex_type',
                        'http://www.example.com/namespace');

$header = new SOAPHeader('http://www.example.com/namespace',
                         'ComplexType',
                         $complex_type,
                         true);

$client->__soapCall("someFunc", null, null, $header);
?>

参见

  • SoapClient->__soapCall
  • SoapVar->__construct
  • SoapParam->__construct

SoapFault->__construct
SoapParam->__construct
SOAP 函数


SoapParam constructor

SoapHeader->__construct
SoapServer->addFunction
SOAP 函数
PHP 手册

SoapParam->__construct

(No version information available, might be only in CVS)

SoapParam->__construct — SoapParam constructor

说明

SoapParam
__construct ( mixed $data , string $name )

Constructs a new SoapParam object.

参数

data

The data to pass or return. You can pass this parameter directly as PHP value, but in this case it will be named as paramN and the SOAP Service may not understand it.

name

The parameter name.

范例

Example #1 Some examples

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

参见

  • SoapClient->__soapCall
  • SoapVar->__construct

SoapHeader->__construct
SoapServer->addFunction
SOAP 函数


Adds one or several functions those will handle SOAP requests

SoapParam->__construct
SoapServer->__construct
SOAP 函数
PHP 手册

SoapServer->addFunction

(No version information available, might be only in CVS)

SoapServer->addFunction — Adds one or several functions those will handle SOAP requests

说明

SoapServer
void addFunction ( mixed $functions )

Exports one or more functions for remote clients.

参数

functions

To export one function, pass the function name into this parameter as a string.

To export several functions, pass an array of function names.

To export all the functions, pass a special constant SOAP_FUNCTIONS_ALL.

Note: functions must receive all input arguments in the same order as defined in the WSDL file (They should not receive any output parameters as arguments) and return one or more values. To return several values they must return an array with named output parameters.

返回值

无返回值。

范例

Example #1 Some examples

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

参见

  • SoapServer->__construct
  • SoapServer->setClass

SoapParam->__construct
SoapServer->__construct
SOAP 函数


SoapServer constructor

SoapServer->addFunction
SoapServer->fault
SOAP 函数
PHP 手册

SoapServer->__construct

(No version information available, might be only in CVS)

SoapServer->__construct — SoapServer constructor

说明

SoapServer
__construct ( mixed $wsdl [, array $options ] )

This constructor allows the creation of SoapServer objects in WSDL or non-WSDL mode.

参数

wsdl

If you want the WSDL mode, you must set this to the URI of a WSDL file. In the other case, you must set this to NULL and set the uri option.

options

Allow setting a default SOAP version (soap_version), internal character encoding (encoding), and actor URI (actor).

The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

The typemap option is an array of type mappings. Type mapping is an array with keys type_name, type_ns (namespace URI), from_xml (callback accepting one string parameter) and to_xml (callback accepting one object parameter).

Other options are features and cache_wsdl.

范例

Example #1 Some examples

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

SoapServer->addFunction
SoapServer->fault
SOAP 函数


Issue SoapServer fault indicating an error

SoapServer->__construct
SoapServer->getFunctions
SOAP 函数
PHP 手册

SoapServer->fault

(No version information available, might be only in CVS)

SoapServer->fault — Issue SoapServer fault indicating an error

说明

SoapServer
void fault ( string $code , string $string [, string $actor [, mixed $details [, string $name ]]] )
Warning

本函数暂无文档，仅有参数列表。

参见

  • SoapFault->__construct

SoapServer->__construct
SoapServer->getFunctions
SOAP 函数


Returns list of defined functions

SoapServer->fault
SoapServer->handle
SOAP 函数
PHP 手册

SoapServer->getFunctions

(No version information available, might be only in CVS)

SoapServer->getFunctions — Returns list of defined functions

说明

SoapServer
array getFunctions ( void )

This method returns the list of all functions added by SoapServer->addFunction or SoapServer->setClass.

返回值

The list of all functions.

范例

Example #1 Some examples

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "This SOAP server can handle following functions: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

参见

  • SoapServer->__construct
  • SoapServer->addFunction
  • SoapServer->setClass

SoapServer->fault
SoapServer->handle
SOAP 函数


Handles a SOAP request

SoapServer->getFunctions
SoapServer->setClass
SOAP 函数
PHP 手册

SoapServer->handle

(No version information available, might be only in CVS)

SoapServer->handle — Handles a SOAP request

说明

SoapServer
void handle ([ string $soap_request ] )

Processes a SOAP request, calls necessary functions, and sends a response back.

参数

soap_request

The SOAP request. If this argument is omitted, the request is supposed to be in the $HTTP_RAW_POST_DATA PHP variable.

返回值

无返回值。

范例

Example #1 Some examples

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

参见

  • SoapServer->__construct

SoapServer->getFunctions
SoapServer->setClass
SOAP 函数


Sets class which will handle SOAP requests

SoapServer->handle
SoapServer->setPersistence
SOAP 函数
PHP 手册

SoapServer->setClass

(No version information available, might be only in CVS)

SoapServer->setClass — Sets class which will handle SOAP requests

说明

SoapServer
void setClass ( string $class_name [, mixed $args [, mixed $... ]] )

Exports all methods from specified class.

The object can be made persistent across request for a given PHP session with the SoapServer->setPersistence method.

参数

class_name

The name of the exported class.

args

These optional parameters will be passed to the default class constructor during object creation.

返回值

无返回值。

范例

Example #1 Some examples

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?>

参见

  • SoapServer->__construct
  • SoapServer->addFunction
  • SoapServer->setPersistence

SoapServer->handle
SoapServer->setPersistence
SOAP 函数


Sets persistence mode of SoapServer

SoapServer->setClass
SoapVar->__construct
SOAP 函数
PHP 手册

SoapServer->setPersistence

(No version information available, might be only in CVS)

SoapServer->setPersistence — Sets persistence mode of SoapServer

说明

SoapServer
void setPersistence ( int $mode )

This function allows saving data between requests in a PHP session. It works only with a server that exports functions from a class with SoapServer->setClass.

参数

mode

One of the SOAP_PERSISTENCE_XXX constants.

返回值

无返回值。

范例

Example #1 Some examples

<?php

$server->setPersistence(SOAP_PERSISTENCE_SESSION);

$server->setPersistence(SOAP_PERSISTENCE_REQUEST);

?>

Note: The persistence SOAP_PERSISTENCE_SESSION makes persistent only object of given class, but not the class static data. You may use $this->bar instead of self::$bar.

参见

  • SoapServer->__construct
  • SoapServer->setClass

SoapServer->setClass
SoapVar->__construct
SOAP 函数


SoapVar constructor

SoapServer->setPersistence
use_soap_error_handler
SOAP 函数
PHP 手册

SoapVar->__construct

(No version information available, might be only in CVS)

SoapVar->__construct — SoapVar constructor

说明

SoapVar
__construct ( mixed $data , int $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Constructs a new SoapVar object.

参数

data

The data to pass or return.

encoding

The encoding ID, one of the XSD_... constants.

type_name

The type name.

type_namespace

The type namespace.

node_name

The XML node name.

node_namespace

The XML node namespace.

范例

Example #1 Some examples

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

参见

  • SoapClient->__soapCall
  • SoapParam->__construct

SoapServer->setPersistence
use_soap_error_handler
SOAP 函数


Set whether to use the SOAP error handler and return the former value

SoapVar->__construct
XML-RPC
SOAP 函数
PHP 手册

use_soap_error_handler

(PHP 5)

use_soap_error_handler — Set whether to use the SOAP error handler and return the former value

说明

bool use_soap_error_handler ([ bool $handler=true ] )
Warning

本函数暂无文档，仅有参数列表。

SoapVar->__construct
XML-RPC
SOAP 函数


XML-RPC

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • XML-RPC 函数
    • xmlrpc_decode_request — 将 XML 译码为 PHP 本身的类型
    • xmlrpc_decode — 将 XML 译码为 PHP 本身的类型
    • xmlrpc_encode_request — 为 PHP 的值生成 XML
    • xmlrpc_encode — 为 PHP 的值生成 XML
    • xmlrpc_get_type — 为 PHP 的值获取 xmlrpc 的类型
    • xmlrpc_is_fault — Determines if an array value represents an XMLRPC fault
    • xmlrpc_parse_method_descriptions — 将 XML 译码成方法描述的列表
    • xmlrpc_server_add_introspection_data — 添加自我描述的文档
    • xmlrpc_server_call_method — 解析 XML 请求同时调用方法
    • xmlrpc_server_create — 创建一个 xmlrpc 服务端
    • xmlrpc_server_destroy — 销毁服务端资源
    • xmlrpc_server_register_introspection_callback — 注册一个 PHP 函数用于生成文档
    • xmlrpc_server_register_method — 注册一个 PHP 函数用于匹配 xmlrpc 方法名
    • xmlrpc_set_type — 为一个 PHP 字符串值设置 xmlrpc 的类型、base64 或日期时间
use_soap_error_handler
简介
Web Services


简介

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at » http://www.xmlrpc.com/, and more documentation on this extension and its functions at » http://xmlrpc-epi.sourceforge.net/.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

XML-RPC
安装/配置
XML-RPC


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
XML-RPC


安装

默认情况下在 PHP 中是不能使用 XML-RPC 支持的。你需要使用 --with-xmlrpc[=DIR] 配置选项编译 PHP 才能够使用 XML-RPC 支持。从 PHP 4.1.0 开始附带了此扩展。

需求
运行时配置
安装/配置


资源类型

This extension defines a XML-RPC server resource returned by xmlrpc_server_create().

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
XML-RPC 函数
XML-RPC


XML-RPC 函数

Table of Contents

  • xmlrpc_decode_request — 将 XML 译码为 PHP 本身的类型
  • xmlrpc_decode — 将 XML 译码为 PHP 本身的类型
  • xmlrpc_encode_request — 为 PHP 的值生成 XML
  • xmlrpc_encode — 为 PHP 的值生成 XML
  • xmlrpc_get_type — 为 PHP 的值获取 xmlrpc 的类型
  • xmlrpc_is_fault — Determines if an array value represents an XMLRPC fault
  • xmlrpc_parse_method_descriptions — 将 XML 译码成方法描述的列表
  • xmlrpc_server_add_introspection_data — 添加自我描述的文档
  • xmlrpc_server_call_method — 解析 XML 请求同时调用方法
  • xmlrpc_server_create — 创建一个 xmlrpc 服务端
  • xmlrpc_server_destroy — 销毁服务端资源
  • xmlrpc_server_register_introspection_callback — 注册一个 PHP 函数用于生成文档
  • xmlrpc_server_register_method — 注册一个 PHP 函数用于匹配 xmlrpc 方法名
  • xmlrpc_set_type — 为一个 PHP 字符串值设置 xmlrpc 的类型、base64 或日期时间
预定义常量
xmlrpc_decode_request
XML-RPC


将 XML 译码为 PHP 本身的类型

XML-RPC 函数
xmlrpc_decode
XML-RPC 函数
PHP 手册

xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_request — 将 XML 译码为 PHP 本身的类型

描述

array xmlrpc_decode_request ( string $xml , string &$method [, string $encoding ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

XML-RPC 函数
xmlrpc_decode
XML-RPC 函数


将 XML 译码为 PHP 本身的类型

xmlrpc_decode_request
xmlrpc_encode_request
XML-RPC 函数
PHP 手册

xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode — 将 XML 译码为 PHP 本身的类型

描述

array xmlrpc_decode ( string $xml [, string $encoding ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_decode_request
xmlrpc_encode_request
XML-RPC 函数


为 PHP 的值生成 XML

xmlrpc_decode
xmlrpc_encode
XML-RPC 函数
PHP 手册

xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_request — 为 PHP 的值生成 XML

描述

string xmlrpc_encode_request ( string $method , mixed $params [, array $output_options ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_decode
xmlrpc_encode
XML-RPC 函数


为 PHP 的值生成 XML

xmlrpc_encode_request
xmlrpc_get_type
XML-RPC 函数
PHP 手册

xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode — 为 PHP 的值生成 XML

描述

string xmlrpc_encode ( mixed $value )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_encode_request
xmlrpc_get_type
XML-RPC 函数


为 PHP 的值获取 xmlrpc 的类型

xmlrpc_encode
xmlrpc_is_fault
XML-RPC 函数
PHP 手册

xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_type — 为 PHP 的值获取 xmlrpc 的类型

描述

string xmlrpc_get_type ( mixed $value )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

该函数对于 base64 与日期时间字符串特别有用。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_encode
xmlrpc_is_fault
XML-RPC 函数


Determines if an array value represents an XMLRPC fault

xmlrpc_get_type
xmlrpc_parse_method_descriptions
XML-RPC 函数
PHP 手册

xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5)

xmlrpc_is_fault — Determines if an array value represents an XMLRPC fault

说明

bool xmlrpc_is_fault ( array $arg )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

参数

arg

Array returned by xmlrpc_decode().

返回值

Returns TRUE if the argument means fault, FALSE otherwise. Fault description is available in $arg["faultString"], fault code is in $arg["faultCode"].

范例

See example by xmlrpc_encode_request().

参见

  • xmlrpc_decode() - 将 XML 译码为 PHP 本身的类型

xmlrpc_get_type
xmlrpc_parse_method_descriptions
XML-RPC 函数


将 XML 译码成方法描述的列表

xmlrpc_is_fault
xmlrpc_server_add_introspection_data
XML-RPC 函数
PHP 手册

xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptions — 将 XML 译码成方法描述的列表

描述

array xmlrpc_parse_method_descriptions ( string $xml )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_is_fault
xmlrpc_server_add_introspection_data
XML-RPC 函数


添加自我描述的文档

xmlrpc_parse_method_descriptions
xmlrpc_server_call_method
XML-RPC 函数
PHP 手册

xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_data — 添加自我描述的文档

描述

int xmlrpc_server_add_introspection_data ( resource $server , array $desc )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_parse_method_descriptions
xmlrpc_server_call_method
XML-RPC 函数


解析 XML 请求同时调用方法

xmlrpc_server_add_introspection_data
xmlrpc_server_create
XML-RPC 函数
PHP 手册

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_method — 解析 XML 请求同时调用方法

描述

string xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data [, array $output_options ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_server_add_introspection_data
xmlrpc_server_create
XML-RPC 函数


创建一个 xmlrpc 服务端

xmlrpc_server_call_method
xmlrpc_server_destroy
XML-RPC 函数
PHP 手册

xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_create — 创建一个 xmlrpc 服务端

描述

resource xmlrpc_server_create ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_server_call_method
xmlrpc_server_destroy
XML-RPC 函数


销毁服务端资源

xmlrpc_server_create
xmlrpc_server_register_introspection_callback
XML-RPC 函数
PHP 手册

xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroy — 销毁服务端资源

描述

int xmlrpc_server_destroy ( resource $server )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_server_create
xmlrpc_server_register_introspection_callback
XML-RPC 函数


注册一个 PHP 函数用于生成文档

xmlrpc_server_destroy
xmlrpc_server_register_method
XML-RPC 函数
PHP 手册

xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callback — 注册一个 PHP 函数用于生成文档

描述

bool xmlrpc_server_register_introspection_callback ( resource $server , string $function )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_server_destroy
xmlrpc_server_register_method
XML-RPC 函数


注册一个 PHP 函数用于匹配 xmlrpc 方法名

xmlrpc_server_register_introspection_callback
xmlrpc_set_type
XML-RPC 函数
PHP 手册

xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_method — 注册一个 PHP 函数用于匹配 xmlrpc 方法名

描述

bool xmlrpc_server_register_method ( resource $server , string $method_name , string $function )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_server_register_introspection_callback
xmlrpc_set_type
XML-RPC 函数


为一个 PHP 字符串值设置 xmlrpc 的类型、base64 或日期时间

xmlrpc_server_register_method
Windows平台下的扩展
XML-RPC 函数
PHP 手册

xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_type — 为一个 PHP 字符串值设置 xmlrpc 的类型、base64 或日期时间

描述

bool xmlrpc_set_type ( string &$value , string $type )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

xmlrpc_server_register_method
Windows平台下的扩展
XML-RPC 函数


Windows平台下的扩展

  • .NET
    • 简介
    • 安装/配置
    • 预定义常量
    • .NET 函数
  • COM — COM and .Net (Windows)
    • 简介
    • 安装/配置
    • 预定义常量
    • Errors and error handling
    • 范例
    • COM 函数
  • Printer
    • 简介
    • 安装/配置
    • 预定义常量
    • Printer 函数
  • W32api
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • W32api 函数
  • win32ps
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • win32ps 函数
  • win32service
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • win32service 函数
xmlrpc_set_type
.NET
函数参考


.NET

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • .NET 函数
    • dotnet_load — 加载一个 DOTNET 模块
Windows平台下的扩展
简介
Windows平台下的扩展


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

.NET
安装/配置
.NET


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
.NET


预定义常量

本扩展模块未定义任何常量。

资源类型
.NET 函数
.NET


.NET 函数

Table of Contents

  • dotnet_load — 加载一个 DOTNET 模块
预定义常量
dotnet_load
.NET


加载一个 DOTNET 模块

.NET 函数
COM
.NET 函数
PHP 手册

dotnet_load

(PHP 4 >= 4.0.0)

dotnet_load — 加载一个 DOTNET 模块

说明

int dotnet_load ( string $assembly_name [, string $datatype_name [, int $codepage ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

.NET 函数
COM
.NET 函数


COM and .Net (Windows)

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Errors and error handling
  • 范例
    • For Each
    • Arrays and Array-style COM properties
  • COM 函数
    • COM — COM 类
    • DOTNET — DOTNET class
    • VARIANT — VARIANT 类
    • com_addref — 增加组件引用计数。[被废弃]
    • com_create_guid — Generate a globally unique identifier (GUID)
    • com_event_sink — Connect events from a COM object to a PHP object
    • com_get_active_object — Returns a handle to an already running instance of a COM object
    • com_get — 获取 COM 组件的属性值 [被废弃]
    • com_invoke — 调用 COM 组件的方法。
    • com_isenum — 获取一个 IEnumVariant
    • com_load_typelib — 装载一个 Typelib
    • com_load — 创建新的 COM 组件的引用
    • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
    • com_propget — com_get 的别名
    • com_propput — com_set 的别名
    • com_propset — com_set 的别名
    • com_release — 减少组件引用计数。[被废弃]
    • com_set — 给 COM 组件的属性赋值
    • variant_abs — Returns the absolute value of a variant
    • variant_add — "Adds" two variant values together and returns the result
    • variant_and — Performs a bitwise AND operation between two variants
    • variant_cast — Convert a variant into a new variant object of another type
    • variant_cat — concatenates two variant values together and returns the result
    • variant_cmp — Compares two variants
    • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
    • variant_div — Returns the result from dividing two variants
    • variant_eqv — Performs a bitwise equivalence on two variants
    • variant_fix — Returns the integer portion of a variant
    • variant_get_type — Returns the type of a variant object
    • variant_idiv — Converts variants to integers and then returns the result from dividing them
    • variant_imp — Performs a bitwise implication on two variants
    • variant_int — Returns the integer portion of a variant
    • variant_mod — Divides two variants and returns only the remainder
    • variant_mul — Multiplies the values of the two variants
    • variant_neg — Performs logical negation on a variant
    • variant_not — Performs bitwise not negation on a variant
    • variant_or — Performs a logical disjunction on two variants
    • variant_pow — Returns the result of performing the power function with two variants
    • variant_round — Rounds a variant to the specified number of decimal places
    • variant_set_type — Convert a variant into another type "in-place"
    • variant_set — Assigns a new value for a variant object
    • variant_sub — Subtracts the value of the right variant from the left variant value
    • variant_xor — Performs a logical exclusion on two variants
dotnet_load
简介
Windows平台下的扩展


简介

COM is an acronym for Component Object Model; it is an object orientated layer (and associated services) on top of DCE RPC (an open standard) and defines a common calling convention that enables code written in any language to call and interoperate with code written in any other language (provided those languages are COM aware). Not only can the code be written in any language, but it need not even be part of the same executable; the code can be loaded from a DLL, be found in another process running on the same machine, or, with DCOM (Distributed COM), be found in another process on a remote machine, all without your code even needing to know where a component resides.

There is a subset of COM known as OLE Automation which comprises a set of COM interfaces that allow loose binding to COM objects, so that they can be introspected and called at run-time without compile-time knowledge of how the object works. The PHP COM extension utilizes the OLE Automation interfaces to allow you to create and call compatible objects from your scripts. Technically speaking, this should really be called the "OLE Automation Extension for PHP", since not all COM objects are OLE compatible.

Now, why would or should you use COM? COM is one of the main ways to glue applications and components together on the Windows platform; using COM you can launch Microsoft Word, fill in a document template and save the result as a Word document and send it to a visitor of your web site. You can also use COM to perform administrative tasks for your network and to configure your IIS; these are just the most common uses; you can do much more with COM.

Starting with PHP 5, this extension (and this documentation) was rewritten from scratch and much of the old confusing and bogus cruft has be removed. Additionally, we support the instantiation and creation of .Net assemblies using the COM interoperability layer provided by Microsoft.

Please read » this article for an overview of the changes in this extension in PHP 5.

COM
安装/配置
COM


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
COM


需求

COM functions are only available for the Windows version of PHP.

.Net support requires PHP 5 and the .Net runtime.

安装/配置
安装
安装/配置


安装

本扩展模块作为 PHP 内核的一部分，无需安装即可使用。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

You are responsible for installing support for the various COM objects that you intend to use (such as MS Word); we don't and can't bundle all of those with PHP.

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

COM 配置选项
名称 | 默认值 | 可修改范围 | 更新记录
com.allow_dcom | "0" | PHP_INI_SYSTEM | 自 PHP 4.0.5 起可用
com.autoregister_typelib | "0" | PHP_INI_ALL | 在 PHP 4 中是 PHP_INI_SYSTEM。自 PHP 4.1.0 起可用
com.autoregister_verbose | "0" | PHP_INI_ALL | 在 PHP 4 中是 PHP_INI_SYSTEM。自 PHP 4.1.0 起可用
com.autoregister_casesensitive | "1" | PHP_INI_ALL | 在 PHP 4 中是 PHP_INI_SYSTEM。自 PHP 4.1.0 起可用
com.code_page | "" | PHP_INI_ALL | 自 PHP 5.0.0 起可用
com.typelib_file | "" | PHP_INI_SYSTEM | 自 PHP 4.0.5 起可用

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

以下是配置选项的简要解释。

com.allow_dcom

如果打开此选项，PHP 将被允许以一个 D-COM（Distributed COM）客户方式操作并允许 PHP 脚本在远程服务器上实例化 COM 对象。

com.autoregister_typelib

When this is turned on, PHP will attempt to register constants from the typelibrary of objects that it instantiates, if those objects implement the interfaces required to obtain that information. The case sensitivity of the constants it registers is controlled by the 运行时配置 configuration directive.

com.autoregister_verbose

When this is turned on, any problems with loading a typelibrary during object instantiation will be reported using the PHP error mechanism. The default is off, which does not emit any indication if there was an error finding or loading the type library.

com.autoregister_casesensitive

When this is turned on (the default), constants found in auto-loaded type libraries will be registered case sensitively. See com_load_typelib() for more details.

com.code_page

It controls the default character set code-page to use when passing strings to and from COM objects. If set to an empty string, PHP will assume that you want CP_ACP, which is the default system ANSI code page.

If the text in your scripts is encoded using a different encoding/character set by default, setting this directive will save you from having to pass the code page as a parameter to the COM class constructor. Please note that by using this directive (as with any PHP configuration directive), your PHP script becomes less portable; you should use the COM constructor parameter whenever possible.

Note: This configuration directive was introduced with PHP 5.

com.typelib_file

When set, this should hold the path to a file that contains a list of typelibraries that should be loaded on startup. Each line of the file will be treated as the type library name and loaded as though you had called com_load_typelib(). The constants will be registered persistently, so that the library only needs to be loaded once. If a type library name ends with the string #cis or #case_insensitive, then the constants from that library will be registered case insensitively.

安装
资源类型
安装/配置


资源类型

This extension defines a reference to a COM component returned by deprecated com_load() (this function does not exist in PHP 5; use the COM class instead).

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

CLSCTX_INPROC_SERVER (integer)
CLSCTX_INPROC_HANDLER (integer)
CLSCTX_LOCAL_SERVER (integer)
CLSCTX_REMOTE_SERVER (integer)
CLSCTX_SERVER (integer)
CLSCTX_ALL (integer)
VT_NULL (integer)
VT_EMPTY (integer)
VT_UI1 (integer)
VT_I2 (integer)
VT_I4 (integer)
VT_R4 (integer)
VT_R8 (integer)
VT_BOOL (integer)
VT_ERROR (integer)
VT_CY (integer)
VT_DATE (integer)
VT_BSTR (integer)
VT_DECIMAL (integer)
VT_UNKNOWN (integer)
VT_DISPATCH (integer)
VT_VARIANT (integer)
VT_I1 (integer)
VT_UI2 (integer)
VT_UI4 (integer)
VT_INT (integer)
VT_UINT (integer)
VT_ARRAY (integer)
VT_BYREF (integer)
CP_ACP (integer)
CP_MACCP (integer)
CP_OEMCP (integer)
CP_UTF7 (integer)
CP_UTF8 (integer)
CP_SYMBOL (integer)
CP_THREAD_ACP (integer)
VARCMP_LT (integer)
VARCMP_EQ (integer)
VARCMP_GT (integer)
VARCMP_NULL (integer)
NORM_IGNORECASE (integer)
NORM_IGNORENONSPACE (integer)
NORM_IGNORESYMBOLS (integer)
NORM_IGNOREWIDTH (integer)
NORM_IGNOREKANATYPE (integer)
NORM_IGNOREKASHIDA (integer)
DISP_E_DIVBYZERO (integer)
DISP_E_OVERFLOW (integer)
MK_E_UNAVAILABLE (integer)
资源类型
Errors and error handling
COM


Errors and error handling

Exceptions (PHP 5)

This extension will throw instances of the class com_exception whenever there is a potentially fatal error reported by COM. All COM exceptions have a well-defined code property that corresponds to the HRESULT return value from the various COM operations. You may use this code to make programmatic decisions on how to handle the exception.

预定义常量
范例
COM


范例

Table of Contents

  • For Each
  • Arrays and Array-style COM properties
Errors and error handling
For Each
COM


For Each

Starting with PHP 5, you may use PHP's own foreach statement to iterate over the contents of a standard COM/OLE IEnumVariant. In laymans terms, this means that you can use foreach in places where you would have used For Each in VB/ASP code.

Example #1 For Each in ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Example #2 while() ... Next() in PHP 4

<?php
$domainObject = new COM("WinNT://Domain");
while ($obj = $domainObject->Next()) {
   echo $obj->Name . "<br />";
}
?>

Example #3 foreach in PHP 5

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
   echo $obj->Name . "<br />";
}
?>

范例
Arrays and Array-style COM properties
范例


Arrays and Array-style COM properties

Many COM objects expose their properties as arrays, or using array-style access. In PHP 4, you may use PHP array syntax to read/write such a property, but only a single dimension is allowed. If you want to read a multi-dimensional property, you could instead make the property access into a function call, with each parameter representing each dimension of the array access, but there is no way to write to such a property.

PHP 5 introduces the following new features to make your life easier:

  • Access multi-dimensional arrays, or COM properties that require multiple parameters using PHP array syntax. You can also write or set properties using this technique.

  • Iterate SafeArrays ("true" arrays) using the foreach control structure. This works because SafeArrays include information about their size. If an array-style property implements IEnumVariant then you can also use foreach for that property too; take a look at For Each for more information on this topic.

For Each
COM 函数
范例


COM 函数

参见

For further information on COM read the » COM specification or perhaps take a look at Don Box's » Yet Another COM Library (YACL). You might find some additional useful information in our FAQ for PHP 和 COM. If you're thinking of using MS Office applications on the server side, you should read the information here: » Considerations for Server-Side Automation of Office.

Table of Contents

  • COM — COM 类
  • DOTNET — DOTNET class
  • VARIANT — VARIANT 类
  • com_addref — 增加组件引用计数。[被废弃]
  • com_create_guid — Generate a globally unique identifier (GUID)
  • com_event_sink — Connect events from a COM object to a PHP object
  • com_get_active_object — Returns a handle to an already running instance of a COM object
  • com_get — 获取 COM 组件的属性值 [被废弃]
  • com_invoke — 调用 COM 组件的方法。
  • com_isenum — 获取一个 IEnumVariant
  • com_load_typelib — 装载一个 Typelib
  • com_load — 创建新的 COM 组件的引用
  • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
  • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
  • com_propget — com_get 的别名
  • com_propput — com_set 的别名
  • com_propset — com_set 的别名
  • com_release — 减少组件引用计数。[被废弃]
  • com_set — 给 COM 组件的属性赋值
  • variant_abs — Returns the absolute value of a variant
  • variant_add — "Adds" two variant values together and returns the result
  • variant_and — Performs a bitwise AND operation between two variants
  • variant_cast — Convert a variant into a new variant object of another type
  • variant_cat — concatenates two variant values together and returns the result
  • variant_cmp — Compares two variants
  • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
  • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
  • variant_div — Returns the result from dividing two variants
  • variant_eqv — Performs a bitwise equivalence on two variants
  • variant_fix — Returns the integer portion of a variant
  • variant_get_type — Returns the type of a variant object
  • variant_idiv — Converts variants to integers and then returns the result from dividing them
  • variant_imp — Performs a bitwise implication on two variants
  • variant_int — Returns the integer portion of a variant
  • variant_mod — Divides two variants and returns only the remainder
  • variant_mul — Multiplies the values of the two variants
  • variant_neg — Performs logical negation on a variant
  • variant_not — Performs bitwise not negation on a variant
  • variant_or — Performs a logical disjunction on two variants
  • variant_pow — Returns the result of performing the power function with two variants
  • variant_round — Rounds a variant to the specified number of decimal places
  • variant_set_type — Convert a variant into another type "in-place"
  • variant_set — Assigns a new value for a variant object
  • variant_sub — Subtracts the value of the right variant from the left variant value
  • variant_xor — Performs a logical exclusion on two variants
Arrays and Array-style COM properties
COM
COM


COM 类

COM 函数
DOTNET
COM 函数
PHP 手册

COM

(PHP 4 >= 4.1.0, PHP 5)

COM — COM 类

$obj = new COM("server.object")

描述

COM 类提供了一个将 (D)COM 组件整合到 PHP 脚本中的框架。

方法

string COM::COM ( string $module_name [, string $server_name [, int $codepage ]] )

COM 类构造函数。参数：

module_name
被请求组件的名字或 class-id。
server_name
DCOM 服务器的名字，组件在此服务器上被取用。如果是 NULL，则假定是 localhost。想要允许 DCOM，必须将 php.ini 中的 com.allow_dcom 设为 TRUE。
codepage
指定用于将 PHP 字符串（php-strings）转换成 UNICODE 字符串（unicode-strings）的代码页，反之亦然。可用的值为 CP_ACP、CP_MACCP、CP_OEMCP、CP_SYMBOL、CP_THREAD_ACP, CP_UTF7 和 CP_UTF8。

Example #1 COM 示例 （1）

// 启动 word
$word = new COM("word.application") or die("Unable to instanciate Word");
print "Loaded Word, version {$word->Version}\n";

//将其置前
$word->Visible = 1;

//打开一个空文档
$word->Documents->Add();

//随便做些事情
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//关闭 word
$word->Quit();

//释放对象
$word->Release();
$word = null;

Example #2 COM 示例 （2）

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // 记录集

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++)
{
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF)
{
    for ($i=0; $i < $num_columns; $i++)
    {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // rowcount 自增
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs->Release();
$conn->Release();

$rs = null;
$conn = null;

COM 函数
DOTNET
COM 函数


DOTNET class

COM
VARIANT
COM 函数
PHP 手册

DOTNET

(PHP 4 >= 4.1.0, PHP 5)

DOTNET — DOTNET class

$obj = new DOTNET("assembly", "classname")

Description

The DOTNET class allows you to instantiate a class from a .Net assembly and call its methods and access its properties.

Methods

string DOTNET::DOTNET ( string $assembly_name , string $class_name [, int $codepage ] )

DOTNET class constructor. assembly_name specifies which assembly should be loaded, and class_name specifices which class in that assembly to instantiate. You may optionally specify a codepage to use for unicode string transformations; see the COM class for more details on code pages.

The returned object is an overloaded object, which means that PHP does not see any fixed methods as it does with regular classes; instead, any property or method accesses are passed through to COM and from there to DOTNET. In other words, the .Net object is mapped through the COM interoperability layer provided by the .Net runtime.

Once you have created a DOTNET object, PHP treats it identically to any other COM object; all the same rules apply.

Example #1 DOTNET example

<?php
 $stack = new DOTNET("mscorlib", "System.Collections.Stack");
 $stack->Push(".Net");
 $stack->Push("Hello ");
 echo $stack->Pop() . $stack->Pop();
?>

Note: You need to install the .Net runtime on your web server to take advantage of this feature.

COM
VARIANT
COM 函数


VARIANT 类

DOTNET
com_addref
COM 函数
PHP 手册

VARIANT

(PHP 4 >= 4.1.0, PHP 5)

VARIANT — VARIANT 类

$vVar = new VARIANT($var)

描述

用于将变量封装进 VARIANT 结构中的简单容器。

方法

string VARIANT::VARIANT ([ mixed $value [, int $type [, int $codepage ]]] )

VARIANT 类构造函数。参数：

value
初始值。若省略则创建一个 VT_EMPTY 对象。
type
指定 VARIANT 对象的内容类型。可用的值为 VT_UI1、VT_UI2、VT_UI4、VT_I1、VT_I2、VT_I4、VT_R4、VT_R8、VT_INT、VT_UINT、VT_BOOL、VT_ERROR、VT_CY、VT_DATE、VT_BSTR、VT_DECIMAL、VT_UNKNOWN、VT_DISPATCH 和 VT_VARIANT。这些值相互排斥，但是可以使用 VT_BYREF 将它们联合起来指定为一个值。若省略，则使用参数 value 的类型。额外信息请查阅 msdn 库。
codepage
指定用于将 PHP 字符串（php-strings）转换成 UNICODE 字符串（unicode-strings）的代码页，反之亦然。可用的值为 CP_ACP、CP_MACCP、CP_OEMCP、CP_SYMBOL、CP_THREAD_ACP, CP_UTF7 和 CP_UTF8。

DOTNET
com_addref
COM 函数


增加组件引用计数。[被废弃]

VARIANT
com_create_guid
COM 函数
PHP 手册

com_addref

(PHP 4 >= 4.1.0)

com_addref — 增加组件引用计数。[被废弃]

描述

void com_addref ( void )

增加组件引用计数。

Warning

你应当不再需要使用该函数。

Note: 该函数已经在 PHP 5 取消。

VARIANT
com_create_guid
COM 函数


Generate a globally unique identifier (GUID)

com_addref
com_event_sink
COM 函数
PHP 手册

com_create_guid

(PHP 5)

com_create_guid — Generate a globally unique identifier (GUID)

说明

string com_create_guid ( void )

Generates a Globally Unique Identifier (GUID).

A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to enclose a GUID in curly braces.

返回值

Returns the GUID as a string.

参见

  • uuid_create() in the PECL uuid extension

com_addref
com_event_sink
COM 函数


Connect events from a COM object to a PHP object

com_create_guid
com_get_active_object
COM 函数
PHP 手册

com_event_sink

(PHP 4 >= 4.2.0, PHP 5)

com_event_sink — Connect events from a COM object to a PHP object

说明

bool com_event_sink ( variant $comobject , object $sinkobject [, mixed $sinkinterface ] )

Instructs COM to sink events generated by comobject into the PHP object sinkobject .

Be careful how you use this feature; if you are doing something similar to the example below, then it doesn't really make sense to run it in a web server context.

参数

comobject

sinkobject

sinkobject should be an instance of a class with methods named after those of the desired dispinterface; you may use com_print_typeinfo() to help generate a template class for this purpose.

sinkinterface

PHP will attempt to use the default dispinterface type specified by the typelibrary associated with comobject , but you may override this choice by setting sinkinterface to the name of the dispinterface that you want to use.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 COM event sink example

<?php
class IEEventSinker {
    var $terminated = false;

   function ProgressChange($progress, $progressmax) {
      echo "Download progress: $progress / $progressmax\n";
    }

    function DocumentComplete(&$dom, $url) {
      echo "Document $url complete\n";
    }

    function OnQuit() {
      echo "Quit!\n";
      $this->terminated = true;
    }
}
$ie = new COM("InternetExplorer.Application");
// note that you don't need the & for PHP 5!
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

参见

  • com_print_typeinfo() - Print out a PHP class definition for a dispatchable interface
  • com_message_pump() - Process COM messages, sleeping for up to timeoutms milliseconds

com_create_guid
com_get_active_object
COM 函数


Returns a handle to an already running instance of a COM object

com_event_sink
com_get
COM 函数
PHP 手册

com_get_active_object

(PHP 5)

com_get_active_object — Returns a handle to an already running instance of a COM object

说明

variant com_get_active_object ( string $progid [, int $code_page ] )

com_get_active_object() is similar to creating a new instance of a COM object, except that it will only return an object to your script if the object is already running. OLE applications use something known as the Running Object Table to allow well-known applications to be launched only once; this function exposes the COM library function GetActiveObject() to get a handle on a running instance.

参数

progid

progid must be either the ProgID or CLSID for the object that you want to access (for example Word.Application).

code_page

Acts in precisely the same way that it does for the COM class.

返回值

If the requested object is running, it will be returned to your script just like any other COM object.

错误／异常

There are a variety of reasons why this function might fail, the most common being that the object is not already running. In that situation, the exception error code will be MK_E_UNAVAILABLE; you can use the getCode method of the exception object to check the exception code.

注释

Warning

Using com_get_active_object() in a web server context is not always a smart idea. Most COM/OLE applications are not designed to handle more than one client concurrently, even (or especially!) Microsoft Office. You should read » Considerations for Server-Side Automation of Office for more information on the general issues involved.

com_event_sink
com_get
COM 函数


获取 COM 组件的属性值 [被废弃]

com_get_active_object
com_invoke
COM 函数
PHP 手册

com_get

(PHP 4)

com_get — 获取 COM 组件的属性值 [被废弃]

描述

mixed com_get ( resource $com_object , string $property )

返回由 com_object 所引用的 COM 对象的 property 属性值，出错则返回 FALSE。

Example #1 不要使用 com_get() ，使用 OO 语法代替

<?php
// do this
$var = $obj->property;
// instead of this:
$var = com_get($obj, 'property');
?>

Note: 本函数在 PHP 5 中不存在，应该使用常规的并更自然的面向对象语法来访问属性或调用方法。

com_get_active_object
com_invoke
COM 函数


调用 COM 组件的方法。

com_get
com_isenum
COM 函数
PHP 手册

com_invoke

(PHP 4)

com_invoke — 调用 COM 组件的方法。

描述

mixed com_invoke ( resource $com_object , string $function_name [, mixed $ function parameters, ... ] )

com_invoke() 调用由 com_object 所引用的对象的方法。出错返回 FALSE，成功则返回 function_name 的返回值。

com_get
com_isenum
COM 函数


获取一个 IEnumVariant

com_invoke
com_load_typelib
COM 函数
PHP 手册

com_isenum

(PHP 4 >= 4.1.0)

com_isenum — 获取一个 IEnumVariant

描述

void com_isenum ( object $com_module )

Warning

本函数暂无文档，仅有参数列表。

com_invoke
com_load_typelib
COM 函数


装载一个 Typelib

com_isenum
com_load
COM 函数
PHP 手册

com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelib — 装载一个 Typelib

描述

void com_load_typelib ( string $typelib_name [, int $case_insensitive ] )

Warning

本函数暂无文档，仅有参数列表。

com_isenum
com_load
COM 函数


创建新的 COM 组件的引用

com_load_typelib
com_message_pump
COM 函数
PHP 手册

com_load

(PHP 4)

com_load — 创建新的 COM 组件的引用

描述

string com_load ( string $module_name [, string $ server_name [, int $ codepage ]] )

com_load() 创建新的 COM 组件同时返回此组件的引用。失败则返回 FALSE。codepage 可用的值为：CP_ACP、CP_MACCP、CP_OEMCP、CP_SYMBOL、CP_THREAD_ACP, CP_UTF7 和 CP_UTF8。

com_load_typelib
com_message_pump
COM 函数


Process COM messages, sleeping for up to timeoutms milliseconds

com_load
com_print_typeinfo
COM 函数
PHP 手册

com_message_pump

(PHP 4 >= 4.2.0, PHP 5)

com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds

说明

bool com_message_pump ([ int $timeoutms ] )

This function will sleep for up to timeoutms milliseconds, or until a message arrives in the queue.

The purpose of this function is to route COM calls between apartments and handle various synchronization issues. This allows your script to wait efficiently for events to be triggered, while still handling other events or running other code in the background. You should use it in a loop, as demonstrated by the example in the com_event_sink() function, until you are finished using event bound COM objects.

参数

timeoutms

The timeout, in milliseconds.

If you do not specify a value for timeoutms , then 0 will be assumed. A 0 value means that no waiting will be performed; if there are messages pending they will be dispatched as before; if there are no messages pending, the function will return FALSE immediately without sleeping.

返回值

If a message or messages arrives before the timeout, they will be dispatched, and the function will return TRUE. If the timeout occurs and no messages were processed, the return value will be FALSE.

com_load
com_print_typeinfo
COM 函数


Print out a PHP class definition for a dispatchable interface

com_message_pump
com_propget
COM 函数
PHP 手册

com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5)

com_print_typeinfo — Print out a PHP class definition for a dispatchable interface

说明

bool com_print_typeinfo ( object $comobject [, string $dispinterface [, bool $wantsink ]] )

The purpose of this function is to help generate a skeleton class for use as an event sink. You may also use it to generate a dump of any COM object, provided that it supports enough of the introspection interfaces, and that you know the name of the interface you want to display.

参数

comobject

comobject should be either an instance of a COM object, or be the name of a typelibrary (which will be resolved according to the rules set out in com_load_typelib()).

dispinterface

The name of an IDispatch descendant interface that you want to display.

wantsink

If set to TRUE, the corresponding sink interface will be displayed instead.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • com_event_sink() - Connect events from a COM object to a PHP object
  • com_load_typelib() - 装载一个 Typelib

com_message_pump
com_propget
COM 函数


com_get 的别名

com_print_typeinfo
com_propput
COM 函数
PHP 手册

com_propget

(PHP 4)

com_propget — com_get() 的别名

描述

此函数是 com_get() 的别名。

com_print_typeinfo
com_propput
COM 函数


com_set 的别名

com_propget
com_propset
COM 函数
PHP 手册

com_propput

(PHP 4)

com_propput — com_set() 的别名

描述

此函数是 com_set() 的别名。

com_propget
com_propset
COM 函数


com_set 的别名

com_propput
com_release
COM 函数
PHP 手册

com_propset

(PHP 4)

com_propset — com_set() 的别名

描述

此函数是 com_set() 的别名。

com_propput
com_release
COM 函数


减少组件引用计数。[被废弃]

com_propset
com_set
COM 函数
PHP 手册

com_release

(PHP 4 >= 4.1.0)

com_release — 减少组件引用计数。[被废弃]

描述

void com_release ( void )

减少组件引用计数。

Warning

你应当不再需要使用该函数。

Note: 该函数已经在 PHP 5 取消。

com_propset
com_set
COM 函数


给 COM 组件的属性赋值

com_release
variant_abs
COM 函数
PHP 手册

com_set

(PHP 4)

com_set — 给 COM 组件的属性赋值

描述

void com_set ( resource $com_object , string $property , mixed $value )

设置由 com_object 所引用的对象的 property 属性值。成功则返回新设置的值，出错则返回 FALSE。

Example #1 不要使用 com_set() ，使用 OO 语法代替

<?php
   // do this
   $obj->property = $value;
   // instead of this:
   com_set($obj, 'property', $value);
   ?>

Note: 本函数在 PHP 5 中不存在，应该使用常规的并更自然的面向对象语法来访问属性或调用方法。

com_release
variant_abs
COM 函数


Returns the absolute value of a variant

com_set
variant_add
COM 函数
PHP 手册

variant_abs

(PHP 5)

variant_abs — Returns the absolute value of a variant

说明

mixed variant_abs ( mixed $val )

Returns the absolute value of a variant.

参数

val

The variant.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the absolute value of val .

参见

  • abs() - 绝对值

com_set
variant_add
COM 函数


"Adds" two variant values together and returns the result

variant_abs
variant_and
COM 函数
PHP 手册

variant_add

(PHP 5)

variant_add — "Adds" two variant values together and returns the result

说明

mixed variant_add ( mixed $left , mixed $right )

Adds left to right using the following rules (taken from the MSDN library), which correspond to those of Visual Basic:

Variant Addition Rules
If | Then
Both expressions are of the string type | Concatenation
One expression is a string type and the other a character | Addition
One expression is numeric and the other is a string | Addition
Both expressions are numeric | Addition
Either expression is NULL | NULL is returned
Both expressions are empty | Integer subtype is returned

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the result.

参见

  • variant_sub() - Subtracts the value of the right variant from the left variant value

variant_abs
variant_and
COM 函数


Performs a bitwise AND operation between two variants

variant_add
variant_cast
COM 函数
PHP 手册

variant_and

(PHP 5)

variant_and — Performs a bitwise AND operation between two variants

说明

mixed variant_and ( mixed $left , mixed $right )

Performs a bitwise AND operation. Note that this is slightly different from a regular AND operation.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant AND Rules
If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | FALSE
TRUE | NULL | NULL
FALSE | TRUE | FALSE
FALSE | FALSE | FALSE
FALSE | NULL | FALSE
NULL | TRUE | NULL
NULL | FALSE | FALSE
NULL | NULL | NULL

参见

  • variant_or() - Performs a logical disjunction on two variants

variant_add
variant_cast
COM 函数


Convert a variant into a new variant object of another type

variant_and
variant_cat
COM 函数
PHP 手册

variant_cast

(PHP 5)

variant_cast — Convert a variant into a new variant object of another type

说明

variant variant_cast ( variant $variant , int $type )

This function makes a copy of variant and then performs a variant cast operation to force the copy to have the type given by type .

This function wraps VariantChangeType() in the COM library; consult MSDN for more information.

参数

variant

The variant.

type

type should be one of the VT_XXX constants.

返回值

Returns a VT_DATE variant.

参见

  • variant_set_type() - Convert a variant into another type "in-place"

variant_and
variant_cat
COM 函数


concatenates two variant values together and returns the result

variant_cast
variant_cmp
COM 函数
PHP 手册

variant_cat

(PHP 5)

variant_cat — concatenates two variant values together and returns the result

说明

mixed variant_cat ( mixed $left , mixed $right )

Concatenates left with right and returns the result.

This function is notionally equivalent to $left . $right .

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the result of the concatenation.

参见

  • 字符串运算符 for the string concatenation operator

variant_cast
variant_cmp
COM 函数


Compares two variants

variant_cat
variant_date_from_timestamp
COM 函数
PHP 手册

variant_cmp

(PHP 5)

variant_cmp — Compares two variants

说明

int variant_cmp ( mixed $left , mixed $right [, int $lcid [, int $flags ]] )

Compares left with right .

This function will only compare scalar values, not arrays or variant records.

参数

left

The left operand.

right

The right operand.

lcid

A valid Locale Identifier to use when comparing strings (this affects string collation).

flags

flags can be one or more of the following values OR'd together, and affects string comparisons:

Variant Comparision Flags
value | meaning
NORM_IGNORECASE | Compare case insensitively
NORM_IGNORENONSPACE | Ignore nonspacing characters
NORM_IGNORESYMBOLS | Ignore symbols
NORM_IGNOREWIDTH | Ignore string width
NORM_IGNOREKANATYPE | Ignore Kana type
NORM_IGNOREKASHIDA | Ignore Arabic kashida characters

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns one of the following:

Variant Comparision Results
value | meaning
VARCMP_LT | left is less than right
VARCMP_EQ | left is equal to right
VARCMP_GT | left is greater than right
VARCMP_NULL | Either left , right or both are NULL

variant_cat
variant_date_from_timestamp
COM 函数


Returns a variant date representation of a Unix timestamp

variant_cmp
variant_date_to_timestamp
COM 函数
PHP 手册

variant_date_from_timestamp

(PHP 5)

variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp

说明

variant variant_date_from_timestamp ( int $timestamp )

Converts timestamp from a unix timestamp value into a variant of type VT_DATE. This allows easier interopability between the unix-ish parts of PHP and COM.

参数

timestamp

A unix timestamp.

返回值

Returns a VT_DATE variant.

参见

  • variant_date_to_timestamp() - Converts a variant date/time value to Unix timestamp
  • mktime() - 取得一个日期的 Unix 时间戳
  • time() - 返回当前的 Unix 时间戳

variant_cmp
variant_date_to_timestamp
COM 函数


Converts a variant date/time value to Unix timestamp

variant_date_from_timestamp
variant_div
COM 函数
PHP 手册

variant_date_to_timestamp

(PHP 5)

variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp

说明

int variant_date_to_timestamp ( variant $variant )

Converts variant from a VT_DATE (or similar) value into a Unix timestamp. This allows easier interopability between the Unix-ish parts of PHP and COM.

参数

variant

The variant.

返回值

Returns a unix timestamp.

参见

  • variant_date_from_timestamp() - Returns a variant date representation of a Unix timestamp
  • date() - 格式化一个本地时间／日期
  • strftime() - 根据区域设置格式化本地时间／日期

variant_date_from_timestamp
variant_div
COM 函数


Returns the result from dividing two variants

variant_date_to_timestamp
variant_eqv
COM 函数
PHP 手册

variant_div

(PHP 5)

variant_div — Returns the result from dividing two variants

说明

mixed variant_div ( mixed $left , mixed $right )

Divides left by right and returns the result.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Double is returned
One expression is a string type and the other a character | Division and a double is returned
One expression is numeric and the other is a string | Division and a double is returned.
Both expressions are numeric | Division and a double is returned
Either expression is NULL | NULL is returned
right is empty and left is anything but empty | A com_exception with code DISP_E_DIVBYZERO is thrown
left is empty and right is anything but empty. | 0 as type double is returned
Both expressions are empty | A com_exception with code DISP_E_OVERFLOW is thrown

参见

  • variant_idiv() - Converts variants to integers and then returns the result from dividing them

variant_date_to_timestamp
variant_eqv
COM 函数


Performs a bitwise equivalence on two variants

variant_div
variant_fix
COM 函数
PHP 手册

variant_eqv

(PHP 5)

variant_eqv — Performs a bitwise equivalence on two variants

说明

mixed variant_eqv ( mixed $left , mixed $right )

Performs a bitwise equivalence on two variants.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

If each bit in left is equal to the corresponding bit in right then TRUE is returned, otherwise FALSE is returned.

variant_div
variant_fix
COM 函数


Returns the integer portion of a variant

variant_eqv
variant_get_type
COM 函数
PHP 手册

variant_fix

(PHP 5)

variant_fix — Returns the integer portion of a variant

说明

mixed variant_fix ( mixed $variant )

Gets the integer portion of a variant.

参数

variant

The variant.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

If variant is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of variant .

注释

Warning

This documentation is based on the MSDN documentation; it appears that this function is either the same as variant_int(), or that there is an error in the MSDN documentation.

参见

  • variant_int() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - 舍去法取整
  • ceil() - 进一法取整
  • round() - 对浮点数进行四舍五入

variant_eqv
variant_get_type
COM 函数


Returns the type of a variant object

variant_fix
variant_idiv
COM 函数
PHP 手册

variant_get_type

(PHP 5)

variant_get_type — Returns the type of a variant object

说明

int variant_get_type ( variant $variant )

Returns the type of a variant object.

参数

variant

The variant object.

返回值

This function returns an integer value that indicates the type of variant , which can be an instance of COM, DOTNET or VARIANT classes. The return value can be compared to one of the VT_XXX constants.

The return value for COM and DOTNET objects will usually be VT_DISPATCH; the only reason this function works for those classes is because COM and DOTNET are descendants of VARIANT.

In PHP versions prior to 5, you could obtain this information from instances of the VARIANT class ONLY, by reading a fake type property. See the VARIANT class for more information on this.

variant_fix
variant_idiv
COM 函数


Converts variants to integers and then returns the result from dividing them

variant_get_type
variant_imp
COM 函数
PHP 手册

variant_idiv

(PHP 5)

variant_idiv — Converts variants to integers and then returns the result from dividing them

说明

mixed variant_idiv ( mixed $left , mixed $right )

Converts left and right to integer values, and then performs integer division.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant Integer Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Division and integer is returned
One expression is a string type and the other a character | Division
One expression is numeric and the other is a string | Division
Both expressions are numeric | Division
Either expression is NULL | NULL is returned
Both expressions are empty | A com_exception with code DISP_E_DIVBYZERO is thrown

参见

  • variant_div() - Returns the result from dividing two variants

variant_get_type
variant_imp
COM 函数


Performs a bitwise implication on two variants

variant_idiv
variant_int
COM 函数
PHP 手册

variant_imp

(PHP 5)

variant_imp — Performs a bitwise implication on two variants

说明

mixed variant_imp ( mixed $left , mixed $right )

Performs a bitwise implication operation.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant Implication Table
If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | TRUE
FALSE | NULL | TRUE
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

variant_idiv
variant_int
COM 函数


Returns the integer portion of a variant

variant_imp
variant_mod
COM 函数
PHP 手册

variant_int

(PHP 5)

variant_int — Returns the integer portion of a variant

说明

mixed variant_int ( mixed $variant )

Gets the integer portion of a variant.

参数

variant

The variant.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

If variant is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of variant .

参见

  • variant_fix() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - 舍去法取整
  • ceil() - 进一法取整
  • round() - 对浮点数进行四舍五入

variant_imp
variant_mod
COM 函数


Divides two variants and returns only the remainder

variant_int
variant_mul
COM 函数
PHP 手册

variant_mod

(PHP 5)

variant_mod — Divides two variants and returns only the remainder

说明

mixed variant_mod ( mixed $left , mixed $right )

Divides left by right and returns the remainder.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the remainder of the division.

参见

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them

variant_int
variant_mul
COM 函数


Multiplies the values of the two variants

variant_mod
variant_neg
COM 函数
PHP 手册

variant_mul

(PHP 5)

variant_mul — Multiplies the values of the two variants

说明

mixed variant_mul ( mixed $left , mixed $right )

Multiplies left by right .

参数

left

The left operand.

right

The right operand.

Boolean values are converted to -1 for FALSE and 0 for TRUE.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant Multiplication Rules
If | Then
Both expressions are of the string, date, character, boolean type | Multiplication
One expression is a string type and the other a character | Multiplication
One expression is numeric and the other is a string | Multiplication
Both expressions are numeric | Multiplication
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

参见

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them

variant_mod
variant_neg
COM 函数


Performs logical negation on a variant

variant_mul
variant_not
COM 函数
PHP 手册

variant_neg

(PHP 5)

variant_neg — Performs logical negation on a variant

说明

mixed variant_neg ( mixed $variant )

Performs logical negation of variant .

参数

variant

The variant.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the result of the logical negation.

variant_mul
variant_not
COM 函数


Performs bitwise not negation on a variant

variant_neg
variant_or
COM 函数
PHP 手册

variant_not

(PHP 5)

variant_not — Performs bitwise not negation on a variant

说明

mixed variant_not ( mixed $variant )

Performs bitwise not negation on variant and returns the result.

参数

variant

The variant.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the bitwise not negation. If variant is NULL, the result will also be NULL.

variant_neg
variant_or
COM 函数


Performs a logical disjunction on two variants

variant_not
variant_pow
COM 函数
PHP 手册

variant_or

(PHP 5)

variant_or — Performs a logical disjunction on two variants

说明

mixed variant_or ( mixed $left , mixed $right )

Performs a bitwise OR operation. Note that this is slightly different from a regular OR operation.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant OR Rules
If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
FALSE | NULL | NULL
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

参见

  • variant_and() - Performs a bitwise AND operation between two variants
  • variant_xor() - Performs a logical exclusion on two variants

variant_not
variant_pow
COM 函数


Returns the result of performing the power function with two variants

variant_or
variant_round
COM 函数
PHP 手册

variant_pow

(PHP 5)

variant_pow — Returns the result of performing the power function with two variants

说明

mixed variant_pow ( mixed $left , mixed $right )

Returns the result of left to the power of right .

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the result of left to the power of right .

参见

  • pow() - 指数表达式

variant_or
variant_round
COM 函数


Rounds a variant to the specified number of decimal places

variant_pow
variant_set_type
COM 函数
PHP 手册

variant_round

(PHP 5)

variant_round — Rounds a variant to the specified number of decimal places

说明

mixed variant_round ( mixed $variant , int $decimals )

Returns the value of variant rounded to decimals decimal places.

参数

variant

The variant.

decimals

Number of decimal places.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Returns the rounded value.

参见

  • round() - 对浮点数进行四舍五入

variant_pow
variant_set_type
COM 函数


Convert a variant into another type "in-place"

variant_round
variant_set
COM 函数
PHP 手册

variant_set_type

(PHP 5)

variant_set_type — Convert a variant into another type "in-place"

说明

void variant_set_type ( variant $variant , int $type )

This function is similar to variant_cast() except that the variant is modified "in-place"; no new variant is created. The parameters for this function have identical meaning to those of variant_cast().

参数

variant

The variant.

type

返回值

无返回值。

参见

  • variant_cast() - Convert a variant into a new variant object of another type

variant_round
variant_set
COM 函数


Assigns a new value for a variant object

variant_set_type
variant_sub
COM 函数
PHP 手册

variant_set

(PHP 5)

variant_set — Assigns a new value for a variant object

说明

void variant_set ( variant $variant , mixed $value )

Converts value to a variant and assigns it to the variant object; no new variant object is created, and the old value of variant is freed/released.

参数

variant

The variant.

value

返回值

无返回值。

variant_set_type
variant_sub
COM 函数


Subtracts the value of the right variant from the left variant value

variant_set
variant_xor
COM 函数
PHP 手册

variant_sub

(PHP 5)

variant_sub — Subtracts the value of the right variant from the left variant value

说明

mixed variant_sub ( mixed $left , mixed $right )

Subtracts right from left .

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant Subtraction Rules
If | Then
Both expressions are of the string type | Subtraction
One expression is a string type and the other a character | Subtraction
One expression is numeric and the other is a string | Subtraction.
Both expressions are numeric | Subtraction
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

参见

  • variant_add() - "Adds" two variant values together and returns the result

variant_set
variant_xor
COM 函数


Performs a logical exclusion on two variants

variant_sub
Printer
COM 函数
PHP 手册

variant_xor

(PHP 5)

variant_xor — Performs a logical exclusion on two variants

说明

mixed variant_xor ( mixed $left , mixed $right )

Performs a logical exclusion.

参数

left

The left operand.

right

The right operand.

Note: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.
The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

返回值

Variant XOR Rules
If left is | If right is | then the result is
TRUE | TRUE | FALSE
TRUE | FALSE | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
NULL | NULL | NULL

参见

  • variant_or() - Performs a logical disjunction on two variants
  • variant_and() - Performs a bitwise AND operation between two variants

variant_sub
Printer
COM 函数


Printer

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Printer 函数
    • printer_abort — Deletes the printer's spool file
    • printer_close — Close an open printer connection
    • printer_create_brush — Create a new brush
    • printer_create_dc — Create a new device context
    • printer_create_font — Create a new font
    • printer_create_pen — Create a new pen
    • printer_delete_brush — Delete a brush
    • printer_delete_dc — Delete a device context
    • printer_delete_font — Delete a font
    • printer_delete_pen — Delete a pen
    • printer_draw_bmp — Draw a bmp
    • printer_draw_chord — Draw a chord
    • printer_draw_elipse — Draw an ellipse
    • printer_draw_line — Draw a line
    • printer_draw_pie — Draw a pie
    • printer_draw_rectangle — Draw a rectangle
    • printer_draw_roundrect — Draw a rectangle with rounded corners
    • printer_draw_text — Draw text
    • printer_end_doc — Close document
    • printer_end_page — Close active page
    • printer_get_option — Retrieve printer configuration data
    • printer_list — Return an array of printers attached to the server
    • printer_logical_fontheight — Get logical font height
    • printer_open — Opens a connection to a printer
    • printer_select_brush — Select a brush
    • printer_select_font — Select a font
    • printer_select_pen — Select a pen
    • printer_set_option — Configure the printer connection
    • printer_start_doc — Start a new document
    • printer_start_page — Start a new page
    • printer_write — Write data to the printer
variant_xor
简介
Windows平台下的扩展


简介

These functions are only available under Windows 9.x, ME, NT4 and 2000. They have been added in PHP 4.0.4.

Printer
安装/配置
Printer


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
Printer


安装

This » PECL extension is not bundled with PHP.

Windows users must enable php_printer.dll inside of php.ini in order to use these functions. 可以从不同的 PECL 页面（选择适合自己 PHP 版本的库）取得未绑定的 PECL 扩展：» PECL for PHP 4.3.x，» PECL for PHP 5.0.x 或 » PECL Unstable。

需求
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Printer configuration options
Name | Default | Changeable | Changelog
printer.default_printer | "" | PHP_INI_ALL | Available since PHP 4.0.6. Removed in PHP 4.1.1.

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

安装
资源类型
安装/配置


资源类型

This extension defines handles to a printer connection, to a brush, to a font and to a pen.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

PRINTER_COPIES (integer)
PRINTER_MODE (integer)
PRINTER_TITLE (integer)
PRINTER_DEVICENAME (integer)
PRINTER_DRIVERVERSION (integer)
PRINTER_OUTPUT_FILE (integer)
PRINTER_RESOLUTION_Y (integer)
PRINTER_RESOLUTION_X (integer)
PRINTER_SCALE (integer)
PRINTER_BACKGROUND_COLOR (integer)
PRINTER_PAPER_LENGTH (integer)
PRINTER_PAPER_WIDTH (integer)
PRINTER_PAPER_FORMAT (integer)
PRINTER_FORMAT_CUSTOM (integer)
PRINTER_FORMAT_LETTER (integer)
PRINTER_FORMAT_LEGAL (integer)
PRINTER_FORMAT_A3 (integer)
PRINTER_FORMAT_A4 (integer)
PRINTER_FORMAT_A5 (integer)
PRINTER_FORMAT_B4 (integer)
PRINTER_FORMAT_B5 (integer)
PRINTER_FORMAT_FOLIO (integer)
PRINTER_ORIENTATION (integer)
PRINTER_ORIENTATION_PORTRAIT (integer)
PRINTER_ORIENTATION_LANDSCAPE (integer)
PRINTER_TEXT_COLOR (integer)
PRINTER_TEXT_ALIGN (integer)
PRINTER_TA_BASELINE (integer)
PRINTER_TA_BOTTOM (integer)
PRINTER_TA_TOP (integer)
PRINTER_TA_CENTER (integer)
PRINTER_TA_LEFT (integer)
PRINTER_TA_RIGHT (integer)
PRINTER_PEN_SOLID (integer)
PRINTER_PEN_DASH (integer)
PRINTER_PEN_DOT (integer)
PRINTER_PEN_DASHDOT (integer)
PRINTER_PEN_DASHDOTDOT (integer)
PRINTER_PEN_INVISIBLE (integer)
PRINTER_BRUSH_SOLID (integer)
PRINTER_BRUSH_CUSTOM (integer)
PRINTER_BRUSH_DIAGONAL (integer)
PRINTER_BRUSH_CROSS (integer)
PRINTER_BRUSH_DIAGCROSS (integer)
PRINTER_BRUSH_FDIAGONAL (integer)
PRINTER_BRUSH_HORIZONTAL (integer)
PRINTER_BRUSH_VERTICAL (integer)
PRINTER_FW_THIN (integer)
PRINTER_FW_ULTRALIGHT (integer)
PRINTER_FW_LIGHT (integer)
PRINTER_FW_NORMAL (integer)
PRINTER_FW_MEDIUM (integer)
PRINTER_FW_BOLD (integer)
PRINTER_FW_ULTRABOLD (integer)
PRINTER_FW_HEAVY (integer)
PRINTER_ENUM_LOCAL (integer)
PRINTER_ENUM_NAME (integer)
PRINTER_ENUM_SHARED (integer)
PRINTER_ENUM_DEFAULT (integer)
PRINTER_ENUM_CONNECTIONS (integer)
PRINTER_ENUM_NETWORK (integer)
PRINTER_ENUM_REMOTE (integer)
资源类型
Printer 函数
Printer


Printer 函数

Table of Contents

  • printer_abort — Deletes the printer's spool file
  • printer_close — Close an open printer connection
  • printer_create_brush — Create a new brush
  • printer_create_dc — Create a new device context
  • printer_create_font — Create a new font
  • printer_create_pen — Create a new pen
  • printer_delete_brush — Delete a brush
  • printer_delete_dc — Delete a device context
  • printer_delete_font — Delete a font
  • printer_delete_pen — Delete a pen
  • printer_draw_bmp — Draw a bmp
  • printer_draw_chord — Draw a chord
  • printer_draw_elipse — Draw an ellipse
  • printer_draw_line — Draw a line
  • printer_draw_pie — Draw a pie
  • printer_draw_rectangle — Draw a rectangle
  • printer_draw_roundrect — Draw a rectangle with rounded corners
  • printer_draw_text — Draw text
  • printer_end_doc — Close document
  • printer_end_page — Close active page
  • printer_get_option — Retrieve printer configuration data
  • printer_list — Return an array of printers attached to the server
  • printer_logical_fontheight — Get logical font height
  • printer_open — Opens a connection to a printer
  • printer_select_brush — Select a brush
  • printer_select_font — Select a font
  • printer_select_pen — Select a pen
  • printer_set_option — Configure the printer connection
  • printer_start_doc — Start a new document
  • printer_start_page — Start a new page
  • printer_write — Write data to the printer
预定义常量
printer_abort
Printer


Deletes the printer's spool file

Printer 函数
printer_close
Printer 函数
PHP 手册

printer_abort

(PECL printer CVS)

printer_abort — Deletes the printer's spool file

说明

void printer_abort ( resource $printer_handle )

This function deletes the printers spool file.

参数

printer_handle

printer_handle must be a valid handle to a printer.

返回值

无返回值。

范例

Example #1 printer_abort() example

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Printer 函数
printer_close
Printer 函数


Close an open printer connection

printer_abort
printer_create_brush
Printer 函数
PHP 手册

printer_close

(PECL printer CVS)

printer_close — Close an open printer connection

说明

void printer_close ( resource $printer_handle )

This function closes the printer connection. printer_close() also closes the active device context.

参数

printer_handle

printer_handle must be a valid handle to a printer.

返回值

无返回值。

范例

Example #1 printer_close() example

<?php
$handle = printer_open();
printer_close($handle);
?>

printer_abort
printer_create_brush
Printer 函数


Create a new brush

printer_close
printer_create_dc
Printer 函数
PHP 手册

printer_create_brush

(PECL printer CVS)

printer_create_brush — Create a new brush

说明

resource printer_create_brush ( int $style , string $color )

The function creates a new brush and returns a handle to it. A brush is used to fill shapes. For an example see printer_select_brush().

参数

style

style must be one of the following constants:

  • PRINTER_BRUSH_SOLID: creates a brush with a solid color.
  • PRINTER_BRUSH_DIAGONAL: creates a brush with a 45-degree upward left-to-right hatch ( / ).
  • PRINTER_BRUSH_CROSS: creates a brush with a cross hatch ( + ).
  • PRINTER_BRUSH_DIAGCROSS: creates a brush with a 45 cross hatch ( x ).
  • PRINTER_BRUSH_FDIAGONAL: creates a brush with a 45-degree downward left-to-right hatch ( \ ).
  • PRINTER_BRUSH_HORIZONTAL: creates a brush with a horizontal hatch ( - ).
  • PRINTER_BRUSH_VERTICAL: creates a brush with a vertical hatch ( | ).
  • PRINTER_BRUSH_CUSTOM: creates a custom brush from an BMP file. The second parameter is used to specify the BMP instead of the RGB color code.

color

color must be a color in RGB hex format, i.e. "000000" for black.

返回值

Returns a brush handle or FALSE on error.

printer_close
printer_create_dc
Printer 函数


Create a new device context

printer_create_brush
printer_create_font
Printer 函数
PHP 手册

printer_create_dc

(PECL printer CVS)

printer_create_dc — Create a new device context

说明

void printer_create_dc ( resource $printer_handle )

The function creates a new device context. A device context is used to customize the graphic objects of the document.

参数

printer_handle

printer_handle must be a valid printer handle.

返回值

无返回值。

范例

Example #1 printer_create_dc() example

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* do some stuff with the dc */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* create another dc */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* do some stuff with the dc */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_create_brush
printer_create_font
Printer 函数


Create a new font

printer_create_dc
printer_create_pen
Printer 函数
PHP 手册

printer_create_font

(PECL printer CVS)

printer_create_font — Create a new font

说明

resource printer_create_font ( string $face , int $height , int $width , int $font_weight , bool $italic , bool $underline , bool $strikeout , int $orientation )

The function creates a new font and returns a handle to it. A font is used to draw text. For an example see printer_select_font().

参数

face

face must be a string specifying the font face.

height

height specifies the font height.

width

width specifies the font width.

font_weight

The font_weight specifies the font weight (400 is normal), and can be one of the following predefined constants.

  • PRINTER_FW_THIN: sets the font weight to thin (100).
  • PRINTER_FW_ULTRALIGHT: sets the font weight to ultra light (200).
  • PRINTER_FW_LIGHT: sets the font weight to light (300).
  • PRINTER_FW_NORMAL: sets the font weight to normal (400).
  • PRINTER_FW_MEDIUM: sets the font weight to medium (500).
  • PRINTER_FW_BOLD: sets the font weight to bold (700).
  • PRINTER_FW_ULTRABOLD: sets the font weight to ultra bold (800).
  • PRINTER_FW_HEAVY: sets the font weight to heavy (900).

italic

italic can be TRUE or FALSE, and sets whether the font should be italic.

underline

underline can be TRUE or FALSE, and sets whether the font should be underlined.

strikeout

strikeout can be TRUE or FALSE, and sets whether the font should be stroked out.

orientaton

orientation specifies a rotation.

返回值

Returns a font handle on success or FALSE on error.

printer_create_dc
printer_create_pen
Printer 函数


Create a new pen

printer_create_font
printer_delete_brush
Printer 函数
PHP 手册

printer_create_pen

(PECL printer CVS)

printer_create_pen — Create a new pen

说明

resource printer_create_pen ( int $style , int $width , string $color )

The function creates a new pen and returns a handle to it. A pen is used to draw lines and curves. For an example see printer_select_pen().

参数

style

style must be one of the following constants:

  • PRINTER_PEN_SOLID: creates a solid pen.
  • PRINTER_PEN_DASH: creates a dashed pen.
  • PRINTER_PEN_DOT: creates a dotted pen.
  • PRINTER_PEN_DASHDOT: creates a pen with dashes and dots.
  • PRINTER_PEN_DASHDOTDOT: creates a pen with dashes and double dots.
  • PRINTER_PEN_INVISIBLE: creates an invisible pen.

width

width specifies the width of the pen.

color

color must be a color in RGB hex format, i.e. "000000" for black.

返回值

Returns a pen handle or FALSE on error.

printer_create_font
printer_delete_brush
Printer 函数


Delete a brush

printer_create_pen
printer_delete_dc
Printer 函数
PHP 手册

printer_delete_brush

(PECL printer CVS)

printer_delete_brush — Delete a brush

说明

void printer_delete_brush ( resource $brush_handle )

The function deletes the selected brush. For an example see printer_select_brush().

参数

brush_handle

brush_handle must be a valid handle to a brush.

返回值

无返回值。

printer_create_pen
printer_delete_dc
Printer 函数


Delete a device context

printer_delete_brush
printer_delete_font
Printer 函数
PHP 手册

printer_delete_dc

(PECL printer CVS)

printer_delete_dc — Delete a device context

说明

bool printer_delete_dc ( resource $printer_handle )

The function deletes the device context. For an example see printer_create_dc().

参数

printer_handle

printer_handle must be a valid printer handle.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

printer_delete_brush
printer_delete_font
Printer 函数


Delete a font

printer_delete_dc
printer_delete_pen
Printer 函数
PHP 手册

printer_delete_font

(PECL printer CVS)

printer_delete_font — Delete a font

说明

void printer_delete_font ( resource $font_handle )

The function deletes the selected font. For an example see printer_select_font().

参数

font_handle

font_handle must be a valid handle to a font.

返回值

无返回值。

printer_delete_dc
printer_delete_pen
Printer 函数


Delete a pen

printer_delete_font
printer_draw_bmp
Printer 函数
PHP 手册

printer_delete_pen

(PECL printer CVS)

printer_delete_pen — Delete a pen

说明

void printer_delete_pen ( resource $pen_handle )

The function deletes the selected pen. For an example see printer_select_pen().

参数

pen_handle

pen_handle must be a valid pen handle.

返回值

无返回值。

printer_delete_font
printer_draw_bmp
Printer 函数


Draw a bmp

printer_delete_pen
printer_draw_chord
Printer 函数
PHP 手册

printer_draw_bmp

(PECL printer CVS)

printer_draw_bmp — Draw a bmp

说明

bool printer_draw_bmp ( resource $printer_handle , string $filename , int $x , int $y [, int $width ], int $height )

The function draws an bmp.

参数

printer_handle

printer_handle must be a valid printer handle.

filename

Path to the bitmap.

x

x is the upper left x coordinate of the bitmap.

y

y is the upper left y coordinate of the bitmap.

width

The bitmap width.

height

The bitmap height.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 printer_draw_bmp() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_delete_pen
printer_draw_chord
Printer 函数


Draw a chord

printer_draw_bmp
printer_draw_elipse
Printer 函数
PHP 手册

printer_draw_chord

(PECL printer CVS)

printer_draw_chord — Draw a chord

说明

void printer_draw_chord ( resource $printer_handle , int $rec_x , int $rec_y , int $rec_x1 , int $rec_y1 , int $rad_x , int $rad_y , int $rad_x1 , int $rad_y1 )

The function simply draws an chord.

参数

printer_handle

printer_handle must be a valid printer handle.

rec_x

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad_x

rad_x is x coordinate of the radial defining the beginning of the chord.

rad_y

rad_y is y coordinate of the radial defining the beginning of the chord.

rad_x1

rad_x1 is x coordinate of the radial defining the end of the chord.

rad_y1

rad_y1 is y coordinate of the radial defining the end of the chord.

返回值

无返回值。

范例

Example #1 printer_draw_chord() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_bmp
printer_draw_elipse
Printer 函数


Draw an ellipse

printer_draw_chord
printer_draw_line
Printer 函数
PHP 手册

printer_draw_elipse

(PECL printer CVS)

printer_draw_elipse — Draw an ellipse

说明

void printer_draw_elipse ( resource $printer_handle , int $ul_x , int $ul_y , int $lr_x , int $lr_y )

The function draws an ellipse.

参数

printer_handle

printer_handle must be a valid printer handle.

ul_x

ul_x is the upper left x coordinate of the ellipse.

ul_y

ul_y is the upper left y coordinate of the ellipse.

lr_x

lr_x is the lower right x coordinate of the ellipse.

lr_y

lr_y is the lower right y coordinate of the ellipse.

返回值

无返回值。

范例

Example #1 printer_draw_elipse() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_chord
printer_draw_line
Printer 函数


Draw a line

printer_draw_elipse
printer_draw_pie
Printer 函数
PHP 手册

printer_draw_line

(PECL printer CVS)

printer_draw_line — Draw a line

说明

void printer_draw_line ( resource $printer_handle , int $from_x , int $from_y , int $to_x , int $to_y )

The function draws a line using the selected pen.

参数

printer_handle

printer_handle must be a valid printer handle.

from_x

from_x is the x coordinate of the origin point.

from_y

from_y is the y coordinate of the origin point.

to_x

to_x is the x coordinate of the destination point.

to_y

to_y is the y coordinate of the destination point.

返回值

无返回值。

范例

Example #1 printer_draw_line() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_elipse
printer_draw_pie
Printer 函数


Draw a pie

printer_draw_line
printer_draw_rectangle
Printer 函数
PHP 手册

printer_draw_pie

(PECL printer CVS)

printer_draw_pie — Draw a pie

说明

void printer_draw_pie ( resource $printer_handle , int $rec_x , int $rec_y , int $rec_x1 , int $rec_y1 , int $rad1_x , int $rad1_y , int $rad2_x , int $rad2_y )

The function draws an pie.

参数

printer_handle

printer_handle must be a valid printer handle.

rec_x

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad1_x

rad1_x is x coordinate of the first radial's ending.

rad1_y

rad1_y is y coordinate of the first radial's ending.

rad2_x

rad2_x is x coordinate of the second radial's ending.

rad2_y

rad2_y is y coordinate of the second radial's ending.

返回值

无返回值。

范例

Example #1 printer_draw_pie() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_line
printer_draw_rectangle
Printer 函数


Draw a rectangle

printer_draw_pie
printer_draw_roundrect
Printer 函数
PHP 手册

printer_draw_rectangle

(PECL printer CVS)

printer_draw_rectangle — Draw a rectangle

说明

void printer_draw_rectangle ( resource $printer_handle , int $ul_x , int $ul_y , int $lr_x , int $lr_y )

The function draws a rectangle.

参数

printer_handle

printer_handle must be a valid printer handle.

ul_x

ul_x is the upper left x coordinate of the rectangle.

ul_y

ul_y is the upper left y coordinate of the rectangle.

lr_x

lr_x is the lower right x coordinate of the rectangle.

lr_y

lr_y is the lower right y coordinate of the rectangle.

返回值

无返回值。

范例

Example #1 printer_draw_rectangle() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_pie
printer_draw_roundrect
Printer 函数


Draw a rectangle with rounded corners

printer_draw_rectangle
printer_draw_text
Printer 函数
PHP 手册

printer_draw_roundrect

(PECL printer CVS)

printer_draw_roundrect — Draw a rectangle with rounded corners

说明

void printer_draw_roundrect ( resource $printer_handle , int $ul_x , int $ul_y , int $lr_x , int $lr_y , int $width , int $height )

The function draws a rectangle with rounded corners.

参数

printer_handle

printer_handle must be a valid printer handle.

ul_x

ul_x is the upper left x coordinate of the rectangle.

ul_y

ul_y is the upper left y coordinate of the rectangle.

lr_x

lr_x is the lower right x coordinate of the rectangle.

lr_y

lr_y is the lower right y coordinate of the rectangle.

width

width is the width of the ellipse.

height

height is the height of the ellipse.

返回值

无返回值。

范例

Example #1 printer_draw_roundrect() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_rectangle
printer_draw_text
Printer 函数


Draw text

printer_draw_roundrect
printer_end_doc
Printer 函数
PHP 手册

printer_draw_text

(PECL printer CVS)

printer_draw_text — Draw text

说明

void printer_draw_text ( resource $printer_handle , string $text , int $x , int $y )

The function draws text at position x , y using the selected font.

参数

printer_handle

printer_handle must be a valid handle to a printer.

text

The text to be written.

x

x is the x coordinate of the position.

y

y is the y coordinate of the position.

返回值

无返回值。

范例

Example #1 printer_draw_text() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_draw_roundrect
printer_end_doc
Printer 函数


Close document

printer_draw_text
printer_end_page
Printer 函数
PHP 手册

printer_end_doc

(PECL printer CVS)

printer_end_doc — Close document

说明

bool printer_end_doc ( resource $printer_handle )

Closes a new document in the printer spooler. The document is now ready for printing. For an example see printer_start_doc().

参数

printer_handle

printer_handle must be a valid handle to a printer.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

printer_draw_text
printer_end_page
Printer 函数


Close active page

printer_end_doc
printer_get_option
Printer 函数
PHP 手册

printer_end_page

(PECL printer CVS)

printer_end_page — Close active page

说明

bool printer_end_page ( resource $printer_handle )

The function closes the active page in the active document. For an example see printer_start_doc().

参数

printer_handle

printer_handle must be a valid handle to a printer.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

printer_end_doc
printer_get_option
Printer 函数


Retrieve printer configuration data

printer_end_page
printer_list
Printer 函数
PHP 手册

printer_get_option

(PECL printer CVS)

printer_get_option — Retrieve printer configuration data

说明

mixed printer_get_option ( resource $printer_handle , string $option )

The function retrieves the configuration setting of option .

参数

printer_handle

printer_handle must be a valid handle to a printer.

option

Take a look at printer_set_option() for the settings that can be retrieved, additionally the following settings can be retrieved:

  • PRINTER_DEVICENAME returns the devicename of the printer.
  • PRINTER_DRIVERVERSION returns the printer driver version.

返回值

Returns the value of option .

范例

Example #1 printer_get_option() example

<?php
$handle = printer_open();
echo printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

printer_end_page
printer_list
Printer 函数


Return an array of printers attached to the server

printer_get_option
printer_logical_fontheight
Printer 函数
PHP 手册

printer_list

(PECL printer CVS)

printer_list — Return an array of printers attached to the server

说明

array printer_list ( int $enumtype [, string $name [, int $level ]] )

The function enumerates available printers and their capabilities.

参数

enumtype

enumtype must be one of the following predefined constants:

  • PRINTER_ENUM_LOCAL: enumerates the locally installed printers.
  • PRINTER_ENUM_NAME: enumerates the printer of name , can be a server, domain or print provider.
  • PRINTER_ENUM_SHARED: this parameter can't be used alone, it has to be OR'ed with other parameters, i.e. PRINTER_ENUM_LOCAL to detect the locally shared printers.
  • PRINTER_ENUM_DEFAULT: (Win9.x only) enumerates the default printer.
  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 only) enumerates the printers to which the user has made connections.
  • PRINTER_ENUM_NETWORK: (WinNT/2000 only) enumerates network printers in the computer's domain. Only valid if level is 1.
  • PRINTER_ENUM_REMOTE: (WinNT/2000 only) enumerates network printers and print servers in the computer's domain. Only valid if level is 1.

name

Used with PRINTER_ENUM_NAME.

level

level sets the level of information request. Can be 1,2,4 or 5.

返回值

Return an array of printers.

范例

Example #1 printer_list() example

<?php
/* detect locally shared printer */
var_dump(printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED));
?>

printer_get_option
printer_logical_fontheight
Printer 函数


Get logical font height

printer_list
printer_open
Printer 函数
PHP 手册

printer_logical_fontheight

(PECL printer CVS)

printer_logical_fontheight — Get logical font height

说明

int printer_logical_fontheight ( resource $printer_handle , int $height )

The function calculates the logical font height of height .

参数

printer_handle

printer_handle must be a valid printer handle.

height

The font height.

返回值

Returns the logical font height or FALSE on failure.

范例

Example #1 printer_logical_fontheight() example

<?php
$handle = printer_open();
echo printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

printer_list
printer_open
Printer 函数


Opens a connection to a printer

printer_logical_fontheight
printer_select_brush
Printer 函数
PHP 手册

printer_open

(PECL printer CVS)

printer_open — Opens a connection to a printer

说明

resource printer_open ([ string $printername ] )

This function tries to open a connection to the given printer.

printer_open() also starts a device context.

参数

printername

The printer name. If no parameter was given it tries to open a connection to the default printer (if not specified in php.ini as printer.default_printer, PHP tries to detect it).

返回值

Returns a printer handle on success or FALSE on failure.

范例

Example #1 printer_open() example

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

printer_logical_fontheight
printer_select_brush
Printer 函数


Select a brush

printer_open
printer_select_font
Printer 函数
PHP 手册

printer_select_brush

(PECL printer CVS)

printer_select_brush — Select a brush

说明

void printer_select_brush ( resource $printer_handle , resource $brush_handle )

The function selects a brush as the active drawing object of the actual device context. A brush is used to fill shapes. If you draw an rectangle the brush is used to draw the shapes, while the pen is used to draw the border.

If you haven't selected a brush before drawing shapes, the shape won't be filled.

参数

printer_handle

printer_handle must be a valid printer handle.

brush_handle

brush_handle must be a valid brush handle.

返回值

无返回值。

范例

Example #1 printer_select_brush() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1, 501, 500, 1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_open
printer_select_font
Printer 函数


Select a font

printer_select_brush
printer_select_pen
Printer 函数
PHP 手册

printer_select_font

(PECL printer CVS)

printer_select_font — Select a font

说明

void printer_select_font ( resource $printer_handle , resource $font_handle )

The function selects a font to draw text.

参数

printer_handle

printer_handle must be a valid printer handle.

font_handle

font_handle must be a valid font handle.

返回值

无返回值。

范例

Example #1 printer_select_font() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_select_brush
printer_select_pen
Printer 函数


Select a pen

printer_select_font
printer_set_option
Printer 函数
PHP 手册

printer_select_pen

(PECL printer CVS)

printer_select_pen — Select a pen

说明

void printer_select_pen ( resource $printer_handle , resource $pen_handle )

The function selects a pen as the active drawing object of the actual device context. A pen is used to draw lines and curves. I.e. if you draw a single line the pen is used. If you draw an rectangle the pen is used to draw the borders, while the brush is used to fill the shape. If you haven't selected a pen before drawing shapes, the shape won't be outlined.

参数

printer_handle

printer_handle must be a valid printer handle.

pen_handle

pen_handle must be a valid pen handle.

返回值

无返回值。

范例

Example #1 printer_select_pen() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_select_font
printer_set_option
Printer 函数


Configure the printer connection

printer_select_pen
printer_start_doc
Printer 函数
PHP 手册

printer_set_option

(PECL printer CVS)

printer_set_option — Configure the printer connection

说明

bool printer_set_option ( resource $printer_handle , int $option , mixed $value )

The function sets options for the current connection.

参数

printer_handle

printer_handle must be a valid printer handle.

option

Option can be one of the following constants:

  • PRINTER_COPIES: sets how many copies should be printed, value must be an integer.
  • PRINTER_MODE: specifies the type of data (text, raw or emf), value must be a string.
  • PRINTER_TITLE: specifies the name of the document, value must be a string.
  • PRINTER_ORIENTATION: specifies the orientation of the paper, value can be either PRINTER_ORIENTATION_PORTRAIT or PRINTER_ORIENTATION_LANDSCAPE
  • PRINTER_RESOLUTION_Y: specifies the y-resolution in DPI, value must be an integer.
  • PRINTER_RESOLUTION_X: specifies the x-resolution in DPI, value must be an integer.
  • PRINTER_PAPER_FORMAT: specifies a predefined paper format, set value to PRINTER_FORMAT_CUSTOM if you want to specify a custom format with PRINTER_PAPER_WIDTH and PRINTER_PAPER_LENGTH. value can be one of the following constants.
    • PRINTER_FORMAT_CUSTOM: let's you specify a custom paper format.
    • PRINTER_FORMAT_LETTER: specifies standard letter format (8 1/2- by 11-inches).
    • PRINTER_FORMAT_LEGAL: specifies standard legal format (8 1/2- by 14-inches).
    • PRINTER_FORMAT_A3: specifies standard A3 format (297- by 420-millimeters).
    • PRINTER_FORMAT_A4: specifies standard A4 format (210- by 297-millimeters).
    • PRINTER_FORMAT_A5: specifies standard A5 format (148- by 210-millimeters).
    • PRINTER_FORMAT_B4: specifies standard B4 format (250- by 354-millimeters).
    • PRINTER_FORMAT_B5: specifies standard B5 format (182- by 257-millimeter).
    • PRINTER_FORMAT_FOLIO: specifies standard FOLIO format (8 1/2- by 13-inch).
  • PRINTER_PAPER_LENGTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH specifies a custom paper length in mm, value must be an integer.
  • PRINTER_PAPER_WIDTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH specifies a custom paper width in mm, value must be an integer.
  • PRINTER_SCALE: specifies the factor by which the printed output is to be scaled. the page size is scaled from the physical page size by a factor of scale/100. for example if you set the scale to 50, the output would be half of its original size. value must be an integer.
  • PRINTER_BACKGROUND_COLOR: specifies the background color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".
  • PRINTER_TEXT_COLOR: specifies the text color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".
  • PRINTER_TEXT_ALIGN: specifies the text alignment for the actual device context, value can be combined through OR'ing the following constants:
    • PRINTER_TA_BASELINE: text will be aligned at the base line.
    • PRINTER_TA_BOTTOM: text will be aligned at the bottom.
    • PRINTER_TA_TOP: text will be aligned at the top.
    • PRINTER_TA_CENTER: text will be aligned at the center.
    • PRINTER_TA_LEFT: text will be aligned at the left.
    • PRINTER_TA_RIGHT: text will be aligned at the right.

value

The option value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 printer_set_option() example

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

printer_select_pen
printer_start_doc
Printer 函数


Start a new document

printer_set_option
printer_start_page
Printer 函数
PHP 手册

printer_start_doc

(PECL printer CVS)

printer_start_doc — Start a new document

说明

bool printer_start_doc ( resource $printer_handle [, string $document ] )

The function creates a new document in the printer spooler. A document can contain multiple pages, it's used to schedule the print job in the spooler.

参数

printer_handle

printer_handle must be a valid printer handle.

document

The optional parameter document can be used to set an alternative document name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 printer_start_doc() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

printer_set_option
printer_start_page
Printer 函数


Start a new page

printer_start_doc
printer_write
Printer 函数
PHP 手册

printer_start_page

(PECL printer CVS)

printer_start_page — Start a new page

说明

bool printer_start_page ( resource $printer_handle )

The function creates a new page in the active document. For an example see printer_start_doc().

参数

printer_handle

printer_handle must be a valid printer handle.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

printer_start_doc
printer_write
Printer 函数


Write data to the printer

printer_start_page
W32api
Printer 函数
PHP 手册

printer_write

(PECL printer CVS)

printer_write — Write data to the printer

说明

bool printer_write ( resource $printer_handle , string $content )

Writes content directly to the printer.

参数

printer_handle

printer_handle must be a valid printer handle.

content

The data to be written.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 printer_write() example

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>

printer_start_page
W32api
Printer 函数


W32api

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Get the uptime and display it in a message box
  • W32api 函数
    • w32api_deftype — 为 w32api_functions 函数定一个类型
    • w32api_init_dtype — 创建了一个数据类型的实例，并且将函数传入的值填入其中
    • w32api_invoke_function — 带有一个参数的执行一个函数，参数传递在函数名的后面
    • w32api_register_function — 从函数库中使用 PHP 注册一个函数 function_name
    • w32api_set_call_method — 设置调用的方法
printer_write
简介
Windows平台下的扩展


简介

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.1.0.

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

W32api
安装/配置
W32api


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
W32api


需求

This extension will only work on Windows systems.

安装/配置
安装
安装/配置


资源类型

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

DC_MICROSOFT (integer)
DC_BORLAND (integer)
DC_CALL_CDECL (integer)
DC_CALL_STD (integer)
DC_RETVAL_MATH4 (integer)
DC_RETVAL_MATH8 (integer)
DC_CALL_STD_BO (integer)
DC_CALL_STD_MS (integer)
DC_CALL_STD_M8 (integer)
DC_FLAG_ARGPTR (integer)
资源类型
范例
W32api


范例

Table of Contents

  • Get the uptime and display it in a message box
预定义常量
Get the uptime and display it in a message box
W32api


Get the uptime and display it in a message box

范例
W32api 函数
范例
PHP 手册

This example gets the amount of time the system has been running and displays it in a message box.

Example #1 Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                "\r\n %d Milliseconds, or \r\n %d Seconds" .
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
范例
W32api 函数
范例


W32api 函数

Table of Contents

  • w32api_deftype — 为 w32api_functions 函数定一个类型
  • w32api_init_dtype — 创建了一个数据类型的实例，并且将函数传入的值填入其中
  • w32api_invoke_function — 带有一个参数的执行一个函数，参数传递在函数名的后面
  • w32api_register_function — 从函数库中使用 PHP 注册一个函数 function_name
  • w32api_set_call_method — 设置调用的方法
Get the uptime and display it in a message box
w32api_deftype
W32api


为 w32api_functions 函数定一个类型

W32api 函数
w32api_init_dtype
W32api 函数
PHP 手册

w32api_deftype

(PHP 4 >= 4.2.0)

w32api_deftype — 为 w32api_functions 函数定一个类型

描述

bool w32api_deftype ( string $typename , string $member1_type , string $member1_name [, string $... [, string $... ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

如果你希望为 win32api 调用定义一个类型，那么你就需要调用 w32api_deftype()函数。这个函数使得到 2n+1 个参数，n 代表该类型有多少个成员。第一个参数是这个类型的名称。在这之后的是这各类型成员的名称（成对出现）。所有的类型名称大小写敏感。内建的类型名称应该使用小写。 如果成功则返回 TRUE，失败则返回 FALSE。

W32api 函数
w32api_init_dtype
W32api 函数


创建了一个数据类型的实例，并且将函数传入的值填入其中

w32api_deftype
w32api_invoke_function
W32api 函数
PHP 手册

w32api_init_dtype

(PHP 4 >= 4.2.0)

w32api_init_dtype — 创建了一个数据类型的实例，并且将函数传入的值填入其中

描述

resource w32api_init_dtype ( string $typename , mixed $value [, mixed $... ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

这个函数创建了名为 typename 的数据类型的实例，并且填入了这种数据类型的数据。这种 typename 参数大小写敏感。你给出的值应该和你定义的 w32api_deftype() 类型顺序一致。返回资源的类型则为 dynaparm。

w32api_deftype
w32api_invoke_function
W32api 函数


带有一个参数的执行一个函数，参数传递在函数名的后面

w32api_init_dtype
w32api_register_function
W32api 函数
PHP 手册

w32api_invoke_function

(PHP 4 >= 4.2.0)

w32api_invoke_function — 带有一个参数的执行一个函数，参数传递在函数名的后面

描述

mixed w32api_invoke_function ( string $funcname , mixed $argument [, mixed $... ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

w32api_invoke_function() 尝试查找一个注册为私有的函数，名为 funcname 的函数，需要提供传递的参数。返回的类型是你在注册函数时指定的，值则是由函数自身返回的。任何参数的类型可以是 PHP 类型，如果需要还可以使用 w32api_deftype() 函数定义。

w32api_init_dtype
w32api_register_function
W32api 函数


从函数库中使用 PHP 注册一个函数 function_name

w32api_invoke_function
w32api_set_call_method
W32api 函数
PHP 手册

w32api_register_function

(PHP 4 >= 4.2.0)

w32api_register_function — 从函数库中使用 PHP 注册一个函数 function_name

描述

bool w32api_register_function ( string $library , string $function_name , string $return_type )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

这个函数尝试在 libary 中查找一个名为 function_name 的函数并且尝试把它导入 PHP。这个函数将使用 return_type 类型被注册。这个类型可以是一个标准的 PHP 类型，或者使用 w32api_deftype() 函数定义类型。所有的名称大小写敏感，内建的函数使用小写字母。 如果成功则返回 TRUE，失败则返回 FALSE。

w32api_invoke_function
w32api_set_call_method
W32api 函数


设置调用的方法

w32api_register_function
win32ps
W32api 函数
PHP 手册

w32api_set_call_method

(PHP 4 >= 4.2.0)

w32api_set_call_method — 设置调用的方法

描述

void w32api_set_call_method ( int $method )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

这个函数设置了调用方法的类型。参数内容可以是 DC_CALL_CDECL 或 DC_CALL_STD 中的一种。此扩展的默认值是 DC_CALL_STD。

w32api_register_function
win32ps
W32api 函数


win32ps

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Statistics about the current PHP process
  • win32ps 函数
    • win32_ps_list_procs — List running processes
    • win32_ps_stat_mem — Stat memory utilization
    • win32_ps_stat_proc — Stat process
w32api_set_call_method
简介
Windows平台下的扩展


简介

The win32ps extension is a Windows specific extension that allows PHP retrieve statistics about process and memory utilization.

win32ps
安装/配置
win32ps


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
win32ps


需求

Windows NT, Windows 2000, Windows XP or Windows Server 2003. Any version of Windows derived from Windows NT should be compatible.

安装/配置
安装
安装/配置


安装

Installing from PECL

  1. You can download php_win32ps.dll from » pecl4win.php.net.

  2. Copy the php_win32ps.dll into your extension_dir.

  3. Load the extension from your php.ini

    extension=php_win32ps.dll

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
win32ps


范例

Table of Contents

  • Statistics about the current PHP process
预定义常量
Statistics about the current PHP process
win32ps


Statistics about the current PHP process

范例
win32ps 函数
范例
PHP 手册

Example #1 Statistics about the current PHP process

<?php
print_r(win32_ps_stat_proc());
/*
    Array
    (
        [pid] => 936
        [exe] => D:\Daten\Source\php-5.1\Debug_TS\php.exe
        [mem] => Array
            (
                [page_fault_count] => 2062
                [peak_working_set_size] => 8396800
                [working_set_size] => 8396800
                [quota_peak_paged_pool_usage] => 32080
                [quota_paged_pool_usage] => 31876
                [quota_peak_non_paged_pool_usage] => 4240
                [quota_non_paged_pool_usage] => 3888
                [pagefile_usage] => 5865472
                [peak_pagefile_usage] => 5865472
            )

        [tms] => Array
            (
                [created] => 0.093
                [kernel] => 0.015
                [user] => 0.062
            )

    )
*/
?>

Example #2 Statistics about global memory utilization

<?php
print_r(win32_ps_stat_mem());
/*
    Array
    (
        [load] => 37
        [unit] => 1024
        [total_phys] => 1048096
        [avail_phys] => 649960
        [total_pagefile] => 2521368
        [avail_pagefile] => 2237940
        [total_virtual] => 2097024
        [avail_virtual] => 2057848
    )
*/
?>

范例
win32ps 函数
范例


win32ps 函数

Table of Contents

  • win32_ps_list_procs — List running processes
  • win32_ps_stat_mem — Stat memory utilization
  • win32_ps_stat_proc — Stat process
Statistics about the current PHP process
win32_ps_list_procs
win32ps


List running processes

win32ps 函数
win32_ps_stat_mem
win32ps 函数
PHP 手册

win32_ps_list_procs

(PECL win32ps >= 1.0.1)

win32_ps_list_procs — List running processes

说明

array win32_ps_list_procs ( void )

Retrieves statistics about all running processes.

返回值

Returns FALSE on failure, or an array consisting of process statistics like win32_ps_stat_proc() returns for all running processes on success.

参见

  • win32_ps_stat_proc() - Stat process

win32ps 函数
win32_ps_stat_mem
win32ps 函数


Stat memory utilization

win32_ps_list_procs
win32_ps_stat_proc
win32ps 函数
PHP 手册

win32_ps_stat_mem

(PECL win32ps >= 1.0.1)

win32_ps_stat_mem — Stat memory utilization

说明

array win32_ps_stat_mem ( void )

Retrieves statistics about the global memory utilization.

返回值

Returns FALSE on failure, or an array consisting of the following information on success:

load

The current memory load in percent of physical memory.

unit

This is always 1024, and indicates that the following values are the count of 1024 bytes.

total_phys

The amount of total physical memory.

avail_phys

The amount of still available physical memory.

total_pagefile

The amount of total pageable memory (physical memory + paging file).

avail_pagefile

The amount of still available pageable memory (physical memory + paging file).

total_virtual

The amount of total virtual memory for a process.

avail_virtual

The amount of still available virtual memory for a process.

win32_ps_list_procs
win32_ps_stat_proc
win32ps 函数


Stat process

win32_ps_stat_mem
win32service
win32ps 函数
PHP 手册

win32_ps_stat_proc

(PECL win32ps >= 1.0.1)

win32_ps_stat_proc — Stat process

说明

array win32_ps_stat_proc ([ int $pid=0 ] )

Retrieves statistics about the process with the process id pid .

参数

pid

The process id of the process to stat. If omitted, the id of the current process.

返回值

Returns FALSE on failure, or an array consisting of the following information on success:

pid

The process id.

exe

The path to the executable image.

mem

An array containing information about the following memory utilization indicators: page_fault_count , peak_working_set_size , working_set_size , quota_peak_paged_pool_usage , quota_paged_pool_usage , quota_peak_non_paged_pool_usage , quota_non_paged_pool_usage , pagefile_usage and peak_pagefile_usage .

tms

An array containing information about the following CPU time utilization indicators: created , kernel and user .

参见

  • win32_ps_list_procs() - List running processes

win32_ps_stat_mem
win32service
win32ps 函数


win32service

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Registering a PHP script to run as a service
  • win32service 函数
    • win32_create_service — Creates a new service entry in the SCM database
    • win32_delete_service — Deletes a service entry from the SCM database
    • win32_get_last_control_message — Returns the last control message that was sent to this service
    • win32_query_service_status — Queries the status of a service
    • win32_set_service_status — Update the service status
    • win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
    • win32_start_service — Starts a service
    • win32_stop_service — Stops a service
win32_ps_stat_proc
简介
Windows平台下的扩展


简介

The win32service extension is a Windows specific extension that allows PHP to communicate with the Service Control Manager to start, stop, register and unregister services, and even allows your PHP scripts to run as a service.

win32service
安装/配置
win32service


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
win32service


安装

Installing from PECL

  1. You can download php_win32service.dll from http://snaps.php.net/win32/. Choose the PECL_X_X folder that matches you PHP version.

  2. Copy the php_win32service.dll into your extension_dir.

  3. Load the extension from your php.ini

    extension=php_win32service.dll

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

WIN32_SERVICE_CONTROL_CONTINUE (integer)
WIN32_SERVICE_CONTROL_INTERROGATE (integer)
WIN32_SERVICE_CONTROL_PAUSE (integer)
WIN32_SERVICE_CONTROL_STOP (integer)
WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE (integer)
WIN32_SERVICE_CONTROL_POWEREVENT (integer)
WIN32_SERVICE_CONTROL_SESSIONCHANGE (integer)
WIN32_ERROR_CALL_NOT_IMPLEMENTED (integer)
WIN32_NO_ERROR (integer)
WIN32_SERVICE_RUNNING (integer)
WIN32_SERVICE_STOPPED (integer)
WIN32_SERVICE_STOP_PENDING (integer)
WIN32_SERVICE_WIN32_OWN_PROCESS (integer)
WIN32_SERVICE_INTERACTIVE_PROCESS (integer)
WIN32_SERVICE_STOPPED (integer)
WIN32_SERVICE_START_PENDING (integer)
WIN32_SERVICE_STOP_PENDING (integer)
WIN32_SERVICE_RUNNING (integer)
WIN32_SERVICE_CONTINUE_PENDING (integer)
WIN32_SERVICE_PAUSE_PENDING (integer)
WIN32_SERVICE_PAUSED (integer)
WIN32_SERVICE_ACCEPT_NETBINDCHANGE (integer)
WIN32_SERVICE_ACCEPT_PARAMCHANGE (integer)
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE (integer)
WIN32_SERVICE_ACCEPT_SHUTDOWN (integer)
WIN32_SERVICE_ACCEPT_STOP (integer)
WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE (integer)
WIN32_SERVICE_ACCEPT_POWEREVENT (integer)
WIN32_SERVICE_ACCEPT_SESSIONCHANGE (integer)
WIN32_SERVICE_FILE_SYSTEM_DRIVER (integer)
WIN32_SERVICE_KERNEL_DRIVER (integer)
WIN32_SERVICE_WIN32_SHARE_PROCESS (integer)
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS (integer)
资源类型
范例
win32service


范例

Table of Contents

  • Registering a PHP script to run as a service
预定义常量
Registering a PHP script to run as a service
win32service


Registering a PHP script to run as a service

范例
win32service 函数
范例
PHP 手册

Example #1 Registering a PHP script to run as a service

<?php
win32_create_service(array(
    'service' => 'dummyphp',                 # the name of your service
    'display' => 'sample dummy PHP service', # description
    'params' => 'c:\path\to\script.php run', # path to the script and parameters
));
?>

Example #2 Unregistering a service

<?php
win32_delete_service('dummyphp');
?>

Example #3 Running as a service

<?php
if ($argv[1] == 'run') {
  win32_start_service_ctrl_dispatcher('dummyphp');

  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # do your work here.
    # try not to take up more than 30 seconds before going around the loop
    # again
  }
}
?>

范例
win32service 函数
范例


win32service 函数

Table of Contents

  • win32_create_service — Creates a new service entry in the SCM database
  • win32_delete_service — Deletes a service entry from the SCM database
  • win32_get_last_control_message — Returns the last control message that was sent to this service
  • win32_query_service_status — Queries the status of a service
  • win32_set_service_status — Update the service status
  • win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
  • win32_start_service — Starts a service
  • win32_stop_service — Stops a service
Registering a PHP script to run as a service
win32_create_service
win32service


Creates a new service entry in the SCM database

win32service 函数
win32_delete_service
win32service 函数
PHP 手册

win32_create_service

(PECL win32service CVS)

win32_create_service — Creates a new service entry in the SCM database

说明

mixed win32_create_service ( array $details [, string $machine ] )

参数

details

An array of service details:

service

The short name of the service. This is the name that you will use to control the service using the net command. The service must be unique (no two services can share the same name), and, ideally, should avoid having spaces in the name.

display

The display name of the service. This is the name that you will see in the Services Applet.

user

The name of the user account under which you want the service to run. If omitted, the service will run as the LocalSystem account. If the username is specified, you must also provide a password.

password

The password that corresponds to the user .

path

The full path to the executable module that will be launched when the service is started. If omitted, the path to the current PHP process will be used.

params

Command line parameters to pass to the service when it starts. If you want to run a PHP script as the service, then the first parameter should be the full path to the PHP script that you intend to run.

load_order

Controls the load_order. This is not yet fully supported.

svc_type

Sets the service type. If omitted, the default value is WIN32_SERVICE_WIN32_OWN_PROCESS. Don't change this unless you know what you're doing.

start_type

Specifies how the service should be started. The default is WIN32_SERVICE_AUTO_START which means the the service will be launched when the machine starts up.

error_control

Informs the SCM what it should do when it detects a problem with the service. The default is WIN32_SERVER_ERROR_IGNORE. Changing this value is not yet fully supported.

machine

The optional machine name on which you want to create a service. If omitted, it will use the local machine.

返回值

Returns TRUE on success, otherwise returns a win32 error code.

范例

Example #1 A win32_create_service() example

Any text that describes the purpose of the example, or what goes on in the example should go here (inside the

<?php
$x = win32_create_service(array(
        'service' => 'dummyphp',
        'display' => 'sample dummy PHP service',
        'params' => __FILE__ . ' run',
));
debug_zval_dump($x);
?>

参见

  • win32_delete_service() - Deletes a service entry from the SCM database

win32service 函数
win32_delete_service
win32service 函数


Deletes a service entry from the SCM database

win32_create_service
win32_get_last_control_message
win32service 函数
PHP 手册

win32_delete_service

(PECL win32service CVS)

win32_delete_service — Deletes a service entry from the SCM database

说明

int win32_delete_service ( string $servicename [, string $machine ] )

Attempts to delete a service from the SCM database. Administrative privileges are required for this to succeed.

This function really just marks the service for deletion. If other processes (such as the Services Applet) are open, then the deletion will be deferred until those applications are closed. If a service is marked for deletion, further attempts to delete it will fail, and attempts to create a new service with that name will also fail.

参数

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

返回值

Returns TRUE on success, or a win32 error code on failure.

范例

Example #1 A win32_delete_service() example

Deletes the dummyphp service.

<?php
win32_delete_service('dummyphp');
?>

win32_create_service
win32_get_last_control_message
win32service 函数


Returns the last control message that was sent to this service

win32_delete_service
win32_query_service_status
win32service 函数
PHP 手册

win32_get_last_control_message

(PECL win32service CVS)

win32_get_last_control_message — Returns the last control message that was sent to this service

说明

int win32_get_last_control_message ( void )

Returns the control code that was last sent to this service process. When running as a service you should periodically check this to determine if your service needs to stop running.

返回值

Returns a control constant; one of WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_STOP, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_SESSIONCHANGE.

参见

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name

win32_delete_service
win32_query_service_status
win32service 函数


Queries the status of a service

win32_get_last_control_message
win32_set_service_status
win32service 函数
PHP 手册

win32_query_service_status

(PECL win32service CVS)

win32_query_service_status — Queries the status of a service

说明

mixed win32_query_service_status ( string $servicename [, string $machine ] )

Queries the current status for a service, returning an array of information.

参数

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

返回值

Returns FALSE on failure, otherwise returns an array consisting of the following information:

ServiceType

The dwServiceType.

CurrentState

The dwCurrentState.

ControlsAccepted

Which service controls are accepted by the service.

Win32ExitCode

If the service exited, the return code from the process.

ServiceSpecificExitCode

If the service exited with an error condition, the service specific code that is logged in the event log is visible here.

CheckPoint

If the service is shutting down, holds the current check point number. This is used by the SCM as a kind of heart-beat to detect a wedged service process. The value of the check point is best interpreted in conjunction with the WaitHint value.

WaitHint

If the service is shutting down it will set WaitHint to a checkpoint value that will indicate 100% completion. This can be used to implement a progress indicator.

ProcessId

The Windows process identifier. If 0, the process is not running.

ServiceFlags

The dwServiceFlags.

win32_get_last_control_message
win32_set_service_status
win32service 函数


Update the service status

win32_query_service_status
win32_start_service_ctrl_dispatcher
win32service 函数
PHP 手册

win32_set_service_status

(PECL win32service CVS)

win32_set_service_status — Update the service status

说明

bool win32_set_service_status ( int $status )

Informs the SCM of the current status of a running service. This call is only valid for a running service process.

参数

status

The service status code, one of WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name

win32_query_service_status
win32_start_service_ctrl_dispatcher
win32service 函数


Registers the script with the SCM, so that it can act as the service with the given name

win32_set_service_status
win32_start_service
win32service 函数
PHP 手册

win32_start_service_ctrl_dispatcher

(PECL win32service CVS)

win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name

说明

mixed win32_start_service_ctrl_dispatcher ( string $name )

When launched via the Service Control Manager, a service process is required to "check-in" with it to establish service monitoring and communication facilities. This function performs the check-in by spawning a thread to handle the lower-level communication with the service control manager.

Once started, the service process should continue to check-in with the service control manager so that it can determine if it should terminate. This is achieved by periodically calling win32_get_last_control_message() and handling the return code appropriately.

参数

name

The short-name of the service, as registered by win32_create_service().

返回值

Returns TRUE on success, otherwise FALSE or a win32 error code.

范例

Example #1 A win32_start_service_ctrl_dispatcher() example

Any text that describes the purpose of the example, or what goes on in the example should go here (inside the

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die("I'm probably not running under the service control manager");
}

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  # do some work here, trying not to take more than around 30 seconds
  # before coming back into the loop again
}
?>

参见

  • win32_get_last_control_message() - Returns the last control message that was sent to this service

win32_set_service_status
win32_start_service
win32service 函数


Starts a service

win32_start_service_ctrl_dispatcher
win32_stop_service
win32service 函数
PHP 手册

win32_start_service

(PECL win32service CVS)

win32_start_service — Starts a service

说明

int win32_start_service ( string $servicename [, string $machine ] )

Attempts to start the named service. Usually requires administrative privileges.

参数

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

返回值

Returns WIN32_NO_ERROR on success, or some other win32 error code on failure.

参见

  • win32_stop_service() - Stops a service

win32_start_service_ctrl_dispatcher
win32_stop_service
win32service 函数


Stops a service

win32_start_service
XML操作
win32service 函数
PHP 手册

win32_stop_service

(PECL win32service CVS)

win32_stop_service — Stops a service

说明

int win32_stop_service ( string $servicename [, string $machine ] )

Stops a named service. Requires administrative privileges.

参数

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

返回值

Returns WIN32_NO_ERROR on success, or a win32 error code on failure.

参见

  • win32_start_service() - Starts a service

win32_start_service
XML操作
win32service 函数


XML操作

  • DOM — Document Object Model
    • 简介
    • 安装/配置
    • 预定义常量
    • DOMAttr — The DOMAttr class
    • DOMCharacterData — The DOMCharacterData class
    • DOMComment — The DOMComment class
    • DOMDocument — The DOMDocument class
    • DOMDocumentFragment — The DOMDocumentFragment class
    • DOMDocumentType — The DOMDocumentType class
    • DOMElement — The DOMElement class
    • DOMEntity — The DOMEntity class
    • DOMEntityReference — The DOMEntityReference class
    • DOMException — The DOMException class
    • DOMImplementation — The DOMImplementation class
    • DOMNamedNodeMap — The DOMNamedNodeMap class
    • DOMNode — The DOMNode class
    • DOMNodeList — The DOMNodeList class
    • DOMNotation — The DOMNotation class
    • DOMProcessingInstruction — The DOMProcessingInstruction class
    • DOMText — The DOMText class
    • DOMXPath — The DOMXPath class
    • DOM 函数
  • DOM XML
    • 简介
    • 安装/配置
    • 预定义常量
    • DOM XML 函数
  • libxml
    • 简介
    • 安装/配置
    • 预定义常量
    • libXMLError — The libXMLError class
    • libxml 函数
  • qtdom
    • 简介
    • 安装/配置
    • 预定义常量
    • qtdom 函数
  • SDO — Service Data Objects
    • 简介
    • 安装/配置
    • 预定义常量
    • Limitations
    • 范例
    • SDO 函数
  • SDO-DAS-Relational — SDO Relational Data Access Service
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • Limitations
    • SDO-DAS-Relational 函数
  • SDO DAS XML — SDO XML Data Access Service
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • SDO DAS XML 函数
  • SimpleXML
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • SimpleXML 函数
  • WDDX
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • WDDX 函数
  • XML Parser
    • 简介
    • 安装/配置
    • 预定义常量
    • Event Handlers
    • Case Folding
    • Error Codes
    • Character Encoding
    • 范例
    • XML Parser 函数
  • XMLReader
    • 简介
    • 安装/配置
    • XMLReader — The XMLReader class
  • XMLWriter
    • 简介
    • 安装/配置
    • 预定义常量
    • XMLWriter 函数
  • XSL
    • 简介
    • 安装/配置
    • 预定义常量
    • 范例
    • XSLTProcessor — The XSLTProcessor class
  • XSLT
    • 简介
    • 安装/配置
    • 预定义常量
    • XSLT 函数
win32_stop_service
DOM
函数参考


Document Object Model

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • DOMAttr — The DOMAttr class
    • DOMAttr::__construct — Creates a new DOMAttr object
    • DOMAttr::isId — Checks if attribute is a defined ID
  • DOMCharacterData — The DOMCharacterData class
    • DOMCharacterData::appendData — Append the string to the end of the character data of the node
    • DOMCharacterData::deleteData — Remove a range of characters from the node
    • DOMCharacterData::insertData — Insert a string at the specified 16-bit unit offset
    • DOMCharacterData::replaceData — Replace a substring within the DOMCharacterData node
    • DOMCharacterData::substringData — Extracts a range of data from the node
  • DOMComment — The DOMComment class
    • DOMComment::__construct — Creates a new DOMComment object
  • DOMDocument — The DOMDocument class
    • DOMDocument::__construct — Creates a new DOMDocument object
    • DOMDocument::createAttribute — Create new attribute
    • DOMDocument::createAttributeNS — Create new attribute node with an associated namespace
    • DOMDocument::createCDATASection — Create new cdata node
    • DOMDocument::createComment — Create new comment node
    • DOMDocument::createDocumentFragment — Create new document fragment
    • DOMDocument::createElement — Create new element node
    • DOMDocument::createElementNS — Create new element node with an associated namespace
    • DOMDocument::createEntityReference — Create new entity reference node
    • DOMDocument::createProcessingInstruction — Creates new PI node
    • DOMDocument::createTextNode — Create new text node
    • DOMDocument::getElementById — Searches for an element with a certain id
    • DOMDocument::getElementsByTagName — Searches for all elements with given tag name
    • DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace
    • DOMDocument::importNode — Import node into current document
    • DOMDocument::load — Load XML from a file
    • DOMDocument::loadHTML — Load HTML from a string
    • DOMDocument::loadHTMLFile — Load HTML from a file
    • DOMDocument::loadXML — Load XML from a string
    • DOMDocument::normalizeDocument — Normalizes the document
    • DOMDocument::registerNodeClass — Register extended class used to create base node type
    • DOMDocument::relaxNGValidate — Performs relaxNG validation on the document
    • DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document
    • DOMDocument::save — Dumps the internal XML tree back into a file
    • DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting
    • DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting
    • DOMDocument::saveXML — Dumps the internal XML tree back into a string
    • DOMDocument::schemaValidate — Validates a document based on a schema
    • DOMDocument::schemaValidateSource — Validates a document based on a schema
    • DOMDocument::validate — Validates the document based on its DTD
    • DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object
  • DOMDocumentFragment — The DOMDocumentFragment class
    • DOMDocumentFragment::appendXML — Append raw XML data
  • DOMDocumentType — The DOMDocumentType class
  • DOMElement — The DOMElement class
    • DOMElement::__construct — Creates a new DOMElement object
    • DOMElement::getAttribute — Returns value of attribute
    • DOMElement::getAttributeNode — Returns attribute node
    • DOMElement::getAttributeNodeNS — Returns attribute node
    • DOMElement::getAttributeNS — Returns value of attribute
    • DOMElement::getElementsByTagName — Gets elements by tagname
    • DOMElement::getElementsByTagNameNS — Get elements by namespaceURI and localName
    • DOMElement::hasAttribute — Checks to see if attribute exists
    • DOMElement::hasAttributeNS — Checks to see if attribute exists
    • DOMElement::removeAttribute — Removes attribute
    • DOMElement::removeAttributeNode — Removes attribute
    • DOMElement::removeAttributeNS — Removes attribute
    • DOMElement::setAttribute — Adds new attribute
    • DOMElement::setAttributeNode — Adds new attribute node to element
    • DOMElement::setAttributeNodeNS — Adds new attribute node to element
    • DOMElement::setAttributeNS — Adds new attribute
    • DOMElement::setIdAttribute — Declares the attribute specified by name to be of type ID
    • DOMElement::setIdAttributeNode — Declares the attribute specified by node to be of type ID
    • DOMElement::setIdAttributeNS — Declares the attribute specified by local name and namespace URI to be of type ID
  • DOMEntity — The DOMEntity class
  • DOMEntityReference — The DOMEntityReference class
    • DOMEntityReference::__construct — Creates a new DOMEntityReference object
  • DOMException — The DOMException class
  • DOMImplementation — The DOMImplementation class
    • DOMImplementation::__construct — Creates a new DOMImplementation object
    • DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element
    • DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object
    • DOMImplementation::hasFeature — Test if the DOM implementation implements a specific feature
  • DOMNamedNodeMap — The DOMNamedNodeMap class
    • DOMNamedNodeMap::getNamedItem — Retrieves a node specified by name
    • DOMNamedNodeMap::getNamedItemNS — Retrieves a node specified by local name and namespace URI
    • DOMNamedNodeMap::item — Retrieves a node specified by index
  • DOMNode — The DOMNode class
    • DOMNode::appendChild — Adds new child at the end of the children
    • DOMNode::cloneNode — Clones a node
    • DOMNode::hasAttributes — Checks if node has attributes
    • DOMNode::hasChildNodes — Checks if node has children
    • DOMNode::insertBefore — Adds a new child before a reference node
    • DOMNode::isDefaultNamespace — Checks if the specified namespaceURI is the default namespace or not
    • DOMNode::isSameNode — Indicates if two nodes are the same node
    • DOMNode::isSupported — Checks if feature is supported for specified version
    • DOMNode::lookupNamespaceURI — Gets the namespace URI of the node based on the prefix
    • DOMNode::lookupPrefix — Gets the namespace prefix of the node based on the namespace URI
    • DOMNode::normalize — Normalizes the node
    • DOMNode::removeChild — Removes child from list of children
    • DOMNode::replaceChild — Replaces a child
  • DOMNodeList — The DOMNodeList class
    • DOMNodelist::item — Retrieves a node specified by index
  • DOMNotation — The DOMNotation class
  • DOMProcessingInstruction — The DOMProcessingInstruction class
    • DOMProcessingInstruction::__construct — Creates a new DOMProcessingInstruction object
  • DOMText — The DOMText class
    • DOMText::__construct — Creates a new DOMText object
    • DOMText::isWhitespaceInElementContent — Indicates whether this text node contains whitespace
    • DOMText::splitText — Breaks this node into two nodes at the specified offset
  • DOMXPath — The DOMXPath class
    • DOMXPath::__construct — Creates a new DOMXPath object
    • DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible.
    • DOMXPath::query — Evaluates the given XPath expression
    • DOMXPath::registerNamespace — Registers the namespace with the DOMXPath object
  • DOM 函数
    • dom_import_simplexml — Gets a DOMElement object from a SimpleXMLElement object
XML操作
简介
XML操作


简介

The DOM extension allows you to operate on XML documents through the DOM API with PHP 5.

For PHP 4, use DOM XML.

Note: DOM extension uses UTF-8 encoding. Use utf8_encode() and utf8_decode() to work with texts in ISO-8859-1 encoding or Iconv for other encodings.

DOM
安装/配置
DOM


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
DOM


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XML constants
Constant | Value | Description
XML_ELEMENT_NODE (integer) | 1 | Node is a DOMElement
XML_ATTRIBUTE_NODE (integer) | 2 | Node is a DOMAttr
XML_TEXT_NODE (integer) | 3 | Node is a DOMText
XML_CDATA_SECTION_NODE (integer) | 4 | Node is a DOMCharacterData
XML_ENTITY_REF_NODE (integer) | 5 | Node is a DOMEntityReference
XML_ENTITY_NODE (integer) | 6 | Node is a DOMEntity
XML_PI_NODE (integer) | 7 | Node is a DOMProcessingInstruction
XML_COMMENT_NODE (integer) | 8 | Node is a DOMComment
XML_DOCUMENT_NODE (integer) | 9 | Node is a DOMDocument
XML_DOCUMENT_TYPE_NODE (integer) | 10 | Node is a DOMDocumentType
XML_DOCUMENT_FRAG_NODE (integer) | 11 | Node is a DOMDocumentFragment
XML_NOTATION_NODE (integer) | 12 | Node is a DOMNotation
XML_HTML_DOCUMENT_NODE (integer) | 13 |
XML_DTD_NODE (integer) | 14 |
XML_ELEMENT_DECL_NODE (integer) | 15 |
XML_ATTRIBUTE_DECL_NODE (integer) | 16 |
XML_ENTITY_DECL_NODE (integer) | 17 |
XML_NAMESPACE_DECL_NODE (integer) | 18 |
XML_ATTRIBUTE_CDATA (integer) | 1 |
XML_ATTRIBUTE_ID (integer) | 2 |
XML_ATTRIBUTE_IDREF (integer) | 3 |
XML_ATTRIBUTE_IDREFS (integer) | 4 |
XML_ATTRIBUTE_ENTITY (integer) | 5 |
XML_ATTRIBUTE_NMTOKEN (integer) | 7 |
XML_ATTRIBUTE_NMTOKENS (integer) | 8 |
XML_ATTRIBUTE_ENUMERATION (integer) | 9 |
XML_ATTRIBUTE_NOTATION (integer) | 10 |
DOMException constants
Constant | Value | Description
DOM_INDEX_SIZE_ERR (integer) | 1 | If index or size is negative, or greater than the allowed value.
DOMSTRING_SIZE_ERR (integer) | 2 | If the specified range of text does not fit into a DOMString.
DOM_HIERARCHY_REQUEST_ERR (integer) | 3 | If any node is inserted somewhere it doesn't belong
DOM_WRONG_DOCUMENT_ERR (integer) | 4 | If a node is used in a different document than the one that created it.
DOM_INVALID_CHARACTER_ERR (integer) | 5 | If an invalid or illegal character is specified, such as in a name.
DOM_NO_DATA_ALLOWED_ERR (integer) | 6 | If data is specified for a node which does not support data.
DOM_NO_MODIFICATION_ALLOWED_ERR (integer) | 7 | If an attempt is made to modify an object where modifications are not allowed.
DOM_NOT_FOUND_ERR (integer) | 8 | If an attempt is made to reference a node in a context where it does not exist.
DOM_NOT_SUPPORTED_ERR (integer) | 9 | If the implementation does not support the requested type of object or operation.
DOM_INUSE_ATTRIBUTE_ERR (integer) | 10 | If an attempt is made to add an attribute that is already in use elsewhere.
DOM_INVALID_STATE_ERR (integer) | 11 | If an attempt is made to use an object that is not, or is no longer, usable.
DOM_SYNTAX_ERR (integer) | 12 | If an invalid or illegal string is specified.
DOM_INVALID_MODIFICATION_ERR (integer) | 13 | If an attempt is made to modify the type of the underlying object.
DOM_NAMESPACE_ERR (integer) | 14 | If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
DOM_INVALID_ACCESS_ERR (integer) | 15 | If a parameter or an operation is not supported by the underlying object.
DOM_VALIDATION_ERR (integer) | 16 | If a call to a method such as insertBefore or removeChild would make the Node invalid with respect to "partial validity", this exception would be raised and the operation would not be done.
资源类型
DOMAttr
DOM


The DOMAttr class

简介

DOMAttr represents an attribute in the DOMElement object.

Class synopsis

DOMAttr
DOMAttr extends DOMNode {
/* Properties */
public readonly string $name ;
public readonly DOMElement $ownerElement ;
public readonly bool $schemaTypeInfo ;
public readonly bool $specified ;
public string $value ;
/* Methods */
__construct ( string $name [, string $value ] )
bool isId ( void )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

name

The name of the attribute

ownerElement

The element which contains the attribute

schemaTypeInfo

Not implemented yet, always is NULL

specified

Not implemented yet, always is NULL

value

The value of the attribute

参见

  • » W3C specification of Attr

Table of Contents

  • DOMAttr::__construct — Creates a new DOMAttr object
  • DOMAttr::isId — Checks if attribute is a defined ID
预定义常量
DOMAttr::__construct
DOM


Creates a new DOMAttr object

DOMAttr
DOMAttr::isId
DOMAttr
PHP 手册

DOMAttr::__construct

(PHP 5)

DOMAttr::__construct — Creates a new DOMAttr object

说明

DOMAttr::__construct ( string $name [, string $value ] )

Creates a new DOMAttr object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writable node, use DOMDocument::createAttribute.

参数

name

The tag name of the attribute.

value

The value of the attribute.

范例

Example #1 Creating a new DOMAttr

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root attr="attrvalue" /> */

?>

参见

  • DOMDocument::createAttribute

DOMAttr
DOMAttr::isId
DOMAttr


Checks if attribute is a defined ID

DOMAttr::__construct
DOMCharacterData
DOMAttr
PHP 手册

DOMAttr::isId

(PHP 5)

DOMAttr::isId — Checks if attribute is a defined ID

说明

bool DOMAttr::isId ( void )

This function checks if the attribute is a defined ID.

According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID. You need to validate your document with DOMDocument::validate or DOMDocument::validateOnParse before using this function.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 DOMAttr->isId() Example

<?php

$doc = new DomDocument;

// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');

// We retrieve the attribute named id of the chapter element
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>

DOMAttr::__construct
DOMCharacterData
DOMAttr


The DOMCharacterData class

简介

Represents nodes with character data. No nodes directly correspond to this class, but other nodes do inherit from it.

Class synopsis

DOMCharacterData
DOMCharacterData extends DOMNode {
/* Properties */
public string $data ;
readonly public int $length ;
/* Methods */
void appendData ( string $data )
void deleteData ( int $offset , int $count )
void insertData ( int $offset , string $data )
void replaceData ( int $offset , int $count , string $data )
string substringData ( int $offset , int $count )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

data

The contents of the node.

length

The length of the contents.

参见

  • » W3C specification of CharacterData

Table of Contents

  • DOMCharacterData::appendData — Append the string to the end of the character data of the node
  • DOMCharacterData::deleteData — Remove a range of characters from the node
  • DOMCharacterData::insertData — Insert a string at the specified 16-bit unit offset
  • DOMCharacterData::replaceData — Replace a substring within the DOMCharacterData node
  • DOMCharacterData::substringData — Extracts a range of data from the node
DOMAttr::isId
DOMCharacterData::appendData
DOM


Append the string to the end of the character data of the node

DOMCharacterData
DOMCharacterData::deleteData
DOMCharacterData
PHP 手册

DOMCharacterData::appendData

(PHP 5)

DOMCharacterData::appendData — Append the string to the end of the character data of the node

说明

void DOMCharacterData::appendData ( string $data )

Append the string data to the end of the character data of the node.

参数

data

The string to append.

返回值

无返回值。

参见

  • DOMCharacterData::deleteData
  • DOMCharacterData::insertData
  • DOMCharacterData::replaceData
  • DOMCharacterData::substringData

DOMCharacterData
DOMCharacterData::deleteData
DOMCharacterData


Remove a range of characters from the node

DOMCharacterData::appendData
DOMCharacterData::insertData
DOMCharacterData
PHP 手册

DOMCharacterData::deleteData

(PHP 5)

DOMCharacterData::deleteData — Remove a range of characters from the node

说明

void DOMCharacterData::deleteData ( int $offset , int $count )

Deletes count characters starting from position offset .

参数

offset

The offset from which to start removing.

count

The number of characters to delete. If the sum of offset and count exceeds the length, then all characters to the end of the data are deleted.

返回值

无返回值。

错误／异常

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

参见

  • DOMCharacterData::appendData
  • DOMCharacterData::insertData
  • DOMCharacterData::replaceData
  • DOMCharacterData::substringData

DOMCharacterData::appendData
DOMCharacterData::insertData
DOMCharacterData


Insert a string at the specified 16-bit unit offset

DOMCharacterData::deleteData
DOMCharacterData::replaceData
DOMCharacterData
PHP 手册

DOMCharacterData::insertData

(PHP 5)

DOMCharacterData::insertData — Insert a string at the specified 16-bit unit offset

说明

void DOMCharacterData::insertData ( int $offset , string $data )

Inserts string data at position offset .

参数

offset

The character offset at which to insert.

data

The string to insert.

返回值

无返回值。

错误／异常

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data.

参见

  • DOMCharacterData::appendData
  • DOMCharacterData::deleteData
  • DOMCharacterData::replaceData
  • DOMCharacterData::substringData

DOMCharacterData::deleteData
DOMCharacterData::replaceData
DOMCharacterData


Replace a substring within the DOMCharacterData node

DOMCharacterData::insertData
DOMCharacterData::substringData
DOMCharacterData
PHP 手册

DOMCharacterData::replaceData

(PHP 5)

DOMCharacterData::replaceData — Replace a substring within the DOMCharacterData node

说明

void DOMCharacterData::replaceData ( int $offset , int $count , string $data )

Replace count characters starting from position offset with data .

参数

offset

The offset from which to start replacing.

count

The number of characters to replace. If the sum of offset and count exceeds the length, then all characters to the end of the data are replaced.

data

The string with which the range must be replaced.

返回值

无返回值。

错误／异常

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

参见

  • DOMCharacterData::appendData
  • DOMCharacterData::deleteData
  • DOMCharacterData::insertData
  • DOMCharacterData::substringData

DOMCharacterData::insertData
DOMCharacterData::substringData
DOMCharacterData


Extracts a range of data from the node

DOMCharacterData::replaceData
DOMComment
DOMCharacterData
PHP 手册

DOMCharacterData::substringData

(PHP 5)

DOMCharacterData::substringData — Extracts a range of data from the node

说明

string DOMCharacterData::substringData ( int $offset , int $count )

Returns the specified substring.

参数

offset

Start offset of substring to extract.

count

The number of characters to extract.

返回值

The specified substring. If the sum of offset and count exceeds the length, then all 16-bit units to the end of the data are returned.

错误／异常

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

参见

  • DOMCharacterData::appendData
  • DOMCharacterData::deleteData
  • DOMCharacterData::insertData
  • DOMCharacterData::replaceData

DOMCharacterData::replaceData
DOMComment
DOMCharacterData


The DOMComment class

简介

Represents comment nodes, characters delimited by <!-- and -->.

Class synopsis

DOMComment
DOMComment extends DOMCharacterData {
/* Methods */
__construct ([ string $value ] )
/* Inherited methods */
void DOMCharacterData::appendData ( string $data )
void DOMCharacterData::deleteData ( int $offset , int $count )
void DOMCharacterData::insertData ( int $offset , string $data )
void DOMCharacterData::replaceData ( int $offset , int $count , string $data )
string DOMCharacterData::substringData ( int $offset , int $count )
}

参见

  • » W3C specification of Comment

Table of Contents

  • DOMComment::__construct — Creates a new DOMComment object
DOMCharacterData::substringData
DOMComment::__construct
DOM


Creates a new DOMComment object

DOMComment
DOMDocument
DOMComment
PHP 手册

DOMComment::__construct

(PHP 5)

DOMComment::__construct — Creates a new DOMComment object

说明

DOMComment
__construct ([ string $value ] )

Creates a new DOMComment object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument::createComment.

参数

value

The value of the comment.

范例

Example #1 Creating a new DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

参见

  • DOMDocument::createComment

DOMComment
DOMDocument
DOMComment


The DOMDocument class

简介

Represents an entire HTML or XML document; serves as the root of the document tree.

Class synopsis

DOMDocument
DOMDocument extends DOMNode {
/* Properties */
readonly public string $actualEncoding ;
readonly public DOMConfiguration $config ;
readonly public DOMDocumentType $doctype ;
readonly public DOMElement $documentElement ;
public string $documentURI ;
public string $encoding ;
public bool $formatOutput ;
readonly public DOMImplementation $implementation ;
public bool $preserveWhiteSpace =true ;
public bool $recover ;
public bool $resolveExternals ;
public bool $standalone ;
public bool $strictErrorChecking =true ;
public bool $substituteEntities ;
public bool $validateOnParse =false ;
public string $version ;
readonly public string $xmlEncoding ;
public bool $xmlStandalone ;
public string $xmlVersion ;
/* Methods */
__construct ([ string $version [, string $encoding ]] )
DOMAttr createAttribute ( string $name )
DOMAttr createAttributeNS ( string $namespaceURI , string $qualifiedName )
DOMCDATASection createCDATASection ( string $data )
DOMComment createComment ( string $data )
DOMDocumentFragment createDocumentFragment ( void )
DOMElement createElement ( string $name [, string $value ] )
DOMElement createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )
DOMEntityReference createEntityReference ( string $name )
DOMProcessingInstruction createProcessingInstruction ( string $target [, string $data ] )
DOMText createTextNode ( string $content )
DOMElement getElementById ( string $elementId )
DOMNodeList getElementsByTagName ( string $name )
DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
DOMNode importNode ( DOMNode $importedNode [, bool $deep ] )
mixed load ( string $filename [, int $options=0 ] )
bool loadHTML ( string $source )
bool loadHTMLFile ( string $filename )
mixed loadXML ( string $source [, int $options=0 ] )
void normalizeDocument ( void )
bool registerNodeClass ( string $baseclass , string $extendedclass )
bool relaxNGValidate ( string $filename )
bool relaxNGValidateSource ( string $source )
int save ( string $filename [, int $options ] )
string saveHTML ( void )
int saveHTMLFile ( string $filename )
string saveXML ([ DOMNode $node [, int $options ]] )
bool schemaValidate ( string $filename )
bool schemaValidateSource ( string $source )
bool validate ( void )
int xinclude ([ int $options ] )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

actualEncoding

Deprecated. Actual encoding of the document, is a readonly equivalent to encoding.

config

Deprecated. Configuration used when DOMDocument::normalizeDocument() is invoked.

doctype

The Document Type Declaration associated with this document.

documentElement

This is a convenience attribute that allows direct access to the child node that is the document element of the document.

documentURI

The location of the document or NULL if undefined.

encoding

Encoding of the document, as specified by the XML declaration. This attribute is not present in the final DOM Level 3 specification, but is the only way of manipulating XML document encoding in this implementation.

formatOutput

Nicely formats output with indentation and extra space.

implementation

The DOMImplementation object that handles this document.

preserveWhiteSpace

Do not remove redundant white space. Default to TRUE.

recover

Proprietary. Enables recovery mode, i.e. trying to parse non-well formed documents. This attribute is not part of the DOM specification and is specific to libxml.

resolveExternals

Set it to TRUE to load external entities from a doctype declaration. This is useful for including character entities in your XML document.

standalone

Deprecated. Whether or not the document is standalone, as specified by the XML declaration, corresponds to xmlStandalone.

strictErrorChecking

Throws DOMException on errors. Default to TRUE.

substituteEntities

Proprietary. Whether or not to substitute entities. This attribute is not part of the DOM specification and is specific to libxml.

validateOnParse

Loads and validates against the DTD. Default to FALSE.

version

Deprecated. Version of XML, corresponds to xmlVersion

xmlEncoding

An attribute specifying, as part of the XML declaration, the encoding of this document. This is NULL when unspecified or when it is not known, such as when the Document was created in memory.

xmlStandalone

An attribute specifying, as part of the XML declaration, whether this document is standalone. This is FALSE when unspecified.

xmlVersion

An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is "1.0".

参见

  • » W3C specification for Document

Table of Contents

  • DOMDocument::__construct — Creates a new DOMDocument object
  • DOMDocument::createAttribute — Create new attribute
  • DOMDocument::createAttributeNS — Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection — Create new cdata node
  • DOMDocument::createComment — Create new comment node
  • DOMDocument::createDocumentFragment — Create new document fragment
  • DOMDocument::createElement — Create new element node
  • DOMDocument::createElementNS — Create new element node with an associated namespace
  • DOMDocument::createEntityReference — Create new entity reference node
  • DOMDocument::createProcessingInstruction — Creates new PI node
  • DOMDocument::createTextNode — Create new text node
  • DOMDocument::getElementById — Searches for an element with a certain id
  • DOMDocument::getElementsByTagName — Searches for all elements with given tag name
  • DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace
  • DOMDocument::importNode — Import node into current document
  • DOMDocument::load — Load XML from a file
  • DOMDocument::loadHTML — Load HTML from a string
  • DOMDocument::loadHTMLFile — Load HTML from a file
  • DOMDocument::loadXML — Load XML from a string
  • DOMDocument::normalizeDocument — Normalizes the document
  • DOMDocument::registerNodeClass — Register extended class used to create base node type
  • DOMDocument::relaxNGValidate — Performs relaxNG validation on the document
  • DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document
  • DOMDocument::save — Dumps the internal XML tree back into a file
  • DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting
  • DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting
  • DOMDocument::saveXML — Dumps the internal XML tree back into a string
  • DOMDocument::schemaValidate — Validates a document based on a schema
  • DOMDocument::schemaValidateSource — Validates a document based on a schema
  • DOMDocument::validate — Validates the document based on its DTD
  • DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object
DOMComment::__construct
DOMDocument::__construct
DOM


Creates a new DOMDocument object

DOMDocument
DOMDocument::createAttribute
DOMDocument
PHP 手册

DOMDocument::__construct

(PHP 5)

DOMDocument::__construct — Creates a new DOMDocument object

说明

DOMDocument::__construct ([ string $version [, string $encoding ]] )

Creates a new DOMDocument object.

参数

version

The version number of the document as part of the XML declaration.

encoding

The encoding of the document as part of the XML declaration.

范例

Example #1 Creating a new DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

参见

  • DOMImplementation::createDocument

DOMDocument
DOMDocument::createAttribute
DOMDocument


Create new attribute

DOMDocument::__construct
DOMDocument::createAttributeNS
DOMDocument
PHP 手册

DOMDocument::createAttribute

(PHP 5)

DOMDocument::createAttribute — Create new attribute

说明

DOMAttr DOMDocument::createAttribute ( string $name )

This function creates a new instance of class DOMAttr. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

name

The name of the attribute.

返回值

The new DOMAttr or FALSE if an error occured.

错误／异常

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::__construct
DOMDocument::createAttributeNS
DOMDocument


Create new attribute node with an associated namespace

DOMDocument::createAttribute
DOMDocument::createCDATASection
DOMDocument
PHP 手册

DOMDocument::createAttributeNS

(PHP 5)

DOMDocument::createAttributeNS — Create new attribute node with an associated namespace

说明

DOMAttr DOMDocument::createAttributeNS ( string $namespaceURI , string $qualifiedName )

This function creates a new instance of class DOMAttr. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

namespaceURI

The URI of the namespace.

qualifiedName

The tag name and prefix of the attribute, as prefix:tagname.

返回值

The new DOMAttr or FALSE if an error occured.

错误／异常

DOM_INVALID_CHARACTER_ERR

Raised if qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a malformed qualified name, or if qualifiedName has a prefix and namespaceURI is NULL.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createAttribute
DOMDocument::createCDATASection
DOMDocument


Create new cdata node

DOMDocument::createAttributeNS
DOMDocument::createComment
DOMDocument
PHP 手册

DOMDocument::createCDATASection

(PHP 5)

DOMDocument::createCDATASection — Create new cdata node

说明

DOMCDATASection DOMDocument::createCDATASection ( string $data )

This function creates a new instance of class DOMCDATASection. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

data

The content of the cdata.

返回值

The new DOMCDATASection or FALSE if an error occured.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createAttributeNS
DOMDocument::createComment
DOMDocument


Create new comment node

DOMDocument::createCDATASection
DOMDocument::createDocumentFragment
DOMDocument
PHP 手册

DOMDocument::createComment

(PHP 5)

DOMDocument::createComment — Create new comment node

说明

DOMComment DOMDocument::createComment ( string $data )

This function creates a new instance of class DOMComment. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

data

The content of the comment.

返回值

The new DOMComment or FALSE if an error occured.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createCDATASection
DOMDocument::createDocumentFragment
DOMDocument


Create new document fragment

DOMDocument::createComment
DOMDocument::createElement
DOMDocument
PHP 手册

DOMDocument::createDocumentFragment

(PHP 5)

DOMDocument::createDocumentFragment — Create new document fragment

说明

DOMDocumentFragment DOMDocument::createDocumentFragment ( void )

This function creates a new instance of class DOMDocumentFragment. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

返回值

The new DOMDocumentFragment or FALSE if an error occured.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createComment
DOMDocument::createElement
DOMDocument


Create new element node

DOMDocument::createDocumentFragment
DOMDocument::createElementNS
DOMDocument
PHP 手册

DOMDocument::createElement

(PHP 5)

DOMDocument::createElement — Create new element node

说明

DOMElement DOMDocument::createElement ( string $name [, string $value ] )

This function creates a new instance of class DOMElement. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

name

The tag name of the element.

value

The value of the element. By default, an empty element will be created. You can also set the value later with DOMElement->nodeValue.

返回值

Returns a new instance of class DOMElement or FALSE if an error occured.

错误／异常

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

范例

Example #1 Creating a new element and inserting it as root

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

$element = $dom->createElement('test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

上例将输出：

<?xml version="1.0" encoding="iso-8859-1"?>
<test>This is the root element!</test>

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createDocumentFragment
DOMDocument::createElementNS
DOMDocument


Create new element node with an associated namespace

DOMDocument::createElement
DOMDocument::createEntityReference
DOMDocument
PHP 手册

DOMDocument::createElementNS

(PHP 5)

DOMDocument::createElementNS — Create new element node with an associated namespace

说明

DOMElement DOMDocument::createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )

This function creates a new element node with an associated namespace. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

namespaceURI

The URI of the namespace.

qualifiedName

The qualified name of the element, as prefix:tagname.

value

The value of the element. By default, an empty element will be created. You can also set the value later with DOMElement->nodeValue.

返回值

The new DOMElement or FALSE if an error occured.

错误／异常

DOM_INVALID_CHARACTER_ERR

Raised if qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a maformed qualified name.

范例

Example #1 Creating a new element and inserting it as root

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

上例将输出：

<?xml version="1.0" encoding="iso-8859-1"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">This is the root element!</xfoo:test>

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createElement
DOMDocument::createEntityReference
DOMDocument


Create new entity reference node

DOMDocument::createElementNS
DOMDocument::createProcessingInstruction
DOMDocument
PHP 手册

DOMDocument::createEntityReference

(PHP 5)

DOMDocument::createEntityReference — Create new entity reference node

说明

DOMEntityReference DOMDocument::createEntityReference ( string $name )

This function creates a new instance of class DOMEntityReference. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

name

The content of the entity reference, e.g. the entity reference minus the leading & and the trailing ; characters.

返回值

The new DOMEntityReference or FALSE if an error occured.

错误／异常

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode

DOMDocument::createElementNS
DOMDocument::createProcessingInstruction
DOMDocument


Creates new PI node

DOMDocument::createEntityReference
DOMDocument::createTextNode
DOMDocument
PHP 手册

DOMDocument::createProcessingInstruction

(PHP 5)

DOMDocument::createProcessingInstruction — Creates new PI node

说明

DOMProcessingInstruction DOMDocument::createProcessingInstruction ( string $target [, string $data ] )

This function creates a new instance of class DOMProcessingInstruction. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

target

The target of the processing instruction.

data

The content of the processing instruction.

返回值

The new DOMProcessingInstruction or FALSE if an error occured.

错误／异常

DOM_INVALID_CHARACTER_ERR

Raised if target contains an invalid character.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createTextNode

DOMDocument::createEntityReference
DOMDocument::createTextNode
DOMDocument


Create new text node

DOMDocument::createProcessingInstruction
DOMDocument::getElementById
DOMDocument
PHP 手册

DOMDocument::createTextNode

(PHP 5)

DOMDocument::createTextNode — Create new text node

说明

DOMText DOMDocument::createTextNode ( string $content )

This function creates a new instance of class DOMText. 本节点不会出现在文档中，除非是用例如 DOMNode->appendChild() 函数来将其插入。

参数

content

The content of the text.

返回值

The new DOMText or FALSE if an error occured.

参见

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElement
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction

DOMDocument::createProcessingInstruction
DOMDocument::getElementById
DOMDocument


Searches for an element with a certain id

DOMDocument::createTextNode
DOMDocument::getElementsByTagName
DOMDocument
PHP 手册

DOMDocument::getElementById

(PHP 5)

DOMDocument::getElementById — Searches for an element with a certain id

说明

DOMElement DOMDocument::getElementById ( string $elementId )

This function is similar to DOMDocument::getElementsByTagName but searches for an element with a given id.

For this function to work, you will need either to set some ID attributes with DOMElement::setIdAttribute or a DTD which defines an attribute to be of type ID. In the later case, you will need to validate your document with DOMDocument::validate or DOMDocument->validateOnParse before using this function.

参数

elementId

The unique id value for an element.

返回值

Returns the DOMElement or NULL if the element is not found.

范例

Example #1 DOMDocument->getElementById() Example

<?php

$doc = new DomDocument;

// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "The element whose id is books is: " . $doc->getElementById('books')->tagName . "\n";

?>

上例将输出：

The element whose id is books is: chapter

参见

  • DOMDocument::getElementsByTagName

DOMDocument::createTextNode
DOMDocument::getElementsByTagName
DOMDocument


Searches for all elements with given tag name

DOMDocument::getElementById
DOMDocument::getElementsByTagNameNS
DOMDocument
PHP 手册

DOMDocument::getElementsByTagName

(PHP 5)

DOMDocument::getElementsByTagName — Searches for all elements with given tag name

说明

DOMNodeList DOMDocument::getElementsByTagName ( string $name )

This function returns a new instance of class DOMNodeList containing the elements with a given tag name.

参数

name

The name of the tag to match on. The special value * matches all tags.

返回值

A new DOMNodeList object containing all the matched elements.

参见

  • DOMDocument::getElementsByTagNameNS

DOMDocument::getElementById
DOMDocument::getElementsByTagNameNS
DOMDocument


Searches for all elements with given tag name in specified namespace

DOMDocument::getElementsByTagName
DOMDocument::importNode
DOMDocument
PHP 手册

DOMDocument::getElementsByTagNameNS

(PHP 5)

DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace

说明

DOMNodeList DOMDocument::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Returns a DOMNodeList of all elements with a given local name and a namespace URI.

参数

namespaceURI

The namespace URI of the elements to match on. The special value * matches all namespaces.

localName

The local name of the elements to match on. The special value * matches all local names.

返回值

A new DOMNodeList object containing all the matched elements.

范例

Example #1 Get all the XInclude elements

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// load the XML string defined above
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>

上例将输出：

local name: include, prefix: xi
local name: fallback, prefix: xi

参见

  • DOMDocument::getElementsByTagName

DOMDocument::getElementsByTagName
DOMDocument::importNode
DOMDocument


Import node into current document

DOMDocument::getElementsByTagNameNS
DOMDocument::load
DOMDocument
PHP 手册

DOMDocument::importNode

(PHP 5)

DOMDocument::importNode — Import node into current document

说明

DOMNode DOMDocument::importNode ( DOMNode $importedNode [, bool $deep ] )

This function returns a copy of the node to import and associates it with the current document.

参数

importedNode

The node to import.

deep

If set to TRUE, this method will recursively import the subtree under the importedNode .

Note: To copy the nodes attributes deep needs to be set to TRUE

返回值

The copied node or FALSE, if it cannot be copied.

错误／异常

DOMException is thrown if node cannot be imported.

范例

Example #1 DOMDocument::importNode() example

Copying nodes between documents.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");

// The node we want to import to a new document
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Create a new document
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Add some markup
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");

echo "The 'new document' before copying nodes into it:\n";
echo $newdoc->saveXML();

// Import the node, and all its children, to the document
$node = $newdoc->importNode($node, true);
// And then append it to the "<root>" node
$newdoc->documentElement->appendChild($node);

echo "\nThe 'new document' after copying the nodes into it:\n";
echo $newdoc->saveXML();
?>

上例将输出：

The 'new document' before copying nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
</root>

The 'new document' after copying the nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
  <element>
    <child>text in child</child>
  </element>
</root>

DOMDocument::getElementsByTagNameNS
DOMDocument::load
DOMDocument


Load XML from a file

DOMDocument::importNode
DOMDocument::loadHTML
DOMDocument
PHP 手册

DOMDocument::load

(PHP 5)

DOMDocument::load — Load XML from a file

说明

mixed DOMDocument::load ( string $filename [, int $options=0 ] )

Loads an XML document from a file.

Warning

Unix style paths with forward slashes can cause significant performance degradation on Windows systems; be sure to call realpath() in such a case.

参数

filename

The path to the XML document.

options

Bitwise OR of the libxml option constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If called statically, returns a DOMDocument and issues E_STRICT warning.

错误／异常

If an empty string is passed as the filename or an empty file is named, a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

范例

Example #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

参见

  • DOMDocument::loadXML
  • DOMDocument::save
  • DOMDocument::saveXML

DOMDocument::importNode
DOMDocument::loadHTML
DOMDocument


Load HTML from a string

DOMDocument::load
DOMDocument::loadHTMLFile
DOMDocument
PHP 手册

DOMDocument::loadHTML

(PHP 5)

DOMDocument::loadHTML — Load HTML from a string

说明

bool DOMDocument::loadHTML ( string $source )

The function parses the HTML contained in the string source . Unlike loading XML, HTML does not have to be well-formed to load. This function may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

参数

source

The HTML string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If called statically, returns a DOMDocument and issues E_STRICT warning.

错误／异常

If an empty string is passed as the source , a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

范例

Example #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

参见

  • DOMDocument::loadHTMLFile
  • DOMDocument::saveHTML
  • DOMDocument::saveHTMLFile

DOMDocument::load
DOMDocument::loadHTMLFile
DOMDocument


Load HTML from a file

DOMDocument::loadHTML
DOMDocument::loadXML
DOMDocument
PHP 手册

DOMDocument::loadHTMLFile

(PHP 5)

DOMDocument::loadHTMLFile — Load HTML from a file

说明

bool DOMDocument::loadHTMLFile ( string $filename )

The function parses the HTML document in the file named filename . Unlike loading XML, HTML does not have to be well-formed to load.

Though not recommended, this function may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading. However, doing so will result an in E_STRICT error being generated.

参数

filename

The path to the HTML file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If called statically, returns a DOMDocument and issues E_STRICT warning.

错误／异常

If an empty string is passed as the filename or an empty file is named, a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

范例

Example #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

参见

  • DOMDocument::loadHTML
  • DOMDocument::saveHTML
  • DOMDocument::saveHTMLFile

DOMDocument::loadHTML
DOMDocument::loadXML
DOMDocument


Load XML from a string

DOMDocument::loadHTMLFile
DOMDocument::normalizeDocument
DOMDocument
PHP 手册

DOMDocument::loadXML

(PHP 5)

DOMDocument::loadXML — Load XML from a string

说明

mixed DOMDocument::loadXML ( string $source [, int $options=0 ] )

Loads an XML document from a string.

This method may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

参数

source

The string containing the XML.

options

Bitwise OR of the libxml option constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If called statically, returns a DOMDocument and issues E_STRICT warning.

错误／异常

If an empty string is passed as the source , a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

范例

Example #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Example #2 Static invocation of loadXML

<?php
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

参见

  • DOMDocument::load
  • DOMDocument::save
  • DOMDocument::saveXML

DOMDocument::loadHTMLFile
DOMDocument::normalizeDocument
DOMDocument


Normalizes the document

DOMDocument::loadXML
DOMDocument::registerNodeClass
DOMDocument
PHP 手册

DOMDocument::normalizeDocument

(PHP 5)

DOMDocument::normalizeDocument — Normalizes the document

说明

void DOMDocument::normalizeDocument ( void )

This method acts as if you saved and then loaded the document, putting the document in a "normal" form.

返回值

无返回值。

参见

  • » The DOM Specification
  • DOMNode::normalize

DOMDocument::loadXML
DOMDocument::registerNodeClass
DOMDocument


Register extended class used to create base node type

DOMDocument::normalizeDocument
DOMDocument::relaxNGValidate
DOMDocument
PHP 手册

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0)

DOMDocument::registerNodeClass — Register extended class used to create base node type

说明

bool DOMDocument::registerNodeClass ( string $baseclass , string $extendedclass )

This method allows you to register your own extended DOM class to be used afterward by the PHP DOM extension.

This method is not part of the DOM standard.

参数

baseclass

The DOM class that you want to extend. You can find a list of these classes in the chapter introduction.

extendedclass

Your extended class name. If NULL is provided, any previously registered class extending baseclass will be removed.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
PHP 5.2.2 | Prior to 5.2.2, a previously registered extendedclass had to be unregistered before being able to register a new class extending the same baseclass .

范例

Example #1 Adding a new method to DOMElement to ease our code

<?php

class myElement extends DOMElement {
   function appendElement($name) {
      return $this->appendChild(new myElement($name));
   }
}

class myDocument extends DOMDocument {
   function setRoot($name) {
      return $this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// From now on, adding an element to another costs only one method call !
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

上例将输出：

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Example #2 Retrieving elements as custom class

<?php
class myElement extends DOMElement {
    public function __toString() {
        return $this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// And take advantage of the __toString method..
echo $element;
?>

上例将输出：

string(9) "myElement"
text in child

Example #3 Retrieving owner document

When instantiating a custom DOMDocument the ownerDocument property will refer to the instantiated class, meaning there is no need (and in fact not possible) to use DOMDocument::registerNodeClass() with DOMDocument

<?php
class myDOMDocument extends DOMDocument {
}

class myOtherDOMDocument extends DOMDocument {
}

// Create myDOMDocument with some XML
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// The current owner of the node is myDOMDocument
var_dump(get_class($child->ownerDocument));

// Import a node from myDOMDocument
$newdoc = new myOtherDOMDocument;
$child = $newdoc->importNode($child);

// The new owner of the node has changed to myOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

上例将输出：

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"

DOMDocument::normalizeDocument
DOMDocument::relaxNGValidate
DOMDocument


Performs relaxNG validation on the document

DOMDocument::registerNodeClass
DOMDocument::relaxNGValidateSource
DOMDocument
PHP 手册

DOMDocument::relaxNGValidate

(PHP 5)

DOMDocument::relaxNGValidate — Performs relaxNG validation on the document

说明

bool DOMDocument::relaxNGValidate ( string $filename )

Performs » relaxNG validation on the document based on the given RNG schema.

参数

filename

The RNG file.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMDocument::relaxNGValidateSource
  • DOMDocument::schemaValidate
  • DOMDocument::schemaValidateSource
  • DOMDocument::validate

DOMDocument::registerNodeClass
DOMDocument::relaxNGValidateSource
DOMDocument


Performs relaxNG validation on the document

DOMDocument::relaxNGValidate
DOMDocument::save
DOMDocument
PHP 手册

DOMDocument::relaxNGValidateSource

(PHP 5)

DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document

说明

bool DOMDocument::relaxNGValidateSource ( string $source )

Performs » relaxNG validation on the document based on the given RNG source.

参数

source

A string containing the RNG schema.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMDocument::relaxNGValidate
  • DOMDocument::schemaValidate
  • DOMDocument::schemaValidateSource
  • DOMDocument::validate

DOMDocument::relaxNGValidate
DOMDocument::save
DOMDocument


Dumps the internal XML tree back into a file

DOMDocument::relaxNGValidateSource
DOMDocument::saveHTML
DOMDocument
PHP 手册

DOMDocument::save

(PHP 5)

DOMDocument::save — Dumps the internal XML tree back into a file

说明

int DOMDocument::save ( string $filename [, int $options ] )

Creates an XML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

参数

filename

The path to the saved XML document.

options

Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

返回值

Returns the number of bytes written or FALSE if an error occurred.

更新日志

版本 | 说明
5.1.0 | Added the options parameter

范例

Example #1 Saving a DOM tree into a file

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->save("/tmp/test.xml") . ' bytes'; // Wrote: 72 bytes

?>

参见

  • DOMDocument::saveXML
  • DOMDocument::load
  • DOMDocument::loadXML

DOMDocument::relaxNGValidateSource
DOMDocument::saveHTML
DOMDocument


Dumps the internal document into a string using HTML formatting

DOMDocument::save
DOMDocument::saveHTMLFile
DOMDocument
PHP 手册

DOMDocument::saveHTML

(PHP 5)

DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting

说明

string DOMDocument::saveHTML ( void )

Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

返回值

Returns the HTML, or FALSE if an error occurred.

范例

Example #1 Saving a HTML tree into a string

<?php

$doc = new DOMDocument('1.0');

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

参见

  • DOMDocument::saveHTMLFile
  • DOMDocument::loadHTML
  • DOMDocument::loadHTMLFile

DOMDocument::save
DOMDocument::saveHTMLFile
DOMDocument


Dumps the internal document into a file using HTML formatting

DOMDocument::saveHTML
DOMDocument::saveXML
DOMDocument
PHP 手册

DOMDocument::saveHTMLFile

(PHP 5)

DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting

说明

int DOMDocument::saveHTMLFile ( string $filename )

Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

参数

filename

The path to the saved HTML document.

返回值

Returns the number of bytes written or FALSE if an error occurred.

范例

Example #1 Saving a HTML tree into a file

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->saveHTMLFile("/tmp/test.html") . ' bytes'; // Wrote: 129 bytes

?>

参见

  • DOMDocument::saveHTML
  • DOMDocument::loadHTML
  • DOMDocument::loadHTMLFile

DOMDocument::saveHTML
DOMDocument::saveXML
DOMDocument


Dumps the internal XML tree back into a string

DOMDocument::saveHTMLFile
DOMDocument::schemaValidate
DOMDocument
PHP 手册

DOMDocument::saveXML

(PHP 5)

DOMDocument::saveXML — Dumps the internal XML tree back into a string

说明

string DOMDocument::saveXML ([ DOMNode $node [, int $options ]] )

Creates an XML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

参数

node

Use this parameter to output only a specific node without XML declaration rather than the entire document.

options

Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

返回值

Returns the XML, or FALSE if an error occurred.

错误／异常

DOM_WRONG_DOCUMENT_ERR

Raised if node is from another document.

更新日志

版本 | 说明
5.1.0 | Added the options parameter

范例

Example #1 Saving a DOM tree into a string

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo "Saving all the document:\n";
echo $doc->saveXML() . "\n";

echo "Saving only the title part:\n";
echo $doc->saveXML($title);

?>

上例将输出：

Saving all the document:
<?xml version="1.0"?>
<book>
  <title>This is the title</title>
</book>

Saving only the title part:
<title>This is the title</title>

参见

  • DOMDocument::save
  • DOMDocument::load
  • DOMDocument::loadXML

DOMDocument::saveHTMLFile
DOMDocument::schemaValidate
DOMDocument


Validates a document based on a schema

DOMDocument::saveXML
DOMDocument::schemaValidateSource
DOMDocument
PHP 手册

DOMDocument::schemaValidate

(PHP 5)

DOMDocument::schemaValidate — Validates a document based on a schema

说明

bool DOMDocument::schemaValidate ( string $filename )

Validates a document based on the given schema file.

参数

filename

The path to the schema.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMDocument::schemaValidateSource
  • DOMDocument::relaxNGValidate
  • DOMDocument::relaxNGValidateSource
  • DOMDocument::validate

DOMDocument::saveXML
DOMDocument::schemaValidateSource
DOMDocument


Validates a document based on a schema

DOMDocument::schemaValidate
DOMDocument::validate
DOMDocument
PHP 手册

DOMDocument::schemaValidateSource

(PHP 5)

DOMDocument::schemaValidateSource — Validates a document based on a schema

说明

bool DOMDocument::schemaValidateSource ( string $source )

Validates a document based on a schema defined in the given string.

参数

source

A string containing the schema.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMDocument::schemaValidate
  • DOMDocument::relaxNGValidate
  • DOMDocument::relaxNGValidateSource
  • DOMDocument::validate

DOMDocument::schemaValidate
DOMDocument::validate
DOMDocument


Validates the document based on its DTD

DOMDocument::schemaValidateSource
DOMDocument::xinclude
DOMDocument
PHP 手册

DOMDocument::validate

(PHP 5)

DOMDocument::validate — Validates the document based on its DTD

说明

bool DOMDocument::validate ( void )

Validates the document based on its DTD.

You can also use the validateOnParse property of DOMDocument to make a DTD validation.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If the document have no DTD attached, this method will return FALSE.

范例

Example #1 Example of DTD validation

<?php
$dom = new DOMDocument;
$dom->Load('book.xml');
if ($dom->validate()) {
    echo "This document is valid!\n";
}
?>

You can also validate your XML file while loading it:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->Load('book.xml');
?>

参见

  • DOMDocument::schemaValidate
  • DOMDocument::schemaValidateSource
  • DOMDocument::relaxNGValidate
  • DOMDocument::relaxNGValidateSource

DOMDocument::schemaValidateSource
DOMDocument::xinclude
DOMDocument


Substitutes XIncludes in a DOMDocument Object

DOMDocument::validate
DOMDocumentFragment
DOMDocument
PHP 手册

DOMDocument::xinclude

(PHP 5)

DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object

说明

int DOMDocument::xinclude ([ int $options ] )

This method substitutes » XIncludes in a DOMDocument object.

Note: Due to libxml2 automatically resolving entities, this method will produce unexpected results if the included XML file have an attached DTD.

参数

options

libxml parameters. Available since PHP 5.1.0 and Libxml 2.6.7.

返回值

Returns the number of XIncludes in the document.

范例

Example #1 DOMDocument->xinclude() example

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Books of the other guy..</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml not found</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// let's have a nice output
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// load the XML string defined above
$dom->loadXML($xml);

// substitute xincludes
$dom->xinclude();

echo $dom->saveXML();

?>

上例的输出类似于：

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Books of the other guy..</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>

DOMDocument::validate
DOMDocumentFragment
DOMDocument


The DOMDocumentFragment class

Class synopsis

DOMDocumentFragment
DOMDocumentFragment extends DOMNode {
/* Properties */
/* Methods */
bool appendXML ( string $data )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Table of Contents

  • DOMDocumentFragment::appendXML — Append raw XML data
DOMDocument::xinclude
DOMDocumentFragment::appendXML
DOM


Append raw XML data

DOMDocumentFragment
DOMDocumentType
DOMDocumentFragment
PHP 手册

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0)

DOMDocumentFragment::appendXML — Append raw XML data

说明

bool DOMDocumentFragment::appendXML ( string $data )

Appends raw XML data to a DOMDocumentFragment.

This method is not part of the DOM standard. It was created as a simpler approach for appending an XML DocumentFragment in a DOMDocument.

If you want to stick to the standards, you will have to create a temporary DOMDocument with a dummy root and then loop through the child nodes of the root of your XML data to append them.

参数

data

XML to append.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Appending XML data to your document

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

上例将输出：

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>

DOMDocumentFragment
DOMDocumentType
DOMDocumentFragment


The DOMDocumentType class

简介

Each DOMDocument has a doctype attribute whose value is either NULL or a DOMDocumentType object.

Class synopsis

DOMDocumentType
DOMDocumentType extends DOMNode {
/* Properties */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $name ;
readonly public DOMNamedNodeMap $entities ;
readonly public DOMNamedNodeMap $notations ;
readonly public string $internalSubset ;
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

publicId

The public identifier of the external subset.

systemId

The system identifier of the external subset. This may be an absolute URI or not.

name

The name of DTD; i.e., the name immediately following the DOCTYPE keyword.

entities

A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.

notations

A DOMNamedNodeMap containing the notations declared in the DTD.

internalSubset

The internal subset as a string, or null if there is none. This is does not contain the delimiting square brackets.

DOMDocumentFragment::appendXML
DOMElement
DOM


The DOMElement class

Class synopsis

DOMElement
DOMElement extends DOMNode {
/* Properties */
readonly public bool $schemaTypeInfo ;
readonly public string $tagName ;
/* Methods */
__construct ( string $name [, string $value [, string $namespaceURI ]] )
string getAttribute ( string $name )
DOMAttr getAttributeNode ( string $name )
DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )
string getAttributeNS ( string $namespaceURI , string $localName )
DOMNodeList getElementsByTagName ( string $name )
DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
bool hasAttribute ( string $name )
bool hasAttributeNS ( string $namespaceURI , string $localName )
bool removeAttribute ( string $name )
bool removeAttributeNode ( DOMAttr $oldnode )
bool removeAttributeNS ( string $namespaceURI , string $localName )
DOMAttr setAttribute ( string $name , string $value )
DOMAttr setAttributeNode ( DOMAttr $attr )
DOMAttr setAttributeNodeNS ( DOMAttr $attr )
void setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )
void setIdAttribute ( string $name , bool $isId )
void setIdAttributeNode ( DOMAttr $attr , bool $isId )
void setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

schemaTypeInfo

Not implemented yet, always return NULL

tagName

The element name

Table of Contents

  • DOMElement::__construct — Creates a new DOMElement object
  • DOMElement::getAttribute — Returns value of attribute
  • DOMElement::getAttributeNode — Returns attribute node
  • DOMElement::getAttributeNodeNS — Returns attribute node
  • DOMElement::getAttributeNS — Returns value of attribute
  • DOMElement::getElementsByTagName — Gets elements by tagname
  • DOMElement::getElementsByTagNameNS — Get elements by namespaceURI and localName
  • DOMElement::hasAttribute — Checks to see if attribute exists
  • DOMElement::hasAttributeNS — Checks to see if attribute exists
  • DOMElement::removeAttribute — Removes attribute
  • DOMElement::removeAttributeNode — Removes attribute
  • DOMElement::removeAttributeNS — Removes attribute
  • DOMElement::setAttribute — Adds new attribute
  • DOMElement::setAttributeNode — Adds new attribute node to element
  • DOMElement::setAttributeNodeNS — Adds new attribute node to element
  • DOMElement::setAttributeNS — Adds new attribute
  • DOMElement::setIdAttribute — Declares the attribute specified by name to be of type ID
  • DOMElement::setIdAttributeNode — Declares the attribute specified by node to be of type ID
  • DOMElement::setIdAttributeNS — Declares the attribute specified by local name and namespace URI to be of type ID
DOMDocumentType
DOMElement::__construct
DOM


Creates a new DOMElement object

DOMElement
DOMElement::getAttribute
DOMElement
PHP 手册

DOMElement::__construct

(PHP 5)

DOMElement::__construct — Creates a new DOMElement object

说明

DOMElement
__construct ( string $name [, string $value [, string $namespaceURI ]] )

Creates a new DOMElement object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument::createElement or DOMDocument::createElementNS.

参数

name

The tag name of the element. When also passing in namespaceURI, the element name may take a prefix to be associated with the URI.

value

The value of the element.

namespaceURI

A namespace URI to create the element within a specific namespace.

范例

Example #1 Creating a new DOMElement

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

参见

  • DOMDocument::createElement
  • DOMDocument::createElementNS

DOMElement
DOMElement::getAttribute
DOMElement


Returns value of attribute

DOMElement::__construct
DOMElement::getAttributeNode
DOMElement
PHP 手册

DOMElement::getAttribute

(PHP 5)

DOMElement::getAttribute — Returns value of attribute

说明

string DOMElement::getAttribute ( string $name )

Gets the value of the attribute with name name for the current node.

参数

name

The name of the attribute.

返回值

The value of the attribute, or an empty string if no attribute with the given name is found.

参见

  • DOMElement::hasAttribute
  • DOMElement::setAttribute
  • DOMElement::removeAttribute

DOMElement::__construct
DOMElement::getAttributeNode
DOMElement


Returns attribute node

DOMElement::getAttribute
DOMElement::getAttributeNodeNS
DOMElement
PHP 手册

DOMElement::getAttributeNode

(PHP 5)

DOMElement::getAttributeNode — Returns attribute node

说明

DOMAttr DOMElement::getAttributeNode ( string $name )

Returns the attribute node with name name for the current element.

参数

name

The name of the attribute.

返回值

The attribute node.

参见

  • DOMElement::hasAttribute
  • DOMElement::setAttributeNode
  • DOMElement::removeAttributeNode

DOMElement::getAttribute
DOMElement::getAttributeNodeNS
DOMElement


Returns attribute node

DOMElement::getAttributeNode
DOMElement::getAttributeNS
DOMElement
PHP 手册

DOMElement::getAttributeNodeNS

(PHP 5)

DOMElement::getAttributeNodeNS — Returns attribute node

说明

DOMAttr DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName )

Returns the attribute node in namespace namespaceURI with local name localName for the current node.

参数

namespaceURI

The namespace URI.

localName

The local name.

返回值

The attribute node.

参见

  • DOMElement::hasAttributeNS
  • DOMElement::setAttributeNodeNS
  • DOMElement::removeAttributeNode

DOMElement::getAttributeNode
DOMElement::getAttributeNS
DOMElement


Returns value of attribute

DOMElement::getAttributeNodeNS
DOMElement::getElementsByTagName
DOMElement
PHP 手册

DOMElement::getAttributeNS

(PHP 5)

DOMElement::getAttributeNS — Returns value of attribute

说明

string DOMElement::getAttributeNS ( string $namespaceURI , string $localName )

Gets the value of the attribute in namespace namespaceURI with local name localName for the current node.

参数

namespaceURI

The namespace URI.

localName

The local name.

返回值

The value of the attribute, or an empty string if no attribute with the given localName and namespaceURI is found.

参见

  • DOMElement::hasAttributeNS
  • DOMElement::setAttributeNS
  • DOMElement::removeAttributeNS

DOMElement::getAttributeNodeNS
DOMElement::getElementsByTagName
DOMElement


Gets elements by tagname

DOMElement::getAttributeNS
DOMElement::getElementsByTagNameNS
DOMElement
PHP 手册

DOMElement::getElementsByTagName

(PHP 5)

DOMElement::getElementsByTagName — Gets elements by tagname

说明

DOMNodeList DOMElement::getElementsByTagName ( string $name )

This function returns a new instance of the class DOMNodeList of all descendant elements with a given tag name , in the order in which they are encountered in a preorder traversal of this element tree.

参数

name

The tag name. Use * to return all elements within the element tree.

返回值

This function returns a new instance of the class DOMNodeList of all matched elements.

参见

  • DOMElement::getElementsByTagNameNS

DOMElement::getAttributeNS
DOMElement::getElementsByTagNameNS
DOMElement


Get elements by namespaceURI and localName

DOMElement::getElementsByTagName
DOMElement::hasAttribute
DOMElement
PHP 手册

DOMElement::getElementsByTagNameNS

(PHP 5)

DOMElement::getElementsByTagNameNS — Get elements by namespaceURI and localName

说明

DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )

This function fetch all the descendant elements with a given localName and namespaceURI .

参数

namespaceURI

The namespace URI.

localName

The local name. Use * to return all elements within the element tree.

返回值

This function returns a new instance of the class DOMNodeList of all matched elements in the order in which they are encountered in a preorder traversal of this element tree.

参见

  • DOMElement::getElementsByTagName

DOMElement::getElementsByTagName
DOMElement::hasAttribute
DOMElement


Checks to see if attribute exists

DOMElement::getElementsByTagNameNS
DOMElement::hasAttributeNS
DOMElement
PHP 手册

DOMElement::hasAttribute

(PHP 5)

DOMElement::hasAttribute — Checks to see if attribute exists

说明

bool DOMElement::hasAttribute ( string $name )

Indicates whether attribute named name exists as a member of the element.

参数

name

The attribute name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMElement::hasAttributeNS
  • DOMElement::getAttribute
  • DOMElement::setAttribute
  • DOMElement::removeAttribute

DOMElement::getElementsByTagNameNS
DOMElement::hasAttributeNS
DOMElement


Checks to see if attribute exists

DOMElement::hasAttribute
DOMElement::removeAttribute
DOMElement
PHP 手册

DOMElement::hasAttributeNS

(PHP 5)

DOMElement::hasAttributeNS — Checks to see if attribute exists

说明

bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )

Indicates whether attribute in namespace namespaceURI named localName exists as a member of the element.

参数

namespaceURI

The namespace URI.

localName

The local name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMElement::hasAttribute
  • DOMElement::getAttributeNS
  • DOMElement::setAttributeNS
  • DOMElement::removeAttributeNS

DOMElement::hasAttribute
DOMElement::removeAttribute
DOMElement


Removes attribute

DOMElement::hasAttributeNS
DOMElement::removeAttributeNode
DOMElement
PHP 手册

DOMElement::removeAttribute

(PHP 5)

DOMElement::removeAttribute — Removes attribute

说明

bool DOMElement::removeAttribute ( string $name )

Removes attribute named name from the element.

参数

name

The name of the attribute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

参见

  • DOMElement::hasAttribute
  • DOMElement::getAttribute
  • DOMElement::setAttribute

DOMElement::hasAttributeNS
DOMElement::removeAttributeNode
DOMElement


Removes attribute

DOMElement::removeAttribute
DOMElement::removeAttributeNS
DOMElement
PHP 手册

DOMElement::removeAttributeNode

(PHP 5)

DOMElement::removeAttributeNode — Removes attribute

说明

bool DOMElement::removeAttributeNode ( DOMAttr $oldnode )

Removes attribute oldnode from the element.

参数

oldnode

The attribute node.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND_ERROR

Raised if oldnode is not an attribute of the element.

参见

  • DOMElement::hasAttribute
  • DOMElement::getAttributeNode
  • DOMElement::setAttributeNode

DOMElement::removeAttribute
DOMElement::removeAttributeNS
DOMElement


Removes attribute

DOMElement::removeAttributeNode
DOMElement::setAttribute
DOMElement
PHP 手册

DOMElement::removeAttributeNS

(PHP 5)

DOMElement::removeAttributeNS — Removes attribute

说明

bool DOMElement::removeAttributeNS ( string $namespaceURI , string $localName )

Removes attribute is namespace namespaceURI named localName from the element.

参数

namespaceURI

The namespace URI.

localName

The local name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

参见

  • DOMElement::hasAttributeNS
  • DOMElement::getAttributeNS
  • DOMElement::setAttributeNS

DOMElement::removeAttributeNode
DOMElement::setAttribute
DOMElement


Adds new attribute

DOMElement::removeAttributeNS
DOMElement::setAttributeNode
DOMElement
PHP 手册

DOMElement::setAttribute

(PHP 5)

DOMElement::setAttribute — Adds new attribute

说明

DOMAttr DOMElement::setAttribute ( string $name , string $value )

Sets an attribute with name name to the given value. If the attribute does not exist, it will be created.

参数

name

The name of the attribute.

value

The value of the attribute.

返回值

The new DOMAttr or FALSE if an error occured.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

范例

Example #1 Setting an attribute

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

参见

  • DOMElement::hasAttribute
  • DOMElement::getAttribute
  • DOMElement::removeAttribute

DOMElement::removeAttributeNS
DOMElement::setAttributeNode
DOMElement


Adds new attribute node to element

DOMElement::setAttribute
DOMElement::setAttributeNodeNS
DOMElement
PHP 手册

DOMElement::setAttributeNode

(PHP 5)

DOMElement::setAttributeNode — Adds new attribute node to element

说明

DOMAttr DOMElement::setAttributeNode ( DOMAttr $attr )

Adds new attribute node attr to element.

参数

attr

The attribute node.

返回值

Returns old node if the attribute has been replaced or NULL.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

参见

  • DOMElement::hasAttribute
  • DOMElement::getAttributeNode
  • DOMElement::removeAttributeNode

DOMElement::setAttribute
DOMElement::setAttributeNodeNS
DOMElement


Adds new attribute node to element

DOMElement::setAttributeNode
DOMElement::setAttributeNS
DOMElement
PHP 手册

DOMElement::setAttributeNodeNS

(PHP 5)

DOMElement::setAttributeNodeNS — Adds new attribute node to element

说明

DOMAttr DOMElement::setAttributeNodeNS ( DOMAttr $attr )

Adds new attribute node attr to element.

参数

name

The attribute node.

返回值

Returns the old node if the attribute has been replaced.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

参见

  • DOMElement::hasAttributeNS
  • DOMElement::getAttributeNodeNS
  • DOMElement::removeAttributeNode

DOMElement::setAttributeNode
DOMElement::setAttributeNS
DOMElement


Adds new attribute

DOMElement::setAttributeNodeNS
DOMElement::setIdAttribute
DOMElement
PHP 手册

DOMElement::setAttributeNS

(PHP 5)

DOMElement::setAttributeNS — Adds new attribute

说明

void DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )

Sets an attribute with namespace namespaceURI and name name to the given value. If the attribute does not exist, it will be created.

参数

namespaceURI

The namespace URI.

qualifiedName

The qualified name of the attribute, as prefix:tagname.

value

The value of the attribute.

返回值

无返回值。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a malformed qualified name, or if qualifiedName has a prefix and namespaceURI is NULL.

参见

  • DOMElement::hasAttributeNS
  • DOMElement::getAttributeNS
  • DOMElement::removeAttributeNS

DOMElement::setAttributeNodeNS
DOMElement::setIdAttribute
DOMElement


Declares the attribute specified by name to be of type ID

DOMElement::setAttributeNS
DOMElement::setIdAttributeNode
DOMElement
PHP 手册

DOMElement::setIdAttribute

(PHP 5)

DOMElement::setIdAttribute — Declares the attribute specified by name to be of type ID

说明

void DOMElement::setIdAttribute ( string $name , bool $isId )

Declares the attribute name to be of type ID.

参数

name

The name of the attribute.

isId

Set it to TRUE if you want name to be of type ID, FALSE otherwise.

返回值

无返回值。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND

Raised if name is not an attribute of this element.

参见

  • DOMDocument::getElementById
  • DOMElement::setIdAttributeNode
  • DOMElement::setIdAttributeNS

DOMElement::setAttributeNS
DOMElement::setIdAttributeNode
DOMElement


Declares the attribute specified by node to be of type ID

DOMElement::setIdAttribute
DOMElement::setIdAttributeNS
DOMElement
PHP 手册

DOMElement::setIdAttributeNode

(PHP 5)

DOMElement::setIdAttributeNode — Declares the attribute specified by node to be of type ID

说明

void DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId )

Declares the attribute specified by attr to be of type ID.

参数

attr

The attribute node.

isId

Set it to TRUE if you want name to be of type ID, FALSE otherwise.

返回值

无返回值。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND

Raised if name is not an attribute of this element.

参见

  • DOMDocument::getElementById
  • DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS

DOMElement::setIdAttribute
DOMElement::setIdAttributeNS
DOMElement


Declares the attribute specified by local name and namespace URI to be of type ID

DOMElement::setIdAttributeNode
DOMEntity
DOMElement
PHP 手册

DOMElement::setIdAttributeNS

(PHP 5)

DOMElement::setIdAttributeNS — Declares the attribute specified by local name and namespace URI to be of type ID

说明

void DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )

Declares the attribute specified by localName and namespaceURI to be of type ID.

参数

namespaceURI

The namespace URI of the attribute.

localName

The local name of the attribute, as prefix:tagname.

isId

Set it to TRUE if you want name to be of type ID, FALSE otherwise.

返回值

无返回值。

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND

Raised if name is not an attribute of this element.

参见

  • DOMDocument::getElementById
  • DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNode

DOMElement::setIdAttributeNode
DOMEntity
DOMElement


The DOMEntity class

简介

This interface represents a known entity, either parsed or unparsed, in an XML document.

Class synopsis

DOMEntity
DOMEntity extends DOMNode {
/* Properties */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $notationName ;
public string $actualEncoding ;
readonly public string $encoding ;
readonly public string $version ;
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

publicId

The public identifier associated with the entity if specified, and NULL otherwise.

systemId

The system identifier associated with the entity if specified, and NULL otherwise. This may be an absolute URI or not.

notationName

For unparsed entities, the name of the notation for the entity. For parsed entities, this is NULL.

actualEncoding

An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity. This is NULL if it an entity from the internal subset or if it is not known.

encoding

An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity. This is NULL otherwise.

version

An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity. This is NULL otherwise.

DOMElement::setIdAttributeNS
DOMEntityReference
DOM


The DOMEntityReference class

Class synopsis

DOMEntityReference
DOMEntityReference extends DOMNode {
/* Properties */
/* Methods */
__construct ( string $name )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Table of Contents

  • DOMEntityReference::__construct — Creates a new DOMEntityReference object
DOMEntity
DOMEntityReference::__construct
DOM


Creates a new DOMEntityReference object

DOMEntityReference
DOMException
DOMEntityReference
PHP 手册

DOMEntityReference::__construct

(PHP 5)

DOMEntityReference::__construct — Creates a new DOMEntityReference object

说明

DOMEntityReference
__construct ( string $name )

Creates a new DOMEntityReference object.

参数

name

The name of the entity reference.

范例

Example #1 Creating a new DOMEntityReference

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>&nbsp;</root> */

?>

参见

  • DOMDocument::createEntityReference

DOMEntityReference
DOMException
DOMEntityReference


The DOMException class

简介

DOM operations raise exceptions under particular circumstances, i.e., when an operation is impossible to perform for logical reasons.

See also 异常处理.

Class synopsis

DOMException
DOMException extends Exception {
/* Properties */
readonly public int $code ;
}

属性

code

An integer indicating the type of error generated

DOMEntityReference::__construct
DOMImplementation
DOM


The DOMImplementation class

简介

The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.

Class synopsis

DOMImplementation
DOMImplementation {
/* Properties */
/* Methods */
__construct ( void )
DOMDocument createDocument ([ string $namespaceURI=NULL [, string $qualifiedName=NULL [, DOMDocumentType $doctype=NULL ]]] )
DOMDocumentType createDocumentType ([ string $qualifiedName=NULL [, string $publicId=NULL [, string $systemId=NULL ]]] )
bool hasFeature ( string $feature , string $version )
}

Table of Contents

  • DOMImplementation::__construct — Creates a new DOMImplementation object
  • DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element
  • DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object
  • DOMImplementation::hasFeature — Test if the DOM implementation implements a specific feature
DOMException
DOMImplementation::__construct
DOM


Creates a new DOMImplementation object

DOMImplementation
DOMImplementation::createDocument
DOMImplementation
PHP 手册

DOMImplementation::__construct

(PHP 5)

DOMImplementation::__construct — Creates a new DOMImplementation object

说明

DOMImplementation
__construct ( void )

Creates a new DOMImplementation object.

DOMImplementation
DOMImplementation::createDocument
DOMImplementation


Creates a DOMDocument object of the specified type with its document element

DOMImplementation::__construct
DOMImplementation::createDocumentType
DOMImplementation
PHP 手册

DOMImplementation::createDocument

(PHP 5)

DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element

说明

DOMDocument DOMImplementation::createDocument ([ string $namespaceURI=NULL [, string $qualifiedName=NULL [, DOMDocumentType $doctype=NULL ]]] )

Creates a DOMDocument object of the specified type with its document element.

参数

namespaceURI

The namespace URI of the document element to create.

qualifiedName

The qualified name of the document element to create.

doctype

The type of document to create or NULL.

返回值

A new DOMDocument object. If namespaceURI , qualifiedName , and doctype are null, the returned DOMDocument is empty with no document element

错误／异常

DOM_WRONG_DOCUMENT_ERR

Raised if doctype has already been used with a different document or was created from a different implementation.

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by namespaceURI and qualifiedName .

参见

  • DOMDocument::__construct
  • DOMImplementation::createDocumentType

DOMImplementation::__construct
DOMImplementation::createDocumentType
DOMImplementation


Creates an empty DOMDocumentType object

DOMImplementation::createDocument
DOMImplementation::hasFeature
DOMImplementation
PHP 手册

DOMImplementation::createDocumentType

(PHP 5)

DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object

说明

DOMDocumentType DOMImplementation::createDocumentType ([ string $qualifiedName=NULL [, string $publicId=NULL [, string $systemId=NULL ]]] )

Creates an empty DOMDocumentType object. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur.

参数

qualifiedName

The qualified name of the document type to create.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

返回值

A new DOMDocumentType node with its ownerDocument set to NULL.

范例

Example #1 Creating a document with an attached DTD

<?php

// Creates an instance of the DOMImplementation class
$imp = new DOMImplementation;

// Creates a DOMDocumentType instance
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Creates a DOMDocument instance
$dom = $imp->createDocument("", "", $dtd);

// Set other properties
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Create an empty element
$element = $dom->createElement('graph');

// Append the element
$dom->appendChild($element);

// Retrieve and print the document
echo $dom->saveXML();

?>

上例将输出：

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

错误／异常

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by qualifiedName .

参见

  • DOMImplementation::createDocument

DOMImplementation::createDocument
DOMImplementation::hasFeature
DOMImplementation


Test if the DOM implementation implements a specific feature

DOMImplementation::createDocumentType
DOMNamedNodeMap
DOMImplementation
PHP 手册

DOMImplementation::hasFeature

(PHP 5)

DOMImplementation::hasFeature — Test if the DOM implementation implements a specific feature

说明

bool DOMImplementation::hasFeature ( string $feature , string $version )

Test if the DOM implementation implements a specific feature .

You can find a list of all features in the » Conformance section of the DOM specification.

参数

feature

The feature to test.

version

The version number of the feature to test. In level 2, this can be either 2.0 or 1.0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Testing your DOM Implementation

<?php

$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach ($features as $key => $name) {
  if (DOMImplementation::hasFeature($key, '2.0')) {
    echo "Has feature $name\n";
  } else {
    echo "Missing feature $name\n";
  }
}

?>

参见

  • DOMNode::isSupported

DOMImplementation::createDocumentType
DOMNamedNodeMap
DOMImplementation


The DOMNamedNodeMap class

Class synopsis

DOMNamedNodeMap
DOMNamedNodeMap {
/* Properties */
/* Methods */
DOMNode getNamedItem ( string $name )
DOMNode getNamedItemNS ( string $namespaceURI , string $localName )
DOMNode item ( int $index )
}

Table of Contents

  • DOMNamedNodeMap::getNamedItem — Retrieves a node specified by name
  • DOMNamedNodeMap::getNamedItemNS — Retrieves a node specified by local name and namespace URI
  • DOMNamedNodeMap::item — Retrieves a node specified by index
DOMImplementation::hasFeature
DOMNamedNodeMap::getNamedItem
DOM


Retrieves a node specified by name

DOMNamedNodeMap
DOMNamedNodeMap::getNamedItemNS
DOMNamedNodeMap
PHP 手册

DOMNamedNodeMap::getNamedItem

(PHP 5)

DOMNamedNodeMap::getNamedItem — Retrieves a node specified by name

说明

DOMNode DOMNamedNodeMap::getNamedItem ( string $name )

Retrieves a node specified by its nodeName.

参数

name

The nodeName of the node to retrieve.

返回值

A node (of any type) with the specified nodeName, or NULL if no node is found.

参见

  • DOMNamedNodeMap::getNamedItemNS

DOMNamedNodeMap
DOMNamedNodeMap::getNamedItemNS
DOMNamedNodeMap


Retrieves a node specified by local name and namespace URI

DOMNamedNodeMap::getNamedItem
DOMNamedNodeMap::item
DOMNamedNodeMap
PHP 手册

DOMNamedNodeMap::getNamedItemNS

(PHP 5)

DOMNamedNodeMap::getNamedItemNS — Retrieves a node specified by local name and namespace URI

说明

DOMNode DOMNamedNodeMap::getNamedItemNS ( string $namespaceURI , string $localName )

Retrieves a node specified by localName and namespaceURI .

参数

namespaceURI

The namespace URI of the node to retrieve.

localName

The local name of the node to retrieve.

返回值

A node (of any type) with the specified local name and namespace URI, or NULL if no node is found.

参见

  • DOMNamedNodeMap::getNamedItem

DOMNamedNodeMap::getNamedItem
DOMNamedNodeMap::item
DOMNamedNodeMap


Retrieves a node specified by index

DOMNamedNodeMap::getNamedItemNS
DOMNode
DOMNamedNodeMap
PHP 手册

DOMNamedNodeMap::item

(PHP 5)

DOMNamedNodeMap::item — Retrieves a node specified by index

说明

DOMNode DOMNamedNodeMap::item ( int $index )

Retrieves a node specified by index within the DOMNamedNodeMap object.

参数

index

Index into this map.

返回值

The node at the index th position in the map, or NULL if that is not a valid index (greater than or equal to the number of nodes in this map).

DOMNamedNodeMap::getNamedItemNS
DOMNode
DOMNamedNodeMap


The DOMNode class

Class synopsis

DOMNode
DOMNode {
/* Properties */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Methods */
DOMNode appendChild ( DOMNode $newnode )
DOMNode cloneNode ([ bool $deep ] )
bool hasAttributes ( void )
bool hasChildNodes ( void )
DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool isDefaultNamespace ( string $namespaceURI )
bool isSameNode ( DOMNode $node )
bool isSupported ( string $feature , string $version )
string lookupNamespaceURI ( string $prefix )
string lookupPrefix ( string $namespaceURI )
void normalize ( void )
DOMNode removeChild ( DOMNode $oldnode )
DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

nodeName

Returns the most accurate name for the current node type

nodeValue

The value of this node, depending on its type

nodeType

Gets the type of the node. One of the predefined XML_xxx_NODE constants

parentNode

The parent of this node

childNodes

A DOMNodeList that contains all children of this node. If there are no children, this is an empty DOMNodeList.

firstChild

The first child of this node. If there is no such node, this returns NULL.

lastChild

The last child of this node. If there is no such node, this returns NULL.

previousSibling

The node immediately preceding this node. If there is no such node, this returns NULL.

nextSibling

The node immediately following this node. If there is no such node, this returns NULL.

attributes

A DOMNamedNodeMap containing the attributes of this node (if it is a DOMElement) or NULL otherwise.

ownerDocument

The DOMDocument object associated with this node.

namespaceURI

The namespace URI of this node, or NULL if it is unspecified.

prefix

The namespace prefix of this node, or NULL if it is unspecified.

localName

Returns the local part of the qualified name of this node.

baseURI

The absolute base URI of this node or NULL if the implementation wasn't able to obtain an absolute URI.

textContent

This attribute returns the text content of this node and its descendants.

参见

  • » W3C specification of Node

Table of Contents

  • DOMNode::appendChild — Adds new child at the end of the children
  • DOMNode::cloneNode — Clones a node
  • DOMNode::hasAttributes — Checks if node has attributes
  • DOMNode::hasChildNodes — Checks if node has children
  • DOMNode::insertBefore — Adds a new child before a reference node
  • DOMNode::isDefaultNamespace — Checks if the specified namespaceURI is the default namespace or not
  • DOMNode::isSameNode — Indicates if two nodes are the same node
  • DOMNode::isSupported — Checks if feature is supported for specified version
  • DOMNode::lookupNamespaceURI — Gets the namespace URI of the node based on the prefix
  • DOMNode::lookupPrefix — Gets the namespace prefix of the node based on the namespace URI
  • DOMNode::normalize — Normalizes the node
  • DOMNode::removeChild — Removes child from list of children
  • DOMNode::replaceChild — Replaces a child
DOMNamedNodeMap::item
DOMNode::appendChild
DOM


Adds new child at the end of the children

DOMNode
DOMNode::cloneNode
DOMNode
PHP 手册

DOMNode::appendChild

(PHP 5)

DOMNode::appendChild — Adds new child at the end of the children

说明

DOMNode DOMNode::appendChild ( DOMNode $newnode )

This functions appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. DOMDocument::createElement, DOMDocument::createTextNode etc. or simply by using any other node.

参数

newnode

The appended child.

返回值

The node added.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to append is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if newnode was created from a different document than the one that created this node.

范例

The following example will add a new element node to a fresh document.

Example #1 Adding a child

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

参见

  • DOMNode::removeChild
  • DOMNode::replaceChild

DOMNode
DOMNode::cloneNode
DOMNode


Clones a node

DOMNode::appendChild
DOMNode::hasAttributes
DOMNode
PHP 手册

DOMNode::cloneNode

(PHP 5)

DOMNode::cloneNode — Clones a node

说明

DOMNode DOMNode::cloneNode ([ bool $deep ] )

Creates a copy of the node.

参数

deep

Indicates whether to copy all descendant nodes. This parameter is defaulted to FALSE.

返回值

The cloned node.

DOMNode::appendChild
DOMNode::hasAttributes
DOMNode


Checks if node has attributes

DOMNode::cloneNode
DOMNode::hasChildNodes
DOMNode
PHP 手册

DOMNode::hasAttributes

(PHP 5)

DOMNode::hasAttributes — Checks if node has attributes

说明

bool DOMNode::hasAttributes ( void )

This method checks if the node has attributes. The tested node have to be an XML_ELEMENT_NODE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMNode::hasChildNodes

DOMNode::cloneNode
DOMNode::hasChildNodes
DOMNode


Checks if node has children

DOMNode::hasAttributes
DOMNode::insertBefore
DOMNode
PHP 手册

DOMNode::hasChildNodes

(PHP 5)

DOMNode::hasChildNodes — Checks if node has children

说明

bool DOMNode::hasChildNodes ( void )

This function checks if the node has children.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMNode::hasAttributes

DOMNode::hasAttributes
DOMNode::insertBefore
DOMNode


Adds a new child before a reference node

DOMNode::hasChildNodes
DOMNode::isDefaultNamespace
DOMNode
PHP 手册

DOMNode::insertBefore

(PHP 5)

DOMNode::insertBefore — Adds a new child before a reference node

说明

DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )

This function inserts a new node right before the reference node. If you plan to do further modifications on the appended child you must use the returned node.

参数

newnode

The new node.

refnode

The reference node. If not supplied, newnode is appended to the children.

返回值

The inserted node.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to append is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if newnode was created from a different document than the one that created this node.

DOM_NOT_FOUND

Raised if refnode is not a child of this node.

DOMNode::hasChildNodes
DOMNode::isDefaultNamespace
DOMNode


Checks if the specified namespaceURI is the default namespace or not

DOMNode::insertBefore
DOMNode::isSameNode
DOMNode
PHP 手册

DOMNode::isDefaultNamespace

(PHP 5)

DOMNode::isDefaultNamespace — Checks if the specified namespaceURI is the default namespace or not

说明

bool DOMNode::isDefaultNamespace ( string $namespaceURI )

Tells whether namespaceURI is the default namespace.

参数

namespaceURI

The namespace URI to look for.

返回值

Return TRUE if namespaceURI is the default namespace, FALSE otherwise.

DOMNode::insertBefore
DOMNode::isSameNode
DOMNode


Indicates if two nodes are the same node

DOMNode::isDefaultNamespace
DOMNode::isSupported
DOMNode
PHP 手册

DOMNode::isSameNode

(PHP 5)

DOMNode::isSameNode — Indicates if two nodes are the same node

说明

bool DOMNode::isSameNode ( DOMNode $node )

This function indicates if two nodes are the same node. The comparison is not based on content

参数

node

The compared node.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

DOMNode::isDefaultNamespace
DOMNode::isSupported
DOMNode


Checks if feature is supported for specified version

DOMNode::isSameNode
DOMNode::lookupNamespaceURI
DOMNode
PHP 手册

DOMNode::isSupported

(PHP 5)

DOMNode::isSupported — Checks if feature is supported for specified version

说明

bool DOMNode::isSupported ( string $feature , string $version )

Checks if the asked feature is supported for the specified version .

参数

feature

The feature to test. See the example of DOMImplementation::hasFeature for a list of features.

version

The version number of the feature to test.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • DOMImplementation::hasFeature

DOMNode::isSameNode
DOMNode::lookupNamespaceURI
DOMNode


Gets the namespace URI of the node based on the prefix

DOMNode::isSupported
DOMNode::lookupPrefix
DOMNode
PHP 手册

DOMNode::lookupNamespaceURI

(PHP 5)

DOMNode::lookupNamespaceURI — Gets the namespace URI of the node based on the prefix

说明

string DOMNode::lookupNamespaceURI ( string $prefix )

Gets the namespace URI of the node based on the prefix .

参数

prefix

The prefix of the namespace.

返回值

The namespace URI of the node.

参见

  • DOMNode::lookupPrefix

DOMNode::isSupported
DOMNode::lookupPrefix
DOMNode


Gets the namespace prefix of the node based on the namespace URI

DOMNode::lookupNamespaceURI
DOMNode::normalize
DOMNode
PHP 手册

DOMNode::lookupPrefix

(PHP 5)

DOMNode::lookupPrefix — Gets the namespace prefix of the node based on the namespace URI

说明

string DOMNode::lookupPrefix ( string $namespaceURI )

Gets the namespace prefix of the node based on the namespace URI.

参数

namespaceURI

The namespace URI.

返回值

The prefix of the namespace.

参见

  • DOMNode::lookupNamespaceURI

DOMNode::lookupNamespaceURI
DOMNode::normalize
DOMNode


Normalizes the node

DOMNode::lookupPrefix
DOMNode::removeChild
DOMNode
PHP 手册

DOMNode::normalize

(PHP 5)

DOMNode::normalize — Normalizes the node

说明

void DOMNode::normalize ( void )

Normalizes the node.

返回值

无返回值。

参见

  • » The DOM Specification
  • DOMDocument::normalizeDocument

DOMNode::lookupPrefix
DOMNode::removeChild
DOMNode


Removes child from list of children

DOMNode::normalize
DOMNode::replaceChild
DOMNode
PHP 手册

DOMNode::removeChild

(PHP 5)

DOMNode::removeChild — Removes child from list of children

说明

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

This functions removes a child from a list of children.

参数

oldnode

The removed child.

返回值

If the child could be removed the functions returns the old child.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly.

DOM_NOT_FOUND

Raised if oldnode is not a child of this node.

范例

The following example will delete the chapter element of our XML document.

Example #1 Removing a child

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// we retrieve the chapter and remove it from the book
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

上例将输出：

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

参见

  • DOMNode::appendChild
  • DOMNode::replaceChild

DOMNode::normalize
DOMNode::replaceChild
DOMNode


Replaces a child

DOMNode::removeChild
DOMNodeList
DOMNode
PHP 手册

DOMNode::replaceChild

(PHP 5)

DOMNode::replaceChild — Replaces a child

说明

DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the replacement succeeds the old node is returned.

参数

newnode

The new node. It must be a member of the target document, i.e. created by one of the DOMDocument->createXXX() methods or imported in the document by DOMDocument::importNode.

oldnode

The old node.

返回值

The old node or FALSE if an error occur.

错误／异常

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if newnode was created from a different document than the one that created this node.

DOM_NOT_FOUND

Raised if oldnode is not a child of this node.

参见

  • DOMNode::appendChild
  • DOMNode::removeChild

DOMNode::removeChild
DOMNodeList
DOMNode


The DOMNodeList class

Class synopsis

DOMNodeList
DOMNodeList {
/* Properties */
readonly public int $length ;
/* Methods */
DOMNode DOMNodelist::item ( int $index )
}

属性

length

The number of nodes in the list. The range of valid child node indices is 0 to length - 1 inclusive.

Table of Contents

  • DOMNodelist::item — Retrieves a node specified by index
DOMNode::replaceChild
DOMNodelist::item
DOM


Retrieves a node specified by index

DOMNodeList
DOMNotation
DOMNodeList
PHP 手册

DOMNodelist::item

(PHP 5)

DOMNodelist::item — Retrieves a node specified by index

说明

DOMNode DOMNodelist::item ( int $index )

Retrieves a node specified by index within the DOMNodeList object.

Tip

If you need to know the number of nodes in the collection, use the length property of the DOMNodeList object.

参数

index

Index of the node into the collection.

返回值

The node at the index th position in the DOMNodeList, or NULL if that is not a valid index.

范例

Example #1 Traversing all the entries of the table

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}

?>

Alternatively, you can use foreach, which is a much more convenient way:

<?php

foreach ($items as $item) {
    echo $item->nodeValue . "\n";
}

?>

上例将输出：

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209

DOMNodeList
DOMNotation
DOMNodeList


The DOMNotation class

Class synopsis

DOMNotation
DOMNotation extends DOMNode {
/* Properties */
readonly public string $publicId ;
readonly public string $systemId ;
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

publicId

Prop description

systemId

Prop description

DOMNodelist::item
DOMProcessingInstruction
DOM


The DOMProcessingInstruction class

Class synopsis

DOMProcessingInstruction
DOMProcessingInstruction extends DOMNode {
/* Properties */
readonly public string $target ;
public string $data ;
/* Methods */
__construct ( string $name [, string $value ] )
/* Inherited methods */
DOMNode DOMNode::appendChild ( DOMNode $newnode )
DOMNode DOMNode::cloneNode ([ bool $deep ] )
bool DOMNode::hasAttributes ( void )
bool DOMNode::hasChildNodes ( void )
DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
bool DOMNode::isDefaultNamespace ( string $namespaceURI )
bool DOMNode::isSameNode ( DOMNode $node )
bool DOMNode::isSupported ( string $feature , string $version )
string DOMNode::lookupNamespaceURI ( string $prefix )
string DOMNode::lookupPrefix ( string $namespaceURI )
void DOMNode::normalize ( void )
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

属性

target

Prop description

data

Prop description

Table of Contents

  • DOMProcessingInstruction::__construct — Creates a new DOMProcessingInstruction object
DOMNotation
DOMProcessingInstruction::__construct
DOM


Creates a new DOMProcessingInstruction object

DOMProcessingInstruction
DOMText
DOMProcessingInstruction
PHP 手册

DOMProcessingInstruction::__construct

(PHP 5)

DOMProcessingInstruction::__construct — Creates a new DOMProcessingInstruction object

说明

DOMProcessingInstruction
__construct ( string $name [, string $value ] )

Creates a new DOMProcessingInstruction object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument::createProcessingInstruction.

参数

name

The tag name of the processing instruction.

value

The value of the processing instruction.

范例

Example #1 Creating a new DOMProcessingInstruction

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Hello World"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

上例将输出：

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Hello World"; ?></body></html>

参见

  • DOMDocument::createProcessingInstruction

DOMProcessingInstruction
DOMText
DOMProcessingInstruction


The DOMText class

Class synopsis

DOMText
DOMText extends DOMCharacterData {
/* Properties */
readonly public string $wholeText ;
/* Methods */
__construct ([ string $value ] )
bool isWhitespaceInElementContent ( void )
DOMText splitText ( int $offset )
/* Inherited methods */
void DOMCharacterData::appendData ( string $data )
void DOMCharacterData::deleteData ( int $offset , int $count )
void DOMCharacterData::insertData ( int $offset , string $data )
void DOMCharacterData::replaceData ( int $offset , int $count , string $data )
string DOMCharacterData::substringData ( int $offset , int $count )
}

属性

wholeText

Prop description

Table of Contents

  • DOMText::__construct — Creates a new DOMText object
  • DOMText::isWhitespaceInElementContent — Indicates whether this text node contains whitespace
  • DOMText::splitText — Breaks this node into two nodes at the specified offset
DOMProcessingInstruction::__construct
DOMText::__construct
DOM


Creates a new DOMText object

DOMText
DOMText::isWhitespaceInElementContent
DOMText
PHP 手册

DOMText::__construct

(PHP 5)

DOMText::__construct — Creates a new DOMText object

说明

DOMText
__construct ([ string $value ] )

Creates a new DOMText object.

参数

value

The value of the text node. If not supplied an empty text node is created.

范例

Example #1 Creating a new DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('root value'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>root value</root> */

?>

参见

  • DOMDocument::createTextNode

DOMText
DOMText::isWhitespaceInElementContent
DOMText


Indicates whether this text node contains whitespace

DOMText::__construct
DOMText::splitText
DOMText
PHP 手册

DOMText::isWhitespaceInElementContent

(PHP 5)

DOMText::isWhitespaceInElementContent — Indicates whether this text node contains whitespace

说明

bool DOMText::isWhitespaceInElementContent ( void )

Indicates whether this text node contains whitespace. The text node is determined to contain whitespace in element content during the load of the document.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

DOMText::__construct
DOMText::splitText
DOMText


Breaks this node into two nodes at the specified offset

DOMText::isWhitespaceInElementContent
DOMXPath
DOMText
PHP 手册

DOMText::splitText

(PHP 5)

DOMText::splitText — Breaks this node into two nodes at the specified offset

说明

DOMText DOMText::splitText ( int $offset )

Breaks this node into two nodes at the specified offset , keeping both in the tree as siblings.

After being split, this node will contain all the content up to the offset . If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the offset is equal to the length of this node, the new node has no data.

参数

offset

The offset at which to split, starting from 0.

返回值

The new node of the same type, which contains all the content at and after the offset .

DOMText::isWhitespaceInElementContent
DOMXPath
DOMText


The DOMXPath class

简介

Supports XPath 1.0

Class synopsis

DOMXPath
DOMXPath {
/* Properties */
public DOMDocument $document ;
/* Methods */
__construct ( DOMDocument $doc )
mixed evaluate ( string $expression [, DOMNode $contextnode ] )
DOMNodeList query ( string $expression [, DOMNode $contextnode ] )
bool registerNamespace ( string $prefix , string $namespaceURI )
}

属性

document

Prop description

Table of Contents

  • DOMXPath::__construct — Creates a new DOMXPath object
  • DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible.
  • DOMXPath::query — Evaluates the given XPath expression
  • DOMXPath::registerNamespace — Registers the namespace with the DOMXPath object
DOMText::splitText
DOMXPath::__construct
DOM


Creates a new DOMXPath object

DOMXPath
DOMXPath::evaluate
DOMXPath
PHP 手册

DOMXPath::__construct

(PHP 5)

DOMXPath::__construct — Creates a new DOMXPath object

说明

DOMXPath
__construct ( DOMDocument $doc )

Creates a new DOMXPath object.

参数

doc

The DOMDocument associated with the DOMXPath.

DOMXPath
DOMXPath::evaluate
DOMXPath


Evaluates the given XPath expression and returns a typed result if possible.

DOMXPath::__construct
DOMXPath::query
DOMXPath
PHP 手册

DOMXPath::evaluate

(PHP 5 >= 5.1.0)

DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible.

说明

mixed DOMXPath::evaluate ( string $expression [, DOMNode $contextnode ] )

Executes the given XPath expression and returns a typed result if possible.

参数

expression

The XPath expression to execute.

contextnode

The optional contextnode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

返回值

Returns a typed result if possible or a DOMNodeList containing all nodes matching the given XPath expression .

范例

Example #1 Getting the count of all the english books

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";

?>

上例将输出：

There are 2 english books

参见

  • DOMXPath::query

DOMXPath::__construct
DOMXPath::query
DOMXPath


Evaluates the given XPath expression

DOMXPath::evaluate
DOMXPath::registerNamespace
DOMXPath
PHP 手册

DOMXPath::query

(PHP 5)

DOMXPath::query — Evaluates the given XPath expression

说明

DOMNodeList DOMXPath::query ( string $expression [, DOMNode $contextnode ] )

Executes the given XPath expression .

参数

expression

The XPath expression to execute.

contextnode

The optional contextnode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

返回值

Returns a DOMNodeList containing all nodes matching the given XPath expression . Any expression which do not return nodes will return an empty DOMNodeList.

范例

Example #1 Getting all the english books

<?php

$doc = new DOMDocument;

// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;

$doc->Load('book.xml');

$xpath = new DOMXPath($doc);

// We starts from the root element
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
         " by {$entry->previousSibling->nodeValue}\n";
}
?>

上例将输出：

Found The Grapes of Wrath, by John Steinbeck
Found The Pearl, by John Steinbeck

We can also use the contextnode parameter to shorten our expression:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
         " by {$entry->previousSibling->nodeValue}\n";
}
?>

参见

  • DOMXPath::evaluate

DOMXPath::evaluate
DOMXPath::registerNamespace
DOMXPath


Registers the namespace with the DOMXPath object

DOMXPath::query
DOM 函数
DOMXPath
PHP 手册

DOMXPath::registerNamespace

(PHP 5)

DOMXPath::registerNamespace — Registers the namespace with the DOMXPath object

说明

bool DOMXPath::registerNamespace ( string $prefix , string $namespaceURI )

Registers the namespaceURI and prefix with the DOMXPath object.

参数

prefix

The prefix.

namespaceURI

The URI of the namespace.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

DOMXPath::query
DOM 函数
DOMXPath


DOM 函数

Table of Contents

  • dom_import_simplexml — Gets a DOMElement object from a SimpleXMLElement object
DOMXPath::registerNamespace
dom_import_simplexml
DOM


Gets a DOMElement object from a SimpleXMLElement object

DOM 函数
DOM XML
DOM 函数
PHP 手册

dom_import_simplexml

(PHP 5)

dom_import_simplexml — Gets a DOMElement object from a SimpleXMLElement object

说明

DOMElement dom_import_simplexml ( SimpleXMLElement $node )

This function takes the node node of class SimpleXML and makes it into a DOMElement node. This new object can then be used as a native DOMElement node.

参数

node

The SimpleXMLElement node.

返回值

The DOMElement node added or FALSE if any errors occur.

范例

Example #1 Import SimpleXML into DOM with dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
    echo 'Error while parsing the document';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Error while converting XML';
    exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

参见

  • simplexml_import_dom() - Get a SimpleXMLElement object from a DOM node.

DOM 函数
DOM XML
DOM 函数


DOM XML

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • DOM XML 函数
    • DomAttribute->name — Returns the name of attribute
    • DomAttribute->set_value — Sets the value of an attribute
    • DomAttribute->specified — Checks if attribute is specified
    • DomAttribute->value — Returns value of attribute
    • DomDocument->add_root — Adds a root node [deprecated]
    • DomDocument->create_attribute — Create new attribute
    • DomDocument->create_cdata_section — Create new cdata node
    • DomDocument->create_comment — Create new comment node
    • DomDocument->create_element_ns — Create new element node with an associated namespace
    • DomDocument->create_element — Create new element node
    • DomDocument->create_entity_reference — Create an entity reference
    • DomDocument->create_processing_instruction — Creates new PI node
    • DomDocument->create_text_node — Create new text node
    • DomDocument->doctype — Returns the document type
    • DomDocument->document_element — Returns root element node
    • DomDocument->dump_file — Dumps the internal XML tree back into a file
    • DomDocument->dump_mem — Dumps the internal XML tree back into a string
    • DomDocument->get_element_by_id — Searches for an element with a certain id
    • DomDocument->get_elements_by_tagname — Returns array with nodes with given tagname in document or empty array, if not found
    • DomDocument->html_dump_mem — Dumps the internal XML tree back into a string as HTML
    • DomDocument->xinclude — Substitutes XIncludes in a DomDocument Object
    • DomDocumentType->entities — Returns list of entities
    • DomDocumentType->internal_subset — Returns internal subset
    • DomDocumentType->name — Returns name of document type
    • DomDocumentType->notations — Returns list of notations
    • DomDocumentType->public_id — Returns public id of document type
    • DomDocumentType->system_id — Returns the system id of document type
    • DomElement->get_attribute_node — Returns the node of the given attribute
    • DomElement->get_attribute — Returns the value of the given attribute
    • DomElement->get_elements_by_tagname — Gets elements by tagname
    • DomElement->has_attribute — Checks to see if an attribute exists in the current node
    • DomElement->remove_attribute — Removes attribute
    • DomElement->set_attribute_node — Adds new attribute
    • DomElement->set_attribute — Sets the value of an attribute
    • DomElement->tagname — Returns the name of the current element
    • DomNode->add_namespace — Adds a namespace declaration to a node
    • DomNode->append_child — Adds a new child at the end of the children
    • DomNode->append_sibling — Adds new sibling to a node
    • DomNode->attributes — Returns list of attributes
    • DomNode->child_nodes — Returns children of node
    • DomNode->clone_node — Clones a node
    • DomNode->dump_node — Dumps a single node
    • DomNode->first_child — Returns first child of node
    • DomNode->get_content — Gets content of node
    • DomNode->has_attributes — Checks if node has attributes
    • DomNode->has_child_nodes — Checks if node has children
    • DomNode->insert_before — Inserts new node as child
    • DomNode->is_blank_node — Checks if node is blank
    • DomNode->last_child — Returns last child of node
    • DomNode->next_sibling — Returns the next sibling of node
    • DomNode->node_name — Returns name of node
    • DomNode->node_type — Returns type of node
    • DomNode->node_value — Returns value of a node
    • DomNode->owner_document — Returns the document this node belongs to
    • DomNode->parent_node — Returns the parent of the node
    • DomNode->prefix — Returns name space prefix of node
    • DomNode->previous_sibling — Returns the previous sibling of node
    • DomNode->remove_child — Removes child from list of children
    • DomNode->replace_child — Replaces a child
    • DomNode->replace_node — Replaces node
    • DomNode->set_content — Sets content of node
    • DomNode->set_name — Sets name of node
    • DomNode->set_namespace — Sets namespace of a node
    • DomNode->unlink_node — Deletes node
    • DomProcessingInstruction->data — Returns the data of ProcessingInstruction node
    • DomProcessingInstruction->target — Returns the target of a ProcessingInstruction node
    • DomXsltStylesheet->process — Applies the XSLT-Transformation on a DomDocument Object
    • DomXsltStylesheet->result_dump_file — Dumps the result from a XSLT-Transformation into a file
    • DomXsltStylesheet->result_dump_mem — Dumps the result from a XSLT-Transformation back into a string
    • domxml_new_doc — Creates new empty XML document
    • domxml_open_file — Creates a DOM object from an XML file
    • domxml_open_mem — Creates a DOM object of an XML document
    • domxml_version — Gets the XML library version
    • domxml_xmltree — Creates a tree of PHP objects from an XML document
    • domxml_xslt_stylesheet_doc — Creates a DomXsltStylesheet Object from a DomDocument Object
    • domxml_xslt_stylesheet_file — Creates a DomXsltStylesheet Object from an XSL document in a file
    • domxml_xslt_stylesheet — Creates a DomXsltStylesheet object from an XSL document in a string
    • domxml_xslt_version — Gets the XSLT library version
    • xpath_eval_expression — Evaluates the XPath Location Path in the given string
    • xpath_eval — Evaluates the XPath Location Path in the given string
    • xpath_new_context — Creates new xpath context
    • xpath_register_ns_auto — Register the given namespace in the passed XPath context
    • xpath_register_ns — Register the given namespace in the passed XPath context
    • xptr_eval — Evaluate the XPtr Location Path in the given string
    • xptr_new_context — Create new XPath Context
dom_import_simplexml
简介
XML操作


简介

The DOM XML extension has been overhauled in PHP 4.3.0 to better comply with the DOM standard. The extension still contains many old functions, but they should no longer be used. In particular, functions that are not object-oriented should be avoided.

The extension allows you to operate on an XML document with the DOM API. It also provides a function domxml_xmltree() to turn the complete XML document into a tree of PHP objects. Currently, this tree should be considered read-only - you can modify it, but this would not make any sense since DomDocument_dump_mem() cannot be applied to it. Therefore, if you want to read an XML file and write a modified version, use DomDocument_create_element(), DomDocument_create_text_node(), set_attribute(), etc. and finally the DomDocument_dump_mem() function.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

Note: This extension is no longer marked experimental. It will, however, never be released with PHP 5, and will only be distributed with PHP 4. If you need DOM XML support with PHP 5 you can use the DOM extension. This domxml extension is not compatible with the DOM extension.

DOM XML
安装/配置
DOM XML


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
DOM XML


需求

This extension makes use of the » GNOME XML library. Download and install this library. You will need at least libxml-2.4.14. To use DOM XSLT features you can use the » libxslt library and EXSLT enhancements from » http://www.exslt.org/. Download and install these libraries if you plan to use (enhanced) XSLT features. You will need at least libxslt-1.0.18.

安装/配置
安装
安装/配置


安装

本 » PECL 扩展未绑定于 PHP 中。 安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本，下载，源文件，维护者信息以及更新日志等可以在这里找到： » http://pecl.php.net/package/domxml.

在 PHP 4 中本 PECL 扩展的源程序位于 PHP 源程序中的 ext/ 目录下或者在上面的 PECL 连接中。 This extension is only available if PHP was configured with --with-dom[=DIR]. Add --with-dom-xslt[=DIR] to include DOM XSLT support. DIR is the libxslt install directory. Add --with-dom-exslt[=DIR] to include DOM EXSLT support, where DIR is the libexslt install directory.

Windows users will enable php_domxml.dll inside of php.ini in order to use these functions. 在 PHP 4 中本 DLL 位于 PHP Windows 执行包中的 extensions/ 目录下。 可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。 Also, there is one additional DLL that must be made available to your system's PATH in order for this extension to work. In PHP 4 this is in the dlls/ directory. It's name: For PHP <= 4.2.0, it's libxml2.dll. For PHP >= 4.3.0, it's iconv.dll. And as of PHP 5.0.0, iconv is compiled into your Windows PHP binaries by default so no extra DLL is needed.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XML constants
Constant | Value | Description
XML_ELEMENT_NODE (integer) | 1 | Node is an element
XML_ATTRIBUTE_NODE (integer) | 2 | Node is an attribute
XML_TEXT_NODE (integer) | 3 | Node is a piece of text
XML_CDATA_SECTION_NODE (integer) | 4 |
XML_ENTITY_REF_NODE (integer) | 5 |
XML_ENTITY_NODE (integer) | 6 | Node is an entity like &nbsp;
XML_PI_NODE (integer) | 7 | Node is a processing instruction
XML_COMMENT_NODE (integer) | 8 | Node is a comment
XML_DOCUMENT_NODE (integer) | 9 | Node is a document
XML_DOCUMENT_TYPE_NODE (integer) | 10 |
XML_DOCUMENT_FRAG_NODE (integer) | 11 |
XML_NOTATION_NODE (integer) | 12 |
XML_GLOBAL_NAMESPACE (integer) | 1 |
XML_LOCAL_NAMESPACE (integer) | 2 |
XML_HTML_DOCUMENT_NODE (integer) |  |
XML_DTD_NODE (integer) |  |
XML_ELEMENT_DECL_NODE (integer) |  |
XML_ATTRIBUTE_DECL_NODE (integer) |  |
XML_ENTITY_DECL_NODE (integer) |  |
XML_NAMESPACE_DECL_NODE (integer) |  |
XML_ATTRIBUTE_CDATA (integer) |  |
XML_ATTRIBUTE_ID (integer) |  |
XML_ATTRIBUTE_IDREF (integer) |  |
XML_ATTRIBUTE_IDREFS (integer) |  |
XML_ATTRIBUTE_ENTITY (integer) |  |
XML_ATTRIBUTE_NMTOKEN (integer) |  |
XML_ATTRIBUTE_NMTOKENS (integer) |  |
XML_ATTRIBUTE_ENUMERATION (integer) |  |
XML_ATTRIBUTE_NOTATION (integer) |  |
XPATH_UNDEFINED (integer) |  |
XPATH_NODESET (integer) |  |
XPATH_BOOLEAN (integer) |  |
XPATH_NUMBER (integer) |  |
XPATH_STRING (integer) |  |
XPATH_POINT (integer) |  |
XPATH_RANGE (integer) |  |
XPATH_LOCATIONSET (integer) |  |
XPATH_USERS (integer) |  |
XPATH_NUMBER (integer) |  |
资源类型
DOM XML 函数
DOM XML


DOM XML 函数

Deprecated functions

There are quite a few functions that do not fit into the DOM standard and should no longer be used. These functions are listed in the following table. The function DomNode_append_child() has changed its behaviour. It now adds a child and not a sibling. If this breaks your application, use the non-DOM function DomNode_append_sibling().

Deprecated functions and their replacements
Old function | New function
xmldoc | domxml_open_mem()
xmldocfile | domxml_open_file()
domxml_new_xmldoc | domxml_new_doc()
domxml_dump_mem | DomDocument_dump_mem()
domxml_dump_mem_file | DomDocument_dump_file()
DomDocument_dump_mem_file | DomDocument_dump_file()
DomDocument_add_root | DomDocument_create_element() followed by DomNode_append_child()
DomDocument_dtd | DomDocument_doctype()
DomDocument_root | DomDocument_document_element()
DomDocument_children | DomNode_child_nodes()
DomDocument_imported_node | No replacement.
DomNode_add_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_children | DomNode_child_nodes()
DomNode_parent | DomNode_parent_node()
DomNode_new_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_set_content | Create a new node with e.g. DomDocument_create_text_node() and add it with DomNode_append_child().
DomNode_get_content | Content is just a text node and can be accessed with DomNode_child_nodes().
DomNode_set_content | Content is just a text node and can be added with DomNode_append_child().

Classes

The API of the module follows the DOM Level 2 standard as closely as possible. Consequently, the API is fully object-oriented. It is a good idea to have the DOM standard available when using this module. Though the API is object-oriented, there are many functions which can be called in a non-object-oriented way by passing the object to operate on as the first argument. These functions are mainly to retain compatibility to older versions of the extension, and should not be used when creating new scripts.

This API differs from the official DOM API in two ways. First, all class attributes are implemented as functions with the same name. Secondly, the function names follow the PHP naming convention. This means that a DOM function lastChild() will be written as last_child().

This module defines a number of classes, which are listed - including their method - in the following tables. Classes with an equivalent in the DOM standard are named DOMxxx.

List of classes
Class name | Parent classes
DomAttribute | DomNode
DomCData | DomNode
DomComment | DomCData : DomNode
DomDocument | DomNode
DomDocumentType | DomNode
DomElement | DomNode
DomEntity | DomNode
DomEntityReference | DomNode
DomProcessingInstruction | DomNode
DomText | DomCData : DomNode
Parser | Currently still called DomParser
XPathContext |

DomDocument class (DomDocument : DomNode)
Method name | Function name | Remark
doctype | DomDocument_doctype() |
document_element | DomDocument_document_element() |
create_element | DomDocument_create_element() |
create_text_node | DomDocument_create_text_node() |
create_comment | DomDocument_create_comment() |
create_cdata_section | DomDocument_create_cdata_section() |
create_processing_instruction | DomDocument_create_processing_instruction() |
create_attribute | DomDocument_create_attribute() |
create_entity_reference | DomDocument_create_entity_reference() |
get_elements_by_tagname | DomDocument_get_elements_by_tagname() |
get_element_by_id | DomDocument_get_element_by_id() |
dump_mem | DomDocument_dump_mem() | not DOM standard
dump_file | DomDocument_dump_file() | not DOM standard
html_dump_mem | DomDocument_html_dump_mem() | not DOM standard
xpath_init | xpath_init | not DOM standard
xpath_new_context | xpath_new_context | not DOM standard
xptr_new_context | xptr_new_context | not DOM standard

DomElement class (DomElement : DomNode)
Method name | Function name | Remark
tagname | DomElement_tagname() |
get_attribute | DomElement_get_attribute() |
set_attribute | DomElement_set_attribute() |
remove_attribute | DomElement_remove_attribute() |
get_attribute_node | DomElement_get_attribute_node() |
set_attribute_node | DomElement_set_attribute_node() |
get_elements_by_tagname | DomElement_get_elements_by_tagname() |
has_attribute | DomElement_has_attribute() |

DomNode class
Method name | Remark
DomNode_node_name() |
DomNode_node_value() |
DomNode_node_type() |
DomNode_last_child() |
DomNode_first_child() |
DomNode_child_nodes() |
DomNode_previous_sibling() |
DomNode_next_sibling() |
DomNode_parent_node() |
DomNode_owner_document() |
DomNode_insert_before() |
DomNode_append_child() |
DomNode_append_sibling() | Not in DOM standard. This function emulates the former behaviour of DomNode_append_child().
DomNode_remove_child() |
DomNode_has_child_nodes() |
DomNode_has_attributes() |
DomNode_clone_node() |
DomNode_attributes() |
DomNode_unlink_node() | Not in DOM standard
DomNode_replace_node() | Not in DOM standard
DomNode_set_content() | Not in DOM standard, deprecated
DomNode_get_content() | Not in DOM standard, deprecated
DomNode_dump_node() | Not in DOM standard
DomNode_is_blank_node() | Not in DOM standard

DomAttribute class (DomAttribute : DomNode)
Method name |  | Remark
name | DomAttribute_name() |
value | DomAttribute_value() |
specified | DomAttribute_specified() |

DomProcessingInstruction class (DomProcessingInstruction : DomNode)
Method name | Function name | Remark
target | DomProcessingInstruction_target() |
data | DomProcessingInstruction_data() |

Parser class
Method name | Function name | Remark
add_chunk | Parser_add_chunk() |
end | Parser_end() |

XPathContext class
Method name | Function name | Remark
eval | XPathContext_eval() |
eval_expression | XPathContext_eval_expression() |
register_ns | XPathContext_register_ns() |

DomDocumentType class (DomDocumentType : DomNode)
Method name | Function name | Remark
name | DomDocumentType_name() |
entities | DomDocumentType_entities() |
notations | DomDocumentType_notations() |
public_id | DomDocumentType_public_id() |
system_id | DomDocumentType_system_id() |
internal_subset | DomDocumentType_internal_subset() |

The classes DomDtd is derived from DomNode. DomComment is derived from DomCData.

范例

Many examples in this reference require an XML string. Instead of repeating this string in every example, it will be put into a file which will be included by each example. This include file is shown in the following example section. Alternatively, you could create an XML document and read it with DomDocument_open_file().

Example #1 Include file example.inc with XML string

<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &sp;
  <!-- comment -->
  <informaltable ID='findme' language='&sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</chapter>";
?>

Table of Contents

  • DomAttribute->name — Returns the name of attribute
  • DomAttribute->set_value — Sets the value of an attribute
  • DomAttribute->specified — Checks if attribute is specified
  • DomAttribute->value — Returns value of attribute
  • DomDocument->add_root — Adds a root node [deprecated]
  • DomDocument->create_attribute — Create new attribute
  • DomDocument->create_cdata_section — Create new cdata node
  • DomDocument->create_comment — Create new comment node
  • DomDocument->create_element_ns — Create new element node with an associated namespace
  • DomDocument->create_element — Create new element node
  • DomDocument->create_entity_reference — Create an entity reference
  • DomDocument->create_processing_instruction — Creates new PI node
  • DomDocument->create_text_node — Create new text node
  • DomDocument->doctype — Returns the document type
  • DomDocument->document_element — Returns root element node
  • DomDocument->dump_file — Dumps the internal XML tree back into a file
  • DomDocument->dump_mem — Dumps the internal XML tree back into a string
  • DomDocument->get_element_by_id — Searches for an element with a certain id
  • DomDocument->get_elements_by_tagname — Returns array with nodes with given tagname in document or empty array, if not found
  • DomDocument->html_dump_mem — Dumps the internal XML tree back into a string as HTML
  • DomDocument->xinclude — Substitutes XIncludes in a DomDocument Object
  • DomDocumentType->entities — Returns list of entities
  • DomDocumentType->internal_subset — Returns internal subset
  • DomDocumentType->name — Returns name of document type
  • DomDocumentType->notations — Returns list of notations
  • DomDocumentType->public_id — Returns public id of document type
  • DomDocumentType->system_id — Returns the system id of document type
  • DomElement->get_attribute_node — Returns the node of the given attribute
  • DomElement->get_attribute — Returns the value of the given attribute
  • DomElement->get_elements_by_tagname — Gets elements by tagname
  • DomElement->has_attribute — Checks to see if an attribute exists in the current node
  • DomElement->remove_attribute — Removes attribute
  • DomElement->set_attribute_node — Adds new attribute
  • DomElement->set_attribute — Sets the value of an attribute
  • DomElement->tagname — Returns the name of the current element
  • DomNode->add_namespace — Adds a namespace declaration to a node
  • DomNode->append_child — Adds a new child at the end of the children
  • DomNode->append_sibling — Adds new sibling to a node
  • DomNode->attributes — Returns list of attributes
  • DomNode->child_nodes — Returns children of node
  • DomNode->clone_node — Clones a node
  • DomNode->dump_node — Dumps a single node
  • DomNode->first_child — Returns first child of node
  • DomNode->get_content — Gets content of node
  • DomNode->has_attributes — Checks if node has attributes
  • DomNode->has_child_nodes — Checks if node has children
  • DomNode->insert_before — Inserts new node as child
  • DomNode->is_blank_node — Checks if node is blank
  • DomNode->last_child — Returns last child of node
  • DomNode->next_sibling — Returns the next sibling of node
  • DomNode->node_name — Returns name of node
  • DomNode->node_type — Returns type of node
  • DomNode->node_value — Returns value of a node
  • DomNode->owner_document — Returns the document this node belongs to
  • DomNode->parent_node — Returns the parent of the node
  • DomNode->prefix — Returns name space prefix of node
  • DomNode->previous_sibling — Returns the previous sibling of node
  • DomNode->remove_child — Removes child from list of children
  • DomNode->replace_child — Replaces a child
  • DomNode->replace_node — Replaces node
  • DomNode->set_content — Sets content of node
  • DomNode->set_name — Sets name of node
  • DomNode->set_namespace — Sets namespace of a node
  • DomNode->unlink_node — Deletes node
  • DomProcessingInstruction->data — Returns the data of ProcessingInstruction node
  • DomProcessingInstruction->target — Returns the target of a ProcessingInstruction node
  • DomXsltStylesheet->process — Applies the XSLT-Transformation on a DomDocument Object
  • DomXsltStylesheet->result_dump_file — Dumps the result from a XSLT-Transformation into a file
  • DomXsltStylesheet->result_dump_mem — Dumps the result from a XSLT-Transformation back into a string
  • domxml_new_doc — Creates new empty XML document
  • domxml_open_file — Creates a DOM object from an XML file
  • domxml_open_mem — Creates a DOM object of an XML document
  • domxml_version — Gets the XML library version
  • domxml_xmltree — Creates a tree of PHP objects from an XML document
  • domxml_xslt_stylesheet_doc — Creates a DomXsltStylesheet Object from a DomDocument Object
  • domxml_xslt_stylesheet_file — Creates a DomXsltStylesheet Object from an XSL document in a file
  • domxml_xslt_stylesheet — Creates a DomXsltStylesheet object from an XSL document in a string
  • domxml_xslt_version — Gets the XSLT library version
  • xpath_eval_expression — Evaluates the XPath Location Path in the given string
  • xpath_eval — Evaluates the XPath Location Path in the given string
  • xpath_new_context — Creates new xpath context
  • xpath_register_ns_auto — Register the given namespace in the passed XPath context
  • xpath_register_ns — Register the given namespace in the passed XPath context
  • xptr_eval — Evaluate the XPtr Location Path in the given string
  • xptr_new_context — Create new XPath Context
预定义常量
DomAttribute->name
DOM XML


Returns the name of attribute

DOM XML 函数
DomAttribute->set_value
DOM XML 函数
PHP 手册

DomAttribute->name

(No version information available, might be only in CVS)

DomAttribute->name — Returns the name of attribute

说明

DomAttribute
string name ( void )

Gets the name of the attribute.

返回值

Returns the name of the attribute.

Migrating to PHP 5

Use the name property of DOMAttr.

参见

  • DomAttribute->value for an example

DOM XML 函数
DomAttribute->set_value
DOM XML 函数


Sets the value of an attribute

DomAttribute->name
DomAttribute->specified
DOM XML 函数
PHP 手册

DomAttribute->set_value

(No version information available, might be only in CVS)

DomAttribute->set_value — Sets the value of an attribute

说明

DomAttribute
bool set_value ( string $content )

This function sets the value of an attribute.

参数

content

The new value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Migrating to PHP 5

Set the value property of DOMAttr.

参见

  • DomAttribute->value

DomAttribute->name
DomAttribute->specified
DOM XML 函数


Checks if attribute is specified

DomAttribute->set_value
DomAttribute->value
DOM XML 函数
PHP 手册

DomAttribute->specified

(No version information available, might be only in CVS)

DomAttribute->specified — Checks if attribute is specified

说明

DomAttribute
bool specified ( void )

Checks if the attribute was explicitly given a value in the original document.

Note: This method is not implemented yet.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • The definition of » specified in the DOM Recommendations

DomAttribute->set_value
DomAttribute->value
DOM XML 函数


Returns value of attribute

DomAttribute->specified
DomDocument->add_root
DOM XML 函数
PHP 手册

DomAttribute->value

(No version information available, might be only in CVS)

DomAttribute->value — Returns value of attribute

说明

DomAttribute
string value ( void )

This function returns the value of the attribute.

范例

Example #1 Getting all the attributes of a node

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
     echo "Error while parsing the document\n";
     exit;
}

$root = $dom->document_element();
$attrs = $root->attributes();

echo 'Attributes of ' . $root->node_name() . "\n";
foreach ($attrs as $attribute) {
     echo ' - ' . $attribute->name . ' : ' . $attribute->value . "\n";
}

?>

上例将输出：

Attributes of chapter
 - language : en

返回值

Returns the value of the attribute.

Migrating to PHP 5

Use the value property of DOMAttr.

参见

  • DomAttribute->set_value
  • DomAttribute->name

DomAttribute->specified
DomDocument->add_root
DOM XML 函数


Adds a root node [deprecated]

DomAttribute->value
DomDocument->create_attribute
DOM XML 函数
PHP 手册

DomDocument->add_root

(No version information available, might be only in CVS)

DomDocument->add_root — Adds a root node [deprecated]

说明

domelement DomDocument->add_root ( string $name )

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Example #1 Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("html");
$head = $root->new_child("head", "");
$head->new_child("title", "Hier der Titel");
echo htmlentities($doc->dump_mem());
?>

DomAttribute->value
DomDocument->create_attribute
DOM XML 函数


Create new attribute

DomDocument->add_root
DomDocument->create_cdata_section
DOM XML 函数
PHP 手册

DomDocument->create_attribute

(No version information available, might be only in CVS)

DomDocument->create_attribute — Create new attribute

说明

domattribute DomDocument->create_attribute ( string $name , string $value )

This function returns a new instance of class DomAttribute. The name of the attribute is the value of the first parameter. The value of the attribute is the value of the second parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->add_root
DomDocument->create_cdata_section
DOM XML 函数


Create new cdata node

DomDocument->create_attribute
DomDocument->create_comment
DOM XML 函数
PHP 手册

DomDocument->create_cdata_section

(No version information available, might be only in CVS)

DomDocument->create_cdata_section — Create new cdata node

说明

domcdata DomDocument->create_cdata_section ( string $content )

This function returns a new instance of class DomCData. The content of the cdata is the value of the passed parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->create_attribute
DomDocument->create_comment
DOM XML 函数


Create new comment node

DomDocument->create_cdata_section
DomDocument->create_element_ns
DOM XML 函数
PHP 手册

DomDocument->create_comment

(No version information available, might be only in CVS)

DomDocument->create_comment — Create new comment node

说明

domcomment DomDocument->create_comment ( string $content )

This function returns a new instance of class DomComment. The content of the comment is the value of the passed parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->create_cdata_section
DomDocument->create_element_ns
DOM XML 函数


Create new element node with an associated namespace

DomDocument->create_comment
DomDocument->create_element
DOM XML 函数
PHP 手册

DomDocument->create_element_ns

(No version information available, might be only in CVS)

DomDocument->create_element_ns — Create new element node with an associated namespace

说明

domelement DomDocument->create_element_ns ( string $uri , string $name [, string $prefix ] )

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter name . The URI of the namespace is the value of the passed parameter uri . If there is already a namespace declaration with the same uri in the root-node of the document, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
domnode_add_namespace(),
domnode_set_namespace(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->create_comment
DomDocument->create_element
DOM XML 函数


Create new element node

DomDocument->create_element_ns
DomDocument->create_entity_reference
DOM XML 函数
PHP 手册

DomDocument->create_element

(No version information available, might be only in CVS)

DomDocument->create_element — Create new element node

说明

domelement DomDocument->create_element ( string $name )

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->create_element_ns
DomDocument->create_entity_reference
DOM XML 函数


Create an entity reference

DomDocument->create_element
DomDocument->create_processing_instruction
DOM XML 函数
PHP 手册

DomDocument->create_entity_reference

(No version information available, might be only in CVS)

DomDocument->create_entity_reference — Create an entity reference

说明

domentityreference DomDocument->create_entity_reference ( string $content )

This function returns a new instance of class DomEntityReference. The content of the entity reference is the value of the passed parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_processing_instruction(),
domdocument_create_attribute(), and
domnode_insert_before().

DomDocument->create_element
DomDocument->create_processing_instruction
DOM XML 函数


Creates new PI node

DomDocument->create_entity_reference
DomDocument->create_text_node
DOM XML 函数
PHP 手册

DomDocument->create_processing_instruction

(No version information available, might be only in CVS)

DomDocument->create_processing_instruction — Creates new PI node

说明

domprocessinginstruction DomDocument->create_processing_instruction ( string $content )

This function returns a new instance of class DomCData. The content of the pi is the value of the passed parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_attribute(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->create_entity_reference
DomDocument->create_text_node
DOM XML 函数


Create new text node

DomDocument->create_processing_instruction
DomDocument->doctype
DOM XML 函数
PHP 手册

DomDocument->create_text_node

(No version information available, might be only in CVS)

DomDocument->create_text_node — Create new text node

说明

domtext DomDocument->create_text_node ( string $content )

This function returns a new instance of class DomText. The content of the text is the value of the passed parameter. 本节点不会出现在文档中，除非是用例如 domnode_append_child() 函数来将其插入。

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_comment(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

DomDocument->create_processing_instruction
DomDocument->doctype
DOM XML 函数


Returns the document type

DomDocument->create_text_node
DomDocument->document_element
DOM XML 函数
PHP 手册

DomDocument->doctype

(No version information available, might be only in CVS)

DomDocument->doctype — Returns the document type

说明

domdocumenttype DomDocument->doctype ( void )

This function returns an object of class DomDocumentType. In versions of PHP before 4.3 this has been the class Dtd, but the DOM Standard does not know such a class.

See also the methods of class DomDocumentType.

DomDocument->create_text_node
DomDocument->document_element
DOM XML 函数


Returns root element node

DomDocument->doctype
DomDocument->dump_file
DOM XML 函数
PHP 手册

DomDocument->document_element

(No version information available, might be only in CVS)

DomDocument->document_element — Returns root element node

说明

domelement DomDocument->document_element ( void )

This function returns the root element node of a document.

The following example returns just the element with name CHAPTER and prints it. The other node -- the comment -- is not returned.

Example #1 Retrieving root element

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

上例将输出：

domelement Object
(
    [type] => 1
    [tagname] => chapter
    [0] => 6
    [1] => 137960648
)

DomDocument->doctype
DomDocument->dump_file
DOM XML 函数


Dumps the internal XML tree back into a file

DomDocument->document_element
DomDocument->dump_mem
DOM XML 函数
PHP 手册

DomDocument->dump_file

(No version information available, might be only in CVS)

DomDocument->dump_file — Dumps the internal XML tree back into a file

说明

string DomDocument->dump_file ( string $filename [, bool $compressionmode [, bool $format ]] )

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not. The first parameter specifies the name of the filename and the second parameter, whether it should be compressed or not.

Example #1 Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

See also domdocument_dump_mem(), and domdocument_html_dump_mem().

DomDocument->document_element
DomDocument->dump_mem
DOM XML 函数


Dumps the internal XML tree back into a string

DomDocument->dump_file
DomDocument->get_element_by_id
DOM XML 函数
PHP 手册

DomDocument->dump_mem

(No version information available, might be only in CVS)

DomDocument->dump_mem — Dumps the internal XML tree back into a string

说明

string DomDocument->dump_mem ([ bool $format [, string $encoding ]] )

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not.

Example #1 Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>

Note: The first parameter was added in PHP 4.3.0.

See also domdocument_dump_file(), and domdocument_html_dump_mem().

DomDocument->dump_file
DomDocument->get_element_by_id
DOM XML 函数


Searches for an element with a certain id

DomDocument->dump_mem
DomDocument->get_elements_by_tagname
DOM XML 函数
PHP 手册

DomDocument->get_element_by_id

(No version information available, might be only in CVS)

DomDocument->get_element_by_id — Searches for an element with a certain id

说明

domelement DomDocument->get_element_by_id ( string $id )

This function is similar to domdocument_get_elements_by_tagname() but searches for an element with a given id. According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID, though the current implementation simply does an xpath search for "//*[@ID = '%s']". This does not comply to the DOM standard which requires to return null if it is not known which attribute is of type id. This behaviour is likely to be fixed, so do not rely on the current behaviour.

See also domdocument_get_elements_by_tagname()

DomDocument->dump_mem
DomDocument->get_elements_by_tagname
DOM XML 函数


Returns array with nodes with given tagname in document or empty array, if not found

DomDocument->get_element_by_id
DomDocument->html_dump_mem
DOM XML 函数
PHP 手册

DomDocument->get_elements_by_tagname

(No version information available, might be only in CVS)

DomDocument->get_elements_by_tagname — Returns array with nodes with given tagname in document or empty array, if not found

说明

array DomDocument->get_elements_by_tagname ( string $name )

See also domdocument_add_root()

DomDocument->get_element_by_id
DomDocument->html_dump_mem
DOM XML 函数


Dumps the internal XML tree back into a string as HTML

DomDocument->get_elements_by_tagname
DomDocument->xinclude
DOM XML 函数
PHP 手册

DomDocument->html_dump_mem

(No version information available, might be only in CVS)

DomDocument->html_dump_mem — Dumps the internal XML tree back into a string as HTML

说明

string DomDocument->html_dump_mem ( void )

Creates an HTML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below.

Example #1 Creating a simple HTML document header

<?php

// Creates the document
$doc = domxml_new_doc("1.0");

$root = $doc->create_element("html");
$root = $doc->append_child($root);

$head = $doc->create_element("head");
$head = $root->append_child($head);

$title = $doc->create_element("title");
$title = $head->append_child($title);

$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);

echo $doc->html_dump_mem();
?>

上例将输出：

<html><head><title>This is the title</title></head></html>

See also domdocument_dump_file(), and domdocument_html_dump_mem().

DomDocument->get_elements_by_tagname
DomDocument->xinclude
DOM XML 函数


Substitutes XIncludes in a DomDocument Object

DomDocument->html_dump_mem
DomDocumentType->entities
DOM XML 函数
PHP 手册

DomDocument->xinclude

(No version information available, might be only in CVS)

DomDocument->xinclude — Substitutes XIncludes in a DomDocument Object

说明

int DomDocument->xinclude ( void )

This function substitutes » XIncludes in a DomDocument object.

Example #1 Substituting Xincludes

<?php

// include.xml contains :
// <child>test</child>

$xml = '<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="include.xml">
    <xi:fallback>
      <error>xinclude: include.xml not found</error>
    </xi:fallback>
  </xi:include>
</root>';

$domxml = domxml_open_mem($xml);
$domxml->xinclude();

echo $domxml->dump_mem();

?>

上例将输出：

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <child>test</child>
</root>

If include.xml doesn't exist, you'll see:

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <error>xinclude:dom.xml not found</error>
</root>

DomDocument->html_dump_mem
DomDocumentType->entities
DOM XML 函数


Returns list of entities

DomDocument->xinclude
DomDocumentType->internal_subset
DOM XML 函数
PHP 手册

DomDocumentType->entities

(No version information available, might be only in CVS)

DomDocumentType->entities — Returns list of entities

说明

DomDocumentType
array entities ( void )

Warning

本函数暂无文档，仅有参数列表。

Migrating to PHP 5

Use the entities property of the DOMDocumentType object.

DomDocument->xinclude
DomDocumentType->internal_subset
DOM XML 函数


Returns internal subset

DomDocumentType->entities
DomDocumentType->name
DOM XML 函数
PHP 手册

DomDocumentType->internal_subset

(No version information available, might be only in CVS)

DomDocumentType->internal_subset — Returns internal subset

说明

DomDocumentType
bool internal_subset ( void )

Warning

本函数暂无文档，仅有参数列表。

Migrating to PHP 5

Use the internalSubset property of the DOMDocumentType object.

DomDocumentType->entities
DomDocumentType->name
DOM XML 函数


Returns name of document type

DomDocumentType->internal_subset
DomDocumentType->notations
DOM XML 函数
PHP 手册

DomDocumentType->name

(No version information available, might be only in CVS)

DomDocumentType->name — Returns name of document type

说明

DomDocumentType
string name ( void )

This function returns the name of the document type.

返回值

Returns the name of the DomDocumentType, as a string.

范例

Example #1 Getting the document type's name

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$doctype = $dom->doctype();
echo $doctype->name(); // chapter

?>

Migrating to PHP 5

Use the name property of the DOMDocumentType object.

DomDocumentType->internal_subset
DomDocumentType->notations
DOM XML 函数


Returns list of notations

DomDocumentType->name
DomDocumentType->public_id
DOM XML 函数
PHP 手册

DomDocumentType->notations

(No version information available, might be only in CVS)

DomDocumentType->notations — Returns list of notations

说明

DomDocumentType
array notations ( void )

Warning

本函数暂无文档，仅有参数列表。

Migrating to PHP 5

Use the notations property of the DOMDocumentType object.

DomDocumentType->name
DomDocumentType->public_id
DOM XML 函数


Returns public id of document type

DomDocumentType->notations
DomDocumentType->system_id
DOM XML 函数
PHP 手册

DomDocumentType->public_id

(No version information available, might be only in CVS)

DomDocumentType->public_id — Returns public id of document type

说明

DomDocumentType
string public_id ( void )

This function returns the public id of the document type.

返回值

Returns the public id of the DomDocumentType, as a string.

范例

The following example echos nothing.

Example #1 Retrieving the public id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Migrating to PHP 5

Use the publicId property of the DOMDocumentType object.

DomDocumentType->notations
DomDocumentType->system_id
DOM XML 函数


Returns the system id of document type

DomDocumentType->public_id
DomElement->get_attribute_node
DOM XML 函数
PHP 手册

DomDocumentType->system_id

(No version information available, might be only in CVS)

DomDocumentType->system_id — Returns the system id of document type

说明

DomDocumentType
string system_id ( void )

Returns the system id of the document type.

返回值

Returns the system id of the DomDocumentType, as a string.

范例

Example #1 Retrieving the system id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

上例将输出：

/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd

Migrating to PHP 5

Use the systemId property of the DOMDocumentType object.

DomDocumentType->public_id
DomElement->get_attribute_node
DOM XML 函数


Returns the node of the given attribute

DomDocumentType->system_id
DomElement->get_attribute
DOM XML 函数
PHP 手册

DomElement->get_attribute_node

(No version information available, might be only in CVS)

DomElement->get_attribute_node — Returns the node of the given attribute

说明

DomElement
DomAttribute get_attribute_node ( string $name )

Returns the node of the given attribute in the current element.

参数

name

The name of the seeked attribute. This parameter is case sensitive.

返回值

Returns the node of the attribute as a DomAttribute or FALSE if no attribute with the given name is found.

范例

Example #1 Getting an attribute node

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$root = $dom->document_element();
if ($attribute = $root->get_attribute_node('language')) {
    echo 'Language is: ' . $attribute->value() . "\n";
}

?>

Migrating to PHP 5

Use DOMElement::getAttributeNode.

参见

  • DomElement->get_attribute
  • DomElement->set_attribute

DomDocumentType->system_id
DomElement->get_attribute
DOM XML 函数


Returns the value of the given attribute

DomElement->get_attribute_node
DomElement->get_elements_by_tagname
DOM XML 函数
PHP 手册

DomElement->get_attribute

(No version information available, might be only in CVS)

DomElement->get_attribute — Returns the value of the given attribute

说明

DomElement
string get_attribute ( string $name )

Returns the value of the given attribute in the current element.

Since PHP 4.3, if no attribute with given name is found, an empty string is returned.

参数

name

The name of the seeked attribute. This parameter is case sensitive.

返回值

Returns the name of the attribute as a string or an empty string if no attribute with the given name is found.

范例

Example #1 Getting the value of an attribute

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

// get chapter
$root = $dom->document_element();
echo $root->get_attribute('language'); // en

?>

Migrating to PHP 5

Use DOMElement::getAttribute.

参见

  • DomElement->get_attribute_node
  • DomElement->set_attribute

DomElement->get_attribute_node
DomElement->get_elements_by_tagname
DOM XML 函数


Gets elements by tagname

DomElement->get_attribute
DomElement->has_attribute
DOM XML 函数
PHP 手册

DomElement->get_elements_by_tagname

(No version information available, might be only in CVS)

DomElement->get_elements_by_tagname — Gets elements by tagname

说明

DomElement
array get_elements_by_tagname ( string $name )

Gets all the sub elements with the specific name within the current element.

参数

name

The name of the seeked element.

返回值

Returns an array of DomElement objects.

范例

Example #1 Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname('element');

foreach ($node_array as $node) {
    echo ' - ' . $node->get_content() . "\n";
}

?>

Migrating to PHP 5

Use DOMElement::getElementsByTagName.

DomElement->get_attribute
DomElement->has_attribute
DOM XML 函数


Checks to see if an attribute exists in the current node

DomElement->get_elements_by_tagname
DomElement->remove_attribute
DOM XML 函数
PHP 手册

DomElement->has_attribute

(No version information available, might be only in CVS)

DomElement->has_attribute — Checks to see if an attribute exists in the current node

说明

DomElement
bool has_attribute ( string $name )

This functions checks to see if an attribute named name exists in the current node.

参数

name

The name of the tested attribute.

返回值

Returns TRUE if the asked attribute exists, FALSE otherwise.

范例

Example #1 Testing the existence of an attribute

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$root = $dom->document_element();

$buffer = '<html';
if ($root->has_attribute('language')) {
    $buffer .= 'lang="' . $root->get_attribute('language') . '"';
}
$buffer .= '>';

?>

Migrating to PHP 5

Use DOMElement::hasAttribute.

DomElement->get_elements_by_tagname
DomElement->remove_attribute
DOM XML 函数


Removes attribute

DomElement->has_attribute
DomElement->set_attribute_node
DOM XML 函数
PHP 手册

DomElement->remove_attribute

(No version information available, might be only in CVS)

DomElement->remove_attribute — Removes attribute

说明

DomElement
bool remove_attribute ( string $name )

Removes an attribute from the current DomElement node.

参数

name

The name of the attribute to remove.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Migrating to PHP 5

Use DOMElement::removeAttribute.

DomElement->has_attribute
DomElement->set_attribute_node
DOM XML 函数


Adds new attribute

DomElement->remove_attribute
DomElement->set_attribute
DOM XML 函数
PHP 手册

DomElement->set_attribute_node

(No version information available, might be only in CVS)

DomElement->set_attribute_node — Adds new attribute

说明

DomElement
DomNode set_attribute_node ( DomNode $attr )

Warning

本函数暂无文档，仅有参数列表。

DomElement->remove_attribute
DomElement->set_attribute
DOM XML 函数


Sets the value of an attribute

DomElement->set_attribute_node
DomElement->tagname
DOM XML 函数
PHP 手册

DomElement->set_attribute

(No version information available, might be only in CVS)

DomElement->set_attribute — Sets the value of an attribute

说明

DomElement
DomAttribute set_attribute ( string $name , string $value )

Sets an attribute with name name to the given value .

参数

name

The name of the attribute. If this attribute doesn't exist, it will be created.

value

The value of the attribute.

返回值

Returns the old DomAttribute node, or the new one if you are creating the attribute for the first time.

范例

Example #1 Setting an attribute

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

Migrating to PHP 5

Use DOMElement::setAttribute.

参见

  • DomElement->get_attribute_node
  • DomElement->get_attribute

DomElement->set_attribute_node
DomElement->tagname
DOM XML 函数


Returns the name of the current element

DomElement->set_attribute
DomNode->add_namespace
DOM XML 函数
PHP 手册

DomElement->tagname

(No version information available, might be only in CVS)

DomElement->tagname — Returns the name of the current element

说明

DomElement
string tagname ( void )

Returns the name of the current node. Calling this function is the same as accessing the tagname property, or calling DomNode->node_name on the current node.

返回值

Returns the name of the current DomElement node.

范例

Example #1 Getting the node name

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$root = $dom->document_element();
echo $root->tagname();   // chapter
echo $root->tagname;     // chapter
echo $root->node_name(); // chapter

?>

Migrating to PHP 5

Use the tagName property of the DOMElement object.

DomElement->set_attribute
DomNode->add_namespace
DOM XML 函数


Adds a namespace declaration to a node

DomElement->tagname
DomNode->append_child
DOM XML 函数
PHP 手册

DomNode->add_namespace

(No version information available, might be only in CVS)

DomNode->add_namespace — Adds a namespace declaration to a node

说明

DOMNode
bool add_namespace ( string $uri , string $prefix )

This method adds a namespace declaration to a node.

Note: This method is not part of the DOM specification.

参数

uri

The namespace URI of the node.

prefix

The namespace prefix of the node.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

Migrating to PHP 5

You can set the namespace URI and prefix of a DOMElement or a DOMAttr at creation time by using DOMDocument::createElementNS or DOMDocument::createAttributeNS.

Note: Remember the an attribute does not inherit its namespace from the element it is attached to.

参见

  • DomDocument->create_element_ns
  • DomNode->set_namespace

DomElement->tagname
DomNode->append_child
DOM XML 函数


Adds a new child at the end of the children

DomNode->add_namespace
DomNode->append_sibling
DOM XML 函数
PHP 手册

DomNode->append_child

(No version information available, might be only in CVS)

DomNode->append_child — Adds a new child at the end of the children

说明

DOMNode
DOMNode append_child ( DOMNode $newnode )

This functions appends a child to an existing list of children or creates a new list of children.

参数

newnode

The node being appended. It can be created with e.g. DomDocument->create_element, DomDocument->create_text_node etc. or simply by using any other node.

Note: You can not append a DOMAttribute using this method. Use DomElement->set_attribute instead.

返回值

Returns the appended node on success or FALSE on failure.

更新日志

版本 | 说明
4.3.0 | You are not allowed anymore to insert a node from another document.
4.3.0 | Prior to PHP 4.3.0, the new child is duplicated before being appended. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the appended child. If you plan to do further modifications on the appended child you must use the returned node.
4.3.0 and 4.3.1 | The new child newnode is first unlinked from its existing context, if it's already a child of DomNode. Therefore the newnode is moved and not copies anymore. This is the behaviour according to the W3C specifications. If you need the old behaviour, use DomNode->clone_node before appending.
4.3.2 | The new child newnode is first unlinked from its existing context, if it's already in the tree. Same rules apply.

范例

The following example adds a new element node to a fresh document and sets the attribute align to left.

Example #1 Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

The above example could also be written as the following:

Example #2 Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>

A more complex example is the one below. It first searches for a certain element, duplicates it including its children and adds it as a sibling. Finally a new attribute is added to one of the children of the new sibling and the whole document is dumped.

Example #3 Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
?>

The above example could also be done with DomNode->insert_before instead of DomNode->append_child.

Migrating to PHP 5

You should use DOMNode::appendChild.

参见

  • DomNode->insert_before
  • DomNode->clone_node

DomNode->add_namespace
DomNode->append_sibling
DOM XML 函数


Adds new sibling to a node

DomNode->append_child
DomNode->attributes
DOM XML 函数
PHP 手册

DomNode->append_sibling

(No version information available, might be only in CVS)

DomNode->append_sibling — Adds new sibling to a node

说明

domelement DomNode->append_sibling ( domelement $newnode )

This functions appends a sibling to an existing node. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

Before a new sibling is added it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the added sibling. If you plan to do further modifications on the added sibling you must use the returned node.

This function has been added to provide the behaviour of domnode_append_child() as it works till PHP 4.2.

See also domnode_append_before().

DomNode->append_child
DomNode->attributes
DOM XML 函数


Returns list of attributes

DomNode->append_sibling
DomNode->child_nodes
DOM XML 函数
PHP 手册

DomNode->attributes

(No version information available, might be only in CVS)

DomNode->attributes — Returns list of attributes

说明

array DomNode->attributes ( void )

This function only returns an array of attributes if the node is of type XML_ELEMENT_NODE.

(PHP >= 4.3 only) If no attributes are found, NULL is returned.

DomNode->append_sibling
DomNode->child_nodes
DOM XML 函数


Returns children of node

DomNode->attributes
DomNode->clone_node
DOM XML 函数
PHP 手册

DomNode->child_nodes

(No version information available, might be only in CVS)

DomNode->child_nodes — Returns children of node

说明

array DomNode->child_nodes ( void )

Returns all children of the node.

See also domnode_next_sibling(), and domnode_previous_sibling().

DomNode->attributes
DomNode->clone_node
DOM XML 函数


Clones a node

DomNode->child_nodes
DomNode->dump_node
DOM XML 函数
PHP 手册

DomNode->clone_node

(No version information available, might be only in CVS)

DomNode->clone_node — Clones a node

说明

domelement DomNode->clone_node ( void )

Warning

本函数暂无文档，仅有参数列表。

DomNode->child_nodes
DomNode->dump_node
DOM XML 函数


Dumps a single node

DomNode->clone_node
DomNode->first_child
DOM XML 函数
PHP 手册

DomNode->dump_node

(No version information available, might be only in CVS)

DomNode->dump_node — Dumps a single node

说明

string DomNode->dump_node ( void )

Warning

本函数暂无文档，仅有参数列表。

See also domdocument_dump_mem().

DomNode->clone_node
DomNode->first_child
DOM XML 函数


Returns first child of node

DomNode->dump_node
DomNode->get_content
DOM XML 函数
PHP 手册

DomNode->first_child

(No version information available, might be only in CVS)

DomNode->first_child — Returns first child of node

说明

domelement DomNode->first_child ( void )

Returns the first child of the node.

(PHP >= 4.3 only) If no first child is found, NULL is returned.

See also domnode_last_child(), and
domnode_next_sibling(),
domnode_previous_sibling().

DomNode->dump_node
DomNode->get_content
DOM XML 函数


Gets content of node

DomNode->first_child
DomNode->has_attributes
DOM XML 函数
PHP 手册

DomNode->get_content

(No version information available, might be only in CVS)

DomNode->get_content — Gets content of node

说明

string DomNode->get_content ( void )

This function returns the content of the actual node.

Example #1 Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
    $node = $node_array[$i];
    echo "The element[$i] is: " . $node->get_content();
}

?>

DomNode->first_child
DomNode->has_attributes
DOM XML 函数


Checks if node has attributes

DomNode->get_content
DomNode->has_child_nodes
DOM XML 函数
PHP 手册

DomNode->has_attributes

(No version information available, might be only in CVS)

DomNode->has_attributes — Checks if node has attributes

说明

bool DomNode->has_attributes ( void )

This function checks if the node has attributes.

See also domnode_has_child_nodes().

DomNode->get_content
DomNode->has_child_nodes
DOM XML 函数


Checks if node has children

DomNode->has_attributes
DomNode->insert_before
DOM XML 函数
PHP 手册

DomNode->has_child_nodes

(No version information available, might be only in CVS)

DomNode->has_child_nodes — Checks if node has children

说明

bool DomNode->has_child_nodes ( void )

This function checks if the node has children.

See also domnode_child_nodes().

DomNode->has_attributes
DomNode->insert_before
DOM XML 函数


Inserts new node as child

DomNode->has_child_nodes
DomNode->is_blank_node
DOM XML 函数
PHP 手册

DomNode->insert_before

(No version information available, might be only in CVS)

DomNode->insert_before — Inserts new node as child

说明

domelement DomNode->insert_before ( domelement $newnode , domelement $refnode )

This function inserts the new node newnode right before the node refnode . The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Example #1 Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>

See also domnode_append_child().

DomNode->has_child_nodes
DomNode->is_blank_node
DOM XML 函数


Checks if node is blank

DomNode->insert_before
DomNode->last_child
DOM XML 函数
PHP 手册

DomNode->is_blank_node

(No version information available, might be only in CVS)

DomNode->is_blank_node — Checks if node is blank

说明

bool DomNode->is_blank_node ( void )

Warning

本函数暂无文档，仅有参数列表。

DomNode->insert_before
DomNode->last_child
DOM XML 函数


Returns last child of node

DomNode->is_blank_node
DomNode->next_sibling
DOM XML 函数
PHP 手册

DomNode->last_child

(No version information available, might be only in CVS)

DomNode->last_child — Returns last child of node

说明

domelement DomNode->last_child ( void )

Returns the last child of the node.

(PHP >= 4.3 only) If no last child is found, NULL is returned.

See also domnode_first_child(), and
domnode_next_sibling(),
domnode_previous_sibling().

DomNode->is_blank_node
DomNode->next_sibling
DOM XML 函数


Returns the next sibling of node

DomNode->last_child
DomNode->node_name
DOM XML 函数
PHP 手册

DomNode->next_sibling

(No version information available, might be only in CVS)

DomNode->next_sibling — Returns the next sibling of node

说明

domelement DomNode->next_sibling ( void )

This function returns the next sibling of the current node. If there is no next sibling it returns FALSE (< 4.3) or null (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

Example #1 Iterate over children

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while ($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

See also domnode_previous_sibling().

DomNode->last_child
DomNode->node_name
DOM XML 函数


Returns name of node

DomNode->next_sibling
DomNode->node_type
DOM XML 函数
PHP 手册

DomNode->node_name

(No version information available, might be only in CVS)

DomNode->node_name — Returns name of node

说明

string DomNode->node_name ( void )

Returns name of the node. The name has different meanings for the different types of nodes as illustrated in the following table.

Meaning of value
Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | document type name
DomElement | tag name
DomEntity | name of entity
DomEntityReference | name of entity reference
DomNotation | notation name
DomProcessingInstruction | target
DomText | #text

DomNode->next_sibling
DomNode->node_type
DOM XML 函数


Returns type of node

DomNode->node_name
DomNode->node_value
DOM XML 函数
PHP 手册

DomNode->node_type

(No version information available, might be only in CVS)

DomNode->node_type — Returns type of node

说明

int DomNode->node_type ( void )

Returns the type of the node. All possible types are listed in the table in the introduction.

<?php

include 'example.inc';

$dom = domxml_open_mem($xmlstr);

$chapter = $dom->document_element();

// Let's see the elements contained in chapter
foreach($chapter->child_nodes() as $node) {
  if ($node->node_type() == XML_ELEMENT_NODE) {
    echo $node->node_name() . "\n";
  }
}

?>

上例将输出：

title
para
DomNode->node_name
DomNode->node_value
DOM XML 函数


Returns value of a node

DomNode->node_type
DomNode->owner_document
DOM XML 函数
PHP 手册

DomNode->node_value

(No version information available, might be only in CVS)

DomNode->node_value — Returns value of a node

说明

string DomNode->node_value ( void )

Returns value of the node. The value has different meanings for the different types of nodes as illustrated in the following table.

Meaning of value
Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | content
DomComment | content of comment
DomDocument | null
DomDocumentType | null
DomElement | null
DomEntity | null
DomEntityReference | null
DomNotation | null
DomProcessingInstruction | entire content without target
DomText | content of text

DomNode->node_type
DomNode->owner_document
DOM XML 函数


Returns the document this node belongs to

DomNode->node_value
DomNode->parent_node
DOM XML 函数
PHP 手册

DomNode->owner_document

(No version information available, might be only in CVS)

DomNode->owner_document — Returns the document this node belongs to

说明

domdocument DomNode->owner_document ( void )

This function returns the document the current node belongs to.

The following example will create two identical lists of children.

Example #1 Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

See also domnode_insert_before().

DomNode->node_value
DomNode->parent_node
DOM XML 函数


Returns the parent of the node

DomNode->owner_document
DomNode->prefix
DOM XML 函数
PHP 手册

DomNode->parent_node

(No version information available, might be only in CVS)

DomNode->parent_node — Returns the parent of the node

说明

domnode DomNode->parent_node ( void )

This function returns the parent node.

(PHP >= 4.3 only) If no parent is found, NULL is returned.

The following example will show two identical lists of children.

Example #1 Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

DomNode->owner_document
DomNode->prefix
DOM XML 函数


Returns name space prefix of node

DomNode->parent_node
DomNode->previous_sibling
DOM XML 函数
PHP 手册

DomNode->prefix

(No version information available, might be only in CVS)

DomNode->prefix — Returns name space prefix of node

说明

string DomNode->prefix ( void )

Returns the name space prefix of the node.

DomNode->parent_node
DomNode->previous_sibling
DOM XML 函数


Returns the previous sibling of node

DomNode->prefix
DomNode->remove_child
DOM XML 函数
PHP 手册

DomNode->previous_sibling

(No version information available, might be only in CVS)

DomNode->previous_sibling — Returns the previous sibling of node

说明

domelement DomNode->previous_sibling ( void )

This function returns the previous sibling of the current node. If there is no previous sibling it returns FALSE (< 4.3) or NULL (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

See also domnode_next_sibling().

DomNode->prefix
DomNode->remove_child
DOM XML 函数


Removes child from list of children

DomNode->previous_sibling
DomNode->replace_child
DOM XML 函数
PHP 手册

DomNode->remove_child

(No version information available, might be only in CVS)

DomNode->remove_child — Removes child from list of children

说明

domtext DomNode->remove_child ( domtext $oldchild )

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Example #1 Removing a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

DomNode->previous_sibling
DomNode->replace_child
DOM XML 函数


Replaces a child

DomNode->remove_child
DomNode->replace_node
DOM XML 函数
PHP 手册

DomNode->replace_child

(No version information available, might be only in CVS)

DomNode->replace_child — Replaces a child

说明

domelement DomNode->replace_child ( domelement $newnode , domelement $oldnode )

(PHP 4.2) This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned.

(PHP 4.3) This function replaces the child oldnode with the passed newnode , even if the new node already is a child of the DomNode. If newnode was already inserted in the document it is first unlinked from its existing context. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned. (This behaviour is according to the W3C specs).

See also domnode_append_child()

DomNode->remove_child
DomNode->replace_node
DOM XML 函数


Replaces node

DomNode->replace_child
DomNode->set_content
DOM XML 函数
PHP 手册

DomNode->replace_node

(No version information available, might be only in CVS)

DomNode->replace_node — Replaces node

说明

domelement DomNode->replace_node ( domelement $newnode )

(PHP 4.2) This function replaces an existing node with the passed new node. Before the replacement newnode is copied if it has a parent to make sure a node which is already in the document will not be inserted a second time. This behaviour enforces doing all modifications on the node before the replacement or to refetch the inserted node afterwards with functions like domnode_first_child(), domnode_child_nodes() etc..

(PHP 4.3) This function replaces an existing node with the passed new node. It is not copied anymore. If newnode was already inserted in the document it is first unlinked from its existing context. If the replacement succeeds the old node is returned.

See also domnode_append_child()

DomNode->replace_child
DomNode->set_content
DOM XML 函数


Sets content of node

DomNode->replace_node
DomNode->set_name
DOM XML 函数
PHP 手册

DomNode->set_content

(No version information available, might be only in CVS)

DomNode->set_content — Sets content of node

说明

bool DomNode->set_content ( string $content )

Warning

本函数暂无文档，仅有参数列表。

DomNode->replace_node
DomNode->set_name
DOM XML 函数


Sets name of node

DomNode->set_content
DomNode->set_namespace
DOM XML 函数
PHP 手册

DomNode->set_name

(No version information available, might be only in CVS)

DomNode->set_name — Sets name of node

说明

bool DomNode->set_name ( void )

Sets name of node.

See also domnode_node_name().

DomNode->set_content
DomNode->set_namespace
DOM XML 函数


Sets namespace of a node

DomNode->set_name
DomNode->unlink_node
DOM XML 函数
PHP 手册

DomNode->set_namespace

(No version information available, might be only in CVS)

DomNode->set_namespace — Sets namespace of a node

说明

void DomNode->set_namespace ( string $uri [, string $prefix ] )

Sets the namespace of a node to uri . If there is already a namespace declaration with the same uri in one of the parent nodes of the node, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one.

See also domdocument_create_element_ns(), and domnode_add_namespace()

DomNode->set_name
DomNode->unlink_node
DOM XML 函数


Deletes node

DomNode->set_namespace
DomProcessingInstruction->data
DOM XML 函数
PHP 手册

DomNode->unlink_node

(No version information available, might be only in CVS)

DomNode->unlink_node — Deletes node

说明

void DomNode->unlink_node ( void )

Warning

本函数暂无文档，仅有参数列表。

DomNode->set_namespace
DomProcessingInstruction->data
DOM XML 函数


Returns the data of ProcessingInstruction node

DomNode->unlink_node
DomProcessingInstruction->target
DOM XML 函数
PHP 手册

DomProcessingInstruction->data

(No version information available, might be only in CVS)

DomProcessingInstruction->data — Returns the data of ProcessingInstruction node

说明

DomProcessingInstruction
string data ( void )

This method gets the data of the ProcessingInstruction node.

返回值

Returns the data of the Processing Instruction.

Migrating to PHP 5

Use the data property of DOMProcessingInstruction.

DomNode->unlink_node
DomProcessingInstruction->target
DOM XML 函数


Returns the target of a ProcessingInstruction node

DomProcessingInstruction->data
DomXsltStylesheet->process
DOM XML 函数
PHP 手册

DomProcessingInstruction->target

(No version information available, might be only in CVS)

DomProcessingInstruction->target — Returns the target of a ProcessingInstruction node

说明

DomProcessingInstruction
string target ( void )

This method gets the target of the ProcessingInstruction node.

返回值

Returns the target of the Processing Instruction.

Migrating to PHP 5

Use the target property of DOMProcessingInstruction.

DomProcessingInstruction->data
DomXsltStylesheet->process
DOM XML 函数


Applies the XSLT-Transformation on a DomDocument Object

DomProcessingInstruction->target
DomXsltStylesheet->result_dump_file
DOM XML 函数
PHP 手册

DomXsltStylesheet->process

(No version information available, might be only in CVS)

DomXsltStylesheet->process — Applies the XSLT-Transformation on a DomDocument Object

说明

DomXsltStylesheet
DomDocument process ( DomDocument $xml_doc [, array $xslt_params [, bool $is_xpath_param [, string $profile_filename ]]] )

Applies an XSLT Transformation on the given DomDocument object.

参数

xml_doc

The XML document being transformed, as a DomDocument object.

xslt_params

An associative array that takes pairs of parameter names and values.

is_xpath_param

If set to FALSE the values of the xslt_params will be quoted. This is the default behavior. It allows you to pass the values as PHP strings.

Note: If your strings contains both single and double quotes, you must take care of quoting all the values by yourself and set this parameter to TRUE.

profile_filename

Set this to the path of a filename, if you want profiling information.

返回值

Returns the result of the processing, as a DomDocument object.

Migrating to PHP 5

Use XSLTProcessor::setParameter() and XSLTProcessor::transform-to-doc().

更新日志

版本 | 说明
4.3.0 | The profile_filename parameter was added.

参见

  • domxml_xslt_stylesheet() - Creates a DomXsltStylesheet object from an XSL document in a string
  • domxml_xslt_stylesheet_file() - Creates a DomXsltStylesheet Object from an XSL document in a file
  • domxml_xslt_stylesheet_doc() - Creates a DomXsltStylesheet Object from a DomDocument Object

DomProcessingInstruction->target
DomXsltStylesheet->result_dump_file
DOM XML 函数


Dumps the result from a XSLT-Transformation into a file

DomXsltStylesheet->process
DomXsltStylesheet->result_dump_mem
DOM XML 函数
PHP 手册

DomXsltStylesheet->result_dump_file

(No version information available, might be only in CVS)

DomXsltStylesheet->result_dump_file — Dumps the result from a XSLT-Transformation into a file

说明

DomXsltStylesheet
string result_dump_file ( DomDocument $xmldoc , string $filename )

Since DomXsltStylesheet->process always returns a well-formed XML DomDocument, no matter what output method was declared in

<xsl:output>
and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data.

This function on the contrary honors

<xsl:output method="html|text">
and other output control directives. See the example for instruction on how to use it.

范例

Example #1 Saving the result of a XSLT transformation in a file

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_file($result, "filename");
?>

参见

  • DomXsltStylesheet->result_dump_mem
  • DomXsltStylesheet->process

DomXsltStylesheet->process
DomXsltStylesheet->result_dump_mem
DOM XML 函数


Dumps the result from a XSLT-Transformation back into a string

DomXsltStylesheet->result_dump_file
domxml_new_doc
DOM XML 函数
PHP 手册

DomXsltStylesheet->result_dump_mem

(No version information available, might be only in CVS)

DomXsltStylesheet->result_dump_mem — Dumps the result from a XSLT-Transformation back into a string

说明

DomXsltStylesheet
string result_dump_mem ( DomDocument $xmldoc )

Since DomXsltStylesheet->process always returns a well-formed XML DomDocument, no matter what output method was declared in

<xsl:output>
and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data.

This function on the contrary honors

<xsl:output method="html|text">
and other output control directives. See the example for instruction on how to use it.

范例

Example #1 Outputting the result of a XSLT transformation

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_mem($result);
?>

参见

  • DomXsltStylesheet->result_dump_file
  • DomXsltStylesheet->process

DomXsltStylesheet->result_dump_file
domxml_new_doc
DOM XML 函数


Creates new empty XML document

DomXsltStylesheet->result_dump_mem
domxml_open_file
DOM XML 函数
PHP 手册

domxml_new_doc

(PHP 4 >= 4.2.0)

domxml_new_doc — Creates new empty XML document

说明

DomDocument domxml_new_doc ( string $version )

Creates a new Dom document from scratch and returns it.

参数

version

The XML version number of the document.

返回值

Returns a new DomDocument instance.

DomXsltStylesheet->result_dump_mem
domxml_open_file
DOM XML 函数


Creates a DOM object from an XML file

domxml_new_doc
domxml_open_mem
DOM XML 函数
PHP 手册

domxml_open_file

(PHP 4 >= 4.2.0)

domxml_open_file — Creates a DOM object from an XML file

说明

DomDocument domxml_open_file ( string $filename [, int $mode [, array &$error ]] )

The function parses the XML document in the given file.

参数

filename

The path to the XML file. The file is accessed in read-only mode.

mode

This optional parameter can be used to change the behavior of this function.

You can use one of the following constants for it: DOMXML_LOAD_PARSING (default), DOMXML_LOAD_VALIDATING or DOMXML_LOAD_RECOVERING. You can add to it also DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES and DOMXML_LOAD_COMPLETE_ATTRS by bitwise or.

error

If used, it will contain the error messages. error must be passed in by reference.

返回值

Returns a DomDocument instance of the given file.

范例

Example #1 Opening an XML document from a file

<?php

if (!$dom = domxml_open_file("example.xml")) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

更新日志

版本 | 说明
4.3.0 | The parameters mode and error were added.

参见

  • domxml_open_mem() - Creates a DOM object of an XML document
  • domxml_new_doc() - Creates new empty XML document

domxml_new_doc
domxml_open_mem
DOM XML 函数


Creates a DOM object of an XML document

domxml_open_file
domxml_version
DOM XML 函数
PHP 手册

domxml_open_mem

(PHP 4 >= 4.2.0)

domxml_open_mem — Creates a DOM object of an XML document

说明

DomDocument domxml_open_mem ( string $str [, int $mode [, array &$error ]] )

The function parses the XML document in the given string.

参数

str

The contents of the XML file.

mode

This optional parameter can be used to change the behavior of this function.

You can use one of the following constants for it: DOMXML_LOAD_PARSING (default), DOMXML_LOAD_VALIDATING or DOMXML_LOAD_RECOVERING. You can add to it also DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES and DOMXML_LOAD_COMPLETE_ATTRS by bitwise or.

error

If used, it will contain the error messages. error must be passed in by reference.

返回值

Returns a DomDocument instance of the given XML contents.

更新日志

版本 | 说明
4.3.0 | The mode and error parameters were added.

范例

Example #1 Opening an XML document in a string

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

参见

  • domxml_open_file() - Creates a DOM object from an XML file
  • domxml_new_doc() - Creates new empty XML document

domxml_open_file
domxml_version
DOM XML 函数


Gets the XML library version

domxml_open_mem
domxml_xmltree
DOM XML 函数
PHP 手册

domxml_version

(PHP 4 >= 4.1.0)

domxml_version — Gets the XML library version

说明

string domxml_version ( void )

Gets the version of the XML library currently used.

返回值

The version of the XML library, as a string.

范例

Example #1 domxml_version() Example

<?php

echo domxml_version();

?>

上例的输出类似于：

20607

domxml_open_mem
domxml_xmltree
DOM XML 函数


Creates a tree of PHP objects from an XML document

domxml_version
domxml_xslt_stylesheet_doc
DOM XML 函数
PHP 手册

domxml_xmltree

(PHP 4 >= 4.2.0)

domxml_xmltree — Creates a tree of PHP objects from an XML document

说明

DomDocument domxml_xmltree ( string $str )

The function parses the XML document in str and returns a tree PHP objects as the parsed document.

This function is isolated from the other functions, which means you cannot access the tree with any of the other functions. Modifying it, for example by adding nodes, makes no sense since there is currently no way to dump it as an XML file.

However this function may be valuable if you want to read a file and investigate the content.

参数

str

The contents of the XML file.

返回值

Returns a tree of Dom objects starting by a DomDocument.

domxml_version
domxml_xslt_stylesheet_doc
DOM XML 函数


Creates a DomXsltStylesheet Object from a DomDocument Object

domxml_xmltree
domxml_xslt_stylesheet_file
DOM XML 函数
PHP 手册

domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_doc — Creates a DomXsltStylesheet Object from a DomDocument Object

说明

DomXsltStylesheet domxml_xslt_stylesheet_doc ( DomDocument $xsl_doc )

Creates a DomXsltStylesheet object from the given XSL document.

参数

xsl_doc

The XSL document, as a DomDocument object.

返回值

Returns a new instance of DomXsltStylesheet.

Migrating to PHP 5

Call XSLTProcessor::importStylesheet() with the xsl_doc parameter.

参见

  • DomXsltStylesheet->process
  • domxml_xslt_stylesheet() - Creates a DomXsltStylesheet object from an XSL document in a string
  • domxml_xslt_stylesheet_file() - Creates a DomXsltStylesheet Object from an XSL document in a file

domxml_xmltree
domxml_xslt_stylesheet_file
DOM XML 函数


Creates a DomXsltStylesheet Object from an XSL document in a file

domxml_xslt_stylesheet_doc
domxml_xslt_stylesheet
DOM XML 函数
PHP 手册

domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_file — Creates a DomXsltStylesheet Object from an XSL document in a file

说明

DomXsltStylesheet domxml_xslt_stylesheet_file ( string $xsl_file )

Creates a DomXsltStylesheet object from the given XSL file.

参数

xsl_file

The path to the XSL document, as a string.

返回值

Returns a new instance of DomXsltStylesheet.

Migrating to PHP 5

Call XSLTProcessor::importStylesheet() with DOMDocument::load($xsl_file) as parameter.

参见

  • DomXsltStylesheet->process
  • domxml_xslt_stylesheet() - Creates a DomXsltStylesheet object from an XSL document in a string
  • domxml_xslt_stylesheet_doc() - Creates a DomXsltStylesheet Object from a DomDocument Object

domxml_xslt_stylesheet_doc
domxml_xslt_stylesheet
DOM XML 函数


Creates a DomXsltStylesheet object from an XSL document in a string

domxml_xslt_stylesheet_file
domxml_xslt_version
DOM XML 函数
PHP 手册

domxml_xslt_stylesheet

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet — Creates a DomXsltStylesheet object from an XSL document in a string

说明

DomXsltStylesheet domxml_xslt_stylesheet ( string $xsl_buf )

Creates a DomXsltStylesheet object from the given XSL buffer.

参数

xsl_buf

The XSL document, as a string.

返回值

Returns a new instance of DomXsltStylesheet.

Migrating to PHP 5

Call XSLTProcessor::importStylesheet() with DOMDocument::loadXML($xsl_buf) as parameter.

参见

  • DomXsltStylesheet->process
  • domxml_xslt_stylesheet_file() - Creates a DomXsltStylesheet Object from an XSL document in a file
  • domxml_xslt_stylesheet_doc() - Creates a DomXsltStylesheet Object from a DomDocument Object

domxml_xslt_stylesheet_file
domxml_xslt_version
DOM XML 函数


Gets the XSLT library version

domxml_xslt_stylesheet
xpath_eval_expression
DOM XML 函数
PHP 手册

domxml_xslt_version

(PHP 4 >= 4.2.0)

domxml_xslt_version — Gets the XSLT library version

说明

int domxml_xslt_version ( void )

Gets the XSLT library version.

返回值

Returns the version number of the XSLT library, as an integer.

范例

Example #1 domxml_xslt_version() Example

<?php

echo domxml_xslt_version();

?>

上例的输出类似于：

10112

参见

  • domxml_version() - Gets the XML library version

domxml_xslt_stylesheet
xpath_eval_expression
DOM XML 函数


Evaluates the XPath Location Path in the given string

domxml_xslt_version
xpath_eval
DOM XML 函数
PHP 手册

xpath_eval_expression

(PHP 4 >= 4.0.4)

xpath_eval_expression — Evaluates the XPath Location Path in the given string

说明

XPathContext
XPathObject xpath_eval_expression ( string $expression [, domnode $contextnode ] )
XPathObject xpath_eval_expression ( XPathContext $xpath_context , string $expression [, domnode $contextnode ] )

Example #1 xpath_eval_expression() Example

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$xpath = xpath_new_context($dom);
var_dump(xpath_eval_expression($xpath, '/chapter/@language'));

?>

上例将输出：

object(XPathObject)(2) {
   ["type"]=>
   int(1)
   ["nodeset"]=>
   array(1) {
     [0]=>
     object(domattribute)(5) {
       ["type"]=>
       int(2)
       ["name"]=>
       string(8) "language"
       ["value"]=>
       string(2) "en"
       [0]=>
       int(7)
       [1]=>
       int(138004256)
     }
  }
}

See also xpath_eval().

domxml_xslt_version
xpath_eval
DOM XML 函数


Evaluates the XPath Location Path in the given string

xpath_eval_expression
xpath_new_context
DOM XML 函数
PHP 手册

xpath_eval

(PHP 4 >= 4.0.4)

xpath_eval — Evaluates the XPath Location Path in the given string

说明

XPathContext
XPathObject xpath_eval ( string $xpath_expression [, domnode $contextnode ] )
XPathObject xpath_eval ( XPathContext $xpath_context , string $xpath_expression [, domnode $contextnode ] )

The optional contextnode can be specified for doing relative XPath queries.

See also xpath_new_context().

xpath_eval_expression
xpath_new_context
DOM XML 函数


Creates new xpath context

xpath_eval
xpath_register_ns_auto
DOM XML 函数
PHP 手册

xpath_new_context

(PHP 4 >= 4.0.4)

xpath_new_context — Creates new xpath context

说明

XPathContext xpath_new_context ( domdocument $dom_document )

Creates a new xpath context.

参见

  • xpath_eval() - Evaluates the XPath Location Path in the given string

xpath_eval
xpath_register_ns_auto
DOM XML 函数


Register the given namespace in the passed XPath context

xpath_new_context
xpath_register_ns
DOM XML 函数
PHP 手册

xpath_register_ns_auto

(PHP 4 >= 4.3.0)

xpath_register_ns_auto — Register the given namespace in the passed XPath context

说明

bool xpath_register_ns_auto ( XPathContext $xpath_context [, object $context_node ] )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • xpath_register_ns() - Register the given namespace in the passed XPath context

xpath_new_context
xpath_register_ns
DOM XML 函数


Register the given namespace in the passed XPath context

xpath_register_ns_auto
xptr_eval
DOM XML 函数
PHP 手册

xpath_register_ns

(PHP 4 >= 4.2.0)

xpath_register_ns — Register the given namespace in the passed XPath context

说明

bool xpath_register_ns ( XPathContext $xpath_context , string $prefix , string $uri )
Warning

本函数暂无文档，仅有参数列表。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • xpath_register_ns_auto() - Register the given namespace in the passed XPath context

xpath_register_ns_auto
xptr_eval
DOM XML 函数


Evaluate the XPtr Location Path in the given string

xpath_register_ns
xptr_new_context
DOM XML 函数
PHP 手册

xptr_eval

(PHP 4 >= 4.0.4)

xptr_eval — Evaluate the XPtr Location Path in the given string

说明

XPathContext
int xptr_eval ( string $eval_str [, domnode $contextnode ] )
int xptr_eval ( XPathContext $xpath_context , string $eval_str [, domnode $contextnode ] )

Warning

本函数暂无文档，仅有参数列表。

xpath_register_ns
xptr_new_context
DOM XML 函数


Create new XPath Context

xptr_eval
libxml
DOM XML 函数
PHP 手册

xptr_new_context

(PHP 4 >= 4.0.4)

xptr_new_context — Create new XPath Context

说明

XPathContext xptr_new_context ( void )

Warning

本函数暂无文档，仅有参数列表。

xptr_eval
libxml
DOM XML 函数


libxml

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • libXMLError — The libXMLError class
  • libxml 函数
    • libxml_clear_errors — Clear libxml error buffer
    • libxml_get_errors — Retrieve array of errors
    • libxml_get_last_error — Retrieve last error from libxml
    • libxml_set_streams_context — Set the streams context for the next libxml document load or write
    • libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed
xptr_new_context
简介
XML操作


简介

These functions/constants are available since PHP 5.1.0 and if you have compiled one of the extensions based on libxml, like DOM, SimpleXML and XSLT.

libxml
安装/配置
libxml


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
libxml


需求

This extension requires » libxml >= 2.6.0.

安装/配置
安装
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

LIBXML_COMPACT (integer)
Activate small nodes allocation optimization. This may speed up your application without needing to change the code.

Note: Only available in Libxml >= 2.6.21

LIBXML_DTDATTR (integer)
Default DTD attributes
LIBXML_DTDLOAD (integer)
Load the external subset
LIBXML_DTDVALID (integer)
Validate with the DTD
LIBXML_NOBLANKS (integer)
Remove blank nodes
LIBXML_NOCDATA (integer)
Merge CDATA as text nodes
LIBXML_NOEMPTYTAG (integer)
Expand empty tags (e.g. <br/> to <br></br>)

Note: This option is currently just available in the DOMDocument::save and DOMDocument::saveXML functions.

LIBXML_NOENT (integer)
Substitute entities
LIBXML_NOERROR (integer)
Suppress error reports
LIBXML_NONET (integer)
Disable network access when loading documents
LIBXML_NOWARNING (integer)
Suppress warning reports
LIBXML_NOXMLDECL (integer)
Drop the XML declaration when saving a document

Note: Only available in Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)
Remove redundant namespaces declarations
LIBXML_XINCLUDE (integer)
Implement XInclude substitution
LIBXML_ERR_ERROR (integer)
A recoverable error
LIBXML_ERR_FATAL (integer)
A fatal error
LIBXML_ERR_NONE (integer)
No errors
LIBXML_ERR_WARNING (integer)
A simple warning
LIBXML_VERSION (integer)
libxml version like 20605 or 20617
LIBXML_DOTTED_VERSION (string)
libxml version like 2.6.5 or 2.6.17
资源类型
libXMLError
libxml


The libXMLError class

简介

Contains various information about errors thrown by libxml.

Class synopsis

libXMLError
libXMLError {
/* Properties */
public int $level ;
public int $code ;
public int $column ;
public string $message ;
public string $file ;
public int $line ;
}

属性

level

the severity of the error (one of the following constants: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR or LIBXML_ERR_FATAL)

code

The error's code.

column

The column where the error occurred.

Note: This property isn't entirely implemented in libxml and therefore 0 is often returned.

message

The error message, if any.

file

The filename, or empty if the XML was loaded from a string.

line

The line where the error occurred.

预定义常量
libxml 函数
libxml


libxml 函数

Table of Contents

  • libxml_clear_errors — Clear libxml error buffer
  • libxml_get_errors — Retrieve array of errors
  • libxml_get_last_error — Retrieve last error from libxml
  • libxml_set_streams_context — Set the streams context for the next libxml document load or write
  • libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed
libXMLError
libxml_clear_errors
libxml


Clear libxml error buffer

libxml 函数
libxml_get_errors
libxml 函数
PHP 手册

libxml_clear_errors

(PHP 5 >= 5.1.0)

libxml_clear_errors — Clear libxml error buffer

说明

void libxml_clear_errors ( void )

libxml_clear_errors() clears the libxml error buffer.

返回值

无返回值。

参见

  • libxml_get_errors() - Retrieve array of errors
  • libxml_get_last_error() - Retrieve last error from libxml

libxml 函数
libxml_get_errors
libxml 函数


Retrieve array of errors

libxml_clear_errors
libxml_get_last_error
libxml 函数
PHP 手册

libxml_get_errors

(PHP 5 >= 5.1.0)

libxml_get_errors — Retrieve array of errors

说明

array libxml_get_errors ( void )

Retrieve array of errors.

返回值

Returns an array with LibXMLError objects if there are any errors in the buffer, or an empty array otherwise.

范例

Example #1 A libxml_get_errors() example

This example demonstrates how to build a simple libxml error handler.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if (!$doc) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . "\n";
    $return .= str_repeat('-', $error->column) . "^\n";

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return .= "Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Fatal Error $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  File: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

上例将输出：

  <titles>PHP: Behind the Parser</title>
^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 0

--------------------------------------------

参见

  • libxml_get_last_error() - Retrieve last error from libxml
  • libxml_clear_errors() - Clear libxml error buffer

libxml_clear_errors
libxml_get_last_error
libxml 函数


Retrieve last error from libxml

libxml_get_errors
libxml_set_streams_context
libxml 函数
PHP 手册

libxml_get_last_error

(PHP 5 >= 5.1.0)

libxml_get_last_error — Retrieve last error from libxml

说明

LibXMLError libxml_get_last_error ( void )

Retrieve last error from libxml.

返回值

Returns a LibXMLError object if there is any error in the buffer, FALSE otherwise.

参见

  • libxml_get_errors() - Retrieve array of errors
  • libxml_clear_errors() - Clear libxml error buffer

libxml_get_errors
libxml_set_streams_context
libxml 函数


Set the streams context for the next libxml document load or write

libxml_get_last_error
libxml_use_internal_errors
libxml 函数
PHP 手册

libxml_set_streams_context

(PHP 5)

libxml_set_streams_context — Set the streams context for the next libxml document load or write

说明

void libxml_set_streams_context ( resource $streams_context )

Sets the streams context for the next libxml document load or write.

参数

streams_context

The stream context resource (created with stream_context_create())

返回值

无返回值。

范例

Example #1 A libxml_set_streams_context() example

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// request a file through HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

参见

  • stream_context_create() - Create a streams context

libxml_get_last_error
libxml_use_internal_errors
libxml 函数


Disable libxml errors and allow user to fetch error information as needed

libxml_set_streams_context
qtdom
libxml 函数
PHP 手册

libxml_use_internal_errors

(PHP 5 >= 5.1.0)

libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed

说明

bool libxml_use_internal_errors ([ bool $use_errors=false ] )

libxml_use_internal_errors() allows you to disable standard libxml errors and enable user error handling.

参数

use_errors

Whether to enable user error handling. Defaults to FALSE.

返回值

This function returns the previous value of use_errors .

范例

Example #1 A libxml_use_internal_errors() example

This example demonstrates the basic usage of libxml errors and the value returned by this function.

<?php

// enable user error handling
var_dump(libxml_use_internal_errors(true));

$doc = DOMDocument::load('file.xml');

if (!$doc) {
    $errors = libxml_get_errors();
    foreach ($errors as $error) {
        // handle errors here
    }

    libxml_clear_errors();
}

?>

上例将输出：

bool(false)

参见

  • libxml_clear_errors() - Clear libxml error buffer
  • libxml_get_errors() - Retrieve array of errors

libxml_set_streams_context
qtdom
libxml 函数


qtdom

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • qtdom 函数
    • qdom_error — Returns the error string from the last QDOM operation or FALSE if no errors occurred
    • qdom_tree — Creates a tree of an XML string
libxml_use_internal_errors
简介
XML操作


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

Note: 本扩展模块在 Windows 平台下不可用。

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

qtdom
安装/配置
qtdom


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
qtdom


需求

You need the Qt-library >=2.2.0

安装/配置
安装
安装/配置


安装

Configure PHP --with-qtdom to use these functions.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
qtdom 函数
qtdom


qtdom 函数

Table of Contents

  • qdom_error — Returns the error string from the last QDOM operation or FALSE if no errors occurred
  • qdom_tree — Creates a tree of an XML string
预定义常量
qdom_error
qtdom


Returns the error string from the last QDOM operation or FALSE if no errors occurred

qtdom 函数
qdom_tree
qtdom 函数
PHP 手册

qdom_error

(PHP 4 >= 4.0.5)

qdom_error — Returns the error string from the last QDOM operation or FALSE if no errors occurred

说明

string qdom_error ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

qtdom 函数
qdom_tree
qtdom 函数


Creates a tree of an XML string

qdom_error
SDO
qtdom 函数
PHP 手册

qdom_tree

(PHP 4 >= 4.0.4)

qdom_tree — Creates a tree of an XML string

说明

QDomDocument qdom_tree ( string $doc )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Warning

本函数暂无文档，仅有参数列表。

qdom_error
SDO
qtdom 函数


Service Data Objects

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Limitations
  • 范例
    • Basic Usage
    • Setting and Getting Property Values
    • Working with Sequenced Data Objects
    • Reflecting on Service Data Objects
  • SDO 函数
    • SDO_DAS_ChangeSummary::beginLogging — Begin change logging
    • SDO_DAS_ChangeSummary::endLogging — End change logging
    • SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject
    • SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary
    • SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject
    • SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject
    • SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on
    • SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type
    • SDO_DAS_DataFactory::addType — Add a new type to a model
    • SDO_DAS_DataFactory::getDataFactory — Get a data factory instance
    • SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary
    • SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property
    • SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property
    • SDO_DAS_Setting::getPropertyName — Get the property name for a changed property
    • SDO_DAS_Setting::getValue — Get the old value for the changed property
    • SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified
    • SDO_DataFactory::create — Create an SDO_DataObject
    • SDO_DataObject::clear — Clear an SDO_DataObject's properties
    • SDO_DataObject::createDataObject — Create a child SDO_DataObject
    • SDO_DataObject::getContainer — Get a data object's container
    • SDO_DataObject::getSequence — Get the sequence for a data object
    • SDO_DataObject::getTypeName — Return the name of the type for a data object.
    • SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object.
    • SDO_Exception::getCause — Get the cause of the exception.
    • SDO_List::insert — Insert into a list
    • SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property
    • SDO_Model_Property::getDefault — Get the default value for the property
    • SDO_Model_Property::getName — Get the name of the SDO_Model_Property
    • SDO_Model_Property::getType — Get the SDO_Model_Type of the property
    • SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship
    • SDO_Model_Property::isMany — Test to see if the property is many-valued
    • SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject
    • SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject.
    • SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object
    • SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject
    • SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject
    • SDO_Model_Type::getBaseType — Get the base type for this type
    • SDO_Model_Type::getName — Get the name of the type
    • SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type
    • SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type
    • SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type
    • SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type
    • SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type
    • SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type
    • SDO_Model_Type::isOpenType — Test to see if this type is an open type
    • SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type
    • SDO_Sequence::getProperty — Return the property for the specified sequence index.
    • SDO_Sequence::insert — Insert into a sequence
    • SDO_Sequence::move — Move an item to another sequence position
qdom_tree
简介
XML操作


简介

Service Data Objects (SDOs) enable PHP applications to work with data from different sources (like a database query, an XML file, and a spreadsheet) using a single interface.

Each different kind of data source requires a Data Access Service (DAS) to provide access to the data in the data source. In your PHP application, you use a DAS to create an SDO instance that represents some data in the data source. You can then set and get values in the SDO instance using the standard SDO interface. Finally, you use a DAS to write the modified data back to a data source, typically the same one.

See the list of Data Access Services for details on those currently available. In addition to the provided DASs, SDO also provides interfaces to enable others to be implemented (see the section on SDO Data Access Services Interface for more details).

This extension is derived from concepts taken from the » Service Data Objects specification. It includes a version of the » Apache Tuscany SDO for C++ project.

The Structure of a Service Data Object

A Service Data Object instance is made up of a tree of data objects. The tree is defined by containment relationships between the data objects. For example, a Company data object might consist of a number of Department data objects and therefore the Company would have a containment relationship to the Departments.

An SDO may also have non-containment references between data objects in the tree. For example, one Employee data object might reference another Employee to identify a career mentor.

As well as data objects referencing each other, they can also have primitive properties. For example, the Company data object might have a property called "name" of type string, for holding the name of the company (for example, "Acme").

Each of these properties of a data object - containment relationships, non-containment references, or primitive properties - may be many-valued or single-valued. In the above examples, Departments is many-valued and the Company name is single-valued.

In PHP, each SDO data object is represented as a PHP object. The properties of the data object can be accessed using either object syntax or associative array syntax. We'll see some examples of this later.

SDO
安装/配置
SDO


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SDO


需求

The SDO extension requires PHP 5.1.0 or higher. It also requires the libxml2 library. Normally libxml2 will already be installed, but if not, it can be downloaded from » http://www.xmlsoft.org/.

安装/配置
安装
安装/配置


安装

Note: Earlier versions of the SDO extension required a separate shared library for the XML DAS. This is now obsolete and any references to php_sdo_das_xml.dll or sdo_das_xml.so should be removed from your php.ini.

Unix systems

  1. The three SDO components - the SDO core, the XML DAS and the Relational DAS - are packaged together with Service Component Architecture (SCA) into one PECL project, SCA_SDO, so you can download SCA and all three parts of SDO with the command:

    pecl install SCA_SDO

    This command will build the SDO shared library as well as installing the PHP files that make up SCA and the SDO Relational DAS.

    If you want to use the latest beta version, then instead run:

    pecl install SCA_SDO-beta

  2. The pecl command automatically installs the SDO module into your PHP extensions directory. To enable the SDO extension you must add the following line to php.ini:

    extension=sdo.so

    For more information about building PECL packages, consult the PECL installation section of the manual.

Windows

  1. The latest SDO DLL can be downloaded from » php_sdo.dll .

    Note that currently the » pecl4win site does not provide this binary at the current release level; you can only download the latest level.

  2. The pecl command automatically installs the SDO module into your PHP extensions directory. To enable the SDO extension you must add the following line to php.ini:

    extension=php_sdo.dll

  3. The Relational DAS can be downloaded and installed with the command:

    pecl install -B sdo

    The Relational DAS is written in PHP. You may need to update your include_path in php.ini to point to the directory that contains sdo/DAS/Relational.

Building SDO on Linux

This section describes how to build the SDO core and XML DAS on Linux. You would only need to know how to do this if you wish to build a recent version that you have checked out of CVS.

  1. Change to the main extension directory: cd < wherever your sdo code is >

  2. Run phpize , which will set up the environment to compile SDO.

  3. Next, run ./configure; make; make install . Please note, you may need to login as root to install the extension.

  4. Make sure that the module is loaded by PHP, by adding extension=sdo.so to your php.ini file.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

SDO_DAS_ChangeSummary::NONE=0 (integer)
Represents a change type of 'none'.
SDO_DAS_ChangeSummary::MODIFICATION=1 (integer)
Represents a change type of 'modification'.
SDO_DAS_ChangeSummary::ADDITION=2 (integer)
Represents a change type of 'addition'.
SDO_DAS_ChangeSummary::DELETION=3 (integer)
Represents a change type of 'deletion'.
资源类型
Limitations
SDO


Limitations

Implementation Limitations

The following are limitations in the current SDO implementation:

  1. There is no support for multi-byte character sets. This will be considered, depending on community requirements, in the Unicode-enabled version of PHP. See Unicode Functions.

SDO Limitations

The following SDO 2.0 concepts are not supported in the current PHP implementation. It is not necessarily the case that these will all be added over time. Their inclusion will depend on community requirements.

  1. Bi-directional relationships.

  2. Type and property alias names.

  3. Read-only properties.

  4. The Helper classes defined in SDO 2.0 are not directly implemented. However equivalent function is provided in a more natural way for PHP. For example the function of CopyHelper::copy() is provided by applying the PHP clone keyword to a data object.

预定义常量
范例
SDO


范例

Table of Contents

  • Basic Usage
  • Setting and Getting Property Values
  • Working with Sequenced Data Objects
  • Reflecting on Service Data Objects
Limitations
Basic Usage
SDO


Basic Usage

The examples below assume an SDO created with the schema and instance information shown below, using the XML Data Access Service.

The instance document below describes a single company, called 'MegaCorp', which contains a single department, called 'Advanced Technologies'. The Advanced Technologies department contains three employees. The company employeeOfTheMonth is referencing the second employee, 'Jane Doe'.

<?xml version="1.0" encoding="UTF-8" ?>
<company xmlns="companyNS" name="MegaCorp"
  employeeOfTheMonth="E0003">
  <departments name="Advanced Technologies" location="NY" number="123">
    <employees name="John Jones" SN="E0001"/>
    <employees name="Jane Doe" SN="E0003"/>
    <employees name="Al Smith" SN="E0004" manager="true"/>
  </departments>
</company>

The root element of the schema is a company. The company contains departments, and each department contains employees. Each element has a number of attributes to store things like name, serial number, and so on. Finally, the company also has an IDREF attribute which identifies one of the employees as the 'employeeOfTheMonth'.

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  xmlns:sdoxml="commonj.sdo/xml"
  xmlns:company="companyNS"
  targetNamespace="companyNS">
  <xsd:element name="company" type="company:CompanyType"/>
  <xsd:complexType name="CompanyType">
    <xsd:sequence>
      <xsd:element name="departments" type="company:DepartmentType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="employeeOfTheMonth" type="xsd:IDREF"
      sdoxml:propertyType="company:EmployeeType"/>
  </xsd:complexType>
  <xsd:complexType name="DepartmentType">
    <xsd:sequence>
      <xsd:element name="employees" type="company:EmployeeType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="location" type="xsd:string"/>
    <xsd:attribute name="number" type="xsd:int"/>
  </xsd:complexType>
  <xsd:complexType name="EmployeeType">
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="SN" type="xsd:ID"/>
    <xsd:attribute name="manager" type="xsd:boolean"/>
  </xsd:complexType>
</xsd:schema>

The XML Data Access Service maps the schema to an SDO. Attributes such as "name" become primitive properties, the sequence of employees becomes a many-valued containment relationship, and so on. Note that the containment relationships are expressed as one complex type within another, whereas non-containment references are expressed in terms of ID and IDREF, with a special sdoxml:propertyType attribute specifying the type of the non-containment reference.

范例
Setting and Getting Property Values
范例


Setting and Getting Property Values

The following examples assume $company is the root of a tree of data objects created from the schema and instance document shown above.

Example #1 Access via property name

Data object properties can be accessed using the object property access syntax. The following sets the company name to 'Acme'.

<?php
$company->name = 'Acme';
?>

Example #2 Access via property name as array index

We can also access properties using associative array syntax. The simplest form of this uses the property name as the array index. For example, the following sets the company name and gets the employeeOfTheMonth.

<?php
$company['name'] = 'UltraCorp';
$eotm = $company['employeeOfTheMonth'];
?>

Example #3 Data Object iteration

We can iterate over the properties of a data object using foreach. The following iterates over the properties of the employee of the month.

<?php
  $eotm = $company->employeeOfTheMonth;
  foreach ($eotm as $name => $value) {
      echo "$name: $value\n";
  }
?>

which will output:

name: Jane Doe
SN: E0003

The 'manager' property is not output, because it has not been set.

Example #4 Access many-valued property by name

Many-valued data object properties can also be accessed using the object property name syntax. The following gets the list of departments.

<?php
$departments = $company->departments;
?>

Example #5 Many-valued element access

We can access individual elements of many-valued properties using array syntax. The following accesses the first department in the company.

<?php
$ad_tech_dept = $company->departments[0];
?>

Example #6 Many-valued property iteration

Many-valued properties can also be iterated over using foreach. The following iterates over the company's departments.

<?php
  foreach ($company->departments as $department) {
    // ...
  }
?>

Each iteration will assign the next department in the list to the variable $department.

Example #7 Chained property access

We can chain property references on a single line. The following sets and gets the name of the first department.

<?php
  $company->departments[0]->name = 'Emerging Technologies';
  $dept_name = $company->departments[0]->name;
?>

Using the associative array syntax, this is equivalent to

<?php
  $company['departments'][0]['name'] = 'Emerging Technologies';
  $dept_name = $company['departments'][0]['name'];
?>

In either case, the dept_name variable is set to 'Emerging Technologies'.

Example #8 XPath navigation

The associative array index can be an XPath-like expression. Valid expressions are defined by an augmented sub-set of XPath.

Two forms of indexing into many-valued properties are supported. The first is the standard XPath array syntax with the indexing starting at one, the second is an SDO extension to XPath with an index starting at zero. The standard syntax is:

<?php
  $jane_doe = $company["departments[1]/employees[2]"];
?>

and the SDO XPath extension syntax is:

<?php
  $jane_doe = $company["departments.0/employees.1"];
?>

Both these examples get the second employee from the first department.

Example #9 XPath querying

We can use XPath to query and identify parts of a data object based on instance data. The following retrieves the manager from the 'Advanced Technologies' department.

<?php
 $ad_tech_mgr =
  $company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

Example #10 Creating child data objects

A data object can be a factory for its child data objects. A child data object is automatically part of the data graph. The following add a new employee to the 'Advanced Technologies' department.

<?php
  $ad_tech_dept = $company["departments[name='Advanced Technologies']"];
  $new_hire = $ad_tech_dept->createDataObject('employees');
  $new_hire->name = 'John Johnson';
  $new_hire->SN = 'E0005';
  $new_hire->manager = false;
?>

Example #11 Unset a primitive property

We can use the isset() and unset() functions to test and remove items from the data object.

The following clears the name of the first department.

<?php
  unset($company->departments[0]->name);
?>

Example #12 Unset a data object

unset can also be used to remove a data object from the tree. The following example shows John Jones leaving the company.

<?php
  unset($company->departments[0]->employees[0]);
?>

Example #13 Unset a referenced data object

The following removes the 'employeeOfTheMonth' from the company. If this were a containment relationship then the employee would be removed from the company (probably not a good idea to sack your best employee each month!), but since this is a non-containment reference, the employee being referenced will remain in the department in the company, but will no longer be accessible via the employeeOfTheMonth property.

<?php
  if (isset($company->employeeOfTheMonth)) {
    unset($company->employeeOfTheMonth);
  }
?>

Example #14 Access via property index

Data object properties can be accessed via their property index using array syntax. The property index is the position at which the property's definition appears in the model (in this case the xml schema). We can see from the schema listing above that the company name attribute is the second company property (the SDO interface makes no distinction between XML attributes and elements). The following sets the company name to 'Acme', with the same result as Access via property name

<?php
  $company[1] = 'Acme';
?>

Using the index directly in this way is likely to be fragile. Normally the property name syntax should be preferred, but the property index may be required in special cases.

Basic Usage
Working with Sequenced Data Objects
范例


Working with Sequenced Data Objects

Sequenced data objects are SDOs which can track property ordering across the properties of a data object. They can also contain unstructured text elements (text element which do not belong to any of the SDO's properties). Sequenced data objects are useful for working with XML documents which allow unstructured text (i.e. mixed=true) or if the elements can be interleaved (

<A/><B/><A/>
). This can occur for example when the schema defines maxOccurs>1 on a element which is a complexType with a choice order indicator.

The examples below assume an SDO created with the following schema and instance information, using the XML Data Access Service.

The schema below describes the format of a letter. The letter can optionally contain three properties; date, firstName, and lastName. The schema states mixed="true" which means that unstructured text can be interspersed between the three properties.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

The following is an instance letter document. It contains the three letter properties; date, firstName and lastName, and has unstructured text elements for the address and letter body.

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

When loaded, the letter data object will have the sequence and property indices shown in the table below:

Sequence Index | Property Index:Name | Value
0 | 0:date | March 1, 2005
1 | - | Mutual of Omaha
2 | - | Wild Kingdom, USA
3 | - | Dear
4 | 1:firstName | Casy
5 | 2:lastName | Crocodile
6 | - | Please buy more shark repellent.
7 | - | Your premium is past due.

To ensure sequence indices are maintained, sequenced data objects should be manipulated through the SDO_Sequence interface. This allows the data object's instance data to be manipulated in terms of the sequence index as opposed to the property index (shown in the table above). The following examples assume the letter instance has been loaded into a data object referenced by the variable $letter.

Example #1 Getting the SDO_Sequence interface

We obtain a data object's sequence using the getSequence() method. The follow gets the sequence for the letter data object.

<?php
  $letter_seq = $letter->getSequence();
?>

All subsequent examples assume that the $letter_seq variable has been assigned the sequence for the letter data object.

Example #2 Get/set sequence values

We can get and set individual values (including unstructured text) using the sequence index. The following sets the firstName to 'Snappy' and gets the last sequence values (the unstructured text, 'Your premium is past due.').

<?php
  $letter_seq[4] = 'Snappy';
  $text = $letter_seq[count($letter_seq) - 1];
?>

Example #3 Sequence iteration

We can iterate through the individual sequence values using foreach. The following runs through the individual values in sequence order.

<?php
foreach ($letter->getSequence() as $value) {
    // ...
}
?>

Example #4 Sequence versus Data Object

Setting values through the data object interface may result in the value not being part of the sequence. A value set through the data object will only be accessible through the sequence if the property was already part of the sequence. The following example sets the lastName through the data object and gets it through the sequence. This is fine because lastName already exists in the sequence. If it had not previously been set, then lastName would be set to 'Smith', but would not be part of the sequence.

<?php
  $letter[2] = 'Smith';
  $last_name = $letter_seq[5];
?>

Example #5 Adding to a sequence

We can add new values to a sequence using the SDO_Sequence::insert() method. The following examples assume that the 'firstName' and 'lastName' properties are initially unset.

<?php
  // Append a firstName value to the sequence
  // value: 'Smith'
  // sequence index: NULL (append)
  // propertyIdentifier: 1 (firtName property index)
  $letter_seq->insert('Smith', NULL, 1);

  // Append a lastName value to the sequence
  // value: 'Jones'
  // sequence index: NULL (append)
  // propertyIdentifier: 'lastName' (lastName property name)
  $letter_seq->insert('Jones', NULL, 'lastName');

  // Append unstructured text
  // value: 'Cancel Subscription.'
  // sequence index: absent (append)
  // propertyIdentifier: absent (unstructured text)
  $letter_seq->insert('Cancel Subscription.');

  // Insert new unstructured text.  Subsequent sequence values
  // are shifted up.
  // value: 'Care of:'
  // sequence index: 1 (insert as second element)
  // propertyIdentifier: absent (unstructured text)
  $letter_seq->insert('Care of:', 1);
?>

Example #6 Removing from a sequence

We can use the isset() and unset() functions to test and remove items from the sequence (Note: unset() currently leaves the values in the data object, but this behaviour is likely to change to also remove the data from the data object). A sequence behaves like a contiguous list; therefore, removing items from the middle will shift entries at higher indices down. The following example tests to see if the first sequence element is set and unsets it if is.

<?php
  if (isset($letter_seq[0])) {
    unset($letter_seq[0]);
  }
?>

Setting and Getting Property Values
Reflecting on Service Data Objects
范例


Reflecting on Service Data Objects

SDOs have a knowledge of the structure they have been created to represent (the model). For example, a Company SDO created using the Company XML schema above would only be permitted to contain DepartmentType data objects which in turn could only contain EmployeeType data objects.

Sometimes it is useful to be able to access this model information at runtime. For example, this could be used to automatically generate a user interface for populating a data object. The model information is accessed using reflection.

Example #1 Reflecting on a Data Object

The following example shows how we can reflect on an empty Employee data object.

<?php
  // Create the employee data object (e.g. from an XML Data Access Service)
  $employee = ...;
  $reflection = new SDO_Model_ReflectionDataObject($employee);
  print($reflection);
?>

上例将输出：

object(SDO_Model_ReflectionDataObject)#4 { - ROOT OBJECT - Type {
companyNS:EmployeeType[3] { commonj.sdo:String $name;
commonj.sdo:String $SN; commonj.sdo:Boolean $manager; } }

Using print on the SDO_Model_ReflectionDataObject writes out the data object's model. We can see from the output how the type companyNS:EmployeeType has three properties and we can see the names of the properties along with their types. Note, the primitive types are listed as SDO types (e.g. commonj.sdo namespace, String type). It is worth noting that this is the SDO model and when these are surfaced to an application they can be treated as the PHP equivalent types (e.g. string and boolean).

Example #2 Accessing the type information

We can query the type information of a data object using reflection. The following example checks the type corresponds to a data object rather than a primitive and then iterates through the properties of the type, writing out the name of each property ($type and $property are SDO_Model_Type and SDO_Model_Property objects, respectively).

<?php
    // Create the employee data object (e.g. from an XML Data Access Service)
    $employee = ...;
    $reflection = new SDO_Model_ReflectionDataObject($employee);
    $type = $reflection->getType();
    if (! $type->isDataType()) {
        foreach ($type->getProperties() as $property) {
            print $property->getName() . "\n";
        }
    }
?>

上例将输出：

name
SN
manager

Working with Sequenced Data Objects
SDO 函数
范例


SDO 函数

Data Access Services

The table below lists the currently provided SDO Data Access Services:

DAS Name | Description
SDO_DAS_XML | An XML Data Access Service supporting reading/writing SDOs as XML documents.
SDO_DAS_Relational | A PDO-based Data Access Service supporting reading/writing SDO to relational databases. Implements an optimistic concurrency policy for updates.

预定义类

SDO consists of three sets of interfaces. The first set covers those interfaces for use by typical SDO applications. These are identified by the package prefix 'SDO_'. The second set is those used to reflect on, and work with, the model of a data object. These are identified by the package prefix 'SDO_Model_'. Finally, the third set are those use by Data Access Service implementations and are identified by the package prefix 'SDO_DAS_'. The majority of SDO users will not need to use or understand the 'SDO_Model_' and 'SDO_DAS_' interfaces.

SDO Application Programmer Interface

SDO_DataObject

The main interface through which data objects are manipulated. In addition to the methods below, SDO_DataObject extends the ArrayAccess, SDO_PropertyAccess (defines __get() / __set() methods for property access overloading), Iterator, and Countable interfaces.

方法

  • getSequence - get the sequence for the data object

  • createDataObject - create a child data object

  • clear - unset the properties of a data object

  • getContainer - get the container (also known as 'parent') of this data object

  • getTypeName - get the name of the type for this data object

  • getTypeNamespaceURI - get the namespace URI of the type for this data object

SDO_Sequence

The interface through which sequenced data objects can be accessed to preserve ordering across a data object's properties and to allow unstructured text. SDO_Sequence preserves contiguous indices and therefore inserting or removing elements may shift other elements up or down. In addition to the methods below, SDO_Sequence extends the ArrayAccess, Iterator and Countable interface.

方法

  • getProperty - get the property for a given sequence index

  • move - move an element from one property index to another

  • insert - insert a new value into the sequence

SDO_List

The interface through which many-valued properties are manipulated. In addition to the method defined below, SDO_List extends ArrayAccess, Iterator and Countable. SDO_List preserves contiguous indices and therefore inserting or removing elements may shift other elements up or down.

方法

  • insert - insert a new value into the list

SDO_DataFactory

The interface through which data objects can be created. A Data Access Service is responsible for populating the model (i.e. configuring the data factory with the type and structure information for the data objects it can create.) for the factory and can then optionally return an instance of, or implement, the SDO_DataFactory interface.

方法

  • create - create a new data object

SDO_Exception

An SDO_Exception is thrown when the caller's request cannot be completed. The subclasses of SDO_Exception are:

  • SDO_PropertyNotSetException - the property specified exists but has not been set or does not have a default value

  • SDO_PropertyNotFoundException - the property specified is not part of the data object's type

  • SDO_TypeNotFoundException - the specified namespace URI or type name is unknown

  • SDO_InvalidConversionException - conversion between the types of the assignment is not possible

  • SDO_IndexOutOfBoundsException - the numeric index into a data object, sequence or list is not in the valid range

  • SDO_UnsupportedOperationException - the request cannot be completed because it is not allowed, for example an attempt to set a read-only property.

方法

One method is added to those inherited from the built in Exception class:

  • getCause - get the cause of this SDO_Exception

SDO Reflection Application Programmer Interfaces

SDO_Model_ReflectionDataObject

The main interface used to reflect on a data object instance to obtain its model type and property information. It is designed to follow the reflection pattern introduced in PHP 5.

构造函数

  • __construct - construct a new SDO_Model_ReflectionDataObject.

方法

  • export - get a string describing the data object.

  • getType - get the SDO_Model_Type for the data object.

  • getInstanceProperties - get the instance properties of the data object.

  • getContainmentProperty - get the property which defines the containment relationship to the data object.

SDO_Model_Type

The interface through which a data object's type information can be retrieved. This interface can be used to find out the type name and namespace URI of the type, whether the type allow open content, and so on.

方法

  • getName - get the name of the type.

  • getNamespaceURI - get the namespace URI of the type.

  • isInstance - test for a data object being an instance of the type.

  • getProperties - get the properties of the type.

  • getProperty - get a property of the type.

  • isDataType - test to see if this type is a primitive scalar type.

  • isSequencedType - test to see if this is a sequenced type.

  • isOpenType - test to see if this is an open type.

  • isAbstractType - test to see if this is an abstract type.

  • getBaseType - get the base type of this type (if one exists).

SDO_Model_Property

The interface through which a data object's property information can be retrieved. This interface can be used to find out the type of a property, whether a property has a default value, whether the property is contained or reference by its parent, its cardinality, and so on.

方法

  • getName - get the name of the property.

  • getType - get the type of the property.

  • isMany - test to see if the property is many-valued.

  • isContainment - test to see if the property describes a containment relationship.

  • getContainingType - get the type which contains this property.

  • getDefault - get the default value for a property.

SDO Data Access Service Developer Interfaces

SDO_DAS_DataObject

The interface through which a Data Access Service can access a data object's SDO_DAS_ChangeSummary. The change summary is used by the Data Access Service to check for conflicts when applying changes back to a data source.

方法

  • getChangeSummary - get the change summary for a data object

SDO_DAS_ChangeSummary

The interface through which the change history of a data object is accessed. The change summary holds information for any modifications on a data object which occurred since logging was activated. In the case of deletions and modifications, the old values are also held in the change summary.

If logging is no longer active then the change summary only holds changes made up to the point when logging was deactivated. Reactivating logging clears the change summary. This is useful when a set of changes have been written out by a DAS and the data object is to be reused.

方法

  • beginLogging - begin logging changes made to a data object

  • endLogging - end logging changes made to a data object

  • isLogging - test to see if change logging is on

  • getChangedDataObjects - get a list of the data objects which have been changed

  • getChangeType - get the type of change which has been made to a data object

  • getOldValues - get a list of old values for a data object

  • getOldContainer - get the old container data object for a deleted data object

SDO_DAS_Setting

The interface through which the old value for a property is accessed. A list of settings is returned by the change summary method getOldValues() .

方法

  • getPropertyIndex - get the property index for the changed property

  • getPropertyName - get the property name for the changed property

  • getValue - get the old value for the changed property

  • getListIndex - get the list index for the old value if it was part of a many-valued property

  • isSet - test to see if the property was set prior to being modified

SDO_DAS_DataFactory

The interface for constructing the model for an SDO_DataObject. The SDO_DAS_DataFactory is an abstract class providing a static method which returns a concrete data factory implementation. The implementation is used by Data Access Services to create an SDO model from their model. For example, a Relational Data Access Service might create and populate an SDO_DAS_DataFactory model based on a schema for a relational database.

方法

  • getDataFactory - static methods for getting a concrete data factory instance

  • addType - add a new type to the SDO model

  • addPropertyToType - add a new property to a type definition in the SDO model

Table of Contents

  • SDO_DAS_ChangeSummary::beginLogging — Begin change logging
  • SDO_DAS_ChangeSummary::endLogging — End change logging
  • SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject
  • SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary
  • SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject
  • SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject
  • SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on
  • SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type
  • SDO_DAS_DataFactory::addType — Add a new type to a model
  • SDO_DAS_DataFactory::getDataFactory — Get a data factory instance
  • SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary
  • SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property
  • SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property
  • SDO_DAS_Setting::getPropertyName — Get the property name for a changed property
  • SDO_DAS_Setting::getValue — Get the old value for the changed property
  • SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified
  • SDO_DataFactory::create — Create an SDO_DataObject
  • SDO_DataObject::clear — Clear an SDO_DataObject's properties
  • SDO_DataObject::createDataObject — Create a child SDO_DataObject
  • SDO_DataObject::getContainer — Get a data object's container
  • SDO_DataObject::getSequence — Get the sequence for a data object
  • SDO_DataObject::getTypeName — Return the name of the type for a data object.
  • SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object.
  • SDO_Exception::getCause — Get the cause of the exception.
  • SDO_List::insert — Insert into a list
  • SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property
  • SDO_Model_Property::getDefault — Get the default value for the property
  • SDO_Model_Property::getName — Get the name of the SDO_Model_Property
  • SDO_Model_Property::getType — Get the SDO_Model_Type of the property
  • SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship
  • SDO_Model_Property::isMany — Test to see if the property is many-valued
  • SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject
  • SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject.
  • SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object
  • SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject
  • SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject
  • SDO_Model_Type::getBaseType — Get the base type for this type
  • SDO_Model_Type::getName — Get the name of the type
  • SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type
  • SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type
  • SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type
  • SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type
  • SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type
  • SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type
  • SDO_Model_Type::isOpenType — Test to see if this type is an open type
  • SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type
  • SDO_Sequence::getProperty — Return the property for the specified sequence index.
  • SDO_Sequence::insert — Insert into a sequence
  • SDO_Sequence::move — Move an item to another sequence position
Reflecting on Service Data Objects
SDO_DAS_ChangeSummary::beginLogging
SDO


Begin change logging

SDO 函数
SDO_DAS_ChangeSummary::endLogging
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::beginLogging

(^)

SDO_DAS_ChangeSummary::beginLogging — Begin change logging

说明

void SDO_DAS_ChangeSummary::beginLogging ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Begin logging changes made to the SDO_DataObject.

参数

None.

返回值

None.

SDO 函数
SDO_DAS_ChangeSummary::endLogging
SDO 函数


End change logging

SDO_DAS_ChangeSummary::beginLogging
SDO_DAS_ChangeSummary::getChangeType
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::endLogging

(^)

SDO_DAS_ChangeSummary::endLogging — End change logging

说明

void SDO_DAS_ChangeSummary::endLogging ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

End logging changes made to an SDO_DataObject.

参数

None.

返回值

None.

SDO_DAS_ChangeSummary::beginLogging
SDO_DAS_ChangeSummary::getChangeType
SDO 函数


Get the type of change made to an SDO_DataObject

SDO_DAS_ChangeSummary::endLogging
SDO_DAS_ChangeSummary::getChangedDataObjects
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::getChangeType

(^)

SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject

说明

int SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject $dataObject )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the type of change which has been made to the supplied SDO_DataObject.

参数

dataObject

The SDO_DataObject which has been changed.

返回值

The type of change which has been made. The change type is expressed as an enumeration and will be one of the following four values:

  • SDO_DAS_ChangeSummary::NONE

  • SDO_DAS_ChangeSummary::MODIFICATION

  • SDO_DAS_ChangeSummary::ADDITION

  • SDO_DAS_ChangeSummary::DELETION

SDO_DAS_ChangeSummary::endLogging
SDO_DAS_ChangeSummary::getChangedDataObjects
SDO 函数


Get the changed data objects from a change summary

SDO_DAS_ChangeSummary::getChangeType
SDO_DAS_ChangeSummary::getOldContainer
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::getChangedDataObjects

(^)

SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary

说明

SDO_List SDO_DAS_ChangeSummary::getChangedDataObjects ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get an SDO_List of the SDO_DataObjects which have been changed. These data objects can then be used to identify the types of change made to each, along with the old values.

参数

None.

返回值

Returns an SDO_List of SDO_DataObjects.

SDO_DAS_ChangeSummary::getChangeType
SDO_DAS_ChangeSummary::getOldContainer
SDO 函数


Get the old container for a deleted SDO_DataObject

SDO_DAS_ChangeSummary::getChangedDataObjects
SDO_DAS_ChangeSummary::getOldValues
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::getOldContainer

(^)

SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject

说明

SDO_DataObject SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject $data_object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the old container (SDO_DataObject) for a deleted SDO_DataObject.

参数

data_object

The SDO_DataObject which has been deleted and whose container we wish to identify.

返回值

The old containing data object of the deleted SDO_DataObject.

SDO_DAS_ChangeSummary::getChangedDataObjects
SDO_DAS_ChangeSummary::getOldValues
SDO 函数


Get the old values for a given changed SDO_DataObject

SDO_DAS_ChangeSummary::getOldContainer
SDO_DAS_ChangeSummary::isLogging
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::getOldValues

(^)

SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject

说明

SDO_List SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject $data_object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get a list of the old values for a given changed SDO_DataObject. Returns a list of SDO_DAS_Settings describing the old values for the changed properties of the SDO_DataObject.

参数

data_object

The data object which has been changed.

返回值

A list of SDO_DAS_Settings describing the old values for the changed properties of the SDO_DataObject. If the change type is SDO_DAS_ChangeSummary::ADDITION, this list is empty.

SDO_DAS_ChangeSummary::getOldContainer
SDO_DAS_ChangeSummary::isLogging
SDO 函数


Test to see whether change logging is switched on

SDO_DAS_ChangeSummary::getOldValues
SDO_DAS_DataFactory::addPropertyToType
SDO 函数
PHP 手册

SDO_DAS_ChangeSummary::isLogging

(^)

SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on

说明

bool SDO_DAS_ChangeSummary::isLogging ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see whether change logging is switched on.

参数

None.

返回值

Returns TRUE if change logging is on, otherwise returns FALSE.

SDO_DAS_ChangeSummary::getOldValues
SDO_DAS_DataFactory::addPropertyToType
SDO 函数


Adds a property to a type

SDO_DAS_ChangeSummary::isLogging
SDO_DAS_DataFactory::addType
SDO 函数
PHP 手册

SDO_DAS_DataFactory::addPropertyToType

(^)

SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type

说明

void SDO_DAS_DataFactory::addPropertyToType ( string $parent_type_namespace_uri , string $parent_type_name , string $property_name , string $type_namespace_uri , string $type_name [, array $options ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Adds a property to a type. The type must already be known to the SDO_DAS_DataFactory (i.e. have been added using addType()). The property becomes a property of the type. This is how the graph model for the structure of an SDO_DataObject is built.

参数

parent_type_namespace_uri

The namespace URI for the parent type.

parent_type_name

The type name for the parent type.

property_name

The name by which the property will be known in the parent type.

type_namespace_uri

The namespace URI for the type of the property.

type_name

The type name for the type of the property

options

This array holds one or more key=>value pairs to set attribute values for the property. The optional keywords are:

many

A flag to say whether the property is many-valued. A value of 'true' adds the property as a many-valued property (default is 'false').

readOnly

A flag to say whether the property is read-only. A value of 'true' means the property value cannot be modified through the SDO application APIs (default is 'false').

containment

A flag to say whether the property is contained by the parent. A value of 'true' means the property is contained by the parent. A value of 'false' results in a non-containment reference (default is 'true'). This flag is only interpreted when adding properties which are data object types, otherwise it is ignored.

default

A default value for the property. Omitting this key means that the property does not have a default value. A property can only have a default value if it is a single-valued data type (primitive).

返回值

None.

更新日志

版本 | 说明
0.5.2 | Optional parameters many, readOnly, and containment deprecated in favour of the options array.

范例

Example #1 A SDO_DAS_DataFactory::addPropertyToType() example

The following adds an 'addressline' property to a Person type. The person type is identified by its namespace, 'PersonNS', and type name, 'PersonType'. The type of the 'addressline' property is a many-valued SDO data type (primitive) with namespace 'commonj.sdo' and type name 'String'.

<?php
  $df->addPropertyToType('PersonNS', 'PersonType',
    'addressline', 'commonj.sdo', 'String', array('many'=>true));
?>

SDO_DAS_ChangeSummary::isLogging
SDO_DAS_DataFactory::addType
SDO 函数


Add a new type to a model

SDO_DAS_DataFactory::addPropertyToType
SDO_DAS_DataFactory::getDataFactory
SDO 函数
PHP 手册

SDO_DAS_DataFactory::addType

(^)

SDO_DAS_DataFactory::addType — Add a new type to a model

说明

void SDO_DAS_DataFactory::addType ( string $type_namespace_uri , string $type_name [, array $options ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Add a new type to the SDO_DAS_DataFactory, defined by its namespace and type name. The type becomes part of the model of data objects that the data factory can create.

参数

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

options

This array holds one or more key=>value pairs to set attribute values for the type. The optional keywords are:

open

A flag to say whether the type is open. An SDO_DataObject whose type is open can have properties added to them which are not described by the type. This capability is used to support working with XML documents whose schema support open content such as that described by an <xsd:any> element. The default value is 'false'.

sequenced

A flag to say whether the type is sequenced. Sequenced types can have the ordering across properties preserved and can contain unstructured text. The default value is 'false'. For more information on sequenced types see the section on Working with Sequenced Data Objects.

basetype

If specified, an array of namespace URI and type name strings for the type from which this type is derived. An example of the use of base types is when a type derived in an XML schema inherits from another type by using <extension base="...">.

返回值

None.

范例

Example #1 A SDO_DAS_DataFactory::addType() example

The following adds a new data object type of 'CompanyType' where that type belongs to the namespace 'CompanyNS'.

<?php
  $df->addType('CompanyNS', 'CompanyType');
?>

SDO_DAS_DataFactory::addPropertyToType
SDO_DAS_DataFactory::getDataFactory
SDO 函数


Get a data factory instance

SDO_DAS_DataFactory::addType
SDO_DAS_DataObject::getChangeSummary
SDO 函数
PHP 手册

SDO_DAS_DataFactory::getDataFactory

(^)

SDO_DAS_DataFactory::getDataFactory — Get a data factory instance

说明

SDO_DAS_DataFactory SDO_DAS_DataFactory::getDataFactory ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Static method to get an instance of an SDO_DAS_DataFactory. This instance is initially only configured with the basic SDO types. A Data Access Service is responsible for populating the data factory model and then allowing PHP applications to create SDOs based on the model through the SDO_DataFactory interface. PHP applications should always obtain a data factory from a configured Data Access Service, not through this interface.

参数

None.

返回值

Returns an SDO_DAS_DataFactory.

SDO_DAS_DataFactory::addType
SDO_DAS_DataObject::getChangeSummary
SDO 函数


Get a data object's change summary

SDO_DAS_DataFactory::getDataFactory
SDO_DAS_Setting::getListIndex
SDO 函数
PHP 手册

SDO_DAS_DataObject::getChangeSummary

(^)

SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary

说明

SDO_DAS_ChangeSummary SDO_DAS_DataObject::getChangeSummary ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the SDO_DAS_ChangeSummary for an SDO_DAS_DataObject, or NULL if it does not have one.

参数

None.

返回值

Returns the SDO_DAS_ChangeSummary for an SDO_DAS_DataObject, or NULL if it does not have one.

SDO_DAS_DataFactory::getDataFactory
SDO_DAS_Setting::getListIndex
SDO 函数


Get the list index for a changed many-valued property

SDO_DAS_DataObject::getChangeSummary
SDO_DAS_Setting::getPropertyIndex
SDO 函数
PHP 手册

SDO_DAS_Setting::getListIndex

(^)

SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property

说明

int SDO_DAS_Setting::getListIndex ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the list index for a modification made to an element of a many-valued property. For example, if we modified the third element of a many-valued property we could obtain an SDO_DAS_Setting from the change summary corresponding to that modification. A call to getListIndex() on that setting would return the value 2 (lists are indexed from zero).

参数

None.

返回值

The list index for the element of the many-valued property which has been changed.

SDO_DAS_DataObject::getChangeSummary
SDO_DAS_Setting::getPropertyIndex
SDO 函数


Get the property index for a changed property

SDO_DAS_Setting::getListIndex
SDO_DAS_Setting::getPropertyName
SDO 函数
PHP 手册

SDO_DAS_Setting::getPropertyIndex

(^)

SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property

说明

int SDO_DAS_Setting::getPropertyIndex ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the property index for the changed property. This index identifies the property which was modified in data object.

参数

None.

返回值

The property index for a changed property.

SDO_DAS_Setting::getListIndex
SDO_DAS_Setting::getPropertyName
SDO 函数


Get the property name for a changed property

SDO_DAS_Setting::getPropertyIndex
SDO_DAS_Setting::getValue
SDO 函数
PHP 手册

SDO_DAS_Setting::getPropertyName

(^)

SDO_DAS_Setting::getPropertyName — Get the property name for a changed property

说明

string SDO_DAS_Setting::getPropertyName ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the property name for the changed property. This name identifies the property which was modified in data object.

参数

None.

返回值

The property name for a changed property.

SDO_DAS_Setting::getPropertyIndex
SDO_DAS_Setting::getValue
SDO 函数


Get the old value for the changed property

SDO_DAS_Setting::getPropertyName
SDO_DAS_Setting::isSet
SDO 函数
PHP 手册

SDO_DAS_Setting::getValue

(^)

SDO_DAS_Setting::getValue — Get the old value for the changed property

说明

mixed SDO_DAS_Setting::getValue ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the old value for the changed property. This can be used by a Data Access Service when writing updates to a data source. The DAS uses the old value to detect conflicts by comparing it with the current value in the data source. If they do not match, then the data source has been updated since the data object was originally populated, and therefore writing any new updates risks compromising the integrity of the data.

参数

None.

返回值

Returns the old value of the changed property.

SDO_DAS_Setting::getPropertyName
SDO_DAS_Setting::isSet
SDO 函数


Test whether a property was set prior to being modified

SDO_DAS_Setting::getValue
SDO_DataFactory::create
SDO 函数
PHP 手册

SDO_DAS_Setting::isSet

(^)

SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified

说明

bool SDO_DAS_Setting::isSet ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test whether a property was set prior to being modified. If it was set prior to being modified then the SDO_DAS_Setting will also contain the old value.

参数

None.

返回值

Returns TRUE if the property was set prior to being modified, otherwise returns FALSE.

SDO_DAS_Setting::getValue
SDO_DataFactory::create
SDO 函数


Create an SDO_DataObject

SDO_DAS_Setting::isSet
SDO_DataObject::clear
SDO 函数
PHP 手册

SDO_DataFactory::create

(^)

SDO_DataFactory::create — Create an SDO_DataObject

说明

void SDO_DataFactory::create ( string $type_namespace_uri , string $type_name )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Create a new SDO_DataObject given the data object's namespace URI and type name.

参数

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

返回值

Returns the newly created SDO_DataObject.

错误／异常

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type known to this data factory.

SDO_DAS_Setting::isSet
SDO_DataObject::clear
SDO 函数


Clear an SDO_DataObject's properties

SDO_DataFactory::create
SDO_DataObject::createDataObject
SDO 函数
PHP 手册

SDO_DataObject::clear

(^)

SDO_DataObject::clear — Clear an SDO_DataObject's properties

说明

void SDO_DataObject::clear ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Clear an SDO_DataObject's properties. Read-only properties are unaffected. Subsequent calls to isset() for the data object will return FALSE.

参数

None.

返回值

No return values.

SDO_DataFactory::create
SDO_DataObject::createDataObject
SDO 函数


Create a child SDO_DataObject

SDO_DataObject::clear
SDO_DataObject::getContainer
SDO 函数
PHP 手册

SDO_DataObject::createDataObject

(^)

SDO_DataObject::createDataObject — Create a child SDO_DataObject

说明

SDO_DataObject SDO_DataObject::createDataObject ( mixed $identifier )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Create a child SDO_DataObject of the default type for the property identified. The data object is automatically inserted into the tree and a reference to it is returned.

参数

identifier

Identifies the property for the data object type to be created. Can be either a property name (string), a property index (int), or an SDO_Model_Property.

返回值

Returns the newly created SDO_DataObject.

错误／异常

SDO_PropertyNotFoundException

Thrown if the identifier does not correspond to a property of the data object.

SDO_DataObject::clear
SDO_DataObject::getContainer
SDO 函数


Get a data object's container

SDO_DataObject::createDataObject
SDO_DataObject::getSequence
SDO 函数
PHP 手册

SDO_DataObject::getContainer

(^)

SDO_DataObject::getContainer — Get a data object's container

说明

SDO_DataObject SDO_DataObject::getContainer ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the data object which contains this data object.

参数

None.

返回值

Returns the SDO_DataObject which contains this SDO_DataObject, or returns NULL if this is a root SDO_DataObject (i.e. it has no container).

SDO_DataObject::createDataObject
SDO_DataObject::getSequence
SDO 函数


Get the sequence for a data object

SDO_DataObject::getContainer
SDO_DataObject::getTypeName
SDO 函数
PHP 手册

SDO_DataObject::getSequence

(^)

SDO_DataObject::getSequence — Get the sequence for a data object

说明

SDO_Sequence SDO_DataObject::getSequence ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Return the SDO_Sequence for this SDO_DataObject. Accessing the SDO_DataObject through the SDO_Sequence interface acts on the same SDO_DataObject instance data, but preserves ordering across properties.

参数

None.

返回值

The SDO_Sequence for this SDO_DataObject, or returns NULL if the SDO_DataObject is not of a type which can have a sequence.

SDO_DataObject::getContainer
SDO_DataObject::getTypeName
SDO 函数


Return the name of the type for a data object.

SDO_DataObject::getSequence
SDO_DataObject::getTypeNamespaceURI
SDO 函数
PHP 手册

SDO_DataObject::getTypeName

(^)

SDO_DataObject::getTypeName — Return the name of the type for a data object.

说明

string SDO_DataObject::getTypeName ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Return the name of the type for a data object. A convenience method corresponding to SDO_Model_ReflectionDataObject::getType().getName().

参数

None.

返回值

The name of the type for the data object.

SDO_DataObject::getSequence
SDO_DataObject::getTypeNamespaceURI
SDO 函数


Return the namespace URI of the type for a data object.

SDO_DataObject::getTypeName
SDO_Exception::getCause
SDO 函数
PHP 手册

SDO_DataObject::getTypeNamespaceURI

(^)

SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object.

说明

string SDO_DataObject::getTypeNamespaceURI ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Return the namespace URI of the type for a data object. A convenience method corresponding to SDO_Model_ReflectionDataObject::getType().getNamespaceURI().

参数

None.

返回值

The namespace URI of the type for the data object.

SDO_DataObject::getTypeName
SDO_Exception::getCause
SDO 函数


Get the cause of the exception.

SDO_DataObject::getTypeNamespaceURI
SDO_List::insert
SDO 函数
PHP 手册

SDO_Exception::getCause

(^)

SDO_Exception::getCause — Get the cause of the exception.

说明

mixed SDO_Exception::getCause ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the cause of this exception or NULL if the cause is nonexistent or unknown. Typically the cause will be an SDO_CPPException object, which may be used to obtain additional diagnostic information.

参数

None.

返回值

Returns the cause of this exception or NULL if the cause is nonexistent or unknown.

SDO_DataObject::getTypeNamespaceURI
SDO_List::insert
SDO 函数


Insert into a list

SDO_Exception::getCause
SDO_Model_Property::getContainingType
SDO 函数
PHP 手册

SDO_List::insert

(^)

SDO_List::insert — Insert into a list

说明

void SDO_List::insert ( mixed $value [, int $index ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Insert a new element at a specified position in the list. All subsequent list items are moved up.

参数

value

The new value to be inserted. This can be either a primitive or an SDO_DataObject.

index

The position at which to insert the new element. If this argument is not specified then the new value will be appended.

返回值

None.

错误／异常

SDO_IndexOutOfBoundsException

Thrown if the list index is less than zero or greater than the size of the list.

SDO_InvalidConversionException

Thrown if the type of the new value does not match the type for the list (e.g. the type of the many-valued property that the list represents).

SDO_Exception::getCause
SDO_Model_Property::getContainingType
SDO 函数


Get the SDO_Model_Type which contains this property

SDO_List::insert
SDO_Model_Property::getDefault
SDO 函数
PHP 手册

SDO_Model_Property::getContainingType

(^)

SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property

说明

SDO_Model_Type SDO_Model_Property::getContainingType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the SDO_Model_Type which contains this property.

参数

None.

返回值

Returns the SDO_Model_Type which contains this property.

SDO_List::insert
SDO_Model_Property::getDefault
SDO 函数


Get the default value for the property

SDO_Model_Property::getContainingType
SDO_Model_Property::getName
SDO 函数
PHP 手册

SDO_Model_Property::getDefault

(^)

SDO_Model_Property::getDefault — Get the default value for the property

说明

mixed SDO_Model_Property::getDefault ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the default value for the property. Only primitive data type properties can have default values.

参数

None.

返回值

Returns the default value for the property.

SDO_Model_Property::getContainingType
SDO_Model_Property::getName
SDO 函数


Get the name of the SDO_Model_Property

SDO_Model_Property::getDefault
SDO_Model_Property::getType
SDO 函数
PHP 手册

SDO_Model_Property::getName

(^)

SDO_Model_Property::getName — Get the name of the SDO_Model_Property

说明

string SDO_Model_Property::getName ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the name of the SDO_Model_Property.

参数

None.

返回值

Returns the name of the SDO_Model_Property.

SDO_Model_Property::getDefault
SDO_Model_Property::getType
SDO 函数


Get the SDO_Model_Type of the property

SDO_Model_Property::getName
SDO_Model_Property::isContainment
SDO 函数
PHP 手册

SDO_Model_Property::getType

(^)

SDO_Model_Property::getType — Get the SDO_Model_Type of the property

说明

SDO_Model_Type SDO_Model_Property::getType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the SDO_Model_Type of the property. The SDO_Model_Type describes the type information for the property, such as its type name, namespace URI, whether it is a primitive data type, and so on.

参数

None.

返回值

Returns the SDO_Model_Type describing the property's type information.

SDO_Model_Property::getName
SDO_Model_Property::isContainment
SDO 函数


Test to see if the property defines a containment relationship

SDO_Model_Property::getType
SDO_Model_Property::isMany
SDO 函数
PHP 手册

SDO_Model_Property::isContainment

(^)

SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship

说明

bool SDO_Model_Property::isContainment ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see if the property corresponds to a containment relationship. Returns TRUE if the property defines a containment relationship, or FALSE if it is reference.

参数

None.

返回值

Returns TRUE if the property defines a containment relationship, or FALSE if it is reference.

SDO_Model_Property::getType
SDO_Model_Property::isMany
SDO 函数


Test to see if the property is many-valued

SDO_Model_Property::isContainment
SDO_Model_ReflectionDataObject::__construct
SDO 函数
PHP 手册

SDO_Model_Property::isMany

(^)

SDO_Model_Property::isMany — Test to see if the property is many-valued

说明

bool SDO_Model_Property::isMany ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see if the property is many-valued. Returns TRUE if this is a many-valued property, otherwise returns FALSE.

参数

None.

返回值

Returns TRUE if this is a many-valued property, otherwise returns FALSE.

SDO_Model_Property::isContainment
SDO_Model_ReflectionDataObject::__construct
SDO 函数


Construct an SDO_Model_ReflectionDataObject

SDO_Model_Property::isMany
SDO_Model_ReflectionDataObject::export
SDO 函数
PHP 手册

SDO_Model_ReflectionDataObject::__construct

(^)

SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject

说明

SDO_Model_ReflectionDataObject SDO_Model_ReflectionDataObject::__construct ( SDO_DataObject $data_object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Construct an SDO_Model_ReflectionDataObject to reflect on an SDO_DataObject. Reflecting on an SDO_DataObject gives access to information about its model. The model contains information such as the data object's type, and whether that type is sequenced (preserves ordering across properties) or open (each instance can have its model extended). The model also holds information about the data object's properties, any default values they may have, and so on.

参数

data_object

The SDO_DataObject being reflected upon.

返回值

None.

SDO_Model_Property::isMany
SDO_Model_ReflectionDataObject::export
SDO 函数


Get a string describing the SDO_DataObject.

SDO_Model_ReflectionDataObject::__construct
SDO_Model_ReflectionDataObject::getContainmentProperty
SDO 函数
PHP 手册

SDO_Model_ReflectionDataObject::export

(^)

SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject.

说明

mixed SDO_Model_ReflectionDataObject::export ( SDO_Model_ReflectionDataObject $rdo [, bool $return ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get a string describing the SDO_DataObject. The default behaviour is to print the output, but if TRUE is specified for return, it is returned as a string.

参数

rdo

An SDO_Model_ReflectionDataObject.

return

If TRUE, return the output as a string, otherwise print it.

返回值

Returns the output if TRUE is specified for return, otherwise NULL.

SDO_Model_ReflectionDataObject::__construct
SDO_Model_ReflectionDataObject::getContainmentProperty
SDO 函数


Get the property which defines the containment relationship to the data object

SDO_Model_ReflectionDataObject::export
SDO_Model_ReflectionDataObject::getInstanceProperties
SDO 函数
PHP 手册

SDO_Model_ReflectionDataObject::getContainmentProperty

(^)

SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object

说明

SDO_Model_Property SDO_Model_ReflectionDataObject::getContainmentProperty ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the SDO_Model_Property that contains the SDO_DataObject. This method is used to navigate up to the parent's property which contains the data object which has been reflected upon.

参数

None.

返回值

Returns the container's SDO_Model_Property which references the SDO_DataObject, or NULL if it is a root SDO_DataObject.

SDO_Model_ReflectionDataObject::export
SDO_Model_ReflectionDataObject::getInstanceProperties
SDO 函数


Get the instance properties of the SDO_DataObject

SDO_Model_ReflectionDataObject::getContainmentProperty
SDO_Model_ReflectionDataObject::getType
SDO 函数
PHP 手册

SDO_Model_ReflectionDataObject::getInstanceProperties

(^)

SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject

说明

array SDO_Model_ReflectionDataObject::getInstanceProperties ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the instance properties for the SDO_DataObject. The instance properties consist of all the properties defined on the data object's type, plus any instance properties from open content (if the data object is an open type).

参数

None.

返回值

An array of SDO_Model_Property objects.

SDO_Model_ReflectionDataObject::getContainmentProperty
SDO_Model_ReflectionDataObject::getType
SDO 函数


Get the SDO_Model_Type for the SDO_DataObject

SDO_Model_ReflectionDataObject::getInstanceProperties
SDO_Model_Type::getBaseType
SDO 函数
PHP 手册

SDO_Model_ReflectionDataObject::getType

(^)

SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject

说明

SDO_Model_Type SDO_Model_ReflectionDataObject::getType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the SDO_Model_Type for the SDO_DataObject. The SDO_Model_Type holds all the information about the data object's type, such as namespace URI, type name, whether it is a primitive data type, and so on.

参数

None.

返回值

Returns the SDO_Model_Type for the SDO_DataObject.

SDO_Model_ReflectionDataObject::getInstanceProperties
SDO_Model_Type::getBaseType
SDO 函数


Get the base type for this type

SDO_Model_ReflectionDataObject::getType
SDO_Model_Type::getName
SDO 函数
PHP 手册

SDO_Model_Type::getBaseType

(^)

SDO_Model_Type::getBaseType — Get the base type for this type

说明

SDO_Model_Type SDO_Model_Type::getBaseType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get the base type for this type. Returns the SDO_Model_Type for the base type if this type inherits from another, otherwise returns NULL. An example of when base types occur is when a type defined in XML schema inherits from another type by using

 <extension base="...">
.

参数

None.

返回值

Returns the SDO_Model_Type for the base type if this type inherits from another, otherwise returns NULL.

SDO_Model_ReflectionDataObject::getType
SDO_Model_Type::getName
SDO 函数


Get the name of the type

SDO_Model_Type::getBaseType
SDO_Model_Type::getNamespaceURI
SDO 函数
PHP 手册

SDO_Model_Type::getName

(^)

SDO_Model_Type::getName — Get the name of the type

说明

string SDO_Model_Type::getName ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the name of the type. The combination of type name and namespace URI is used to uniquely identify the type.

参数

None.

返回值

Returns the name of the type.

SDO_Model_Type::getBaseType
SDO_Model_Type::getNamespaceURI
SDO 函数


Get the namespace URI of the type

SDO_Model_Type::getName
SDO_Model_Type::getProperties
SDO 函数
PHP 手册

SDO_Model_Type::getNamespaceURI

(^)

SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type

说明

string SDO_Model_Type::getNamespaceURI ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the namespace URI of the type. The combination of namespace URI and type name is used to uniquely identify the type.

参数

None.

返回值

Returns the namespace URI of the type.

SDO_Model_Type::getName
SDO_Model_Type::getProperties
SDO 函数


Get the SDO_Model_Property objects defined for the type

SDO_Model_Type::getNamespaceURI
SDO_Model_Type::getProperty
SDO 函数
PHP 手册

SDO_Model_Type::getProperties

(^)

SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type

说明

array SDO_Model_Type::getProperties ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get an array of SDO_Model_Property objects describing the properties defined for the SDO_Model_Type. Each SDO_Model_Property holds information such as the property name, default value, and so on.

参数

None.

返回值

Returns an array of SDO_Model_Property objects.

SDO_Model_Type::getNamespaceURI
SDO_Model_Type::getProperty
SDO 函数


Get an SDO_Model_Property of the type

SDO_Model_Type::getProperties
SDO_Model_Type::isAbstractType
SDO 函数
PHP 手册

SDO_Model_Type::getProperty

(^)

SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type

说明

SDO_Model_Property SDO_Model_Type::getProperty ( mixed $identifier )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Get an SDO_Model_Property of the type, identified by its property index or property name.

参数

identifier

The property index or property name.

返回值

Returns the SDO_Model_Property.

SDO_Model_Type::getProperties
SDO_Model_Type::isAbstractType
SDO 函数


Test to see if this SDO_Model_Type is an abstract data type

SDO_Model_Type::getProperty
SDO_Model_Type::isDataType
SDO 函数
PHP 手册

SDO_Model_Type::isAbstractType

(^)

SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type

说明

bool SDO_Model_Type::isAbstractType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see if this SDO_Model_Type is an abstract data type. Returns TRUE if this type is abstract, that is, no SDO_DataObject of this type can be instantiated, though other types may inherit from it.

参数

None.

返回值

Returns TRUE if this type is an abstract data type, otherwise returns FALSE.

SDO_Model_Type::getProperty
SDO_Model_Type::isDataType
SDO 函数


Test to see if this SDO_Model_Type is a primitive data type

SDO_Model_Type::isAbstractType
SDO_Model_Type::isInstance
SDO 函数
PHP 手册

SDO_Model_Type::isDataType

(^)

SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type

说明

bool SDO_Model_Type::isDataType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see if this SDO_Model_Type is a primitive data type. Returns TRUE if this type is a primitive data type, otherwise returns FALSE.

参数

None.

返回值

Returns TRUE if this type is a primitive data type, otherwise returns FALSE.

SDO_Model_Type::isAbstractType
SDO_Model_Type::isInstance
SDO 函数


Test for an SDO_DataObject being an instance of this SDO_Model_Type

SDO_Model_Type::isDataType
SDO_Model_Type::isOpenType
SDO 函数
PHP 手册

SDO_Model_Type::isInstance

(^)

SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type

说明

bool SDO_Model_Type::isInstance ( SDO_DataObject $data_object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test for an SDO_DataObject being an instance of this SDO_Model_Type. Returns TRUE if the SDO_DataObject provided is an instance of this SDO_Model_Type, or a derived type, otherwise returns FALSE.

参数

data_object

The SDO_DataObject to be tested.

返回值

Returns TRUE if the SDO_DataObject provided is an instance of this SDO_Model_Type, or a derived type, otherwise returns FALSE.

SDO_Model_Type::isDataType
SDO_Model_Type::isOpenType
SDO 函数


Test to see if this type is an open type

SDO_Model_Type::isInstance
SDO_Model_Type::isSequencedType
SDO 函数
PHP 手册

SDO_Model_Type::isOpenType

(^)

SDO_Model_Type::isOpenType — Test to see if this type is an open type

说明

bool SDO_Model_Type::isOpenType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see if this type is open. Returns TRUE if this type is open, otherwise returns FALSE. An SDO_DataObject whose type is open can have properties added to them which are not described by the type. This capability is used to support working with XML documents whose schema support open content, such as that defined by an

 <xsd:any>
element.

参数

None.

返回值

Returns TRUE if this type is open, otherwise returns FALSE.

SDO_Model_Type::isInstance
SDO_Model_Type::isSequencedType
SDO 函数


Test to see if this is a sequenced type

SDO_Model_Type::isOpenType
SDO_Sequence::getProperty
SDO 函数
PHP 手册

SDO_Model_Type::isSequencedType

(^)

SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type

说明

bool SDO_Model_Type::isSequencedType ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Test to see if this is a sequenced type. Returns TRUE if this type is sequence, otherwise returns FALSE. Sequenced types can have the ordering across properties preserved and can contain unstructured text. For more information on sequenced types see the section on Working with Sequenced Data Objects.

参数

None.

返回值

Returns TRUE if this type is sequence, otherwise return FALSE.

SDO_Model_Type::isOpenType
SDO_Sequence::getProperty
SDO 函数


Return the property for the specified sequence index.

SDO_Model_Type::isSequencedType
SDO_Sequence::insert
SDO 函数
PHP 手册

SDO_Sequence::getProperty

(^)

SDO_Sequence::getProperty — Return the property for the specified sequence index.

说明

SDO_Model_Property SDO_Sequence::getProperty ( int $sequence_index )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Return the property for the specified sequence index.

参数

sequence_index

The position of the element in the sequence.

返回值

An SDO_Model_Property. A return value of NULL means the sequence element does not belong to a property and must therefore be unstructured text.

错误／异常

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.

SDO_Model_Type::isSequencedType
SDO_Sequence::insert
SDO 函数


Insert into a sequence

SDO_Sequence::getProperty
SDO_Sequence::move
SDO 函数
PHP 手册

SDO_Sequence::insert

(^)

SDO_Sequence::insert — Insert into a sequence

说明

void SDO_Sequence::insert ( mixed $value [, int $sequenceIndex [, mixed $propertyIdentifier ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Insert a new element at a specified position in the sequence. All subsequent sequence items are moved up.

参数

value

The new value to be inserted. This can be either a primitive or an SDO_DataObject.

sequenceIndex

The position at which to insert the new element. Default is NULL, which results in the new value being appended to the sequence.

propertyIdentifier

Either a property index, a property name, or an SDO_Model_Property, used to identify a property in the sequence's corresponding SDO_DataObject. A value of NULL signifies unstructured text.

返回值

None.

错误／异常

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.

SDO_InvalidConversionException

Thrown if the type of the new value cannot be juggled to match the type for the specified data object property.

SDO_Sequence::getProperty
SDO_Sequence::move
SDO 函数


Move an item to another sequence position

SDO_Sequence::insert
SDO-DAS-Relational
SDO 函数
PHP 手册

SDO_Sequence::move

(^)

SDO_Sequence::move — Move an item to another sequence position

说明

void SDO_Sequence::move ( int $toIndex, int $fromIndex )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Modify the position of the item in the sequence, without altering the value of the property in the SDO_DataObject.

参数

toIndex

The destination sequence index. If this index is less than zero or greater than the size of the sequence then the value is appended.

fromIndex

The source sequence index.

返回值

None.

错误／异常

SDO_IndexOutOfBoundsException

Thrown if the fromIndex sequence index is less than zero or greater than the size of the sequence.

SDO_Sequence::insert
SDO-DAS-Relational
SDO 函数


SDO Relational Data Access Service

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Creating, retrieving, updating and deleting data
    • Specifying the metadata
    • One-table examples
    • Two-table examples
    • Three-table example
  • Limitations
  • SDO-DAS-Relational 函数
    • SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database.
    • SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service
    • SDO_DAS_Relational::createRootDataObject — Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.
    • SDO_DAS_Relational::executePreparedQuery — Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.
    • SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph.
SDO_Sequence::move
简介
XML操作


简介

Warning

本扩展模块是实验性的。本模块的行为，包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

In order to use the Relational Data Access Service for Service Data Objects, you will need to understand some of the concepts behind SDO: the data graph, the data object, the disconnected way of working, the change summary, XPath and property expressions, and so on. If you are not familiar with these ideas, you might want to look first at the section on SDO. In addition, the Relational DAS makes use of the PDO extension to isolate itself from specifics of different back-end relational databases. In order to use the Relational DAS you will need to be able to create and pass a PDO database connection; for this reason you might also want to take a look at the section on PDO.

The job of the Relational DAS is to move data between the application and a relational database. In order to do this it needs to be told the mapping between the database entities - tables, columns, primary keys and foreign keys - and the elements of the SDO model - types, properties, containment relationships and so on. You specify this information as metadata when you construct the Relational DAS.

Overview of Operation

  1. The first step is to call the Relational DAS's constructor, passing the metadata that defines the mapping between database and SDO model. There are examples of this below.

  2. The next step might be to call the executeQuery() or executePreparedQuery() methods on the Relational DAS, passing either a literal SQL statement for the DAS to prepare and execute, or a prepared statement with placeholders and a list of values to be inserted. You may also need to specify a small amount of metadata about the query itself, so that the Relational DAS knows exactly what columns will be returned from the database and in what order. You will also need to pass a PDO database connection.

    The return value from executeQuery() or executePreparedQuery() is a normalised data graph containing all the data from the result set. For a query that returns data obtained from a number of tables, this graph will contain a number of data objects, linked by SDO containment relationships. There may also be SDO non-containment references within the data.

    Once the query has been executed and the data graph constructed, there is no need for either that instance of the the Relational DAS or the database connection. There are no locks held on the database. Both the Relational DAS and the PDO database connection can be garbage collected.

  3. Quite possibly the data in the data graph will go through a number of modifications. The data graph can be serialised into the PHP session and so may have a lifetime beyond just one client-server interaction. Data objects can be created and added to the graph, the data objects already in the graph can be deleted, and data objects in the graph can be modified.

  4. Finally, the changes made to the data graph can be applied back to the database using the applyChanges() method of the Relational DAS. For this, another instance of the Relational DAS must be constructed, using the same metadata, and another connection to the database obtained. The connection and the data graph are passed to applyChanges(). At this point the Relational DAS examines the change summary and generates the necessary INSERT, UPDATE and DELETE SQL statements to apply the changes. Any UPDATE and DELETE statements are qualified with the original values of the data so that should the data have changed in the database in the meantime this will be detected. Assuming no such collisions have occurred the changes will be committed to the database. The application can then continue to work with the data graph, make more changes and apply them, or can discard it.

There are other ways of working with the data in the database: it is possible to just create data objects and write them to the database without a preliminary call to executeQuery(), for example. This scenario and others are explored in the Examples section below.

SDO-DAS-Relational
安装/配置
SDO-DAS-Relational


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SDO-DAS-Relational


需求

The Relational DAS requires that the SDO extension be installed. The SDO extension requires a version of PHP 5.1, and the Relational DAS requires a recent version that contains an important fix for PDO. The most up-to-date information about required levels of PHP should be found in the changelog for the package on PECL. At the time of writing, though, the Relational DAS requires the most recent beta level of PHP 5.1, that is PHP 5.1.0.

The Relational DAS uses PDO to access the relational database, and so should run with a variety of different relational databases. At the time of writing it has been tested in the following configurations

  • MySQL 4.1.14, on Windows. The Relational DAS operates correctly with the php_pdo_mysql driver that comes with the pre-built binaries for PHP 5.1.0.

  • MySQL 4.1.13, on Linux. It is necessary to have the most up-to-date PDO driver for MySQL, which comes built in to PHP 5.1.0. It may be necessary to uninstall the usual driver that would have come from PECL using pear uninstall pdo_mysql . You will need to configure PHP with the --with-pdo-mysql option.

  • DB2 8.2 Personal Edition, on Windows. The Relational DAS operates correctly with the php_pdo_odbc driver that comes with the pre-built binaries for PHP 5.1.0.

  • DB2 8.2 Personal Developer's Edition, on Linux. The Developer's Edition is needed because it contains the include files needed when PHP is configured and built. You will need to configure PHP with the --with-pdo-odbc=ibm-db2 option.

The Relational DAS applies changes to the database within a user-delimited transaction: that is, it issues a call to PDO::beginTransaction() before beginning to apply changes, and PDO::commit() or PDO::rollback() on completion. Whichever database is chosen, the database and the PDO driver for the database must support these calls.

安装/配置
安装
安装/配置


安装

The installation instructions for all the SDO components are in the SDO install section of the SDO documentation.

In any case, the essential facts are that the Relational DAS is written in PHP and it should be placed somewhere on the PHP include_path.

Your application will of course need to include the Relational DAS with a statement like this:

<?php
require_once 'SDO/DAS/Relational.php';
?>

需求
运行时配置
安装/配置


运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

Tracing

You may be interested in seeing the SQL statements that are generated in order to apply changes back to the database. At the top of the SDO/DAS/Relational.php you will find a number of constants which control whether the process of constructing and executing the SQL statements is to be traced. Try setting DEBUG_EXECUTE_PLAN to TRUE to see the generated SQL statements.

安装
资源类型
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

The Relational DAS introduces no predefined constants.

资源类型
范例
SDO-DAS-Relational


范例

Table of Contents

  • Creating, retrieving, updating and deleting data
  • Specifying the metadata
  • One-table examples
  • Two-table examples
  • Three-table example
预定义常量
Creating, retrieving, updating and deleting data
SDO-DAS-Relational


Creating, retrieving, updating and deleting data

This section illustrates how the Relational DAS can be used to create, retrieve, update and delete data in a relational database. Many of the examples are illustrated with a three-table database that contains companies, departments within those companies, and employees that work in those departments. This example is used in a number of places within the SDO literature. See the examples section of the » Service Data Objects specification or the Examples section of the documentation for the SDO extension.

The Relational DAS is constructed with metadata that defines the relational database and how it should be mapped to SDO. The long section that follows describes this metadata and how to construct the Relational DAS. The examples that follow it all assume that this metadata is in an included php file.

The examples below and others can all be found in the Scenarios directory in the Relational DAS package.

The Relational DAS throws exceptions in the event that it finds errors in the metadata or errors when executing SQL statements against the database. For brevity the examples below all omit the use of try/catch blocks around the calls to the Relational DAS.

These examples all differ from the expected use of SDO in two important respects.

First, they show all interactions with the database completed within one script. In this respect these scenarios are not realistic but are chosen to illustrate just the use of the Relational DAS. It is expected that interactions with the database will be separated in time and the data graph serialized and deserialized into the PHP session one or more times as the application interacts with an end user.

Second, all queries executed against the database use hard-coded queries with no variables substituted. In this case it is safe to use the simple executeQuery() call, and this is what the examples illustrate. In practice, though, it is unlikely that the SQL statement is known entirely ahead of time. In order to allow variables to be safely substituted into the SQL queries, without running the risk of injecting SQL with unknown effects, it is safer to use the executePreparedQuery() which takes a prepared SQL statement containing placeholders and a list of values to be substituted.

范例
Specifying the metadata
范例


Specifying the metadata

This first long section describes in detail how the metadata describing the database and the required SDO model is supplied to the Relational DAS.

When the constructor for the Relational DAS is invoked, it needs to be passed several pieces of information. The bulk of the information, passed as an associative array in the first argument to the constructor, tells the Relational DAS what it needs to know about the relational database. It describes the names of the tables, columns, primary keys and foreign keys. It should be fairly easy to understand what is required, and once written it can be placed in a php file and included when needed. The remainder of the information, passed in the second and third arguments to the constructor, tells the Relational DAS what it needs to know about the relationships between objects and the shape of the data graph; it ultimately determines how the data from the database is to be normalized into a graph.

Database metadata

The first argument to the constructor describes the target relational database.

Each table is described by an associative array with up to four keys.

Key | Value
name | The name of the table.
columns | An array listing the names of the columns, in any order.
PK | The name of the column containing the primary key.
FK | An array with two entries, 'from' and 'to', which define a column containing a foreign key, and a table to which the foreign key points. If there are no foreign keys in the table then the 'FK' entry does not need to be specified. Only one foreign key can be specified. Only a foreign key pointing to the primary key of a table can be specified.

<?php
/*****************************************************************
* METADATA DEFINING THE DATABASE
******************************************************************/
$company_table = array (
  'name' => 'company',
  'columns' => array('id', 'name',  'employee_of_the_month'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'employee_of_the_month',
      'to' => 'employee',
      ),
  );
$department_table = array (
  'name' => 'department',
  'columns' => array('id', 'name', 'location', 'number', 'co_id'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'co_id',
      'to' => 'company',
      )
  );
$employee_table = array (
  'name' => 'employee',
  'columns' => array('id', 'name', 'SN', 'manager', 'dept_id'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'dept_id',
      'to' => 'department',
      )
  );
$database_metadata = array($company_table, $department_table, $employee_table);
?>

This metadata corresponds to a relational database that might have been defined to MySQL as:

create table company (
 id integer auto_increment,
 name char(20),
 employee_of_the_month integer,
 primary key(id)
);
create table department (
 id integer auto_increment,
 name char(20),
 location char(10),
 number integer(3),
 co_id integer,
 primary key(id)
);
create table employee (
 id integer auto_increment,
 name char(20),
 SN char(4),
 manager tinyint(1),
 dept_id integer,
 primary key(id)
);

or to DB2 as:

create table company ( \
  id integer not null generated by default as identity,  \
  name varchar(20), \
  employee_of_the_month integer, \
  primary key(id) )
create table department ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  location varchar(10), \
  number integer, \
  co_id integer, \
  primary key(id) )
create table employee ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  SN char(4), \
  manager smallint, \
  dept_id integer, \
  primary key(id) )

Note that although in this example there are no foreign keys specified to the database and so the database is not expected to enforce referential integrity, the intention behind the co_id column on the department table and the dept_id column on the employee table is they should contain the primary key of their containing company or department record, respectively. So these two columns are acting as foreign keys.

There is a third foreign key in this example, that from the employee_of_the_month column of the company record to a single row of the employee table. Note the difference in intent between this foreign key and the other two. The employee_of_the_month column represents a single-valued relationship: there can be only one employee of the month for a given company. The co_id and dept_id columns represent multi-valued relationships: a company can contain many departments and a department can contain many employees. This distinction will become evident when the remainder of the metadata picks out the company-department and department-employee relationships as containment relationships.

There are a few simple rules to be followed when constructing the database metadata:

  • All tables must have primary keys, and the primary keys must be specified in the metadata. Without primary keys it is not possible to keep track of object identities. As you can see from the SQL statements that create the tables, primary keys can be auto-generated, that is, generated and assigned by the database when a record is inserted. In this case the auto-generated primary key is obtained from the database and inserted into the data object immediately after the row is inserted into the database.

  • It is not necessary to specify in the metadata all the columns that exist in the database, only those that will be used. For example, if the company table had another column that the application did not want to access with SDO, this need not be specified in the metadata. On the other hand it would have done no harm to specify it: if specified in the metadata but never retrieved, or assigned to by the application, then the unused column will not affect anything.

  • In the database metadata note that the foreign key definitions identify not the destination column in the table which is pointed to, but the table name itself. Strictly, the relational model permits the destination of a foreign key to be a non-primary key. Only foreign keys that point to a primary key are useful for constructing the SDO model, so the metadata specifies the table name. It is understood that the foreign key points to the primary key of the given table.

Given these rules, and given the SQL statements that define the database, the database metadata should be easy to construct.

What the Relational DAS does with the metadata

The Relational DAS uses the database metadata to form most of the SDO model. For each table in the database metadata, an SDO type is defined. Each column which can represent a primitive value (columns which are not defined as foreign keys) are added as properties to the SDO type.

All primitive properties are given a type of string in the SDO model, regardless of their SQL type. When writing values back to the database the Relational DAS will create SQL statements that treat the values as strings, and the database will convert them to the appropriate type.

Foreign keys are interpreted in one of two ways, depending on the metadata in the third argument to the constructor that defines the SDO containment relationships. A discussion of this is therefore deferred until the section on SDO containment relationships below.

Specifying the application root type

The second argument to the constructor is the application root type. The true root of each data graph is an object of a special root type and all application data objects come somewhere below that. Of the various application types in the SDO model, one has to be the application type immediately below the root of the data graph. If there is only one table in the database metadata, the application root type can be inferred, and this argument can be omitted.

Specifying the SDO containment relationships

The third argument to the constructor defines how the types in the model are to be linked together to form a graph. It identifies the parent-child relationships between the types which collectively form a graph. The relationships need to be supported by foreign keys to be found in the data, in a way shortly to be described.

The metadata is an array containing one or more associative arrays, each of which identifies a parent and a child. The example below shows a parent-child relationship from company to department, and another from department to employee. Each of these will become an SDO property defining a multi-valued containment relationship in the SDO model.

<?php
$department_containment = array( 'parent' => 'company', 'child' => 'department');
$employee_containment = array( 'parent' => 'department', 'child' => 'employee');

$SDO_containment_metadata = array($department_containment, $employee_containment);
?>

Foreign keys in the database metadata are interpreted as properties with either multi-valued containment relationships or single-valued non-containment references, depending on whether they have a corresponding SDO containment relationship specified in the metadata. In the example here, the foreign keys from department to company (the co_id column in the department table) and from employee to department (the dept_id column in the employee table) are interpreted as supporting the SDO containment relationships. Each containment relationship mentioned in the SDO containment relationships metadata must have a corresponding foreign key present in the database and defined in the database metadata. The values of the foreign key columns for containment relationships do not appear in the data objects, instead each is represented by a containment relationship from the parent to the child. So the co_id column in the department row in the database, for example, does not appear as a property on the department type, but instead as a containment relationship called department on the company type. Note that the foreign key and the parent-child relationship appear to have opposite senses: the foreign key points from the department to the company, but the parent-child relationship points from company to department.

The third foreign key in this example, the employee_of_the_month , is handled differently. This is not mentioned in the SDO containment relationships metadata. As a consequence this is interpreted in the second way: it becomes a single-valued non-containment reference on the company object, to which can be assigned references to SDO data objects of the employee type. It does appear as a property on the company type. The way to assign a value to it in the SDO data graph is to have a graph that contains an employee object through the containment relationships, and to assign the object to it. This is illustrated in the later examples below.

Creating, retrieving, updating and deleting data
One-table examples
范例


One-table examples

The following set of examples all use the Relational DAS to work with a data graph containing just one application data object, a single company and the data just to be found the company table. These examples do not exercise the power of SDO or the Relational DAS and of course the same result could be achieved more economically with direct SQL statements but they are intended to illustrate how to work with the Relational DAS.

For this very simple scenario it would be possible to simplify the database metadata to include just the company table - if that were done the second and third arguments to the constructor and the column specifier used in the query example would become optional.

Example #1 Creating a data object

The simplest example is that of creating a single data object and writing it to the database. In this example a single company object is created, its name is set to 'Acme', and the Relational DAS is called to write the changes to the database. The company name is set here using the property name method. See the Examples section on the SDO extension for other ways of accessing the properties of an object.

Data objects can only be created when you have a data object to start with, however. It is for that reason that the first call to the Relational DAS here is to obtain a root object. This is in effect how to ask for an empty data graph - the special root object is the true root of the tree. The company data object is then created with a call to createDataObject() on the root object. This creates the company data object and inserts it in the graph by inserting into a multi-valued containment property on the root object called 'company'.

When the Relational DAS is called to apply the changes a simple insert statement 'INSERT INTO company (name) VALUES ("Acme");' will be constructed and executed. The auto-generated primary key will be set into the data object and the change summary will be reset, so that it would be possible to continue working with the same data object, modify it, and apply the newer changes a second time.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Obtain a root object and create a company object underneath.
* Make a simple change to the data object.
***************************************************************/
$root = $das  -> createRootDataObject();
$acme = $root -> createDataObject('company');

$acme->name = "Acme";

/**************************************************************
* Get a database connection and write the object to the database
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das -> applyChanges($dbh, $root);
?>

Example #2 Retrieving a data object

In this example a single data object is retrieved from the database - or possibly more than one if there is more than one company called 'Acme'. For each company returned, the name and id properties are echoed.

In this example the third argument to executeQuery(), the column specifier is needed as there are other tables in the metadata with column names of name and id. If there were no possible ambiguity it could be omitted.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Get a database connection
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
* Issue a query to obtain a company object - possibly more if they exist
***************************************************************/
$root = $das->executeQuery($dbh,
         'select name, id from company where name="Acme"',
          array('company.name', 'company.id') );

/**************************************************************
* Echo name and id
***************************************************************/
foreach ($root['company'] as $company) {
  echo "Company obtained from the database has name = " .
  $company['name'] . " and id " . $company['id'] . "\n";
}
?>

Example #3 Updating a data object

This example combines the previous two, in the sense that in order to be updated the object must first be retrieved. The application code reverses the company name (so 'Acme' becomes 'emcA') and then the changes are written back to the database in the same way that they were when the object was created. Because the query searches for the name both ways round the program can be run repeatedly to find the company and reverse its name each time.

In this example the same instance of the Relational DAS is reused for the applyChanges(), as is the PDO database handle. This is quite alright; it also alright to allow the previous instances to be garbage collected and to obtain new instances. No state data regarding the graph is held the Relational DAS once it has returned a data graph to the application. All necessary data is either within the graph itself, or can be reconstructed from the metadata.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Get a database connection
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
* Issue a query to obtain a company object - possibly more if they exist
***************************************************************/
$root = $das->executeQuery($dbh,
  'select name, id from company where name="Acme" or name="emcA"',
  array('company.name', 'company.id') );

/**************************************************************
* Alter the name of just the first company
***************************************************************/
$company = $root['company'][0];
echo "obtained a company with name of " . $company->name . "\n";
$company->name = strrev($company->name);

/**************************************************************
* Write the change back
***************************************************************/
$das->applyChanges($dbh,$root);
?>

Example #4 Deleting a data object

Any companies called 'Acme' or its reverse 'emcA' are retrieved. They are then all deleted from the graph with unset.

In this example they are all deleted in one go by unsetting the containing property (the property defining the containment relationship). It is also possible to delete them individually.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Get a database connection
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
* Issue a query to obtain a company object - possibly more if they exist
***************************************************************/
$root = $das->executeQuery($dbh,
  'select name, id from company where name="Acme" or name="emcA"',
  array('company.name', 'company.id') );

/**************************************************************
* Delete any companies found from the data graph
***************************************************************/
unset($root['company']);

/**************************************************************
* Write the change(s) back
***************************************************************/
$das->applyChanges($dbh,$root);
?>

Specifying the metadata
Two-table examples
范例


Two-table examples

The following set of examples all use two tables from the company database: the company and department tables. These examples exercise more of the function of the Relational DAS.

In this series of examples a company and department are created, retrieved, updated, and finally deleted. This illustrates the lifecycle for a data graph containing more than one object. Note that this example clears out the company and department tables at the start so that the exact results of the queries can be known.

You can find these examples combined into one script called 1cd-CRUD in the Scenarios directory in the Relational DAS package.

Example #1 One company, one department - Create

As in the earlier example of creating just one company data object, the first action after constructing the Relational DAS is to call createRootDataObject() to obtain the special root object of the otherwise empty data graph. The company object is then created as a child of the root object, and the department object as a child of the company object.

When it comes to applying the changes, the Relational DAS has to perform special processing to maintain the foreign keys that support the containment relationships, especially if auto-generated primary keys are involved. In this example, the relationship between the auto-generated primary key id in the company table and the co_id column in the department table must be maintained. When inserting a company and department for the first time the Relational DAS has to first insert the company row, then call PDO's getLastInsertId() method to obtain the auto-generated primary key, then add that as the value of the co_id column when inserting the department row.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Empty out the two tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPANY;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTMENT;');
$rows_affected = $pdo_stmt->execute();

/**************************************************************
* Create a company with name Acme and one department, the Shoe department
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

$root = $das -> createRootDataObject();

$acme = $root -> createDataObject('company');
$acme -> name = "Acme";

$shoe = $acme->createDataObject('department');
$shoe->name = 'Shoe';

$das -> applyChanges($dbh, $root);

?>

Example #2 One company, one department - Retrieve and Update

In this case the SQL query passed to executeQuery() performs an inner join to join the data from the company and department tables. Primary keys for both the company and department tables must be included in the query. The result set is re-normalised to form a normalised data graph. Note that a column specifier is passed as the third argument to the executeQuery() call enabling the Relational DAS to know which column is which in the result set.

Note that the co_id column although used in the query is not needed in the result set. In order to understand what the Relational DAS is doing when it builds the data graph it may be helpful to visualise what the result set looks like. Although the data in the database is normalised, so that multiple department rows can point through their foreign key to one company row, the data in the result set is non-normalised: that is, if there is one company and multiple departments, the values for the company are repeated in each row. The Relational DAS has to reverse this process and turn the result set back into a normalised data graph, with just one company object.

In this example the Relational DAS will examine the result set and column specifier, find data for both the company and department tables, find primary keys for both, and interpret each row as containing data for a department and its parent company. If it has not seen data for that company before (it uses the primary key to check) it creates a company object and then a department object underneath it. If it has seen data for that company before and has already created the company object it just creates the department object underneath.

In this way the Relational DAS can retrieve and renormalise data for multiple companies and multiple departments underneath them.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Retrieve the company and Shoe department, then delete Shoe and add IT
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.name, d.id, d.name from company c, department d where d.co_id = c.id',
array('company.id','company.name','department.id','department.name'));

$acme = $root['company'][0];            // get the first company - will be 'Acme'
$shoe = $acme['department'][0];         // get the first department underneath - will be 'Shoe'

unset($acme['department'][0]);

$it = $acme->createDataObject('department');
$it->name = 'IT';

$das -> applyChanges($dbh, $root);
?>

Example #3 One company, two departments - Retrieve and Delete

In this example the company and department are retrieved and then deleted. It is not necessary to delete them individually (although that would be possible) - deleting the company object from the data graph also deletes any departments underneath it.

Note the way that the company object is actually deleted using the PHP unset call. The unset has to be performed on the containing property which in this case is the company property on the special root object. You must use:

<?php
unset($root['company'][0]);
?>

and not:

<?php
unset($acme); //WRONG
?>

Simply unsetting $acme would destroy the variable but leave the data in the data graph untouched.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Retrieve the company and IT department, then delete the whole company
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.name, d.id, d.name from company c, department d where d.co_id = c.id',
array('company.id','company.name','department.id','department.name'));

$acme = $root['company'][0];
$it = $acme['department'][0];

unset($root['company'][0]);

$das -> applyChanges($dbh, $root);

?>

One-table examples
Three-table example
范例


Three-table example

The following examples use all three tables from the company database: the company, department, and employee tables. These introduce the final piece of function not exercised by the examples above: the non-containment reference employee_of_the_month.

Like the examples above for company and department, this set of examples is intended to illustrate the full lifecycle of such a data graph.

Example #1 One company, one department, one employee - Create

In this example a company is created containing one department and just one employee. Note that this example clears out all three tables at the start so that the exact results of the queries can be known.

Note how once the company, department and employee have been created, the employee_of_the_month property of the company can be made to point at the new employee. As this is a non-containment reference, this cannot be done until the employee object has been created within the graph. Non-containment references need to be managed carefully. For example if the employee were now deleted from under the department, it would not be correct to try to save the graph without first clearing or re-assigning the employee_of_the_month property. The closure rule for SDO data graphs requires that any object pointed at by a non-containment reference must also be reachable by containment relationships.

When it comes to inserting the graph into the database, the procedure is similar to the example of inserting the company and department, but employee_of_the_month introduces an extra complexity. The Relational DAS needs to insert the objects working down the tree formed by containment relationships, so company, then department, then employee. This is necessary so that it always has the auto-generated primary key of a parent on hand to include in a child row. But when the company row is inserted the employee who is employee of the month has not yet been inserted and the primary key is not known. The procedure is that after the employee record is inserted and its primary key known, a final step is performed in which the the company record is updated with the employee's primary key.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Empty out the three tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPANY;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTMENT;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM EMPLOYEE;');
$rows_affected = $pdo_stmt->execute();

/*************************************************************************************
* Create a tiny but complete company.
* The company name is Acme.
* There is one department, Shoe.
* There is one employee, Sue.
* The employee of the month is Sue.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root             = $das  -> createRootDataObject();
$acme             = $root -> createDataObject('company');
$acme -> name     = "Acme";
$shoe             = $acme -> createDataObject('department');
$shoe -> name     = 'Shoe';
$shoe -> location = 'A-block';
$sue              = $shoe -> createDataObject('employee');
$sue -> name      = 'Sue';
$acme -> employee_of_the_month = $sue;

$das -> applyChanges($dbh, $root);

echo "Wrote back Acme with one department and one employee\n";
?>

Example #2 One company, one department, one employee - Retrieve and update

The SQL statement passed to the Relational DAS is this time an inner join that retrieves data from all three tables. Otherwise this example introduces nothing that has not appeared in a previous example.

The graph is updated by the addition of a new department and employee and some alterations to the name properties of the existing objects in the graph. The combined changes are then written back. The Relational DAS will process and apply an arbitrary mixture of additions, modifications and deletions to and from the data graph.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Find the company again and change various aspects.
* Change the name of the company, department and employee.
* Add a second department and a new employee.
* Change the employee of the month.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
  "select c.id, c.name, c.employee_of_the_month, d.id, d.name, e.id, e.name " .
  "from company c, department d, employee e " .
  "where e.dept_id = d.id and d.co_id = c.id and c.name='Acme'",
   array('company.id','company.name','company.employee_of_the_month',
   'department.id','department.name','employee.id','employee.name'));
$acme         = $root['company'][0];

$shoe         = $acme->department[0];
$sue          = $shoe -> employee[0];

$it           = $acme->createDataObject('department');
$it->name     = 'IT';
$it->location = 'G-block';
$billy        = $it->createDataObject('employee');
$billy->name  = 'Billy';

$acme->name   = 'MegaCorp';
$shoe->name   = 'Footwear';
$sue->name    = 'Susan';

$acme->employee_of_the_month = $billy;
$das -> applyChanges($dbh, $root);
echo "Wrote back company with extra department and employee and all the names changed (Megacorp/Footwear/Susan)\n";

?>

Example #3 One company, two departments, two employees - Retrieve and delete

The company is retrieved as a complete data graph containing five data objects - the company, two departments and two employees. They are all deleted by deleting the company object. Deleting an object from the graph deletes all the object beneath it in the graph. Five SQL DELETE statements will be generated and executed. As always they will be qualified with a WHERE clause that contains all of the fields that were retrieved, so that any updates to the data in the database in the meantime by another process will be detected.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Now read it one more time and delete it.
* You can delete part, apply the changes, then carry on working with the same graph but
* care is needed to keep closure - you cannot delete the employee who is eotm without
* reassigning. For safety here we delete the company all in one go.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
  "select c.id, c.name, c.employee_of_the_month, d.id, d.name, e.id, e.name " .
  "from company c, department d, employee e " .
  "where e.dept_id = d.id and d.co_id = c.id and c.name='MegaCorp';",
   array('company.id','company.name','company.employee_of_the_month',
   'department.id','department.name','employee.id','employee.name'));
$megacorp = $root['company'][0];

unset($root['company']);
$das -> applyChanges($dbh, $root);

echo "Deleted the company, departments and employees all in one go.\n";

?>

Two-table examples
Limitations
范例


Limitations

There are the following limitations in the current release of the Relational DAS:

  • No support for nulls. There is no support for SQL NULL type. It is not legal to assign PHP NULL to a data object property and the Relational DAS will not write that back as a NULL to the database. If nulls are found in the database on a query, the property will remain unset.

  • Only two types of SDO relationship. The metadata described below allows the Relational DAS to model just two types of SDO relationship: multi-valued containment relationships and single-valued non-containment references. In SDO, whether a property describes a single- or multi-valued relationship, and whether it is containment or non-containment, are independent. The full range of possibilities that SDO allows cannot all be defined. There may be relationships that it would be useful to model but which the current implementation cannot manage. One example is a single-valued containment relationship.

  • No support for the full range of SDO data types. The Relational DAS defines all primitive properties in the SDO model as being of type string. SDO defines a richer set of types containing various integer, float, boolean and data and time types. String is adequate for the purposes of the Relational DAS since the combination of PHP, PDO and the database will ensure that values passed as strings will be converted to the proper type before being put in the database. This does affect some scenarios in which the Relational DAS has to work with a data graph that has come from or will go to a different DAS.

  • Only one foreign key per table. The metadata only provides the means to specify one foreign key per table. This foreign key may be mapped to one of the two types of SDO relationship supported. Obviously there are some scenarios that cannot be described under this limitation - it is not possible to have two non-containment references from one table to another for example.

Three-table example
SDO-DAS-Relational 函数
SDO-DAS-Relational


SDO-DAS-Relational 函数

预定义类

The Relational DAS provides two classes: the Relational DAS itself and the subclass of Exception that can be thrown. The Relational DAS has four publicly useful calls: the constructor, the createRootDataObject() call to obtain the root object of an empty data graph, the executeQuery() call to obtain a data graph containing data from a relational database, and the applyChanges() call to write changes made to a data graph back to the relational database.

SDO_DAS_Relational

The only object other than an SDO_DAS_Relational_Exception with which the application is expected to interact.

方法

  • __construct - construct the Relational DAS with a model derived from the passed metadata

  • createRootDataObject - obtain an otherwise empty data graph containing just the special root object

  • executeQuery - execute an SQL query passed as a literal string and return the results as a normalised data graph

  • executePreparedQuery - execute an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph

  • applyChanges - examine the change summary in the data graph and apply those changes back to the database, subject to an assumption of optimistic concurrency

SDO_DAS_Relational_Exception

Is a subclass of PHP's Exception. It adds no behaviour to Exception. Thrown, with useful descriptive text, to signal errors in the metadata or unexpected failures to perform SQL operations.

Table of Contents

  • SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database.
  • SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service
  • SDO_DAS_Relational::createRootDataObject — Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.
  • SDO_DAS_Relational::executePreparedQuery — Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.
  • SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph.
Limitations
SDO_DAS_Relational::applyChanges
SDO-DAS-Relational


Applies the changes made to a data graph back to the database.

SDO-DAS-Relational 函数
SDO_DAS_Relational::__construct
SDO-DAS-Relational 函数
PHP 手册

SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database.

说明

void SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Given a PDO database handle and the special root object of a data graph, examine the change summary in the datagraph and applies the changes to the database. The changes that it can apply can be creations of data objects, deletes of data objects, and modifications to properties of data objects.

参数

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

The special root object which is at the top of every SDO data graph.

返回值

None. Note however that the datagraph that was passed is still intact and usable. Furthermore, if data objects were created and written back to a table with autogenerated primary keys, then those primary keys will now be set in the data objects. If the changes were successfully written, then the change summary associated with the datagraph will have been cleared, so that it is possible to now make further changes to the data graph and apply those changes in turn. In this way it is possible to work with the same data graph and apply changes repeatedly.

错误／异常

SDO_DAS_Relational::applyChanges() can throw an SDO_DAS_Relational_Exception if it is unable to apply all the changes correctly.

The Relational DAS starts a database transaction before beginning to apply the changes and will commit the transaction only if they are all successful. The Relational DAS generates qualified update and delete statements which contain a where clause that specifies that the row to be updated or deleted must contain the same values that it did when the data was first retrieved. This is how the the optimistic concurrency is implemented. If any of the qualified update or delete statements fails to update or delete their target row, it may be because the data has been altered in the database in the meantime. In any event, if any update fails for any reason, the transaction is rolled back and an exception thrown. The exception will contain the generated SQL statement that failed.

The Relational DAS also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

范例

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method. Please see also the section on Tracing to see how you can see what SQL statements are generated by the Relational DAS.

SDO-DAS-Relational 函数
SDO_DAS_Relational::__construct
SDO-DAS-Relational 函数


Creates an instance of a Relational Data Access Service

SDO_DAS_Relational::applyChanges
SDO_DAS_Relational::createRootDataObject
SDO-DAS-Relational 函数
PHP 手册

SDO_DAS_Relational::__construct

(^)

SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service

说明

SDO_DAS_Relational SDO_DAS_Relational::__construct ( array $database_metadata [, string $application_root_type [, array $SDO_containment_references_metadata ]] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Constructs an instance of a Relational Data Access Service from the passed metadata.

参数

database_metadata

An array containing one or more table definitions, each of which is an associative array containing the keys name, columns, PK, and optionally, FK. For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

application_root_type

The root of each data graph is an object of a special root type and the application data objects come below that. Of the various application types in the SDO model, one has to be the the application type immediately below the root of the data graph. If there is only one table in the database metadata, so the application root type can be inferred, this argument can be omitted.

SDO_containment_references_metadata

An array containing one or more definitions of a containment relation, each of which is an associative array containing the keys parent and child. The containment relations describe how the types in the model are connected to form a tree. The type specified as the application root type must be present as one of the parent types in the containment references. If the application only needs to work with one table at a time, and there are no containment relations in the model, this argument can be omitted. For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

返回值

Returns an SDO_DAS_Relational object on success.

错误／异常

SDO_DAS_Relational::__construct() throws a SDO_DAS_Relational_Exception if any problems are found in the metadata.

范例

For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

SDO_DAS_Relational::applyChanges
SDO_DAS_Relational::createRootDataObject
SDO-DAS-Relational 函数


Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.

SDO_DAS_Relational::__construct
SDO_DAS_Relational::executePreparedQuery
SDO-DAS-Relational 函数
PHP 手册

SDO_DAS_Relational::createRootDataObject

(^)

SDO_DAS_Relational::createRootDataObject — Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.

说明

SDODataObject SDO_DAS_Relational::createRootDataObject ( void )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Returns the special root object at the top of an otherwise empty data graph. This call is used when the application wants to create a data graph from scratch, without having called executeQuery() to create a data graph.

The special root object has one multi-valued containment property, with a name of the application root type that was passed when the Relational DAS was constructed. The property can take values of only that type. The only thing that the application can usefully do with the root type is to call createDataObject() on it, passing the name of the application root type, in order to create a data object of their own application type.

参数

None.

返回值

The root object.

错误／异常

None.

范例

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method.

SDO_DAS_Relational::__construct
SDO_DAS_Relational::executePreparedQuery
SDO-DAS-Relational 函数


Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.

SDO_DAS_Relational::createRootDataObject
SDO_DAS_Relational::executeQuery
SDO-DAS-Relational 函数
PHP 手册

SDO_DAS_Relational::executePreparedQuery

(^)

SDO_DAS_Relational::executePreparedQuery — Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.

说明

SDODataObject SDO_DAS_Relational::executePreparedQuery ( PDO $database_handle , PDOStatement $prepared_statement , array $value_list [, array $column_specifier ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Executes a given query against the relational database, using the supplied PDO database handle. Differs from the simpler executeQuery() in that it takes a prepared statement and a list of values. This is the appropriate call to use either when the statement is to executed a number of times with different arguments, and there is therefore a performance benefit to be had from preparing the statement only once, or when the the SQL statement is to contain varying values taken from a source that cannot be completely trusted. In this latter case it may be unsafe to construct the SQL statement by simply concatenating the parts of the statement together, since the values may contain pieces of SQL. To guard against this, a so-called SQL injection attack, it is safer to prepare the SQL statement with placeholders (also known as parameter markers, denoted by '?') and supply a list of the values to be substituted as a separate argument. Otherwise this function is the same as executeQuery() in that it uses the model that it built from the the metadata to interpret the result set and returns a data graph.

参数

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

prepared_statement

A prepared SQL statement to be executed against the database. This will have been prepared by PDO's prepare() method.

value_list

An array of the values to be substituted into the SQL statement in place of the placeholders. In the event that there are no placeholders or parameter markers in the SQL statement then this argument can be specified as NULL or as an empty array;

column_specifier

The Relational DAS needs to examine the result set and for every column, know which table and which column of that table it came from. In some circumstances it can find this information for itself, but sometimes it cannot. In these cases a column specifier is needed, which is an array that identifies the columns. Each entry in the array is simply a string in the form table-name.column_name.

The column specifier is needed when there are duplicate column names in the database metadata, For example, in the database used within the examples, all the tables have both a id and a name column. When the Relational DAS fetches the result set from PDO it can do so with the PDO_FETCH_ASSOC attribute, which will cause the columns in the results set to be labelled with the column name, but will not distinguish duplicates. So this will only work when there are no duplicates possible in the results set.

To summarise, specify a column specifier array whenever there is any uncertainty about which column could be from which table and only omit it when every column name in the database metadata is unique.

All of the examples in the Examples use a column specifier. There is one example in the Scenarios directory of the installation that does not: that which works with just the employee table, and because it works with just one table, there can not exist duplicate column names.

返回值

Returns a data graph. Specifically, it returns a root object of a special type. Under this root object will be the data from the result set. The root object will have a multi-valued containment property with the same name as the application root type specified on the constructor, and that property will contain one or more data objects of the application root type.

In the event that the query returns no data, the special root object will still be returned but the containment property for the application root type will be empty.

错误／异常

SDO_DAS_Relational::executePreparedQuery() can throw an SDO_DAS_Relational_Exception if it is unable to construct the data graph correctly. This can occur for a number of reasons: for example if it finds that it does not have primary keys in the result set for all the objects. It also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

范例

Example #1 Retrieving a data object using executePreparedQuery()

In this example a single data object is retrieved from the database - or possibly more than one if there is more than one company called 'Acme'. For each company returned, the name and id properties are echoed.

Other examples of the use of executePreparedQuery() can be found in the example code supplied in sdo/DAS/Relational/Scenarios .

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Get a database connection
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Issue a query to obtain a company object - possibly more if they exist
 * Use a prepared query with a placeholder.
 ***************************************************************/
$name = 'Acme';
$pdo_stmt = $dbh->prepare('select name, id from company where name=?');
$root = $das->executePreparedQuery(
    $dbh,
    $pdo_stmt,
    array($name),
    array('company.name', 'company.id'));

/**************************************************************
 * Echo name and id
 ***************************************************************/
foreach ($root['company'] as $company) {
    echo "Company obtained from the database has name = " .
    $company['name'] . " and id " . $company['id'] . "\n";
}
?>

SDO_DAS_Relational::createRootDataObject
SDO_DAS_Relational::executeQuery
SDO-DAS-Relational 函数


Executes a given SQL query against a relational database and returns the results as a normalised data graph.

SDO_DAS_Relational::executePreparedQuery
SDO DAS XML
SDO-DAS-Relational 函数
PHP 手册

SDO_DAS_Relational::executeQuery

(^)

SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph.

说明

SDODataObject SDO_DAS_Relational::executeQuery ( PDO $database_handle , string $SQL_statement [, array $column_specifier ] )
Warning

本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

Executes a given query against the relational database, using the supplied PDO database handle. Uses the model that it built from the the metadata to interpret the result set. Returns a data graph.

参数

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

SQL_statement

The SQL statement to be executed against the database.

column_specifier

The Relational DAS needs to examine the result set and for every column, know which table and which column of that table it came from. In some circumstances it can find this information for itself, but sometimes it cannot. In these cases a column specifier is needed, which is an array that identifies the columns. Each entry in the array is simply a string in the form table-name.column_name.

The column specifier is needed when there are duplicate column names in the database metadata. For example, in the database used within the examples, all the tables have both a id and a name column. When the Relational DAS fetches the result set from PDO it can do so with the PDO_FETCH_ASSOC attribute, which will cause the columns in the results set to be labelled with the column name, but will not distinguish duplicates. So this will only work when there are no duplicates possible in the results set.

To summarise, specify a column specifier array whenever there is any uncertainty about which column could be from which table and only omit it when every column name in the database metadata is unique.

All of the examples in the Examples use a column specifier. There is one example in the Scenarios directory of the installation that does not: that which works with just the employee table, and because it works with just one table, there can not exist duplicate column names.

返回值

Returns a data graph. Specifically, it returns a root object of a special type. Under this root object will be the data from the result set. The root object will have a multi-valued containment property with the same name as the application root type specified on the constructor, and that property will contain one or more data objects of the application root type.

In the event that the query returns no data, the special root object will still be returned but the containment property for the application root type will be empty.

错误／异常

SDO_DAS_Relational::executeQuery() can throw an SDO_DAS_Relational_Exception if it is unable to construct the data graph correctly. This can occur for a number of reasons: for example if it finds that it does not have primary keys in the result set for all the objects. It also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

范例

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method.

SDO_DAS_Relational::executePreparedQuery
SDO DAS XML
SDO-DAS-Relational 函数


SDO XML Data Access Service

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
  • SDO DAS XML 函数
    • SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject
    • SDO_DAS_XML_Document::getRootElementName — Returns root element's name
    • SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string
    • SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding
    • SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration
    • SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version
    • SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object
    • SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file
    • SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name
    • SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string.
    • SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document
    • SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string
    • SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file
    • SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string
SDO_DAS_Relational::executeQuery
简介
XML操作


简介

In order to use the XML Data Access Service for Service Data Objects, you will need to understand some of the concepts behind SDO: the data graph, the data object, XPath and property expressions, and so on. If you are not familiar with these ideas, you might want to look first at the section on SDO.

The job of the XML DAS is to move data between the application and an XML data source, which can be either a file or a URL. SDOs are always created and maintained according to a model which defines type names and what property names each type may have. For data which is from XML, this SDO model is built from a schema file written in XML schema language (an xsd file). This schema file is usually passed to the create method when the XMLDAS is initialised. The » SDO 2.0 specification defines the mapping between XML types and SDO types. There are a number of small limitations in the PHP support - not everything which is in the specification can be done - and these limitations are summarised in a later section.

SDO DAS XML
安装/配置
SDO DAS XML


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SDO DAS XML


需求

The SDO XML Data Access Service requires PHP 5.1.0 or higher. It is packaged with the SDO extension and requires SDO to have been installed. See the SDO installation instructions for the details of how to do this.

安装/配置
安装
安装/配置


安装

The XML Data Access Service is packaged and installed as part of the SDO extension. Please Refer SDO installation instructions.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
SDO DAS XML


范例

Several of the following examples are based on the letter example described in the SDO documentation. The examples assume the XML Schema for the letter is contained in a file letter.xsd and the letter instance is in the file letter.xml. These two files are reproduced here:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Example #1 Loading, altering, and saving an XML document

The following example shows how an XML document can be loaded from a file, altered, and written back.

<?php
/**
 * Load, update, and save an XML document
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $root_data_object = $document->getRootDataObject();
   $root_data_object->date = "September 03, 2004";
   $root_data_object->firstName = "Anantoju";
   $root_data_object->lastName = "Madhu";
   $xmldas->saveFile($document, "letter-out.xml");
   echo "New file has been written:\n";
   print file_get_contents("letter-out.xml");
} catch (SDO_Exception $e) {
   print($e->getMessage());
}
?>

An instance of the XML DAS is first obtained from the SDO_DAS_XML::create() method, which is a static method of the SDO_DAS_XML class. The location of the xsd is passed as a parameter. Once we have an instance of the XML DAS initialised with a given schema, we can use it to load the instance document using the loadFile() method. There is also a loadString() method if you want to load an XML instance document from a string. If the instance document loads successfully, you will be returned an object of type SDO_DAS_XML_Document, on which you can call the getRootDataObject() method to get the SDO data object which is the root of the SDO data graph. You can then use SDO operations to change the graph. In this example we alter the date, firstName, and lastName properties. Then we use the saveFile() method to write the changed document back to the file system. The saveFile method has an optional extra integer argument which if specified will cause the XML DAS to format the XML, using the integer as the amount to indent by at each change in level on the document.

This will write the following to letter-out.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <date>September 03, 2004</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Anantoju</firstName>
  <lastName>Madhu</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</FormLetter>

Example #2 Creating a new XML document

The previous example loaded the document from a file. This example shows how to create an SDO data graph in memory. In this example it is then saved to an XML string. Furthermore, because the letter contains both structured and unstructured content, it uses the Sequence API as well assignments to properties to construct the data graph.

<?php
/**
 * Create an XML document from scratch
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   try {
       $doc = $xmldas->createDocument();
       $rdo = $doc->getRootDataObject();
       $seq = $rdo->getSequence();
       $seq->insert("April 09, 2005", NULL, 'date');
       $seq->insert("Acme Inc. ", NULL, NULL);
       $seq->insert("United Kingdom. ");
       $seq->insert("Dear", NULL, NULL);
       $seq->insert("Tarun", NULL, "firstName");
       $seq->insert("Nayaraaa", NULL, "lastName");
       $rdo->lastName = "Nayar";
       $seq->insert("Please note that your order number ");
       $seq->insert(12345);
       $seq->insert(" has been dispatched today. Thanks for your business with us.");
       print($xmldas->saveString($doc));
   } catch (SDO_Exception $e) {
       print($e);
   }
} catch (SDO_Exception $e) {
   print("Problem creating an XML document: " . $e->getMessage());
}
?>

The createDocument() method on the XML DAS returns a document object with a single root data object corresponding to an empty document element. The element name of the document element is known from the schema file. If there is any ambiguity about what the document element is, as there can be when more than one schema has been loaded into the same XML DAS, the element name and the namespace URI can be passed to the createDocument() method.

This will emit the following output (line breaks have been inserted for readability):

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<date>April 09, 2005</date>
Acme Inc. United Kingdom.
Dear
<firstName>Tarun</firstName>
<lastName>Nayar</lastName>
Please note that your order number 12345 has been
dispatched today. Thanks for your business with us.
</FormLetter>

Example #3 Setting XML document properties

This third example shows you how to set the XML version and encoding on the document object. These will be used when the XML is written out. If no XML declaration is wanted at all (perhaps you want to generate the XML as a string to embed in something) then you can use the setXMLDeclaration() method to suppress it.

<?php
/**
 * Illustrate the calls that control the XML declaration
 */
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $document->setXMLVersion("1.1");
   $document->setEncoding("ISO-8859-1");
   print($xmldas->saveString($document));
?>

The XML version and encoding are set in the XML declaration at the top of the XML document.

<?xml version="1.1" encoding="ISO-8859-1"?>
.../...

Example #4 Using an open type

This fourth example illustrates the use of an SDO open type and the use of the createDataObject() method. For this example we use the following two schema:

<schema
  xmlns="http://www.w3.org/2001/XMLSchema">

  <element name="jungle">
    <complexType>
      <sequence>
        <any minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
  </element>

</schema>

Note the presence of the any element in the definition. This first schema defines the jungle complex type as containing a sequence of any other type. The other types that the example will use are defined in a second schema file:

<schema xmlns= "http://www.w3.org/2001/XMLSchema">

   <complexType name="snakeType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "length" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="bearType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "weight" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="pantherType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "colour" type="string" />
     </sequence>
   </complexType>

</schema>

Here is the example PHP code that uses these two schema files:

<?php

/**
 * Illustrate open types and the use of the addTypes() method
 */

$xmldas = SDO_DAS_XML::create();
$xmldas->addTypes("jungle.xsd"); // this is an open type i.e. the xsd specifies it can contain "any" type
$xmldas->addTypes('animalTypes.xsd');

$baloo            = $xmldas->createDataObject('','bearType');
$baloo->name      = "Baloo";
$baloo->weight    = 800;

$bagheera         = $xmldas->createDataObject('','pantherType');
$bagheera->name   = "Bagheera";
$bagheera->colour = 'inky black';

$kaa              = $xmldas->createDataObject('','snakeType');
$kaa->name        = "Kaa";
$kaa->length      = 25;

$document         = $xmldas->createDocument();
$do               = $document->getRootDataObject();
$do->bear         = $baloo;
$do->panther      = $bagheera;
$do->snake        = $kaa;

print($xmldas->saveString($document,2));

?>

These two schema files are loaded into the XML DAS with first the create() and addTypes() methods. The createDataObject() method is used to create three separate data objects. In each case the namespaceURI and typename of the type are passed to the createDataObject() method: in this example the namespace URI is blank because no namespace is used in the schema. Once the three data objects - representing a bear, a panther and a snake - have been created, a document object is created with the createDocument() method. In this case there is no ambiguity about what the document element of the document should be - as the second schema file only defines complex types, the document element can only be the global jungle element defined in the first schema. This document will have a single root data object corresponding to an empty document element jungle. As this is an open type, properties can be added at will. When the first assignment is made to $do->bear, a property bear is added to the root data object: likewise for the next two assignments. When the document is written out by the saveString() method, the resulting document is:

<?xml version="1.0" encoding="UTF-8"?>
<jungle xsi:type="jungle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bear xsi:type="bearType">
    <name>Baloo</name>
    <weight>800</weight>
  </bear>
  <panther xsi:type="pantherType">
    <name>Bagheera</name>
    <colour>inky black</colour>
  </panther>
  <snake xsi:type="snakeType">
    <name>Kaa</name>
    <length>25</length>
  </snake>
</jungle>

Example #5 Finding out what you can from the document

This example is intended to illustrate how you can find the element name and namespace of the document element from the XML Document object, and the SDO type and namespace from the root data object of the XML data object, and how they relate to one another. This can be difficult to understand because there are four method calls: two can be made against the Document object, and two that can be made against any data object including the root data object. Because of the rules that define how the SDO model is derived from the XML model, when the data object concerned is the root object that represents the document object for the document, only three possible values can come back from these four method calls.

The two method calls that can be made against the document are getRootElementName() and getRootEelementURI(). These return the element name and namespace of the document element, respectively.

The two method calls that can be made against any data object are getTypeName() and getTypeNamespaceURI(). These return the SDO type name and type namespace of the data object, respectively.

Always, calling getRootElementURI() on the document object will return the same value as calling getNamespaceURI() on the root data object. Essentially, the information is all derived from the first few lines of the schema file, where there are three distinct pieces of information. For illustration, here again are the first few lines of the letter.xsd that we used above.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:letter="http://letterSchema"
            targetNamespace="http://letterSchema">

  <xsd:element name="letters" type="letter:FormLetter"/>

  <xsd:complexType name="FormLetter" mixed="true">
    .../...

The three important values are:

  • letters, the name of the document element

  • FormLetter, the name of the complex type of the document element. This is also the name of the SDO type of the root data object.

  • http://letterSchema, the namespace to which the document element belongs. This is also the namespaceURI of the SDO type of the root data object.

It is part of the XML-SDO mapping rules that when the SDO model is built from the schema file, the typename and namespaceURI of the SDO types for the root element are taken from those of the complex type of the document element, where it exists. Hence in this example the typename of the root data object is FormLetter. In the event that there is no separate complex type definition for the document element, when the the type is defined inline and is anonymous, the SDO type name will be the same as the element name.

The following program loads the letter document and checks the return values from each of the four calls.

<?php
/**
 * Finding out what you can about the document and document element
 * This can be quite hard to understand because there are four calls
 * Two calls are made against the document
 * Two calls are made against the root data object and its model
 * Because of the SDO-XML mapping rules and how the SDO model is derived
 * from the XML model, only three possible values can come back from these four calls.
 * Always, $document->getRootElementURI() == (type of root data object)->namespaceURI
 * Essentially, it all comes form the first few lines of the xsd:
 * <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 *   xmlns:letter="http://letterSchema"
 *   targetNamespace="http://letterSchema">
 *   <xsd:element name="letters" type="letter:FormLetter"/>
 */

$xmldas = SDO_DAS_XML::create("letter.xsd");
$document = $xmldas->loadFile("letter.xml");
$root_do = $document->getRootDataObject();

/**
 * The "root element name" is the element name of the document element
 * in this case 'letters'
 * This matches the 'name' attribute of the document element in the xsd and matches
 * the element name from the xml
 */
echo "The document element name is " . $document->getRootElementName() . "\n";
assert($document->getRootElementName() == 'letters'); // a property of the document

/**
 * The "root element URI" is the namespace part of the element name of the document element
 * in this case 'http://letterSchema' since 'letters' is in that namespace
 * This is taken from the xsd and matches the namespace picked up from the xml
 */
echo "The document element is in the namespace " . $document->getRootElementURI() . "\n";
assert($document->getRootElementURI() == 'http://letterSchema'); // a property of the document

/**
 * The type name is taken from the SDO model
 * The XML-SDO mapping rules make this either:
 *   The name of the complexType if there is one (in this case there is)
 *   The document element name if there no complexType
 * This is taken from the xsd
 */
echo "The type name of the root data object is " . $root_do->getTypeName() . "\n";
assert($root_do->getTypeName() == 'FormLetter');

/**
 * The type's namespaceURI is taken from the SDO model
 * The XML-SDO mapping rules ensure that this will always be the same as
 * the namepace URI of the document element
 */
echo "The namespaceURI of the root data object is " . $root_do->getTypeNamespaceURI() . "\n";
assert($root_do->getTypeNamespaceURI() == 'http://letterSchema');

?>

The output from this program is as follows:

The document element name is letters
The document element is in the namespace http://letterSchema
The type name of the root data object is FormLetter
The namespaceURI of the root data object is http://letterSchema

Example #6 Printing the SDO model

The XML DAS provides a simple means to see what types and properties have been loaded. The php "print" or "echo" instruction will print out the types and properties.

<?php
/**
 * Illustrate printing out the model
 */

$xmldas = SDO_DAS_XML::create("letter.xsd");
print $xmldas;

?>

The output from this program is as follows:

object(SDO_XML_DAS)#1 {
18 types have been defined. The types and their properties are::
1. commonj.sdo:BigDecimal
2. commonj.sdo:BigInteger
3. commonj.sdo:Boolean
4. commonj.sdo:Byte
5. commonj.sdo:Bytes
6. commonj.sdo:ChangeSummary
7. commonj.sdo:Character
8. commonj.sdo:DataObject
9. commonj.sdo:Date
10. commonj.sdo:Double
11. commonj.sdo:Float
12. commonj.sdo:Integer
13. commonj.sdo:Long
14. commonj.sdo:Short
15. commonj.sdo:String
16. commonj.sdo:URI
17. http://letterSchema:FormLetter
    - date (commonj.sdo:String)
    - firstName (commonj.sdo:String)
    - lastName (commonj.sdo:String)
18. http://letterSchema:RootType
    - letters (http://letterSchema:FormLetter)
预定义常量
SDO DAS XML 函数
SDO DAS XML


SDO DAS XML 函数

预定义类

The XML DAS provides two main classes. The first is SDO_DAS_XML which is the main class used to fetch the data from the XML source and used to write the data back. The second is the SDO_DAS_XML_Document class, which represents the data in the XML document.

There are also some exception classes which can be thrown if errors are found when looking for or parsing the xsd or xml files.

SDO_DAS_XML

This is the main class of the XML DAS, which is used fetch the data from the xml source and also used to write the data back. Other than the methods to load and save xml files,

方法

  • create This is a static method available in the SDO_DAS_XML class. Used to construct an SDO_DAS_XML object.

  • addTypes Works in much the same way as create() but used to add the contents of a second or subsequent schema file to an XML DAS that has already been created.

  • createDataObject Can be used to construct an SDO data object of a given type.

  • createDocument Can be used to construct an XML Document object from scratch.

  • loadFile Loads the xml instance document from a file. This file can be at local file system or it can be on a remote host.

  • loadString same as the above method. Loads the xml instance which is available as string.

  • saveFile save SDO_DAS_XML_Document object as a xml file.

  • saveString save SDO_DAS_XML_Document object as a xml string.

SDO_DAS_XML_Document

This class can be used to get to the name and namespace of the document element, and to get to the root data object of the document. Lastly, it can also be used to set the XML version and encoding of a document on output.

方法

  • getRootDataObject gets the root DataObject.

  • getRootElementName gets the root DataObject's name.

  • getRootElementURI gets the root DataObject's URI.

  • setEncoding sets the encoding string with the given value.

  • setXMLDeclaraion to set/unset the xml declaration.

  • setXMLVersion sets the xml version with the given value.

SDO_DAS_XML_ParserException

Is a subclass of SDO_Exception. Thrown for any parser errors while loading the xsd/xml file.

SDO_DAS_XML_FileException

Is a subclass of SDO_Exception. Thrown by any of the methods that load data from a file, when the file cannot be found.

Limitations compared with SDO 2.0 specification

The » SDO 2.0 specification defines the mapping between XML types and SDO types. With Java SDO, this mapping is implemented by the XMLHelper. With SDO for PHP, this mapping is implemented by the XML Data Access Service. The XML DAS implements the mapping described in the SDO 2.0 specification with some restrictions. A detailed list is of the limitations is:

XML Simple Types

  1. Simple Type with sdoJava:instanceClass - no PHP equivalent provided.

  2. Simple Type with sdoJava:extendedInstanceClass - no PHP equivalent provided.

  3. Simple Type with list of itemType.

  4. Simple Type with union.

XML Complex Types

  1. Complex Type with sdo:aliasName - no PHP support for SDO Type aliases.

XSD Attribute

  1. Attribute with sdo:aliasName - no PHP support for SDO property aliases.

  2. Attribute with default value - no PHP support for SDO property defaults.

  3. Attribute with fixed value - no PHP support for SDO read-only properties or default values.

  4. Attribute referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="...".

  5. Attribute with bi-directional property to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

XSD Elements

  1. Element with sdo:aliasName - no PHP support for SDO property aliases.

  2. Element with substitution group.

XSD Elements with Simple Type

  1. Element of SimpleType with default - no PHP support for SDO defaults

  2. Element of SimpleType with fixed value - no PHP support for SDO read-only properties or default values.

  3. Element of SimpleType with sdo:string - no support for sdo:string="true".

  4. Element referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="..."

  5. Element with bi-directional reference to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

Table of Contents

  • SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject
  • SDO_DAS_XML_Document::getRootElementName — Returns root element's name
  • SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string
  • SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding
  • SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration
  • SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version
  • SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object
  • SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file
  • SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name
  • SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string.
  • SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document
  • SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string
  • SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file
  • SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string
范例
SDO_DAS_XML_Document::getRootDataObject
SDO DAS XML


Returns the root SDO_DataObject

SDO DAS XML 函数
SDO_DAS_XML_Document::getRootElementName
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML_Document::getRootDataObject

(^)

SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject

说明

SDO_DataObject SDO_DAS_XML_Document::getRootDataObject ( void )

Returns the root SDO_DataObject.

参数

返回值

Returns the root SDO_DataObject.

SDO DAS XML 函数
SDO_DAS_XML_Document::getRootElementName
SDO DAS XML 函数


Returns root element's name

SDO_DAS_XML_Document::getRootDataObject
SDO_DAS_XML_Document::getRootElementURI
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML_Document::getRootElementName

(^)

SDO_DAS_XML_Document::getRootElementName — Returns root element's name

说明

string SDO_DAS_XML_Document::getRootElementName ( void )

Returns root element's name.

参数

返回值

Returns root element's name.

SDO_DAS_XML_Document::getRootDataObject
SDO_DAS_XML_Document::getRootElementURI
SDO DAS XML 函数


Returns root element's URI string

SDO_DAS_XML_Document::getRootElementName
SDO_DAS_XML_Document::setEncoding
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML_Document::getRootElementURI

(^)

SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string

说明

string SDO_DAS_XML_Document::getRootElementURI ( void )

Returns root element's URI string.

参数

返回值

Returns root element's URI string.

SDO_DAS_XML_Document::getRootElementName
SDO_DAS_XML_Document::setEncoding
SDO DAS XML 函数


Sets the given string as encoding

SDO_DAS_XML_Document::getRootElementURI
SDO_DAS_XML_Document::setXMLDeclaration
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML_Document::setEncoding

(^)

SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding

说明

void SDO_DAS_XML_Document::setEncoding ( string $encoding )

Sets the given string as encoding.

参数

encoding

Encoding string.

返回值

None.

SDO_DAS_XML_Document::getRootElementURI
SDO_DAS_XML_Document::setXMLDeclaration
SDO DAS XML 函数


Sets the xml declaration

SDO_DAS_XML_Document::setEncoding
SDO_DAS_XML_Document::setXMLVersion
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML_Document::setXMLDeclaration

(^)

SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration

说明

void SDO_DAS_XML_Document::setXMLDeclaration ( bool $xmlDeclatation )

Controls whether an XML declaration will be generated at the start of the XML document. Set to true to generate the XML declaration, or false to suppress it.

参数

xmlDeclatation

Boolean value to set the XML declaration.

返回值

None.

SDO_DAS_XML_Document::setEncoding
SDO_DAS_XML_Document::setXMLVersion
SDO DAS XML 函数


Sets the given string as xml version

SDO_DAS_XML_Document::setXMLDeclaration
SDO_DAS_XML::addTypes
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML_Document::setXMLVersion

(^)

SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version

说明

void SDO_DAS_XML_Document::setXMLVersion ( string $xmlVersion )

Sets the given string as xml version.

参数

xmlVersion

xml version string.

返回值

None.

SDO_DAS_XML_Document::setXMLDeclaration
SDO_DAS_XML::addTypes
SDO DAS XML 函数


To load a second or subsequent schema file to a SDO_DAS_XML object

SDO_DAS_XML_Document::setXMLVersion
SDO_DAS_XML::create
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::addTypes

(^)

SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object

说明

void SDO_DAS_XML::addTypes ( string $xsd_file )

Load a second or subsequent schema file to an XML DAS that has already been created with the static method create(). Although the file may be any valid schema file, a likely reason for using this method is to add a schema file containing definitions of extra complex types, hence the name. See Example 4 of the parent document for an example.

参数

xsd_file

Path to XSD Schema file.

返回值

None if successful, otherwise throws an exception as described below.

错误／异常

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.

SDO_DAS_XML_Document::setXMLVersion
SDO_DAS_XML::create
SDO DAS XML 函数


To create SDO_DAS_XML object for a given schema file

SDO_DAS_XML::addTypes
SDO_DAS_XML::createDataObject
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::create

(^)

SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file

说明

SDO_DAS_XML SDO_DAS_XML::create ([ mixed $xsd_file [, string $key ]] )

This is the only static method of SDO_DAS_XML class. Used to instantiate SDO_DAS_XML object.

参数

xsd_file

Path to XSD Schema file. This is optional. If omitted a DAS will be created that only has the SDO base types defined. Schema files can then be loaded with the addTypes() method. Can be string or array of values.

key

返回值

Returns SDO_DAS_XML object on success otherwise throws an exception as described below.

错误／异常

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.

SDO_DAS_XML::addTypes
SDO_DAS_XML::createDataObject
SDO DAS XML 函数


Creates SDO_DataObject for a given namespace URI and type name

SDO_DAS_XML::create
SDO_DAS_XML::createDocument
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::createDataObject

(^)

SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name

说明

SDO_DataObject SDO_DAS_XML::createDataObject ( string $namespace_uri , string $type_name )

Creates SDO_DataObject for a given namespace URI and type name. The type should be defined in the underlying model otherwise SDO_TypeNotFoundException will be thrown.

参数

namespace_uri

Namespace URI of the type name.

type_name

Type Name.

返回值

Returns SDO_DataObject on success.

错误／异常

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

SDO_DAS_XML::create
SDO_DAS_XML::createDocument
SDO DAS XML 函数


Creates an XML Document object from scratch, without the need to load a document from a file or string.

SDO_DAS_XML::createDataObject
SDO_DAS_XML::loadFile
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::createDocument

(^)

SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string.

说明

SDO_DAS_XML_Document SDO_DAS_XML::createDocument ([ string $document_element_name ] )
SDO_DAS_XML_Document SDO_DAS_XML::createDocument ( string $document_element_namespace_URI , string $document_element_name [, SDO_DataObject $dataobject ] )

Creates an XML Document object. This will contain just one empty root element on which none of the properties will have been set. The purpose of this call is to allow an application to create an XML document from scratch without the need to load a document from a file or string. The document that is created will be as if a document had been loaded that contained just a single empty document element with no attributes set or elements within it.

createDocument() may need to be told what the document element is. This will not be necessary in simple cases. When there is no ambiguity then no parameter need be passed to the method. However it is possible to load more than one schema file into the same XML DAS and in this case there may be more than one possible document element defined: furthermore it is even possible that there are two possible document elements that differ only in the namespace. To cope with these cases it is possible to specify either the document element name, or both the document element name and namespace to the method.

参数

document_element_name

The name of the document element. Only needed if there is more than one possibility.

document_element_namespace_URI

The namespace part of the document element name. Only needed if there is more than one possible document element with the same name.

dataobject

返回值

Returns an SDO_XML_DAS_Document object on success.

错误／异常

SDO_UnsupportedOperationException

Thrown if an element name or element name and namespace URI is passed, but not found in the underlying model.

SDO_DAS_XML::createDataObject
SDO_DAS_XML::loadFile
SDO DAS XML 函数


Returns SDO_DAS_XML_Document object for a given path to xml instance document

SDO_DAS_XML::createDocument
SDO_DAS_XML::loadString
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::loadFile

(^)

SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document

说明

SDO_XMLDocument SDO_DAS_XML::loadFile ( string $xml_file )

Constructs the tree of SDO_DataObjects from the given address to xml instance document. Returns SDO_DAS_XML_Document Object. Use SDO_DAS_XML_Document::getRootDataObject method to get root data object.

参数

xml_file

Path to Instance document. This can be a path to a local file or it can be a URL.

返回值

Returns SDO_DAS_XML_Document object on Success or throws exception as described.

错误／异常

SDO_TypeNotFoundException

Thrown if a type is not defined by the underlying model.

SDO_PropertyNotFoundException

Thrown if a property within a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.

SDO_DAS_XML::createDocument
SDO_DAS_XML::loadString
SDO DAS XML 函数


Returns SDO_DAS_XML_Document for a given xml instance string

SDO_DAS_XML::loadFile
SDO_DAS_XML::saveFile
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::loadString

(^)

SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string

说明

SDO_DAS_XML_Document SDO_DAS_XML::loadString ( string $xml_string )

Constructs the tree of SDO_DataObjects from the given xml instance string. Returns SDO_DAS_XML_Document Object. Use SDO_DAS_XML_Document::getRootDataObject method to get root data object.

参数

xml_string

xml string.

返回值

Returns SDO_DAS_XML_Document object on Success or throws exception as described.

错误／异常

SDO_TypeNotFoundException

Thrown if a type is not defined by the underlying model.

SDO_PropertyNotFoundException

Thrown if the a property within a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML::loadFile
SDO_DAS_XML::saveFile
SDO DAS XML 函数


Saves the SDO_DAS_XML_Document object to a file

SDO_DAS_XML::loadString
SDO_DAS_XML::saveString
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::saveFile

(^)

SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file

说明

void SDO_DAS_XML::saveFile ( SDO_XMLDocument $xdoc , string $xml_file [, int $indent ] )

Saves the SDO_DAS_XML_Document object to a file.

参数

xdoc

SDO_DAS_XML_Document object.

xml_file

xml file.

indent

Optional argument to specify that the xml should be formatted. A non-negative integer is the amount to indent each level of the xml. So, the integer 2, for example, will indent the xml so that each contained element is two spaces further to the right than its containing element. The integer 0 will cause the xml to be completely left-aligned. The integer -1 means no formatting - the xml will come out on one long line.

返回值

None.

错误／异常

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.

SDO_DAS_XML::loadString
SDO_DAS_XML::saveString
SDO DAS XML 函数


Saves the SDO_DAS_XML_Document object to a string

SDO_DAS_XML::saveFile
SimpleXML
SDO DAS XML 函数
PHP 手册

SDO_DAS_XML::saveString

(^)

SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string

说明

string SDO_DAS_XML::saveString ( SDO_XMLDocument $xdoc [, int $indent ] )

Saves the SDO_DAS_XML_Document object to string.

参数

xdoc

SDO_DAS_XML_Document object.

indent

Optional argument to specify that the xml should be formatted. A non-negative integer is the amount to indent each level of the xml. So, the integer 2, for example, will indent the xml so that each contained element is two spaces further to the right than its containing element. The integer 0 will cause the xml to be completely left-aligned. The integer -1 means no formatting - the xml will come out on one long line.

返回值

xml string.

SDO_DAS_XML::saveFile
SimpleXML
SDO DAS XML 函数


SimpleXML

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Include file example.php with XML string
  • SimpleXML 函数
    • SimpleXMLElement::addAttribute — Adds an attribute to the SimpleXML element
    • SimpleXMLElement::addChild — Adds a child element to the XML node
    • SimpleXMLElement::asXML — Return a well-formed XML string based on SimpleXML element
    • SimpleXMLElement::attributes — Identifies an element's attributes
    • SimpleXMLElement::children — Finds children of given node
    • SimpleXMLElement::__construct — Creates a new SimpleXMLElement object
    • SimpleXMLElement::getDocNamespaces — Returns namespaces declared in document
    • SimpleXMLElement::getName — Gets the name of the XML element
    • SimpleXMLElement::getNamespaces — Returns namespaces used in document
    • SimpleXMLElement::registerXPathNamespace — Creates a prefix/ns context for the next XPath query
    • SimpleXMLElement::xpath — Runs XPath query on XML data
    • simplexml_import_dom — Get a SimpleXMLElement object from a DOM node.
    • simplexml_load_file — Interprets an XML file into an object
    • simplexml_load_string — Interprets a string of XML into an object
SDO_DAS_XML::saveString
简介
XML操作


简介

The SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

SimpleXML
安装/配置
SimpleXML


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
SimpleXML


需求

The SimpleXML extension requires PHP 5.

安装/配置
安装
安装/配置


安装

The SimpleXML extension is enabled by default. To disable it, use the --disable-simplexml configure option.

需求
运行时配置
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
SimpleXML


范例

Table of Contents

  • Include file example.php with XML string
预定义常量
Include file example.php with XML string
SimpleXML


Include file example.php with XML string

范例
SimpleXML 函数
范例
PHP 手册

Many examples in this reference require an XML string. Instead of repeating this string in every example, we put it into a file which we include in each example. This included file is shown in the following example section. Alternatively, you could create an XML document and read it with simplexml_load_file().

Example #1 Include file example.php with XML string

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.

Example #2 Getting <plot>

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo $xml->movie[0]->plot; // "So this language. It's like..."
?>

Accessing elements within an XML document that contain characters not permitted under PHP's naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.

Example #3 Getting <line>

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo $xml->movie->{'great-lines'}->line; // "PHP solves all my web problems"
?>

Example #4 Accessing non-unique elements in SimpleXML

When multiple instances of an element exist as children of a single parent element, normal iteration techniques apply.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

/* For each <movie> node, we echo a separate <plot>. */
foreach ($xml->movie as $movie) {
   echo $movie->plot, '<br />';
}

?>

Example #5 Using attributes

So far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

/* Access the <rating> nodes of the first movie.
 * Output the rating scale, too. */
foreach ($xml->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Get attributes as element indices
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

Example #6 Comparing Elements and Attributes with Text

To compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using (string). Otherwise, PHP treats the element as an object.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
    print 'My favorite movie.';
}

htmlentities((string) $xml->movie->title);
?>

Example #7 Comparing Two Elements

Two SimpleXMLElements are considered different even if they point to the same element since PHP 5.2.0.

<?php
$el1 = new SimpleXMLElement($xmlstr);
$el2 = new SimpleXMLElement($xmlstr);
var_dump($el1 == $el2); // false since PHP 5.2.0
?>

Example #8 Using XPath

SimpleXML includes built-in XPath support. To find all <character> elements:

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

foreach ($xml->xpath('//character') as $character) {
    echo $character->name, 'played by ', $character->actor, '<br />';
}
?>

'//' serves as a wildcard. To specify absolute paths, omit one of the slashes.

Example #9 Setting values

Data in SimpleXML doesn't have to be constant. The object allows for manipulation of all of its elements.

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$xml->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $xml->asXML();
?>

The above code will output a new XML document, just like the original, except that the new XML will change Ms. Coder to Miss Coder.

Example #10 Adding elements and attributes

Since PHP 5.1.3, SimpleXML has had the ability to easily add children and attributes.

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$character = $xml->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $xml->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $xml->asXML();
?>

The above code will output an XML document based on the original but having a new character and rating.

Example #11 DOM Interoperability

PHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML.

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
     echo 'Error while parsing the document';
     exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

范例
SimpleXML 函数
范例


SimpleXML 函数

Table of Contents

  • SimpleXMLElement::addAttribute — Adds an attribute to the SimpleXML element
  • SimpleXMLElement::addChild — Adds a child element to the XML node
  • SimpleXMLElement::asXML — Return a well-formed XML string based on SimpleXML element
  • SimpleXMLElement::attributes — Identifies an element's attributes
  • SimpleXMLElement::children — Finds children of given node
  • SimpleXMLElement::__construct — Creates a new SimpleXMLElement object
  • SimpleXMLElement::getDocNamespaces — Returns namespaces declared in document
  • SimpleXMLElement::getName — Gets the name of the XML element
  • SimpleXMLElement::getNamespaces — Returns namespaces used in document
  • SimpleXMLElement::registerXPathNamespace — Creates a prefix/ns context for the next XPath query
  • SimpleXMLElement::xpath — Runs XPath query on XML data
  • simplexml_import_dom — Get a SimpleXMLElement object from a DOM node.
  • simplexml_load_file — Interprets an XML file into an object
  • simplexml_load_string — Interprets a string of XML into an object
Include file example.php with XML string
SimpleXMLElement::addAttribute
SimpleXML


Adds an attribute to the SimpleXML element

SimpleXML 函数
SimpleXMLElement::addChild
SimpleXML 函数
PHP 手册

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3)

SimpleXMLElement::addAttribute — Adds an attribute to the SimpleXML element

说明

SimpleXMLElement
void addAttribute ( string $name , string $value [, string $namespace ] )

Adds an attribute to the SimpleXML element.

参数

name

The name of the attribute to add.

value

The value of the attribute.

namespace

If specified, the namespace to which the attribute belongs.

返回值

无返回值。

范例

Example #1 Add attributes and children to a SimpleXML element

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

参见

  • SimpleXMLElement::addChild

SimpleXML 函数
SimpleXMLElement::addChild
SimpleXML 函数


Adds a child element to the XML node

SimpleXMLElement::addAttribute
SimpleXMLElement::asXML
SimpleXML 函数
PHP 手册

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3)

SimpleXMLElement::addChild — Adds a child element to the XML node

说明

SimpleXMLElement
SimpleXMLElement addChild ( string $name [, string $value [, string $namespace ]] )

Adds a child element to the node and returns a SimpleXMLElement of the child.

参数

name

The name of the child element to add.

value

If specified, the value of the child element.

namespace

If specified, the namespace to which the child element belongs.

返回值

The addChild method returns a SimpleXMLElement object representing the child added to the XML node.

范例

Example #1 Add attributes and children to a SimpleXML element

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

参见

  • SimpleXMLElement::addAttribute

SimpleXMLElement::addAttribute
SimpleXMLElement::asXML
SimpleXML 函数


Return a well-formed XML string based on SimpleXML element

SimpleXMLElement::addChild
SimpleXMLElement::attributes
SimpleXML 函数
PHP 手册

SimpleXMLElement::asXML

(PHP 5 >= 5.0.1)

SimpleXMLElement::asXML — Return a well-formed XML string based on SimpleXML element

说明

SimpleXMLElement
mixed asXML ([ string $filename ] )

The asXML method formats the parent object's data in XML version 1.0.

参数

filename

If specified, the function writes the data to the file rather than returning it.

返回值

If the filename isn't specified, this function returns a string on success and FALSE on error. If the parameter is specified, it returns TRUE if the file was written successfully and FALSE otherwise.

范例

Example #1 Get XML

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

asXML also works on Xpath results:

Example #2 Using asXML() on Xpath results

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML(); // <c>text</c> and <c>stuff</c>
}
?>

SimpleXMLElement::addChild
SimpleXMLElement::attributes
SimpleXML 函数


Identifies an element's attributes

SimpleXMLElement::asXML
SimpleXMLElement::children
SimpleXML 函数
PHP 手册

SimpleXMLElement::attributes

(PHP 5 >= 5.0.1)

SimpleXMLElement::attributes — Identifies an element's attributes

说明

SimpleXMLElement
SimpleXMLElement attributes ([ string $ns [, bool $is_prefix ]] )

This function provides the attributes and values defined within an xml tag.

Note: SimpleXML 创建了一条给大部分方法增加交互式属性的规则。这些属性不能够使用 var_dump() 或其它检查对象的方法来查看。

参数

ns

An optional namespace for the retrieved attributes

is_prefix

Default to FALSE

返回值

范例

Example #1 Interpret an XML string

<?php
$string = <<<XML
<a xmlns:b>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

上例将输出：

name="one"
game="lonely"

SimpleXMLElement::asXML
SimpleXMLElement::children
SimpleXML 函数


Finds children of given node

SimpleXMLElement::attributes
SimpleXMLElement::__construct
SimpleXML 函数
PHP 手册

SimpleXMLElement::children

(PHP 5 >= 5.0.1)

SimpleXMLElement::children — Finds children of given node

说明

SimpleXMLElement
SimpleXMLElement children ([ string $ns [, bool $is_prefix ]] )

This method finds the children of the element of which it is a member. The result follows normal iteration rules.

Note: SimpleXML 创建了一条给大部分方法增加交互式属性的规则。这些属性不能够使用 var_dump() 或其它检查对象的方法来查看。

参数

ns

is_prefix

Default to FALSE

返回值

更新日志

版本 | 说明
5.2.0 | The optional parameter is_prefix was added.

范例

Example #1 Traversing a children() pseudo-array

<?php
$xml = new SimpleXMLElement(
'<person>
 <child role="son">
  <child role="daughter"/>
 </child>
 <child role="daughter">
  <child role="son">
   <child role="son"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' The person begot a ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ' who begot a ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' and that ' . $third_gen['role'] .
                ' begot a ' . $fourth_gen['role'];
        }
    }
}
?>

上例将输出：

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

SimpleXMLElement::attributes
SimpleXMLElement::__construct
SimpleXML 函数


Creates a new SimpleXMLElement object

SimpleXMLElement::children
SimpleXMLElement::getDocNamespaces
SimpleXML 函数
PHP 手册

SimpleXMLElement::__construct

(PHP 5 >= 5.0.1)

SimpleXMLElement::__construct — Creates a new SimpleXMLElement object

说明

SimpleXMLElement
__construct ( string $data [, int $options [, bool $data_is_url [, string $ns [, bool $is_prefix ]]]] )

Creates a new SimpleXMLElement object.

参数

data

A well-formed XML string or the path or URL to an XML document if data_is_url is TRUE.

options

Optionally used to specify additional Libxml parameters.

data_is_url

By default, data_is_url is FALSE. Use TRUE to specify that data is a path or URL to an XML document instead of string data.

ns

is_prefix

返回值

Returns a SimpleXMLElement object representing data .

错误／异常

Produces an E_WARNING error message for each error found in the XML data and throws an exception if errors were detected.

范例

Example #1 Create a SimpleXMLElement object

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

Example #2 Create a SimpleXMLElement object from a URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $sxe->asXML();

?>

参见

  • simplexml_load_string
  • simplexml_load_file

SimpleXMLElement::children
SimpleXMLElement::getDocNamespaces
SimpleXML 函数


Returns namespaces declared in document

SimpleXMLElement::__construct
SimpleXMLElement::getName
SimpleXML 函数
PHP 手册

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2)

SimpleXMLElement::getDocNamespaces — Returns namespaces declared in document

说明

SimpleXMLElement
array getDocNamespaces ([ bool $recursive ] )

Returns namespaces declared in document

参数

recursive

If specified, returns all namespaces declared in parent and child nodes. Otherwise, returns only namespaces declared in root node.

返回值

The getDocNamespaces method returns an array of namespace names with their associated URIs.

范例

Example #1 Get document namespaces

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

Example #2 Working with multiple namespaces

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person t:id="1">John Doe</p:person>
    <p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
        Susie Q. Public
    </p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

参见

  • SimpleXMLElement::getNamespaces
  • SimpleXMLElement::registerXPathNamespace

SimpleXMLElement::__construct
SimpleXMLElement::getName
SimpleXML 函数


Gets the name of the XML element

SimpleXMLElement::getDocNamespaces
SimpleXMLElement::getNamespaces
SimpleXML 函数
PHP 手册

SimpleXMLElement::getName

(PHP 5 >= 5.1.3)

SimpleXMLElement::getName — Gets the name of the XML element

说明

SimpleXMLElement
string getName ( void )

Gets the name of the XML element.

返回值

The getName method returns as a string the name of the XML tag referenced by the SimpleXMLElement object.

范例

Example #1 Get XML element names

<?php

$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
    echo $child->getName() . "\n";
}

?>

SimpleXMLElement::getDocNamespaces
SimpleXMLElement::getNamespaces
SimpleXML 函数


Returns namespaces used in document

SimpleXMLElement::getName
SimpleXMLElement::registerXPathNamespace
SimpleXML 函数
PHP 手册

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2)

SimpleXMLElement::getNamespaces — Returns namespaces used in document

说明

SimpleXMLElement
array getNamespaces ([ bool $recursive ] )

Returns namespaces used in document

参数

recursive

If specified, returns all namespaces used in parent and child nodes. Otherwise, returns only namespaces used in root node.

返回值

The getNamespaces method returns an array of namespace names with their associated URIs.

范例

Example #1 Get document namespaces in use

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

上例将输出：

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

参见

  • SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::registerXPathNamespace

SimpleXMLElement::getName
SimpleXMLElement::registerXPathNamespace
SimpleXML 函数


Creates a prefix/ns context for the next XPath query

SimpleXMLElement::getNamespaces
SimpleXMLElement::xpath
SimpleXML 函数
PHP 手册

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.2.0)

SimpleXMLElement::registerXPathNamespace — Creates a prefix/ns context for the next XPath query

说明

SimpleXMLElement
bool registerXPathNamespace ( string $prefix , string $ns )

Creates a prefix/ns context for the next XPath query. In particular, this is helpful if the provider of the given XML document alters the namespace prefixes. registerXPathNamespace will create a prefix for the associated namespace, allowing one to access nodes in that namespace without the need to change code to allow for the new prefixes dictated by the provider.

参数

prefix

The namespace prefix to use in the XPath query for the namespace given in ns .

ns

The namespace to use for the XPath query. This must match a namespace in use by the XML document or the XPath query using prefix will not return any results.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Setting a namespace prefix to use in an XPath query

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
            In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
            Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
            ultricies id, mauris.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
            gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
            vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
            tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
    </chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
  echo $title . "\n";
}

?>

Notice how the XML document shown in the example sets a namespace with a prefix of chap. Imagine that this document (or another one like it) may have used a prefix of c in the past for the same namespace. Since it has changed, the XPath query will no longer return the proper results and the query will require modification. Using registerXPathNamespace avoids future modification of the query even if the provider changes the namespace prefix.

参见

  • SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces

SimpleXMLElement::getNamespaces
SimpleXMLElement::xpath
SimpleXML 函数


Runs XPath query on XML data

SimpleXMLElement::registerXPathNamespace
simplexml_import_dom
SimpleXML 函数
PHP 手册

SimpleXMLElement::xpath

(PHP 5 >= 5.2.0)

SimpleXMLElement::xpath — Runs XPath query on XML data

说明

SimpleXMLElement
array xpath ( string $path )

The xpath method searches the SimpleXML node for children matching the XPath path .

参数

path

An XPath path

返回值

Returns an array of SimpleXMLElement objects or FALSE in case of an error.

范例

Example #1 Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Relative paths also work... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

上例将输出：

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notice that the two results are equal.

SimpleXMLElement::registerXPathNamespace
simplexml_import_dom
SimpleXML 函数


Get a SimpleXMLElement object from a DOM node.

SimpleXMLElement::xpath
simplexml_load_file
SimpleXML 函数
PHP 手册

simplexml_import_dom

(PHP 5)

simplexml_import_dom — Get a SimpleXMLElement object from a DOM node.

说明

SimpleXMLElement simplexml_import_dom ( DOMNode $node [, string $class_name="SimpleXMLElement" ] )

This function takes a node of a DOM document and makes it into a SimpleXML node. This new object can then be used as a native SimpleXML element.

参数

node

A DOM Element node

class_name

You may use this optional parameter so that simplexml_import_dom() will return an object of the specified class. That class should extend the SimpleXMLElement class.

返回值

Returns a SimpleXMLElement or FALSE on failure.

范例

Example #1 Importing DOM

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
    echo 'Error while parsing the document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // blah
?>

参见

  • dom_import_simplexml() - Gets a DOMElement object from a SimpleXMLElement object

SimpleXMLElement::xpath
simplexml_load_file
SimpleXML 函数


Interprets an XML file into an object

simplexml_import_dom
simplexml_load_string
SimpleXML 函数
PHP 手册

simplexml_load_file

(PHP 5)

simplexml_load_file — Interprets an XML file into an object

说明

object simplexml_load_file ( string $filename [, string $class_name="SimpleXMLElement" [, int $options=0 [, string $ns [, bool $is_prefix=false ]]]] )

Convert the well-formed XML document in the given file to an object.

参数

filename

Path to the XML file

Note: Libxml 2 unescapes the URI, so if you want to pass e.g. b&c as the URI parameter a, you have to call simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Since PHP 5.1.0 you don't need to do this because PHP will do it for you.

class_name

You may use this optional parameter so that simplexml_load_file() will return an object of the specified class. That class should extend the SimpleXMLElement class.

options

Since PHP 5.1.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters.

ns

is_prefix

返回值

Returns an object of class SimpleXMLElement with properties containing the data held within the XML document. On errors, it will return FALSE.

范例

Example #1 Interpret an XML document

<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    print_r($xml);
} else {
    exit('Failed to open test.xml.');
}
?>

This script will display, on success:

SimpleXMLElement Object
(
  [title] => Example Title
  ...
)

At this point, you can go about using $xml->title and any other elements.

参见

  • simplexml_load_string
  • SimpleXMLElement::__construct

simplexml_import_dom
simplexml_load_string
SimpleXML 函数


Interprets a string of XML into an object

simplexml_load_file
WDDX
SimpleXML 函数
PHP 手册

simplexml_load_string

(PHP 5)

simplexml_load_string — Interprets a string of XML into an object

说明

object simplexml_load_string ( string $data [, string $class_name="SimpleXMLElement" [, int $options=0 [, string $ns [, bool $is_prefix=false ]]]] )

Takes a well-formed XML string and returns it as an object.

参数

data

A well-formed XML string

class_name

You may use this optional parameter so that simplexml_load_string() will return an object of the specified class. That class should extend the SimpleXMLElement class.

options

Since PHP 5.1.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters.

ns

is_prefix

返回值

Returns an object of class SimpleXMLElement with properties containing the data held within the xml document. On errors, it will return FALSE.

范例

Example #1 Interpret an XML string

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</document>
XML;

$xml = simplexml_load_string($string);

var_dump($xml);
?>

上例将输出：

SimpleXMLElement Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

At this point, you can go about using $xml->body and such.

参见

  • simplexml_load_file
  • SimpleXMLElement::__construct

simplexml_load_file
WDDX
SimpleXML 函数


WDDX

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • Serializing a single value with WDDX
  • WDDX 函数
    • wddx_add_vars — Add variables to a WDDX packet with the specified ID
    • wddx_deserialize — 别名 wddx_unserialize
    • wddx_packet_end — Ends a WDDX packet with the specified ID
    • wddx_packet_start — Starts a new WDDX packet with structure inside it
    • wddx_serialize_value — Serialize a single value into a WDDX packet
    • wddx_serialize_vars — Serialize variables into a WDDX packet
    • wddx_unserialize — Unserializes a WDDX packet
simplexml_load_string
简介
XML操作


简介

These functions are intended for work with » WDDX.

WDDX
安装/配置
WDDX


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
WDDX


需求

In order to use WDDX, you will need to install the expat library (which comes with Apache 1.3.7 or higher).

安装/配置
安装
安装/配置


安装

After installing expat compile PHP with --enable-wddx.

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


资源类型

This extension defines a WDDX packet identifier returned by wddx_packet_start().

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
范例
WDDX


范例

Table of Contents

  • Serializing a single value with WDDX
预定义常量
Serializing a single value with WDDX
WDDX


Serializing a single value with WDDX

范例
WDDX 函数
范例
PHP 手册

All the functions that serialize variables use the first element of an array to determine whether the array is to be serialized into an array or structure. If the first element has string key, then it is serialized into a structure, otherwise, into an array.

Example #1 Serializing a single value with WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Example #2 Using incremental packets with WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Note: If you want to serialize non-ASCII characters you have to convert your data to UTF-8 first (see utf8_encode() and iconv()).

范例
WDDX 函数
范例


WDDX 函数

Table of Contents

  • wddx_add_vars — Add variables to a WDDX packet with the specified ID
  • wddx_deserialize — 别名 wddx_unserialize
  • wddx_packet_end — Ends a WDDX packet with the specified ID
  • wddx_packet_start — Starts a new WDDX packet with structure inside it
  • wddx_serialize_value — Serialize a single value into a WDDX packet
  • wddx_serialize_vars — Serialize variables into a WDDX packet
  • wddx_unserialize — Unserializes a WDDX packet
Serializing a single value with WDDX
wddx_add_vars
WDDX


Add variables to a WDDX packet with the specified ID

WDDX 函数
wddx_deserialize
WDDX 函数
PHP 手册

wddx_add_vars

(PHP 4, PHP 5)

wddx_add_vars — Add variables to a WDDX packet with the specified ID

说明

bool wddx_add_vars ( resource $packet_id , mixed $var_name [, mixed $... ] )

Serializes the passed variables and add the result to the given packet.

参数

This function takes a variable number of parameters.

packet_id

A WDDX packet, returned by wddx_packet_start().

var_name

Can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

...

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

WDDX 函数
wddx_deserialize
WDDX 函数


别名 wddx_unserialize

wddx_add_vars
wddx_packet_end
WDDX 函数
PHP 手册

wddx_deserialize

(PHP 4, PHP 5)

wddx_deserialize — 别名 wddx_unserialize()

说明

本函数是该函数的别名： wddx_unserialize().

wddx_add_vars
wddx_packet_end
WDDX 函数


Ends a WDDX packet with the specified ID

wddx_deserialize
wddx_packet_start
WDDX 函数
PHP 手册

wddx_packet_end

(PHP 4, PHP 5)

wddx_packet_end — Ends a WDDX packet with the specified ID

说明

string wddx_packet_end ( resource $packet_id )

Ends and returns the given WDDX packet.

参数

packet_id

A WDDX packet, returned by wddx_packet_start().

返回值

Returns the string containing the WDDX packet.

wddx_deserialize
wddx_packet_start
WDDX 函数


Starts a new WDDX packet with structure inside it

wddx_packet_end
wddx_serialize_value
WDDX 函数
PHP 手册

wddx_packet_start

(PHP 4, PHP 5)

wddx_packet_start — Starts a new WDDX packet with structure inside it

说明

resource wddx_packet_start ([ string $comment ] )

Start a new WDDX packet for incremental addition of variables. It automatically creates a structure definition inside the packet to contain the variables.

参数

comment

An optional comment string.

返回值

Returns a packet ID for use in later functions, or FALSE on error.

wddx_packet_end
wddx_serialize_value
WDDX 函数


Serialize a single value into a WDDX packet

wddx_packet_start
wddx_serialize_vars
WDDX 函数
PHP 手册

wddx_serialize_value

(PHP 4, PHP 5)

wddx_serialize_value — Serialize a single value into a WDDX packet

说明

string wddx_serialize_value ( mixed $var [, string $comment ] )

Creates a WDDX packet from a single given value.

参数

var

The value to be serialized

comment

An optional comment string that appears in the packet header.

返回值

Returns the WDDX packet, or FALSE on error.

wddx_packet_start
wddx_serialize_vars
WDDX 函数


Serialize variables into a WDDX packet

wddx_serialize_value
wddx_unserialize
WDDX 函数
PHP 手册

wddx_serialize_vars

(PHP 4, PHP 5)

wddx_serialize_vars — Serialize variables into a WDDX packet

说明

string wddx_serialize_vars ( mixed $var_name [, mixed $... ] )

Creates a WDDX packet with a structure that contains the serialized representation of the passed variables.

参数

This function takes a variable number of parameters.

var_name

Can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

...

返回值

Returns the WDDX packet, or FALSE on error.

范例

Example #1 wddx_serialize_vars() example

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

上例将输出：

<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>

wddx_serialize_value
wddx_unserialize
WDDX 函数


Unserializes a WDDX packet

wddx_serialize_vars
XML Parser
WDDX 函数
PHP 手册

wddx_unserialize

(PHP 4, PHP 5)

wddx_unserialize — Unserializes a WDDX packet

说明

mixed wddx_unserialize ( string $packet )

Unserializes a WDDX packet .

参数

packet

A WDDX packet, as a string or stream.

返回值

Returns the unserialized value which can be a string, a number or an array. Note that structures are unserialized into associative arrays.

wddx_serialize_vars
XML Parser
WDDX 函数


XML Parser

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • Event Handlers
  • Case Folding
  • Error Codes
  • Character Encoding
  • 范例
    • XML Element Structure Example
    • XML Tag Mapping Example
    • XML External Entity Example
  • XML Parser 函数
    • utf8_decode — 将用 UTF-8 方式编码的 ISO-8859-1 字符串转换成单字节的 ISO-8859-1 字符串。
    • utf8_encode — 将 ISO-8859-1 编码的字符串转换为 UTF-8 编码
    • xml_error_string — 获取 XML 解析器的错误字符串
    • xml_get_current_byte_index — 获取 XML 解析器的当前字节索引
    • xml_get_current_column_number — 获取 XML 解析器的当前列号
    • xml_get_current_line_number — 获取 XML 解析器的当前行号
    • xml_get_error_code — 获取 XML 解析器错误代码
    • xml_parse_into_struct — 将 XML 数据解析到数组中
    • xml_parse — 开始解析一个 XML 文档
    • xml_parser_create_ns — 生成一个支持命名空间的 XML 解析器
    • xml_parser_create — 建立一个 XML 解析器
    • xml_parser_free — 释放指定的 XML 解析器
    • xml_parser_get_option — 从 XML 解析器获取选项设置信息
    • xml_parser_set_option — 为指定 XML 解析进行选项设置
    • xml_set_character_data_handler — 建立字符数据处理器
    • xml_set_default_handler — 建立默认处理器
    • xml_set_element_handler — 建立起始和终止元素处理器
    • xml_set_end_namespace_decl_handler — 建立终止命名空间声明处理器
    • xml_set_external_entity_ref_handler — 建立外部实体指向处理器
    • xml_set_notation_decl_handler — 建立注释声明处理器
    • xml_set_object — 在对象中使用 XML 解析器
    • xml_set_processing_instruction_handler — 建立处理指令（PI）处理器
    • xml_set_start_namespace_decl_handler — 建立起始命名空间声明处理器
    • xml_set_unparsed_entity_decl_handler — 建立未解析实体定义声明处理器
wddx_unserialize
简介
XML操作


简介

XML (eXtensible Markup Language) is a data format for structured document interchange on the Web. It is a standard defined by The World Wide Web consortium (W3C). Information about XML and related technologies can be found at » http://www.w3.org/XML/.

This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. It supports three source character encodings also provided by PHP: US-ASCII, ISO-8859-1 and UTF-8. UTF-16 is not supported.

This extension lets you create XML parsers and then define handlers for different XML events. Each XML parser also has a few parameters you can adjust.

XML Parser
安装/配置
XML Parser


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
XML Parser


需求

This extension uses an expat compat layer by default. It can use also expat, which can be found at » http://www.jclark.com/xml/expat.html. The Makefile that comes with expat does not build a library by default, you can use this make rule for that:

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@

A source RPM package of expat can be found at » http://sourceforge.net/projects/expat/.

安装/配置
安装
安装/配置


安装

这些函数默认为有效的，它们使用了捆绑的 expat 库。您可以通过参数 --disable-xml 来屏蔽 XML 的支持。如果您将 PHP 编译为 Apache 1.3.9 或更高版本的一个模块， PHP 将自动使用 Apache 捆绑的 expat 库。如果您不希望使用该捆绑的 expat 库，请在运行 PHP 的 configure 配置脚本时使用参数 --with-expat-dir=DIR，其中 DIR 应该指向 expat 安装的根目录。

PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。

需求
运行时配置
安装/配置


资源类型

The xml resource as returned by xml_parser_create() and xml_parser_create_ns() references an xml parser instance to be used with the functions provided by this extension.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XML_ERROR_NONE (integer)
XML_ERROR_NO_MEMORY (integer)
XML_ERROR_SYNTAX (integer)
XML_ERROR_NO_ELEMENTS (integer)
XML_ERROR_INVALID_TOKEN (integer)
XML_ERROR_UNCLOSED_TOKEN (integer)
XML_ERROR_PARTIAL_CHAR (integer)
XML_ERROR_TAG_MISMATCH (integer)
XML_ERROR_DUPLICATE_ATTRIBUTE (integer)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)
XML_ERROR_PARAM_ENTITY_REF (integer)
XML_ERROR_UNDEFINED_ENTITY (integer)
XML_ERROR_RECURSIVE_ENTITY_REF (integer)
XML_ERROR_ASYNC_ENTITY (integer)
XML_ERROR_BAD_CHAR_REF (integer)
XML_ERROR_BINARY_ENTITY_REF (integer)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)
XML_ERROR_MISPLACED_XML_PI (integer)
XML_ERROR_UNKNOWN_ENCODING (integer)
XML_ERROR_INCORRECT_ENCODING (integer)
XML_ERROR_UNCLOSED_CDATA_SECTION (integer)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)
XML_OPTION_CASE_FOLDING (integer)
XML_OPTION_TARGET_ENCODING (integer)
XML_OPTION_SKIP_TAGSTART (integer)
XML_OPTION_SKIP_WHITE (integer)
资源类型
Event Handlers
XML Parser


Event Handlers

The XML event handlers defined are:

Supported XML handlers
PHP function to set handler | Event description
xml_set_element_handler() | Element events are issued whenever the XML parser encounters start or end tags. There are separate handlers for start tags and end tags.
xml_set_character_data_handler() | Character data is roughly all the non-markup contents of XML documents, including whitespace between tags. Note that the XML parser does not add or remove any whitespace, it is up to the application (you) to decide whether whitespace is significant.
xml_set_processing_instruction_handler() | PHP programmers should be familiar with processing instructions (PIs) already. <?php ?> is a processing instruction, where php is called the "PI target". The handling of these are application-specific, except that all PI targets starting with "XML" are reserved.
xml_set_default_handler() | What goes not to another handler goes to the default handler. You will get things like the XML and document type declarations in the default handler.
xml_set_unparsed_entity_decl_handler() | This handler will be called for declaration of an unparsed (NDATA) entity.
xml_set_notation_decl_handler() | This handler is called for declaration of a notation.
xml_set_external_entity_ref_handler() | This handler is called when the XML parser finds a reference to an external parsed general entity. This can be a reference to a file or URL, for example. See the external entity example for a demonstration.

预定义常量
Case Folding
XML Parser


Case Folding

The element handler functions may get their element names case-folded. Case-folding is defined by the XML standard as "a process applied to a sequence of characters, in which those identified as non-uppercase are replaced by their uppercase equivalents". In other words, when it comes to XML, case-folding simply means uppercasing.

By default, all the element names that are passed to the handler functions are case-folded. This behaviour can be queried and controlled per XML parser with the xml_parser_get_option() and xml_parser_set_option() functions, respectively.

Event Handlers
Error Codes
XML Parser


Error Codes

The following constants are defined for XML error codes (as returned by xml_parse()):

  • XML_ERROR_NONE
  • XML_ERROR_NO_MEMORY
  • XML_ERROR_SYNTAX
  • XML_ERROR_NO_ELEMENTS
  • XML_ERROR_INVALID_TOKEN
  • XML_ERROR_UNCLOSED_TOKEN
  • XML_ERROR_PARTIAL_CHAR
  • XML_ERROR_TAG_MISMATCH
  • XML_ERROR_DUPLICATE_ATTRIBUTE
  • XML_ERROR_JUNK_AFTER_DOC_ELEMENT
  • XML_ERROR_PARAM_ENTITY_REF
  • XML_ERROR_UNDEFINED_ENTITY
  • XML_ERROR_RECURSIVE_ENTITY_REF
  • XML_ERROR_ASYNC_ENTITY
  • XML_ERROR_BAD_CHAR_REF
  • XML_ERROR_BINARY_ENTITY_REF
  • XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
  • XML_ERROR_MISPLACED_XML_PI
  • XML_ERROR_UNKNOWN_ENCODING
  • XML_ERROR_INCORRECT_ENCODING
  • XML_ERROR_UNCLOSED_CDATA_SECTION
  • XML_ERROR_EXTERNAL_ENTITY_HANDLING

Case Folding
Character Encoding
XML Parser


Character Encoding

PHP's XML extension supports the » Unicode character set through different character encodings. There are two types of character encodings, source encoding and target encoding. PHP's internal representation of the document is always encoded with UTF-8.

Source encoding is done when an XML document is parsed. Upon creating an XML parser, a source encoding can be specified (this encoding can not be changed later in the XML parser's lifetime). The supported source encodings are ISO-8859-1, US-ASCII and UTF-8. The former two are single-byte encodings, which means that each character is represented by a single byte. UTF-8 can encode characters composed by a variable number of bits (up to 21) in one to four bytes. The default source encoding used by PHP is ISO-8859-1.

Target encoding is done when PHP passes data to XML handler functions. When an XML parser is created, the target encoding is set to the same as the source encoding, but this may be changed at any point. The target encoding will affect character data as well as tag names and processing instruction targets.

If the XML parser encounters characters outside the range that its source encoding is capable of representing, it will return an error.

If PHP encounters characters in the parsed XML document that can not be represented in the chosen target encoding, the problem characters will be "demoted". Currently, this means that such characters are replaced by a question mark.

Error Codes
范例
XML Parser


范例

Table of Contents

  • XML Element Structure Example
  • XML Tag Mapping Example
  • XML External Entity Example
Character Encoding
XML Element Structure Example
XML Parser


XML Element Structure Example

This first example displays the structure of the start elements in a document with indentation.

Example #1 Show XML Element Structure

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

范例
XML Tag Mapping Example
范例


XML Tag Mapping Example

Example #1 Map XML to HTML

This example maps tags in an XML document directly to HTML tags. Elements not found in the "map array" are ignored. Of course, this example will only work with a specific XML document type.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "<$map_array[$name]>";
    }
}

function endElement($parser, $name)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "</$map_array[$name]>";
    }
}

function characterData($parser, $data)
{
    echo $data;
}

$xml_parser = xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML Element Structure Example
XML External Entity Example
范例


XML External Entity Example

This example highlights XML code. It illustrates how to use an external entity reference handler to include and parse other documents, as well as how PIs can be processed, and a way of determining "trust" for PIs containing code.

XML documents that can be used for this example are found below the example (xmltest.xml and xmltest2.xml.)

Example #1 External Entity Example

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // only trust local files owned by ourselves
    if (!preg_match("@^([a-z]+)\:\/\/@i", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (count($attribs)) {
        foreach ($attribs as $k => $v) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name)
{
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // If the parsed document is "trusted", we say it is safe
            // to execute PHP code inside it.  If not, display the code
            // instead.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Example #2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

This file is included from xmltest.xml:

Example #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "This is some more PHP code being executed."; ?>
</foo>

XML Tag Mapping Example
XML Parser 函数
范例


XML Parser 函数

Table of Contents

  • utf8_decode — 将用 UTF-8 方式编码的 ISO-8859-1 字符串转换成单字节的 ISO-8859-1 字符串。
  • utf8_encode — 将 ISO-8859-1 编码的字符串转换为 UTF-8 编码
  • xml_error_string — 获取 XML 解析器的错误字符串
  • xml_get_current_byte_index — 获取 XML 解析器的当前字节索引
  • xml_get_current_column_number — 获取 XML 解析器的当前列号
  • xml_get_current_line_number — 获取 XML 解析器的当前行号
  • xml_get_error_code — 获取 XML 解析器错误代码
  • xml_parse_into_struct — 将 XML 数据解析到数组中
  • xml_parse — 开始解析一个 XML 文档
  • xml_parser_create_ns — 生成一个支持命名空间的 XML 解析器
  • xml_parser_create — 建立一个 XML 解析器
  • xml_parser_free — 释放指定的 XML 解析器
  • xml_parser_get_option — 从 XML 解析器获取选项设置信息
  • xml_parser_set_option — 为指定 XML 解析进行选项设置
  • xml_set_character_data_handler — 建立字符数据处理器
  • xml_set_default_handler — 建立默认处理器
  • xml_set_element_handler — 建立起始和终止元素处理器
  • xml_set_end_namespace_decl_handler — 建立终止命名空间声明处理器
  • xml_set_external_entity_ref_handler — 建立外部实体指向处理器
  • xml_set_notation_decl_handler — 建立注释声明处理器
  • xml_set_object — 在对象中使用 XML 解析器
  • xml_set_processing_instruction_handler — 建立处理指令（PI）处理器
  • xml_set_start_namespace_decl_handler — 建立起始命名空间声明处理器
  • xml_set_unparsed_entity_decl_handler — 建立未解析实体定义声明处理器
XML External Entity Example
utf8_decode
XML Parser


将用 UTF-8 方式编码的 ISO-8859-1 字符串转换成单字节的 ISO-8859-1 字符串。

XML Parser 函数
utf8_encode
XML Parser 函数
PHP 手册

utf8_decode

(PHP 4, PHP 5)

utf8_decode — 将用 UTF-8 方式编码的 ISO-8859-1 字符串转换成单字节的 ISO-8859-1 字符串。

描述

string utf8_decode ( string $data )

该函数将用 UTF-8 编码的数据解码为 ISO-8859-1 编码。

请参阅 utf8_encode() 以查看关于 UTF-8 编码的解释。

XML Parser 函数
utf8_encode
XML Parser 函数


将 ISO-8859-1 编码的字符串转换为 UTF-8 编码

utf8_decode
xml_error_string
XML Parser 函数
PHP 手册

utf8_encode

(PHP 4, PHP 5)

utf8_encode — 将 ISO-8859-1 编码的字符串转换为 UTF-8 编码

描述

string utf8_encode ( string $data )

该函数将 data 字符串转换为 UTF-8 编码，并返回编码后的字符串。UTF-8 是一种用于将宽字符值转换为字节流的 Unicode 的标准机制。UTF-8 对于纯 ASCII 字符来说是透明的，且是自同步的（也就是说这使得程序能够得知字符从字节流的何处开始），并可被普通字符串比较函数用以比较等操作。PHP 可将 UTF-8 编码为多达四个字节的字符，如：

UTF-8 编码
字节（bytes） | 位（bits） | 表 示
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb

每个 UTF-8 表示一个能被用以储存字符数据的位。

utf8_decode
xml_error_string
XML Parser 函数


获取 XML 解析器的错误字符串

utf8_encode
xml_get_current_byte_index
XML Parser 函数
PHP 手册

xml_error_string

(PHP 4, PHP 5)

xml_error_string — 获取 XML 解析器的错误字符串

说明

string xml_error_string ( int $code )

根据给定的 code 获得 XML 解析器错误字符串。

参数

code

由 xml_get_error_code() 返回的错误代码。

返回值

返回与 code 描述的错误代码参数对应的文本描述字符串，若没有与之对应的描述，则返回 FALSE。

参见

  • xml_get_error_code() - 获取 XML 解析器错误代码

utf8_encode
xml_get_current_byte_index
XML Parser 函数


获取 XML 解析器的当前字节索引

xml_error_string
xml_get_current_column_number
XML Parser 函数
PHP 手册

xml_get_current_byte_index

(PHP 4, PHP 5)

xml_get_current_byte_index — 获取 XML 解析器的当前字节索引

说明

int xml_get_current_byte_index ( resource $parser )

获取指定的 XML 解析器的当前字节索引（current byte index）。

参数

parser

一个指向要取得字节索引的 XML 解析器的引用。

返回值

如果 parser 没有指向一个合法的解析器，该函数将返回 FALSE，否则将返回解析器当前在其数据缓冲区中的字节索引（起始值为 0）。

参见

  • xml_get_current_column_index()
  • xml_get_current_line_index()

xml_error_string
xml_get_current_column_number
XML Parser 函数


获取 XML 解析器的当前列号

xml_get_current_byte_index
xml_get_current_line_number
XML Parser 函数
PHP 手册

xml_get_current_column_number

(PHP 4, PHP 5)

xml_get_current_column_number — 获取 XML 解析器的当前列号

说明

int xml_get_current_column_number ( resource $parser )

获得指定 XML 解析器当前的列号。

参数

parser

一个指向要获取列号的 XML 解析器的指针。

返回值

如果 parser 参数没有指向一个合法的解析器，该函数将返回 FALSE，否则将返回指定解析器所在行（由函数 xml_get_current_line_number() 给定）的当前列号。

参见

  • xml_get_current_byte_index() - 获取 XML 解析器的当前字节索引
  • xml_get_current_line_index()

xml_get_current_byte_index
xml_get_current_line_number
XML Parser 函数


获取 XML 解析器的当前行号

xml_get_current_column_number
xml_get_error_code
XML Parser 函数
PHP 手册

xml_get_current_line_number

(PHP 4, PHP 5)

xml_get_current_line_number — 获取 XML 解析器的当前行号

说明

int xml_get_current_line_number ( resource $parser )

获取指定 XML 解析器当前的行号。

参数

parser

一个指向要获取当前行号的 XML 解析器的指针。

返回值

如果 parser 参数没有指向一个合法的解析器，该函数将返回 FALSE，否则将返回指定解析器在其缓存中的当前行号。

参见

  • xml_get_current_column_index()
  • xml_get_current_byte_index() - 获取 XML 解析器的当前字节索引

xml_get_current_column_number
xml_get_error_code
XML Parser 函数


获取 XML 解析器错误代码

xml_get_current_line_number
xml_parse_into_struct
XML Parser 函数
PHP 手册

xml_get_error_code

(PHP 4, PHP 5)

xml_get_error_code — 获取 XML 解析器错误代码

说明

int xml_get_error_code ( resource $parser )

获取 XML 解析器错误代码。

参数

parser

一个指向要返回错误代码的 XML 解析器的指针

返回值

如果 parser 参数没有指向一个合法的解析器，该函数将返回 FALSE，否则将返回错误代码列表中的一个错误代码。

参见

  • xml_error_string() - 获取 XML 解析器的错误字符串

xml_get_current_line_number
xml_parse_into_struct
XML Parser 函数


将 XML 数据解析到数组中

xml_get_error_code
xml_parse
XML Parser 函数
PHP 手册

xml_parse_into_struct

(PHP 4, PHP 5)

xml_parse_into_struct — 将 XML 数据解析到数组中

说明

int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )

该函数将 XML 文件解析到两个对应的数组中，index 参数含有指向 values 数组中对应值的指针。最后两个数组参数可由指针传递给函数。

Note: xml_parse_into_struct() 失败返回 0，成功返回 1。这和 FALSE 与 TRUE 不同，使用例如 === 的运算符时要注意。

以下范例显示了由该函数生成的数组的内部结构。我们简单地将一个 note 嵌入到一个 para 标记中，解析后我们可以打印出生成的数组的结构：

Example #1 xml_parse_into_struct() 示例

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

运行以上代码，我们得到的输出将是：

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

如果您的 XML 文档很复杂，基于该文档的事件处理（Event-driven）解析（基于 expat 扩展库）也会对应的变得复杂。该函数生成的并非 DOM 风格的对象，而是横向的树状结构。因此，我们能够方便的建立表达 XML 文件数据的对象。我们假设以下 XML 文件表示一个关于氨基酸信息的小型数据库：

Example #2 moldb.xml - 分子信息的小型数据库

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>

以下是解析该文档并生成相应对象的代码：

Example #3 parsemoldb.php - 将 moldb.xml 解析到分子（molecular）对象的数组中

<?php

class AminoAcid {
    var $name;  // aa 姓名
    var $symbol;    // 三字母符号
    var $code;  // 单字母代码
    var $type;  // hydrophobic, charged 或 neutral

    function AminoAcid ($aa)
    {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename)
{
    // 读取 aminoacids 的 XML 数据
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // 遍历 XML 结构
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues)
{
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);

?>

在执行完 parsemoldb.php 后，变量 $db 将包含有一个由 AminoAcid 对象组成的数组，该脚本的输出如下：

** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

xml_get_error_code
xml_parse
XML Parser 函数


开始解析一个 XML 文档

xml_parse_into_struct
xml_parser_create_ns
XML Parser 函数
PHP 手册

xml_parse

(PHP 4, PHP 5)

xml_parse — 开始解析一个 XML 文档

说明

int xml_parse ( resource $parser , string $data [, bool $is_final ] )

xml_parse() 解析 XML 文档。已配置事件的处理器根据需要被无限次调用。

参数

parser

一个指向将要使用的 XML 解析器的指针

data

需要解析的数据集。您可以多次对新的数据调用 xml_parse() 函数来分段解析一个文档；只要在解析最后一段数据时将 is_final 参数设置为 TRUE。

is_final

如果被设置为 TRUE，则 data 为当前解析中最后一段数据。

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

若解析失败，可以使用如下函数获取错误信息：
xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() 和
xml_get_current_byte_index()。

Note: 将 is_final 参数设置为 TRUE，项目的错误将会报告在数据的末尾。

xml_parse_into_struct
xml_parser_create_ns
XML Parser 函数


生成一个支持命名空间的 XML 解析器

xml_parse
xml_parser_create
XML Parser 函数
PHP 手册

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_ns — 生成一个支持命名空间的 XML 解析器

描述

resource xml_parser_create_ns ([ string $encoding [, string $sep ]] )

函数 xml_parser_create_ns() 建立一个新的支持 XML 命名空间的解析器并返回可被其它 XML 函数使用的资源句柄。

通过有命名空间支持的解析器，传递给各种各样句柄函数的标签参数将由命名空间和标签名组成。命名空间和标签名的分隔符由 seperator 参数制定的字符串决定，其默认值为“:”。

可选参数 encoding 在 PHP 4 中用来指定要被解析的 XML 输入的字符编码方式。PHP 5 开始，自动侦测输入的 XML 的编码，因此 encoding 参数仅用来指定解析后输出数据的编码。在 PHP 4 总，默认输出的编码与输入数据的编码是相同的。如果传递了空字符串，解析器会尝试搜索头 3 或 4 个字节以确定文档的编码。在 PHP 5.0.0 和 5.0.1 总，默认输出的字符编码是 ISO-8859-1，而 PHP 5.0.2 及以上版本是 UTF-8。解析器支持的编码有 ISO-8859-1, UTF-8 和 US-ASCII。

请参阅函数 xml_parser_create() 和 xml_parser_free()。

xml_parse
xml_parser_create
XML Parser 函数


建立一个 XML 解析器

xml_parser_create_ns
xml_parser_free
XML Parser 函数
PHP 手册

xml_parser_create

(PHP 4, PHP 5)

xml_parser_create — 建立一个 XML 解析器

描述

resource xml_parser_create ([ string $encoding ] )

函数 xml_parser_create() 建立一个新的 XML 解析器并返回可被其它 XML 函数使用的资源句柄。

可选参数 encoding 在 PHP 4 中用来指定要被解析的 XML 输入的字符编码方式。PHP 5 开始，自动侦测输入的 XML 的编码，因此 encoding 参数仅用来指定解析后输出数据的编码。在 PHP 4 总，默认输出的编码与输入数据的编码是相同的。如果传递了空字符串，解析器会尝试搜索头 3 或 4 个字节以确定文档的编码。在 PHP 5.0.0 和 5.0.1 总，默认输出的字符编码是 ISO-8859-1，而 PHP 5.0.2 及以上版本是 UTF-8。解析器支持的编码有 ISO-8859-1, UTF-8 和 US-ASCII。

请参阅函数 xml_parser_create_ns() 和 xml_parser_free()。

xml_parser_create_ns
xml_parser_free
XML Parser 函数


释放指定的 XML 解析器

xml_parser_create
xml_parser_get_option
XML Parser 函数
PHP 手册

xml_parser_free

(PHP 4, PHP 5)

xml_parser_free — 释放指定的 XML 解析器

描述

bool xml_parser_free ( resource $parser )

parser
指向要释放的 XML 解析器的指针。

如果 parser 参数没有指向一个合法的解析器，该函数将返回 FALSE，否则将释放指定的解析器并返回 TRUE。

xml_parser_create
xml_parser_get_option
XML Parser 函数


从 XML 解析器获取选项设置信息

xml_parser_free
xml_parser_set_option
XML Parser 函数
PHP 手册

xml_parser_get_option

(PHP 4, PHP 5)

xml_parser_get_option — 从 XML 解析器获取选项设置信息

描述

mixed xml_parser_get_option ( resource $parser , int $option )

parser
指向要获取设置信息的 XML 解析器的指针。
option
要获取的设置选项名称。可以使用 XML_OPTION_CASE_FOLDING 和 XML_OPTION_TARGET_ENCODING 常量。其说明见 xml_parser_set_option()。

如果 parser 参数没有指向一个合法的解析器或者 option 参数无效，该函数将返回 FALSE（同时产生 E_WARNING 警告）。否则将返回指定设置选项的值。

xml_parser_free
xml_parser_set_option
XML Parser 函数


为指定 XML 解析进行选项设置

xml_parser_get_option
xml_set_character_data_handler
XML Parser 函数
PHP 手册

xml_parser_set_option

(PHP 4, PHP 5)

xml_parser_set_option — 为指定 XML 解析进行选项设置

说明

bool xml_parser_set_option ( resource $parser , int $option , mixed $value )

parser
指向要设置选项信息的 XML 解析器的指针。
option
要设置的选项名称。请参考下文。
value
要给选项设置的新值。

如果 parser 参数没有指向一个合法的解析器或者指定的选项无法设置，该函数将返回 FALSE，否则将会把选项设置为指定的值并返回 TRUE。

可被设置的选项如下：

XML 解析器选项
选项常量 | 数据类型 | 描述
XML_OPTION_CASE_FOLDING | integer | 控制在该 XML 解析器中 大小写折叠（case-folding） 是否有效。其默认值为有效。
XML_OPTION_SKIP_TAGSTART | integer | 指明在一个标记名前应略过几个字符。
XML_OPTION_SKIP_WHITE | integer | 是否略过由白空字符组成的值。
XML_OPTION_TARGET_ENCODING | string | 设置该 XML 解析器所使用的目标编码（target encoding）方式。其默认值和由 xml_parser_create() 函数设置的源编码（source encoding）方式相同。支持的目标编码方式有 ISO-8859-1、US-ASCII 和 UTF-8。

xml_parser_get_option
xml_set_character_data_handler
XML Parser 函数


建立字符数据处理器

xml_parser_set_option
xml_set_default_handler
XML Parser 函数
PHP 手册

xml_set_character_data_handler

(PHP 4, PHP 5)

xml_set_character_data_handler — 建立字符数据处理器

说明

bool xml_set_character_data_handler ( resource $parser , callback $handler )

为 parser 变量指向的 XML 解析器指定字符数据处理函数。handler 为表示一个函数名称的字符串，该函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

由 handler 参数命名的函数名必须接受两个参数：

handler ( resource $parser , string $data )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
data
第二个参数 data 为包含有字符数据的字符串。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE，如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_parser_set_option
xml_set_default_handler
XML Parser 函数


建立默认处理器

xml_set_character_data_handler
xml_set_element_handler
XML Parser 函数
PHP 手册

xml_set_default_handler

(PHP 4, PHP 5)

xml_set_default_handler — 建立默认处理器

说明

bool xml_set_default_handler ( resource $parser , callback $handler )

为 parser 指定的 XML 处理器建立默认处理函数。handler 为表示一个函数名称的字符串，该函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

由 handler 参数命名的函数名必须接受两个参数：

handler ( resource $parser , string $data )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
data
第二个参数 data 为包含有字符数据的字符串。其内容可以是 XML 声明、文档类型声明、实体名或者其它没有已存在处理器的地数据。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE，如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_character_data_handler
xml_set_element_handler
XML Parser 函数


建立起始和终止元素处理器

xml_set_default_handler
xml_set_end_namespace_decl_handler
XML Parser 函数
PHP 手册

xml_set_element_handler

(PHP 4, PHP 5)

xml_set_element_handler — 建立起始和终止元素处理器

说明

bool xml_set_element_handler ( resource $parser , callback $start_element_handler , callback $end_element_handler )

为 parser 参数指定的 XML 解析器建立元素处理器函数。参数 start_element_handler 和 end_element_handler 为表示函数名称的字符串，这些函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

由 start_element_handler 参数命名的函数名必须接受三个参数：

start_element_handler ( resource $parser , string $name , array $attribs )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
name
第二个参数 name 为该处理器为之被调用的元素名。如果大小写折叠（case-folding）对该解析器有效，元素名将用大写字母表示。
attribs
第三个参数 attribs 为一个包含有对应元素的属性的数组（如果该元素有属性）。数组元素的下标为属性名，元素的值即为属性的值。属性名将以和元素名同样的标准进行大小写折叠（case-folded），其值不进行大小写折叠。 属性的原始顺序将会被参数保留，用 each() 函数遍历 attribs 时，该数组下表的顺序和属性的顺序相同。

由 end_element_handler 参数命名的函数名必须接受两个参数：

end_element_handler ( resource $parser , string $name )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
name
第二个参数 name 为该处理器为之被调用的元素名。如果大小写折叠（case-folding）对该解析器有效，元素名将用大写字母表示。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE；如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_default_handler
xml_set_end_namespace_decl_handler
XML Parser 函数


建立终止命名空间声明处理器

xml_set_element_handler
xml_set_external_entity_ref_handler
XML Parser 函数
PHP 手册

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handler — 建立终止命名空间声明处理器

说明

bool xml_set_end_namespace_decl_handler ( resource $parser , callback $handler )

Warning

本函数暂无文档，仅有参数列表。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_element_handler
xml_set_external_entity_ref_handler
XML Parser 函数


建立外部实体指向处理器

xml_set_end_namespace_decl_handler
xml_set_notation_decl_handler
XML Parser 函数
PHP 手册

xml_set_external_entity_ref_handler

(PHP 4, PHP 5)

xml_set_external_entity_ref_handler — 建立外部实体指向处理器

说明

bool xml_set_external_entity_ref_handler ( resource $parser , callback $handler )

为 parser 参数指定的 XML 解析器建立外部实体指向处理器函数。参数 start_element_handler 和 end_element_handler 为表示函数名称的字符串，这些函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

由 handler 参数命名的函数名必须接受五个参数，并应该返回一个整型值。如果处理器的返回值为 FALSE（这也是函数没有确定返回值时的返回值），XML 解析器将停止解析， xml_get_error_code() 函数将返回 XML_ERROR_EXTERNAL_ENTITY_HANDLING。

handler ( resource $parser , string $open_entity_names , string $base , string $system_id , string $public_id )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
open_entity_names
第二个参数 open_entity_names 是为该实体的解析开放的实体名列表（包括被指向的实体名），这些实体名由空格隔开。
base
这个参数是解析外部实体的系统标识符（system_id ）的基础。当前该参数通常都被设置为空字符串。
system_id
第四个参数 system_id 是在实体定义声明中指定的系统标识符。
public_id
第五个参数 public_id 是在实体定义声明中指定的公共标识符，如果未指定任何标识符，则该字符串为空。公共标识符中的空格将按照 XML 的要求被正常化。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE；如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_end_namespace_decl_handler
xml_set_notation_decl_handler
XML Parser 函数


建立注释声明处理器

xml_set_external_entity_ref_handler
xml_set_object
XML Parser 函数
PHP 手册

xml_set_notation_decl_handler

(PHP 4, PHP 5)

xml_set_notation_decl_handler — 建立注释声明处理器

说明

bool xml_set_notation_decl_handler ( resource $parser , callback $handler )

为 parser 参数指定的 XML 解析器建立注释声明处理器函数。参数 start_element_handler 和 end_element_handler 为表示函数名称的字符串，这些函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

注释声明是文档 DTD 的一部分，并有如下格式：

<!NOTATION <parameter>name</parameter>
{<parameter>system_id</parameter> | <parameter>public_id</parameter>}?>

。请参考 » XML 1.0 参考的第 4.7 节以了解注释声明的定义。

由 handler 参数命名的函数名必须接受五个参数：

handler ( resource $parser , string $notation_name , string $base , string $system_id , string $public_id )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
notation_name
该参数为以上注释格式定义中的 name 参数。
base
这个参数是解析注释声明的系统标识符（system_id ）的基础。当前该参数通常都被设置为空字符串。
system_id
外部注释声明的系统标识符。
public_id
外部注释声明的公共标识符。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE；如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_external_entity_ref_handler
xml_set_object
XML Parser 函数


在对象中使用 XML 解析器

xml_set_notation_decl_handler
xml_set_processing_instruction_handler
XML Parser 函数
PHP 手册

xml_set_object

(PHP 4, PHP 5)

xml_set_object — 在对象中使用 XML 解析器

描述

pool xml_set_object ( resource $parser , object &$object )

该函数使得 parser 指定的解析器可以被用在 object 对象中。所有的回叫函数（callback function）都可以由 xml_set_element_handler() 等函数来设置，它们被假定为 object 对象的方法。

Example #1 xml_set_object() 示例

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

     function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // end of class xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

xml_set_notation_decl_handler
xml_set_processing_instruction_handler
XML Parser 函数


建立处理指令（PI）处理器

xml_set_object
xml_set_start_namespace_decl_handler
XML Parser 函数
PHP 手册

xml_set_processing_instruction_handler

(PHP 4, PHP 5)

xml_set_processing_instruction_handler — 建立处理指令（PI）处理器

说明

bool xml_set_processing_instruction_handler ( resource $parser , callback $handler )

为 parser 参数指定的 XML 解析器建立处理指令（PI）处理器函数。参数 start_element_handler 和 end_element_handler 为表示函数名称的字符串，这些函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

处理指令有如下格式：

<?target data?>

您可以将 PHP 代码放置在类似的标识符中，但要注意一个限制：在 XML 处理指令（PI）中，PI 的终止符（?>）不能被引号引用，因此该字符序列不应该在您用 PI 嵌入到 XML 文档中的 PHP 代码中出现。否则，剩下的 PHP 代码，包括“真正”的 PI 终止符将被当作字符数据处理。

由 handler 参数命名的函数名必须接受三个参数：

handler ( resource $parser , string $target , string $data )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
target
第二个参数 target 为 PI 对象（PI target）。
data
第二个参数 target 为 PI 数据（PI data）。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE；如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_object
xml_set_start_namespace_decl_handler
XML Parser 函数


建立起始命名空间声明处理器

xml_set_processing_instruction_handler
xml_set_unparsed_entity_decl_handler
XML Parser 函数
PHP 手册

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handler — 建立起始命名空间声明处理器

说明

bool xml_set_start_namespace_decl_handler ( resource $parser , callback $handler )

Warning

本函数暂无文档，仅有参数列表。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_processing_instruction_handler
xml_set_unparsed_entity_decl_handler
XML Parser 函数


建立未解析实体定义声明处理器

xml_set_start_namespace_decl_handler
XMLReader
XML Parser 函数
PHP 手册

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5)

xml_set_unparsed_entity_decl_handler — 建立未解析实体定义声明处理器

说明

bool xml_set_unparsed_entity_decl_handler ( resource $parser , callback $handler )

为 parser 参数指定的 XML 解析器建立未解析实体定义声明处理器函数。参数 start_element_handler 和 end_element_handler 为表示函数名称的字符串，这些函数必须在为 parser 指定的解析器调用 xml_parse() 函数时已存在。

当 XML 解析器遇到如下含有 NDATA 声明的外部实体定义声明时，该处理器将被调用：

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

请参阅 » XML 1.0 参考的第 4.2.2 节以获取有关已声明外部实体注释定义的信息。

由 handler 参数命名的函数名必须接受六个参数：

handler ( resource $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )

parser
第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
entity_name
将被定义的实体名。
base
这个参数是解析外部实体的系统标识符（system_id ）的基础。当前该参数通常都被设置为空字符串。
system_id
外部实体的系统标识符。
public_id
外部实体的公共标识符。
notation_name
该实体的注释名（请参阅 xml_set_notation_decl_handler()）。

如果处理器函数名被设置为空字符串或者 FALSE，则该有问题的处理器将被屏蔽。

如果处理器被成功的建立，该函数将返回 TRUE；如果 parser 指向的不是合法的解析器，函数该函数将返回 FALSE。

Note: 除了函数名，还可以用一个数组作参数，该数组由一个对象名和该对象的一个方法名两个元素组成。

xml_set_start_namespace_decl_handler
XMLReader
XML Parser 函数


XMLReader

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • XMLReader — The XMLReader class
    • XMLReader::close — Close the XMLReader input
    • XMLReader::expand — Returns a copy of the current node as a DOM object
    • XMLReader::getAttribute — Get the value of a named attribute
    • XMLReader::getAttributeNo — Get the value of an attribute by index
    • XMLReader::getAttributeNs — Get the value of an attribute by localname and URI
    • XMLReader::getParserProperty — Indicates if specified property has been set
    • XMLReader::isValid — Indicates if the parsed document is valid
    • XMLReader::lookupNamespace — Lookup namespace for a prefix
    • XMLReader::moveToAttribute — Move cursor to a named attribute
    • XMLReader::moveToAttributeNo — Move cursor to an attribute by index
    • XMLReader::moveToAttributeNs — Move cursor to a named attribute
    • XMLReader::moveToElement — Position cursor on the parent Element of current Attribute
    • XMLReader::moveToFirstAttribute — Position cursor on the first Attribute
    • XMLReader::moveToNextAttribute — Position cursor on the next Attribute
    • XMLReader::next — Move cursor to next node skipping all subtrees
    • XMLReader::open — Set the URI containing the XML to parse
    • XMLReader::read — Move to next node in document
    • XMLReader::readInnerXML — Retrieve XML from current node
    • XMLReader::readOuterXML — Retrieve XML from current node, including it self
    • XMLReader::readString — The methodName purpose
    • XMLReader::setParserProperty — Set or Unset parser options
    • XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema
    • XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
    • XMLReader::setSchema — Validate document against XSD
    • XMLReader::XML — Set the data containing the XML to parse
xml_set_unparsed_entity_decl_handler
简介
XML操作


简介

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

Encoding

It is important to note that internally, libxml uses the UTF-8 encoding and as such, the encoding of the retrieved contents will always be in UTF-8 encoding.

XMLReader
安装/配置
XMLReader


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
XMLReader


安装

The XMLReader extension is available in PECL as of PHP 5.0.0 and is included and enabled as of PHP 5.1.0 by default. It can be enabled by adding the argument --enable-xmlreader (or --with-xmlreader before 5.1.0) to your configure line. The libxml extension is required.

需求
运行时配置
安装/配置


资源类型

本扩展模块未定义任何资源类型。

运行时配置
XMLReader
安装/配置


The XMLReader class

简介

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

Class synopsis

XMLReader
XMLReader {
/* Constants */
const int XMLReader::NONE =0 ;
const int XMLReader::ELEMENT =1 ;
const int XMLReader::ATTRIBUTE =2 ;
const int XMLReader::TEXT =3 ;
const int XMLReader::CDATA =4 ;
const int XMLReader::ENTITY_REF =5 ;
const int XMLReader::ENTITY =6 ;
const int XMLReader::PI =7 ;
const int XMLReader::COMMENT =8 ;
const int XMLReader::DOC =9 ;
const int XMLReader::DOC_TYPE =10 ;
const int XMLReader::DOC_FRAGMENT =11 ;
const int XMLReader::NOTATION =12 ;
const int XMLReader::WHITESPACE =13 ;
const int XMLReader::SIGNIFICANT_WHITESPACE =14 ;
const int XMLReader::END_ELEMENT =15 ;
const int XMLReader::END_ENTITY =16 ;
const int XMLReader::XML_DECLARATION =17 ;
const int XMLReader::LOADDTD =1 ;
const int XMLReader::DEFAULTATTRS =2 ;
const int XMLReader::VALIDATE =3 ;
const int XMLReader::SUBST_ENTITIES =4 ;
/* Properties */
public readonly int $attributeCount ;
public readonly string $baseURI ;
public readonly int $depth ;
public readonly bool $hasAttributes ;
public readonly bool $hasValue ;
public readonly bool $isDefault ;
public readonly bool $isEmptyElement ;
public readonly string $localName ;
public readonly string $name ;
public readonly string $namespaceURI ;
public readonly int $nodeType ;
public readonly string $prefix ;
public readonly string $value ;
public readonly string $xmlLang ;
/* Methods */
bool close ( void )
DOMNode expand ( void )
string getAttribute ( string $name )
string getAttributeNo ( int $index )
string getAttributeNs ( string $localName , string $namespaceURI )
bool getParserProperty ( int $property )
bool isValid ( void )
bool lookupNamespace ( string $prefix )
bool moveToAttribute ( string $name )
bool moveToAttributeNo ( int $index )
bool moveToAttributeNs ( string $localName , string $namespaceURI )
bool moveToElement ( void )
bool moveToFirstAttribute ( void )
bool moveToNextAttribute ( void )
bool next ([ string $localname ] )
bool open ( string $URI [, string $encoding [, int $options=0 ]] )
bool read ( void )
string readInnerXML ( void )
string readOuterXML ( void )
string readString ( void )
bool setParserProperty ( int $property , bool $value )
bool setRelaxNGSchema ( string $filename )
bool setRelaxNGSchemaSource ( string $source )
bool setSchema ( string $filename )
bool xml ( string $source [, string $encoding [, int $options=0 ]] )
}

属性

attributeCount

The number of attributes on the node

baseURI

The base URI of the node

depth

Depth of the node in the tree, starting at 0

hasAttributes

Indicates if node has attributes

hasValue

Indicates if node has a text value

isDefault

Indicates if attribute is defaulted from DTD

isEmptyElement

Indicates if node is an empty element tag

localName

The local name of the node

name

The qualified name of the node

namespaceURI

The URI of the namespace associated with the node

nodeType

The node type for the node

prefix

The prefix of the namespace associated with thenode

value

The text value of the node

xmlLang

The xml:lang scope which the node resides

预定义常量

XMLReader Node Types

XMLReader::NONE

No node type

XMLReader::ELEMENT

Start element

XMLReader::ATTRIBUTE

Attribute node

XMLReader::TEXT

Text node

XMLReader::CDATA

CDATA node

XMLReader::ENTITY_REF

Entity Reference node

XMLReader::ENTITY

Entity Declaration node

XMLReader::PI

Processing Instruction node

XMLReader::COMMENT

Comment node

XMLReader::DOC

Document node

XMLReader::DOC_TYPE

Document Type node

XMLReader::DOC_FRAGMENT

Document Fragment node

XMLReader::NOTATION

Notation node

XMLReader::WHITESPACE

Whitespace node

XMLReader::SIGNIFICANT_WHITESPACE

Significant Whitespace node

XMLReader::END_ELEMENT

End Element

XMLReader::END_ENTITY

End Entity

XMLReader::XML_DECLARATION

XML Declaration node

XMLReader Parser Options

XMLReader::LOADDTD

Load DTD but do not validate

XMLReader::DEFAULTATTRS

Load DTD and default attributes but do not validate

XMLReader::VALIDATE

Load DTD and validate while parsing

XMLReader::SUBST_ENTITIES

Substitute entities and expand references

Table of Contents

  • XMLReader::close — Close the XMLReader input
  • XMLReader::expand — Returns a copy of the current node as a DOM object
  • XMLReader::getAttribute — Get the value of a named attribute
  • XMLReader::getAttributeNo — Get the value of an attribute by index
  • XMLReader::getAttributeNs — Get the value of an attribute by localname and URI
  • XMLReader::getParserProperty — Indicates if specified property has been set
  • XMLReader::isValid — Indicates if the parsed document is valid
  • XMLReader::lookupNamespace — Lookup namespace for a prefix
  • XMLReader::moveToAttribute — Move cursor to a named attribute
  • XMLReader::moveToAttributeNo — Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs — Move cursor to a named attribute
  • XMLReader::moveToElement — Position cursor on the parent Element of current Attribute
  • XMLReader::moveToFirstAttribute — Position cursor on the first Attribute
  • XMLReader::moveToNextAttribute — Position cursor on the next Attribute
  • XMLReader::next — Move cursor to next node skipping all subtrees
  • XMLReader::open — Set the URI containing the XML to parse
  • XMLReader::read — Move to next node in document
  • XMLReader::readInnerXML — Retrieve XML from current node
  • XMLReader::readOuterXML — Retrieve XML from current node, including it self
  • XMLReader::readString — The methodName purpose
  • XMLReader::setParserProperty — Set or Unset parser options
  • XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema
  • XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
  • XMLReader::setSchema — Validate document against XSD
  • XMLReader::XML — Set the data containing the XML to parse
资源类型
XMLReader::close
XMLReader


Close the XMLReader input

XMLReader
XMLReader::expand
XMLReader
PHP 手册

XMLReader::close

(PHP 5 >= 5.1.2)

XMLReader::close — Close the XMLReader input

说明

bool XMLReader::close ( void )

Closes the input the XMLReader object is currently parsing.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::open
  • XMLReader::XML

XMLReader
XMLReader::expand
XMLReader


Returns a copy of the current node as a DOM object

XMLReader::close
XMLReader::getAttribute
XMLReader
PHP 手册

XMLReader::expand

(PHP 5 >= 5.1.2)

XMLReader::expand — Returns a copy of the current node as a DOM object

说明

DOMNode XMLReader::expand ( void )

This method copies the current node and returns the appropriate DOM object.

返回值

The resulting DOMNode or FALSE on error.

XMLReader::close
XMLReader::getAttribute
XMLReader


Get the value of a named attribute

XMLReader::expand
XMLReader::getAttributeNo
XMLReader
PHP 手册

XMLReader::getAttribute

(PHP 5 >= 5.1.2)

XMLReader::getAttribute — Get the value of a named attribute

说明

string XMLReader::getAttribute ( string $name )

Returns the value of a named attribute or an empty string if attribute does not exist or not positioned on an element node.

参数

name

The name of the attribute.

返回值

The value of the attribute, or an empty string if no attribute with the given name is found or not positioned of element.

参见

  • XMLReader::getAttributeNo
  • XMLReader::getAttributeNs

XMLReader::expand
XMLReader::getAttributeNo
XMLReader


Get the value of an attribute by index

XMLReader::getAttribute
XMLReader::getAttributeNs
XMLReader
PHP 手册

XMLReader::getAttributeNo

(PHP 5 >= 5.1.2)

XMLReader::getAttributeNo — Get the value of an attribute by index

说明

string XMLReader::getAttributeNo ( int $index )

Returns the value of an attribute based on its position or an empty string if attribute does not exist or not positioned on an element node.

参数

index

The position of the attribute.

返回值

The value of the attribute, or an empty string if no attribute exists at index or not positioned of element.

参见

  • XMLReader::getAttribute
  • XMLReader::getAttributeNs

XMLReader::getAttribute
XMLReader::getAttributeNs
XMLReader


Get the value of an attribute by localname and URI

XMLReader::getAttributeNo
XMLReader::getParserProperty
XMLReader
PHP 手册

XMLReader::getAttributeNs

(PHP 5 >= 5.1.2)

XMLReader::getAttributeNs — Get the value of an attribute by localname and URI

说明

string XMLReader::getAttributeNs ( string $localName , string $namespaceURI )

Returns the value of an attribute by name and namespace URI or an empty string if attribute does not exist or not positioned on an element node.

参数

localName

The local name.

namespaceURI

The namespace URI.

返回值

The value of the attribute, or an empty string if no attribute with the given localName and namespaceURI is found or not positioned of element.

参见

  • XMLReader::getAttribute
  • XMLReader::getAttributeNo

XMLReader::getAttributeNo
XMLReader::getParserProperty
XMLReader


Indicates if specified property has been set

XMLReader::getAttributeNs
XMLReader::isValid
XMLReader
PHP 手册

XMLReader::getParserProperty

(PHP 5 >= 5.1.2)

XMLReader::getParserProperty — Indicates if specified property has been set

说明

bool XMLReader::getParserProperty ( int $property )

Indicates if specified property has been set.

参数

property

One of the parser option constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::setParserProperty

XMLReader::getAttributeNs
XMLReader::isValid
XMLReader


Indicates if the parsed document is valid

XMLReader::getParserProperty
XMLReader::lookupNamespace
XMLReader
PHP 手册

XMLReader::isValid

(PHP 5 >= 5.1.2)

XMLReader::isValid — Indicates if the parsed document is valid

说明

bool XMLReader::isValid ( void )

Returns a boolean indicating if the document being parsed is currently valid.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Validating XML

<?php
$xml = XMLReader::open('test.xml');

// You must to use it
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

参见

  • XMLReader::setParserProperty
  • XMLReader::setRelaxNGSchema
  • XMLReader::setRelaxNGSchemaSource

XMLReader::getParserProperty
XMLReader::lookupNamespace
XMLReader


Lookup namespace for a prefix

XMLReader::isValid
XMLReader::moveToAttribute
XMLReader
PHP 手册

XMLReader::lookupNamespace

(PHP 5 >= 5.1.2)

XMLReader::lookupNamespace — Lookup namespace for a prefix

说明

bool XMLReader::lookupNamespace ( string $prefix )

Lookup in scope namespace for a given prefix.

参数

prefix

String containing the prefix.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

XMLReader::isValid
XMLReader::moveToAttribute
XMLReader


Move cursor to a named attribute

XMLReader::lookupNamespace
XMLReader::moveToAttributeNo
XMLReader
PHP 手册

XMLReader::moveToAttribute

(PHP 5 >= 5.1.2)

XMLReader::moveToAttribute — Move cursor to a named attribute

说明

bool XMLReader::moveToAttribute ( string $name )

Positions cursor on the named attribute.

参数

name

The name of the attribute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::moveToElement
  • XMLReader::moveToAttributeNo
  • XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute

XMLReader::lookupNamespace
XMLReader::moveToAttributeNo
XMLReader


Move cursor to an attribute by index

XMLReader::moveToAttribute
XMLReader::moveToAttributeNs
XMLReader
PHP 手册

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.2)

XMLReader::moveToAttributeNo — Move cursor to an attribute by index

说明

bool XMLReader::moveToAttributeNo ( int $index )

Positions cursor on attribute based on its position.

参数

index

The position of the attribute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::moveToElement
  • XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute

XMLReader::moveToAttribute
XMLReader::moveToAttributeNs
XMLReader


Move cursor to a named attribute

XMLReader::moveToAttributeNo
XMLReader::moveToElement
XMLReader
PHP 手册

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.2)

XMLReader::moveToAttributeNs — Move cursor to a named attribute

说明

bool XMLReader::moveToAttributeNs ( string $localName , string $namespaceURI )

Positions cursor on the named attribute in specified namespace.

参数

localName

The local name.

namespaceURI

The namespace URI.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::moveToElement
  • XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNo
  • XMLReader::moveToFirstAttribute

XMLReader::moveToAttributeNo
XMLReader::moveToElement
XMLReader


Position cursor on the parent Element of current Attribute

XMLReader::moveToAttributeNs
XMLReader::moveToFirstAttribute
XMLReader
PHP 手册

XMLReader::moveToElement

(PHP 5 >= 5.1.2)

XMLReader::moveToElement — Position cursor on the parent Element of current Attribute

说明

bool XMLReader::moveToElement ( void )

Moves cursor to the parent Element of current Attribute.

返回值

Returns TRUE if successful and FALSE if it fails or not positioned on Attribute when this method is called.

参见

  • XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNo
  • XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute

XMLReader::moveToAttributeNs
XMLReader::moveToFirstAttribute
XMLReader


Position cursor on the first Attribute

XMLReader::moveToElement
XMLReader::moveToNextAttribute
XMLReader
PHP 手册

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.2)

XMLReader::moveToFirstAttribute — Position cursor on the first Attribute

说明

bool XMLReader::moveToFirstAttribute ( void )

Moves cursor to the first Attribute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::moveToElement
  • XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNo
  • XMLReader::moveToAttributeNs
  • XMLReader::moveToNextAttribute

XMLReader::moveToElement
XMLReader::moveToNextAttribute
XMLReader


Position cursor on the next Attribute

XMLReader::moveToFirstAttribute
XMLReader::next
XMLReader
PHP 手册

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.2)

XMLReader::moveToNextAttribute — Position cursor on the next Attribute

说明

bool XMLReader::moveToNextAttribute ( void )

Moves cursor to the next Attribute if positioned on an Attribute or moves to first attribute if positioned on an Element.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::moveToElement
  • XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNo
  • XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute

XMLReader::moveToFirstAttribute
XMLReader::next
XMLReader


Move cursor to next node skipping all subtrees

XMLReader::moveToNextAttribute
XMLReader::open
XMLReader
PHP 手册

XMLReader::next

(PHP 5 >= 5.1.2)

XMLReader::next — Move cursor to next node skipping all subtrees

说明

bool XMLReader::next ([ string $localname ] )

Positions cursor on the next node skipping all subtrees.

参数

localname

The name of the next node to move to.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::next
  • XMLReader::moveToElement
  • XMLReader::moveToAttribute

XMLReader::moveToNextAttribute
XMLReader::open
XMLReader


Set the URI containing the XML to parse

XMLReader::next
XMLReader::read
XMLReader
PHP 手册

XMLReader::open

(PHP 5 >= 5.1.2)

XMLReader::open — Set the URI containing the XML to parse

说明

bool XMLReader::open ( string $URI [, string $encoding [, int $options=0 ]] )

Set the URI containing the XML document to be parsed.

参数

URI

URI pointing to the document.

encoding

The document encoding or NULL.

options

A bitmask of the XMLReader Options constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.2.0 | encoding and options were added.

参见

  • XMLReader::XML
  • XMLReader::close

XMLReader::next
XMLReader::read
XMLReader


Move to next node in document

XMLReader::open
XMLReader::readInnerXML
XMLReader
PHP 手册

XMLReader::read

(PHP 5 >= 5.1.2)

XMLReader::read — Move to next node in document

说明

bool XMLReader::read ( void )

Moves cursor to the next node in the document.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::moveToElement
  • XMLReader::moveToAttribute
  • XMLReader::next

XMLReader::open
XMLReader::readInnerXML
XMLReader


Retrieve XML from current node

XMLReader::read
XMLReader::readOuterXML
XMLReader
PHP 手册

XMLReader::readInnerXML

(PHP 5 >= 5.2.0)

XMLReader::readInnerXML — Retrieve XML from current node

说明

string XMLReader::readInnerXML ( void )

Reads the contents of the current node, including child nodes and markup.

参数

This function has no parameters.

返回值

Returns the contents of the current node as a string. Empty string on failure.

注释

Caution

This function is only available when PHP is compiled against libxml 20620 or later.

参见

  • XMLReader::readString() - The methodName purpose
  • XMLReader::readOuterXML() - Retrieve XML from current node, including it self
  • XMLReader::expand() - Returns a copy of the current node as a DOM object

XMLReader::read
XMLReader::readOuterXML
XMLReader


Retrieve XML from current node, including it self

XMLReader::readInnerXML
XMLReader::readString
XMLReader
PHP 手册

XMLReader::readOuterXML

(PHP 5 >= 5.2.0)

XMLReader::readOuterXML — Retrieve XML from current node, including it self

说明

string XMLReader::readOuterXML ( void )

Reads the contents of the current node, including the node itself.

参数

This function has no parameters.

返回值

Returns the contents of current node, including itself, as a string. Empty string on failure.

注释

Caution

This function is only available when PHP is compiled against libxml 20620 or later.

参见

  • XMLReader::readString() - The methodName purpose
  • XMLReader::readInnerXML() - Retrieve XML from current node
  • XMLReader::expand() - Returns a copy of the current node as a DOM object

XMLReader::readInnerXML
XMLReader::readString
XMLReader


The methodName purpose

XMLReader::readOuterXML
XMLReader::setParserProperty
XMLReader
PHP 手册

XMLReader::readString

(PHP 5 >= 5.2.0)

XMLReader::readString — The methodName purpose

说明

string XMLReader::readString ( void )

Reads the contents of the current node as an string.

参数

This function has no parameters.

返回值

Returns the content of the current node as a string. Empty string on failure.

注释

Caution

This function is only available when PHP is compiled against libxml 20620 or later.

参见

  • XMLReader::readOuterXML() - Retrieve XML from current node, including it self
  • XMLReader::readInnerXML() - Retrieve XML from current node
  • XMLReader::expand() - Returns a copy of the current node as a DOM object

XMLReader::readOuterXML
XMLReader::setParserProperty
XMLReader


Set or Unset parser options

XMLReader::readString
XMLReader::setRelaxNGSchema
XMLReader
PHP 手册

XMLReader::setParserProperty

(PHP 5 >= 5.1.2)

XMLReader::setParserProperty — Set or Unset parser options

说明

bool XMLReader::setParserProperty ( int $property , bool $value )

Set or Unset parser option for the parser. The options must be set
after xmlreader-open() or
xmlreader-xml() are called and before
the first xmlreader-read() call.

参数

property

One of the parser option constants.

value

If set to TRUE the option will be enabled otherwise will be disabled.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

XMLReader::readString
XMLReader::setRelaxNGSchema
XMLReader


Set the filename or URI for a RelaxNG Schema

XMLReader::setParserProperty
XMLReader::setRelaxNGSchemaSource
XMLReader
PHP 手册

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.2.0)

XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema

说明

bool XMLReader::setRelaxNGSchema ( string $filename )

Set the filename or URI for the RelaxNG Schema to use for validation.

参数

filename

filename or URI pointing to a RelaxNG Schema.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::setRelaxNGSchemaSource

XMLReader::setParserProperty
XMLReader::setRelaxNGSchemaSource
XMLReader


Set the data containing a RelaxNG Schema

XMLReader::setRelaxNGSchema
XMLReader::setSchema
XMLReader
PHP 手册

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.2)

XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema

说明

bool XMLReader::setRelaxNGSchemaSource ( string $source )

Set the data containing a RelaxNG Schema to use for validation.

参数

source

String containing the RelaxNG Schema.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLReader::setRelaxNGSchema

XMLReader::setRelaxNGSchema
XMLReader::setSchema
XMLReader


Validate document against XSD

XMLReader::setRelaxNGSchemaSource
XMLReader::XML
XMLReader
PHP 手册

XMLReader::setSchema

(PHP 5 >= 5.2.0)

XMLReader::setSchema — Validate document against XSD

说明

bool XMLReader::setSchema ( string $filename )

Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read().

参数

filename

The filename of the XSD schema.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

错误／异常

Issues E_WARNING if libxml was built without schema support, the schema contains errors or if XMLReader::read() has already been called.

注释

Caution

This function is only available when PHP is compiled against libxml 20620 or later.

参见

  • XMLReader::setRelaxNGSchema() - Set the filename or URI for a RelaxNG Schema

XMLReader::setRelaxNGSchemaSource
XMLReader::XML
XMLReader


Set the data containing the XML to parse

XMLReader::setSchema
XMLWriter
XMLReader
PHP 手册

XMLReader::XML

(PHP 5 >= 5.1.2)

XMLReader::XML — Set the data containing the XML to parse

说明

bool XMLReader::xml ( string $source [, string $encoding [, int $options=0 ]] )

Set the data containing the XML to parse.

参数

source

String containing the XML to be parsed.

encoding

The document encoding or NULL.

options

A bitmask of the XMLReader Options constants.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
5.2.0 | encoding and options were added.

参见

  • XMLReader::open
  • XMLReader::close

XMLReader::setSchema
XMLWriter
XMLReader


XMLWriter

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • XMLWriter 函数
    • XMLWriter::endAttribute — End attribute
    • XMLWriter::endCData — End current CDATA
    • XMLWriter::endComment — Create end comment
    • XMLWriter::endDocument — End current document
    • XMLWriter::endDTDAttlist — End current DTD AttList
    • XMLWriter::endDTDElement — End current DTD element
    • XMLWriter::endDTDEntity — End current DTD Entity
    • XMLWriter::endDTD — End current DTD
    • XMLWriter::endElement — End current element
    • XMLWriter::endPI — End current PI
    • XMLWriter::flush — Flush current buffer
    • XMLWriter::fullEndElement — End current element
    • XMLWriter::openMemory — Create new xmlwriter using memory for string output
    • XMLWriter::openURI — Create new xmlwriter using source uri for output
    • XMLWriter::outputMemory — Returns current buffer
    • XMLWriter::setIndentString — Set string used for indenting
    • XMLWriter::setIndent — Toggle indentation on/off
    • XMLWriter::startAttributeNS — Create start namespaced attribute
    • XMLWriter::startAttribute — Create start attribute
    • XMLWriter::startCData — Create start CDATA tag
    • XMLWriter::startComment — Create start comment
    • XMLWriter::startDocument — Create document tag
    • XMLWriter::startDTDAttlist — Create start DTD AttList
    • XMLWriter::startDTDElement — Create start DTD element
    • XMLWriter::startDTDEntity — Create start DTD Entity
    • XMLWriter::startDTD — Create start DTD tag
    • XMLWriter::startElementNS — Create start namespaced element tag
    • XMLWriter::startElement — Create start element tag
    • XMLWriter::startPI — Create start PI tag
    • XMLWriter::text — Write text
    • XMLWriter::writeAttributeNS — Write full namespaced attribute
    • XMLWriter::writeAttribute — Write full attribute
    • XMLWriter::writeCData — Write full CDATA tag
    • XMLWriter::writeComment — Write full comment tag
    • XMLWriter::writeDTDAttlist — Write full DTD AttList tag
    • XMLWriter::writeDTDElement — Write full DTD element tag
    • XMLWriter::writeDTDEntity — Write full DTD Entity tag
    • XMLWriter::writeDTD — Write full DTD tag
    • XMLWriter::writeElementNS — Write full namesapced element tag
    • XMLWriter::writeElement — Write full element tag
    • XMLWriter::writePI — Writes a PI
    • XMLWriter::writeRaw — Write a raw XML text
XMLReader::XML
简介
XML操作


简介

This is the XMLWriter extension. It wraps the libxml xmlWriter API.

This extension represents a writer that provides a non-cached, forward-only means of generating streams or files containing XML data.

This extension can be used in an object oriented style or a procedural one. Every method documented describes the alternative procedural call.

XMLWriter
安装/配置
XMLWriter


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
XMLWriter


资源类型

There is one resource used by the procedural version of the XMLWriter extension: returned by xmlwriter_open_memory() or xmlwriter_open_uri().

运行时配置
预定义常量
安装/配置


预定义常量

本扩展模块未定义任何常量。

资源类型
XMLWriter 函数
XMLWriter


XMLWriter 函数

Table of Contents

  • XMLWriter::endAttribute — End attribute
  • XMLWriter::endCData — End current CDATA
  • XMLWriter::endComment — Create end comment
  • XMLWriter::endDocument — End current document
  • XMLWriter::endDTDAttlist — End current DTD AttList
  • XMLWriter::endDTDElement — End current DTD element
  • XMLWriter::endDTDEntity — End current DTD Entity
  • XMLWriter::endDTD — End current DTD
  • XMLWriter::endElement — End current element
  • XMLWriter::endPI — End current PI
  • XMLWriter::flush — Flush current buffer
  • XMLWriter::fullEndElement — End current element
  • XMLWriter::openMemory — Create new xmlwriter using memory for string output
  • XMLWriter::openURI — Create new xmlwriter using source uri for output
  • XMLWriter::outputMemory — Returns current buffer
  • XMLWriter::setIndentString — Set string used for indenting
  • XMLWriter::setIndent — Toggle indentation on/off
  • XMLWriter::startAttributeNS — Create start namespaced attribute
  • XMLWriter::startAttribute — Create start attribute
  • XMLWriter::startCData — Create start CDATA tag
  • XMLWriter::startComment — Create start comment
  • XMLWriter::startDocument — Create document tag
  • XMLWriter::startDTDAttlist — Create start DTD AttList
  • XMLWriter::startDTDElement — Create start DTD element
  • XMLWriter::startDTDEntity — Create start DTD Entity
  • XMLWriter::startDTD — Create start DTD tag
  • XMLWriter::startElementNS — Create start namespaced element tag
  • XMLWriter::startElement — Create start element tag
  • XMLWriter::startPI — Create start PI tag
  • XMLWriter::text — Write text
  • XMLWriter::writeAttributeNS — Write full namespaced attribute
  • XMLWriter::writeAttribute — Write full attribute
  • XMLWriter::writeCData — Write full CDATA tag
  • XMLWriter::writeComment — Write full comment tag
  • XMLWriter::writeDTDAttlist — Write full DTD AttList tag
  • XMLWriter::writeDTDElement — Write full DTD element tag
  • XMLWriter::writeDTDEntity — Write full DTD Entity tag
  • XMLWriter::writeDTD — Write full DTD tag
  • XMLWriter::writeElementNS — Write full namesapced element tag
  • XMLWriter::writeElement — Write full element tag
  • XMLWriter::writePI — Writes a PI
  • XMLWriter::writeRaw — Write a raw XML text
预定义常量
XMLWriter::endAttribute
XMLWriter


End attribute

XMLWriter 函数
XMLWriter::endCData
XMLWriter 函数
PHP 手册

XMLWriter::endAttribute

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute — End attribute

说明

Object oriented style:

XMLWriter
bool endAttribute ( void )

Procedural style:

bool xmlwriter_end_attribute ( resource $xmlwriter )

Ends the current attribute.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startAttribute
  • XMLWriter::startAttributeNS
  • XMLWriter::writeAttribute
  • XMLWriter::writeAttributeNS

XMLWriter 函数
XMLWriter::endCData
XMLWriter 函数


End current CDATA

XMLWriter::endAttribute
XMLWriter::endComment
XMLWriter 函数
PHP 手册

XMLWriter::endCData

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endCData — End current CDATA

说明

Object oriented style:

XMLWriter
bool endCData ( void )

Procedural style:

bool xmlwriter_end_cdata ( resource $xmlwriter )

Ends the current CDATA section.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startCData
  • XMLWriter::writeCData

XMLWriter::endAttribute
XMLWriter::endComment
XMLWriter 函数


Create end comment

XMLWriter::endCData
XMLWriter::endDocument
XMLWriter 函数
PHP 手册

XMLWriter::endComment

(PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment — Create end comment

说明

Object oriented style:

XMLWriter
bool endComment ( void )

Procedural style:

bool xmlwriter_end_comment ( resource $xmlwriter )

Ends the current comment.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startComment
  • XMLWriter::writeComment

XMLWriter::endCData
XMLWriter::endDocument
XMLWriter 函数


End current document

XMLWriter::endComment
XMLWriter::endDTDAttlist
XMLWriter 函数
PHP 手册

XMLWriter::endDocument

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument — End current document

说明

Object oriented style:

XMLWriter
bool endDocument ( void )

Procedural style:

bool xmlwriter_end_document ( resource $xmlwriter )

Ends the current document.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDocument

XMLWriter::endComment
XMLWriter::endDTDAttlist
XMLWriter 函数


End current DTD AttList

XMLWriter::endDocument
XMLWriter::endDTDElement
XMLWriter 函数
PHP 手册

XMLWriter::endDTDAttlist

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDAttlist — End current DTD AttList

说明

Object oriented style:

XMLWriter
bool endDTDAttlist ( void )

Procedural style:

bool xmlwriter_end_dtd_attlist ( resource $xmlwriter )

Ends the current DTD attribute list.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTDAttlist
  • XMLWriter::writeDTDAttlist

XMLWriter::endDocument
XMLWriter::endDTDElement
XMLWriter 函数


End current DTD element

XMLWriter::endDTDAttlist
XMLWriter::endDTDEntity
XMLWriter 函数
PHP 手册

XMLWriter::endDTDElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDElement — End current DTD element

说明

Object oriented style:

XMLWriter
bool endDTDElement ( void )

Procedural style:

bool xmlwriter_end_dtd_element ( resource $xmlwriter )

Ends the current DTD element.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTDElement
  • XMLWriter::writeDTDElement

XMLWriter::endDTDAttlist
XMLWriter::endDTDEntity
XMLWriter 函数


End current DTD Entity

XMLWriter::endDTDElement
XMLWriter::endDTD
XMLWriter 函数
PHP 手册

XMLWriter::endDTDEntity

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDEntity — End current DTD Entity

说明

Object oriented style:

XMLWriter
bool endDTDEntity ( void )

Procedural style:

bool xmlwriter_end_dtd_entity ( resource $xmlwriter )

Ends the current DTD entity.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTDEntity
  • XMLWriter::writeDTDEntity

XMLWriter::endDTDElement
XMLWriter::endDTD
XMLWriter 函数


End current DTD

XMLWriter::endDTDEntity
XMLWriter::endElement
XMLWriter 函数
PHP 手册

XMLWriter::endDTD

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTD — End current DTD

说明

Object oriented style:

XMLWriter
bool endDTD ( void )

Procedural style:

bool xmlwriter_end_dtd ( resource $xmlwriter )

Ends the DTD of the document.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTD
  • XMLWriter::writeDTD

XMLWriter::endDTDEntity
XMLWriter::endElement
XMLWriter 函数


End current element

XMLWriter::endDTD
XMLWriter::endPI
XMLWriter 函数
PHP 手册

XMLWriter::endElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement — End current element

说明

Object oriented style:

XMLWriter
bool endElement ( void )

Procedural style:

bool xmlwriter_end_element ( resource $xmlwriter )

Ends the current element.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startElement
  • XMLWriter::writeElement

XMLWriter::endDTD
XMLWriter::endPI
XMLWriter 函数


End current PI

XMLWriter::endElement
XMLWriter::flush
XMLWriter 函数
PHP 手册

XMLWriter::endPI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::endPI — End current PI

说明

Object oriented style:

XMLWriter
bool endPI ( void )

Procedural style:

bool xmlwriter_end_pi ( resource $xmlwriter )

Ends the current processing instruction.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startPI
  • XMLWriter::writePI

XMLWriter::endElement
XMLWriter::flush
XMLWriter 函数


Flush current buffer

XMLWriter::endPI
XMLWriter::fullEndElement
XMLWriter 函数
PHP 手册

XMLWriter::flush

(PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)

XMLWriter::flush — Flush current buffer

说明

Object oriented style:

XMLWriter
mixed flush ([ bool $empty ] )

Procedural style:

mixed xmlwriter_flush ( resource $xmlwriter [, bool $empty ] )

Flushes the current buffer.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

empty

Whether to empty the buffer or no. Default is TRUE.

返回值

If you opened the writer in memory, this function returns the generated XML buffer, Else, if using URI, this function will write the buffer and return the number of written bytes.

XMLWriter::endPI
XMLWriter::fullEndElement
XMLWriter 函数


End current element

XMLWriter::flush
XMLWriter::openMemory
XMLWriter 函数
PHP 手册

XMLWriter::fullEndElement

(PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement — End current element

说明

Object oriented style:

XMLWriter
bool fullEndElement ( void )

Procedural style:

bool xmlwriter_full_end_element ( resource $xmlwriter )

End the current xml element. Writes an end tag even if the element is empty.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endElement

XMLWriter::flush
XMLWriter::openMemory
XMLWriter 函数


Create new xmlwriter using memory for string output

XMLWriter::fullEndElement
XMLWriter::openURI
XMLWriter 函数
PHP 手册

XMLWriter::openMemory

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory — Create new xmlwriter using memory for string output

说明

Object oriented style:

XMLWriter
bool openMemory ( void )

Procedural style:

resource xmlwriter_open_memory ( void )

Creates a new XMLWriter using memory for string output.

参数

返回值

Object oriented style: 如果成功则返回 TRUE，失败则返回 FALSE。

Procedural style: Returns a new xmlwriter resource for later use with the xmlwriter functions on success, FALSE on error.

参见

  • XMLWriter::openURI

XMLWriter::fullEndElement
XMLWriter::openURI
XMLWriter 函数


Create new xmlwriter using source uri for output

XMLWriter::openMemory
XMLWriter::outputMemory
XMLWriter 函数
PHP 手册

XMLWriter::openURI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::openURI — Create new xmlwriter using source uri for output

说明

Object oriented style:

XMLWriter
bool openURI ( string $uri )

Procedural style:

resource xmlwriter_open_uri ( string $uri )

Creates a new XMLWriter using uri for the output.

参数

uri

The URI of the resource for the output.

返回值

Object oriented style: 如果成功则返回 TRUE，失败则返回 FALSE。

Procedural style: Returns a new xmlwriter resource for later use with the xmlwriter functions on success, FALSE on error.

参见

  • XMLWriter::openMemory

XMLWriter::openMemory
XMLWriter::outputMemory
XMLWriter 函数


Returns current buffer

XMLWriter::openURI
XMLWriter::setIndentString
XMLWriter 函数
PHP 手册

XMLWriter::outputMemory

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory — Returns current buffer

说明

Object oriented style:

XMLWriter
string outputMemory ([ bool $flush ] )

Procedural style:

string xmlwriter_output_memory ( resource $xmlwriter [, bool $flush ] )

Returns the current buffer.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

flush

Whether to flush the output buffer or no. Default is TRUE.

返回值

Returns the current buffer as a string.

参见

  • XMLWriter::flush

XMLWriter::openURI
XMLWriter::setIndentString
XMLWriter 函数


Set string used for indenting

XMLWriter::outputMemory
XMLWriter::setIndent
XMLWriter 函数
PHP 手册

XMLWriter::setIndentString

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString — Set string used for indenting

说明

Object oriented style:

XMLWriter
bool setIndentString ( string $indentString )

Procedural style:

bool xmlwriter_set_indent_string ( resource $xmlwriter , string $indentString )

Sets the string which will be used to indent each element/attribute of the resulting xml.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

indentString

The indentation string.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::setIndent

XMLWriter::outputMemory
XMLWriter::setIndent
XMLWriter 函数


Toggle indentation on/off

XMLWriter::setIndentString
XMLWriter::startAttributeNS
XMLWriter 函数
PHP 手册

XMLWriter::setIndent

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent — Toggle indentation on/off

说明

Object oriented style:

XMLWriter
bool setIndent ( bool $indent )

Procedural style:

bool xmlwriter_set_indent ( resource $xmlwriter , bool $indent )

Toggles indentation on or off.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

indent

Whether indentation is enabled. Defaults to FALSE.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::setIndentString

XMLWriter::setIndentString
XMLWriter::startAttributeNS
XMLWriter 函数


Create start namespaced attribute

XMLWriter::setIndent
XMLWriter::startAttribute
XMLWriter 函数
PHP 手册

XMLWriter::startAttributeNS

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNS — Create start namespaced attribute

说明

Object oriented style:

XMLWriter
bool startAttributeNS ( string $prefix , string $name , string $uri )

Procedural style:

bool xmlwriter_start_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Starts a namespaced attribute.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

prefix

The namespace prefix.

name

The attribute name.

uri

The namespace URI.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startAttribute
  • XMLWriter::endAttribute
  • XMLWriter::writeAttribute
  • XMLWriter::writeAttributeNS

XMLWriter::setIndent
XMLWriter::startAttribute
XMLWriter 函数


Create start attribute

XMLWriter::startAttributeNS
XMLWriter::startCData
XMLWriter 函数
PHP 手册

XMLWriter::startAttribute

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute — Create start attribute

说明

Object oriented style:

XMLWriter
bool startAttribute ( string $name )

Procedural style:

bool xmlwriter_start_attribute ( resource $xmlwriter , string $name )

Starts an attribute.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The attribute name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startAttributeNS
  • XMLWriter::endAttribute
  • XMLWriter::writeAttribute
  • XMLWriter::writeAttributeNS

XMLWriter::startAttributeNS
XMLWriter::startCData
XMLWriter 函数


Create start CDATA tag

XMLWriter::startAttribute
XMLWriter::startComment
XMLWriter 函数
PHP 手册

XMLWriter::startCData

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startCData — Create start CDATA tag

说明

Object oriented style:

XMLWriter
bool startCData ( void )

Procedural style:

bool xmlwriter_start_cdata ( resource $xmlwriter )

Starts a CDATA.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endCData
  • XMLWriter::writeCData

XMLWriter::startAttribute
XMLWriter::startComment
XMLWriter 函数


Create start comment

XMLWriter::startCData
XMLWriter::startDocument
XMLWriter 函数
PHP 手册

XMLWriter::startComment

(PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment — Create start comment

说明

Object oriented style:

XMLWriter
bool startComment ( void )

Procedural style:

bool xmlwriter_start_comment ( resource $xmlwriter )

Starts a comment.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endComment
  • XMLWriter::writeComment

XMLWriter::startCData
XMLWriter::startDocument
XMLWriter 函数


Create document tag

XMLWriter::startComment
XMLWriter::startDTDAttlist
XMLWriter 函数
PHP 手册

XMLWriter::startDocument

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument — Create document tag

说明

Object oriented style:

XMLWriter
bool startDocument ([ string $version [, string $encoding [, string $standalone ]]] )

Procedural style:

bool xmlwriter_start_document ( resource $xmlwriter [, string $version [, string $encoding [, string $standalone ]]] )

Starts a document.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

version

The version number of the document as part of the XML declaration. Defaults to 1.0.

encoding

The encoding of the document as part of the XML declaration. NULL by default.

standalone

yes or no. NULL by default.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endDocument

XMLWriter::startComment
XMLWriter::startDTDAttlist
XMLWriter 函数


Create start DTD AttList

XMLWriter::startDocument
XMLWriter::startDTDElement
XMLWriter 函数
PHP 手册

XMLWriter::startDTDAttlist

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDAttlist — Create start DTD AttList

说明

Object oriented style:

XMLWriter
bool startDTDAttlist ( string $name )

Procedural style:

bool xmlwriter_start_dtd_attlist ( resource $xmlwriter , string $name )

Starts a DTD attribute list.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The attribute list name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endDTDAttlist
  • XMLWriter::writeDTDAttlist

XMLWriter::startDocument
XMLWriter::startDTDElement
XMLWriter 函数


Create start DTD element

XMLWriter::startDTDAttlist
XMLWriter::startDTDEntity
XMLWriter 函数
PHP 手册

XMLWriter::startDTDElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDElement — Create start DTD element

说明

Object oriented style:

XMLWriter
bool startDTDElement ( string $qualifiedName )

Procedural style:

bool xmlwriter_start_dtd_element ( resource $xmlwriter , string $qualifiedName )

Starts a DTD element.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

qualifiedName

The qualified name of the document type to create.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endDTDElement
  • XMLWriter::writeDTDElement

XMLWriter::startDTDAttlist
XMLWriter::startDTDEntity
XMLWriter 函数


Create start DTD Entity

XMLWriter::startDTDElement
XMLWriter::startDTD
XMLWriter 函数
PHP 手册

XMLWriter::startDTDEntity

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDEntity — Create start DTD Entity

说明

Object oriented style:

XMLWriter
bool startDTDEntity ( string $name , bool $isparam )

Procedural style:

bool xmlwriter_start_dtd_entity ( resource $xmlwriter , string $name , bool $isparam )

Starts a DTD entity.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The name of the entity.

isparam

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endDTDEntity
  • XMLWriter::writeDTDEntity

XMLWriter::startDTDElement
XMLWriter::startDTD
XMLWriter 函数


Create start DTD tag

XMLWriter::startDTDEntity
XMLWriter::startElementNS
XMLWriter 函数
PHP 手册

XMLWriter::startDTD

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTD — Create start DTD tag

说明

Object oriented style:

XMLWriter
bool startDTD ( string $qualifiedName [, string $publicId [, string $systemId ]] )

Procedural style:

bool xmlwriter_start_dtd ( resource $xmlwriter , string $qualifiedName [, string $publicId [, string $systemId ]] )

Starts a DTD.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

qualifiedName

The qualified name of the document type to create.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endDTD
  • XMLWriter::writeDTD

XMLWriter::startDTDEntity
XMLWriter::startElementNS
XMLWriter 函数


Create start namespaced element tag

XMLWriter::startDTD
XMLWriter::startElement
XMLWriter 函数
PHP 手册

XMLWriter::startElementNS

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNS — Create start namespaced element tag

说明

Object oriented style:

XMLWriter
bool startElementNS ( string $prefix , string $name , string $uri )

Procedural style:

bool xmlwriter_start_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Starts a namespaced element.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

prefix

The namespace prefix.

name

The element name.

uri

The namespace URI.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endElement
  • XMLWriter::writeElementNS

XMLWriter::startDTD
XMLWriter::startElement
XMLWriter 函数


Create start element tag

XMLWriter::startElementNS
XMLWriter::startPI
XMLWriter 函数
PHP 手册

XMLWriter::startElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement — Create start element tag

说明

Object oriented style:

XMLWriter
bool startElement ( string $name )

Procedural style:

bool xmlwriter_start_element ( resource $xmlwriter , string $name )

Starts an element.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The element name.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endElement
  • XMLWriter::writeElement

XMLWriter::startElementNS
XMLWriter::startPI
XMLWriter 函数


Create start PI tag

XMLWriter::startElement
XMLWriter::text
XMLWriter 函数
PHP 手册

XMLWriter::startPI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::startPI — Create start PI tag

说明

Object oriented style:

XMLWriter
bool startPI ( string $target )

Procedural style:

bool xmlwriter_start_pi ( resource $xmlwriter , string $target )

Starts a processing instruction tag.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

target

The target of the processing instruction.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::endPI
  • XMLWriter::writePI

XMLWriter::startElement
XMLWriter::text
XMLWriter 函数


Write text

XMLWriter::startPI
XMLWriter::writeAttributeNS
XMLWriter 函数
PHP 手册

XMLWriter::text

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::text — Write text

说明

Object oriented style:

XMLWriter
bool text ( string $content )

Procedural style:

bool xmlwriter_text ( resource $xmlwriter , string $content )

Writes a text.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

content

The contents of the text.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

XMLWriter::startPI
XMLWriter::writeAttributeNS
XMLWriter 函数


Write full namespaced attribute

XMLWriter::text
XMLWriter::writeAttribute
XMLWriter 函数
PHP 手册

XMLWriter::writeAttributeNS

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNS — Write full namespaced attribute

说明

Object oriented style:

XMLWriter
bool writeAttributeNS ( string $prefix , string $name , string $uri , string $content )

Procedural style:

bool xmlwriter_write_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri , string $content )

Writes a full namespaced attribute.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

prefix

The namespace prefix.

name

The attribute name.

uri

The namespace URI.

content

The attribute value.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::writeAttribute
  • XMLWriter::startAttribute
  • XMLWriter::startAttributeNS
  • XMLWriter::endAttribute

XMLWriter::text
XMLWriter::writeAttribute
XMLWriter 函数


Write full attribute

XMLWriter::writeAttributeNS
XMLWriter::writeCData
XMLWriter 函数
PHP 手册

XMLWriter::writeAttribute

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute — Write full attribute

说明

Object oriented style:

XMLWriter
bool writeAttribute ( string $name , string $value )

Procedural style:

bool xmlwriter_write_attribute ( resource $xmlwriter , string $name , string $value )

Writes a full attribute.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The name of the attribute.

value

The value of the attribute.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::writeAttributeNS
  • XMLWriter::startAttribute
  • XMLWriter::startAttributeNS
  • XMLWriter::endAttribute

XMLWriter::writeAttributeNS
XMLWriter::writeCData
XMLWriter 函数


Write full CDATA tag

XMLWriter::writeAttribute
XMLWriter::writeComment
XMLWriter 函数
PHP 手册

XMLWriter::writeCData

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCData — Write full CDATA tag

说明

Object oriented style:

XMLWriter
bool writeCData ( string $content )

Procedural style:

bool xmlwriter_write_cdata ( resource $xmlwriter , string $content )

Writes a full CDATA.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

content

The contents of the CDATA.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startCData
  • XMLWriter::endCData

XMLWriter::writeAttribute
XMLWriter::writeComment
XMLWriter 函数


Write full comment tag

XMLWriter::writeCData
XMLWriter::writeDTDAttlist
XMLWriter 函数
PHP 手册

XMLWriter::writeComment

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment — Write full comment tag

说明

Object oriented style:

XMLWriter
bool writeComment ( string $content )

Procedural style:

bool xmlwriter_write_comment ( resource $xmlwriter , string $content )

Writes a full comment.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

content

The contents of the comment.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startComment
  • XMLWriter::endComment

XMLWriter::writeCData
XMLWriter::writeDTDAttlist
XMLWriter 函数


Write full DTD AttList tag

XMLWriter::writeComment
XMLWriter::writeDTDElement
XMLWriter 函数
PHP 手册

XMLWriter::writeDTDAttlist

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDAttlist — Write full DTD AttList tag

说明

Object oriented style:

XMLWriter
bool writeDTDAttlist ( string $name , string $content )

Procedural style:

bool xmlwriter_write_dtd_attlist ( resource $xmlwriter , string $name , string $content )

Writes a DTD attribute list.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The name of the DTD attribute list.

content

The content of the DTD attribute list.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTDAttlist
  • XMLWriter::endDTDAttlist

XMLWriter::writeComment
XMLWriter::writeDTDElement
XMLWriter 函数


Write full DTD element tag

XMLWriter::writeDTDAttlist
XMLWriter::writeDTDEntity
XMLWriter 函数
PHP 手册

XMLWriter::writeDTDElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDElement — Write full DTD element tag

说明

Object oriented style:

XMLWriter
bool writeDTDElement ( string $name , string $content )

Procedural style:

bool xmlwriter_write_dtd_element ( resource $xmlwriter , string $name , string $content )

Writes a full DTD element.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The name of the DTD element.

content

The content of the element.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTDElement
  • XMLWriter::endDTDElement

XMLWriter::writeDTDAttlist
XMLWriter::writeDTDEntity
XMLWriter 函数


Write full DTD Entity tag

XMLWriter::writeDTDElement
XMLWriter::writeDTD
XMLWriter 函数
PHP 手册

XMLWriter::writeDTDEntity

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDEntity — Write full DTD Entity tag

说明

Object oriented style:

XMLWriter
bool writeDTDEntity ( string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Procedural style:

bool xmlwriter_write_dtd_entity ( resource $xmlwriter , string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Writes a full DTD entity.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The name of the entity.

content

The content of the entity.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTDEntity
  • XMLWriter::endDTDEntity

XMLWriter::writeDTDElement
XMLWriter::writeDTD
XMLWriter 函数


Write full DTD tag

XMLWriter::writeDTDEntity
XMLWriter::writeElementNS
XMLWriter 函数
PHP 手册

XMLWriter::writeDTD

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTD — Write full DTD tag

说明

Object oriented style:

XMLWriter
bool writeDTD ( string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Procedural style:

bool xmlwriter_write_dtd ( resource $xmlwriter , string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Writes a full DTD.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The DTD name.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

subset

The content of the DTD.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startDTD
  • XMLWriter::endDTD

XMLWriter::writeDTDEntity
XMLWriter::writeElementNS
XMLWriter 函数


Write full namesapced element tag

XMLWriter::writeDTD
XMLWriter::writeElement
XMLWriter 函数
PHP 手册

XMLWriter::writeElementNS

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNS — Write full namesapced element tag

说明

Object oriented style:

XMLWriter
bool writeElementNS ( string $prefix , string $name , string $uri [, string $content ] )

Procedural style:

bool xmlwriter_write_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri [, string $content ] )

Writes a full namespaced element tag.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

prefix

The namespace prefix.

name

The element name.

uri

The namespace URI.

content

The element contents.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
PHP 5.2.3 | The content parameter became optional.

参见

  • XMLWriter::startElementNS
  • XMLWriter::endElement
  • XMLWriter::writeElement

XMLWriter::writeDTD
XMLWriter::writeElement
XMLWriter 函数


Write full element tag

XMLWriter::writeElementNS
XMLWriter::writePI
XMLWriter 函数
PHP 手册

XMLWriter::writeElement

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement — Write full element tag

说明

Object oriented style:

XMLWriter
bool writeElement ( string $name [, string $content ] )

Procedural style:

bool xmlwriter_write_element ( resource $xmlwriter , string $name [, string $content ] )

Writes a full element tag.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

name

The element name.

content

The element contents.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

更新日志

版本 | 说明
PHP 5.2.3 | The content parameter became optional.

参见

  • XMLWriter::startElement
  • XMLWriter::endElement
  • XMLWriter::writeElementNS

XMLWriter::writeElementNS
XMLWriter::writePI
XMLWriter 函数


Writes a PI

XMLWriter::writeElement
XMLWriter::writeRaw
XMLWriter 函数
PHP 手册

XMLWriter::writePI

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter::writePI — Writes a PI

说明

Object oriented style:

XMLWriter
bool writePI ( string $target , string $content )

Procedural style:

bool xmlwriter_write_pi ( resource $xmlwriter , string $target , string $content )

Writes a processing instruction.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

target

The target of the processing instruction.

content

The content of the processing instruction.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::startPI
  • XMLWriter::endPI

XMLWriter::writeElement
XMLWriter::writeRaw
XMLWriter 函数


Write a raw XML text

XMLWriter::writePI
XSL
XMLWriter 函数
PHP 手册

XMLWriter::writeRaw

(PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw — Write a raw XML text

说明

Object oriented style:

XMLWriter
bool writeRaw ( string $content )

Procedural style:

bool xmlwriter_write_raw ( resource $xmlwriter , string $content )

Writes a raw xml text.

参数

xmlwriter

仅用于过程调用。resource 是被修改的 XMLWriter 资源。此资源来自对 xmlwriter_open_uri() 或 xmlwriter_open_memory() 的调用

content

The text string to write.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XMLWriter::text

XMLWriter::writePI
XSL
XMLWriter 函数


XSL

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • 范例
    • collection.xml
  • XSLTProcessor — The XSLTProcessor class
    • XSLTProcessor::__construct — Creates a new XSLTProcessor object
    • XSLTProcessor::getParameter — Get value of a parameter
    • XSLTProcessor::hasExsltSupport — Determine if PHP has EXSLT support
    • XSLTProcessor::importStylesheet — Import stylesheet
    • XSLTProcessor::registerPHPFunctions — Enables the ability to use PHP functions as XSLT functions
    • XSLTProcessor::removeParameter — Remove parameter
    • XSLTProcessor::setParameter — Set value for a parameter
    • XSLTProcessor::setProfiling — Sets profiling output file
    • XSLTProcessor::transformToDoc — Transform to a DOMDocument
    • XSLTProcessor::transformToURI — Transform to URI
    • XSLTProcessor::transformToXML — Transform to XML
XMLWriter::writeRaw
简介
XML操作


简介

The XSL extension implements the XSL standard, performing » XSLT transformations using the » libxslt library

XSL
安装/配置
XSL


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
XSL


需求

This extension uses libxslt which can be found at » http://xmlsoft.org/XSLT/. libxslt version 1.1.0 or greater is required.

安装/配置
安装
安装/配置


安装

PHP 5 includes the XSL extension by default and can be enabled by adding the argument --with-xsl[=DIR] to your configure line. DIR is the libxslt installation directory.

需求
运行时配置
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XSL_CLONE_AUTO (integer)
XSL_CLONE_NEVER (integer)
XSL_CLONE_ALWAYS (integer)
LIBXSLT_VERSION (integer)
libxslt version like 10117. Available as of PHP 5.1.2.
LIBXSLT_DOTTED_VERSION (string)
libxslt version like 1.1.17. Available as of PHP 5.1.2.
LIBEXSLT_VERSION (integer)
libexslt version like 813. Available as of PHP 5.1.2.
LIBEXSLT_DOTTED_VERSION (string)
libexslt version like 1.1.17. Available as of PHP 5.1.2.
资源类型
范例
XSL


范例

Table of Contents

  • collection.xml
预定义常量
collection.xml
XSL


collection.xml

范例
XSLTProcessor
范例
PHP 手册

Many examples in this reference require both an XML and an XSL file. We will use collection.xml and collection.xsl that contains the following:

Example #1 collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Example #2 collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>

范例
XSLTProcessor
范例


The XSLTProcessor class

简介

Description of the class.

Class synopsis

XSLTProcessor
XSLTProcessor {
/* Methods */
string getParameter ( string $namespaceURI , string $localName )
bool hasExsltSupport ( void )
void importStylesheet ( DOMDocument $stylesheet )
void registerPHPFunctions ([ mixed $restrict ] )
bool removeParameter ( string $namespaceURI , string $localName )
bool setParameter ( string $namespace , string $name , string $value )
bool setProfiling ( string $filename )
DOMDocument transformToDoc ( DOMNode $doc )
int transformToURI ( DOMDocument $doc , string $uri )
string transformToXML ( DOMDocument $doc )
}

Table of Contents

  • XSLTProcessor::__construct — Creates a new XSLTProcessor object
  • XSLTProcessor::getParameter — Get value of a parameter
  • XSLTProcessor::hasExsltSupport — Determine if PHP has EXSLT support
  • XSLTProcessor::importStylesheet — Import stylesheet
  • XSLTProcessor::registerPHPFunctions — Enables the ability to use PHP functions as XSLT functions
  • XSLTProcessor::removeParameter — Remove parameter
  • XSLTProcessor::setParameter — Set value for a parameter
  • XSLTProcessor::setProfiling — Sets profiling output file
  • XSLTProcessor::transformToDoc — Transform to a DOMDocument
  • XSLTProcessor::transformToURI — Transform to URI
  • XSLTProcessor::transformToXML — Transform to XML
collection.xml
XSLTProcessor::__construct
XSL


Creates a new XSLTProcessor object

XSLTProcessor
XSLTProcessor::getParameter
XSLTProcessor
PHP 手册

XSLTProcessor::__construct

(PHP 5)

XSLTProcessor::__construct — Creates a new XSLTProcessor object

说明

XSLTProcessor
__construct ( void )

Creates a new XSLTProcessor object.

参数

This function has no parameters.

返回值

无返回值。

范例

Example #1 Creating an XSLTProcessor

<?php

$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);

$doc->load($xml_filename);
echo $xsl->transformToXML($doc);

?>

XSLTProcessor
XSLTProcessor::getParameter
XSLTProcessor


Get value of a parameter

XSLTProcessor::__construct
XSLTProcessor::hasExsltSupport
XSLTProcessor
PHP 手册

XSLTProcessor::getParameter

(PHP 5)

XSLTProcessor::getParameter — Get value of a parameter

说明

XSLTProcessor
string getParameter ( string $namespaceURI , string $localName )

Gets a parameter if previously set by XSLTProcessor::setParameter().

参数

namespaceURI

The namespace URI of the XSLT parameter.

localName

The local name of the XSLT parameter.

返回值

The value of the parameter or NULL if it's not set.

参见

  • XSLTProcessor::setParameter() - Set value for a parameter
  • XSLTProcessor::removeParameter() - Remove parameter

XSLTProcessor::__construct
XSLTProcessor::hasExsltSupport
XSLTProcessor


Determine if PHP has EXSLT support

XSLTProcessor::getParameter
XSLTProcessor::importStylesheet
XSLTProcessor
PHP 手册

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4)

XSLTProcessor::hasExsltSupport — Determine if PHP has EXSLT support

说明

XSLTProcessor
bool hasExsltSupport ( void )

This method determine if PHP was built with the » EXSLT library.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Testing EXSLT support

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('EXSLT support not available');
}

// do EXSLT stuff here ..

?>

XSLTProcessor::getParameter
XSLTProcessor::importStylesheet
XSLTProcessor


Import stylesheet

XSLTProcessor::hasExsltSupport
XSLTProcessor::registerPHPFunctions
XSLTProcessor
PHP 手册

XSLTProcessor::importStylesheet

(PHP 5)

XSLTProcessor::importStylesheet — Import stylesheet

说明

XSLTProcessor
void importStylesheet ( DOMDocument $stylesheet )

This method import the stylesheet into the XSLTProcessor for transformations.

参数

stylesheet

The imported style sheet as a DOMDocument object.

返回值

无返回值。

XSLTProcessor::hasExsltSupport
XSLTProcessor::registerPHPFunctions
XSLTProcessor


Enables the ability to use PHP functions as XSLT functions

XSLTProcessor::importStylesheet
XSLTProcessor::removeParameter
XSLTProcessor
PHP 手册

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4)

XSLTProcessor::registerPHPFunctions — Enables the ability to use PHP functions as XSLT functions

说明

XSLTProcessor
void registerPHPFunctions ([ mixed $restrict ] )

This method enables the ability to use PHP functions as XSLT functions within XSL stylesheets.

参数

restrict

Use this parameter to only allow certain functions to be called from XSLT.

This parameter can be either a string (a function name) or an array of functions.

返回值

无返回值。

范例

Example #1 Simple PHP Function call from a stylesheet

<?php
$xml = <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Users</h2>
    <table>
    <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
             select="php:function('ucfirst',string(uid))"/>
      </td></tr>
    </xsl:for-each>
    </table>
  </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>

更新日志

版本 | 说明
5.1.0 | The restrict parameter was added.

XSLTProcessor::importStylesheet
XSLTProcessor::removeParameter
XSLTProcessor


Remove parameter

XSLTProcessor::registerPHPFunctions
XSLTProcessor::setParameter
XSLTProcessor
PHP 手册

XSLTProcessor::removeParameter

(PHP 5)

XSLTProcessor::removeParameter — Remove parameter

说明

XSLTProcessor
bool removeParameter ( string $namespaceURI , string $localName )

Removes a parameter, if set. This will make the processor use the default value for the parameter as specified in the stylesheet.

参数

namespaceURI

The namespace URI of the XSLT parameter.

localName

The local name of the XSLT parameter.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

参见

  • XSLTProcessor::setParameter() - Set value for a parameter
  • XSLTProcessor::getParameter() - Get value of a parameter

XSLTProcessor::registerPHPFunctions
XSLTProcessor::setParameter
XSLTProcessor


Set value for a parameter

XSLTProcessor::removeParameter
XSLTProcessor::setProfiling
XSLTProcessor
PHP 手册

XSLTProcessor::setParameter

(PHP 5)

XSLTProcessor::setParameter — Set value for a parameter

说明

XSLTProcessor
bool setParameter ( string $namespace , string $name , string $value )
XSLTProcessor
bool setParameter ( string $namespace , array $options )

Sets the value of one or more parameters to be used in subsequent transformations with XSLTProcessor. If the parameter doesn't exist in the stylesheet it will be ignored.

参数

namespace

The namespace URI of the XSLT parameter.

name

The local name of the XSLT parameter.

value

The new value of the XSLT parameter.

options

An array of name => value pairs. This syntax is available since PHP 5.1.0.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Changing the owner before the transformation

<?php

$collections = array(
    'Marc Rutkowski' => 'marc',
    'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

foreach ($collections as $name => $file) {
    // Load the XML source
    $xml = new DOMDocument;
    $xml->load('collection_' . $file . '.xml');

    $proc->setParameter('', 'owner', $name);
    $proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

参见

  • XSLTProcessor::getParameter() - Get value of a parameter
  • XSLTProcessor::removeParameter() - Remove parameter

XSLTProcessor::removeParameter
XSLTProcessor::setProfiling
XSLTProcessor


Sets profiling output file

XSLTProcessor::setParameter
XSLTProcessor::transformToDoc
XSLTProcessor
PHP 手册

XSLTProcessor::setProfiling

(PHP >= 5.3.0)

XSLTProcessor::setProfiling — Sets profiling output file

说明

XSLTProcessor
bool setProfiling ( string $filename )

Sets the file to output profiling information when processing a stylesheet.

参数

filename

Path to the file to dump profiling information.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Example profiling output

<?php
// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // attach the xsl rules

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

The above code will produce the following information in the profiling file:

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4

XSLTProcessor::setParameter
XSLTProcessor::transformToDoc
XSLTProcessor


Transform to a DOMDocument

XSLTProcessor::setProfiling
XSLTProcessor::transformToURI
XSLTProcessor
PHP 手册

XSLTProcessor::transformToDoc

(PHP 5)

XSLTProcessor::transformToDoc — Transform to a DOMDocument

说明

XSLTProcessor
DOMDocument transformToDoc ( DOMNode $doc )

Transforms the source node to a DOMDocument applying the stylesheet given by the XSLTProcessor::importStylesheet() method.

参数

doc

The node to be transformed.

返回值

The resulting DOMDocument or FALSE on error.

范例

Example #1 Transforming to a DOMDocument

<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

上例将输出：

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

参见

  • XSLTProcessor::transformToUri() - Transform to URI
  • XSLTProcessor::transformToXml() - Transform to XML

XSLTProcessor::setProfiling
XSLTProcessor::transformToURI
XSLTProcessor


Transform to URI

XSLTProcessor::transformToDoc
XSLTProcessor::transformToXML
XSLTProcessor
PHP 手册

XSLTProcessor::transformToURI

(PHP 5)

XSLTProcessor::transformToURI — Transform to URI

说明

XSLTProcessor
int transformToURI ( DOMDocument $doc , string $uri )

Transforms the source node to an URI applying the stylesheet given by the XSLTProcessor::importStylesheet() method.

参数

doc

The transformed document.

uri

返回值

Returns the number of bytes written or FALSE if an error occurred.

范例

Example #1 Transforming to a HTML file

<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

参见

  • XSLTProcessor::transformToDoc() - Transform to a DOMDocument
  • XSLTProcessor::transformToXml() - Transform to XML

XSLTProcessor::transformToDoc
XSLTProcessor::transformToXML
XSLTProcessor


Transform to XML

XSLTProcessor::transformToURI
XSLT
XSLTProcessor
PHP 手册

XSLTProcessor::transformToXML

(PHP 5)

XSLTProcessor::transformToXML — Transform to XML

说明

XSLTProcessor
string transformToXML ( DOMDocument $doc )

Transforms the source node to a string applying the stylesheet given by the xsltprocessor::importStylesheet() method.

参数

doc

The transformed document.

返回值

The result of the transformation as a string or FALSE on error.

范例

Example #1 Transforming to a string

<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo $proc->transformToXML($xml);

?>

上例将输出：

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

参见

  • XSLTProcessor::transformToDoc() - Transform to a DOMDocument
  • XSLTProcessor::transformToUri() - Transform to URI

XSLTProcessor::transformToURI
XSLT
XSLTProcessor


XSLT

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • XSLT 函数
    • xslt_backend_info — Returns the information on the compilation settings of the backend
    • xslt_backend_name — Returns the name of the backend
    • xslt_backend_version — Returns the version number of Sablotron
    • xslt_create — Create a new XSLT processor
    • xslt_errno — Returns an error number
    • xslt_error — Returns an error string
    • xslt_free — Free XSLT processor
    • xslt_getopt — Get options on a given xsl processor
    • xslt_process — Perform an XSLT transformation
    • xslt_set_base — Set the base URI for all XSLT transformations
    • xslt_set_encoding — Set the encoding for the parsing of XML documents
    • xslt_set_error_handler — Set an error handler for a XSLT processor
    • xslt_set_log — Set the log file to write log messages to
    • xslt_set_object — Sets the object in which to resolve callback functions
    • xslt_set_sax_handler — Set SAX handlers for a XSLT processor
    • xslt_set_sax_handlers — Set the SAX handlers to be called when the XML document gets processed
    • xslt_set_scheme_handler — Set Scheme handlers for a XSLT processor
    • xslt_set_scheme_handlers — Set the scheme handlers for the XSLT processor
    • xslt_setopt — Set options on a given xsl processor
XSLTProcessor::transformToXML
简介
XML操作


简介

This PHP extension provides a processor independent API to XSLT transformations. Currently this extension only supports the Sablotron library from the Ginger Alliance. Support is planned for other libraries, such as the Xalan library or the libxslt library.

XSLT (Extensible Stylesheet Language (XSL) Transformations) is a language for transforming XML documents into other XML documents. It is a standard defined by The World Wide Web Consortium (W3C). Information about XSLT and related technologies can be found at » http://www.w3.org/TR/xslt.

Note: This extension is different than the sablotron extension distributed with versions of PHP prior to PHP 4.1.0, currently only the new XSLT extension in PHP 4.1.0 is supported. If you need support for the old extension, please ask your questions on the PHP mailing lists.

Note: 本扩展已被移动到 » PECL 库中且自以下版本起不再被绑定到 PHP 中：5.0.0.

Note: If you need xslt support with PHP 5 you can use the XSL extension.

XSLT
安装/配置
XSLT


安装/配置

Table of Contents

  • 需求
  • 安装
  • 运行时配置
  • 资源类型
简介
需求
XSLT


需求

This extension uses Sablotron and expat, which can both be found at » http://www.gingerall.org/sablotron.html. Binaries are provided as well as source.

安装/配置
安装
安装/配置


安装

On Unix, run configure with the --enable-xslt --with-xslt-sablot options. The Sablotron library should be installed somewhere your compiler can find it.

Make sure you have the same libraries linked to the Sablotron library as those, which are linked with PHP. The configuration options: --with-expat-dir=DIR --with-iconv-dir=DIR are there to help you specify them. When asking for support, always mention these directives, and whether there are other versions of those libraries installed on your system somewhere. Naturally, provide all the version numbers.

Caution

Be sure your Sablot library is linked to -lstdc++ as otherwise your configure will fail, or PHP will fail to run or load.

Note: JavaScript E-XSLT support
If you compiled Sablotron with JavaScript support, you must specify the option: --with-sablot-js=DIR.

Note: Note to Win32 Users
In order for this extension to work, there are DLL files that must be available to the Windows system PATH. For information on how to do this, see the FAQ entitled "How do I add my PHP directory to the PATH on Windows". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's PATH), this is not recommended. This extension requires the following files to be in the PATH: sablot.dll, expat.dll, and iconv.dll
For PHP <= 4.2.0, the file iconv.dll is not required.

需求
运行时配置
安装/配置


资源类型

This extension defines a XSLT processor resource returned by xslt_create().

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

XSLT_OPT_SILENT (integer)
Drop all logging and error reporting. This is a generic option for all backends that may be added in the future.
XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (integer)

Tell Sablotron to parse public entities. By default this has been turned off.

XSLT_SABOPT_DISABLE_ADDING_META (integer)

Do not add the meta tag "Content-Type" for HTML output. The default is set during compilation of Sablotron.

XSLT_SABOPT_DISABLE_STRIPPING (integer)
Suppress the whitespace stripping (on data files only).
XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (integer)
Consider unresolved documents (the document() function) non-lethal.
XSLT_SABOPT_FILES_TO_HANDLER (integer)
XSLT_ERR_UNSUPPORTED_SCHEME (integer)
Error return code, for scheme handlers.
资源类型
XSLT 函数
XSLT


XSLT 函数

Table of Contents

  • xslt_backend_info — Returns the information on the compilation settings of the backend
  • xslt_backend_name — Returns the name of the backend
  • xslt_backend_version — Returns the version number of Sablotron
  • xslt_create — Create a new XSLT processor
  • xslt_errno — Returns an error number
  • xslt_error — Returns an error string
  • xslt_free — Free XSLT processor
  • xslt_getopt — Get options on a given xsl processor
  • xslt_process — Perform an XSLT transformation
  • xslt_set_base — Set the base URI for all XSLT transformations
  • xslt_set_encoding — Set the encoding for the parsing of XML documents
  • xslt_set_error_handler — Set an error handler for a XSLT processor
  • xslt_set_log — Set the log file to write log messages to
  • xslt_set_object — Sets the object in which to resolve callback functions
  • xslt_set_sax_handler — Set SAX handlers for a XSLT processor
  • xslt_set_sax_handlers — Set the SAX handlers to be called when the XML document gets processed
  • xslt_set_scheme_handler — Set Scheme handlers for a XSLT processor
  • xslt_set_scheme_handlers — Set the scheme handlers for the XSLT processor
  • xslt_setopt — Set options on a given xsl processor
预定义常量
xslt_backend_info
XSLT


Returns the information on the compilation settings of the backend

XSLT 函数
xslt_backend_name
XSLT 函数
PHP 手册

xslt_backend_info

(PHP 4 >= 4.3.0)

xslt_backend_info — Returns the information on the compilation settings of the backend

说明

string xslt_backend_info ( void )

xslt_backend_info() gets information about the compilation settings of the backend.

返回值

Returns a string with information about the compilation setting of the backend or an error string when no information available.

参见

  • xslt_backend_name() - Returns the name of the backend
  • xslt_backend_version() - Returns the version number of Sablotron

XSLT 函数
xslt_backend_name
XSLT 函数


Returns the name of the backend

xslt_backend_info
xslt_backend_version
XSLT 函数
PHP 手册

xslt_backend_name

(PHP 4 >= 4.3.0)

xslt_backend_name — Returns the name of the backend

说明

string xslt_backend_name ( void )

xslt_backend_name() gets the name of the backend.

返回值

Returns Sablotron.

范例

Example #1 xslt_backend_name() example

<?php

echo xslt_backend_name(); // Sablotron

?>

参见

  • xslt_backend_info() - Returns the information on the compilation settings of the backend
  • xslt_backend_version() - Returns the version number of Sablotron

xslt_backend_info
xslt_backend_version
XSLT 函数


Returns the version number of Sablotron

xslt_backend_name
xslt_create
XSLT 函数
PHP 手册

xslt_backend_version

(PHP 4 >= 4.3.0)

xslt_backend_version — Returns the version number of Sablotron

说明

string xslt_backend_version ( void )

xslt_backend_version() gets the version number of Sablotron.

返回值

Returns the version number, or FALSE if not available.

范例

Example #1 xslt_backend_version() example

<?php

echo xslt_backend_version(); // 0.98 for example

?>

参见

  • xslt_backend_info() - Returns the information on the compilation settings of the backend
  • xslt_backend_name() - Returns the name of the backend

xslt_backend_name
xslt_create
XSLT 函数


Create a new XSLT processor

xslt_backend_version
xslt_errno
XSLT 函数
PHP 手册

xslt_create

(PHP 4 >= 4.0.3)

xslt_create — Create a new XSLT processor

说明

resource xslt_create ( void )

Create and return a new XSLT processor resource for manipulation by the other XSLT functions.

返回值

Returns an XSLT processor link identifier on success, or FALSE on error.

范例

Example #1 xslt_create() example

<?php
function xml2html($xmldata, $xsl)
{
    /* $xmldata -> your XML */
    /* $xsl -> XSLT file */

    $path = 'include';
    $arguments = array('/_xml' => $xmldata);
    $xsltproc = xslt_create();
    xslt_set_encoding($xsltproc, 'ISO-8859-1');
    $html =
        xslt_process($xsltproc, 'arg:/_xml', "$path/$xsl", NULL, $arguments);

    if (empty($html)) {
       die('XSLT processing error: '. xslt_error($xsltproc));
    }
    xslt_free($xsltproc);
    return $html;
}
?>

参见

  • xslt_free() - Free XSLT processor

xslt_backend_version
xslt_errno
XSLT 函数


Returns an error number

xslt_create
xslt_error
XSLT 函数
PHP 手册

xslt_errno

(PHP 4 >= 4.0.3)

xslt_errno — Returns an error number

说明

int xslt_errno ( resource $xh )

Returns an error code describing the last error that occurred on the passed XSLT processor.

参数

xh

The XSLT processor link identifier, created with xslt_create().

返回值

Returns the error code, as an integer.

参见

  • xslt_error() - Returns an error string

xslt_create
xslt_error
XSLT 函数


Returns an error string

xslt_errno
xslt_free
XSLT 函数
PHP 手册

xslt_error

(PHP 4 >= 4.0.3)

xslt_error — Returns an error string

说明

string xslt_error ( resource $xh )

Returns a string describing the last error that occurred on the passed XSLT processor.

参数

xh

The XSLT processor link identifier, created with xslt_create().

返回值

Returns the error message, as a string.

范例

Example #1 Handling errors using the xslt_error() and xslt_errno() functions.

<?php

$xh = xslt_create();
$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
if (!$result) {
    die(sprintf("Cannot process XSLT document [%d]: %s",
                xslt_errno($xh), xslt_error($xh)));
}

echo $result;

xslt_free($xh);
?>

参见

  • xslt_errno() - Returns an error number

xslt_errno
xslt_free
XSLT 函数


Free XSLT processor

xslt_error
xslt_getopt
XSLT 函数
PHP 手册

xslt_free

(PHP 4 >= 4.0.3)

xslt_free — Free XSLT processor

说明

void xslt_free ( resource $xh )

Free the XSLT processor identified by the given handle.

参数

xh

The XSLT processor link identifier, created with xslt_create().

返回值

无返回值。

参见

  • xslt_create() - Create a new XSLT processor

xslt_error
xslt_getopt
XSLT 函数


Get options on a given xsl processor

xslt_free
xslt_process
XSLT 函数
PHP 手册

xslt_getopt

(PHP 4 >= 4.3.0)

xslt_getopt — Get options on a given xsl processor

说明

int xslt_getopt ( resource $processor )

xslt_getopt() returns the options on the given processor .

参数

processor

The XSLT processor link identifier, created with xslt_create().

返回值

Returns the options, a bitmask constructed with the XSLT_SABOPT_XXX constants.

参见

  • xslt_setopt() - Set options on a given xsl processor

xslt_free
xslt_process
XSLT 函数


Perform an XSLT transformation

xslt_getopt
xslt_set_base
XSLT 函数
PHP 手册

xslt_process

(PHP 4 >= 4.0.3)

xslt_process — Perform an XSLT transformation

说明

mixed xslt_process ( resource $xh , string $xmlcontainer , string $xslcontainer [, string $resultcontainer [, array $arguments [, array $parameters ]]] )

The xslt_process() function is the crux of the XSLT extension. It allows you to perform an XSLT transformation using almost any type of input source - the containers. This is accomplished through the use of argument buffers -- a concept taken from the Sablotron XSLT processor (currently the only XSLT processor this extension supports). The input containers default to a filename 'containing' the document to be processed.

参数

xh

The XSLT processor link identifier, created with xslt_create().

xmlcontainer

Path to XML file or placeholder for the XML argument.

xslcontainer

Path to XSL file or placeholder for the XML argument.

resultcontainer

The result container defaults to a filename for the transformed document. If the result container is not specified - i.e. NULL - than the result is returned.

arguments

Instead of files as the XML and XSLT arguments to the xslt_process() function, you can specify "argument place holders" which are then substituted by values given in the arguments array.

parameters

An array for any top-level parameters that will be passed to the XSLT document. These parameters can then be accessed within your XSL files using the <xsl:param name="parameter_name"> instruction. The parameters must be UTF-8 encoded and their values will be interpreted as strings by the Sablotron processor. In other words - you cannot pass node-sets as parameters to the XSLT document.

Containers can also be set via the arguments array (see below).

返回值

如果成功则返回 TRUE，失败则返回 FALSE。 If the result container is not specified - i.e. NULL - than the result is returned.

更新日志

版本 | 说明
4.0.6 | This function no longer takes XML strings in xmlcontainer or xslcontainer . Passing a string containing XML to either of these parameters will result in a segmentation fault in Sablotron versions up to and including version 0.95.

范例

The simplest type of transformation with the xslt_process() function is the transformation of an XML file with an XSLT file, placing the result in a third file containing the new XML (or HTML) document. Doing this with sablotron is really quite easy...

Example #1 Using the xslt_process() to transform an XML file and a XSL file to a new XML file

<?php

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
    echo ", result.xml has the following contents\n<br />\n";
    echo "<pre>\n";
    readfile('result.xml');
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  result.xml the reason is that " . xslt_error($xh) . " and the ";
    echo "error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

While this functionality is great, many times, especially in a web environment, you want to be able to print out your results directly. Therefore, if you omit the third argument to the xslt_process() function (or provide a NULL value for the argument), it will automatically return the value of the XSLT transformation, instead of writing it to a file...

Example #2 Using the xslt_process() to transform an XML file and a XSL file to a variable containing the resulting XML data

<?php

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document, returning the result into the $result variable
$result = xslt_process($xh, 'sample.xml', 'sample.xsl');
if ($result) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo " variable, the \$result variable has the following contents\n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  the \$result variable the reason is that " . xslt_error($xh);
    echo " and the error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

The above two cases are the two simplest cases there are when it comes to XSLT transformation and I'd dare say that they are the most common cases, however, sometimes you get your XML and XSLT code from external sources, such as a database or a socket. In these cases you'll have the XML and/or XSLT data in a variable -- and in production applications the overhead of dumping these to file may be too much. This is where XSLT's "argument" syntax, comes to the rescue. Instead of files as the XML and XSLT arguments to the xslt_process() function, you can specify "argument place holders" which are then substituted by values given in the arguments array (5th parameter to the xslt_process() function). The following is an example of processing XML and XSLT into a result variable without the use of files at all.

Example #3 Using the xslt_process() to transform a variable containing XML data and a variable containing XSL data into a variable containing the resulting XML data

<?php
// $xml and $xsl contain the XML and XSL data

$arguments = array(
     '/_xml' => $xml,
     '/_xsl' => $xsl
);

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
if ($result) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo " variable, the \$result variable has the following contents\n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  the \$result variable the reason is that " . xslt_error($xh);
    echo " and the error code is " . xslt_errno($xh);
}
xslt_free($xh);
?>

Example #4 Passing PHP variables to XSL files

<?php

// XML string
$xml = '<?xml version="1.0"?>
<para>
 change me
</para>';

// XSL string
$xsl = '
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no"
 omit-xml-declaration="yes"  media-type="text/html"/>
 <xsl:param name="myvar"/>
 <xsl:param name="mynode"/>
 <xsl:template match="/">
My PHP variable : <xsl:value-of select="$myvar"/><br />
My node set : <xsl:value-of select="$mynode"/>
 </xsl:template>
</xsl:stylesheet>';

$xh = xslt_create();

// the second parameter will be interpreted as a string
$parameters = array (
  'myvar' => 'test',
  'mynode' => '<foo>bar</foo>'
);

$arguments = array (
  '/_xml' => $xml,
  '/_xsl' => $xsl
);

echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments, $parameters);

?>

上例将输出：

My PHP variable : test<br>
My node set : &lt;foo&gt;bar&lt;/foo&gt;

注释

Note: 注意如果使用 Windows，需要在路径前加上 file://。

xslt_getopt
xslt_set_base
XSLT 函数


Set the base URI for all XSLT transformations

xslt_process
xslt_set_encoding
XSLT 函数
PHP 手册

xslt_set_base

(PHP 4 >= 4.0.5)

xslt_set_base — Set the base URI for all XSLT transformations

说明

void xslt_set_base ( resource $xh , string $uri )

Sets the base URI for all XSLT transformations, the base URI is used with Xpath instructions to resolve document() and other commands which access external resources. It is also used to resolve URIs for the <xsl:include> and <xsl:import> elements.

参数

xh

The XSLT processor link identifier, created with xslt_create().

uri

The base URI to be used.

返回值

无返回值。

更新日志

版本 | 说明
4.3.0 | As of PHP 4.3.0, the default base URI is the directory of the executing script. In effect, it is the directory name value of the __FILE__ constant. The default base URI is less predictable with older versions.

注释

Note: 注意如果使用 Windows，需要在路径前加上 file://。

xslt_process
xslt_set_encoding
XSLT 函数


Set the encoding for the parsing of XML documents

xslt_set_base
xslt_set_error_handler
XSLT 函数
PHP 手册

xslt_set_encoding

(PHP 4 >= 4.0.5)

xslt_set_encoding — Set the encoding for the parsing of XML documents

说明

void xslt_set_encoding ( resource $xh , string $encoding )

Set the output encoding for the XSLT transformations. When using the Sablotron backend, this option is only available when you compile Sablotron with encoding support.

参数

xh

The XSLT processor link identifier, created with xslt_create().

encoding

An output encoding, e.g iso-8859-1.

返回值

无返回值。

xslt_set_base
xslt_set_error_handler
XSLT 函数


Set an error handler for a XSLT processor

xslt_set_encoding
xslt_set_log
XSLT 函数
PHP 手册

xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handler — Set an error handler for a XSLT processor

说明

void xslt_set_error_handler ( resource $xh , mixed $handler )

Set an error handler function for the XSLT processor given by xh , this function will be called whenever an error occurs in the XSLT transformation (this function is also called for notices).

参数

xh

The XSLT processor link identifier, created with xslt_create().

handler

The user function needs to accept four parameters: the XSLT processor, the error level, the error code and an array of messages. The function can be shown as:

error_handler ( resource $xh , int $error_level , int $error_code , array $messages )

返回值

无返回值。

范例

Example #1 xslt_set_error_handler() Example

<?php

// Our XSLT error handler
function xslt_error_handler($handler, $errno, $level, $info)
{
  // for now, let's just see the arguments
  var_dump(func_get_args());
}

// XML content :
$xml='<?xml version="1.0"?>
<para>
 oops, I misspelled the closing tag
</pata>';

// XSL content :
$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>';

$xh = xslt_create();

xslt_set_error_handler($xh, "xslt_error_handler");

echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl',
                  NULL, array("/_xml" => $xml, "/_xsl" => $xsl));

?>

上例的输出类似于：

array(4) {
  [0]=>
  resource(1) of type (XSLT Processor)
  [1]=>
  int(3)
  [2]=>
  int(0)
  [3]=>
  array(6) {
    ["msgtype"]=>
    string(5) "error"
    ["code"]=>
    string(1) "2"
    ["module"]=>
    string(9) "Sablotron"
    ["URI"]=>
    string(9) "arg:/_xml"
    ["line"]=>
    string(1) "4"
    ["msg"]=>
    string(34) "XML parser error 7: mismatched tag"
  }
}

参见

  • xslt_set_object() - Sets the object in which to resolve callback functions if you want to use an object method as handler

xslt_set_encoding
xslt_set_log
XSLT 函数


Set the log file to write log messages to

xslt_set_error_handler
xslt_set_object
XSLT 函数
PHP 手册

xslt_set_log

(PHP 4 >= 4.0.6)

xslt_set_log — Set the log file to write log messages to

说明

void xslt_set_log ( resource $xh [, mixed $log ] )

This function allows you to set the file in which you want XSLT log messages to, XSLT log messages are different than error messages, in that log messages are not actually error messages but rather messages related to the state of the XSLT processor. They are useful for debugging XSLT, when something goes wrong.

By default logging is disabled, in order to enable logging you must first call xslt_set_log() with a boolean parameter which enables logging, then if you want to set the log file to debug to, you must then pass it a string containing the filename.

参数

xh

The XSLT processor link identifier, created with xslt_create().

log

This parameter is either a boolean value which toggles logging on and off, or a string containing the logfile in which log errors too.

返回值

无返回值。

注释

Note: 注意如果使用 Windows，需要在路径前加上 file://。

范例

Example #1 Using the XSLT Logging features

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . '/myfile.log');

$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
echo $result;

xslt_free($xh);
?>

xslt_set_error_handler
xslt_set_object
XSLT 函数


Sets the object in which to resolve callback functions

xslt_set_log
xslt_set_sax_handler
XSLT 函数
PHP 手册

xslt_set_object

(PHP 4 >= 4.3.0)

xslt_set_object — Sets the object in which to resolve callback functions

说明

bool xslt_set_object ( resource $processor , object &$obj )

This function allows to use the processor inside an object and to resolve all callback functions in it.

The callback functions can be declared with xml_set_sax_handlers(), xslt_set_scheme_handlers() or xslt_set_error_handler() and are assumed to be methods of object .

参数

processor

The XSLT processor link identifier, created with xslt_create().

obj

An object.

返回值

如果成功则返回 TRUE，失败则返回 FALSE。

范例

Example #1 Using your own error handler as a method

<?php

class my_xslt_processor {

    var $_xh; // our XSLT processor

    function my_xslt_processor()
    {
        $this->_xh = xslt_create();

        // Make $this object the callback resolver
        xslt_set_object($this->_xh, $this);

        // Let's handle the errors
        xslt_set_error_handler($this->_xh, "my_xslt_error_handler");
    }

    function my_xslt_error_handler($handler, $errno, $level, $info)
    {
        // for now, let's just see the arguments
        var_dump(func_get_args());
    }
}

?>
xslt_set_log
xslt_set_sax_handler
XSLT 函数


Set SAX handlers for a XSLT processor

xslt_set_object
xslt_set_sax_handlers
XSLT 函数
PHP 手册

xslt_set_sax_handler

(PHP 4 >= 4.0.3)

xslt_set_sax_handler — Set SAX handlers for a XSLT processor

说明

void xslt_set_sax_handler ( resource $xh , array $handlers )

Set SAX handlers on the resource handle given by xh .

参数

xh

The XSLT processor link identifier, created with xslt_create().

handlers

SAX handlers should be a two dimensional array with the format (all top level elements are optional):

array(
[document] =>
    array(
        start document handler,
        end document handler
    ),
[element] =>
    array(
        start element handler,
        end element handler
    ),
[namespace] =>
    array(
        start namespace handler,
        end namespace handler
    ),
[comment] => comment handler,
[pi] => processing instruction handler,
[character] => character data handler
)

返回值

无返回值。

xslt_set_object
xslt_set_sax_handlers
XSLT 函数


Set the SAX handlers to be called when the XML document gets processed

xslt_set_sax_handler
xslt_set_scheme_handler
XSLT 函数
PHP 手册

xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlers — Set the SAX handlers to be called when the XML document gets processed

说明

void xslt_set_sax_handlers ( resource $processor , array $handlers )

xslt_set_sax_handlers() registers the SAX handlers for the document, given a XSLT processor resource.

Using xslt_set_sax_handlers() doesn't look very different than running a SAX parser like xml_parse() on the result of an xslt_process() transformation.

参数

processor

The XSLT processor link identifier, created with xslt_create().

handlers

handlers should be an array in the following format:

<?php

$handlers = array(

  "document" => array(
    "start_doc",
    "end_doc"),

  "element"  => array(
    "start_element",
    "end_element"),

  "namespace" => array(
    "start_namespace",
    "end_namespace"),

  "comment"   => "comment",

  "pi"        => "pi",

  "character" => "characters"

);
?>

Where the functions follow the syntax described for the scheme handler functions.

Note: The given array does not need to contain all of the different sax handler elements (although it can), but it only needs to conform to "handler" => "function" format described above.

Each of the individual SAX handler functions are in the format below:

  • start_doc ( resource $processor )

  • end_doc ( resource $processor )

  • start_element ( resource $processor , string $name , array $attributes )

  • end_element ( resource $processor , string $name )

  • start_namespace ( resource $processor , string $prefix , string $uri )

  • end_namespace ( resource $processor , string $prefix )

  • comment ( resource $processor , string $contents )

  • pi ( resource $processor , string $target , string $contents )

  • characters ( resource $processor , string $contents )

返回值

无返回值。

范例

Example #1 xslt_set_sax_handlers() Example

<?php
// From ohlesbeauxjours at yahoo dot fr
// Here's a simple example that applies strtoupper() on
// the content of every <auteur> tag and then displays the
// resulting XML tree:

$xml='<?xml version="1.0"?>
<books>
 <book>
  <title>Mme Bovary</title>
  <author>Gustave Flaubert</author>
 </book>
 <book>
  <title>Mrs Dalloway</title>
  <author>Virginia Woolf</author>
 </book>
</books>';

$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="/">
 <xsl:for-each select="books/book">
  <livre>
   <auteur><xsl:value-of select="author/text()"/></auteur>
  </livre>
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>';

// Handlers :
function start_document()
{
  // start reading the document
}

function end_document()
{
  // end reading the document
}

function start_element($parser, $name, $attributes)
{
  global $result,$tag;
  $result .= "<". $name . ">";
  $tag = $name;
}

function end_element($parser, $name)
{
  global $result;
  $result .= "</" . $name . ">";
}

function characters($parser, $data)
{
  global $result,$tag;
  if ($tag == "auteur" ) {
    $data = strtoupper($data);
  }
  $result .= $data;
}

// Transformation :
$xh = xslt_create();
$handlers = array("document" => array("start_document","end_document"),
   "element" => array("start_element","end_element"),
   "character" => "characters");

xslt_set_sax_handlers($xh, $handlers);
xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl));
xslt_free($xh);
?>

You can also use xslt_set_object() if you want to implement your handlers in an object.

Example #2 Object oriented handler

<?php
// This is the object oriented version of the previous example
class data_sax_handler {

  var $buffer, $tag, $attrs;

  var $_xh;

  function data_sax_handler($xml, $xsl)
  {
      // our xslt resource
      $this->_xh = xslt_create();

      xslt_set_object($this->_xs, $this);

      // configure sax handlers
      $handlers = array(
        "document" => array('start_document', 'end_document'),
        "element" => array('start_element', 'end_element'),
        "character" => 'characters'
      );

      xslt_set_sax_handlers($this->_xh, $handlers);

      xslt_process($this->_xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl));
      xslt_free($this->_xh);

  }

  function start_document()
  {
        // start reading the document
  }

  function end_document() {
        // complete reading the document
  }

  function start_element($parser, $name, $attributes) {
        $this->tag = $name;
        $this->buffer .= "<" . $name . ">";
        $this->attrs = $attributes;
  }

  function end_element($parser, $name)
  {
        $this->tag = '';
        $this->buffer .= "</" . $name . ">";
  }

  function characters($parser, $data)
  {
    if ($this->tag == 'auteur') {
          $data = strtoupper($data);
    }
    $this->buffer .= $data;
  }

  function get_buffer() {
    return $this->buffer;
  }

}

$exec = new data_sax_handler($xml, $xsl);

?>

Both examples will output:

<livre>
   <auteur>GUSTAVE FLAUBERT</auteur>
</livre>
<livre>
   <auteur>VIRGINIA WOOLF</auteur>
</livre>
xslt_set_sax_handler
xslt_set_scheme_handler
XSLT 函数


Set Scheme handlers for a XSLT processor

xslt_set_sax_handlers
xslt_set_scheme_handlers
XSLT 函数
PHP 手册

xslt_set_scheme_handler

(PHP 4 >= 4.0.5)

xslt_set_scheme_handler — Set Scheme handlers for a XSLT processor

说明

void xslt_set_scheme_handler ( resource $xh , array $handlers )

Set Scheme handlers on the resource handle given by xh .

参数

xh

The XSLT processor link identifier, created with xslt_create().

handlers

Scheme handlers should be an array with the format (all elements are optional):

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

返回值

无返回值。

xslt_set_sax_handlers
xslt_set_scheme_handlers
XSLT 函数


Set the scheme handlers for the XSLT processor

xslt_set_scheme_handler
xslt_setopt
XSLT 函数
PHP 手册

xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers — Set the scheme handlers for the XSLT processor

说明

void xslt_set_scheme_handlers ( resource $xh , array $handlers )

Registers the scheme handlers (XPath handlers) for the document.

参数

xh

The XSLT processor link identifier, created with xslt_create().

handlers

An array with the following keys: "get_all", "open", "get", "put", and "close".

Every entry must be a function name or an array in the following format: array($obj, "method").

Note that the given array does not need to contain all of the different scheme handler elements (although it can), but it only needs to conform to the "handler" => "function" format described above.

Each of the individual scheme handler functions called are in the formats below:

string   get_all(resource processor, string scheme, string rest)
resource open(resource processor, string scheme, string rest)
int      get(resource processor, resource fp, string &data)
int      put(resource processor, resource fp, string data)
void     close(resource processor, resource fp)

返回值

无返回值。

范例

Example #1 xslt_set_scheme_handlers() example

For example, here is an implementation of the "file_exists()" PHP function.

<?php

// Definition of the handler
function mySchemeHandler($processor, $scheme, $rest)
{
    $rest = substr($rest,1);    // to remove the first / automatically added by the engine
    if ($scheme == 'file_exists') {
        // result is embedded in a small xml string
        return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' : 'false') . '</root>';
    }
}

$SchemeHandlerArray = array('get_all' => 'mySchemeHandler');

// Start the engine
$params = array();
$xh = xslt_create();

xslt_set_scheme_handlers($xh, $SchemeHandlerArray);

$result = xslt_process($xh, "myFile.xml", "myFile.xsl", NULL, array(), $params);
xslt_free($xh);

echo $result;

?>

Then, inside the stylesheet, you can test whether a certain file exists with:

<xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'">
 <!-- The file exist -->
</xsl:if>

参见

  • xslt_set_scheme_handler() - Set Scheme handlers for a XSLT processor

xslt_set_scheme_handler
xslt_setopt
XSLT 函数


Set options on a given xsl processor

xslt_set_scheme_handlers
PHP at the Core: A Hacker's Guide to the Zend Engine
XSLT 函数
PHP 手册

xslt_setopt

(PHP 4 >= 4.3.0)

xslt_setopt — Set options on a given xsl processor

说明

mixed xslt_setopt ( resource $processor , int $newmask )

xslt_setopt() sets the options specified by newmask on the given processor .

参数

processor

The XSLT processor link identifier, created with xslt_create().

newmask

newmask is a bitmask constructed with the following constants:

  • XSLT_SABOPT_PARSE_PUBLIC_ENTITIES - Tell the processor to parse public entities. By default this has been turned off.

  • XSLT_SABOPT_DISABLE_ADDING_META - Do not add the meta tag "Content-Type" for HTML output. The default is set during the compilation of the processor.

  • XSLT_SABOPT_DISABLE_STRIPPING - Suppress the whitespace stripping (on data files only).

  • XSLT_SABOPT_IGNORE_DOC_NOT_FOUND - Consider unresolved documents (the document() function) non-lethal.

返回值

Returns the number of previous mask is possible, TRUE otherwise, FALSE in case of an error.

范例

Example #1 xslt_setopt() Example

<?php

$xh = xslt_create();

// Tell Sablotron to process public entities
xslt_setopt($xh, XSLT_SABOPT_PARSE_PUBLIC_ENTITIES);

// Let's also ask him to suppress whitespace stripping
xslt_setopt($xh, xslt_getopt($xh) | XSLT_SABOPT_DISABLE_STRIPPING);

?>

参见

  • xslt_getopt() - Get options on a given xsl processor

xslt_set_scheme_handlers
PHP at the Core: A Hacker's Guide to the Zend Engine
XSLT 函数


PHP at the Core: A Hacker's Guide to the Zend Engine

  • Preface
  • The "counter" Extension - A Continuing Example
    • 安装/配置
    • 预定义常量
    • 范例
    • Counter — The Counter class
    • Basic — The basic interface
    • Extended — The extended interface
  • The PHP 5 build system
    • Building PHP for extension development
    • The ext_skel script
    • Talking to the UNIX build system: config.m4
    • Talking to the Windows build system: config.w32
  • Extension structure
    • Files which make up an extension
    • Basic constructs
    • The zend_module structure
    • Extension globals
    • Life cycle of an extension
    • Testing an extension
  • Memory management
    • Basic memory management
    • Data persistence
    • Thread-Safe Resource Manager
  • Working with variables
  • Writing functions
  • Working with classes and objects
  • Working with resources
  • Working with INI settings
  • Working with streams
  • PDO Driver How-To
    • Prerequisites
    • Preparation and Housekeeping
    • Fleshing out your skeleton
    • Building
    • Testing
    • Packaging and distribution
    • pdo_dbh_t definition
    • pdo_stmt_t definition
    • Constants
    • Error handling
  • Extension FAQs
  • Zend Engine 2 API reference
  • Zend Engine 1
    • Old introduction
    • Streams API for PHP Extension Authors
    • Zend API：深入 PHP 内核
    • TSRM API
  • The future: PHP 6 and Zend Engine 3
xslt_setopt
Preface


Preface

The Zend API has evolved considerably over time, as PHP has become a more robust and widespread language. With the introduction of PHP 5 came the Zend Engine 2 (ZE2). ZE2 came with an almost entirely new Object-Oriented Programming (OOP) model, as well as improvements in most aspects of the API. PHP 6, which is still under active development at the time of this writing, introduces the Zend Engine 3 (ZE3), which brings full Unicode support to the language.

Warning

This documentation is still under heavy development. The original Zend documentation is preserved in its entirety in the Zend Engine 1 section for those who need it before this documentation is completed.

This section of the manual is devoted to ZE2. While PHP 4.4 is still in widespread use, the differences in how extensions are written in ZE1 are small; a short reference to them is given in an appendix to this section. ZE3's API may yet change significantly, and is covered in another appendix. It will be more fully documented when PHP 6 enters a beta testing stage.

The documentation in this section is current as of PHP 5.2.5, the most recent stable release at the time of this writing. Notable differences in the minor PHP 5 releases (5.0 through 5.3) are given as appropriate.

PHP at the Core: A Hacker's Guide to the Zend Engine
The "counter" Extension - A Continuing Example
PHP at the Core: A Hacker's Guide to the Zend Engine


Preface
安装/配置
PHP at the Core: A Hacker's Guide to the Zend Engine
PHP 手册

The "counter" Extension - A Continuing Example

Table of Contents

  • 安装/配置
  • 预定义常量
  • 范例
  • The Counter class
  • The basic interface
  • The extended interface

Preface

Throughout this Zend documentation, references are made to an example module in order to illustrate various concepts. The "counter" extension is this example, a fictional yet functional Zend module which strives to use as much of the Zend API as is reasonably possible. This short chapter describes the userland interface to the completed extension.

Note: "counter" serves no practical purpose whatsoever, as the functionality it provides is far more effectively implemented by appropriate userland code.

Preface
安装/配置
PHP at the Core: A Hacker's Guide to the Zend Engine


安装/配置

Table of Contents

  • 简介
  • 运行时配置
  • 资源类型
The "counter" Extension - A Continuing Example
简介
The "counter" Extension - A Continuing Example


简介

The "counter" extension provides any number of counters to PHP code using it which reset at times determined by the caller.

There are three interfaces to "counter": basic, extended, and objective. The basic interface provides a single counter controlled by INI settings and function calls. The extended interface provides an arbitrary number of named counter resources which may optionally persist beyond the lifetime of a single PHP request. The objective interface combines both the basic and extended interfaces into a Counter class.

安装/配置
运行时配置
安装/配置


运行时配置

这些函数的行为受 php.ini 的影响。

Counter configuration options
Name | Default | Changeable | Changelog
counter.reset_time | COUNTER_RESET_PER_REQUEST | PHP_INI_ALL |
counter.save_path | "" | PHP_INI_ALL |
counter.initial_value | "0" | PHP_INI_ALL |

有关 PHP_INI_* 常量进一步的细节与定义参见php.ini 配置选项。

counter.reset_time integer
counter.reset_time tells "counter" to reset the counter used by the basic interface. It may be any of the COUNTER_RESET_* constants (see below).
counter.save_path string
Tells "counter" where to save data that has to persist between invocations of PHP (i.e. any counter that has COUNTER_RESET_NEVER or COUNTER_FLAG_SAVE). A file will be created at this path, which must be readable and writable to whatever user PHP is running as.
counter.initial_value integer
Sets the initial value of the counter used by the basic interface whenever it is reset.
简介
资源类型
安装/配置


资源类型

The "counter" extension defines one resource type: a counter.

运行时配置
预定义常量
安装/配置


预定义常量

以下常量由本扩展模块定义，因此只有在本扩展模块被编译到 PHP 中，或者在运行时被动态加载后才有效。

COUNTER_FLAG_PERSIST (integer)
A counter with this flag will be created as a persistent resource.
COUNTER_FLAG_SAVE (integer)
A counter with this flag will be saved between invocations of PHP.
COUNTER_FLAG_NO_OVERWRITE (integer)
This flag causes counter_create() to avoid overwriting an existing named counter with a new one.
COUNTER_META_NAME (string)
Pass this constant to get the name of a counter resource or object.
COUNTER_META_IS_PERISTENT (string)
Pass this constant to determine whether a counter resource or object is persistent (has the COUNTER_FLAG_PERSIST flag).
COUNTER_RESET_NEVER (integer)
The counter will never be reset.
COUNTER_RESET_PER_LOAD (integer)
The counter will be reset on each invocation of PHP.
COUNTER_RESET_PER_REQUEST (integer)
The counter will be reset on each request.
资源类型
范例
The "counter" Extension - A Continuing Example


范例

Table of Contents

  • Basic interface
  • Extended interface
  • Objective interface
预定义常量
Basic interface
The "counter" Extension - A Continuing Example


Basic interface

The basic interface provides three simple functions, illustrated here:

Example #1 "counter"'s basic interface

<?php
$starting_counter_value = counter_get();
counter_bump(1);
$second_counter_value = counter_get();
counter_reset();
$final_counter_value = counter_get();
printf("%3d %3d %3d", $starting_counter_value, $second_counter_value, $final_counter_value);
?>

上例将输出：

  0   1   0

The basic interface also provides a number of INI settings.

范例
Extended interface
范例


Extended interface

The extended interface provides a small suite of functions that allow the user to define an arbitrary number of named counters with unique settings. The basic interface can be used in parallel with the extended interface.

Example #1 "counter"'s extended interface

<?php
function print_counter_info($counter)
{
    if (is_resource($counter)) {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            counter_get_meta($counter, COUNTER_META_NAME),
            counter_get_meta($counter, COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            counter_get_value($counter));
    } else {
      print "Not a valid counter!\n";
    }
}

if (($counter_one = counter_get_named("one")) === NULL) {
    $counter_one = counter_create("one", 0, COUNTER_FLAG_PERSIST);
}
counter_bump_value($counter_one, 2);
$counter_two = counter_create("two", 5);
$counter_three = counter_get_named("three");
$counter_four = counter_create("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
counter_bump_value($counter_four, 1);

print_counter_info($counter_one);
print_counter_info($counter_two);
print_counter_info($counter_three);
print_counter_info($counter_four);
?>

When run once, the above example outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 3.

If run a second time within the same instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 4.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 4.

If then run a third time in a different instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 5.
Basic interface
Objective interface
范例


Objective interface

The objective interface provides an object-oriented way to access the extended interfaces. The following example shows how the above one would be implemented using the objective interface. The output of this example is exactly the same, except that instead of printing "Not a valid counter!", this will instead issue a PHP warning that the variable $counter_three is not an object. This example shows that it is possible to subclass the Counter class defined by the extension, as well as that the counter's value is maintained using an instance variable rather than method access.

Example #1 "counter"'s objective interface

<?php
class MyCounter extends Counter
{
    public function printCounterInfo() {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            $this->getMeta(COUNTER_META_NAME),
            $this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            $this->value);
    }
}

Counter::setCounterClass("MyCounter");
if (($counter_one = Counter::getNamed("one")) === NULL) {
    $counter_one = new Counter("one", 0, COUNTER_FLAG_PERSIST);
}
$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly
$counter_two = new Counter("two", 5);
$counter_three = Counter::getNamed("three");
$counter_four = new Counter("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
$counter_four->bumpValue(1);

$counter_one->printCounterInfo();
$counter_two->printCounterInfo();
$counter_three->printCounterInfo();
$counter_four->printCounterInfo();
?>
Extended interface
Counter
范例


The Counter class

简介

Represents a single counter object.

Class synopsis

Counter
Counter {
__construct ( string $name [, integer $initial_value [, integer $flags ]] )
integer getValue ( void )
void bumpValue ( integer $offset )
void resetValue ( void )
mixed getMeta ( integer $attribute )
static Counter getNamed ( string $name )
static void setCounterClass ( string $name )
}

Table of Contents

  • Counter::__construct — Creates an instance of a Counter which maintains a single numeric value.
  • Counter::getValue — Get the current value of a counter.
  • Counter::bumpValue — Change the current value of a counter.
  • Counter::resetValue — Reset the current value of a counter.
  • Counter::getMeta — Return a piece of metainformation about a counter.
  • Counter::getNamed — Retrieve an existing named counter.
  • Counter::setCounterClass — Set the class returned by Counter::getNamed.
Objective interface
Counter::__construct
The "counter" Extension - A Continuing Example


Creates an instance of a Counter which maintains a single numeric value.

Counter
Counter::getValue
Counter
PHP 手册

Counter::__construct

Counter::__construct — Creates an instance of a Counter which maintains a single numeric value.

说明

Counter::__construct ( string $name [, integer $initial_value [, integer $flags ]] )

Creates an instance of a Counter which maintains a single numeric value.

参数

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

返回值

Returns a Counter object on success.

错误／异常

Counter::__construct() throws an Exception if something goes wrong.

Counter
Counter::getValue
Counter


Get the current value of a counter.

Counter::__construct
Counter::bumpValue
Counter
PHP 手册

Counter::getValue

Counter::getValue — Get the current value of a counter.

说明

integer Counter::getValue ( void )

Counter::getValue() returns the current value of a counter.

返回值

Counter::getValue() returns an integer.

参见

  • Counter::bumpValue() - Change the current value of a counter.
  • Counter::resetValue() - Reset the current value of a counter.
Counter::__construct
Counter::bumpValue
Counter


Change the current value of a counter.

Counter::getValue
Counter::resetValue
Counter
PHP 手册

Counter::bumpValue

Counter::bumpValue — Change the current value of a counter.

说明

void Counter::bumpValue ( integer $offset )

Counter::bumpValue() updates the current value of a counter.

参数

offset
The amount by which to change the counter's value. Can be negative.

参见

  • Counter::getValue() - Get the current value of a counter.
  • Counter::resetValue() - Reset the current value of a counter.
Counter::getValue
Counter::resetValue
Counter


Reset the current value of a counter.

Counter::bumpValue
Counter::getMeta
Counter
PHP 手册

Counter::resetValue

Counter::resetValue — Reset the current value of a counter.

说明

void Counter::resetValue ( void )

Counter::resetValue() resets the current value of a counter to its original initial value.

参见

  • Counter::getValue() - Get the current value of a counter.
  • Counter::bumpValue() - Change the current value of a counter.
Counter::bumpValue
Counter::getMeta
Counter


Return a piece of metainformation about a counter.

Counter::resetValue
Counter::getNamed
Counter
PHP 手册

Counter::getMeta

Counter::getMeta — Return a piece of metainformation about a counter.

说明

mixed Counter::getMeta ( integer $attribute )

Counter::getMeta() returns metainformation about a counter.

参数

attribute
The metainformation to retrieve.

返回值

Counter::getMeta() returns values of varying types based on which metainformation was requested.

Counter::resetValue
Counter::getNamed
Counter


Retrieve an existing named counter.

Counter::getMeta
Counter::setCounterClass
Counter
PHP 手册

Counter::getNamed

Counter::getNamed — Retrieve an existing named counter.

说明

static Counter Counter::getNamed ( string $name )

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise. This is a static function.

参数

name
The counter name to search for.

返回值

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise.

Counter::getMeta
Counter::setCounterClass
Counter


Set the class returned by Counter::getNamed.

Counter::getNamed
Basic
Counter
PHP 手册

Counter::setCounterClass

Counter::setCounterClass — Set the class returned by Counter::getNamed.

说明

static void Counter::setCounterClass ( string $name )

Counter::setCounterClass() changes the class of objects returned by Counter::getNamed(). The class being set must not have a public constructor and must be a subclass of Counter. If these conditions are not met, a fatal error is raised. This is a static function.

参数

name
The name of the class to use.
Counter::getNamed
Basic
Counter


The basic interface

Table of Contents

  • counter_get — Get the current value of the basic counter.
  • counter_bump — Update the current value of the basic counter.
  • counter_reset — Reset the current value of the basic counter.
Counter::setCounterClass
counter_get
The "counter" Extension - A Continuing Example


Get the current value of the basic counter.

Basic
counter_bump
Basic
PHP 手册

counter_get

counter_get — Get the current value of the basic counter.

说明

integer counter_get ( void )

counter_get() returns the current value of the basic interface's counter.

返回值

counter_get() returns an integer.

参见

  • counter_bump() - Update the current value of the basic counter.
  • counter_reset() - Reset the current value of the basic counter.
Basic
counter_bump
Basic


Update the current value of the basic counter.

counter_get
counter_reset
Basic
PHP 手册

counter_bump

counter_bump — Update the current value of the basic counter.

说明

void counter_bump ( integer $offset )

counter_bump() updates the current value of the basic interface's counter.

参数

offset
The amount by which to change the counter's value. Can be negative.

参见

  • counter_get() - Get the current value of the basic counter.
  • counter_reset() - Reset the current value of the basic counter.
counter_get
counter_reset
Basic


Reset the current value of the basic counter.

counter_bump
Extended
Basic
PHP 手册

counter_reset

counter_reset — Reset the current value of the basic counter.

说明

void counter_reset ( void )

counter_reset() resets the current value of the basic interface's counter to its original initial value.

参见

  • counter_get() - Get the current value of the basic counter.
  • counter_bump() - Update the current value of the basic counter.
counter_bump
Extended
Basic


The extended interface

Table of Contents

  • counter_create — Creates a counter which maintains a single numeric value.
  • counter_get_value — Get the current value of a counter resource.
  • counter_bump_value — Change the current value of a counter resource.
  • counter_reset_value — Reset the current value of a counter resource.
  • counter_get_meta — Return a piece of metainformation about a counter resource.
  • counter_get_named — Retrieve an existing named counter as a resource.
counter_reset
counter_create
The "counter" Extension - A Continuing Example


Creates a counter which maintains a single numeric value.

Extended
counter_get_value
Extended
PHP 手册

counter_create

counter_create — Creates a counter which maintains a single numeric value.

说明

resource counter_create ( string $name [, integer $initial_value [, integer $flags ]] )

Creates a counter which maintains a single numeric value.

参数

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

返回值

Returns a counter resource.

Extended
counter_get_value
Extended


Get the current value of a counter resource.

counter_create
counter_bump_value
Extended
PHP 手册

counter_get_value

counter_get_value — Get the current value of a counter resource.

说明

integer counter_get_value ( resource $counter )

counter_get_value() returns the current value of a counter resource.

参数

counter
The counter resource to operate on.

返回值

counter_get_value() returns an integer.

参见

  • counter_bump_value() - Change the current value of a counter resource.
  • counter_reset_value() - Reset the current value of a counter resource.
counter_create
counter_bump_value
Extended


Change the current value of a counter resource.

counter_get_value
counter_reset_value
Extended
PHP 手册

counter_bump_value

counter_bump_value — Change the current value of a counter resource.

说明

void counter_bump_value ( resource $counter , integer $offset )

counter_bump_value() updates the current value of a counter resource.

参数

counter
The counter resource to operate on.
offset
The amount by which to change the counter's value. Can be negative.

参见

  • counter_get_value() - Get the current value of a counter resource.
  • counter_reset_value() - Reset the current value of a counter resource.
counter_get_value
counter_reset_value
Extended


Reset the current value of a counter resource.

counter_bump_value
counter_get_meta
Extended
PHP 手册

counter_reset_value

counter_reset_value — Reset the current value of a counter resource.

说明

void counter_reset_value ( resource $counter )

counter_reset_value() resets the current value of a counter resource to its original initial value.

参数

counter
The counter resource to operate on.

参见

  • counter_get_value() - Get the current value of a counter resource.
  • counter_bump_value() - Change the current value of a counter resource.
counter_bump_value
counter_get_meta
Extended


Return a piece of metainformation about a counter resource.

counter_reset_value
counter_get_named
Extended
PHP 手册

counter_get_meta

counter_get_meta — Return a piece of metainformation about a counter resource.

说明

mixed counter_get_meta ( resource $counter , integer $attribute )

counter_get_meta() returns metainformation about a counter resource.

参数

counter
The counter resource to operate on.
attribute
The metainformation to retrieve.

返回值

counter_get_meta() returns values of varying types based on which metainformation was requested.

counter_reset_value
counter_get_named
Extended


Retrieve an existing named counter as a resource.

counter_get_meta
The PHP 5 build system
Extended
PHP 手册

counter_get_named

counter_get_named — Retrieve an existing named counter as a resource.

说明

resource Counter::getNamed ( string $name )

counter_get_named() returns an existing counter by name if that name exists, or NULL otherwise.

参数

name
The counter name to search for.

返回值

counter_get_name() returns an existing counter by name if that name exists, or NULL otherwise.

counter_get_meta
The PHP 5 build system
Extended


The PHP 5 build system

Table of Contents

  • Building PHP for extension development
  • The ext_skel script
  • Talking to the UNIX build system: config.m4
  • Talking to the Windows build system: config.w32

With all the functionality and flexibility available in PHP 5, it is no surprise that it consists of several thousand files and over one million lines of source code. Equally unsurprising is the necessity of a build system to manage so much data. This section describes how to set PHP up for extension development, the layout of an extension within the PHP source tree, and how to interface your extension with the build system.

counter_get_named
Building PHP for extension development
PHP at the Core: A Hacker's Guide to the Zend Engine


Building PHP for extension development

In a typical PHP installation, the need for high performance almost always results in optimization at the cost of debugging facilities. This is a reasonable tradeoff for production use, but when developing an extension it falls short. What we need is a build of PHP which will give us some hints what has gone wrong when something does.

The Zend Engine provides a memory manager which is capable of tracking memory leaks in extensions and providing detailed debugging information. This tracking is disabled by default, as is thread-safety. To turn them on, pass the --enable-debug and --enable-maintainer-zts options to configure, along with whatever options you typically use. For instructions on building PHP from source, see the instructions at 安装前需要考虑的事项. A typical configure line might look like this:

$ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql

The PHP 5 build system
The ext_skel script
The PHP 5 build system


The ext_skel script

A Zend extension is composed of several files common to all extensions. As the details of many of those files are similar from extension to extension, it can be laborous to duplicate the content for each one. Fortunately, there is a script which can do all of the initial setup for you. It's called ext_skel, and it's been distributed with PHP since 4.0.

Running ext_skel with no parameters produces this output in PHP 5.2.2:

php-5.2.2/ext$ ./ext_skel
./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
           [--skel=dir] [--full-xml] [--no-help]

  --extname=module   module is the name of your extension
  --proto=file       file contains prototypes of functions to create
  --stubs=file       generate only function stubs in file
  --xml              generate xml documentation to be added to phpdoc-cvs
  --skel=dir         path to the skeleton directory
  --full-xml         generate xml documentation for a self-contained extension
                     (not yet implemented)
  --no-help          don't try to be nice and create comments in the code
                     and helper functions to test if the module compiled
Generally, when developing a new extension the only parameters you will be interested in are --extname and --no-help. Unless you are already experienced with the structure of an extension, you will not want to use --no-help; specifying it causes ext_skel to leave out many helpful comments in the files it generates.

This leaves you with --extname, which tells ext_skel what the name of your extension is. This "name" is an all-lowercase identifier containing only letters and underscores which is unique among everything in the ext/ folder of your PHP distribution.

The --proto option is intended to allow the developer to specify a header file from which a set of PHP functions will be created, ostensibly for the purpose of developing an extension based on a library, but it often functions poorly with most modern header files. A test run on the zlib.h header resulted in a very large number of empty and nonsense prototypes in the ext_skel output files. The --xml and --full-xml options are entirely nonfunctional thus far. The --skel option can be used to specify a modified set of skeleton files to work from, a topic which is beyond the scope of this section.

Building PHP for extension development
Talking to the UNIX build system: config.m4
The PHP 5 build system


Talking to the UNIX build system: config.m4

The config.m4 file for an extension tells the UNIX build system what configure options your extension supports, what external libraries and includes you require, and what source files are to be compiled as part of it. A reference to all the commonly used autoconf macros, both PHP-specific and those built into autoconf, is given in the Zend Engine 2 API reference section.

Tip

When developing a PHP extension, it is strongly recommended that autoconf version 2.13 be installed, despite the newer releases which are available. Version 2.13 is recognized as a common denominator of autoconf availability, usability, and user base. Using later versions will sometimes produce cosmetic differences from the expected output of configure.

Example #1 An example config.m4 file

dnl $Id$
dnl config.m4 for extension example
PHP_ARG_WITH(example, for example support,
[  --with-example[=FILE]       Include example support. File is the optional path to example-config])
PHP_ARG_ENABLE(example-debug, whether to enable debugging support in example,
[  --enable-example-debug        example: Enable debugging support in example], no, no)
PHP_ARG_WITH(example-extra, for extra libraries for example,
[  --with-example-extra=DIR      example: Location of extra libraries for example], no, no)

dnl Check whether the extension is enabled at all
if test "$PHP_EXAMPLE" != "no"; then

  dnl Check for example-config. First try any path that was given to us, then look in $PATH
  AC_MSG_CHECKING([for example-config])
  EXAMPLE_CONFIG="example-config"
  if test "$PHP_EXAMPLE" != "yes"; then
    EXAMPLE_PATH=$PHP_EXAMPLE
  else
    EXAMPLE_PATH=`$php_shtool path $EXAMPLE_CONFIG`
  fi

  dnl If a usable example-config was found, use it
  if test -f "$EXAMPLE_PATH" && test -x "$EXAMPLE_PATH" && $EXAMPLE_PATH --version > /dev/null 2>&1; then
    AC_MSG_RESULT([$EXAMPLE_PATH])
    EXAMPLE_LIB_NAME=`$EXAMPLE_PATH --libname`
    EXAMPLE_INCDIRS=`$EXAMPLE_PATH --incdirs`
    EXAMPLE_LIBS=`$EXAMPLE_PATH --libs`

    dnl Check that the library works properly
    PHP_CHECK_LIBRARY($EXAMPLE_LIB_NAME, example_critical_function,
    [
      dnl Add the necessary include dirs
      PHP_EVAL_INCLINE($EXAMPLE_INCDIRS)
      dnl Add the necessary libraries and library dirs
      PHP_EVAL_LIBLINE($EXAMPLE_LIBS, EXAMPLE_SHARED_LIBADD)
    ],[
      dnl Bail out
      AC_MSG_ERROR([example library not found. Check config.log for more information.])
    ],[$EXAMPLE_LIBS]
    )
  else
    dnl No usable example-config, bail
    AC_MSG_RESULT([not found])
    AC_MSG_ERROR([Please check your example installation.])
  fi

  dnl Check whether to enable debugging
  if test "$PHP_EXAMPLE_DEBUG" != "no"; then
    dnl Yes, so set the C macro
    AC_DEFINE(USE_EXAMPLE_DEBUG,1,[Include debugging support in example])
  fi

  dnl Check for the extra support
  if test "$PHP_EXAMPLE_EXTRA" != "no"; then
    if test "$PHP_EXAMPLE_EXTRA" == "yes"; then
      AC_MSG_ERROR([You must specify a path when using --with-example-extra])
    fi

    PHP_CHECK_LIBRARY(example-extra, example_critical_extra_function,
    [
      dnl Add the neccessary paths
      PHP_ADD_INCLUDE($PHP_EXAMPLE_EXTRA/include)
      PHP_ADD_LIBRARY_WITH_PATH(example-extra, $PHP_EXAMPLE_EXTRA/lib, EXAMPLE_SHARED_LIBADD)
      AC_DEFINE(HAVE_EXAMPLEEXTRALIB,1,[Whether example-extra support is present and requested])
      EXAMPLE_SOURCES="$EXAMPLE_SOURCES example_extra.c"
    ],[
      AC_MSG_ERROR([example-extra lib not found. See config.log for more information.])
    ],[-L$PHP_EXAMPLE_EXTRA/lib]
    )
  fi

  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(example, example.c $EXAMPLE_SOURCES, $ext_shared)
  PHP_SUBST(EXAMPLE_SHARED_LIBADD)
fi

A short introduction to autoconf syntax

config.m4 files are written using the GNU autoconf syntax. It can be described in a nutshell as shell scripting augmented by a powerful macro language. Comments are delimited by the string dnl, and strings are quoted using left and right brackets (e.g. [ and ]). Quoting of strings can be nested as many times as needed. A full reference to the syntax can be found in the autoconf manual at » http://www.gnu.org/software/autoconf/manual/.

PHP_ARG_*: Giving users the option

The very first thing seen in the example config.m4 above, aside from a couple of comments, are three lines using PHP_ARG_WITH() and PHP_ARG_ENABLE(). These provide configure with the options and help text seen when running ./configure --help. As the names suggest, the difference between the two is whether they create a --with-* option or an --enable-* option. Every extension should provide at least one or the other with the extension name, so that users can choose whether or not to build the extension into PHP. By convention, PHP_ARG_WITH() is used for an option which takes a parameter, such as the location of a library or program required by an extension, while PHP_ARG_ENABLE() is used for an option which represents a simple flag.

Example #2 Sample configure output

$ ./configure --help
...
  --with-example[=FILE]       Include example support. FILE is the optional path to example-config
  --enable-example-debug        example: Enable debugging support in example
  --with-example-extra=DIR      example: Location of extra libraries for example
...

$ ./configure --with-example=/some/library/path/example-config --disable-example-debug --with-example-extra=/another/library/path
...
checking for example support... yes
checking whether to enable debugging support in example... no
checking for extra libraries for example... /another/library/path
...

Note: Regardless of the order in which options are specified on the command line when configure is called, the checks will be run in the order they are specified in config.m4.

Processing the user's choices

Now that config.m4 can provide the user with some choices of what to do, it's time to act upon those choices. In the example above, the obvious default for all three options, if any of them are unspecified, is "no". As a matter of convention, it is best to use this as the default for the option which enables the extension, as it will be overridden by phpize for extensions built separately, and should not clutter the extension space by default when being built into PHP. The code to process the three options is by far the most complicated.

Handling the --with-example[=FILE] option

The first check made of the --with-example[=FILE] option is whether it was set at all. As this option controls the inclusion of the entire extension, if it was unspecified, given in the negative form (--without-example), or given the value "no", nothing else is done at all. In the example above, it is specified with the value /some/library/path/example-config, so the first test succeeds.

Next, the code calls AC_MSG_CHECKING(), an autoconf macro which outputs a standard "checking for something" line, and checks whether the user gave an explicit path to the fictional example-config. In this example, PHP_EXAMPLE got the value /some/library/path/example-config, which is now copied into the EXAMPLE_PATH variable. Had the user specified only --with-example, the code would have executed $php_shtool path $EXAMPLE_CONFIG, which would try to guess the location of example-config using the user's current PATH. Either way, the next step is to check whether the chosen EXAMPLE_PATH is a regular file, is executable, and can be run successfully. If so, AC_MSG_RESULT() is called, which completes the output line started by AC_MSG_CHECKING(). Otherwise, AC_MSG_ERROR() is called, which prints the given message and halts configure immediately.

The code now determines some site-specific configuration information by running example-config several times. The next call is to PHP_CHECK_LIBRARY(), a macro provided by the PHP buildsystem as a wrapper around autoconf's AC_CHECK_LIB(). PHP_CHECK_LIBRARY() attempts to compile, link, and run a program which calls the symbol specified by the second parameter in the library specified by the first, using the string given in the fifth as extra linker options. If the attempt succeeds, the script given in the third parameter is run. This script tells the PHP buildsystem to extract include paths, library paths, and library names from the raw option strings example-config provided. If the attempt fails, the script in the fourth parameter is run instead. In this case, AC_MSG_ERROR() is called to stop processing.

Handling the --enable-example-debug option

Processing the --enable-example-debug is much simpler. A simple check for its truth value is performed. If that check succeeds, AC_DEFINE() is called to make the C macro USE_EXAMPLE_DEBUG available to the source of the extension. The third parameter is a comment string for config.h; it is safe to leave this empty, and often is.

Handling the --with-example-extra=DIR option

For the sake of this example, the fictional "extra" functionality requested by the --with-example-extra=DIR option does not share the fictional example-config program, nor does it have any default paths to search. Therefore, the user is required to provide the installation prefix of the necessary library. This setup is somewhat unlikely in a real-world extension, but is considered illustrative.

The code begins in a now-familiar way by checking the truth value of PHP_EXAMPLE_EXTRA. If a negative form was provided, no further processing is done; the user did not request extra functionality. If a positive form was provided without a parameter, AC_MSG_ERROR() is called to halt processing. The next step is another invocation of PHP_CHECK_LIBRARY(). This time, since there is no set of predefined compiler options provided, PHP_ADD_INCLUDE() and PHP_ADD_LIBRARY_WITH_PATH() are used to construct the necessary include paths, library paths, and library flags for the extra functionality. AC_DEFINE() is also called to indicate to the code that the extra functionality was both requested and available, and a variable is set to tell later code that there are extra source files to build. If the check fails, the familiar AC_MSG_ERROR() is called. A different way to handle the failure would have been to call AC_MSG_WARNING() instead, e.g.:

      AC_MSG_WARNING([example-extra lib not found. example will be built without extra functionality.])

In this case, configure would print a warning message rather than an error, and continue processing. Which way such failures are handled is a design decision left to the extension developer.

Telling the buildsystem what was decided

With all the necessary includes and libraries specified, with all the options processed and macros defined, one more thing remains to be done: The build system must be told to build the extension itself, and which files are to be used for that. To do this, the PHP_NEW_EXTENSION() macro is called. The first parameter is the name of the extension, which is the same as the name of the directory containing it. The second parameter is the list of all source files which are part of the extension. See PHP_ADD_BUILD_DIR() for information about adding source files in subdirectories to the build process. The third parameter should always be $ext_shared, a value which was determined by configure when PHP_ARG_WITH() was called for --with-example[=FILE]. The fourth parameter specifies a "SAPI class", and is only useful for extensions which require the CGI or CLI SAPIs specifically. It should be left empty in all other cases. The fifth parameter specifies a list of flags to be added to CFLAGS while building the extension; the sixth is a boolean value which, if "yes", will force the entire extension to be built using $CXX instead of $CC. All parameters after the third are optional. Finally, PHP_SUBST() is called to enable shared builds of the extension. See Extension FAQs for more information on disabling support for building an extension in shared mode.

The counter extension's config.m4 file

The counter extension previously documented has a much simpler config.m4 file than that described above, as it doesn't make use of many buildsystem features. This is a preferred method of operation for any extension that doesn't use an external or bundled library.

Example #3 counter's config.m4 file

dnl
$
Id$
dnl config.m4 for extension counter

PHP_ARG_ENABLE(counter, for counter support,
[  --enable-counter            Include counter support])

dnl Check whether the extension is enabled at all
if test "$PHP_COUNTER" != "no"; then
  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(counter, counter.c counter_util.c, $ext_shared)
  PHP_SUBST(COUNTER_SHARED_LIBADD)
fi
The ext_skel script
Talking to the Windows build system: config.w32
The PHP 5 build system


Talking to the Windows build system: config.w32

An extension's config.w32 file is similar in usage to the config.m4 file, with two critical differences: first, it is used for Windows builds, and second, it is written in JavaScript. This section makes no attempt to cover JavaScript syntax. For the moment, this section is incomplete in lieu of a Win32 testbed, and an experimental-only port of the example config.m4 is the only example provided.

Example #1 An example config.w32 file

// $Id$
// vim:ft=javascript
ARG_WITH("example", "for example support", "no");
ARG_ENABLE("example-debug", "for debugging support in example", "no")
ARG_WITH("example-extra", "for extra functionality in example", "no")
if (PHP_EXAMPLE != "no") {
    if (CHECK_LIB("libexample.lib", "example", PHP_EXAMPLE) &&
        CHECK_HEADER_ADD_INCLUDE("example.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + "\\include")) {

        if (PHP_EXAMPLE_DEBUG != "no") {
            AC_DEFINE('USE_EXAMPLE_DEBUG', 1, 'Debug support in example');
        }

        if (PHP_EXAMPLE_EXTRA != "no" &&
            CHECK_LIB("libexample-extra.lib", "example", PHP_EXAMPLE) &&
            CHECK_HEADER_ADD_INCLUDE("example-extra.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + ";" + PHP_PHP_BUILD + "\\include") {
            AC_DEFINE('HAVE_EXAMPLEEXTRA', 1, 'Extra functionality in example');
            HAVE_EXTRA = 1;
        } else {
            WARNING( "extra example functionality not enabled, lib not found" );
        }

        EXTENSION("example", "example.c");
        if (HAVE_EXTRA == 1) {
            ADD_SOURCES("example-extra.c");
        }
    } else {
        WARNING( "example not enabled; libraries not found" );
    }
}

The counter extension's config.w32 file

The counter extension previously documented has a much simpler config.w32 file than that described above, as it doesn't make use of many buildsystem features.

Example #2 counter's config.w32 file

// $Id$
// vim:ft=javascript
ARG_ENABLE("counter", "for counter support", "no");
if (PHP_COUNTER != "no") {
    EXTENSION("counter", "counter.c");
    ADD_SOURCE("counter-util.c");
}
Talking to the UNIX build system: config.m4
Extension structure
The PHP 5 build system


Extension structure

Table of Contents

  • Files which make up an extension
  • Basic constructs
  • The zend_module structure
  • Extension globals
  • Life cycle of an extension
  • Testing an extension

Many extension-writing guides focus on simple examples first and ignore the requirements of more complex implementations until later. Often such guides must repeat themselves over and over in order to describe these new features. This section describes extension structure from the perspective of a mature, practical implementation, in order to prepare users for needs and issues they will almost always encounter in the process of extension development.

Talking to the Windows build system: config.w32
Files which make up an extension
PHP at the Core: A Hacker's Guide to the Zend Engine


Files which make up an extension

Whether created by hand, using ext_skel, or by an alternate extension generator, such as » CodeGen, all extensions will have at least four files:

config.m4

UNIX build system configuration (see Talking to the UNIX build system: config.m4)

config.w32

Windows buildsystem configuration (see Talking to the Windows build system: config.w32)

php_counter.h

When building an extension as static module into the PHP binary the build system expects a header file with php_ prepended to the extension name which includes a declaration for a pointer to the extension's module structure. This file usually contains additional macros, prototypes, and globals, just like any header.

counter.c

Main extension source file. By convention, the name of this file is the extension name, but this is not a requirement. This file contains the module structure declaration, INI entries, management functions, userspace functions, and other requirements of an extension.

The buildsystem files are discussed elsewhere; this section concentrates on the rest. These four files make up the bare minimum for an extension, which may also contain any number of headers, source files, unit tests, and other support files. The list of files in the counter extension might look like this:

Example #1 Files in the counter extension, in no particular order

ext/
 counter/
  .cvsignore
  config.m4
  config.w32
  counter_util.h
  counter_util.c
  php_counter.h
  counter.c
  package.xml
  CREDITS
  tests/
   critical_function_001.phpt
   critical_function_002.phpt
   optional_function_001.phpt
   optional_function_002.phpt

Non-source files

The .cvsignore file is used for extensions which are checked into one of the PHP CVS repositories (usually » PECL); the one generated by ext_skel contains:

.deps
*.lo
*.la

These lines tell CVS to ignore interim files generated by the PHP buildsystem. This is only a convenience, and can be omitted completely without ill effect.

The CREDITS file lists the contributors and/or maintainers of the extension in plain text format. The main purpose of this file is generating the credits information for bundled extensions as used by phpcredits(). By convention the first line of the file should hold the name of the extension, the second a comma separated list of contributors. The contributors are usually ordered by the chronological order of their contributions. In a » PECL package, this information is already maintained in package.xml, for example. This is another file which can be omitted without ill effect.

The package.xml file is specific to » PECL-based extensions; it is a metainformation file which gives details about an extension's dependencies, authors, installation requirements, and other tidbits. In an extension not being hosted in » PECL, this file is extraneous.

Extension structure
Basic constructs
Extension structure


Basic constructs

C is a very low-level language by modern definitions. This means that it has no built-in support for many features that PHP takes for granted, such as reflection, dynamic module loading, bounds checking, threadsafe data management and various useful data structures including linked lists and hash tables. At the same time, C is a common denominator of language support and functionality. Given enough work, none of these concepts are impossible; the Zend Engine uses them all.

A lot of effort has gone into making the Zend API both extensible and understandable, but C forces certain necessary declarations upon any extension that to an inexperienced eye seem redundant or plain unnecessary. All of those constructs, detailed in this section, are "write once and forget" in Zend Engine 2 and 3. Here are some excerpts from the pre-generated php_counter.h and counter.c files created by PHP 5.3's ext_skel, showing the pre-generated declarations:

Note: The astute reader will notice that there are several declarations in the real files that aren't shown here. Those declarations are specific to various Zend subsystems and are discussed elsewhere as appropriate.

extern zend_module_entry counter_module_entry;
#define phpext_counter_ptr &counter_module_entry

#ifdef PHP_WIN32
#	define PHP_COUNTER_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#	define PHP_COUNTER_API __attribute__ ((visibility("default")))
#else
#	define PHP_COUNTER_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_counter.h"

/* ... */

#ifdef COMPILE_DL_COUNTER
ZEND_GET_MODULE(counter)
#endif
  • The lines concerning counter_module_entry declare a global variable, and a macroed pointer to it, which contains the zend_module_entry for the extension. Despite the later discussion regarding the drawbacks of "true" globals, this usage is intentional; Zend takes precautions to avoid misusing this variable.
  • PHP_COUNTER_API is declared for use by non-PHP functions the module intends to export for the use of other modules. The counter extension doesn't declare any of these, and in the final version of the header file, this macro has been removed. The PHPAPI macro is declared identically elsewhere and is used by the standard extension to make the phpinfo() utility functions available to other extensions.
  • The include of TSRM.h is skipped if PHP, or the extension, isn't being compiled with thread-safety, since in that case TSRM isn't used.
  • A standard list of includes, especially the extension's own php_counter.h, is given. config.h gives the extension access to determinations made by configure. php.h is the gateway to the entire PHP and Zend APIs. php_ini.h adds the APIs for runtime configuration (INI) entries. Not all extensions will use this. Finally, ext/standard/info.h imports the aforementioned phpinfo() utility API.
  • COMPILE_DL_COUNTER will only be defined by configure if the counter extension is both enabled and wants to be built as a dynamically loadable module instead of being statically linked into PHP. ZEND_GET_MODULE defines a tiny function which Zend can use to get the extension's zend_module_entry at runtime.

    Note: The astute reader who has peeked into main/php_config.h after trying to build with the counter module enabled statically may have noticed that there is also a HAVE_COUNTER constant defined that the source code doesn't check for. There's a simple reason this check isn't done: It's unnecessary. If the extension isn't enabled, the source file will never be compiled.

Files which make up an extension
The zend_module structure
Extension structure


The zend_module structure

The main source file of a PHP extension contains several new constructs for a C programmer. The most important of these, the one touched first when starting a new extension, is the zend_module structure. This structure contains a wealth of information that tells the Zend Engine about the extension's dependencies, version, callbacks, and other critical data. The structure has mutated considerably over time; this section will focus on the structure as it has appeared since PHP 5.2, and will identify the very few parts which have changed in PHP 5.3.

The zend_module declaration from counter.c looks like this before any code has been written. The example file was generated by ext_skel --extname=counter, with some obsolete constructs removed:

Example #1 zend_module declaration in the counter extension

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),        /* Replace with NULL if there's nothing to do at request start */
    PHP_RSHUTDOWN(counter),    /* Replace with NULL if there's nothing to do at request end */
    PHP_MINFO(counter),
    "0.1", /* Replace with version number for your extension */
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

This may look a bit daunting at first glance, but most of it is very simple to understand. Here's the declaration of zend_module from zend_modules.h in PHP 5.3:

Example #2 zend_module definition in PHP 5.3

struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    const struct _zend_ini_entry *ini_entry;
    const struct _zend_module_dep *deps;
    const char *name;
    const struct _zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    const char *version;
    size_t globals_size;
#ifdef ZTS
    ts_rsrc_id* globals_id_ptr;
#else
    void* globals_ptr;
#endif
    void (*globals_ctor)(void *global TSRMLS_DC);
    void (*globals_dtor)(void *global TSRMLS_DC);
    int (*post_deactivate_func)(void);
    int module_started;
    unsigned char type;
    void *handle;
    int module_number;
};

Many of these fields will never be touched by an extension writer. There are a number of standard macros that set them to their proper values automatically. The macro STANDARD_MODULE_HEADER fills in everything up to the deps field. Alternatively, the STANDARD_MODULE_HEADER_EX will leave the deps field empty for the developer's use. The developer is always responsible for everything from name to version. After that, the STANDARD_MODULE_PROPERTIES macro will fill in the rest of the structure, or the STANDARD_MODULE_PROPERTIES_EX macro can be used to leave the extension globals and post-deactivation function fields unfilled. Most modern extensions will make use of module globals.

Note: This table gives the values that each field would have if the developer were to fill in the structure entirely by hand, without recourse to any of the shortcut macros. This is not recommended. The "correct" values for many fields may change. Use the macros whenever possible.

Module structure field values
Field | Value | Description
size [1] [2] [3] | sizeof(zend_module_entry) | The size in bytes of the structure.
zend_api [1] [2] [3] | ZEND_MODULE_API_NO | The version of the Zend API this module was compiled against.
zend_debug [1] [2] [3] | ZEND_DEBUG | A flag indicating whether the module was compiled with debugging turned on.
zts [1] [2] [3] | USING_ZTS | A flag indicating whether the module was compiled with ZTS (TSRM) enabled (see Memory management).
ini_entry [1] [3] | NULL | This pointer is used internally by Zend to keep a non-local reference to any INI entries declared for the module.
deps [3] | NULL | A pointer to a list of dependencies for the module.
name | "mymodule" | The name of the module. This is the short name, such as "spl" or "standard".
functions | mymodule_functions | A pointer to the module's function table, which Zend uses to expose functions in the module to user space.
module_startup_func | PHP_MINIT(mymodule) | A callback function that Zend will call the first time a module is loaded into a particular instance of PHP.
module_shutdown_func | PHP_MSHUTDOWN(mymodule) | A callback function that Zend will call the when a module is unloaded from a particular instance of PHP, typically during final shutdown.
request_startup_func | PHP_RINIT(mymodule) | A callback function that Zend will call at the beginning of each request.
request_shutdown_func | PHP_RSHUTDOWN(mymodule) | A callback function that Zend will call at the end of each request.
info_func | PHP_MINFO(mymodule) | A callback function that Zend will call when the phpinfo() function is called.
version | NO_VERSION_YET | A string giving the version of the module, as specified by the module developer. It is recommended that the version number be either in the format expected by version_compare() (e.g. "1.0.5-dev"), or a CVS or SVN revision number (e.g. "$Rev$").
globals_size [1] [4] [5] [6] | sizeof(zend_mymodule_globals) | The size of the data structure containing the module's globals, if any.
globals_id_ptr [1] [4] [5] [6] [7] | &mymodule_globals_id | Only one of these two fields will exist, depending upon whether the USING_ZTS constant is TRUE. The former is an index into TSRM's allocation table for the module's globals, and the latter is a pointer directly to the globals.
globals_ptr [1] [4] [5] [6] [8] | &mymodule_globals
globals_ctor [4] [5] [6] | PHP_GINIT(mymodule) | This funtion is called to initialize a module's globals before any module_startup_func.
globals_dtor [4] [5] [6] | PHP_GSHUTDOWN(mymodule) | This funtion is called to deallocate a module's globals after any module_shutdown_func.
post_deactivate_func [4] | ZEND_MODULE_POST_ZEND_DEACTIVATE_N(mymodule) | This function is called by Zend after request shutdown. It is rarely used.
module_started [1] [9] [4] | 0 | These fields are used for Zend's internal tracking information.
type [1] [9] [4] | 0
handle [1] [9] [4] | NULL
module_number [1] [9] [4] | 0
[1] This field is not intended for use by module developers. [2] This field is filled in by STANDARD_MODULE_HEADER_EX. [3] This field is filled in by STANDARD_MODULE_HEADER. [4] This field is filled in by STANDARD_MODULE_PROPERTIES. [5] This field is filled in by NO_MODULE_GLOBALS. [6] This field is filled in by PHP_MODULE_GLOBALS. [7] This field only exists when USING_ZTS is TRUE. [8] This field only exists when USING_ZTS is FALSE. [9] This field is filled in by STANDARD_MODULE_PROPERTIES_EX.

Filling in the structure in a practical situation

With all these fields to play with, it can be confusing to know which to use for what purpose. Here is the zend_module definition from the "counter" example extension after updating it to its final form.

Example #3 Counter extension module definition

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),
    PHP_RSHUTDOWN(counter),
    PHP_MINFO(counter),
    NO_VERSION_YET,
    PHP_MODULE_GLOBALS(counter),
    PHP_GINIT(counter),
    PHP_GSHUTDOWN(counter),
    NULL,
    STANDARD_MODULE_PROPERTIES_EX
};
/* }}} */
  • STANDARD_MODULE_HEADER is used since this module doesn't define any dependencies.
  • "counter" is the extension's name, and is used to define the various callback functions the module passes to Zend. "counter" uses module, globals, and request functions at startup and shutdown times, and provides information to phpinfo(), so all seven callbacks are defined.
  • It is assumed that there is a variable of type zend_function_entry * named counter_functions earlier in the file that contains the module definition, listing the functions the module exports to userspace.
  • NO_VERSION_YET is a particularly nice way of telling Zend the module doesn't have a version. It might have been more correct to place "1.0" here instead in a real module.
  • "counter" uses per-module globals, so PHP_MODULE_GLOBALS is used
  • This module has no post-deactivate function, so NULL is used.
  • Since this module does use globals, STANDARD_MODULE_PROPERTIES_EX is used to finish the structure.

What's changed between 5.2 and 5.3?

Nothing. The only differences in the zend_module structure between PHP 5.2 and PHP 5.3 are a few const keywords.

Basic constructs
Extension globals
Extension structure


Extension globals

Introduction to globals in a PHP extension

In a language such as C, a "global" variable is a variable that can be accessed from any function without any extra declaration. These traditional globals have a few drawbacks:

  • Barring any special options passed to the compiler, a global variable can be accessed and changed by any piece of code anywhere in the program, whether or not that code should be doing so.
  • A typical global variable is not thread safe.
  • The names of global variables are as global as the variables themselves.

A PHP extension's globals are more properly called the "extension state", since most modules must remember what they're doing between function calls. The "counter" extension is a perfect example of this need: The basic interface calls for a counter with a persistent value. A programmer new to Zend and PHP might do something like this in counter.c to store that value:

Example #1 The wrong way to store the basic counter interface's value

/* ... */
static long basic_counter_value;

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(basic_counter_value);
}

On the surface this appears a viable solution, and indeed in a simple test it would function correctly. However, there are a number of situations in which more than one copy of PHP is running in the same thread, which means more than one instance of the counter module. Suddenly these multiple threads are sharing the same counter value, which is clearly undesirable. Another problem shows itself when considering that another extension might someday happen to have a global with the same name, and due to the rules of C scoping, this has the potential to cause a compile failure, or worse, a runtime error. Something more elaborate is needed, and so exists Zend's support for thread-safe per-module globals.

Declaring module globals

Whether a module uses only a single global or dozens, they must be defined in a structure, and that structure must be declared. There are some macros that assist with doing so in a way that avoids name conflicts between modules: ZEND_BEGIN_MODULE_GLOBALS(), ZEND_END_MODULE_GLOBALS(), and ZEND_DECLARE_MODULE_GLOBALS(). All three take as a parameter the short name of the module, which in the case of the counter module is simply "counter". Here is the global structure declaration from php_counter.h:

Example #2 The counter module's globals

ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

And this is the declaration from counter.c:

Example #3 The counter module's global structure declaration

ZEND_DECLARE_MODULE_GLOBALS(counter)

Accessing module globals

As discussed above, per-module globals are declared inside a C structure whose name is obscured by Zend macros. As a result, the ideal way to access members of this structure is by the use of further macros. Accordingly, most if not all extensions which have globals have a declaration like this somewhere in their header file:

Example #4 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

Note: This could have been generalized into a macro of its own by the Zend API, but as of PHP 5.3 (and PHP 6 at the time of this writing), that hasn't happened. The global accessor construct is written into the header by ext_skel and thus is generally left alone by extension writers, unless they wish to change the name of the accessor macro.

Note: COUNTER_G was the name given to the macro by ext_skel, but it's not necessary for it to have that name and could just as easily be called FOO instead.

Any code in the counter extension that accesses a global must thus wrap it in the macro COUNTER_G.

Warning

Any function which accesses globals must either be declared by Zend macros, have TSRMLS_DC as its last argument, or call the macro TSRMLS_FETCH before accessing the globals. See the TSRM documentation for more information.

So with all of that in mind, here is our new version of the counter_get():

Example #5 The right way to store the basic counter interface's value

/* php_counter.h */
ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

/* counter.c */
ZEND_DECLARE_MODULE_GLOBALS(counter)

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(COUNTER_G(basic_counter_value));
}

This is a correct implementation. It is not, however, a complete one. The section Life cycle of an extension explains why.

The zend_module structure
Life cycle of an extension
Extension structure


Life cycle of an extension

A Zend extension goes through several phases during its lifetime. All of these phases are opportunities for the developer to perform various initialization, termination, or informational functions. The Zend API allows for hooks into five separate phases of an extension's existence, apart from calls by PHP functions.

Loading, unloading, and requests

As the Zend engine runs, it processes one or more "requests" from its client. In the traditional CGI implementation, this corresponds to one execution of a process. However, many other implementations, most notably the Apache module, can map many requests onto a single PHP process. A Zend extension may thus see many requests in its lifetime.

Overview

  • In the Zend API, a module is loaded into memory only once when the associated PHP process starts up. Each module receives a call to the "module initialization" function specified in its zend_module structure as it is loaded.
  • Whenever the associated PHP process starts to handle a request from its client - i.e. whenever the PHP interpreter is told to start working - each module receives a call to the "request initialization" function specified in its zend_module structure.
  • Whenever the associated PHP process is done handling a request, each module receives a call to the "request termination" function specified in its zend_module structure.
  • A given module is unloaded from memory when its associated PHP process is shut down in an orderly manner. The module receives a call to the "module termination" function specified in its zend_module structure at this time.

What to do, and when to do it

There are many tasks that might be performed at any of these four points. This table details where many common initialization and termination tasks belong.

What to do, and when to do it
Module initialization/termination | Request initialization/termination
Allocate/deallocate and initialize module global variables | Allocate/deallocate and initialize request-specific variables
Register/unregister class entries |
Register/unregister INI entries |
Register constants |

The phpinfo() callback

Aside from globals initialization and certain rarely-used callbacks, there is one more part of a module's lifecycle to examine: A call to phpinfo(). The output a user sees from this call, whether text or HTML or anything else, is generated by each individual extension that is loaded into the PHP interpreter at the time the call is made.

To provide for format-neutral output, the header "ext/standard/info.h" provides an array of functions to produce standardized display elements. Specifically, several functions which create the familiar tables exist:

php_info_print_table_start()
Open a table in phpinfo() output. Takes no parameters.
php_info_print_table_header()
Print a table header in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column heading.
php_info_print_table_row()
Print a table row in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column content.
php_info_print_table_end()
Close a table formerly opened by php_info_print_table_start(). Takes no parameters.

Using these four functions, it is possible to produce status information for nearly any conbimation of features in an extension. Here is the information callback from the counter extension:

Example #1 counter's PHP_MINFO function

/* {{{ PHP_MINFO(counter) */
PHP_MINFO_FUNCTION(counter)
{
    char        buf[10];

    php_info_print_table_start();
    php_info_print_table_row(2, "counter support", "enabled");
    snprintf(buf, sizeof(buf), "%ld", COUNTER_G(basic_counter_value));
    php_info_print_table_row(2, "Basic counter value", buf);
    php_info_print_table_end();
}
/* }}} */
Extension globals
Testing an extension
Extension structure


Testing an extension

One of the accepted requirements of good programming is testing. PHP provides a test harness for unit regression tests, in the form of a script called run-tests.php.

Tests for a particular module are stored in the tests/ subdirectory of the module's folder, and have a .phpt extension. For details of the PHPT format, see » http://qa.php.net/write-test.php.

Life cycle of an extension
Memory management
Extension structure


Memory management

Table of Contents

  • Basic memory management
  • Data persistence
  • Thread-Safe Resource Manager

Memory management in the Zend Engine is deceptively simple. There are some APIs to learn, and some concepts behind them to understand, but that's about all.

Testing an extension
Basic memory management
PHP at the Core: A Hacker's Guide to the Zend Engine


Basic memory management

Memory management
Data persistence
Memory management


Data persistence

Basic memory management
Thread-Safe Resource Manager
Memory management


Thread-Safe Resource Manager

Data persistence
Working with variables
Memory management


Working with variables

Thread-Safe Resource Manager
Writing functions
PHP at the Core: A Hacker's Guide to the Zend Engine


Writing functions

PHP is also known as a Glue language, and extending it, can be easily done with those extensions generators. When you use ext_skel and a prototype file to generate the C function stubs, you will notice that all of the exported functions created have a simple prototype such as the following: PHP_FUNCTION(func_name)

Working with variables
Working with classes and objects
PHP at the Core: A Hacker's Guide to the Zend Engine


Working with classes and objects

Writing functions
Working with resources
PHP at the Core: A Hacker's Guide to the Zend Engine


Working with resources

Working with classes and objects
Working with INI settings
PHP at the Core: A Hacker's Guide to the Zend Engine


Working with INI settings

Working with resources
Working with streams
PHP at the Core: A Hacker's Guide to the Zend Engine


Working with streams

Note: Information on using streams within the PHP source code can be found in the Streams API for PHP Extension Authors reference.

Working with INI settings
PDO Driver How-To
PHP at the Core: A Hacker's Guide to the Zend Engine


PDO Driver How-To

Table of Contents

  • Prerequisites
  • Preparation and Housekeeping
  • Fleshing out your skeleton
  • Building
  • Testing
  • Packaging and distribution
  • pdo_dbh_t definition
  • pdo_stmt_t definition
  • Constants
  • Error handling

The purpose of this How-To is to provide a basic understanding of the steps required to write a database driver that interfaces with the PDO layer. Please note that this is still an evolving API and as such, subject to change. This document was prepared based on version 0.3 of PDO. The learning curve is steep; expect to spend a lot of time on the prerequisites.

Working with streams
Prerequisites
PHP at the Core: A Hacker's Guide to the Zend Engine


Prerequisites

The following is list of prerequisites and assumptions needed for writing a PDO database driver:

  1. A working target database, examples, demos, etc. working as per vendor specifications;

  2. A working development environment:

    1. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

    2. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    3. Win32: Visual Studio compiler suite;

  3. A working PHP environment version 5.0.3 or higher with a working PEAR extension version 1.3.5 or higher;

  4. A working PDO environment (can be installed using 'sudo pecl install PDO'), including the headers which will be needed to access the PDO type definitions and function declarations;

  5. A good working knowledge of the C programming language;

  6. A good working knowledge of the way to write a PHP extension; George Schlossnagle's Advanced PHP Programming (published by Developer's Library, chapters 21 and 22) is recommended;

  7. Finally, a familiarity with the Zend API that forms the heart of PHP, in particular paying attention to the memory management aspects.

PDO Driver How-To
Preparation and Housekeeping
PDO Driver How-To


Preparation and Housekeeping

Source directory layout

The source directory for a typical PDO driver is laid out as follows, where SKEL represents a shortened form of the name of the database that the driver is going to connect to. Even though SKEL is presented here in uppercase (for clarity), the convention is to use lowercase characters.

pdo_SKEL/
  config.m4                  # unix build script
  config.w32                 # win32 build script
  CREDITS
  package.xml                # meta information about the package
  pdo_SKEL.c                 # standard PHP extension glue
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h         # driver private header
  SKEL_dbh.c                 # contains the implementation of the PDO driver interface
  SKEL_stmt.c                # contains the implementation of the PDO statement interface
  tests/

The contents of these files are defined later in this document.

Creating a skeleton

The easiest way to get started is to use the ext_skel shell script found in the PHP build tree in the ext directory. This will build a skeleton directory containing a lot of the files listed above. It can be build by executing the following command from within the ext directory:

./ext_skel --extname=pdo_SKEL

This will generate a directory called pdo_SKEL containing the skeleton files that you can then modify. This directory should then be moved out of the php extension directory . PDO is a PECL extension and should not be included in the standard extension directory. As long as you have PHP and PDO installed, you should be able to build from any directory.

Standard Includes

Build Specific Headers

The header file config.h is generated by the configure process for the platform for the which the driver is being built. If this header is present, the HAVE_CONFIG_H compiler variable is set. This variable should be tested for and if set, the file config.h should be included in the compilation unit.

PHP Headers

The following standard public php headers should be included in each source module:

  1. php.h

  2. php_ini.h

  3. ext/standard/info.h

PDO Interface Headers

The following standard public PDO header files are also included in each source module:

pdo/php_pdo.h

This header file contains definitions of the initialization and shutdown functions in the main driver as well as definitions of global PDO variables.

pdo/php_pdo_driver.h

This header contains the types and API contracts that are used to write a PDO driver. It also contains method signature for calling back into the PDO layer and registering/unregistering your driver with PDO. Most importantly, this header file contains the type definitions for PDO database handles and statements. The two main structures a driver has to deal with, pdo_dbh_t and pdo_stmt_t, are described in more detail in Appendix A and B.

Driver Specific Headers

The typical PDO driver has two header files that are specific to the database implementation. This does not preclude the use of more depending on the implementation. The following two headers are, by convention, standard:

php_pdo_SKEL.h

This header file is virtually an exact duplicate in functionality and content of the previously defined pdo/php_pdo.h that has been specifically tailored for your database. If your driver requires the use of global variables they should be defined using the ZEND_BEGIN_MODULE_GLOBALS and ZEND_END_MODULE_GLOBALS macros. Macros are then used to access these variables. This macro is usually named PDO_SKEL_G(v) where v is global variable to be accessed. Consult the Zend programmer documentation for more information.

php_pdo_SKEL_int.h

This header file typically contains type definitions and function declarations specific to the driver implementation. It also should contain the db specific definitions of a pdo_SKEL_handle and pdo_SKEL_stmt structures. These are the names of the private data structures that are then referenced by the driver_data members of the handle and statement structures.

Optional Headers

Depending on the implementation details for a particular driver it may be necessary to include the following header:

#include <zend_exceptions.h>
Prerequisites
Fleshing out your skeleton
PDO Driver How-To


Fleshing out your skeleton

Major Structures and Attributes

The major structures, pdo_dbh_t and pdo_stmt_t are defined and explained in Appendix A and B respectively. Database and Statement attributes are defined in Appendix C. Error handling is explained in Appendix D.

pdo_SKEL.c: PHP extension glue

function entries

static function_entry pdo_SKEL_functions[] = {
  { NULL, NULL, NULL }
};

This structure is used to register functions into the global php function namespace. PDO drivers should try to avoid doing this, so it is recommended that you leave this structure initialized to NULL, as shown in the synopsis above.

Module entry

/* {{{ pdo_SKEL_module_entry */
#if ZEND_EXTENSION_API_NO >= 220050617
static zend_module_dep pdo_SKEL_deps[] = {
    ZEND_MOD_REQUIRED("pdo")
    {NULL, NULL, NULL}
};
#endif
/* }}} */

zend_module_entry pdo_SKEL_module_entry = {
#if ZEND_EXTENSION_API_NO >= 220050617
    STANDARD_MODULE_HEADER_EX, NULL,
    pdo_SKEL_deps,
#else
    STANDARD_MODULE_HEADER,
#endif
    "pdo_SKEL",
    pdo_SKEL_functions,
    PHP_MINIT(pdo_SKEL),
    PHP_MSHUTDOWN(pdo_SKEL),
    NULL,
    NULL,
    PHP_MINFO(pdo_SKEL),
    PHP_PDO_<DB>_MODULE_VERSION,
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_PDO_<DB>
ZEND_GET_MODULE(pdo_db)
#endif

A structure of type zend_module_entry called pdo_SKEL_module_entry must be declared and should include reference to the pdo_SKEL_functions table defined previously.

Standard PHP Module Extension Functions

PHP_MINIT_FUNCTION
/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(pdo_SKEL)
{
    return php_pdo_register_driver(&pdo_SKEL_driver);
}
/* }}} */

This standard PHP extension function should be used to register your driver with the PDO layer. This is done by calling the php_pdo_register_driver() function passing a pointer to a structure of type pdo_driver_t typically named pdo_SKEL_driver. A pdo_driver_t contains a header that is generated using the PDO_DRIVER_HEADER(SKEL) macro and pdo_SKEL_handle_factory() function pointer. The actual function is described during the discussion of the SKEL_dbh.c unit.

PHP_MSHUTDOWN_FUNCTION
/* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(pdo_SKEL)
{
    php_pdo_unregister_driver(&pdo_SKEL_driver);
    return SUCCESS;
}
/* }}} */

This standard PHP extension function is used to unregister your driver from the PDO layer. This is done by calling the php_pdo_unregister_driver() function, passing the same pdo_SKEL_driver structure that was passed in the init function above.

PHP_MINFO_FUNCTION

This is again a standard PHP extension function. Its purpose is to display information regarding the module when the phpinfo() is called from a script. The convention is to display the version of the module and also what version of the db you are dependent on, along with any other configuration style information that might be relevant.

SKEL_driver.c: Driver implementation

This unit implements all of the database handling methods that support the PDO database handle object. It also contains the error fetching routines. All of these functions will typically need to access the global variable pool. Therefore, it is necessary to use the Zend macro TSRMLS_DC macro at the end of each of these statements. Consult the Zend programmer documentation for more information on this macro.

pdo_SKEL_error

static int pdo_SKEL_error(pdo_dbh_t *dbh,
  pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)

The purpose of this function is to be used as a generic error handling function within the driver. It is called by the driver when an error occurs within the driver. If an error occurs that is not related to SQLSTATE, the driver should set either dbh->error_code or stmt->error_code to an SQLSTATE that most closely matches the error or the generic SQLSTATE error "HY000". The file pdo_sqlstate.c in the PDO source contains a table of commonly used SQLSTATE codes that the PDO code explicitly recognizes. This setting of the error code should be done prior to calling this function.; This function should set the global pdo_err variable to the error found in either the dbh or the stmt (if the variable stmt is not NULL).

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the current statement or NULL. If NULL, the error is derived by error code found in the dbh.

file

The source file where the error occurred or NULL if not available.

line

The line number within the source file if available.

If the dbh member methods is NULL (which implies that the error is being raised from within the PDO constructor), this function should call the zend_throw_exception_ex() function otherwise it should return the error code. This function is usually called using a helper macro that customizes the calling sequence for either database handling errors or statement handling errors.

Example #1 Example macros for invoking pdo_SKEL_error

#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)
#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)

For more info on error handling, see Error handling.

Note: Despite being documented here, the PDO driver interface does not specify that this function be present; it is merely a convenient way to handle errors, and it just happens to be equally convenient for the majority of database client library APIs to structure your driver implementation in this way.

pdo_SKEL_fetch_error_func

static int pdo_SKEL_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
    zval *info TSRMLS_DC)

The purpose of this function is to obtain additional information about the last error that was triggered. This includes the driver specific error code and a human readable string. It may also include additional information if appropriate. This function is called as a result of the PHP script calling the PDO::errorInfo() method.

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the most current statement or NULL. If NULL, the error translated is derived by error code found in the dbh.

info

A hash table containing error codes and messages.

The error_func should return two pieces of information as successive array elements. The first item is expected to be a numeric error code, the second item is a descriptive string. The best way to set this item is by using add_next_index. Note that the type of the first argument need not be long; use whichever type most closely matches the error code returned by the underlying database API.

/* now add the error information. */
/* These need to be added in a specific order */
add_next_index_long(info, error_code);   /* driver specific error code */
add_next_index_string(info, message, 0); /* readable error message */

This function should return 1 if information is available, 0 if the driver does not have additional info.

SKEL_handle_closer

static int SKEL_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to close an open database.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to close the open database. PDO ignores the return value from this function.

SKEL_handle_preparer

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)

This function will be called by PDO in response to PDO::query() and PDO::prepare() calls from the PHP script. The purpose of the function is to prepare raw SQL for execution, storing whatever state is appropriate into the stmt that is passed in.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

Stmt

Pointer to the returned statement or NULL if an error occurs.

driver_options

Any driver specific/defined options.

This function is essentially the constructor for a stmt object. This function is responsible for processing statement options, and setting driver-specific option fields in the pdo_stmt_t structure.

PDO does not process any statement options on the driver's behalf before calling the preparer function. It is your responsibility to process them before you return, raising an error for any unknown options that are passed.

One very important responsibility of this function is the processing of SQL statement parameters. At the time of this call, PDO does not know if your driver supports binding parameters into prepared statements, nor does it know if it supports named or positional parameter naming conventions.

Your driver is responsible for setting stmt->supports_placeholders as appropriate for the underlying database. This may involve some run-time determination on the part of your driver, if this setting depends on the version of the database server to which it is connected. If your driver doesn't directly support both named and positional parameter conventions, you should use the pdo_parse_params() API to have PDO rewrite the query to take advantage of the support provided by your database.

Example #2 Using pdo_parse_params

    int ret;
    char *nsql = NULL;
    int nsql_len = 0;

    /* before we prepare, we need to peek at the query; if it uses named parameters,
     * we want PDO to rewrite them for us */
    stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
    ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);

    if (ret == 1) {
        /* query was re-written */
        sql = nsql;
    } else if (ret == -1) {
        /* couldn't grok it */
        strcpy(dbh->error_code, stmt->error_code);
        return 0;
    }

    /* now proceed to prepare the query in "sql" */

Possible values for supports_placeholders are: PDO_PLACEHOLDER_NAMED, PDO_PLACEHOLDER_POSITIONAL and PDO_PLACEHOLDER_NONE. If the driver doesn't support prepare statements at all, then this function should simply allocate any state that it might need, and then return:

Example #3 Implementing preparer for drivers that don't support native prepared statements

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
    long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
{
    pdo_SKEL_db_handle *H = (pdo_SKEL_db_handle *)dbh->driver_data;
    pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt));

    S->H = H;
    stmt->driver_data = S;
    stmt->methods = &SKEL_stmt_methods;
    stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;

    return 1;
}

This function returns 1 on success or 0 on failure.

SKEL_handle_doer

static long SKEL_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRMLS_DC)

This function will be called by PDO to execute a raw SQL statement. No pdo_stmt_t is created.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

This function returns 1 on success or 0 on failure.

SKEL_handle_quoter

static int SKEL_handle_quoter(pdo_dbh_t *dbh, const char *unquoted,
  int unquoted_len, char **quoted, int quoted_len, enum pdo_param_type param_type TSRMLS_DC)

This function will be called by PDO to turn an unquoted string into a quoted string for use in a query.

dbh

Pointer to the database handle initialized by the handle factory

unquoted

Pointer to a character string containing the string to be quoted.

unquoted_len

The length of the string to be quoted.

quoted

Pointer to the address where a pointer to the newly quoted string will be returned.

quoted_len

The length of the new string.

param_type

A driver specific hint for driver that have alternate quoting styles

This function is called in response to a call to PDO::quote() or when the driver has set supports_placeholder to PDO_PLACEHOLDER_NONE. The purpose is to quote a parameter when building SQL statements.

If your driver does not support native prepared statements, implementation of this function is required.

This function returns 1 if the quoting process reformatted the string, and 0 if it was not necessary to change the string. The original string will be used unchanged with a 0 return.

SKEL_handle_begin

static int SKEL_handle_begin(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to begin a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to begin a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_commit

static int SKEL_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to end a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to commit a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_rollback

static int SKEL_handle_rollback( pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to rollback a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to rollback a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_get_attribute

static int SKEL_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value TSRMLS_DC)

This function will be called by PDO to retrieve a database attribute.

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Constants for valid attributes.

return_value

The returned value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to supply this function. PDO driver handles the PDO_ATTR_PERSISTENT, PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_set_attribute

static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to set a database attribute, usually in response to a script calling PDO::setAttribute().

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Constants for valid attributes.

val

The new value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to provide this function if it does not need to support additional attributes. The PDO driver handles the PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_last_id

static char * SKEL_handle_last_id(pdo_dbh_t *dbh, const char *name, unsigned int len TSRMLS_DC)

This function will be called by PDO to retrieve the ID of the last inserted row.

dbh

Pointer to the database handle initialized by the handle factory

name

string representing a table or sequence name.

len

the length of the name parameter.

This function returns a character string containing the id of the last inserted row on success or NULL on failure. This is an optional function.

SKEL_check_liveness

static int SKEL_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to test whether or not a persistent connection to a database is alive and ready for use.

dbh

Pointer to the database handle initialized by the handle factory

This function returns 1 if the database connection is alive and ready for use, otherwise it should return 0 to indicate failure or lack of support.

Note: This is an optional function.

SKEL_get_driver_methods

static function_entry *SKEL_get_driver_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC)

This function will be called by PDO in response to a call to any method that is not a part of either the PDO or PDOStatement classes. It's purpose is to allow the driver to provide additional driver specific methods to those classes.

dbh

Pointer to the database handle initialized by the handle factory

kind

One of the following:

PDO_DBH_DRIVER_METHOD_KIND_DBH

Set when the method call was attempted on an instance of the PDO class. The driver should return a pointer a function_entry table for any methods it wants to add to that class, or NULL if there are none.

PDO_DBH_DRIVER_METHOD_KIND_STMT

Set when the method call was attempted on an instance of the PDOStatement class. The driver should return a pointer to a function_entry table for any methods it wants to add to that class, or NULL if there are none.

This function returns a pointer to the function_entry table requested, or NULL there are no driver specific methods.

SKEL_handle_factory

static int SKEL_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)

This function will be called by PDO to create a database handle. For most databases this involves establishing a connection to the database. In some cases, a persistent connection may be requested, in other cases connection pooling may be requested. All of these are database/driver dependent.

dbh

Pointer to the database handle initialized by the handle factory

driver_options

An array of driver options, keyed by integer option number. See Constants for a list of possible attributes.

This function should fill in the passed database handle structure with its driver specific information on success and return 1, otherwise it should return 0 to indicate failure.

PDO processes the AUTOCOMMIT and PERSISTENT driver options before calling the handle_factory. It is the handle factory's responsibility to process other options.

Driver method table

A static structure of type pdo_dbh_methods named SKEL_methods must be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

pdo_SKEL_driver

A structure of type pdo_driver_t named pdo_SKEL_driver should be declared. The PDO_DRIVER_HEADER(SKEL) macro should be used to declare the header and the function pointer to the handle factory function should set.

SKEL_statement.c: Statement implementation

This unit implements all of the database statement handling methods that support the PDO statement object.

SKEL_stmt_dtor

static int SKEL_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to destroy a previously constructed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This should do whatever is necessary to free up any driver specific storage allocated for the statement. The return value from this function is ignored.

SKEL_stmt_execute

static int SKEL_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to execute the prepared SQL statement in the passed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_fetch

static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
   long offset TSRMLS_DC)

This function will be called by PDO to fetch a row from a previously executed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

ori

One of PDO_FETCH_ORI_xxx which will determine which row will be fetched.

offset

If ori is set to PDO_FETCH_ORI_ABS or PDO_FETCH_ORI_REL, offset represents the row desired or the row relative to the current position, respectively. Otherwise, this value is ignored.

The results of this fetch are driver dependent and the data is usually stored in the driver_data member of the pdo_stmt_t object. The ori and offset parameters are only meaningful if the statement represents a scrollable cursor. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_param_hook

static int SKEL_stmt_param_hook(pdo_stmt_t *stmt,
  struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC)

This function will be called by PDO for handling of both bound parameters and bound columns.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

param

The structure describing either a statement parameter or a bound column.

event_type

The type of event to occur for this parameter, one of the following:

PDO_PARAM_EVT_ALLOC

Called when PDO allocates the binding. Occurs as part of PDOStatement::bindParam(), PDOStatement::bindValue() or as part of an implicit bind when calling PDOStatement::execute(). This is your opportunity to take some action at this point; drivers that implement native prepared statements will typically want to query the parameter information, reconcile the type with that requested by the script, allocate an appropriately sized buffer and then bind the parameter to that buffer. You should not rely on the type or value of the zval at param->parameter at this point in time.

PDO_PARAM_EVT_FREE

Called once per parameter as part of cleanup. You should release any resources associated with that parameter now.

PDO_PARAM_EXEC_PRE

Called once for each parameter immediately before calling SKEL_stmt_execute; take this opportunity to make any final adjustments ready for execution. In particular, you should note that variables bound via PDOStatement::bindParam() are only legal to touch now, and not any sooner.

PDO_PARAM_EXEC_POST

Called once for each parameter immediately after calling SKEL_stmt_execute; take this opportunity to make any post-execution actions that might be required by your driver.

PDO_PARAM_FETCH_PRE

Called once for each parameter immediately prior to calling SKEL_stmt_fetch.

PDO_PARAM_FETCH_POST

Called once for each parameter immediately after calling SKEL_stmt_fetch.

This hook will be called for each bound parameter and bound column in the statement. For ALLOC and FREE events, a single call will be made for each parameter or column. The param structure contains a driver_data field that the driver can use to store implementation specific information about each of the parameters.

For all other events, PDO may call you multiple times as the script issues PDOStatement::execute() and PDOStatement::fetch() calls.

If this is a bound parameter, the is_param flag in the param structure is set, otherwise the param structure refers to a bound column.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_describe_col

static int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)

This function will be called by PDO to query information about a particular column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

The driver should populate the pdo_stmt_t member columns(colno) with the appropriate information. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_get_col_data

static int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno,
  char **ptr, unsigned long *len, int *caller_frees TSRMLS_DC)

This function will be called by PDO to retrieve data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

ptr

Pointer to the retrieved data.

len

The length of the data pointed to by ptr.

caller_frees

If set, ptr should point to emalloc'd memory and the main PDO driver will free it as soon as it is done with it. Otherwise, it will be the responsibility of the driver to free any allocated memory as a result of this call.

The driver should return the resultant data and length of that data in the ptr and len variables respectively. It should be noted that the main PDO driver expects the driver to manage the lifetime of the data. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_set_attr

static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to allow the setting of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Constants for valid attributes.

val

The new value for the attribute.

This function is driver dependent and allows the driver the capability to set database specific attributes for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional settable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_attr

static int SKEL_stmt_get_attr(pdo_stmt_t *stmt, long attr, zval
   *return_value TSRMLS_DC)

This function will be called by PDO to allow the retrieval of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Constants for valid attributes.

return_value

The returned value for the attribute.

This function is driver dependent and allows the driver the capability to retrieve a previously set database specific attribute for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional gettable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_col_meta

static int SKEL_stmt_get_col_meta(pdo_stmt_t *stmt, int colno,
   zval *return_value TSRMLS_DC)
Warning

This function is not well defined and is subject to change.

This function will be called by PDO to retrieve meta data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number for which data is to be retrieved.

return_value

Holds the returned meta data.

The driver author should consult the documentation for this function that can be found in the php_pdo_driver.h header as this will be the most current. This function returns 1 for success or 0 in the event of failure. The database driver does not need to provide this function.

Statement handling method table

A static structure of type pdo_stmt_methods named SKEL_stmt_methods should be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

Preparation and Housekeeping
Building
PDO Driver How-To


Building

The build process is designed to work with PEAR (see » http://pear.php.net/ for more information about PEAR). There are two files that are used to assist in configuring your package for building. The first is config.m4 which is the autoconf configuration file for all platforms except Win32. The second is config.w32 which is a build configuration file for use on Win32. Skeleton files for these are built for you when you first set up your project. You then need to customize them to fit the needs of your project. Once you've customized your config files, you can build your driver using the following sequence of commands:

Before first build:

$ sudo pecl install PDO

For each build:

$ cd pdo_SKEL
$ phpize
$ ./configure
$ make
$ sudo make install

The process can then be repeated as necessary during the development process.

Fleshing out your skeleton
Testing
PDO Driver How-To


Testing

PDO has a set of "core" tests that all drivers should pass before being released. They're designed to run from the PHP source distribution, so running the tests for your driver requires moving things around a bit. The suggested procedure is to obtain the latest PHP 5.1 snapshot and perform the following step:

$ cp -r pdo_SKEL /path/to/php-5.1/ext

This will allow the test harness to run your tests. The next thing you need to do is create a test that will redirect into the PDO common core tests. The convention is to name this file common.phpt; it should be placed in the tests subdirectory that was created by ext_skel when you created your extension skeleton. The content of this file should look something like the following:

--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
   $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
   $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
   $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
   if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
      $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
   }
   return $config;
}
return array(
   'ENV' => array(
           'PDOTEST_DSN' => 'SKEL:dsn',
           'PDOTEST_USER' => 'username',
           'PDOTEST_PASS' => 'password'
       ),
   'TESTS' => 'ext/pdo/tests'
   );

This will cause the common core tests to be run, passing the values of PDOTEST_DSN, PDOTEST_USER and PDOTEST_PASS to the PDO constructor as the dsn , username and password parameters. It will first check the environment, so that appropriate values can be passed in when the test harness is run, rather than hard-coding the database credentials into the test file.

The test harness can be invoked as follows:

$ cd /path/to/php-5.1
$ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \
 PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test
Building
Packaging and distribution
PDO Driver How-To


Packaging and distribution

Creating a package

PDO drivers are released via PECL; all the usual rules for PECL extensions apply. Packaging is accomplished by creating a valid package.xml file and then running:

$ pecl package

This will create a tarball named PDO_SKEL-X.Y.Z.tgz.

Before releasing the package, you should test that it builds correctly; if you've made a mistake in your config.m4 or package.xml files, the package may not function correctly. You can test the build, without installing anything, using the following invocation:

$ pecl build package.xml

Once this is proven to work, you can test installation:

$ pecl package
$ sudo pecl install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (» http://pear.php.net/manual/).

Releasing the package

A PDO driver is released via the PHP Extension Community Library (PECL). Information about PECL can be found at » http://pecl.php.net/index.php.

Testing
pdo_dbh_t definition
PDO Driver How-To


pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
/* driver specific methods */
struct pdo_dbh_methods *methods; *
/* driver specific data */
void *driver_data; **

/* credentials */
char *username, *password; ***

/* if true, then data stored and pointed at by this handle must all be
* persistently allocated */
unsigned is_persistent:1; ****

/* if true, driver should act as though a COMMIT were executed between
* each executed statement; otherwise, COMMIT must be carried out manually
* */
unsigned auto_commit:1; *****

/* if true, the driver requires that memory be allocated explicitly for
* the columns that are returned */
unsigned alloc_own_columns:1; ******

/* if true, commit or rollBack is allowed to be called */
unsigned in_txn:1;

/* max length a single character can become after correct quoting */
unsigned max_escaped_char_length:3; *******

/* data source string used to open this handle */
const char *data_source; ********
unsigned long data_source_len;

/* the global error code. */
pdo_error_type error_code; *********

enum pdo_case_conversion native_case**********, desired_case;
};
*

The driver must set this during SKEL_handle_factory().

**

This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.

***

The username and password that were passed into the PDO constructor. The driver should use these values when it initiates a connection to the database.

****

If this is set to 1, then any data that is referenced by the dbh, including whatever structure your driver allocates, MUST be allocated persistently. This is easy to achieve; rather than using the usual emalloc() simply use pemalloc() and pass the value of this flag as the last parameter. Failure to use the appropriate kind of memory can lead to serious memory faults, resulting (in the best case) a hard crash, and in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently, you MUST check this flag in your SKEL_handle_factory() and raise an appropriate error.

*****

You should check this value in your SKEL_handle_doer() and SKEL_stmt_execute() functions; if it evaluates to true, you must attempt to commit the query now. Most database implementations offer an auto-commit mode that handles this automatically.

******

If your database client library API operates by fetching data into a caller-supplied buffer, you should set this flag to 1 during your SKEL_handle_factory(). When set, PDO will call your SKEL_stmt_describer() earlier than it would otherwise. This early call allows you to determine those buffer sizes and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own internal buffers for you to copy after each fetch call, you should leave this value set to 0.

*******

If your driver doesn't support native prepared statements (supports_placeholders is set to PDO_PLACEHOLDER_NONE), you must set this value to the maximum length that can be taken up by a single character when it is quoted by your SKEL_handle_quoter() function. This value is used to calculate the amount of buffer space required when PDO executes the statement.

********

This holds the value of the DSN that was passed into the PDO constructor. If your driver implementation needed to modify the DSN for whatever reason, it should update this member during SKEL_handle_factory(). Modifying this member should be avoided. If you do change it, you must ensure that data_source_len is also correct.

*********

Whenever an error occurs during a call to one of your driver methods, you should set this member to the SQLSTATE code that best describes the error and return an error. In this HOW-TO, the suggested practice is to call SKEL_handle_error() when an error is detected, and have it set the error code.

**********

Your driver should set this during SKEL_handle_factory(); the value should reflect how the database returns the names of the columns in result sets. If the name matches the case that was used in the query, set it to PDO_CASE_NATURAL (this is actually the default). If the column names are always returned in upper case, set it to PDO_CASE_UPPER. If the column names are always returned in lower case, set it to PDO_CASE_LOWER. The value you set is used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.

Packaging and distribution
pdo_stmt_t definition
PDO Driver How-To


pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
/* driver specifics */
struct pdo_stmt_methods *methods; *
void *driver_data; **

/* if true, we've already successfully executed this statement at least
* once */
unsigned executed:1; ***
/* if true, the statement supports placeholders and can implement
* bindParam() for its prepared statements, if false, PDO should
* emulate prepare and bind on its behalf */
unsigned supports_placeholders:2; ****

/* the number of columns in the result set; not valid until after
* the statement has been executed at least once. In some cases, might
* not be valid until fetch (at the driver level) has been called at least once.
* */
int column_count; *****
struct pdo_column_data *columns; ******

/* points at the dbh that this statement was prepared on */
pdo_dbh_t *dbh;

/* keep track of bound input parameters. Some drivers support
* input/output parameters, but you can't rely on that working */
HashTable *bound_params;
/* When rewriting from named to positional, this maps positions to names */
HashTable *bound_param_map;
/* keep track of PHP variables bound to named (or positional) columns
* in the result set */
HashTable *bound_columns;

/* not always meaningful */
long row_count;

/* used to hold the statement's current query */
char *query_string;
int query_stringlen;

/* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
char *active_query_string;
int active_query_stringlen;

/* the cursor specific error code. */
pdo_error_type error_code;

/* used by the query parser for driver specific
* parameter naming (see pgsql driver for example) */
const char *named_rewrite_template;
};
* | The driver must set this during SKEL_handle_preparer().
** | This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
*** | This is set by PDO after the statement has been executed for the first time. Your driver can inspect this value to determine if it can skip one-time actions as an optimization.
**** | Discussed in more detail in Fleshing out your skeleton.
***** | Your driver is responsible for setting this field to the number of columns available in a result set. This is usually set during SKEL_stmt_execute() but with some database implementations, the column count may not be available until SKEL_stmt_fetch() has been called at least once. Drivers that implement SKEL_stmt_next_rowset() should update the column count when a new rowset is available.
****** | PDO will allocate this field based on the value that you set for the column count. You are responsible for populating each column during SKEL_stmt_describe(). You must set the precision , maxlen , name , namelen and param_type members for each column. The name is expected to be allocated using emalloc(); PDO will call efree() at the appropriate time.
pdo_dbh_t definition
Constants
PDO Driver How-To


Constants

Database and Statement Attributes Table

Attribute

Valid value(s)

PDO_ATTR_AUTOCOMMIT

BOOL

TRUE if autocommit is set, FALSE otherwise.

dbh->auto_commit contains value. Processed by PDO directly.

PDO_ATTR_PREFETCH

LONG

Value of the prefetch size in drivers that support it.

PDO_ATTR_TIMEOUT

LONG

How long to wait for a db operation before timing out.

PDO_ATTR_ERRMODE

LONG

Processed and handled by PDO

PDO_ATTR_SERVER_VERSION

STRING

The "human-readable" string representing the Server/Version this driver is currently connected to.

PDO_ATTR_CLIENT_VERSION

STRING

The "human-readable" string representing the Client/Version this driver supports.

PDO_ATTR_SERVER_INFO

STRING

The "human-readable" description of the Server.

PDO_ATTR_CONNECTION_STATUS

LONG

Values not yet defined

PDO_ATTR_CASE

LONG

Processed and handled by PDO.

PDO_ATTR_CURSOR_NAME

STRING

String representing the name for a database cursor for use in "where current in <name>" SQL statements.

PDO_ATTR_CURSOR

LONG

PDO_CURSOR_FWDONLY

Forward only cursor

PDO_CURSOR_SCROLL

Scrollable cursor

The values for the attributes above are all defined in terms of the Zend API. The Zend API contains macros that can be used to convert a *zval to a value. These macros are defined in the Zend header file, zend_API.h in the Zend directory of your PHP build directory. Some of these attributes can be used with the statement attribute handlers such as the PDO_ATTR_CURSOR and PDO_ATTR_CURSOR_NAME. See the statement attribute handling functions for more information.

pdo_stmt_t definition
Error handling
PDO Driver How-To


Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO that an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, set the field error_code in the control block appropriate to the context (either the pdo_dbh_t or pdo_stmt_t block). In practice, it is probably a good idea to set the field in both blocks to the same value to ensure the correct one is getting used.

The error_mode field is a six-byte field containing a 5 character ASCIIZ SQLSTATE identifier code. This code drives the error message process. The SQLSTATE code is used to look up an error message in the internal PDO error message table (see pdo_sqlstate.c for a list of error codes and their messages). If the code is not known to PDO, a default "Unknown Message" value will be used.

In addition to the SQLSTATE code and error message, PDO will call the driver-specific fetch_err() routine to obtain supplemental data for the particular error condition. This routine is passed an array into which the driver may place additional information. This array has slot positions assigned to particular types of supplemental info:

  1. A native error code. This will frequently be an error code obtained from the database API.

  2. A descriptive string. This string can contain any additional information related to the failure. Database drivers typically include information such as an error message, code location of the failure, and any additional descriptive information the driver developer feels worthy of inclusion. It is generally a good idea to include all diagnostic information obtainable from the database interface at the time of the failure. For driver-detected errors (such as memory allocation problems), the driver developer can define whatever error information that seems appropriate.

Constants
Extension FAQs
PDO Driver How-To


Extension FAQs

Error handling
Zend Engine 2 API reference
PHP at the Core: A Hacker's Guide to the Zend Engine


Zend Engine 2 API reference

Extension FAQs
Zend Engine 1
PHP at the Core: A Hacker's Guide to the Zend Engine


Zend Engine 1

Table of Contents

  • Old introduction
  • Streams API for PHP Extension Authors
  • Zend API：深入 PHP 内核
  • TSRM API

Zend Engine 1 is the internal engine used by PHP for the entire version 4 release line. It is no longer considered active, but PHP 4 is still in widespread use, so the old ZE1 documentation is preserved here exactly as it was.

Zend Engine 2 API reference
Old introduction
PHP at the Core: A Hacker's Guide to the Zend Engine


Old introduction

If you are about to begin developing PHP or Zend extensions, you need to prepare yourself for the programming environment provided by the various APIs. This part of the documentation tries to introduce the APIs provided by the different PHP and Zend Engine versions available. Since most of the information available here is somewhat outdated, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL in addition to the manual.

Zend Engine 1
Streams API for PHP Extension Authors
Zend Engine 1


Streams API for PHP Extension Authors

Note: The functions in this chapter are for use in the PHP source code and are not PHP functions. Information on userland stream functions can be found in the Stream Reference.

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Example #1 simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

ANSI stdio equivalent functions in the Streams API
ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Example #2 How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Example #3 How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Note: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Streams open options

These constants affect the operation of stream factory functions.

IGNORE_PATH
This is the default option for streams; it requests that the include_path is not to be searched for the requested file.
USE_PATH
Requests that the include_path is to be searched for the requested file.
IGNORE_URL
Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.
IGNORE_URL_WIN
On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.
ENFORCE_SAFE_MODE
Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.
REPORT_ERRORS
If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.
STREAM_MUST_SEEK
This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Note: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST
If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires. The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream. Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Old introduction
Zend API：深入 PHP 内核
Zend Engine 1


Zend API：深入 PHP 内核

Introduction

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Warning

This information is currently rather outdated, parts of it only cover early stages of the ZendEngine 1.0 API as it was used in early versions of PHP 4.

More recent information may be found in the various README files that come with the PHP source and the » Internals section on the Zend website.

Overview

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated ( see below). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Extension Possibilities

As shown above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 |  | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Source Layout

Note: Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at » http://www.apache.org/) and, of course, with PHP (available at » http://www.php.net/ - does it need to be said?).
Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php-src | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php-src/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php-src/main | This directory contains the main php macros and definitions. (important)
php-src/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php-src/sapi | Contains the code for the different server abstraction layers.
TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
ZendEngine2 | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php-src/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php-src/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php-src/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Warning

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Note: To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see » http://www.gnu.org/software/m4/manual/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:

:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in Zend API：深入 PHP 内核 is a bit more complex:

Example #1 The default config.m4.

dnl $Id: build.xml,v 1.3 2007/11/01 16:40:36 rquadling Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":

if test "$PHP_MY_MODULE" == "yes"; then dnl
Action.. PHP_EXTENSION(my_module, $ext_shared)
fi

This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Creating Extensions

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. Zend API：深入 PHP 内核 shows the source.

Example #2 A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &amp;parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Note: The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make

To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

  --enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in Zend API：深入 PHP 内核 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually

To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL_FIRST_MODULE=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL_FIRST_MODULE to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in Zend API：深入 PHP 内核. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Warning

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Example #3 A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file should output the following:

We sent '2' and got '2'

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Source Discussion

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:

ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:

void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );

Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:

void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Zend API：深入 PHP 内核 for descriptions).

Zend's Parameters to Functions Called from PHP
Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Zend API：深入 PHP 内核.

Example #4 Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:

zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Note: You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Zend API：深入 PHP 内核 shows a list of all the macros that you can use to define functions.

Macros for Defining Functions
Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Zend API：深入 PHP 内核.

Example #5 Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:

zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};

This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Zend API：深入 PHP 内核. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Macros to Declare Startup and Shutdown Functions
Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:

ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &amp;parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Accepting Arguments

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:

if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;

If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message like:

"Warning: Wrong parameter count for firstmodule() in /home/www/htdocs/firstmod.php on line 5"

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:

ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }

As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Retrieving Arguments

Note: New parameter parsing API
This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameters, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);

The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:

Warning - ini_get_all() requires at most 1 parameter, 2 given
Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:

/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.

int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:

long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Old way of retrieving arguments (deprecated)

Note: Deprecated parameter parsing API
This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():

zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;

All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:

zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:

zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 4)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;

First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in Zend API：深入 PHP 内核. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Example #6 PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Zend API：深入 PHP 内核).

Note: All conversion functions expect a **zval as parameter.

Argument Conversion Functions
Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Note: You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM.

Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:

zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));

After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in Zend API：深入 PHP 内核.

Example #7 PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;             /* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;        /* value */
    unsigned char type;        /* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Zend API：深入 PHP 内核, Zend API：深入 PHP 内核 and Zend API：深入 PHP 内核.

Zend zval Structure
Entry | Description
value | Union containing this variable's contents. See Zend API：深入 PHP 内核 for a description.
type | Contains this variable's type. For a list of available types, see Zend API：深入 PHP 内核.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.
Zend zvalue_value Structure
Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.
Zend Variable Type Constants
Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:

my_function(&amp;$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Zend API：深入 PHP 内核.

Example #8 Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(parameter, 10);

Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:

zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */

SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Creating Variables

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &amp;new_variable,
    sizeof(zval *),
    NULL
);

This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&amp;EG(symbol_table), "new_variable_name", new_variable);

The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &amp;EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &amp;new_variable,
    sizeof(zval *),
    NULL
);

Zend API：深入 PHP 内核 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Example #9 Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&amp;EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Zend API：深入 PHP 内核).

Example #10 Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long-&gt;type = IS_LONG;
new_long-&gt;value.lval = 10;

Alternatively, you can use the macro ZVAL_LONG:

zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.

zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double-&gt;type = IS_DOUBLE;
new_double-&gt;value.dval = 3.45;

Alternatively, you can use the macro ZVAL_DOUBLE:

zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:

zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = strlen(string_contents);
new_string-&gt;value.str.val = estrdup(string_contents);

Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:

zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);

ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = 0;
new_string-&gt;value.str.val = empty_string;

Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):

MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:

zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool-&gt;type = IS_BOOL;
new_bool-&gt;value.lval = 1;

The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().

zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);

array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Zend API：深入 PHP 内核, Zend API：深入 PHP 内核 and Zend API：深入 PHP 内核 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Zend's API for Associative Arrays
Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 1
Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 2
Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update() for associative arrays (see Zend API：深入 PHP 内核) and zend_hash_index_update() for indexed arrays (see Zend API：深入 PHP 内核):

Example #11 Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array-&gt;value.ht, key, strlen(key) + 1, (void *)&amp;new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Example #12 Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array-&gt;value.ht, key, (void *)&amp;new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():

zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}

You can use the functions described in Zend API：深入 PHP 内核 to add members to your object.

Zend's API for Object Creation
Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Note: In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:

ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify a unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is a unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:

void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);

The passed rsrc is a pointer to the following structure:

typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;

The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:

typedef struct {

    int resource_link;
    int resource_type;

} my_resource;

Our resource destruction handler is probably going to look something like this:

void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Note: One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

    // Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:

int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is a unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:

    rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;

The returned rsrc_id uniquely identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:

RETURN_RESOURCE(rsrc_id)

Note: It is common practice that if you want to return the resource immediately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:

ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Zend API：深入 PHP 内核 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Macros for Global Variable Creation
Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Zend API：深入 PHP 内核. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:

// register a new constant of type "long"
REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
CONST_PERSISTENT);

There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Macros for Creating Constants
Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the rvalue (result of the evaluation of the right side of the operator) to the lvalue (same for the left side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &amp;parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value = *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Zend API：深入 PHP 内核 and Zend API：深入 PHP 内核.

Note: The macros in Zend API：深入 PHP 内核 automatically return from your function, those in Zend API：深入 PHP 内核 only set the return value; they don't return from your function.

Predefined Macros for Returning Values from a Function
Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.
Predefined Macros for Setting the Return Value of a Function
Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Printing Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.

zend_error(E_WARNING, "This function has been called with empty arguments");

Zend API：深入 PHP 内核 shows a list of possible values (see below). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Zend's Predefined Error Messages.
Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately.
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Display of warning messages in the browser.

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Zend API：深入 PHP 内核 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Example #13 Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Zend API：深入 PHP 内核.

Example #14 Printing execution information.

zend_printf("The name of the current function is %s&lt;br&gt;", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s&lt;br&gt;", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i&lt;br&gt;", zend_get_executed_lineno(TSRMLS_C));

Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Zend API：深入 PHP 内核 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Example #15 Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type\n", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{
    echo "We are in the test function!\n";
    return 'hello';
}

$return_value = call_userland("test_function");

echo "Return value: '$return_value'";
?>

上例将输出：

We are in the test function!
We have 3 as type
Return value: 'hello'

Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.

PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()

The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:

PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s&lt;br&gt;", new_value);

    return(SUCCESS);

}

The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:

#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)

All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Zend API：深入 PHP 内核.

Macros to Access Initialization Entries in PHP
Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():

ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Reference: Some Configuration Macros

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Zend API：深入 PHP 内核.

M4 Macros for config.m4
Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see Zend API：深入 PHP 内核).

API Macros for Accessing zval Containers
Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht
Streams API for PHP Extension Authors
TSRM API
Zend Engine 1


TSRM API

Zend API：深入 PHP 内核
The future: PHP 6 and Zend Engine 3
Zend Engine 1


The future: PHP 6 and Zend Engine 3

TSRM API
FAQ
PHP at the Core: A Hacker's Guide to the Zend Engine


FAQ：常见问题

  • 一般信息
  • 邮件列表
  • 获取 PHP
  • 数据库问题
  • 安装 — 安装常见问题
  • 编译问题
  • 使用 PHP
  • PHP 和 HTML
  • PHP 和 COM
  • PHP 和其它语言
  • 从 PHP 4 移植到 PHP 5
  • 杂类问题
The future: PHP 6 and Zend Engine 3
一般信息


一般信息

本章包括了有关 PHP 的大多数一般问题：它是什么和它做什么。

  1. PHP 是什么？
  2. PHP 这个缩写指的是什么？
  3. PHP 版本之间有什么联系？
  4. 可以同时运行几个不同版本的 PHP 吗？
  5. PHP 3 和 PHP 4 的区别有哪些？
  6. PHP4 和 PHP5 有什么不同？
  7. 我觉得自己发现了一个 bug！应该告诉谁？

PHP 是什么？

根据本手册的前言：

PHP 是一种 HTML 嵌入式的脚本语言。它的很多语法来自 C，Java 和 Perl，并具有几个 PHP 独有的特点。该语言的主要目标是让 Web 开发人员快速地书写动态生成的网页。

PHP 这个缩写指的是什么？

PHP 是 PHP: Hypertext Preprocessor 的首字母缩写。很多人有些糊涂了，因为缩写中的第一个字母也来自缩写。这种方法叫做递归缩写（recursive acronyms），对此好奇的人可以访问 » 在线计算机词典（Free On-Line Dictionary of Computing）或者Wikipedia上» 递归缩写的解释。

PHP 版本之间有什么联系？

PHP/FI 2.0 是最早的 PHP 版本，已经不再支持。PHP 3 是 PHP/FI 2.0 的后继者，要好很多。PHP 5 是目前一代的 PHP，内部使用了 » Zend 引擎 2 代，除了很多新功能之外还提供了许多附加的面向对象编程（OOP）特性。

可以同时运行几个不同版本的 PHP 吗？

可以，请参阅见 PHP 源程序发行包中的 INSTALL 文件。

PHP 3 和 PHP 4 的区别有哪些？

这里列出一些比较重要的新特点：

  • 扩展了 API 模块
  • UNIX 下的通用编译步骤
  • 支持多线程 web 服务器的通用 web 服务器接口
  • 增强了语法高亮显示
  • 支持本地 HTTP 会话
  • 支持输出缓冲
  • 更强大的配置系统
  • 引用计数

请访问 » PHP 4 新特点概览查看以上及更多特点的详细解释。

PHP4 和 PHP5 有什么不同？

PHP5可以向下兼容PHP4的程序，但PHP中有很多改进的地方。如下：

  • 一个 新的面向对象模型 ，基于Zend Engine 2.0
  • 一个改进过的 MySQL 扩展
  • 内置支持 SQLite
  • 新的错误报告常量， » E_STRICT, 用于生成执行期的错误信息。
  • 很多新的 » 函数 来简化开发。

要获知更多详细信息，请查看» 从 PHP 4 升级到 PHP 5及» 向下兼容的改进。

我觉得自己发现了一个 bug！应该告诉谁？

应该访问 PHP Bug 数据库并确认你发现的不是一个已知的 bug。如果你在数据库中没有看到同样的，用报告表单来报告此 bug。使用 bug 数据库而不是给某个邮件列表发邮件非常重要，因为该 bug 会被分配一个跟踪号码，这样你就有可能在以后回来查看该 bug 的状态。Bug 数据库在 » http://bugs.php.net/。

FAQ
邮件列表
FAQ


邮件列表

本章包括有关如何与 PHP 团体接触的问题。最好的方法是邮件列表。

  1. 有没有 PHP 的邮件列表？
  2. 还有其它的团体吗？
  3. 救命！我看来不能订阅／取消任何一个邮件列表！
  4. 在哪里有个邮件列表的归档吗？
  5. 我可以在邮件列表中问什么？
  6. 向邮件列表发帖子时我需要包括些什么信息？

有没有 PHP 的邮件列表？

当然有！有很多关于几个主题的邮件列表。所有邮件列表的完整列表在» 技术支持页面。

最通用的邮件列表是 php-general。要订阅，发送一封邮件到 » php-general-subscribe@lists.php.net。不需要在邮件主题或内容中包括任何特殊单词。要取消订阅，发送一封邮件到 » php-general-unsubscribe@lists.php.net。

也可以在我们的» 技术支持页面通过 web 界面来订阅和取消。

还有其它的团体吗？

世界上有无数 PHP 团体。我们的» 技术支持页面上有例如一些 IRC 服务器和其它语种的邮件列表。

救命！我看来不能订阅／取消任何一个邮件列表！

如果你在订阅或取消 php-general 邮件列表上有问题，可能是因为邮件列表软件没法确定你正确的邮件地址。如果你的 email 地址是 joeblow@example.com，可以将订阅请求发送到 php-general-subscribe-joeblow=example.com@lists.php.net，或者将取消请求发送到 php-general-unsubscribe-joeblow=example.com@lists.php.net。对其它邮件列表用类似的地址。

在哪里有个邮件列表的归档吗？

是的，你可以在» 技术支持页面找到归档站点的列表。邮件列表的文章也被作为新闻组消息归档。你可以用新闻组客户端来访问位于 » news://news.php.net/ 的新闻组服务器。也有一个试验性质的新闻组服务器的 web 界面位于 » http://news.php.net/。

我可以在邮件列表中问什么？

由于 PHP 一天比一天更流行，php-general 邮件列表的流量增加到现在的每天 150 到 200 个帖子。由于此原因，为了每个人的利益，使用此列表是你在寻找过所有其它地方后的最后手段。

在你向列表发帖之前请先看看本 FAQ 以及手册是不是能找到帮助。如果找不到的话试试邮件列表归档（见上面）。如果你有安装或者配置 PHP 的问题请从头到尾读一遍所有包含的文档和 README 文件。如果还是不能找到任何可以帮助你的信息，那么很欢迎你使用此邮件列表。

在提问之前，阅读一下» 怎样聪明地发问这篇文章对每个人都是个好主意。

向邮件列表发帖子时我需要包括些什么信息？

像“我不能启动运行 PHP！帮帮我！哪里出错了？”之类的贴子对任何人都完全没有用。如果你在启动和运行 PHP 上有问题你必须包括你运行的操作系统，你试图配置的 PHP 版本，你怎样得到的（预编译的，CVS，RPM 等等），目前为止你都做了些什么，卡在了何处以及确切的错误信息。

这也同样适用于其它问题。你必须包括你做了什么，卡在了哪里，你试图做什么以及，如果有的话，确切的错误信息。如果你有源代码的问题那你需要包括不起作用部分的代码。可是不要包括超出所必需的代码！这将使贴子很难读并使很多人为此而跳过它。如果你不确定应该在邮件中包括多少信息，那包括多一些比一点点更好。

另一件重要的事是记住在主题一行中概述你的问题。类似“救命！”或者“这是怎么回事？”的主题会被一大半读者忽略。

最后，我们鼓励你阅读一下» 怎样聪明地发问这篇文章。这对每个人都有很大帮助，尤其是你自己。

一般信息
获取 PHP
FAQ


获取 PHP

本章包括 PHP 下载地址以及操作系统相关问题的详细资料。

  1. PHP 可以从哪里得到？
  2. 有预先编译好的可执行版本吗？
  3. 编译一些可选的 PHP 扩展库所需的库文件可以从哪里得到？
  4. 怎样使这些库起作用？
  5. 我在 Windows 机器中从 CVS 里得到了最新版的 PHP 源代码，需要什么去编译它？
  6. 哪里可以找到 browscap.ini 文件？

PHP 可以从哪里得到？

可以从任何一个 PHP 网络成员的站点下载 PHP。这些信息在 » http://www.php.net/。还可以通过匿名 CVS 得到绝对是最新版的源程序。更多信息请访问 » http://www.php.net/anoncvs.php。

有预先编译好的可执行版本吗？

我们只为 Windows 系统提供了预编译的可执行文件，因为我们没法为每个主流的 Linux/Unix 平台编译每一种扩展库组和的 PHP。同样注意，如今很多 Linux 的发行版本已经内置了 PHP。Windows 可执行文件可以从我们的» 下载页面下载，至于 Linux 可执行文件，请访问你的 Linux 发布商的站点。

编译一些可选的 PHP 扩展库所需的库文件可以从哪里得到？

Note: 有 * 号标记的不是多线程的库，不应该用作多线程 Windows web 服务器（IIS，Netscape）的服务器模块。不过这在 Unix 环境下没有关系。

  • » LDAP (Unix)
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » 免费 LDAP 服务器
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix):
  • » GD* (Unix/Win)
  • » mSQL* (Unix)
  • » PostgreSQL (Unix)
  • » IMAP* (Win/Unix)
  • » Sybase-CT* (Linux, libc5)：内置
  • » FreeType (libttf):
  • » ZLib (Unix/Win32)
  • » expat XML parser (Unix/Win32)
  • » PDFLib
  • » mcrypt
  • » mhash
  • » t1lib
  • » dmalloc
  • » aspell
  • » readline

怎样使这些库起作用？

需要按照这些库提供的说明进行。一些库可以在运行 PHP 的“configure”时自动检测到（例如 GD 库），其它的必需用“--with-EXTENSION”选项来激活。运行“configure --help”来得到完整的列表。

我在 Windows 机器中从 CVS 里得到了最新版的 PHP 源代码，需要什么去编译它？

首先，需要 Microsoft Visual C++ v6（v5 也许也行，不过我们是用 v6 编译的），此外还需要一些支持文件。参见手册中的在 Windows 下编译 PHP 源代码一节。

哪里可以找到 browscap.ini 文件？

可以从 » http://browsers.garykeith.com/downloads.asp 得到一个 browscap.ini 文件。

邮件列表
数据库问题
FAQ


数据库问题

本节包括 PHP 和数据库之间关系的常见问题。是的，PHP 事实上可以访问如今现有的任何数据库。

  1. 听说 PHP 有可能访问 Microsoft SQL Server，怎样访问？
  2. 能访问 Microsoft Access 数据库吗？
  3. 我升级到了 PHP 4，结果 MySQL 不断报告“Warning: MySQL: Unable to save result set in ..”，这是怎么回事？
  4. PHP 5 不再绑定 MySQL 客户端库，这对我意味着什么？我还能在 PHP 中使用 MySQL 吗？我试着使用 MySQL 结果得到“function undefined”错误，怎么办？
  5. 在安装共享 MySQL 支持之后，只要一加载 libphp4.so，Apache就会 core dump。这个问题能解决吗？
  6. 为什么我得到类似如下的错误：“Warning: 0 is not a MySQL result index in <file> on line <x>”或者“Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>”？

听说 PHP 有可能访问 Microsoft SQL Server，怎样访问？

在 Windows 机器中，可以简单地使用内置的 ODBC 支持和正确的 ODBC 驱动程序。

在 Unix 机器中，可以用 Sybase-CT 驱动程序来访问 Microsoft SQL Server，因为它们的协议是（至少大部分）兼容的。Sybase 做了一个 » Linux 系统下所需库的免费版本。对于其它 Unix 操作系统，需要和 Sybase 联系来得到正确的库。同样也看看下一个问题的回答。

能访问 Microsoft Access 数据库吗？

可以。如果完全在 Windows 9x/Me/NT/2000 下运行，那已经有了所有所需的工具，可以用 ODBC 和 Microsoft's ODBC drivers for Microsoft Access database。

如果在 Unix 下运行 PHP 而想访问 Windows 中的 MS Access，那需要 Unix ODBC 驱动程序。» OpenLink Software 有一个基于 Unix 的 ODBC 驱动程序可以做这件事。

另外一个替代方案是用带 Windows ODBC 驱动的 SQL Server 并用它来储存数据，可以通过 Microsoft Access（用 ODBC）和 PHP（用内置驱动）来访问，或者用一个 Access 和 PHP 都识别的中间文件格式，例如 flat 文件或者 dBase 数据库。关于这一点 OpenLink Software 的 Tim Hayes 写道：

当可以通过 ODBC 直接从 PHP 访问数据库时――例如用 OpenLink 的驱动程序，使用其它数据库做中间媒介不是一个好主意。如果确实需要一个中间文件格式，OpenLink 已经发布了对应于 Windows NT，Linux 和其它 Unix 平台的 Virtuoso（一个虚拟数据库引擎）。请访问我们的» 网站来免费下载。

还有一个已被证实有效的选择是在 Windows 下用 MySQL 和它的 MyODBC 驱动来同步数据库。Steve Lawrence 写道：

  • 根据 MySQL 的说明在你的平台上安装 MySQL。可以从 » http://www.mysql.com/ 得到最新版。除了设定数据库和配置用户帐号以外不需要特殊的配置，应该在 host 字段中放一个 % 或者要用来访问 MySQL 的 Windows 机器名。记下自己的服务器名，用户名和密码。
  • 从 MySQL 网站下载 MyODBC for Windows 驱动程序。在你的 Windows 机器中安装它。可以用此程序中包括的工具来测试其操作。
  • 用控制面板中的 ODBC 管理器新建一个用户或系统 dsn，设定 dsn 名称，输入你在第一步中配置的 MySQL 数据库的主机名，用户名，密码，端口等。
  • 完整安装 Access，这样可以确保得到适当的插件 ... 至少需要 ODBC 支持和连接表管理器。
  • 新建一个 Access 数据库。在 Table 窗口点击右键并选择 Link Tables，或者在 File 菜单下选择 Get External Data -> Link Tables。当文件浏览窗口打开后，选择文件类型为：ODBC。接着选择 System dsn 以及在第三步建立的 dsn 的名字。再选择要连接的表，点击 OK。现在你可以在你的 MySQL 服务器中打开表并新建／删除／编辑数据了！也可以构造查询，导入／导出表到 MySQL，构造表单和报告等。

提示与技巧：

  • 可以在 Access 中构造表并导出到 MySQL 中，再把它们连接回来。这样可以使表的建立更快。
  • 在 Access 中建立表时，必需定义一个基本键名来取得表的写权限。确认在把表连接到 Access 之前在 MySQL 中建立了基本键名。
  • 如果在 MySQL 中修改了表，必须重新连接到 Access。打开 Tools>Add-ins>Linked table manager，找到你的 ODBC DSN，然后在这里选择要重新连接的表。也可以在这里移动 dsn 源，在点击 OK 之前选中 always prompt for new location。

我升级到了 PHP 4，结果 MySQL 不断报告“Warning: MySQL: Unable to save result set in ..”，这是怎么回事？

看上去最有可能的是，PHP 4 在编译时使用了 --with-mysql 选项但没有指定 MySQL 的路径。这意味着 PHP 使用了它自己内置的 MySQL 客户端库。如果你的系统运行了使用其它版本的 MySQL 客户端库的应用程序，例如作为 Apache 模块的 PHP 3，那么在两个不同版本的客户端之间有冲突。

重新编译 PHP 4，并在标记中加上 MySQL 的路径“--with-mysql=/your/path/to/mysql”通常会解决此问题。

PHP 5 不再绑定 MySQL 客户端库，这对我意味着什么？我还能在 PHP 中使用 MySQL 吗？我试着使用 MySQL 结果得到“function undefined”错误，怎么办？

是的。PHP 总是支持 MySQL 的，不是这种方法就是那种方法。在 PHP 5 中唯一的改变就是不再绑定客户端库本身了。部分原因是（无特定顺序）：

  • 现今大多数系统已经安装了客户端库了。

  • 由于以上原因，保持多个版本的库文件会导致混乱。例如，如果把 mod_auth_mysql 连接到某个版本，但把 PHP 连接到了另一个版本，然后在 Apache 中同时激活了它们，会得到无数错误。此外，绑定的库文件也不总是能和服务器端的版本很好地配合。对此最明显的症状是上哪里去找 UNIX 域套接字文件 mysql.socket。

  • 维护有些松懈，并且已经越来越落后于发行的版本了。

  • 未来的库版本是基于 GPL 的，因此我们没有升级的途径了，因为我们不能将基于 GPL 的库和 BSD/Apache 风格许可证的项目绑定到一起。因此具有一个干净的 PHP 5 是最好的选择。

事实上这并不会影响到太多人。UNIX 用户，起码是那些知道自己在做什么的人，往往会在编译 PHP 时通过 --with-mysql=/usr 将其绑定到自己系统中的 libmyqlclient 库上。Windows 用户可以在 php.ini 中激活 php_mysql.dll 扩展库。更多细节见 MySQL 函数中的安装指南。此外，确认 libmysql.dll 在系统路径中。具体怎样做的详情，请阅读 FAQ 中的设定 Windows 系统路径。因为 libmysql.dll（以及很多其它 PHP 有关文件）存放于 PHP 目录中，可能需要将 PHP 目录加入到系统路径中。

在安装共享 MySQL 支持之后，只要一加载 libphp4.so，Apache就会 core dump。这个问题能解决吗？

如果你的 MySQL 库依靠 pthreads 连接就会这样。检查是否使用了 ldd。如果有的话，下载 MySQL 源程序编译，或者从源 rpm 的 spec 文件中去掉打开 threaded client 的选项然后重新编译。以上任一建议会解决此问题。然后再加上新的 MySQL 库重新编译 PHP。

为什么我得到类似如下的错误：“Warning: 0 is not a MySQL result index in <file> on line <x>”或者“Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>”？

你试图用一个值为 0 的结果资源号。0 表示你的查询由于某原因失败了，需要在提交查询之后和在使用返回结果资源号之前检查错误。正确的方法是用类似如下的代码：

<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>

或者

<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>

获取 PHP
安装
FAQ


安装常见问题

本章包括了安装 PHP 的常见问题。PHP 可以用于几乎任何操作系统（可能除了 OS X 之前的 MacOS 之外），以及几乎任何 web 服务器。

要安装 PHP，请按照安装与配置一章中的指示进行。

  1. 为什么不应该在实际运作环境中的 Apache2 中使用线程化的 MPM？
  2. Unix/Windows：应该上哪儿去找我的 php.ini 文件？
  3. Unix：我安装了 PHP，但每次我打开一个页面时，只得到一条“Document Contains No Data”消息！这是怎么回事？
  4. Unix：我从 RPMS 安装了 PHP，但是 Apache 不处理 PHP 页面！这是怎么回事？
  5. Unix：我从 RPMS 安装了 PHP 3，但它没有把我需要的数据库支持编译进去！这是怎么回事？
  6. Unix：我给 Apache 加上了 FrontPage extensions 补丁，结果 PHP 突然不工作了。PHP 和 Apache FrontPage extensions 兼容吗？
  7. Unix/Windows：我已经安装了 PHP，但当我试着通过浏览器访问 PHP 脚本时，得到了一个空白页面。
  8. Unix/Windows：我已经安装了 PHP，但当我试着通过浏览器访问 PHP 脚本时，得到了一个服务器的 500 错误。
  9. 某些操作系统：我已经在不出错的情况下安装了 PHP，但当我试着启动 Apache 时得到了一个未定义符号错误： [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  10. Windows：我已经安装了 PHP，但当我试着通过浏览器访问 PHP 脚本时，得到如下错误： cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  11. Windows：我已经照着所有的说明做了，但还是不能让 PHP 和 IIS 一起工作！
  12. 当在 IIS，PWS，OmniHTTPD 或者 Xitami 中以 CGI 方式运行 PHP 时，出现如下错误：Security Alert! PHP CGI cannot be accessed directly..
  13. 怎样得知我的 php.ini 是否被找到和应用了？似乎我做的修改都没有生效。
  14. 怎样将 PHP 目录加入到 Windows 路径 PATH 中去？
  15. 怎样使 php.ini 文件在 Windows 下被 PHP 所用？
  16. 有可能使 PHP 运作于 Apache 的 content negotiation（MultiViews 选项）吗？
  17. PHP 是否仅限于处理 GET 和 POST 请求方法？

为什么不应该在实际运作环境中的 Apache2 中使用线程化的 MPM？

PHP 是粘合剂。它将几十种第三方的库粘合到一起来创建很酷的 web 应用，并通过很直观且易于学习的语言界面使其看上去好像一个整体。PHP 的灵活与强大依赖于底层平台的稳定与耐用。起码需要将一个可运作的操作系统，一个可运作的 web 服务器以及可运作的第三方库粘合起来。其中任何一方不运作了，PHP 都需要有方法来识别出问题并且快速解决。如果没有完全独立的执行线程，完全独立的内存单元和稳定的空间对付每个请求，那底层架构就太复杂以至于不稳定因素更容易进入到 PHP 系统中。

如果必须要用线程化的 MPM，看看 FastCGI 配置，使 PHP 运行于自己独立的内存空间中。

最后需要指出，不使用线程化 MPM 的警告在 Windows 系统中没那么强烈，因为 Windows 中的大多数库都理应在多线程下安全运行。

Unix/Windows：应该上哪儿去找我的 php.ini 文件？

UNIX 中默认在 /usr/local/lib 目录中，也就是 <install-path>/lib。很多人会在编译时通过 --with-config-file-path 标记来改变路径。例如可以将路径设为：

--with-config-file-path=/etc

然后从发行包中将 php.ini-dist 拷贝为 /etc/php.ini 并编辑它来作出想要的修改。

--with-config-file-scan-dir=PATH

Windows 中 php.ini 文件的默认路径在 Windows 目录下。如果使用的是 Apache 服务器，则会首先在 Apache 的安装目录中寻找 php.ini，例如 C:\Program Files\Apache Group\Apache。这样同一台机器上不同版本的 Apache 就可以有不同的 php.ini 文件。

参见配置文件。

Unix：我安装了 PHP，但每次我打开一个页面时，只得到一条“Document Contains No Data”消息！这是怎么回事？

这可能意味着 PHP 发生了某类错误而导致了 core dump。查看服务器的错误日志看看是不是这样，再用一个小的测试例子试着重现此问题。如果你会用“gdb”的话，那么在 bug 报告中提供回溯跟踪很有助于帮开发人员查明问题。如果你用 Apache 的模块方式使用 PHP，试着这么做：

  • 停止 httpd 进程

  • gdb httpd

  • 停止 httpd 进程

  • > run -X -f /path/to/httpd.conf

  • 然后在你的浏览器中访问导致错误的 URL

  • > run -X -f /path/to/httpd.conf

  • 如果你遇到 core dump，gdb 此时就会通知你

  • 输入：bt

  • 你应该在 bug 报告中包括回溯追踪记录。应该提交到 » http://bugs.php.net/

如果你的脚本使用了正则表达式函数（ereg() 等），应该确认在编译 PHP 和 Apache 时使用了同一个正则表达式包。在 PHP 和 Apache 1.3.x 中应该自动就是这样。

Unix：我从 RPMS 安装了 PHP，但是 Apache 不处理 PHP 页面！这是怎么回事？

假定你的 Apache 和 PHP 都是从 RPM 包中安装的，你需要在 httpd.conf 文件中取消以下部分或所有行的注释，或者把它们添加到该文件中：

# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     # for PHP 3
LoadModule php4_module        modules/libphp4.so     # for PHP 4
LoadModule perl_module        modules/libperl.so

并且把：

AddType application/x-httpd-php3 .php3    # for PHP 3
AddType application/x-httpd-php .php      # for PHP 4

添加到全局属性中，或者添加到你希望加入 PHP 支持的虚拟域中。

Unix：我从 RPMS 安装了 PHP 3，但它没有把我需要的数据库支持编译进去！这是怎么回事？

由于 PHP 3 构造的原因，不容易编译出一个完全灵活的 PHP RPM 包来。这个问题在 PHP 4 中解决了。对于 PHP 3 来说，我们目前建议你用 PHP 发行包中 INSTALL.REDHAT 文件中所描述的机制。如果你坚持要用 PHP 3 的 RPM 版本，请接着往下看。

为了简化安装以及由于 RPMS 使用了 /usr/ 而不是标准的 /usr/local/ 目录来存放文件，制作 RPM 包的人设定 RPMS 不安装任何数据库支持。你需要告诉 RPM 说明文件，你想要支持哪个数据库以及你的数据库服务器最高层路径。

下面的例子解说了如何在用模块安装下的 Apache 中加入流行的 MySQL 数据库服务器支持的过程。

当然这些信息可以调整用于任何 PHP 支持的数据库服务器。本例中我们也假定你从 RPMS 中完整安装了 MySQL 和 Apache。

  • 先去掉 mod_php3：

    rpm -e mod_php3

  • 然后取得源文件的 rpm 包并安装它，而不是编译它。

    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • 接着编辑 /usr/src/redhat/SPECS/mod_php3.spec 文件

    在 %build 一节加入你想要的数据库支持，以及路径。

    对应于 MySQL 你应该加入 --with-mysql=/usr。则 %build 一节看上去将类似这样：

    ./configure --prefix=/usr \
    --with-apxs=/usr/sbin/apxs \
    --with-config-file-path=/usr/lib \
    --enable-debug=no \
    --enable-safe-mode \
    --with-exec-dir=/usr/bin \
    --with-mysql=/usr \
    --with-system-regex

  • 一旦完成了这个修改，就这样建立二进制程序的 rpm 包：

    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • 然后安装 rpm

    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

确认重新启动了 Apache，这下你就有了用 RPM 安装的并且带 MySQL 支持的 PHP 3 了。注意按照 PHP 3 发行包中 INSTALL.REDHAT 文件的说明来编译其实也许更容易一些。

Unix：我给 Apache 加上了 FrontPage extensions 补丁，结果 PHP 突然不工作了。PHP 和 Apache FrontPage extensions 兼容吗？

兼容的。PHP 可以和 FrontPage extensions 一起工作，问题是 FrontPage 补丁修改了几个 PHP 依赖的 Apache 构造。在 FrontPage 补丁安装之后之后重新编译 PHP（用“make clean ; make”）可以解决此问题。

Unix/Windows：我已经安装了 PHP，但当我试着通过浏览器访问 PHP 脚本时，得到了一个空白页面。

用浏览器中的“查看源文件”，你可能会发现能看到 PHP 脚本的源程序。这意味着 web 服务器没有把脚本发送给 PHP 解释。服务器配置在某处有问题，请对照 PHP 安装说明仔细检查服务器配置。

Unix/Windows：我已经安装了 PHP，但当我试着通过浏览器访问 PHP 脚本时，得到了一个服务器的 500 错误。

当服务器尝试运行 PHP 时出了错。要想看到有意义的错误信息，在命令行中转到 PHP 可执行程序（Windows 中是 php.exe）所在目录下并运行 php -i。如果 PHP 运行有任何问题，那么会显示相应的错误信息，这将给你下一步要做什么的线索。如果你得到满屏幕 HTML 代码（phpinfo() 函数的输出）的话说明 PHP 本身工作正常，你的问题可能和你的服务器配置有关，要仔细检查。

某些操作系统：我已经在不出错的情况下安装了 PHP，但当我试着启动 Apache 时得到了一个未定义符号错误：

[mybox:user /src/php4] root# apachectl configtest
apachectl: /usr/local/apache/bin/httpd Undefined symbols:
_compress
_uncompress

这实际上和 PHP 没有关系，而和 MySQL 的客户端库有关。有的需要 --with-zlib，有的不需要。这个问题也包括在 MySQL 的 FAQ 中。

Windows：我已经安装了 PHP，但当我试着通过浏览器访问 PHP 脚本时，得到如下错误：

cgi error:
The specified CGI application misbehaved by not
returning a complete set of HTTP headers.
The headers it did return are:

这个错误信息意味着 PHP 根本就不能产生任何输出。要想看到有意义的错误信息，在命令行中转到 PHP 可执行程序（Windows 中是 php.exe）所在目录下并运行 php -i。如果 PHP 运行有任何问题，那么会显示相应的错误信息，这将给你下一步要做什么的线索。如果你得到满屏幕 HTML 代码（phpinfo() 函数的输出）的话说明 PHP 本身工作正常。

一旦 PHP 在命令行中工作正常，试着通过浏览器再次访问脚本。如果还失败的话那可能是如下原因之一：

  • 文件权限问题，你的 PHP 脚本，php.exe，php4ts.dll，php.ini 或任何你要加载的 PHP 扩展库是匿名 internet 用户 ISUR_<machinename> 无权访问的。
  • 脚本文件不存在（或者有可能不在你以为的地方，注意 web 文档的目录）。注意在 IIS 中通过 Internet 服务管理器设定脚本映射时选中“检查文件是否存在”可以捕捉到此错误。这样一来如果脚本文件不存在的话服务器就会返回一个 404 错误信息。还有一个额外的好处就是 IIS 会基于 NTLanMan 权限来替你对脚本文件做任何所需要的认证。

Windows：我已经照着所有的说明做了，但还是不能让 PHP 和 IIS 一起工作！

确认需要运行 PHP 脚本的任何用户有权限运行 php.exe！IIS 使用了一个在安装 IIS 时添加的匿名用户，这个用户需要有访问 php.exe 的权限。同样任何认证用户也需要执行 php.exe 的权限。在 IIS4 中你还需要告诉它 PHP 是一个脚本引擎。此外，你可能还需要阅读此常见问题。

当在 IIS，PWS，OmniHTTPD 或者 Xitami 中以 CGI 方式运行 PHP 时，出现如下错误：Security Alert! PHP CGI cannot be accessed directly..

必须将 cgi.force_redirect 选项设为 0。 默认值为 1，因此要确认此选项没有被注释掉（用 ;）。和其它选项一样，是在 php.ini 中设定的。

因为默认值是 1，因此你必须百分之百确认使用了正确的 php.ini 文件。详细信息请阅读此常见问题。

怎样得知我的 php.ini 是否被找到和应用了？似乎我做的修改都没有生效。

要确认你的 php.ini 被 PHP 使用了，调用 phpinfo()，在接近开头的位置有一项叫做 Configuration File (php.ini)。这里将告诉你 PHP 在哪里找到了 php.ini 并且是否使用了。如果只显示一个目录则 没有使用任何 php.ini 文件，你应将你的 php.ini 文件放到该目录中。如果 php.ini 包括在该路径中则它已被应用了。

如果 php.ini 被使用了并且你是以模块方式运行 PHP 的，确保在修改了 php.ini 之后重新启动你的 web server。

怎样将 PHP 目录加入到 Windows 路径 PATH 中去？

在 Windows NT，2000，XP 和 2003 下：

  • 进入控制面板并打开“系统”图标（开始 -> 设置 -> 控制面板 -> 系统，Windows XP/2003 中是：开始 -> 控制面板 -> 系统）

  • 选择“高级”标签页

  • 点击“环境变量”按钮

  • 在“系统变量”栏中

  • 找到 Path 这一项（可能需要向下滚动才能找到）

  • 鼠标双击 Path 这一项

  • 在最后加入你的 PHP 目录，包括前面的“;”（例如：;C:\php）

  • 点击“确定”并重新启动电脑

在 Windows 98/Me 中需要编辑 autoexec.bat 文件：

  • 打开记事本（开始 -> 运行，然后输入 notepad 并点确定）

  • 打开 C:\autoexec.bat 文件

  • 找到这么一行：PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... 并在最后加上 ;C:\php

  • 保存文件并重新启动电脑

Note: 记住在上述修改之后重新启动，以确保对 PATH 的改变生效。

PHP 手册过去提倡把文件拷贝到 Windows 系统目录中去，这是因为该目录（C:\Windows，C:\WINNT，等等）默认就在系统路径中。但是把文件拷贝到 Windows 系统目录中这一方式早已不被提倡，还可能造成问题。

怎样使 php.ini 文件在 Windows 下被 PHP 所用？

有几种方法。如果使用 Apache，阅读专门的安装指示（Apache 1，Apache 2），否则就必须设定 PHPRC 环境变量：

在 Windows NT，2000，XP 和 2003 种：

  • 进入控制面板并打开“系统”图标（开始 -> 设置 -> 控制面板 -> 系统，Windows XP/2003 中是：开始 -> 控制面板 -> 系统）

  • 选择“高级”标签页

  • 点击“环境变量”按钮

  • 在“系统变量”栏中

  • 点击“新建”按钮并在“变量名”中输入“PHPRC”，在“变量值”中输入 php.ini 文件所在的目录（例如：C:\php）

  • 点击“确定”并重新启动电脑

在 Windows 98/Me 中需要编辑 autoexec.bat 文件：

  • 打开记事本（开始 -> 运行，然后输入 notepad 并点确定）

  • 打开 C:\autoexec.bat 文件

  • 在文件结尾处加入一行：set PHPRC=C:\php（将 C:\php 替换为你的 php.ini 实际存在的目录）。注意路径中不能包含空格。例如将 PHP 安装到了 C:\Program Files\PHP 中，你需要输入 C:\PROGRA~1\PHP 替代之

  • 保存文件并重新启动电脑

有可能使 PHP 运作于 Apache 的 content negotiation（MultiViews 选项）吗？

如果到 PHP 文件的连接包含扩展名，一切都运行完美。本解答只针对到 PHP 文件的连接不包含扩展名时，而希望通过 content negotiation 来从不包含扩展名的 URL 来选择 PHP 文件的情况。在此种情况下，将 AddType application/x-httpd-php .php 替换为：

# PHP 4
AddHandler php-script php
AddType text/html php

# PHP 5
AddHandler php5-script php
AddType text/html php

此方案对于 Apache 1 不适用，因为 PHP 模块不捕获 php-script。

PHP 是否仅限于处理 GET 和 POST 请求方法？

不是，PHP 有可能处理任何请求方法，例如 CONNECT。适当的回应状态可以用 header() 发送。如果仅需要处理 GET 和 POST 方法，可以通过如下的 Apache 配置实现：

<LimitExcept GET POST>
Deny from all
</LimitExcept>

数据库问题
编译问题
FAQ


编译问题

本节汇集了大多数编译时出现的常见错误。

  1. 我用匿名 CVS 得到了最新版的 PHP，但是里面没有 configure 脚本！
  2. 我在配置 PHP 和 Apache 一起工作时遇到了问题。说没找到 httpd.h，但这个文件明明就在那里！
  3. 当运行 PHP 配置时（./configure），遇到类似如下的问题： checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. 当试图启动 Apache 时，得到类似如下错误信息： fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. 当运行 configure 时，报告说找不到头文件或 GD 库或 gdbm，或其它的什么包！
  6. 当编译 language-parser.tab.c 文件时，报错说 yytname undeclared。
  7. 当我运行 make 时，看上去一切正常，可当连接最后的程序时报告说找不到某些文件而失败了。
  8. 当连接 PHP 时，报告说有一些未定义的引用。
  9. 我不知道怎样把 PHP 和 Apache 1.3 一起编译。
  10. 我按照所有的步骤在 UNIX 下安装了PHP 的 Apache 模块版本，但我的 PHP 脚本被显示在浏览器中或者提示保存此文件。
  11. 说要用：--activate-module=src/modules/php4/libphp4.a，但是此文件根本不存在，于是我改成了 --activate-module=src/modules/php4/libmodphp4.a，结果不行。怎么回事？
  12. 当我用 --activate-module=src/modules/php4/libphp4.a 试着把 PHP 编译成 Apache 的静态模块时，报告说我的编译器不服从 ANSI 标准。
  13. 当我用 --with-apxs 编译 PHP 时得到奇怪的错误信息。
  14. 在 make 的过程中，在 microtime 中出错，还有很多 RUSAGE_ 之类的东西。
  15. 当带 MySQL 编译 PHP 时，可以正确地运行配置，但是在 make 的过程中出现了类似以下的错误信息： ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp'，这是怎么回事
  16. 我想升级我的 PHP。上哪里找到我用来配置目前的 PHP 的 ./configure 的参数呢？
  17. 和 GD 库一起编译 PHP 时，要么给出一个奇怪的编译错误，要么在运行时出现 segfaults。
  18. 当编译 PHP 时我看到一些随机的错误，好像死了。我用的是 Solaris，不知道有没有关系。

我用匿名 CVS 得到了最新版的 PHP，但是里面没有 configure 脚本！

你必须安装有 GNU 的 autoconf 包，这样才可以从 configure.in 生成 configure 脚本。从 CVS 得到源程序后只要在最高层的目录中运行 ./buildconf 即可。（同样，除非你用了 --enable-maintainer-mode 选项来运行 configure，否则即使 configure.in 文件更新了，configure 脚本也不会自动重新生成。所以当你发现 configure.in 文件更新了时要确保手工重新生成 configure 脚本。有一个症状是在 configure 之后或者运行 config.status 时在 Makefile 中寻找类似 @VARIABLE@ 的东西。）

我在配置 PHP 和 Apache 一起工作时遇到了问题。说没找到 httpd.h，但这个文件明明就在那里！

你需要告诉 configure/setup 脚本你的 Apache 源程序最上层的目录位置。这意味着你需要这样指定 --with-apache=/path/to/apache 而不是这样 --with-apache=/path/to/apache/src。

当运行 PHP 配置时（./configure），遇到类似如下的问题：

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

请认真阅读 PHP 的安装说明，并注意要编译 PHP 需要同时安装 flex 和 bison。根据设置的不同，可以从源代码编译 bison 和 flex，要么通过已编译好的发行包，例如 RPM。

当试图启动 Apache 时，得到类似如下错误信息：

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

该错误通常在 Apache 的核心程序被编译为共享用途的 DSO 库时发生。请尝试重新配置 Apache，确保至少使用了如下参数：

--enable-shared=max --enable-rule=SHARED_CORE

更多信息，请阅读 Apache 顶层目录的 INSTALL 文件或者 Apache 的 » DSO 手册。

当运行 configure 时，报告说找不到头文件或 GD 库或 gdbm，或其它的什么包！

可以通过指定附加的选项让 configure 脚本在非标准的路径中寻找头文件和库并传递给 C 预处理器和连接器，例如：

    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

如果用 csh 的变种作为你的登录 shell（为什么？），那就是：

    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

当编译 language-parser.tab.c 文件时，报错说 yytname undeclared。

需要更新 Bison 的版本。最新版本在 » http://www.gnu.org/software/bison/bison.html。

当我运行 make 时，看上去一切正常，可当连接最后的程序时报告说找不到某些文件而失败了。

一些旧版本的 make 没有正确将 functions 目录下编译后的文件放到同一个目录下。试试运行 cp *.o functions 然后再运行 make 看看有没有什么帮助。如果成功了，那你确实需要更新到最新版的 GNU make。

当连接 PHP 时，报告说有一些未定义的引用。

看看连接的这一行命令，确认所有适当的库都包括在最后了。通常可能漏掉了“-ldl”和你包括的任何数据库支持所需要的库。

如果和 Apache 1.2.x 一起连接，记得把适当的信息添加到配置文件的 EXTRA_LIBS 这一行并重新运行 Apache 的配置脚本了吗？更多信息见安装一章。

一些人也报告说在和 Apache 连接时他们不得不紧接着 libphp4.a 之后加上“-ldl”。

我不知道怎样把 PHP 和 Apache 1.3 一起编译。

这其实很简单。小心地照着以下步骤来：

  • 从 » http://www.apache.org/dist/httpd/ 下载最新版的 Apache 1.3。
  • 解压缩到某处，例如 /usr/local/src/apache-1.3。
  • 编译 PHP，先运行 ./configure --with-apache=/<path>/apache-1.3（用你 apache-1.3 所在的真实路径替换掉 <path>。）
  • 输入 make 接着是 make install 来编译 PHP 并把必要的文件拷贝到 Apache 的源程序目录树中。
  • 改变当前目录到 /<path>/apache-1.3/src 目录并编辑 Configuration 文件。添加这一行：AddModule modules/php4/libphp4.a。
  • 输入 ./configure 接着是 make。
  • 你现在应该有一个包括 PHP 支持的 httpd 可执行程序了！

注意：也可以用新的 Apache ./configure 脚本。参见 Apache 发行包中 README.configure 文件中的说明。也看看 PHP 发行包中的 INSTALL 文件。

我按照所有的步骤在 UNIX 下安装了PHP 的 Apache 模块版本，但我的 PHP 脚本被显示在浏览器中或者提示保存此文件。

这说明 PHP 模块出于某些原因没有被调用。在寻求更多帮助前先检查三件事：

  • 确认你运行的 httpd 程序就是你刚刚编译的新 httpd 程序。运行： /path/to/binary/httpd -l 如果你没看到 mod_php4.c 被列出来那你就没有运行对程序。找到并正确安装程序。
  • 确认你在 Apache .conf 文件中加入了正确的 Mime 类型。应该是： AddType application/x-httpd-php3 .php3（PHP 3） 或者 AddType application/x-httpd-php .php（PHP 4） 也确认 AddType 这一行没有隐藏在 <Virtualhost> 或者 <Directory> 块中，这可能会造成你的测试脚本所在位置没有被应用到此设置。
  • 最后，Apache 1.2 和 Apache 1.3 之间默认配置文件的位置改变了。你要确认你添加 AddType 行的文件就是实际上用的。你可以在你的 httpd.conf 中添加一个明显的语法错误或者其它明显修改，这可以告诉你是否读取了正确的文件。

说要用：--activate-module=src/modules/php4/libphp4.a，但是此文件根本不存在，于是我改成了 --activate-module=src/modules/php4/libmodphp4.a，结果不行。怎么回事？

注意 libphp4.a 文件本来就不该存在，apache 进程将创建它！

当我用 --activate-module=src/modules/php4/libphp4.a 试着把 PHP 编译成 Apache 的静态模块时，报告说我的编译器不服从 ANSI 标准。

这是一个 Apache 误报的错误信息，在新的版本中已经修正了。

当我用 --with-apxs 编译 PHP 时得到奇怪的错误信息。

这里要检查三件事。首先，出于某些原因当 Apache 生成 apxs Perl 脚本时，有时没有正确的编译和标记变量就结束了。找到你的 apxs 脚本（用命令 which apxs），有时会在 /usr/local/apache/bin/apxs 或者 /usr/sbin/apxs。打开并检查类似如下的行：

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl

如果你看到这几行，那问题就在这里。它们可能包含了仅仅空格或者其它不正确的值，例如“q()”。改成这样：

my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl

第二个可能的问题仅可能在在 Red Hat 6.1 和 6.2 中发生。Red Hat 发行的 apxs 脚本坏了。查找这一行：

my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install

如果你看到上面这一行，改成这样：

my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install

最后，如果你重新配置或者重装了 Apache，在 ./configure 之后和 make 之前增加一个 make clean 命令。

在 make 的过程中，在 microtime 中出错，还有很多 RUSAGE_ 之类的东西。

如果 make 时遇到类似这样的问题：

microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

你的系统坏了。你需要安装一个符合你的 glibc 的 glibc-devel 包来修复 /usr/include 中的文件。这和 PHP 绝对没有任何关系。要证实这一点，试试这个简单的测试：

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null

如果出现错误，那你就知道头文件坏了。

当带 MySQL 编译 PHP 时，可以正确地运行配置，但是在 make 的过程中出现了类似以下的错误信息： ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp'，这是怎么回事

首先，我们需要认识到这只是个警告，而非致命错误。由于这条信息通常是在 make 的最后输出的，所以看起来它可能像是一个致命错误，但实际上不是。当然，如果将编译器设置成遇见警告信息时停止，则这也可以算是致命错误。另外值得一提的是，MySQL 的支持是默认打开的。

Note: 自 PHP 4.3.2 起，你将在编译（make）结束后看到下面的文字：

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

我想升级我的 PHP。上哪里找到我用来配置目前的 PHP 的 ./configure 的参数呢？

要么在你当前的 PHP 的安装目录查看 config.nice 文件，如果没有，只要运行此脚本：

<?php phpinfo(); ?>

在输出的顶端显示了用来配置此 PHP 的 ./configure 参数。

和 GD 库一起编译 PHP 时，要么给出一个奇怪的编译错误，要么在运行时出现 segfaults。

确保你的 GD 库和 PHP 在连接时使用了用同样的支持库（例如 libpng）。

当编译 PHP 时我看到一些随机的错误，好像死了。我用的是 Solaris，不知道有没有关系。

当编译 PHP 时使用非 GNU 的工具会导致问题。确保使用 GNU 工具来确保能够正确编译 PHP。例如，在 Solaris 下面不论使用 SunOS BSD 兼容或者 Solaris 版本的 sed 都不行，但是使用 GNU 或者 Sun POSIX (xpg4) 版本的 sed 就可以。相关连接：» GNU sed，» GNU flex，» GNU bison。

安装
使用 PHP
FAQ


使用 PHP

本节汇集了你在写 PHP 脚本时可能碰到的大多数普通错误。

  1. 我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢？
  2. 我需要在所有的单引号（'）前加一个反斜线（\），使它们变成（\'），我如何能够通过正则表达式来实现？我同样希望能够将（"）转换成（\"），将（\）转换成（\\）。
  3. 我所有的（"）和（'）都被变成了（\"）和（\'），我如何才能去掉这些不必要的反斜线？它们为什么及如何出现？
  4. PHP 选项 register_globals 对我有什么影响？
  5. 当我这样做时，输出显示的次序是错的： <?phpfunction myfunc($argument){ echo $argument + 10;}$variable = 10;echo "myfunc($variable) = " . myfunc($variable);?> 这是怎么回事？
  6. 下面代码怎么没有分成两行显示？ <pre><?php echo "This should be the first line."; ?><?php echo "This should show up after the new line above."; ?></pre>
  7. 我得到消息“Warning: Cannot send session cookie - headers already sent...”或者“Cannot add header information - headers already sent...”。
  8. 我需要直接访问请求报头中的信息，怎么能办到？
  9. 当我用 IIS 进行 HTTP 认证时得到“No Input file specified”消息。
  10. Windows：不能访问另一台电脑上用 IIS 共享的文件。
  11. 我的 PHP 脚本在 IE 和 Lynx 下能工作，但是在 Netscape 中有的输出丢失了。当我用“查看源文件”时可以在 IE 中看到内容，但是 Netscape 中不能。
  12. 我怎样混合使用 XML 和 PHP？它不认我的 <?xml 标记！
  13. 怎样用 FrontPage 或者其它非要把我的代码移来移去的 HTML 编辑器来编辑 PHP？
  14. 哪里可以找到所有可用的 PHP 预定义变量的完整列表？
  15. 怎样才能不用非免费的商业库（例如 PDFLib） 来生成 PDF 文档？我想要个免费的并且不需要再连接别的 PDF 库。
  16. 我试着在用户自定义函数中访问一个标准的 CGI 变量（例如 $DOCUMENT_ROOT 或 $HTTP_REFERER），但是找不到，哪里出了错？
  17. 有些 PHP　选项可以接受缩写的字节值，与仅能接受 integer 字节值相反。都有哪些缩写字节值？可以将其用于 php.ini 之外吗？

我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢？

PHP 提供很多“预定义变量”，例如超全局变量 $_POST。可以遍历 $_POST 变量，因为它是一个和所有通过 POST 方法传递数据相联系的数组。例如，可以用 foreach 简单地遍历它，检查 empty() 值，以及将它们输出。

<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "None of the POSTed values are empty, posted:\n";
    var_dump($post);
} else {
    print "We have " . count($empty) . " empty values\n";
    print "Posted:\n"; var_dump($post);
    print "Empty:\n";  var_dump($empty);
    exit;
}
?>

Note: Superglobals 可用性说明
自 PHP 4.1.0 起，可以使用超全局数组变量例如 $_GET，$_POST 和 $_SERVER 等等。更多信息请阅读手册中的 superglobals。

我需要在所有的单引号（'）前加一个反斜线（\），使它们变成（\'），我如何能够通过正则表达式来实现？我同样希望能够将（"）转换成（\"），将（\）转换成（\\）。

函数 addslashes() 能够实现这种操作。请参阅函数
mysql_escape_string()。另外，还可以用函数
stripslashes() 来去掉反斜线。

Note: magic_quotes_gpc 设置选项说明
PHP 的设置选项 magic_quotes_gpc 的默认值为 on。这相当于自动对所有的 GET、POST、COOKIE 数据使用了 addslashes() 函数。可以用 stripslashes() 函数来去掉它们。

我所有的（"）和（'）都被变成了（\"）和（\'），我如何才能去掉这些不必要的反斜线？它们为什么及如何出现？

PHP 函数 stripslashes() 能够从 string 中去掉所有的反斜线。这些反斜线出现最有可能的原因是 PHP 设置项 magic_quotes_gpc 被开启。

Note: magic_quotes_gpc 设置选项说明
PHP 的设置选项 magic_quotes_gpc 的默认值为 on。这相当于自动对所有的 GET、POST、COOKIE 数据使用了 addslashes() 函数。可以用 stripslashes() 函数来去掉它们。

PHP 选项 register_globals 对我有什么影响？

首先要理解这个设置选项的作用。假如我们使用以下URL： http://example.com/foo.php?animal=cat，那么在foo.php中我们可能会使用以下代码：

<?php
// 建议使用这种访问变量的方式
echo $_GET['animal'];

// 如果想直接访问$animal变量，就要把register_globals选项设置为on
// 强烈建议不要这么做！！
echo $animal;

// 这个选项的值会影响到所有变量，包括$_SERVER
// 以下是该选项设置为off时的正确写法
echo $_SERVER['PHP_SELF'];

// 同样，要使$PHP_SELF变量自动生效，register_globals选项必须设置为on
// 强烈建议不要这么做！！
echo $PHP_SELF;
?>

上面的代码解释了register_globals的作用，就是自动生成变量。这种编程方式被很多人所不喜，所以在PHP当中register_globals默认设置为off。在PHP6，这个选项被删除了。所以目前绝大部分虚拟主机都默认把register_globals禁用。请注意，你在阅读过时的文章、教程时可能需要把该选项开启，否则可能示例代码不能通过。但在实际开发当中，强烈建议将其设置为off，否则可能会导致安全问题。

请参阅以下资源进一步了解：

  • The register_globals 选项
  • The 注册全局变量的安全问题
  • 处理外部变量
  • Use 超级全局变量

Note: 以上示例中，我们使用了一个URL，其中包含了一个QUERY_STRING。PHP会把QUERY_STRING中的信息通过GET HTTP请求传递，所以我们可以通过超级全局变量（superglobal）$_GET来访问其中的变量。

当我这样做时，输出显示的次序是错的：

<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>

这是怎么回事？

要在一个表达式中（例如在上面的例子中和其它字符串连接）使用函数的结果，需要 return() 这个值，而不是 echo() 它。

下面代码怎么没有分成两行显示？

<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>

在 PHP 中，一段代码的结束标记要么是“?>”要么是“?>\n”（\n 表示换行）。因此在上面的例子中，输出的句子将显示在同一行中，因为 PHP 忽略了代码结束标记后面的换行。这意味着如果要输出一个换行符，需要在每段 PHP 代码的结束标记后面多加一个换行。

PHP 为什么这么做呢？因为在格式化正常的 HTML 时，这样通常会更容易。假如输出了换行而你不需要这个换行时，就不得不用一个非常长的行来达到这样的效果，或者让产生的 HTML 页面的源文件的格式很难读。

我得到消息“Warning: Cannot send session cookie - headers already sent...”或者“Cannot add header information - headers already sent...”。

函数 header()，setcookie() 和 session 函数需要在输出流中添加头信息。但是头信息只能在其它任何输出内容之前发送。在使用这些函数前不能有任何（如 HTML）的输出。函数 headers_sent() 能够检查脚本是否已经发送了头信息。请参阅输出控制函数。

我需要直接访问请求报头中的信息，怎么能办到？

如果以 Apache 的模块方式运行 PHP，那么函数 getallheaders() 可以做这件事。因此下面的代码可以显示所有的请求报头：

<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>

请参阅函数 apache_lookup_uri()、apache_response_headers() 和 fsockopen()。

当我用 IIS 进行 HTTP 认证时得到“No Input file specified”消息。

IIS 的安全模型这里有毛病。这是所有 IIS 下运行的 CGI 程序所共有的问题。一个解决办法是建立一个纯 HTML 文件（不经过 PHP 解析）作为要进入认证目录的登录页面，然后用 META 标记来重定向到 PHP 页面，或者用一个连接到 PHP 页面。然后 PHP 就可以正确识别认证信息了。如果是用 ISAPI 模块，那没有这个问题。其它 NT 下的 web 服务器不受此影响。更多信息见 » http://support.microsoft.com/kb/q160422/及 HTTP 认证一章。

Windows：不能访问另一台电脑上用 IIS 共享的文件。

必须要做些修改。打开 Internet 信息服务，找到你的 PHP 文件并打开属性页，选择文件安全性标签，点击匿名访问和身份验证控制的“编辑”按钮。

解决此问题有两个方法，一是不要选中匿名访问并且选中集成 Windows 身份验证，二是选中匿名访问并编辑匿名访问使用的帐户，改成一个有权限的。

我的 PHP 脚本在 IE 和 Lynx 下能工作，但是在 Netscape 中有的输出丢失了。当我用“查看源文件”时可以在 IE 中看到内容，但是 Netscape 中不能。

Netscape 在关于 HTML 标记（例如 table）上比 IE 更严格。用一个 HTML 验证器，例如 » validator.w3.org 来验证你的 HTML 输出可能会有帮助。例如漏了 </table> 可能会导致这样的结果。

同样，IE 和 Lynx 都忽略了 HTML 流中的任何 NULs（\0），Netscape 就不。最好的检查方法是编译 PHP 的命令行模式版本（也称为 CGI 版本）并从命令行运行你的脚本。在 *nix 中，用管道传递到 od -c 并查看任何 \0 字符。如果在 Windows 下你需要能够查看二进制文件格式的编辑器或程序。当 Netscape 碰到 NUL 时就不会输出之后该行的任何内容而 IE 和 Lynx 都会。

我怎样混合使用 XML 和 PHP？它不认我的 <?xml 标记！

要能够在 PHP 代码中直接嵌入 <?xml，需要将 PHP 设置项 short_open_tags 设置为 0 以关闭短标记格式。无法通过函数 ini_set() 来更改这项设置。不管 short_open_tags 是开或者关，都可以用类似于 <?php echo '<?xml'; ?> 的方法达到目的。该项设置的默认值为开。

怎样用 FrontPage 或者其它非要把我的代码移来移去的 HTML 编辑器来编辑 PHP？

最简单的方法是让 PHP 代码也能使用 ASP 标记。这可以让你用 ASP 风格的 <% 和 %> 代码定界符。一些流行的 HTML 编辑器在处理此格式上更加智能化一些（目前如此）。要使用 ASP 风格的标记，需要在 php.ini 中打开 asp_tags，或者用相应的 Apache 配置选项。

哪里可以找到所有可用的 PHP 预定义变量的完整列表？

请阅读手册中的预定义变量一章，该部分的文档已经包含了一部分可以用于你的脚本的预定义变量的列表。可用变量的完整列表（及更多信息）可以通过调用 phpinfo() 函数来查阅。请务必阅读手册中来自 PHP 之外的变量一节，这部分文档阐述了外部变量的概念，例如来自 HTML 表单、Cookie 和 URL 的变量。

Note: register_globals 重要说明
自 PHP 4.2.0 起，PHP 中的选项 register_globals 的默认值被设为 off，并且自 PHP 6.0.0 起会被彻底去除。PHP 社区鼓励大家不要依赖于这个选项，用其它方法替代，例如superglobals。

怎样才能不用非免费的商业库（例如 PDFLib） 来生成 PDF 文档？我想要个免费的并且不需要再连接别的 PDF 库。

有几个选择，例如 » http://www.ros.co.nz/pdf/，» http://www.fpdf.org/，» http://www.gnuvox.com/pdf4php/ 和 » http://www.potentialtech.com/ppl.php。还有一个 » Panda 模块。

我试着在用户自定义函数中访问一个标准的 CGI 变量（例如 $DOCUMENT_ROOT 或 $HTTP_REFERER），但是找不到，哪里出了错？

首先非常重要的一点是 PHP 设置项 register_globals 同样会对服务器端和环境变量产生影响。当 register_globals = off （从 PHP 4.2.0 开始其默认值为 off），变量 $DOCUMENT_ROOT 将不会存在，而只有 $_SERVER['DOCUMENT_ROOT']。如果 register_globals = on 则变量 $DOCUMENT_ROOT 和 $GLOBALS['DOCUMENT_ROOT'] 将同时存在。

如果确认 register_globals = on 但不知道为什么 $DOCUMENT_ROOT 在函数内部不可用，这是因为它和其它的变量一样需要在函数中执行 global $DOCUMENT_ROOT。请参阅手册中的变量范围一节。建议在 register_globals = off 的情况下进行编码。

Note: Superglobals 可用性说明
自 PHP 4.1.0 起，可以使用超全局数组变量例如 $_GET，$_POST 和 $_SERVER 等等。更多信息请阅读手册中的 superglobals。

有些 PHP　选项可以接受缩写的字节值，与仅能接受 integer 字节值相反。都有哪些缩写字节值？可以将其用于 php.ini 之外吗？

可用的选择有 K（对应 Kilobytes），M（对应 Megabytes）和 G（对应 Gigabytes；自 PHP 5.1.0 起可用），区分大小写。其余的都认为是字节。1M 等于一个 Megabyte，即 1048576 字节。1K 等于一个 Kilobyte，即 1024 字节。不能在 php.ini 之外使用这些符号，最好用整数的 integer 字节值。参见 ini_get() 文档中的转换示例。

编译问题
PHP 和 HTML
FAQ


PHP 和 HTML

PHP 和 HTML 有很多相互作用：PHP 能生成 HTML，HTML 可以向 PHP 传递信息。在阅读这些常见问题之前，先学会怎样从 PHP 之外取得变量很重要。此主题的手册页也包括很多例子。还要仔细留意 register_globals 对你意味着什么。

  1. 当我通过表单／URL 传值时需要用什么编码／解码方法？
  2. 我在试用 <input type="image"> 标记，但是没有 $foo.x 和 $foo.y 变量，它们哪去了？
  3. 怎样在 HTML 的 <form> 中建立数组？
  4. 怎样从可多选的 HTML 的 select multiple 标记中得到所有结果？
  5. 怎样从 Javascript 传递一个变量到 PHP？

当我通过表单／URL 传值时需要用什么编码／解码方法？

在几个环节上编码方式很重要。假定有 string $data，其中包含了想通过非编码方式传递的字符串，那这是相关步骤：

  • HTML 解析。要指定一个任意的字符串，必须将其放在双引号中，并用 htmlspecialchars() 处理整个值。

  • URL：URL 由几部分组成。如果希望自己的数据被当作其中一项来解释，必须用 urlencode() 对其编码。

Example #1 隐藏的 HTML 表单单元

<?php
    echo "<input type='hidden' value='" . htmlspecialchars($data) . "' />\n";
?>

Note: 用 urlencode() 来处理 $data 是错误的，因为是浏览器的责任来 urlencode() 数据。所有流行的浏览器都能正确处理。注意不论何种方法（例如 GET 或 POST）都会这样。不过只会在用 GET 请求时注意到这一点，因为 POST 请求通常是隐藏的。

Example #2 等待用户编辑的数据

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Note: 数据会按照预期的显示在浏览器中，因为浏览器会解释 HTML 转义符号。 当提交时，不论是 GET 或者 POST 方法，数据都会被浏览器进行 urlencode 来传输，并直接被 PHP urldecode。所以最终不需要自己处理任何 urlencoding/urldecoding，全都是自动处理的。

Example #3 URL 中的例子

<?php
    echo "<a href='" . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . "'>\n";
?>

Note: 事实上这在编造一个 HTML 的 GET 请求，因此需要手工对数据进行 urlencode()。

Note: 需要对整个 URL 进行 htmlspecialchars()，因为 URL 是作为 HTML 属性的一个值出现的。在本例中，浏览器会首先对值进行 un-htmlspecialchars()，然后再传递此 URL。PHP 将能正确理解 URL，因为对数据进行了 urlencoded()。 要注意到 URL 中的 & 被替换成了 &amp;。如果忘了这一步，尽管大多数浏览器都能恢复，但也不总是这样。因此即使 URL 不是动态的，也需要对 URL 进行 htmlspecialchars()。

我在试用 <input type="image"> 标记，但是没有 $foo.x 和 $foo.y 变量，它们哪去了？

当提交表单时，可以用图片代替标准的提交按钮，用类似这样的标记：

<input type="image" src="image.gif" name="foo" />

当用户点击了图片的任何部分，该表单会被发送到服务器并加上两个额外的变量：foo.x 和 foo.y。

因为 foo.x 和 foo.y 在 PHP 中会成为非法的变量名，它们被自动转换成了 foo_x 和 foo_y。也就是用下划线代替了点。因此，可以按照在来自 PHP 之外的变量这一节中说明的那样访问这些变量。例如，$_GET['foo_x']。

Note: 请求变量名中的空格被转换为下划线。

怎样在 HTML 的 <form> 中建立数组？

要使你的 <form> 结果被当成 array 发送到 PHP 脚本，要对 <input>，<select> 或者 <textarea> 单元这样命名：

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />

注意变量名后的方括号，这使其成为一个数组。可以通过给不同的单元分配相同的名字来把单元分组到不同的数组里：

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />

这将产生两个数组，MyArray 和 MyOtherArray，并发送给 PHP 脚本。还可以给数组分配指定的键名：

<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />

AnotherArray 数组将包含键名 0，1，email 和 phone。

Note: 指定数组的键名是 HTML 的可选项。如果不指定键名，则数组被按照单元在表单中出现的顺序填充。第一个例子将包含键名 0，1，2 和 3。

参见数组函数和来自 PHP 之外的变量。

怎样从可多选的 HTML 的 select multiple 标记中得到所有结果？

可多选的 select multiple 标记是 HTML 的一个构造，允许用户从一个列表中选择多个项目。这些项目接着被传递给该表单 action 中指定的处理程序。问题是它们都会被用同样的名字传递。例如：

<select name="var" multiple="yes">

每个被选项将这样被传递到表单处理程序：

var=option1
var=option2
var=option3

每个选项将覆盖前面一个 $var 变量的内容。解决方案是用 PHP 的“表单单元数组”特性。使用方法如下：

<select name="var[]" multiple="yes">

这将告诉 PHP 将 $var 当成数组对待，每个对 var[] 的赋值都会给数组增加一项。第一项将成为 $var[0]，下一个是 $var[1]，等等。可以用 count() 函数来测定选择了多少个项目，必要时可以用 sort() 函数来对选项的数组进行排序。

注意如果在 JavaScript 中通过名字来引用单元，单元名字中的 [] 可能会造成问题。用表单单元中的数字序号来替代，或者将变量名用单引号括起来并用其作为单元数组的索引，例如：

variable = documents.forms[0].elements['var[]'];

怎样从 Javascript 传递一个变量到 PHP？

由于 Javascript （通常情况下）是客户端技术，而 PHP （通常情况下）是服务器端技术，而且 HTTP 是一种“无状态”协议，因此两种语言之间不能直接共享变量。

但是，有可能在二者之间传递变量。一种实现的方法是用 PHP 生成 Javascript 代码，并让浏览器自动刷新，将特定的变量传递回 PHP 脚本。以下例子显示了如何这样做――让 PHP 代码取得显示屏幕的高度和宽度，通常只能在客户端这么做。

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  echo "Screen width is: ". $_GET['width'] ."<br />\n";
  echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
  // pass the geometry variables
  // (preserve the original query string
  //   -- post variables will need to handled differently)

  echo "<script language='javascript'>\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>

使用 PHP
PHP 和 COM
FAQ


PHP 和 COM

PHP 可以在 Win32 平台中访问 COM 和 DCOM 对象。

  1. 我建立了一个 DLL 来做某种计算。有办法在 PHP 中运行这个 DLL 吗？
  2. “Unsupported variant type: xxxx (0xxxxx)”是什么意思？
  3. 在 PHP 中有可能操纵可视对象吗？
  4. 可以将一个 COM 对象保存在 session 中吗？
  5. 怎样可以捕获 COM 的错误？
  6. 我能像在 Perl 中一样从 PHP 脚本生成 DLL 文件吗？
  7. “Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”是什么意思？
  8. 怎样从远端服务器运行 COM 对象？
  9. 我得到一个“DCOM is disabled in C:\path...\scriptname.php on line 6”信息，应该怎么办？
  10. 有可能在 PHP 页面中加载／操纵 ActiveX 对象吗？
  11. 有可能得到一个组件在运行中的实例吗？
  12. 有办法处理 COM 对象中发送的事件吗？
  13. 我在尝试调用一个打开了多于一个接口的 COM 对象中的方法时碰到问题，应该怎么办？
  14. 这么说 PHP 可以和 COM 一起工作，那么 COM+ 呢？
  15. 如果 PHP 可以操纵 COM 对象，那么可以设想结合 PHP 用 MTS 来管理组件资源吗？

我建立了一个 DLL 来做某种计算。有办法在 PHP 中运行这个 DLL 吗？

如果这是个简单的 DLL 那么还没有办法在 PHP 中运行它。如果这个 DLL 中包含有一个 COM 服务器并且它实现了 IDispatch 接口，那有可能访问它。

“Unsupported variant type: xxxx (0xxxxx)”是什么意思？

有几十种 VARIANT 类型以及它们的组合。大多数已经被支持了但还有几种尚未实现。数组没有完全被支持。只有一维的仅用作索引的数组可以在 PHP 和 COM 之间传递。如果你发现其它未支持的类型，请当作一个 bug 报告（如果尚未被报告的话）并提供尽可能多的信息。

在 PHP 中有可能操纵可视对象吗？

一般来说是可以的，但是 PHP 大都用来作为 web 脚本语言并运行在 web 服务器的上下文环境中，因此可视对象决不会在服务器的桌面上显示。如果你把 PHP 用作应用程序脚本例如结合 PHP-GTK 来使用，那么访问和通过 COM 来操纵可视对象方面没有限制。

可以将一个 COM 对象保存在 session 中吗？

不行。COM 的实例被看作是资源，因此只在一个脚本的上下文中有效。

怎样可以捕获 COM 的错误？

在 PHP 5 中，COM 扩展会发出 com_exception 异常信息，可以捕获并检查 code 成员来决定下一步的行为。

在 PHP 4 中除了用 PHP 自己提供的办法之外（@，track_errors，..）不可能捕获 COM 的错误。

我能像在 Perl 中一样从 PHP 脚本生成 DLL 文件吗？

不行，PHP 没有这样的工具。

“Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”是什么意思？

此错误可以有多种原因：

  • 错误的 CLSID
  • 找不到所请求的 DLL
  • 所请求的组件没有实现 IDispatch 接口

怎样从远端服务器运行 COM 对象？

完全和运行本地对象一样。只须将远端服务器的 IP 作为第二个变量传递给 COM 的构造函数即可。

确认在 php.ini 中设定了 运行时配置 =TRUE。

我得到一个“DCOM is disabled in C:\path...\scriptname.php on line 6”信息，应该怎么办？

编辑 php.ini 并设定 运行时配置 =TRUE。

有可能在 PHP 页面中加载／操纵 ActiveX 对象吗？

这不关 PHP 的事。如果在 HTML 文档中请求的话，ActiveX 对象被加载在客户端。这和 PHP 脚本没有关系，因此也不可能和服务器端发生直接的交互作用。

有可能得到一个组件在运行中的实例吗？

在绰号的帮助下这有可能。如果你想得到同一个 word 实例的多个引用你可以这样建立此实例：

<?php
$word = new COM("C:\docs\word.doc");
?>

如果没有运行中的实例这将建立一个新的实例，否则将会返回正在运行中的实例的句柄，如果可用的话。

有办法处理 COM 对象中发送的事件吗？

可以自定义事件收报方并且用 com_event_sink() 函数绑定之。可以用 com_print_typeinfo() 来让 PHP 产生事件收报方类的框架。

我在尝试调用一个打开了多于一个接口的 COM 对象中的方法时碰到问题，应该怎么办？

我也不知道怎么办，我想这没办法。如果什么人有对此问题的明确信息请» 告诉我。:)

这么说 PHP 可以和 COM 一起工作，那么 COM+ 呢？

COM+ 通过使用 MTS 和 MSMQ 来管理组件的框架扩展了 COM，但并没有什么特殊之处使 PHP 非要支持这样的组件。

如果 PHP 可以操纵 COM 对象，那么可以设想结合 PHP 用 MTS 来管理组件资源吗？

PHP 本身还并不处理事务。因而如果出错也不会发动撤回机制。如果你使用了支持事务处理的组件那你不得不自己实现事务管理。

PHP 和 HTML
PHP 和其它语言
FAQ


PHP 和其它语言

PHP 是 web 编程最好的语言，但其它语言怎样呢？

  1. PHP 对 ASP？
  2. 有 ASP 到 PHP 的转换器吗？
  3. PHP 对 Cold Fusion？
  4. PHP 对 Perl？

PHP 对 ASP？

ASP 本身并不真的是一种语言，它是 Active Server Pages 的缩写，实际上用来进行 ASP 编程的语言是 Visual Basic Script 或者 JScript。ASP 最大的缺点是它是一个专有系统而只能在 Microsoft Internet Information Server（IIS）上使用。这限制了它只能在基于 Win32 的服务器上使用。有几项进行中的计划使 ASP 可以在其它环境和 web 服务器中使用：» Halcyon（商业的）的 » InstantASP，» Chili!Soft（商业的） 的 Chili!Soft ASP。ASP 被认为比 PHP 慢和麻烦，也不稳定。一些 ASP 的正面观点是既然它基本上用 VBScript，那如果你已经懂得用 Visual Basic 编程就会相对容易拾起这种语言。在 IIS 服务器中默认激活了 ASP 支持，这使它容易启动和运行。ASP 中内置的组件实在是很有限，因此如果需要一些“高级的”特点例如与 FTP 服务器交互，需要购买额外的组件。

有 ASP 到 PHP 的转换器吗？

有，服务器端的 » asp2php是最经常被提及的，还有一个选择是» 此客户端。

PHP 对 Cold Fusion？

PHP 普遍被认为对复杂的编程任务更快和更有效以及勇于尝试新主意。PHP 也通常被提及更稳定以及占用更少资源。Cold Fusion 具有更好的错误处理，数据库抽象和数据解析，尽管数据库抽象已经在 PHP 4 中解决了。另外一个被作为 Cold Fusion 的强项列出来的是它卓越的搜索引擎，但也被指出搜索引擎不是 web 脚本语言中应该包括的东西。PHP 可以在几乎每一个现有的平台下运行；Cold Fusion 只能在 Win32，Solaris，Linux 和 HP/UX 下运行。Cold Fusion 有很好的集成开发环境以及通常更容易上手，反之 PHP 则一开头就需要更多的编程知识。Cold Fusion 是为非程序员的头脑所设计，而 PHP 则聚焦于程序员。

有关此话题 Michael J Sheldon 在 PHP 邮件列表中发表了一个很棒的摘要。这里有一个拷贝 » http://marc.theaimsgroup.com/?l=php-general&m=95602167412542&w=1。

PHP 对 Perl？

PHP 对 Perl 最大的优势就是 PHP 是为 web 脚本设计的而 Perl 则被设计用来做更多的事也因此而非常复杂。Perl 的灵活性／复杂性使得用它能很容易写出代码但却让另一个作者／编程者非常难读懂。PHP 则不容易把人搞糊涂以及具有更严谨的格式同时也不失灵活性。PHP 比 Perl 更容易集成进现有的 HTML 中去。PHP 具有差不多所有 Perl 的“好”功能：结构，语法等等，但却没有使它达到 Perl 的费解程度。Perl 是一种久经考验真正的语言，从上个世纪八十年代末起就到处都有，但是 PHP 成熟得非常快。

PHP 和 COM
从 PHP 4 移植到 PHP 5
FAQ


从 PHP 4 移植到 PHP 5

本章节将帮你从 PHP 4 移植到 PHP 5。

  1. 从 PHP 4 向 PHP 5 移植
  2. PHP 5 中还能用 MySQL 吗？好像找不到了。
  3. 听说 PHP 有个全新的 OOP 模型，那现有的 OOP 代码还能运行吗？上哪去找这些新的 OOP 特性的信息？
  4. 除了 OOP 模型，PHP 5 还有哪些改动？此外，有没有专门针对 PHP 5 的手册？

从 PHP 4 向 PHP 5 移植

尽管 PHP 5 提供了很多新特性，但它还是尽可能设计得与之前版本的 PHP 兼容，只有很少功能不一致。

确认阅读了本手册中相应的 PHP 5 移植附录，它包含了更多移植到 PHP 5 的信息。

PHP 5 中还能用 MySQL 吗？好像找不到了。

MySQL 依然被支持，唯一区别是 PHP 5 中默认为不激活。这意味着在 PHP 的 configure 一行中不包含有 --with-mysql 选项，因此必须在编译时手工加入。Windows 用户可以编辑 php.ini 并激活 php_mysql.dll DLL。在 PHP 4 中没有这个 DLL，因为已经编译进 PHP 可执行文件中去了。

此外，MySQL 客户端库也不再绑定于 PHP 中了。有关此题目的更多细节见此 FAQ。另外确保阅读了 MySQL 章节中的安装详情。一个配置行的例子是 --with-mysql=/usr，Windows 用户则需要 libmySQL.dll。

听说 PHP 有个全新的 OOP 模型，那现有的 OOP 代码还能运行吗？上哪去找这些新的 OOP 特性的信息？

PHP 5 的主要改进就是 OOP 模型现在使用了 Zend Engine 2.0。zend.ze1_compatibility_mode 指令将激活与 Zend Engine 1.0（PHP 4）的兼容性。

新的 OOP 模型文档见 OOP 语言手册和 OOP 移植附录章节。

除了 OOP 模型，PHP 5 还有哪些改动？此外，有没有专门针对 PHP 5 的手册？

其它几个改动见移植到 PHP 5 附录。没有专门的 PHP 5 手册，因为 PHP 的主要部分还是一样的。

PHP 和其它语言
杂类问题
FAQ


杂类问题

有些问题没法归到其它类中，可以在这里找到。

  1. 在 Windows 中怎样处理 bz2 压缩的文档？
  2. 在函数定义中，参数旁边的 & 是什么意思？例如 asort()。
  3. 怎么处理 register_globals？

在 Windows 中怎样处理 bz2 压缩的文档？

如果没有能处理 bz2 文件的压缩工具，从 Redhat » 下载一个命令行工具（进一步信息见下面）。

如果不喜欢用命令行工具，可以试试免费工具例如 » Stuffit Expander，» UltimateZip，» 7-Zip 或者 » Quick Zip。如果有像 » WinRAR 或者 » Power Archiver 之类的工具，可以很容易用它解压缩 bz2 文件。如果用 Total Commander（前身为 Windows Commander），可以从 » Total Commander 网站免费得到一个 bz2 插件。

来自 Redhat 的 bzip2 命令行工具：

Win2K Sp2 用户下载最新版本 1.0.2，所有其它 Windows 用户应该用版本 1.00。下载后重命名可执行文件为 bzip2.exe。为方便起见将其放到一个在你路径中的目录，例如 C:\Windows，C 表示你安装 Windows 的盘符。

注意：lang 指的是你的语种，x 是想要的格式，例如：pdf。要解压缩 php_manual_lang.x.bz2，按照下面的简单说明进行：

  • 打开一个命令行窗口
  • 进入存放已下载的 php_manual_lang.x.bz2 的目录
  • 调用 bzip2 -d php_manual_lang.x.bz2，将 php_manual_lang.x 释放到同一个目录

在下载了包含很多 html 文件的 php_manual_lang.tar.bz2 的情况下，过程是一样的。唯一区别是得到了一个 php_manual_lang.tar 文件。tar 格式可以被大多数 Windows 下流行的压缩工具所处理，例如 » WinZip。

在函数定义中，参数旁边的 & 是什么意思？例如 asort()。

这表示该参数是引用传递，该函数会修改其值。只可以用此方法传递变量，其实都不需要在函数调用中用 & 传递（此方式都已过时了）。

怎么处理 register_globals？

有关 register_globals 实现方面的安全性，请阅读使用 register_globals 一章。

推荐使用超全局变量而不要依赖 register_globals。

如果需要在一台关闭了 register_globals 的共享主机上运行一些旧式程序而该程序需要此选项打开时，或者在一些打开了此选项的主机上但想消除安全隐患，那么就需要用 PHP 来模拟出相反的设定。最好先问清楚是否能否在哪里更改 PHP 配置的选项，如果不行，那可以用如下的兼容手段。

Example #1 模拟注册全局变量

本例模拟 register_globals On。如果改变了配置文件中的 variables_order 选项，则考虑对 $superglobals 作出相应的改动。

<?php
// Emulate register_globals on
if (!ini_get('register_globals')) {
    $superglobals = array($_SERVER, $_ENV,
        $_FILES, $_COOKIE, $_POST, $_GET);
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal) {
        extract($superglobal, EXTR_SKIP);
    }
}
?>

本例模拟 register_globals Off。要记住此代码应在脚本最开头的地方调用。如果使用了会话机制，则在 session_start() 之后调用。

<?php
// Emulate register_globals off
function unregister_GLOBALS()
{
    if (!ini_get('register_globals')) {
        return;
    }

    // Might want to change this perhaps to a nicer error
    if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
        die('GLOBALS overwrite attempt detected');
    }

    // Variables that shouldn't be unset
    $noUnset = array('GLOBALS',  '_GET',
                     '_POST',    '_COOKIE',
                     '_REQUEST', '_SERVER',
                     '_ENV',     '_FILES');

    $input = array_merge($_GET,    $_POST,
                         $_COOKIE, $_SERVER,
                         $_ENV,    $_FILES,
                         isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

    foreach ($input as $k => $v) {
        if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
            unset($GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>

从 PHP 4 移植到 PHP 5
附录
FAQ


附录

  • PHP 及其相关工程的历史
    • PHP 的历史
    • PHP 相关工程的历史
    • PHP 相关书籍
    • PHP 相关文章
  • Migrating from PHP 5.1.x to PHP 5.2.x
    • What has changed in PHP 5.2.x
    • Backward Incompatible Changes
    • New Error Messages
    • Changes in PHP datetime support
    • New Parameters
    • New Functions
    • New Methods
    • Removed Extensions
    • New Extensions
    • New Classes
    • New Global Constants
    • New Class Constants
    • New INI Configuration Directives
    • Error Reporting
    • Other Enhancements
  • Migrating from PHP 5.0.x to PHP 5.1.x
    • Key PHP 5.1.x features
    • Changes in reference handling
    • Reading []
    • Integer values in function parameters
    • Class and object changes
    • Extensions
    • Date/time support
    • Changes in database support
    • Checking for E_STRICT
  • 从 PHP 4 移植到 PHP 5
    • PHP 5 中有哪些改变
    • 未向下兼容的改变
    • CLI 和 CGI
    • 移植配置文件
    • 新函数
    • 新指令
    • 数据库
    • 新对象模型
    • 错误报告
  • PHP 的调试
    • 关于调试器
  • 配置选项
    • 核心配置选项列表
  • php.ini 配置选项
    • php.ini 配置选项列表
    • php.ini 核心配置选项说明
  • 扩展库分类
    • Alphabetical
    • 按归属分
    • 按状态分
  • 函数别名列表
  • 保留字列表
    • 关键词列表
    • 预定义类
    • 预定义常量
  • 资源类型列表
  • 支持的协议／封装协议列表
    • 文件系统
    • Socket
    • HTTP 和 HTTPS
    • FTP 和 FTPS
    • PHP 输入／输出流
    • 压缩流
    • Secure Shell 2
    • 音频流
    • 处理交互式流
  • 可用过滤器列表
    • 字符串过滤器
    • 转换过滤器
    • 压缩过滤器
    • 加密过滤器
  • 所支持的套接字传输器（Socket Transports）列表
    • Internet 领域：TCP，UDP，SSL 和 TLS
    • Unix 领域：Unix 和 UDG
  • PHP 类型比较表
  • 解析器代号列表
  • Userland Naming Guide
    • Global Namespace
    • Rules
    • Tips
  • 关于本手册
    • 手册的格式
    • 关于用户注释
    • 如何阅读函数的定义（函数原型）
    • 本手册中所涉及的 PHP 版本
    • 如何得到关于 PHP 更多的信息
    • 如何帮助改进本文档
    • 如何生成手册的各种格式
    • 手册译文
  • Creative Commons Attribution 3.0
  • 函数索引
杂类问题
PHP 及其相关工程的历史


PHP 及其相关工程的历史

Table of Contents

  • PHP 的历史
  • PHP 相关工程的历史
  • PHP 相关书籍
  • PHP 相关文章

PHP 在过去的几年里走过了漫长的道路。成长为处理 web 的最卓越的语言并非易事。如果对 PHP 如何发展到今天很感兴趣，那么请继续读下去吧。以前的 PHP 发行版可以在 » PHP 博物馆找到。

附录
PHP 的历史
附录


PHP 的历史

PHP/FI

PHP 继承自一个老的工程，名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 创建，最初只是一套简单的 Perl 脚本，用来跟踪访问他主页的人们的信息。它给这一套脚本取名为“Personal Home Page Tools”。随着更多功能需求的增加，Rasmus 写了一个更大的 C 语言的实现，它可以访问数据库，可以让用户开发简单的动态 Web 程序。Rasmus » 发布了 PHP/FI 的源代码，以便每个人都可以使用它，同时大家也可以修正它的 Bug 并且改进它的源代码。

PHP/FI，一个专为个人主页／表单提供解释程序的程序，已经包含了今天 PHP 的一些基本功能。它有着 Perl 样式的变量，自动解释表单变量，并可以嵌入 HTML。语法本身与 Perl 很相似，但是它很有限，很简单，还稍微有些不协调。

到1997年，PHP/FI 2.0，也就是它的 C 语言实现的第二版在全世界已经有几千个用户（估计）和大约 50,000 个域名安装，大约是 Internet 所有域名的 1%。但是那时只有几个人在为该工程撰写少量当代码，它仍然只是一个人的工程。

PHP/FI 2.0 在经历了数个 beta 版本的发布后于 1997 年 11 月发布了官方正式版本。不久，PHP 3.0 的第一个 alpha 版本的发布，PHP 从此走向了成功。

PHP 3

PHP 3.0 是类似于当今 PHP 语法结构的第一个版本。Andi Gutmans 和 Zeev Suraski 在为一所大学的项目中开发电子商务程序时发现 PHP/FI 2.0 功能明显不足，于是他们重写了代码。这就是 PHP 3.0。经过Andi，Rasmus 和 Zeev 一系列的努力，考虑到 PHP/FI 已存在的用户群，他们决定联合发布 PHP 3.0 作为 PHP/FI 2.0 的官方后继版本。而 PHP/FI 2.0 的进一步开发几乎终止了。

PHP 3.0 的一个最强大的功能是它的可扩展性。除了给最终用户提供数据库、协议和 API 的基础结构，它的可扩展性还吸引了大量的开发人员加入并提交新的模块。后来证实，这是 PHP 3.0 取得巨大成功的关键。PHP 3.0 中的其它关键功能包括面向对象的支持和更强大和协调的语法结构。

这个全新的语言伴随着一个新的名称发布。它从 PHP/FI 2.0 的名称中移去了暗含“本语言只限于个人使用”的部分。它被命名为简单的缩写“PHP”。这是一种递归的缩写，它的全称是――PHP: Hypertext Preprocessor。

1998 年末，PHP 的安装人数几近 10,000，有大约 100,000 个网站报告他们使用了 PHP。在 PHP 3.0 的顶峰，Internet 上 10% 的 web 服务器上都安装了它。

约九个月的公开测试后，官方于 1998 年 6 月正式发布 PHP 3.0。

PHP 4

1998 年的冬天，PHP 3.0 官方发布不久，Andi Gutmans 和 Zeev Suraski 开始重新编写 PHP 代码。设计目标是增强复杂程序运行时的性能和 PHP 自身代码的模块性。PHP 3.0 的新功能和广泛的第三方数据库、API的支持使得这样程序的编写成为可能，但是 PHP 3.0 没有高效处理如此复杂程序的能力。

新的被称为“Zend Engine”（这是 Zeev 和 Andi 的缩写）的引擎，成功的实现了设计目标，并在 1999 年中期首次引入 PHP。基于该引擎并结合了更多新功能的 PHP 4.0，在 PHP 3.0 发布两年后，于2000年5月发布了官方正式版本。除了更高的性能以外，PHP 4.0 还包含了其它一些关键功能，比如：支持更多的 web 服务器；HTTP Sessions 支持；输出缓冲；更安全的处理用户输入的方法；一些新的语言结构。

今天，已经有 10,000 名开发人员（估计）和几百万网站报告已安装了 PHP，占整个 Internet 域名的 20%。

PHP 的开发小组有很多优秀的开发人员，同时还有大量的优秀人才在进行 PHP 相关工程的开发工作，如 PEAR 和 PHP 文档的工程。

PHP 5

PHP 5 在长时间的开发及多个预发布版本后，于 2004 年 7 月发布正式版本。它的核心是 Zend 引擎 2 代，引入了新的对象模型和大量新功能。

PHP 及其相关工程的历史
PHP 相关工程的历史
PHP 及其相关工程的历史


PHP 相关工程的历史

PEAR

» PEAR，PHP 扩展与应用资源库（PHP Extension and Application Repository，原为 PHP Extension and Add-on Repository）是 PHP 程序的基础类，并可能在将来增强为在开发人员间分发 PHP 和 C 语言编写的 PHP 扩展的关键方法。

PEAR 在 2000 年 1 月于 Tel Aviv 举行的 PHP 开发者会议（PDM）中诞生。这个工程由 Stig S. Bakken 创建。现在，他正专注于他的第一个小女儿，Malin Bakken。

2000 年早些时候，PEAR 已经成长为一个巨大的，有意义的工程。大量的开发人员在为实现普通的、可重用的、功能强大的代码而努力工作着。这给整个 PHP 团体都带来极大的益处。今天 PEAR 包含了大量的基础类，包括数据库访问、内容缓存、数学计算、电子商务等等。

有关 PEAR 的更多信息见其» 手册。

PHP 质量保证体系（QA）

» PHP 质量保证体系于2000年夏设立，因为用户批评 PHP 在发布前没有进行足够的针对产品环境的测试。质量保证小组由精通 PHP 基础代码的核心人员组成。这些开发人员将精力花费在本地化和修复 PHP 的 bug 上。除此之外，其他小组成员也在各种不同的平台上对这些修复进行测试并提供反馈信息。

PHP-GTK

» PHP-GTK 是编写客户端图形用户界面（GUI）程序的 PHP 解决方案。Andrei Zmievski 回忆了 PHP-GTK 计划和创建的过程：

“我总是对 GUI 编程有着浓厚的兴趣。我发现 Gtk+ 是一个非常好的工具包，除了一点――它使用的 C 语言很令人乏味。目睹了 PyGtk 和 GTK-Perl 的实现，我决定尝试 PHP 是否也能够被做成 Gtk+ 的接口。2000 年 8 月，我有了更多的业余时间，于是我开始试验。我参考了 PyGtk 的实现方法，因为它有着相当完全的实现和漂亮的面向对象的接口。James Henstridge，PyG 的作者，在最初的筹备阶段提供了极大的帮助。

“手工写 Gtk+ 函数全部的接口几乎是不可能的事情，所以我把重点放在了代码生成上，就像 PyGtk 做的一样。代码生成器是一个PHP 程序，它可以读取包含 Gtk+ 类、常量和方法信息的一系列的 .defs 文件并生成与 PHP 相接口的 C 代码。无法自动生成的部分可以提交到 .overrides 文件。

“代码生成器和基础结构的工作花了我一定的时间，因为我在 2000 年秋天这段时间里只能花很少的时间在 PHP-GTK 上。在我把 PHP-GTK 给 Frank Kromann 演示过后，他产生了浓厚的兴趣，并开始帮助我完成代码生成器和 Win32 的实现。当我们写了第一个 Hello World 程序并设法使之工作之时，我们的喜悦之情溢于言表。两个多月后，这个工程初见成效，并于 2001 年 3 月 1 日发布了内部版本。这个故事迅速的打击了 SlashDot。

“感到 PHP-GTK 前景广阔，我便为它专门设置了邮件列表和 CVS 知识库。同时，gtk.php.net 网站也在 Colin Viebrock 的帮助下建立起来。文档的工作也由 James Moore 承担起来。

“PHP-GTK 发布之后，它愈加流行。我们有自己的文档小组，手册持续更新。人们开始为 PHP-GTK 编写扩展。越来越多的程序已经开始使用它了。”

PHP 的历史
PHP 相关书籍
PHP 及其相关工程的历史


PHP 相关书籍

随着 PHP 的成长，人们越来越认识到它是一个世界流行的开发平台。看到这种趋势的最有趣方法之一就是：这些年 PHP 相关书籍越来越多。

据我们所知，最早的 PHP 专业书籍是“php- dynamische webauftritte professionell realisieren”――一本 1999 年出版的德国书籍，作者是 Egon Schmid、Christian Cartus 和 Richard Blume。第一本关于 PHP 的英文书随后出版，书名是“Core PHP Programming”，作者为：Leon Atkinson。这两本书都是写 PHP 3.0 的。

这两本书是这类图书的第一本――随后，大量的 PHP 相关图书上市。英文版本超过 40 种，德文 50 种，法文 20 种！除此之外，你可以发现西班牙文、韩文、日文、中文和希伯来文等等语言版本的 PHP 相关图书。

这么大量的图书，这么多作者的写作，这么多出版商的出版，并出现了这么多语言的版本――这强烈的证明 PHP 在世界范围内的成功！

PHP 相关工程的历史
PHP 相关文章
PHP 及其相关工程的历史


PHP 相关文章

据我们所知，关于 PHP 的在杂志上的第一篇文章于 1998 年末在法国的“Informatiques Magazine”杂志上发表，是描述 PHP 3.0 的。据记载，这是大量出版在杂志上 PHP 相关文章的第一篇。

关于 PHP 的文章出现在 Dr. Dobbs、Linux Enterprise、Linux Magazine 等等出版物上。关于在 Windows 下如何转换 ASP 程序到 PHP 的文章甚至出现在了微软自己的 MSDN 上！

PHP 相关书籍
Migrating from PHP 5.1.x to PHP 5.2.x
PHP 及其相关工程的历史


Migrating from PHP 5.1.x to PHP 5.2.x

Table of Contents

  • What has changed in PHP 5.2.x
  • Backward Incompatible Changes
  • New Error Messages
  • Changes in PHP datetime support
  • New Parameters
  • New Functions
  • New Methods
  • Removed Extensions
  • New Extensions
  • New Classes
  • New Global Constants
  • New Class Constants
  • New INI Configuration Directives
  • Error Reporting
  • Other Enhancements

See also the migration guides for PHP versions 5.0.x and 5.1.x.

PHP 相关文章
What has changed in PHP 5.2.x
附录


What has changed in PHP 5.2.x

Most improvements in PHP 5.2.x have no impact on existing code. There are a few incompatibilities and new error messages that should be considered, and code should be tested before switching PHP versions in production environments.

If the system is being upgraded from PHP 5.0.x, the manual section titled Upgrade Notes for PHP 5.1.x should also be read.

Similarly, if the system is being upgraded from PHP 4, the manual section titled Migrating from PHP 4 to PHP 5 should be read as well.

Migrating from PHP 5.1.x to PHP 5.2.x
Backward Incompatible Changes
Migrating from PHP 5.1.x to PHP 5.2.x


Backward Incompatible Changes

Although most existing PHP 5 code should work without changes, you should pay attention to the following backward incompatible changes:

  • getrusage() returns NULL when passed incompatible arguments as of PHP 5.2.1.
  • ZipArchive::setCommentName() returns TRUE on success as of PHP 5.2.1.
  • ZipArchive::setCommentIndex() returns TRUE on success as of PHP 5.2.1.
  • SplFileObject::getFilename() returns the filename, not relative/path/to/file, as of PHP 5.2.1.
  • Changed priority of PHPRC environment variable on Win32 The PHPRC environment variable now takes priority over the path stored in the Windows registry.
  • CLI SAPI no longer checks cwd for php.ini or the php-cli.ini file In PHP 5.1.x an undocumented feature was added that made the CLI binary check the current working directory for a PHP configuration file, potentially leading to unpredictable behavior if an unexpected configuration file were read. This functionality was removed in 5.2.0, and PHP will no longer search CWD for the presence of php.ini or php-cli.ini files. See also the command line section of the manual.
  • Added a warning when performing modulus 0 operations In earlier versions of PHP, performing integer % 0 did not emit any warning messages, instead returning an unexpected return value of FALSE. As of PHP 5.2.0, this operation will emit an E_WARNING, as is the case in all other instances where division by zero is performed.
    <?php
    print 10 % 0;
    /* Warning:  Division by zero in filename on line n */
    ?>
  • Changed __toString() to be called wherever applicable. The magic method __toString() will now be called in a string context, that is, anywhere an object is used as a string. The fallback of returning a string that contains the object identifier was dropped in PHP 5.2.0. It became problematic because an object identifier cannot be considered unique. This change will mean that your application is flawed if you have relied on the object identifier as a return value. An attempt to use that value as a string will now result in a catchable fatal error.
    <?php
    class foo {}
    $foo = new foo;
    print     $foo;
    /* Catchable fatal error:  Object of class foo could
       not be converted to string in filename on line n */
    ?>
    Even with __toString(), objects cannot be used as array indices or keys. We may add built-in hash support for this at a later date, but as of PHP 5.2.x you will need to either provide your own hashing or use the new SPL function spl_object_hash(). Exceptions can not be thrown from __toString() methods.
    <?php
    class foo {
        public function     __toString() {
            throw new     Exception;
        }
    }

    try {
        print new     foo;
            /* Fatal error:  Method foo::__toString() must
           not throw an exception in filename on line n */
    } catch(Exception $e) {}
    ?>
  • Dropped abstract static class functions. Due to an oversight, PHP 5.0.x and 5.1.x allowed abstract static functions in classes. As of PHP 5.2.x, only interfaces can have them.
    <?php
    abstract class foo {
        abstract static function     bar();
            /* Strict Standards:  Static function foo::bar()
           should not be abstract in filename on line n */
    }
    ?>
  • Oracle extension requires at least Oracle 10 on Windows.
  • Added RFC2397 (data: stream) support. The introduction of the 'data' URL scheme has the potential to lead to a change of behavior under Windows. If you are working with a NTFS file system and making use of meta streams in your application, and if you just happen to be using a file with the name 'data:' that is accessed without any path information - it won't work any more. The fix is to use the 'file:' protocol when accessing it. See also » RFC 2397
    <?php
    /* when allow_url_include is OFF (default) */
    include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
    /* Warning:  include(): URL file-access is disabled
       in the server configuration in filename on line n */
    ?>
  • Regression in glob() patterns In version 5.2.4 a security fix caused a regression for patterns of the form "/foo/*/bar/*". Since version 5.2.5 instead of raising a warning the glob() function will return FALSE when openbase_dir restrictions are violated.
What has changed in PHP 5.2.x
New Error Messages
Migrating from PHP 5.1.x to PHP 5.2.x


New Error Messages

Below are the new error messages that have not been discussed elsewhere in this document.

Example #1 In PHP Core

<?php
echo " ";
session_regenerate_id();
/*  Warning:  session_regenerate_id(): Cannot regenerate
    session id - headers already sent in filename on line n */

str_word_count("string", 4);
/* Warning:  str_word_count(): Invalid format value 4
   in filename on line n */

strripos("foo", "f", 4);
/* Notice:  strripos(): Offset is greater than the
   length of haystack string in filename on line n */

strrpos("foo", "f", 4);
/* Notice:  strrpos(): Offset is greater than the
   length of haystack string in filename on line n */

/* As of PHP 5.2.1, when allow_url_include is OFF (default) */
include "php://input";
/* Warning:  include(): URL file-access is disabled
   in the server configuration in filename on line n */
?>

Example #2 Object Oriented Code in PHP Core

<?php
interface foo {
}
class bar implements foo, foo {
}
/* Fatal error: Class bar cannot implement previously
   implemented interface foo in filename on line n */

class foo {
    public $bar;
    function __get($var)
    {
        return $this->bar;
    }
}

$foo = new foo;
$bar =& $foo->prop;
/* Notice: Indirect modification of overloaded property
   foo::$prop has no effect in filename on line n */

class foo implements iterator {
    public function current() {
    }
    public function next() {
    }
    public function key() {
    }
    public function valid() {
    }
    public function rewind() {
    }
}

$foo = new foo();
foreach($foo as &$ref) {}
/* Fatal error: An iterator cannot be used with foreach
   by reference in filename on line n */

class foo {
    private function __construct() {
    }
}
class bar extends foo {
    public function __construct() {
        parent::__construct();
        /* Fatal error:  Cannot call private
           foo::__construct() in filename on line n */
    }
}
new bar;

stream_filter_register("", "class");
/* Warning:  stream_filter_register(): Filter name
   cannot be empty in filename on line n */

stream_filter_register("filter", "");
/* Warning:  stream_filter_register(): Class name
   cannot be empty in filename on line n */
?>

Example #3 In the bzip2 Extension

<?php
bzopen("", "w");
/* Warning:  bzopen(): filename cannot be empty
   in filename on line n */

bzopen("foo", "a");
/* Warning:  bzopen(): 'a' is not a valid mode for
   bzopen(). Only 'w' and 'r' are supported in
   filename on line n */

$fp = fopen("foo", "w");
bzopen($fp, "r");
/* Warning:  bzopen(): cannot read from a stream
   opened in write only mode in filename on line n */
?>

Example #4 In the datetime Extension

<?php
strtotime("today", "now");
/* Warning:  strtotime() expects parameter 2 to be
   long, string given in filename on line n */

/* As of PHP 5.2.1 */
new DateTime(new stdclass);
/* Fatal error: Uncaught exception 'Exception' with
   message 'DateTime::__construct() expects parameter
   1 to be string, object given' in filename:n */
?>

Example #5 In the dBase Extension

<?php
dbase_open("foo", -1);
/* Warning: Invalid access mode -1 in filename on line n */

/* As of PHP 5.2.1 */
dbase_open("foo", null);
/* Warning: The filename cannot be empty in filename on line n */
?>

Example #6 In the mcrypt Extension

<?php
$key = "this is a secret key";
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
                        MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, "");
/* Warning: mcrypt_generic(): An empty string was
   passed in filename on line n */
?>

Example #7 In the oci8 Extension

<?php
oci_connect("user", "pass", "db", "bogus_charset");
/* Warning: Invalid character set name:
   bogus_charset in filename on line n */

$oci = oci_connect("user", "pass", "db");
oci_password_change($oci, "", "old", "new");
/* Warning: username cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "", "new");
/* Warning: old password cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "old", "");
/* Warning: new password cannot be empty in filename
   on line n */
?>

Example #8 In the SPL Extension

<?php
$obj = new SplFileObject(__FILE__);
$obj->fgetcsv("foo");
/* Warning:  SplFileObject::fgetcsv(): delimiter must
   be a character in filename on line n */

$obj->fgetcsv(",", "foo");
/* Warning:  SplFileObject::fgetcsv(): enclosure must
   be a character in filename on line n */
?>

Example #9 In the Semaphore (sysvmsg) extension

<?php
/* Warning:  maximum size of the message has to be
   greater then zero in filename on line n */
?>

Example #10 A 5.2.1+ Zip Example

<?php
$obj = new ZipArchive();
$obj->open('archive.zip');
$obj->setCommentName('', 'comment');
/* Notice:  ZipArchive::setCommentName(): Empty string
   as entry name in filename on line n */

/* As of PHP 5.2.1 */
$obj->getCommentName('');
/* Notice:  ZipArchive::getCommentName(): Empty string
   as entry name in filename on line n */
?>

Backward Incompatible Changes
Changes in PHP datetime support
Migrating from PHP 5.1.x to PHP 5.2.x


Changes in PHP datetime support

Since PHP 5.1.0, there has been an extension named date in the PHP core. This is the new implementation of PHP's datetime support. Although it will attempt to guess your system's timezone setting, you should set the timezone manually. You can do this in any of three ways:

  • in your php.ini using the date.timezone INI directive
  • on your system using the TZ environmental variable
  • from your script using the convenience function date_default_timezone_set()

All supported timezones are listed in the PHP Manual.

With the advent of PHP 5.2.x, there are object representations of the date and timezone, named DateTime and DateTimeZone respectively. The methods map to existing procedural date functions.

New Error Messages
New Parameters
Migrating from PHP 5.1.x to PHP 5.2.x


New Parameters

Some functions were given new, optional, parameters in PHP 5.2.x:

PHP Core:

  • htmlentities() - added double_encode in PHP 5.2.3.
  • htmlspecialchars() - added double_encode in PHP 5.2.3.
  • base64_decode() - added strict
  • setcookie() - added httponly
  • setrawcookie() - added httponly
  • session_set_cookie_params() - added httponly
  • memory_get_usage() - added real_usage
  • get_loaded_extensions() - added zend_extensions in PHP 5.2.4

curl:

  • curl_multi_info_read() - added msgs_in_queue

datetime

  • date() - added "u" (milliseconds) format character in PHP 5.2.2

imap:

  • imap_open() - added n_retries
  • imap_reopen() - added n_retries

mbstring:

  • mb_strrpos() - added offset
    Warning

    The offset parameter was put in the position the encoding parameter used to be. Backward compatibility has been provided by allowing encoding to be specified as the third parameter. Using this backward compatibility mode is not recommended because it will be removed in a future release of PHP.

ming:

  • swfmovie::streamMP3() - added skip in PHP 5.2.1

openssl:

  • openssl_verify() - added signature_algo

pgsql:

  • pg_escape_bytea() - added connection
  • pg_escape_string() - added connection

simplexml:

  • SimpleXMLElement::__construct() - added is_prefix
  • SimpleXMLElement::attributes() - added is_prefix
  • SimpleXMLElement::children() - added is_prefix
  • simplexml_load_file() - added is_prefix
  • simplexml_load_string() - added is_prefix

spl:

  • array iterator_to_array(Traversable it [, bool use_keys = true]) - added use_keys in PHP 5.2.1

xmlreader:

  • XMLReader::open() - added encoding and options
  • XMLReader::XML() - added encoding and options

XMLWriter:

  • XMLWriter::WriteElement() - the content became optional in PHP 5.2.3
  • XMLWriter::WriteElementNs() - the content became optional in PHP 5.2.3
Changes in PHP datetime support
New Functions
Migrating from PHP 5.1.x to PHP 5.2.x


New Functions

PHP 5.2.x introduced some new functions:

PHP Core:

  • array_fill_keys() - Create an array using the elements of the first parameter as keys, each initialized to val
  • error_get_last() - Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet
  • image_type_to_extension() - Get file extension for image-type returned by getimagesize(), exif_read_data(), exif_thumbnail(), exif_imagetype()
  • memory_get_peak_usage() - Returns the peak allocated by PHP memory
  • sys_get_temp_dir() - Returns directory path used for temporary files. (Added in 5.2.1)
  • timezone_abbreviations_list() - Returns associative array containing DST, offset and the timezone name
  • timezone_identifiers_list() - Returns numerically indexed array with all timezone identifiers
  • timezone_name_from_abbr() - Returns the timezone name from abbreviation
  • stream_socket_shutdown() - Causes all or part of a full-duplex connection on the socket associated with stream to be shut down. As of PHP 5.2.1.

Image:

  • imagegrabscreen() - Grabs a screenshot of the whole screen. As of PHP 5.2.2.
  • imagegrabwindow() - Captures a window. As of PHP 5.2.2.

mbstring:

  • mb_stripos() - Finds position of first occurrence of a string within another, case insensitive
  • mb_stristr() - Finds first occurrence of a string within another, case insensitive
  • mb_strrchr() - Finds the last occurrence of a character in a string within another
  • mb_strrichr() - Finds the last occurrence of a character in a string within another, case insensitive
  • mb_strripos() - Finds position of last occurrence of a string within another, case insensitive
  • mb_strstr() - Finds first occurrence of a string within another

ming (As of PHP 5.2.1):

  • void ming_setSWFCompression(int num) - Sets output compression
  • void swfmovie::namedanchor(string name) - Creates anchor
  • void swfmovie::protect([string password]) - Protects

openssl:

  • openssl_csr_get_public_key() - Extracts public key from a CERT and prepares it for use
  • openssl_csr_get_subject() - Returns the subject of a CERT
  • openssl_pkey_get_details() - Returns an array with the key details (bits, pkey, type)

spl:

  • spl_object_hash() - Return hash id for given object
  • int iterator_apply(Traversable it, mixed function [, mixed params]) - Calls a function for every element in an iterator

pcre:

  • preg_last_error() - Returns the error code of the last regex execution

pgsql:

  • pg_field_table() - Returns the name of the table field belongs to, or table's oid if oid_only is TRUE

posix:

  • posix_initgroups() - Calculate the group access list for the user specified in name

gmp:

  • gmp_nextprime() - Finds next prime number

xmlwriter:

  • xmlwriter_full_end_element() - End current element - returns FALSE on error
  • xmlwriter_write_raw() - Write text - returns FALSE on error
  • xmlwriter_start_dtd_entity() - Create start DTD Entity - returns FALSE on error
  • xmlwriter_end_dtd_entity() - End current DTD Entity - returns FALSE on error
  • xmlwriter_write_dtd_entity() - Write full DTD Entity tag - returns FALSE on error
New Parameters
New Methods
Migrating from PHP 5.1.x to PHP 5.2.x


New Methods

New methods were introduced in 5.2.0:

dom:

  • DOMDocument::registerNodeClass() - Register extended class used to create base node type
  • DOMElement::setIDAttribute() - Declares the attribute specified by name to be of type ID
  • DOMElement::setIDAttributeNode() - Declares the attribute specified by node to be of type ID
  • DOMElement::setIDAttributeNS() - Declares the attribute specified by local name and namespace URI to be of type ID
  • DOMNode::C14N([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Canonicalize nodes to a string
  • DOMNode::C14NFile(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Canonicalize nodes to a file
  • DOMNode::getNodePath() - Gets an xpath for a node

soap:

  • SoapServer::setObject(object obj) - Sets object which will handle SOAP requests

spl:

  • int ArrayObject::asort(void) - Sort the entries by values
  • int ArrayObject::ksort(void) - Sort the entries by key
  • int ArrayObject::natcasesort(void) - Sort the entries by key using case insensitive "natural order" algorithm.
  • int ArrayObject::natsort(void) - Sort the entries by values using "natural order" algorithm.
  • int ArrayObject::uasort(callback cmp_function) - Sort the entries by values using a user defined function
  • int ArrayObject::uksort(callback cmp_function) - Sort the entries by key using a user defined function.
  • ArrayIterator AppendIterator::getArrayIterator() - Get access to inner ArrayIterator
  • int AppendIterator::getIteratorIndex() - Get index of iterator
  • bool CachingIterator::getCache() - Return the cache
  • int CachingIterator::getFlags() - Return the internal flags
  • bool CachingIterator::offsetExists(mixed index) - Returns TRUE if the requested index exists
  • string CachingIterator::offsetGet(mixed index) - Return the internal cache if used
  • void CachingIterator::offsetSet(mixed index, mixed newval) - Set given index in cache
  • void CachingIterator::offsetUnset(mixed index) - Unset given index in cache
  • void CachingIterator::setFlags() - Set the internal flags
  • array("delimiter" =>, "enclosure" =>) SplFileObject::getCsvControl(void) - Get the delimiter and enclosure character used in fgetcsv()
  • void SplFileObject::setCsvControl([string delimiter = ',' [, string enclosure = '"']]) - Set the delimiter and enclosure character used in fgetcsv()

Tidy

  • tidyNode tidyNode::getParent(void) - Returns the parent node of the current node (Added in PHP 5.2.2)

XMLReader

  • boolean XMLReader::setSchema() - Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first XMLReader::read()

zip:

  • ZipArchive::addEmptyDir() - Creates an empty directory in the archive
New Functions
Removed Extensions
Migrating from PHP 5.1.x to PHP 5.2.x


Removed Extensions

These extensions have been moved to PECL and are no longer part of the PHP distribution. The PECL package version of these extensions will be created according to user demand.

  • filePro
  • Hyperwave API
New Methods
New Extensions
Migrating from PHP 5.1.x to PHP 5.2.x


New Extensions

The following are new extensions added (by default) as of PHP 5.2.0:

  • Filter - validates and filters data, and is designed for use with insecure data such as user input. This extension is enabled by default; the default mode RAW does not impact input data in any way.
  • JSON - implements the JavaScript Object Notation (JSON) data interchange format. This extension is enabled by default.
  • Zip - enables you to transparently read or write ZIP compressed archives and the files inside them.
Removed Extensions
New Classes
Migrating from PHP 5.1.x to PHP 5.2.x


New Classes

The following classes were introduced in PHP 5.2.0:

  • DateTime
  • DateTimeZone
  • RegexIterator - extends FilterIterator; implements Iterator, Traversable, OuterIterator Constants:
    • RegexIterator::ALL_MATCHES
    • RegexIterator::GET_MATCH
    • RegexIterator::MATCH
    • RegexIterator::REPLACE
    • RegexIterator::SPLIT
    • RegexIterator::USE_KEY
    Properties:
    • public replacement
    Methods:
    • RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Create an RegexIterator from another iterator and a regular expression
    • bool RegexIterator::accept() - Match (string)current() against regular expression
    • bool RegexIterator::getFlags() - Returns current operation flags
    • bool RegexIterator::getMode() - Returns current operation mode
    • bool RegexIterator::getPregFlags() - Returns current PREG flags (if in use or NULL)
    • bool RegexIterator::setFlags(int new_flags) - Set operation flags
    • bool RegexIterator::setMode(int new_mode) - Set new operation mode
    • bool RegexIterator::setPregFlags(int new_flags) - Set PREG flags
  • RecursiveRegexIterator Constants:
    • RecursiveRegexIterator::ALL_MATCHES
    • RecursiveRegexIterator::GET_MATCH
    • RecursiveRegexIterator::MATCH
    • RecursiveRegexIterator::REPLACE
    • RecursiveRegexIterator::SPLIT
    • RecursiveRegexIterator::USE_KEY
    Methods:
    • RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Create an RecursiveRegexIterator from another recursive iterator and a regular expression
    • RecursiveRegexIterator RecursiveRegexIterator::getChildren() - Return the inner iterator's children contained in a RecursiveRegexIterator
    • bool RecursiveRegexIterator::hasChildren() - Check whether the inner iterator's current element has children
New Extensions
New Global Constants
Migrating from PHP 5.1.x to PHP 5.2.x


New Global Constants

PHP Core:

  • M_EULER
  • M_LNPI
  • M_SQRT3
  • M_SQRTPI
  • PATHINFO_FILENAME
  • PREG_BACKTRACK_LIMIT_ERROR
  • PREG_BAD_UTF8_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_NO_ERROR
  • PREG_RECURSION_LIMIT_ERROR
  • UPLOAD_ERR_EXTENSION
  • STREAM_SHUT_RD
  • STREAM_SHUT_WR
  • STREAM_SHUT_RDWR

curl:

  • CURLE_FILESIZE_EXCEEDED
  • CURLE_FTP_SSL_FAILED
  • CURLE_LDAP_INVALID_URL
  • CURLFTPAUTH_DEFAULT
  • CURLFTPAUTH_SSL
  • CURLFTPAUTH_TLS
  • CURLFTPSSL_ALL
  • CURLFTPSSL_CONTROL
  • CURLFTPSSL_NONE
  • CURLFTPSSL_TRY
  • CURLOPT_FTP_SSL
  • CURLOPT_FTPSSLAUTH
  • CURLOPT_TCP_NODELAY Added in PHP 5.2.1.
  • CURLOPT_TIMEOUT_MS Added in PHP 5.2.3
  • CURLOPT_CONNECTTIMEOUT_MS Added in PHP 5.2.3

GMP:

  • GMP_VERSION Added in PHP 5.2.2.

ming:

  • SWFTEXTFIELD_USEFONT
  • SWFTEXTFIELD_AUTOSIZE
  • SWF_SOUND_NOT_COMPRESSED
  • SWF_SOUND_ADPCM_COMPRESSED
  • SWF_SOUND_MP3_COMPRESSED
  • SWF_SOUND_NOT_COMPRESSED_LE
  • SWF_SOUND_NELLY_COMPRESSED
  • SWF_SOUND_5KHZ
  • SWF_SOUND_11KHZ
  • SWF_SOUND_22KHZ
  • SWF_SOUND_44KHZ
  • SWF_SOUND_8BITS
  • SWF_SOUND_16BITS
  • SWF_SOUND_MONO
  • SWF_SOUND_STEREO

openssl:

  • OPENSSL_VERSION_NUMBER
  • OPENSSL_VERSION_TEXT

snmp:

  • SNMP_OID_OUTPUT_FULL
  • SNMP_OID_OUTPUT_NUMERIC

Semaphore:

  • MSG_EAGAIN
  • MSG_ENOMSG
New Classes
New Class Constants
Migrating from PHP 5.1.x to PHP 5.2.x


New Class Constants

pdo:

  • PDO::ATTR_DEFAULT_FETCH_MODE
  • PDO::FETCH_PROPS_LATE
  • PDO::FETCH_KEY_PAIR Fetches a 2 column result set into an associated array. (Added in PHP 5.2.3)

spl:

  • CachingIterator::FULL_CACHE
  • CachingIterator::TOSTRING_USE_INNER
  • SplFileObject::READ_AHEAD
  • SplFileObject::READ_CSV
  • SplFileObject::SKIP_EMPTY
New Global Constants
New INI Configuration Directives
Migrating from PHP 5.1.x to PHP 5.2.x


New INI Configuration Directives

New php.ini directives introduced in PHP 5.2.0:

  • allow_url_include This useful option makes it possible to differentiate between standard file operations on remote files, and the inclusion of remote files. While the former is usually desirable, the latter can be a security risk if used naively. Starting with PHP 5.2.0, you can allow remote file operations while disallowing the inclusion of remote files in local scripts. In fact, this is the default configuration.
  • pcre.backtrack_limit PCRE's backtracking limit.
  • pcre.recursion_limit PCRE's recursion limit. Please note that if you set this value to a high number you may consume all the available process stack and eventually crash PHP (due to reaching the stack size limit imposed by the Operating System).
  • session.cookie_httponly Marks the cookie as accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. This setting can effectively help to reduce identity theft through XSS attacks (although it is not supported by all browsers).

New directives in PHP 5.2.2:

  • max_input_nesting_level Limits how deep input variables can be nested, default is 64.
New Class Constants
Error Reporting
Migrating from PHP 5.1.x to PHP 5.2.x


Error Reporting

Some of the existing E_ERROR conditions have been converted to something that can be caught with a user-defined error handler. If an E_RECOVERABLE_ERROR is not handled, it will behave in the same way as E_ERROR behaves in all versions of PHP. Errors of this type are logged as Catchable fatal error.

This change means that the value of the E_ALL error_reporting constant is now 6143, where the previous value was 2047. Because PHP constants have no meaning outside of PHP, in some cases the integer value is used instead so these will need to be adjusted. So for example by setting the error_reporting mode from either the httpd.conf or the .htaccess files, the value has to be changed accordingly. The same applies when the numeric values are used rather than the constants in PHP scripts.

As a side-effect of a change made to prevent duplicate error messages when track_errors is On, it is now necessary to return FALSE from user defined error handlers in order to populate $php_errormsg. This provides a fine-grain control over the levels of messages stored.

New INI Configuration Directives
Other Enhancements
Migrating from PHP 5.1.x to PHP 5.2.x


Other Enhancements

  • Improved memory manager and increased default memory limit. The new memory manager allocates less memory and works faster than the previous incarnation. It allocates memory from the system in large blocks, and then manages the heap by itself. The memory_limit value in php.ini is checked, not for each emalloc() call (as before), but for actual blocks requested from the system. This means that memory_limit is far more accurate than it used to be, since the old memory manager didn't calculate all the memory overhead used by the malloc library. Thanks to this new-found accuracy memory usage may appear to have increased, although actually it has not. To accommodate this apparent increase, the default memory_limit setting was also increased - from 8 to 16 megabytes.
  • Added support for constructors in interfaces to force constructor signature checks in implementations. Starting with PHP 5.2.0, interfaces can have constructors. However, if you choose to declare a constructor in an interface, each class implementing that interface MUST include a constructor with a signature matching that of the base interface constructor. By 'signature' we mean the parameter and return type definitions, including any type hints and including whether the data is passed by reference or by value.
Error Reporting
Migrating from PHP 5.0.x to PHP 5.1.x
Migrating from PHP 5.1.x to PHP 5.2.x


Migrating from PHP 5.0.x to PHP 5.1.x

Table of Contents

  • Key PHP 5.1.x features
  • Changes in reference handling
  • Reading []
  • Integer values in function parameters
  • Class and object changes
  • Extensions
  • Date/time support
  • Changes in database support
  • Checking for E_STRICT

See also the migration guides for PHP versions 5.0.x and 5.2.x.

Other Enhancements
Key PHP 5.1.x features
附录


Key PHP 5.1.x features

Some of the key features of PHP 5.1.x include:

  • A complete rewrite of date handling code, with improved timezone support.

  • Significant performance improvements compared to PHP 5.0.X.

  • PDO extension is now enabled by default.

  • Over 30 new functions in various extensions and built-in functionality.

  • Over 400 various bug fixes.

Migrating from PHP 5.0.x to PHP 5.1.x
Changes in reference handling
Migrating from PHP 5.0.x to PHP 5.1.x


Changes in reference handling

  • Overview

  • Code that worked under PHP 4.3.x, but now fails

  • Code that worked under PHP 4.3.x, but now throws an error

  • Code that failed under PHP 4.3.x, but now works

  • Code that should have worked under PHP 5.0.x

  • Warnings that came and went

Overview

From the PHP script writer's point of view, the change most likely to impact legacy code is in the way that references are handled in all PHP versions post-dating the PHP 4.4.0 release.

Until and including PHP 4.3, it was possible to send, assign or return variables by reference that should really be returned by value, such as a constant, a temporary value (e.g. the result of an expression), or the result of a function that had itself been returned by value, as here:

<?php
$foo = "123";

function return_value() {
    global $foo;
    return $foo;
}

$bar = &return_value();
?>

Although this code would usually work as expected under PHP 4.3, in the general case the result is undefined. The Zend Engine could not act correctly on these values as references. This bug could and did lead to various hard-to-reproduce memory corruption problems, particularly where the code base was large.

In PHP 4.4.0, PHP 5.0.4 and all subsequent PHP releases, the Engine was fixed to 'know' when the reference operation is being used on a value that should not be referenced. The actual value is now used in such cases, and a warning is emitted. The warning takes the form of an E_NOTICE in PHP 4.4.0 and up, and E_STRICT in PHP 5.0.4 and up.

Code that could potentially produce memory corruption can no longer do so. However, some legacy code might work differently as a result.

Code that worked under PHP 4.3, but now fails

<?php
function func(&$arraykey) {
    return $arraykey; // function returns by value!
}

$array = array('a', 'b', 'c');
foreach (array_keys($array) as $key) {
    $y = &func($array[$key]);
    $z[] =& $y;
}

var_dump($z);
?>
<

Running the above script under any version of PHP that pre-dates the reference fix would produce this output:

array(3) {
  [0]=>
  &string(1) "a"
  [1]=>
  &string(1) "b"
  [2]=>
  &string(1) "c"
}

Following the reference fix, the same code would result in:

array(3) {
  [0]=>
  &string(1) "c"
  [1]=>
  &string(1) "c"
  [2]=>
  &string(1) "c"
}

This is because, following the changes, func() assigns by value. The value of $y is re-assigned, and reference-binding is preserved from $z. Prior to the fix, the value was assigned by reference, leading $y to be re-bound on each assignment. The attempt to bind to a temporary value by reference was the cause of the memory corruption.

Such code can be made to work identically in both the pre-fix and the post-fix PHP versions. The signature of func() can be altered to return by reference, or the reference assignment can be removed from the result of func().

<?php
function func() {
    return 'function return';
}

$x = 'original value';
$y =& $x;
$y = &func();
echo $x;
?>

In PHP 4.3 $x would be 'original value', whereas after the changes it would be 'function return' - remember that where the function does not return by reference, the reference assignment is converted to a regular assignment. Again, this can be brought to a common base, either by forcing func() to return by reference or by eliminating the by-reference assignment.

Code that worked under PHP 4.3.x, but now throws an error

<?php
class Foo {

    function getThis() {
        return $this;
    }

    function destroyThis() {
        $baz =& $this->getThis();
    }
}

$bar = new Foo();
$bar->destroyThis();
var_dump($bar);
?>

In PHP 5.0.3, $bar evaluated to NULL instead of returning an object. That happened because getThis() returns by value, but the value here is assigned by reference. Although it now works in the expected way, this is actually invalid code which will throw an E_NOTICE under PHP 4.4 or an E_STRICT under PHP 5.0.4 and up.

Code that failed under PHP 4.3.x, but now works

<?php
function &f() {
    $x = "foo";
    var_dump($x);
    print "$x\n";
    return($a);
}

for ($i = 0; $i < 3; $i++) {
    $h = &f();
}
?>

In PHP 4.3 the third call to var_dump() produces NULL, due to the memory corruption caused by returning an uninitialized value by reference. This is valid code in PHP 5.0.4 and up, but threw errors in earlier releases of PHP.

<?php
$arr = array('a1' => array('alfa' => 'ok'));
$arr =& $arr['a1'];
echo '-'.$arr['alfa']."-\n";
?>

Until PHP 5.0.5, it wasn't possible to assign an array element by reference in this way. It now is.

Code that should have worked under PHP 5.0.x

There are a couple of instances of bugs reported under PHP 5.0 prior to the reference fixes which now 'work'. However, in both cases errors are thrown by PHP 5.1.x, because the code was invalid in the first place. Returning values by reference using self:: now works in the general case but throws an E_STRICT warning, and although your mileage may vary when assigning by reference to an overloaded object, you will still see an E_ERROR when you try it, even where the assignment itself appears to work.

Warnings that came and went

Nested calls to functions returning by reference are valid code under both PHP 4.3.x and PHP 5.1.x, but threw an unwarranted E_NOTICE or E_STRICT under the intervening PHP releases.

<?php
function & foo() {
    $var = 'ok';
    return $var;
}

function & bar() {
    return foo();
}

$a =& bar();
echo "$a\n";
?>
Key PHP 5.1.x features
Reading []
Migrating from PHP 5.0.x to PHP 5.1.x


Reading []

<?php
class XmlTest {

    function test_ref(&$test) {
        $test = "ok";
    }

    function test($test) { }

    function run() {
        $ar = array();
        $this->test_ref($ar[]);
        var_dump($ar);
        $this->test($ar[]);
    }
}

$o = new XmlTest();
$o->run();
?>

This should always have thrown a fatal E_ERROR, because [] cannot be used for reading in PHP. It is invalid code in PHP 4.4.2 and PHP 5.0.5 upward.

Changes in reference handling
Integer values in function parameters
Migrating from PHP 5.0.x to PHP 5.1.x


Integer values in function parameters

With the advent of PHP 5.0.x, a new parameter parsing API was introduced which is used by a large number of PHP functions. In all versions of PHP between 5.0.x and 5.1.x, the handling of integer values was very strict and would reject non-well formed numeric values when a PHP function expected an integer. These checks have now been relaxed to support non-well formed numeric strings such as " 123" and "123 ", and will no longer fail as they did under PHP 5.0.x. However, to promote code safety and input validation, PHP functions will now emit an E_NOTICE when such strings are passed as integers.

Reading []
Class and object changes
Migrating from PHP 5.0.x to PHP 5.1.x


Class and object changes

  • instanceof, is_a(), is_subclass_of() and catch

  • Abstract private methods

  • Access modifiers in interfaces

  • Changes in inheritance rules

  • Class constants

instanceof, is_a(), is_subclass_of() and catch

In PHP 5.0, is_a() was deprecated and replaced by the instanceof operator. There were some issues with the initial implementation of instanceof, which relied on __autoload() to search for missing classes. If the class was not present, instanceof would throw a fatal E_ERROR due to the failure of __autoload() to discover that class. The same behaviour occurred in the catch operator and the is_subclass_of() function, for the same reason.

None of these functions or operators call __autoload() in PHP 5.1.x, and the class_exists() workarounds used in code written for PHP 5.0.x, while not problematic in any way, are no longer necessary.

Abstract private methods

Abstract private methods were supported between PHP 5.0.0 and PHP 5.0.4, but were then disallowed on the grounds that the behaviours of private and abstract are mutually exclusive.

Access modifiers in interfaces

Under PHP 5.0, function declarations in interfaces were treated in exactly the same way as function declarations in classes. This has not been the case since October 2004, at which point only the public access modifier was allowed in interface function declarations. Since April 2005 - which pre-dates the PHP 5.0b1 release - the static modifier has also been allowed. However, the protected and private modifiers will now throw an E_ERROR, as will abstract. Note that this change should not affect your existing code, as none of these modifiers makes sense in the context of interfaces anyway.

Changes in inheritance rules

Under PHP 5.0, it was possible to have a function declaration in a derived class that did not match the declaration of the same function in the base class, e.g.

This code will cause an E_STRICT error to be emitted under PHP 5.1.x.

<?php
class Base {
    function &return_by_ref() {
        $r = 1;
        return $r;
    }
}

class Derived extends Base {
    function return_by_ref() {
        return 1;
    }
}
?>

Class constants

Under PHP 5.0.x, the following code was valid:

Under PHP 5.1.x, redefinition of a class constant will throw a fatal E_ERROR.

<?php
class test {
    const foobar = 'foo';
    const foobar = 'bar';
}

?>
Integer values in function parameters
Extensions
Migrating from PHP 5.0.x to PHP 5.1.x


Extensions

  • Extensions that are gone from the PHP core

  • Class constants in new PHP 5.1.x extensions

Extensions that are gone from the PHP core

One of the first things you're likely to notice when you download PHP 5.1.x is that several of the older extensions have disappeared. Those extensions that are still actively maintained are available in the PHP Extension Community Library (PECL), at » http://pecl.php.net/. Windows binaries are built regularly, and you can obtain the binaries for PECL extensions built against PHP 5.1.x from » http://pecl4win.php.net/.

Removed extensions
Extension | Alternative/Status
ext/cpdf | pecl/pdflib
ext/dbx | pecl/dbx
ext/dio | pecl/dio
ext/fam | Not actively maintained
ext/ingres_ii | pecl/ingres
ext/ircg | Not actively maintained
ext/mcve | pecl/mcve
ext/mnogosearch | Not actively maintained
ext/oracle | ext/oci8 or ext/pdo_oci
ext/ovrimos | Not actively maintained
ext/pfpro | Not actively maintained
ext/w32api | » pecl/ffi
ext/yp | Not actively maintained
ext/activescript | » pecl/activescript

Modules in PECL that are not actively maintained (i.e. have not been supported for some time, have no active maintainer working on them currently, and do not have any PECL package releases), are still available in CVS at » http://cvs.php.net/pecl. However, unreleased PHP modules are by their nature unsupported, and your mileage may vary when attempting to install or use them.

Class constants in new PHP 5.1.x extensions

The Zend Engine 2.1 API allows extension developers to declare class constants in object oriented extensions. New extensions written for PHP 5.1.x, including SPL, PDO, XMLReader and date, have their constants in the format PDO::CLASS_CONSTANT rather than in the C format PDO_CLASS_CONSTANT in order to minimise pollution of the global namespace in PHP.

Class and object changes
Date/time support
Migrating from PHP 5.0.x to PHP 5.1.x


Date/time support

Date/time support has been fully rewritten in PHP 5.1.x, and no longer uses the system settings to 'know' the timezone in operation. It will instead utilize, in the following order:

  • The timezone set using the date_default_timezone_set() function (if any)

  • The TZ environment variable (if non empty)

  • "magical" guess (if the operating system supports it)

  • If none of the above options succeeds, UTC

To ensure accuracy (and avoid an E_STRICT warning), you will need to define your timezone in your php.ini using the following format:

date.timezone = Europe/London

The supported timezones are listed, in this format, in the timezones appendix.

Also note that strtotime() now returns FALSE on failure, instead of -1.

Extensions
Changes in database support
Migrating from PHP 5.0.x to PHP 5.1.x


Changes in database support

  • PDO overview

  • Changes in MySQL support

  • Changes in SQLite support

PDO overview

PHP Data Objects (PDO) were introduced as a PECL extension under PHP 5.0, and became part of the core PHP distribution in PHP 5.1.x. The PDO extension provides a consistent interface for database access, and is used alongside database-specific PDO drivers. Each driver may also have database-specific functions of its own, but basic data access functionality such as issuing queries and fetching data is covered by PDO functions, using the driver named in PDO::__construct().

Note that the PDO extension, and its drivers, are intended to be built as shared extensions. This will enable straightforward driver upgrades from PECL, without forcing you to rebuild all of PHP.

At the point of the PHP 5.1.x release, PDO is more than ready for widespread testing and could be adopted in most situations. However, it is important to understand that PDO and its drivers are comparatively young and may be missing certain database-specific features; evaluate PDO carefully before you use it in new projects.

Legacy code will generally rely on the pre-existing database extensions, which are still maintained.

Changes in MySQL support

In PHP 4, MySQL 3 support was built-in. With the release of PHP 5.0 there were two MySQL extensions, named 'mysql' and 'mysqli', which were designed to support MySQL < 4.1 and MySQL 4.1 and up, respectively. With the introduction of PDO, which provides a very fast interface to all the database APIs supported by PHP, the PDO_MYSQL driver can support any of the current versions (MySQL 3, 4 or 5) in PHP code written for PDO, depending on the MySQL library version used during compilation. The older MySQL extensions remain in place for reasons of back compatibility, but are not enabled by default.

Changes in SQLite support

In PHP 5.0.x, SQLite 2 support was provided by the built-in sqlite extension, which was also available as a PECL extension in PHP 4.3 and PHP 4.4. With the introduction of PDO, the sqlite extension doubles up to act as a 'sqlite2' driver for PDO; it is due to this that the sqlite extension in PHP 5.1.x has a dependency upon the PDO extension.

PHP 5.1.x ships with a number of alternative interfaces to sqlite:

The sqlite extension provides the "classic" sqlite procedural/OO API that you may have used in prior versions of PHP. It also provides the PDO 'sqlite2' driver, which allows you to access legacy SQLite 2 databases using the PDO API.

PDO_SQLITE provides the 'sqlite' version 3 driver. SQLite version 3 is vastly superior to SQLite version 2, but the file formats of the two versions are not compatible.

If your SQLite-based project is already written and working against earlier PHP versions, then you can continue to use ext/sqlite without problems, but will need to explicitly enable both PDO and sqlite. New projects should use PDO and the 'sqlite' (version 3) driver, as this is faster than SQLite 2, has improved locking concurrency, and supports both prepared statements and binary columns natively.

You must enable PDO to use the SQLite extension. If you want to build the PDO extension as a shared extension, then the SQLite extension must also be built shared. The same holds true for any extension that provides a PDO driver

Date/time support
Checking for E_STRICT
Migrating from PHP 5.0.x to PHP 5.1.x


Checking for E_STRICT

If you only have a single script to check, you can pick up E_STRICT errors using PHP's commandline lint facility:

php -d error_reporting=4095 -l script_to_check.php

For larger projects, the shell script below will achieve the same task:

#!/bin/sh

directory=$1

shift

# These extensions are checked
extensions="php inc"

check_file ()
{
  echo -ne "Doing PHP syntax check on $1 ..."

  # Options:
  ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"`

  if test -z "$ERRORS"; then
    echo -ne "OK."
  else
    echo -e "Errors found!\n$ERRORS"
  fi

  echo
}

# loop over remaining file args
for FILE in "$@" ; do
  for ext in $extensions; do
     if echo $FILE | grep "\.$ext$" > /dev/null; then
       if test -f $FILE; then
         check_file "$FILE"
       fi
     fi
  done
done
Changes in database support
从 PHP 4 移植到 PHP 5
Migrating from PHP 5.0.x to PHP 5.1.x


从 PHP 4 移植到 PHP 5

Table of Contents

  • PHP 5 中有哪些改变
  • 未向下兼容的改变
  • CLI 和 CGI
  • 移植配置文件
  • 新函数
  • 新指令
  • 数据库
  • 新对象模型
  • 错误报告
Checking for E_STRICT
PHP 5 中有哪些改变
附录


PHP 5 中有哪些改变

PHP 5 和集成的 Zend Engine 2 代极大提高了 PHP 的性能和能力，而且投入极大努力尽可能避免破坏已有的代码的使用。因此将代码从 PHP 4 移植到 PHP 5 应该很容易。大多数已有的 PHP 4 代码应该不用改就能运行，但还是应该注意到几点区别并在实际运作环境下转换到新版本之前多做测试。

从 PHP 4 移植到 PHP 5
未向下兼容的改变
从 PHP 4 移植到 PHP 5


未向下兼容的改变

尽管大部分 PHP 4 的代码应该不用修改就能运行，还是应该留意以下不向下兼容的改变：

  • 有了一些新关键字。
  • strrpos() 和 strripos() 如今使用整个字符串作为 needle。
  • 非法使用字符串偏移量会导致 E_ERROR 而不是 E_WARNING。一个非法使用的例子：$str = 'abc'; unset($str[0]);.
  • array_merge() 被改成只接受数组。如果传递入非数组变量，对每个此类参数都会发出一条 E_WARNING 信息。要小心因为你的代码有可能疯狂发出 E_WARNING。
  • PATH_TRANSLATED 服务器变量在 Apache2 SAPI 中不再暗中设定，这和 PHP 4 中的情形相反，如果 Apache 没产生此值则其被设为和 SCRIPT_FILENAME 服务器变量一样的值。此修改是为了遵守 » CGI 规范。更多信息见 » bug #23610，并参考手册中 $_SERVER['PATH_TRANSLATED'] 的说明。此问题也影响到 PHP >= 4.3.2 的版本。
  • Tokenizer 扩展不再定义 T_ML_COMMENT 常量。如果把 error_reporting 设为 E_ALL，PHP 将产生一条消息。尽管 T_ML_COMMENT 从来都没用到过，还是在 PHP 4 中定义了。在 PHP 4 和 PHP 5 中 // 和 /* */ 都被解析为 T_COMMENT 常量。但是 PHPDoc 风格的注释 /** */，自 PHP 5 开始被 PHP 解析，被识别为 T_DOC_COMMENT。
  • 如果 variables_order 包括“S”，$_SERVER 应该带有 argc 和 argv 被产生。如果用户特别配制系统不创建 $_SERVER，那此变量当然就不存在了。改变的地方是不管 variables_order 怎么设定，在 CLI 版本中 argc 和 argv 总是可用的。本来 CLI 版不是总会产生全局变量 $argc 和 $argv 的。
  • 没有属性的对象不再被当成“empty”。
  • 有些情况下类必须在使用前被定义。这仅在使用了一些 PHP 5 的新特性（例如 interfaces）的时候发生。其它情况下行为都没变。
  • get_class()，get_parent_class() 和 get_class_methods() 如今返回的类／方法名和定义时的名字一致（区分大小写），对于依赖以前行为（类／方法名总是返回小写的）的老脚本可能产生问题。一个可能的解决方法是在脚本中搜索所有这些函数并使用 strtolower()。 区分大小写的改变也适用于魔术常量 __CLASS__，__METHOD__ 和 __FUNCTION__。其值都会严格按照定义时的名字返回（区分大小写）。
  • ip2long() 在传递入一个非法 IP 作为参数时返回 FALSE，不再是 -1。
  • 如果有函数定义在包含文件中，则这些函数可以在主文件中使用而与是否在 return() 指令之前还是之后无关。如果文件被包含两次，PHP 5 会发出致命错误，因为函数已经被定义，而 PHP 4 不管这个。因此推荐使用 include_once() 而不要去检查文件是否已被包含以及在包含文件中有条件返回。
  • include_once() 和 require_once() 在 Windows 下先将路径规格化，因此包含 A.php 和 a.php 只会把文件包含一次。

Example #1 strrpos() 和 strripos() 如今用整个字符串作为 needle

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Example #2 没有属性的对象不再被当成“empty”

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Will be executed
}
?>

Example #3 有些情况下类必须在使用之前定义

<?php

//works with no errors:
$a = new a();
class a {
}

//throws an error:
$a = new b();

interface c{
}
class b implements c {
}

?>

PHP 5 中有哪些改变
CLI 和 CGI
从 PHP 4 移植到 PHP 5


CLI 和 CGI

PHP 5 中对 CLI 和 CGI 文件名作了些改变。PHP 5 中，CGI 版本被改名为 php-cgi.exe（以前是 php.exe），现在主目录中的是 CLI 版本（之前是 cli/php.exe）。

PHP 5 中引进了一种新模式：php-win.exe。这和 CLI 版本相同，只除了 php-win 不输出任何内容，因此不会提供控制台（屏幕上不会闪过“dos 窗口”）。此行为类似 php-gtk。

PHP 5 中，CLI 版本总会产生全局变量 $argv 和 $argc 而不管 php.ini 是怎么设的。即使将 register_argc_argv 设为 off 也不影响 CLI。

参见命令行模式。

未向下兼容的改变
移植配置文件
从 PHP 4 移植到 PHP 5


移植配置文件

由于 ISAPI 模块的名字改了，从 php4xxx 改为 php5xxx，因此需要对配置文件作些修改。CLI 和 CGI 文件名也改了。更多信息请查看相应章节。

移植 Apache 配置极其简单。照下面的例子来检查需要做的修改：

Example #1 移植 Apache 配置文件到 PHP 5

# 将下面这行：
LoadModule php4_module /php/sapi/php4apache2.dll

# 改成这一行：
LoadModule php5_module /php/php5apache2.dll

如果 web 服务器是以 CGI 模式运行 PHP 的，应该注意 CGI 版本的名字从 php.exe 改为了 php-cgi.exe。在 Apache 中，应该照这样改：

Example #2 移植 Apache 配置文件到 PHP 5，CGI 模式

# 将下面这行：
Action application/x-httpd-php "/php/php.exe"

# 改成这一行：
Action application/x-httpd-php "/php/php-cgi.exe"

其它的 web 服务器中，需要修改 CGI 或者 ISAPI 模块的名字。

CLI 和 CGI
新函数
从 PHP 4 移植到 PHP 5


新函数

PHP 5 有了些新函数。下面是列表：

Arrays:

  • array_combine() - 用一个数组作为键名，另一个数组作为值创建一个新数组
  • array_diff_uassoc() - 计算数组的差别，并用用户提供的回调函数作附加的索引检查
  • array_udiff() - 用回调函数比较数据来计算数组的差别
  • array_udiff_assoc() - 计算数组的差别并作附加的索引检查。用回调函数来比较数据
  • array_udiff_uassoc() - 计算数组的差别并作附加的索引检查。数据的比较和索引检查都用回调函数来完成
  • array_walk_recursive() - 对数组的每个成员递归使用用户函数
  • array_uintersect_assoc() - 计算数组的交集并作附加的索引检查。用回调函数来比较数据
  • array_uintersect_uassoc() - 计算数组的交集并作附加的索引检查。数据和索引都用回调函数来比较
  • array_uintersect() - 计算数组的交集。用回调函数来比较数据

InterBase:

  • ibase_affected_rows() - 返回前一个查询影响到的行的数目
  • ibase_backup() - 在服务管理器中发起一个后台任务并立即返回
  • ibase_commit_ret() - 提交一个事务但不关闭
  • ibase_db_info() - 请求有关数据库的统计信息
  • ibase_drop_db() - 删除一个数据库
  • ibase_errcode() - 返回一个错误代码
  • ibase_free_event_handler() - 取消一个已注册的事件句柄
  • ibase_gen_id() - 递增指定的发生器并返回其新值
  • ibase_maintain_db() - 在数据库服务器上执行一条维护命令
  • ibase_name_result() - 给结果集指定一个名字
  • ibase_num_params() - 返回一个准备好的查询的参数数目
  • ibase_param_info() - 返回一个准备好的查询的参数信息
  • ibase_restore() - 在服务管理器中发起一个还原任务并立即返回
  • ibase_rollback_ret() - 回卷一笔事务并保留事务上下文
  • ibase_server_info() - 请求有关数据库服务器的统计信息
  • ibase_service_attach() - 连接到服务管理器
  • ibase_service_detach() - 从服务管理器断开
  • ibase_set_event_handler() - 注册一个当事件发布时要调用的回调函数
  • ibase_wait_event() - 等待数据库发布一条事件

iconv:

  • iconv_mime_decode() - 解码 MIME 头信息字段
  • iconv_mime_decode_headers() - 一次解码多个 MIME 头信息字段
  • iconv_mime_encode() - 压缩 MIME 头信息字段
  • iconv_strlen() - 返回字符串中的字符计数
  • iconv_strpos() - 在堆栈中找到第一个出现的子串位置
  • iconv_strrpos() - 在堆栈中找到最后一个出现的子串位置
  • iconv_substr() - 从字符串中取出一部分

Streams:

  • stream_copy_to_stream() - 把一个流的数据复制到另一个流
  • stream_get_line() - 根据给定的分隔符中流中读取一行
  • stream_socket_accept() - 接受一个由 stream_socket_server() 建立的 socket 连接
  • stream_socket_client() - 打开一个 Internet 或 Unix 域的 socket 连接
  • stream_socket_get_name() - 获取本地或远程的 sockets 名字
  • stream_socket_recvfrom() - 从 socket 获取数据（不管连接是否已经建立）
  • stream_socket_sendto() - 向 socket 发送一个消息（不管连接是否已经建立）
  • stream_socket_server() - 建立一个 Internet 或 Unix 域服务器的 socket

Date/Time:

  • idate() - 将本地时间格式化为整数
  • date_sunset() - 计算所指定日期和地点的日落时间
  • date_sunrise() - T计算所指定日期和地点的日出时间
  • time_nanosleep() - 廷迟执行程若干秒和若干纳秒

Strings:

  • str_split() - 把一个字符串分割为数组
  • strpbrk() - 在一字符串中搜索给定的字符集合中的任意一个字符
  • substr_compare() - 以二进制的形式比较两个字符串，从第一个字符串的 offset 开始，直到到达长度为 length 时结束，可自定义是否大小写敏感比较

Other:

  • convert_uudecode() - 解码 uuencoded 的字符串
  • convert_uuencode() - 对字符串进行 uuencode
  • curl_copy_handle() - 复制一个 cURL 句柄及其所有参数
  • dba_key_split() - 把一个键分隔为字符串数组
  • dbase_get_header_info() - 取得 dBase 数据库的头部信息
  • dbx_fetch_row() - 获取结果集中被设置为 DBX_RESULT_UNBUFFERED 的行
  • fbsql_set_password() - 修改指定用户的密码
  • file_put_contents() - 向一个文件内写入字符串
  • ftp_alloc() - 为准备上传的文件分配空间
  • get_declared_interfaces() - 以数组的形式返回所有已定义的接品
  • get_headers() - 获取服务器响应 HTTP 请求时的所有头部信息
  • headers_list() - 返回所有已发送或准备发送响应头部列表
  • http_build_query() - 生成一个已经过 URL 编码的请求字符串
  • image_type_to_extension() - 根据
getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype() 所返回的 image-type 取得文件名后缀
  • imagefilter() - 对图像应用滤镜
  • imap_getacl() - 获取指定邮箱的 ACL
  • ldap_sasl_bind() - 使用 SASL 绑定到 LDAP 目录
  • mb_list_encodings() - 以数组的形式返回所支持的全部字符集
  • pcntl_getpriority() - 获得任意一个进程的优先级
  • pcntl_wait() - Waits on or returns the status of a forked child as defined by the waitpid() system call
  • pg_version() - 返回一个包含客户端、协议和服务器版本的数组
  • php_check_syntax() - 检查指定文件的语法
  • php_strip_whitespace() - 返回已经去除注释和空白的源代码
  • proc_nice() - 修改当前进程的优前级
  • pspell_config_data_dir() - 修改语言文件的位置
  • pspell_config_dict_dir() - 修改主要单词列表的位置
  • setrawcookie() - 发送一个没有经过 url 编码的 cookie 值
  • scandir() - 列中指定目录中的所有子目录和文件
  • snmp_read_mib() - 在一个可用的 MIB 树中读取和分板一个 MIB 文件
  • sqlite_fetch_column_types() - 以数组的形式返回一张表中的列类型

Note: Tidy 扩展库的 API 也作了重大调整

移植配置文件
新指令
从 PHP 4 移植到 PHP 5


新指令

PHP 5 在 php.ini 中引进了一些新指令。列表如下：

  • mail.force_extra_parameters - 强制指定的参数附加值作为额外的参数传递给 sendmail 库。这些参数总是会替换掉 mail() 的第 5 个参数，即使在安全模式下
  • register_long_arrays - 允许／禁止 PHP 注册已过时的 $HTTP_*_VARS 变量
  • session.hash_function - 选择一种散列函数（MD5 或 SHA-1）
  • session.hash_bits_per_character - 定义将二进制散列数据转换为可读格式时每个字符中储存几个位（从 4 到 6）
  • zend.ze1_compatibility_mode - 启用 Zend Engline 1 代（PHP 4）兼容模式
新函数
数据库
从 PHP 4 移植到 PHP 5


数据库

关于数据库（MySQL 和 SQLite）在 PHP 5 中有些改变。

PHP 5 中不再绑定 MySQL 客户端连接库，因为授权和一些其它问题。更多信息见 FAQ。

有个新扩展库 MySQLi（改良版 MySQL），设计用来工作于 MySQL 4.1 及更高版本之下。

自 PHP 5 起，SQLite 扩展库内置在 PHP 中。SQLite 是一个可嵌入 SQL 数据库引擎，不是客户端连接库用来连接大型数据库服务器（如 MySQL 或 PostgreSQL）的。SQLite 库直接读写磁盘上的数据库文件。

新指令
新对象模型
从 PHP 4 移植到 PHP 5


新对象模型

PHP 5 中有个新对象模型（Object Model）。PHP 处理对象的方式完全重写了，允许更佳性能和更多特性。之前版本的 PHP，对象处理方式和原始类型（例如整型和字符串）相同。此方法的缺点是当变量被赋值或作为参数传递给方法时语义上整个对象都被拷贝。在新方法中，对象通过句柄引用，而不是值（可以将句柄当成是对象的标识符）。

很多 PHP 程序员根本没意识到旧的对象模型的这种拷贝怪癖，因此大多数 PHP 应用程序拿来就能运行，或者只做很小的修改。

新对象模型的文档见语言参考。

与 PHP 4 的兼容性参见 zend.ze1_compatibility_mode。

数据库
错误报告
从 PHP 4 移植到 PHP 5


错误报告

自 PHP 5 起引进了新常量 E_STRICT，其值为 2048。它提供了对用户代码的协同性和向前兼容性的运行时 PHP 建议，有助于使用户保持最新和最好的编程风格。例如在使用已过时的函数时 STRICT 信息会提出警告。

Note: E_ALL 不包括 E_STRICT，因此其默认未激活。

新对象模型
PHP 的调试
从 PHP 4 移植到 PHP 5


PHP 的调试

Table of Contents

  • 关于调试器
错误报告
关于调试器
附录


关于调试器

PHP 3 包含有基于网络的调试支持。

PHP 4 并没有内部调试器。但是可以使用外部调试器。» Zend IDE 就是其中之一，它包含一个调试器。也有一些免费的调试器，比如在 » http://dd.cron.ru/dbg/ 上的 DBG，» Advanced PHP Debugger（APD）或者 » Xdebug。

PHP 的调试
配置选项
PHP 的调试


配置选项

Table of Contents

  • 核心配置选项列表
关于调试器
核心配置选项列表
附录


核心配置选项列表

下面是 PHP 的 configure 脚本使用的部分选项的列表，用于类 Unix 环境的编译。大部分配置选项在扩展模块参考页面适当的位置列出，而不是在这里。要查看所有可用配置选项的列表，在运行 autoconf 命令后在 PHP 的源代码目录运行 ./configure --help（参见安装与配置一章）。也可以阅读 » GNU configure 文档以获得有关 configure 命令的更详细信息，例如 --prefix=PREFIX。

Note: 这些选项只用在编译的时候。如果想要修改 PHP 的运行时配置，请阅读运行时配置。

  • 杂项

  • PHP 行为

  • 服务器

在 PHP 4 中的配置选项

Note: 这些选项仅适用于 PHP 4.1.0 以上版本。尽管某些选项可以用在较旧版本的 PHP 4，甚至 PHP 3，如果想编译旧版本的 PHP，请注意有些选项不可用。

杂项选项

--enable-debug

编译时加入调试符号。

--with-layout=TYPE

设置被安装文件的布局。TYPE 是 PHP（默认）或 GNU。

--with-pear=DIR

在 DIR（默认为 PREFIX/lib/php）中安装 PEAR。

--without-pear

不安装 PEAR。

--enable-sigchild

使用 PHP 自带的 SIGCHLD 处理器。

--disable-rpath

禁用在搜索路径中传递其他运行库。

--enable-libgcc

启用 libgcc 的精确链接。

--enable-php-streams

包含试验性的 PHP 流。不要使用此选项，除非是要测试代码！

--with-zlib-dir[=DIR]

定义 zlib 的安装目录。

--enable-trans-sid

启用透明 session id 传输。仅适用于 PHP 4.1.2 或更低版本。PHP 4.2.0 以后，透明 sid 功能默认被编译其中。

--with-tsrm-pthreads

使用 POSIX 线程（默认）。

--enable-shared[=PKGS]

编译共享库 [default=yes]。

--enable-static[=PKGS]

编译静态库 [default=yes]。

--enable-fast-install[=PKGS]

为快速安装优化 [default=yes]。

--with-gnu-ld

假设 C 编译器使用 GNU ld [default=no]。

--disable-libtool-lock

避免锁死（可能破坏并联的编译）。

--with-pic

尝试仅使用 PIC/非 PIC 对象 [default=use both]。

--enable-memory-limit

编译内存限制支持功能。

--disable-url-fopen-wrapper

禁用 URL 形式的 fopen 封装协议。该协议允许通过 HTTP 或者 FTP 访问文件。

--enable-versioning

仅导出必须的符号。查看 INSTALL 文件以获得更多信息。

--with-imsp[=DIR]

包含 IMSP 支持（DIR 是 IMSP 的 include 目录和 libimsp.a 所在目录）。此选项仅在 PHP 3 中有效！

--with-mck[=DIR]

包含 Cybercash MCK 支持。DIR 是 cybercash mck 的编译目录，默认为 /usr/src/mck-3.2.0.3-linux。更多帮助情查看 extra/cyberlib 内的文件。此选项仅在 PHP 3 中有效！

--with-mod-dav=DIR

通过 Apache 的 mod_dav 实现对 DAV 的支持。DIR 是 mod_dav 的安装目录 (仅对以 Apache 模块方式安装的 PHP 有效)。此选项仅在 PHP 3 中有效！

--enable-debugger

编译远程调试功能。此选项仅在 PHP 3 中有效！

--enable-versioning

利用 Solaris 2.x 和 Linux 提供的版本管理（versioning）和范围（scoping）。此选项仅在 PHP 3 中有效！

PHP 选项

--enable-maintainer-mode

对偶然安装一下的情形启用此选项，使得不检查编译规则和依赖关系。

--with-config-file-path=PATH

设置 php.ini 的搜索路径。默认为 PREFIX/lib。

--enable-safe-mode

默认启用安全模式。

--with-exec-dir[=DIR]

在安全模式时仅允许在 DIR 目录中执行。默认目录为 /usr/local/php/bin。

--enable-magic-quotes

默认启用 magic quotes。

--disable-short-tags

默认禁用短形式的开始标签 <? 。

SAPI 选项

下面的列表包含 PHP 可用的SAPI（服务器应用编程接口）。

--with-aolserver=DIR

指定 AOLserver 的安装路径。

--with-apxs[=FILE]

编译共享的 Apache 模块。FILE 是可选的 Apache apxs 工具的路径，默认指向 apxs。请确认指定的 apxs 已经安装在服务器中，并且它不是 Apache 源码包中的那个 apxs。

--with-apache[=DIR]

编译静态 Apache 模块。DIR 是 Apache 编译目录的顶层，默认为 /usr/local/apache。

--with-mod_charset

启用 mod_charset 的转换表（俄文的 Apache 使用）。

--with-apxs2[=FILE]

编译共享的 Apache 2.0 模块。FILE 是可选的 Apache apxs 工具的路径，默认指向 apxs。

--with-caudium=DIR

为使用 Caudium 编译 PHP 为一个 Pike 模块。DIR 是 Caudium 服务器目录，默认为 /usr/local/caudium/server。

--disable-cli

PHP 4.3.0 之后的版本有效。禁止编译 PHP 的 CLI 版本（使用它将同时强制使用 --without-pear 选项）。更多信息请查考 PHP 的命令行模式。

--enable-embed[=TYPE]

启用编译嵌入的 SAPI 库。TYPE 或者为 shared 或者为 static，默认为 shared。PHP 4.3.0 之后的版本有效。

--with-fhttpd[=DIR]

编译 fhttpd 模块。DIR 是 fhttpd 源代码目录，默认为 /usr/local/src/fhttpd。PHP 4.3.0 及以后的版本此选项不再有效。

--with-isapi=DIR

为 Zeus 服务器以 ISAPI 模块方式编译 PHP。

--with-nsapi=DIR

指定 Netscape/iPlanet/SunONE 的安装目录。

--with-phttpd=DIR

还没有信息。

--with-pi3web=DIR

为 Pi3Web 服务器编译 PHP 模块。

--with-roxen=DIR

以 Pike 模块方式编译 PHP。DIR 是 Roxen 的根目录，默认为 /usr/local/roxen/server。

--enable-roxen-zts

使用 Zend 线程安全（ZTS）编译 Roxen 模块。

--with-servlet[=DIR]

包含 servlet 支持。DIR 是 JSDK 的安装目录。此 SAPI 要求 java 扩展必须作为共享模块编译到 PHP 中。

--with-thttpd=SRCDIR

编译 PHP 为 thttpd 模块。

--with-tux=MODULEDIR

编译 PHP 为 TUX 模块（仅在 Linux 下有效）。

--with-webjames=SRCDIR

编译 PHP 为 WebJames 模块（仅在 RISC 操作系统中有效）。

--disable-cgi

禁止编译 CGI 版本的 PHP。PHP 4.3.0 之后的版本有效。

--enable-force-cgi-redirect

启用内部服务器重定向的安全检测。如果在 Apache 下使用 CGI 版本的 PHP，请启用该选项。

--enable-discard-path

如果启用该选项，PHP CGI 目录可以安全的放在 web 目录树的外面，人们无法避开 .htaccess 的安全限制。

--with-fastcgi

编译 PHP 为 FastCGI 应用程序。PHP 4.3.0 及以后的版本此选项不再有效，应该使用 --enable-fastcgi 选项。

--enable-fastcgi

如果启用，CGI 模块将被编译为支持 FastCGI。PHP 4.3.0 之后的版本有效。

--disable-path-info-check

如果该选项被禁用，例如 /info.php/test?a=b 形式的路径将不能工作。PHP 4.3.0 之后的版本有效。更多信息请参考 » Apache 手册。

配置选项
php.ini 配置选项
配置选项


php.ini 配置选项

Table of Contents

  • php.ini 配置选项列表
  • php.ini 核心配置选项说明
核心配置选项列表
php.ini 配置选项列表
附录


php.ini 配置选项列表

可以在 php.ini 中使用下列配置选项对 PHP 进行配置。

配置选项
名称 | 默认值 | 可修改范围 | 更新记录
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | 在 PHP <= 4.0.0 时是 PHP_INI_ALL。
allow_url_fopen | "1" | PHP_INI_SYSTEM | 在 PHP <= 4.3.4 时是 PHP_INI_ALL。从 PHP 4.0.4 起可用。
allow_url_include | "0" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP 5. Available since PHP 5.2.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。从 PHP 4.1.0 起可用。
apc.cache_by_default | "1" | PHP_INI_SYSTEM |
apc.enabled | "1" | PHP_INI_ALL |
apc.enable_cli | "0" | PHP_INI_SYSTEM |
apc.file_update_protection | "2" | PHP_INI_SYSTEM |
apc.filters | NULL | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.max_file_size | "1M" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.user_entries_hint | "100" | PHP_INI_SYSTEM |
apc.user_ttl | "0" | PHP_INI_SYSTEM |
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR | 从 PHP 4.0.5 起可用。
arg_separator.output | "&" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
asp_tags | "0" | PHP_INI_PERDIR | 在 PHP <= 4.0.0 时是 PHP_INI_ALL 。
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL 。
auto_detect_line_endings | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
auto_globals_jit | "1" | PHP_INI_PERDIR | 从 PHP 5.0.0 起可用。
auto_prepend_file | NULL | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
bcmath.scale | "0" | PHP_INI_ALL |
bcompiler.enabled | "1" | PHP_INI_ALL |
birdstep.max_links | "-1" | PHP_INI_ALL | 从 PHP 4.2.0 起可用。
blenc.key_file | "/usr/local/etc/blenckeys" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.discard_path | "0" | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
cgi.fix_pathinfo | "1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
cgi.force_redirect | "1" | PHP_INI_ALL | 从 PHP 4.2.0 起可用。
cgi.nph | "0" | PHP_INI_ALL | 从 PHP 4.3.5 起可用。
cgi.redirect_status_env | NULL | PHP_INI_ALL | 从 PHP 4.2.0 起可用。
cgi.rfc2616_headers | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
child_terminate | "0" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
com.allow_dcom | "0" | PHP_INI_SYSTEM | 从 PHP 4.0.5 起可用。
com.autoregister_casesensitive | "1" | PHP_INI_ALL | 在 PHP 4 时是 PHP_INI_SYSTEM。从 PHP 4.1.0 起可用。
com.autoregister_typelib | "0" | PHP_INI_ALL | 在 PHP 4 时是 PHP_INI_SYSTEM。从 PHP 4.1.0 起可用。
com.autoregister_verbose | "0" | PHP_INI_ALL | 在 PHP 4 时是 PHP_INI_SYSTEM。从 PHP 4.1.0 起可用。
com.code_page | "" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
com.typelib_file | "" | PHP_INI_SYSTEM | 从 PHP 4.0.5 起可用。
crack.default_dictionary | NULL | PHP_INI_PERDIR | 从 PHP 4.0.5 起可用。
daffodildb.default_host | "localhost" | PHP_INI_ALL |
daffodildb.default_password | "daffodil" | PHP_INI_ALL |
daffodildb.default_socket | NULL | PHP_INI_ALL |
daffodildb.default_user | "DAFFODIL" | PHP_INI_ALL |
daffodildb.port | "3456" | PHP_INI_ALL |
date.default_latitude | "31.7667" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
date.default_longitude | "35.2333" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
date.sunrise_zenith | "90.83" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
date.sunset_zenith | "90.83" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
date.timezone | "GMT" | "" | PHP_INI_ALL | 从 PHP 5.1.0 起可用。
dba.default_handler | "" | PHP_INI_ALL | 从 PHP 4.3.3 起可用。
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | 从 PHP 4.3.0 起可用。
default_charset | "" | PHP_INI_ALL |
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
define_syslog_variables | "0" | PHP_INI_ALL |
disable_classes | "" | php.ini only | 从 PHP 4.3.2 起可用。
disable_functions | "" | php.ini only | 从 PHP 4.0.1 起可用。
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | 从 PHP 4.0.3 起可用。
docref_ext | "" | PHP_INI_ALL | 从 PHP 4.3.2 起可用。
docref_root | "" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM |
engine | "1" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
exif.encode_jis | "" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
expect.logfile | "" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expose_php | "1" | 仅可用在 php.ini 中 |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
fastcgi.logging | "1" | PHP_INI_ALL | 从 PHP 4.4.0 起可用。
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | 从 PHP 4.2.0 起可用。
fbsql.autocommit | "1" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.batchsize | "1000" | PHP_INI_ALL | 从 PHP 5.1.0 起可用。
fbsql.default_database | "" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.default_database_password | "" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.default_host | NULL | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.default_password | "" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.max_connections | "128" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.max_links | "128" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
fbsql.max_results | "128" | PHP_INI_SYSTEM | 从 PHP 4.0.6 起可用。
file_uploads | "1" | PHP_INI_SYSTEM | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。从 PHP 4.0.3 起可用。
filter.default | "string" | PHP_INI_ALL |
filter.default_flags | NULL | PHP_INI_ALL |
from | "" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | 在 PHP <= 4.2.3 时是 PHP_INI_SYSTEM。从 PHP 4.0.2 起可用。
http.allowed_methods | "" | PHP_INI_ALL |
http.allowed_methods_log | "" | PHP_INI_ALL |
http.cache_log | "" | PHP_INI_ALL |
http.composite_log | "" | PHP_INI_ALL |
http.etag_mode | "MD5" | PHP_INI_ALL |
http.force_exit | "1" | PHP_INI_ALL |
http.ob_deflate_auto | "0" | PHP_INI_PERDIR |
http.ob_deflate_flags | "0" | PHP_INI_ALL |
http.ob_inflate_auto | "0" | PHP_INI_PERDIR |
http.ob_inflate_flags | "0" | PHP_INI_ALL |
http.only_exceptions | "0" | PHP_INI_ALL |
http.redirect_log | "" | PHP_INI_ALL |
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM | 从 PHP 4.3.2 起可用。
hyperwave.default_port | "418" | PHP_INI_ALL |
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
ibase.default_db | NULL | PHP_INI_SYSTEM | 从 PHP 5.0.0 起可用。
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibm_db2.binmode | "0" | PHP_INI_ALL |
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
ifx.allow_persistent | "1" | PHP_INI_SYSTEM |
ifx.blobinfile | "1" | PHP_INI_ALL |
ifx.byteasvarchar | "0" | PHP_INI_ALL |
ifx.charasvarchar | "0" | PHP_INI_ALL |
ifx.default_host | NULL | PHP_INI_SYSTEM |
ifx.default_password | NULL | PHP_INI_SYSTEM |
ifx.default_user | NULL | PHP_INI_SYSTEM |
ifx.max_links | "-1" | PHP_INI_SYSTEM |
ifx.max_persistent | "-1" | PHP_INI_SYSTEM |
ifx.nullformat | "0" | PHP_INI_ALL |
ifx.textasvarchar | "0" | PHP_INI_ALL |
ignore_repeated_errors | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
ignore_repeated_source | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
ignore_user_abort | "0" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL | 在 PHP <= 4.2.3 时是 PHP_INI_PERDIR。
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | 从 PHP 4.0.2 起可用。
ingres.blob_segment_length | "4096" | PHP_INI_ALL |
ingres.cursor_mode | "0" | PHP_INI_ALL |
ingres.default_database | NULL | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
ingres.default_password | NULL | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
ingres.default_user | NULL | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
ingres.max_links | "-1" | PHP_INI_SYSTEM | 从 PHP 4.0.2 起可用。
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | 从 PHP 4.0.2 起可用。
ingres.report_db_warnings | "1" | PHP_INI_ALL |
ingres.timeout | "-1" | PHP_INI_ALL |
ingres.trace_connect | "0" | PHP_INI_ALL |
ircg.control_user | "nobody" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
ircg.keep_alive_interval | "60" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
ircg.max_format_message_sets | "12" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
ircg.shared_mem_size | "6000000" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
ircg.work_dir | "/tmp/ircg" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
last_modified | "0" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
magic_quotes_gpc | "1" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
magic_quotes_runtime | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL |
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | 从 PHP 5.0.0 起可用。
mailparse.def_charset | "us-ascii" | PHP_INI_ALL | 从 PHP 4.1.0 起可用。
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | 从 PHP 4.3.0 起可用。
mbstring.detect_order | NULL | PHP_INI_ALL | 从 PHP 4.0.6 起可用。
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | 从 PHP 4.3.0 起可用。
mbstring.func_overload | "0" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_SYSTEM。从 PHP 4.2.0 起可用。
mbstring.http_input | "pass" | PHP_INI_ALL | 从 PHP 4.0.6 起可用。
mbstring.http_output | "pass" | PHP_INI_ALL | 从 PHP 4.0.6 起可用。
mbstring.internal_encoding | NULL | PHP_INI_ALL | 从 PHP 4.0.6 起可用。
mbstring.language | "neutral" | PHP_INI_PERDIR | 从 PHP 4.3.0 起可用。
mbstring.script_encoding | NULL | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
mbstring.strict_detection | "0" | PHP_INI_ALL | Available since PHP 5.1.2.
mbstring.substitute_character | NULL | PHP_INI_ALL | 从 PHP 4.0.6 起可用。
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
mcrypt.modes_dir | NULL | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
memory_limit | "8M" | PHP_INI_ALL |
mime_magic.debug | "0" | PHP_INI_SYSTEM | 从 PHP 5.0.0 起可用。
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | 从 PHP 4.3.0 起可用。
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.batchsize | "0" | PHP_INI_ALL | 从 PHP 4.0.4 起可用。
mssql.charset | "" | PHP_INI_ALL | Available since PHP 5.1.2.
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.datetimeconvert | "1" | PHP_INI_ALL | 从 PHP 4.2.0 起可用。
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_procs | "-1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.secure_connection | "0" | PHP_INI_SYSTEM | 从 PHP 4.3.0 起可用。
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | 从 PHP 4.1.0 起可用。
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.connect_timeout | "60" | PHP_INI_ALL | 在 PHP <= 4.3.2 时是 PHP_INI_SYSTEM。从 PHP 4.3.0 起可用。
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | 从 PHP 4.0.1 起可用。
mysql.default_user | NULL | PHP_INI_ALL |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
mysqli.default_host | NULL | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
mysqli.default_port | "3306" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
mysqli.default_pw | NULL | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
mysqli.default_socket | NULL | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
mysqli.default_user | NULL | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
mysqli.max_links | "-1" | PHP_INI_SYSTEM | 从 PHP 5.0.0 起可用。
mysqli.reconnect | "0" | PHP_INI_SYSTEM | 从 PHP 5.0.0 起可用。
namazu.debugmode | "0" | PHP_INI_ALL |
namazu.lang | NULL | PHP_INI_ALL |
namazu.loggingmode | "0" | PHP_INI_ALL |
namazu.sortmethod | NULL | PHP_INI_ALL |
namazu.sortorder | NULL | PHP_INI_ALL |
nsapi.read_timeout | "60" | PHP_INI_ALL | 从 PHP 4.3.3 起可用。
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
oci8.ping_interval | "60" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | 从 PHP 5.1.2 起可用。
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.default_db | NULL | PHP_INI_ALL |
odbc.default_pw | NULL | PHP_INI_ALL |
odbc.default_user | NULL | PHP_INI_ALL |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
opendirectory.max_refs | "-1" | PHP_INI_ALL |
opendirectory.separator | "/" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_SYSTEM |
oracle.allow_persistent | "-1" | PHP_INI_ALL |
oracle.max_links | "-1" | PHP_INI_ALL |
oracle.max_persistent | "-1" | PHP_INI_ALL |
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | 从 PHP 4.0.4 起可用。
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | 从 PHP 5.1.0 起可用。
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pfpro.defaultport | "443" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pfpro.defaulttimeout | "30" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pfpro.proxyaddress | "" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pfpro.proxylogon | "" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pfpro.proxypassword | "" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pfpro.proxyport | "" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | 从 PHP 4.2.0 起可用。
pgsql.ignore_notice | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
pgsql.log_notice | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是PHP_INI_SYSTEM。从 PHP 4.0.3 起可用。
precision | "14" | PHP_INI_ALL |
printer.default_printer | "" | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM | 从 PHP 5.1.0 起可用。
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | 从 PHP 5.1.0 起可用。
register_argc_argv | "1" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
register_globals | "0" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL、
register_long_arrays | "1" | PHP_INI_PERDIR | 从 PHP 5.0.0 起可用。
report_memleaks | "1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
report_zend_debug | "1" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
runkit.internal_override | "0" | PHP_INI_SYSTEM |
runkit.superglobal | "" | PHP_INI_PERDIR |
safe_mode | "0" | PHP_INI_SYSTEM |
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM |
safe_mode_exec_dir | "" | PHP_INI_SYSTEM |
safe_mode_gid | "0" | PHP_INI_SYSTEM | 从 PHP 4.1.0 起可用。
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | 从 PHP 4.1.0 起可用。
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |
serialize_precision | "100" | PHP_INI_ALL | 从 PHP 4.3.2 起可用。
session.auto_start | "0" | PHP_INI_ALL |
session.bug_compat_42 | "1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
session.bug_compat_warn | "1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
session.cache_expire | "180" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | 从 PHP 4.0.4 起可用。
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | 从 PHP 4.3.2 起可用。
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.hash_bits_per_character | "4" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
session.hash_function | "0" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
session.name | "PHPSESSID" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.save_path | "" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
session.use_trans_sid | "0" | PHP_INI_ALL | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。在 PHP < 5 时是 PHP_INI_PERDIR。从 PHP 4.0.3 起可用。
session_pgsql.create_table | "1" | PHP_INI_SYSTEM |
session_pgsql.db | "host=localhost dbname=php_session user=nobody" | PHP_INI_SYSTEM |
session_pgsql.disable | "0" | PHP_INI_SYSTEM |
session_pgsql.failover_mode | "0" | PHP_INI_SYSTEM |
session_pgsql.gc_interval | "3600" | PHP_INI_SYSTEM |
session_pgsql.keep_expired | "0" | PHP_INI_SYSTEM |
session_pgsql.sem_file_name | "/tmp/php_session_pgsql" | PHP_INI_SYSTEM |
session_pgsql.serializable | "0" | PHP_INI_SYSTEM |
session_pgsql.short_circuit | "0" | PHP_INI_SYSTEM |
session_pgsql.use_app_vars | "0" | PHP_INI_SYSTEM |
session_pgsql.vacuum_interval | "21600" | PHP_INI_SYSTEM |
short_open_tag | "1" | PHP_INI_PERDIR | 在 PHP <= 4.0.0 时是 PHP_INI_ALL。
simple_cvs.authMethod | "0" | PHP_INI_ALL |
simple_cvs.compressionLevel | "0" | PHP_INI_ALL |
simple_cvs.cvsRoot | "0" | PHP_INI_ALL |
simple_cvs.host | "0" | PHP_INI_ALL |
simple_cvs.moduleName | "0" | PHP_INI_ALL |
simple_cvs.userName | "0" | PHP_INI_ALL |
simple_cvs.workingDir | "0" | PHP_INI_ALL |
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite.assoc_case | "0" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
sybase.allow_persistent | "1" | PHP_INI_ALL | 在 PHP <= 4.0.2 时是 PHP_INI_ALL ，在 PHP <= 4.0.3 时是 PHP_INI_SYSTEM
sybase.interface_file | "" | PHP_INI_ALL |
sybase.max_links | "-1" | PHP_INI_ALL | 在 PHP <= 4.0.2 时是 PHP_INI_ALL ，在 PHP <= 4.0.3 时是 PHP_INI_SYSTEM
sybase.max_persistent | "-1" | PHP_INI_ALL | 在 PHP <= 4.0.2 时是 PHP_INI_ALL ，在 PHP <= 4.0.3 时是 PHP_INI_SYSTEM
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybct.allow_persistent | "1" | PHP_INI_SYSTEM | >在 PHP <= 4.0.2 时是 PHP_INI_ALL。从 PHP 4.0.2 起可用。
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
sybct.hostname | NULL | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
sybct.login_timeout | "-1" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
sybct.max_links | "-1" | PHP_INI_SYSTEM | 在 PHP <= 4.0.2 时是 PHP_INI_ALL。从 PHP 4.0.2 起可用。
sybct.max_persistent | "-1" | PHP_INI_SYSTEM | 在 PHP <= 4.0.2 时是 PHP_INI_ALL。从 PHP 4.0.2 起可用。
sybct.min_client_severity | "10" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
sybct.min_server_severity | "10" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
sybct.packet_size | "0" | PHP_INI_ALL | 从 PHP 4.3.5 起可用。
sybct.timeout | "0" | PHP_INI_ALL | 从 PHP 4.0.2 起可用。
sysvshm.init_mem | "10000" | PHP_INI_ALL |
tidy.clean_output | "0" | PHP_INI_PERDIR | 从 PHP 5.0.0 起可用。
tidy.default_config | "" | PHP_INI_SYSTEM | 从 PHP 5.0.0 起可用。
track_errors | "0" | PHP_INI_ALL |
unicode.fallback_encoding | NULL | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode.from_error_mode | "2" | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode.from_error_subst_char | "3f" | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode.http_input_encoding | NULL | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode.output_encoding | NULL | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode.runtime_encoding | NULL | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode.script_encoding | NULL | PHP_INI_ALL | 从 PHP 6.0.0 起可用。
unicode_semantics | "off" | PHP_INI_PERDIR | 从 PHP 6.0.0 起可用。
unserialize_callback_func | NULL | PHP_INI_ALL | 从 PHP 4.2.0 起可用。
upload_max_filesize | "2M" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | 从 PHP 4.0.4 起可用。
user_agent | NULL | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
user_dir | NULL | PHP_INI_SYSTEM |
valkyrie.auto_validate | "0" | PHP_INI_ALL |
valkyrie.config_path | NULL | PHP_INI_ALL |
variables_order | "EGPCS" | PHP_INI_PERDIR | 在 PHP <= 5.0.5 时是 PHP_INI_ALL。
request_order | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Added in PHP 5.3.0
xbithack | "0" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
xmlrpc_errors | "0" | PHP_INI_SYSTEM | 从 PHP 4.1.0 起可用。
xmlrpc_error_number | "0" | PHP_INI_ALL | 从 PHP 4.1.0 起可用。
xmms.path | "/usr/bin/xmms" | PHP_INI_ALL |
xmms.session | "0" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_file | NULL | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
yaz.log_mask | NULL | PHP_INI_ALL |
yaz.max_links | "100" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。
zlib.output_compression | "0" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
zlib.output_compression_level | "-1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。
zlib.output_handler | "" | PHP_INI_ALL | 从 PHP 4.3.0 起可用。

PHP_INI_* 常量的定义
常量 | 值 | 含义
PHP_INI_USER | 1 | 配置选项可在用户的 PHP 脚本或 Windows 注册表中设置
PHP_INI_PERDIR | 2 | 配置选项可在 php.ini, .htaccess 或 httpd.conf 中设置
PHP_INI_SYSTEM | 4 | 配置选项可在 php.ini or httpd.conf 中设置
PHP_INI_ALL | 7 | 配置选项可在各处设置

php.ini 配置选项
php.ini 核心配置选项说明
php.ini 配置选项


php.ini 核心配置选项说明

该列表只包含核心的 php.ini 配置选项。扩展的配置选项在各个扩展的文档页面分别被描述。有关 session 的选项可以在 sessions 页面找到。

Httpd 选项

Httpd 选项
名称 | 默认值 | 可修改范围 | 更新记录
async_send | "0" | PHP_INI_ALL |

语言选项

语言和杂类配置选项
名称 | 默认值 | 可修改范围 | 更新记录
short_open_tag | "1" | PHP_INI_PERDIR | 在 PHP <= 4.0.0 时是 PHP_INI_ALL。
asp_tags | "0" | PHP_INI_PERDIR | 在 PHP <= 4.0.0 时是 PHP_INI_ALL。
precision | "14" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | 在 PHP <= 4.0.0 时是 PHP_INI_ALL。
expose_php | "1" | 仅可在 php.ini 中配置。 |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | 从 PHP 5.0.0 起可用。

以下是配置选项的简要解释。

short_open_tag boolean

决定是否允许使用 PHP 代码开始标志的缩写形式（<? ?> ）。如果要和 XML 结合使用 PHP，可以禁用此选项以便于嵌入使用 <?xml ?> 。否则还可以通过 PHP 来输出，例如：<?php echo '<?xml version="1.0"'; ?> 。如果禁用了，必须使用 PHP 代码开始标志的完整形式（<?php ?> ）。

Note: 本指令也会影响到缩写形式 <?= ，它和 <? echo 等价。使用此缩写需要 short_open_tag 的值为 On。

asp_tags boolean
除了通常的 <?php ?> 标志之外还允许使用 ASP 风格的标志 <% %>。这也包括了输出变量值的缩写 <%= $value %>。更多信息见从 HTML 中分离一节。

Note: ASP 风格标志的支持是 3.0.4 版新加的。

precision integer
浮点数中显示有效数字的位数。
y2k_compliance boolean
强制 2000 年兼容（在不兼容的浏览器中会出问题）。
allow_call_time_pass_reference boolean

在函数调用时参数被按照引用传递时是否发出警告。此方法已不被赞成并在 PHP/Zend 未来的版本中很可能不再支持。鼓励使用的方法是在函数定义中指定哪些参数应该用引用传递。鼓励大家尝试关闭此选项并确保脚本能够正常运行，以确保该脚本也能在未来的版本中运行（每次使用此特性都会收到一条警告）。

在函数调用时通过引用传递参数是不推荐的，因为它影响到了代码的整洁。如果函数的参数没有声明作为引用传递，函数可以通过未写入文档的方法修改其参数。要避免其副作用，最好仅在函数声明时指定那个参数需要通过引用传递。

参见引用的解释。

expose_php boolean

决定是否暴露 PHP 被安装在服务器上（例如在 Web 服务器的信息头中加上其签名）。没有任何安全上的威胁，只是让客户端能够知道是否在服务器中安装了 PHP。

zend.ze1_compatibility_mode boolean

启用 Zend 引擎 1(PHP 4) 兼容模式。这影响到了对象的复制、构造（无属性的对象会产生 FALSE 或 0）及比较。此模式下，对象将以值传递，而不是默认的引用传递。

参见从 PHP 4 移植到 PHP 5。

资源限制

资源限制
名称 | 默认值 | 可修改范围 | 更新记录
memory_limit | "8M" | PHP_INI_ALL |

以下是配置选项的简要解释。

memory_limit integer

本指令设定了一个脚本所能够申请到的最大内存字节数。这有助于防止写得不好的脚本消耗光服务器上的可用内存。要使用此指令必须在编译的时候激活。因此 configure 一行中应该包括：--enable-memory-limit。如果不需要任何内存上的限制，必须将其设为 -1。

自 4.3.2 起，当激活了 memory_limit，PHP 函数 memory_get_usage() 便可以使用了。

当使用 integer 类型时，其值以字节为度量单位。还可以用简化符号，说明见此 FAQ。

参见 max_execution_time。

性能调整

性能调整
名称 | 默认值 | 可修改范围 | 更新记录
realpath_cache_size | "16K" | PHP_INI_SYSTEM | 自 PHP 5.1.0 起可用。
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | 自 PHP 5.1.0 起可用。

以下是配置选项的简要解释。

realpath_cache_size integer

决定 PHP 所使用的真实路径缓冲区的大小。此值在 PHP 会打开很多文件的系统下应增大，以反映出所执行文件操作的数量。

realpath_cache_ttl integer

对给定文件或目录以秒为单位的真实路径信息缓冲的时间。对文件很少改变的系统，可以考虑增大辞职。

数据处理

数据处理配置选项
名称 | 默认值 | 可修改范围 | 更新记录
track_vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL | 从 PHP 4.0.5 起可用。
arg_separator.input | "&" | PHP_INI_PERDIR | 从 PHP 4.0.5 起可用。
variables_order | "EGPCS" | PHP_INI_PERDIR | 在 PHP <= 5.0.5 时是 PHP_INI_ALL。
auto_globals_jit | "1" | PHP_INI_PERDIR | 从 PHP 5.0.0 起可用。
register_globals | "0" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
register_argc_argv | "1" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
register_long_arrays | "1" | PHP_INI_PERDIR | 从 PHP 5.0.0 起可用。
post_max_size | "8M" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。从 PHP 4.0.3 起可用。
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | NULL | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
auto_append_file | NULL | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。从 PHP 4.1.0 起可用。
allow_webdav_methods | "0" | PHP_INI_PERDIR |

以下是配置选项的简要解释。

track_vars boolean

如果激活，则环境变量，GET，POST，Cookie 和 Server 变量都能够分别在全局关联数组中找到：$_ENV，$_GET，$_POST，$_COOKIE 和 $_SERVER。

注意自 PHP 4.0.3 起，track_vars 总是打开的。

arg_separator.output string

PHP 所产生的 URL 中来分隔参数的分隔符。

arg_separator.input string

PHP 用来将 URL 解析为变量的分隔符列表。

Note: 本指令中的每个字符都会被当成分隔符！

variables_order string

设定 EGPCS（Environment，GET，POST，Cookie，Server）变量解析的顺序。默认设定为“EGPCS”。举例说，将其设为“GP”，会导致 PHP 完全忽略环境变量，cookies 和 server 变量，并用 GET 方法的变量覆盖 POST 方法的同名变量。

参见 register_globals。

request_order string

This directive describes the order in which PHP registers GET, POST and Cookie variables into the _REQUEST array. Registration is done from left to right, newer values override older values.

If this directive is not set, variables_order is used for $_REQUEST contents.

auto_globals_jit boolean

启用后，SERVER 和 ENV 变量在他们第一次使用后 (Just In Time) 便被创建，而不是等到脚本开始运行时。如果这些变量没有在脚本总使用，启用这个变量会提高服务器性能。

要使此选项有效，PHP 配置选项 register_globals, register_long_arrays, 和 register_argc_argv 必须禁用。

register_globals boolean

决定是否将 EGPCS（Environment，GET，POST，Cookie，Server）变量注册为全局变量。

PHP » 4.2.0 开始，本选项默认为 off。

相关信息请阅读安全一章中的使用 register_globals。

请注意 register_globals 不能在运行时设定（ini_set()），尽管如以上说明在主机允许时可以用 .htaccess。一个 .htaccess 项目的例子：php_flag register_globals off 。

Note: register_globals 受 variables_order 选项的影响。

register_argc_argv boolean
决定 PHP 是否定义 argv & argc 变量（可能包含有 GET 信息）。 参见命令行方式。此外，本选项自 PHP 4.0.0 起可用，在此之前总是“On”。
register_long_arrays boolean
设定 PHP 是否注册已过时的 $HTTP_*_VARS 之类的预定义变量。如果为 On（默认值），则类似 $HTTP_GET_VARS 的 PHP 变量会被注册。如果不使用，为性能考虑建议关闭此选项，而使用超全局数组例如 $_GET 替代之。 本指令自 PHP 5.0.0 起可用。
post_max_size integer
设定 POST 数据所允许的最大大小。此设定也影响到文件上传。要上传大文件，该值必须大于 upload_max_filesize。 如果配置脚本中激活了内存限制，memory_limit 也会影响文件上传。通常说，memory_limit 应该比 post_max_size 要大。 当使用 integer 类型时，其值以字节为度量单位。还可以用简化符号，说明见此 FAQ。 如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空。这可以以多种方式证明，例如，传递 $_GET 变量到脚本以处理数据， 也就是 <form action="edit.php?processed=1">, 然后查看 $_GET['processed'] 是否被设置。
gpc_order string

设定 GET/POST/COOKIE 变量解析的顺序，默认为“GPC”。举例说，将其设为“GP”，会导致 PHP 完全忽略 cookie 变量，并用 GET 方法的变量覆盖 POST 方法的同名变量。

Note: 本选项不能用于 PHP 4。用 variables_order 替代之。

auto_prepend_file string

指定在主文件之前自动解析的文件名。该文件就像调用了 include() 函数一样被包含进来，因此会使用 include_path。

特殊值 none 禁止了自动前缀。

auto_append_file string

指定在主文件之后自动解析的文件名。该文件就像调用了 include() 函数一样被包含进来，因此会使用 include_path。

特殊值 none 禁止了自动后缀。

Note: 如果脚本通过 exit() 终止，则自动后缀不会发生。

default_mimetype string

default_charset string

自 4.0b4 起，PHP 总是默认在 HTTP 信息头 Content-type: 中输出字符编码。要禁止发送字符集，将本选项设为空即可。

always_populate_raw_post_data boolean

总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。否则，此变量仅在碰到未识别 MIME 类型的数据时产生。不过，访问原始 POST 数据的更好方法是 php://input。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。

allow_webdav_methods boolean

允许在 PHP 脚本中处理 WebDAV 的 HTTP 请求（例如 PROPFIND，PROPPATCH，MOVE，COPY 等）。此选项在 PHP 4.3.2 以后便不存在了。如果要取得这些请求的 POST 数据，也要设定 always_populate_raw_post_data。

参见 magic_quotes_gpc，magic-quotes-runtime 和 magic_quotes_sybase。

路径和目录

路径和目录配置选项
名称 | 默认值 | 可修改范围 | 更新记录
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
extension | NULL | 仅限于 php.ini |
cgi.fix_pathinfo | "1" | PHP_INI_ALL | 从 PHP 4.3.0 起可用
cgi.force_redirect | "1" | PHP_INI_ALL | 从 PHP 4.2.0 起可用
cgi.redirect_status_env | NULL | PHP_INI_ALL | 从 PHP 4.2.0 起可用
fastcgi.impersonate | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用
cgi.rfc2616_headers | "0" | PHP_INI_ALL | 从 PHP 4.3.0 起可用

以下是配置选项的简要解释。

include_path string

指定一组目录用于 require()，include() 和 fopen_with_path() 函数来寻找文件。格式和系统的 PATH 环境变量类似：一组目录的列表，在 UNIX 下用冒号分隔，在 Windows 下用分号分隔。

Example #1 Unix include_path

include_path=".:/php/includes"

Example #2 Windows include_path

include_path=".;c:\php\includes"

在包含路径中使用 . 可以允许相对路径，它代表当前目录。

doc_root string

PHP 在服务器上的根目录。仅在非空时使用。如果 PHP 被配置为安全模式，则此目录之外的文件一概不被解析。如果 PHP 编译时没有指定 FORCE_REDIRECT，并且在任何 web 服务器（除了 IIS）中以 CGI 方式运行 PHP，则应该设定 doc_root。替代方案是使用下面的 cgi.force_redirect 配置选项。

user_dir string

在用户目录之下使用 PHP 文件的基本目录名，例如 public_html。

extension_dir string

PHP 用来寻找动态连接扩展库的目录。参见 enable_dl 和 dl()。

extension string

当 PHP 启动时所加载的动态连接扩展库。

cgi.fix_pathinfo boolean

对 CGI 提供了真正的 PATH_INFO/PATH_TRANSLATED 支持。以前 PHP 的行为是将 PATH_TRANSLATED 设为 SCRIPT_FILENAME，而不管 PATH_INFO 是什么。有关 PATH_INFO 的更多信息见 cgi 规格。将此值设为 1 将使 PHP CGI 修正其路径以遵守规格。设为 0 将使 PHP 的行为和从前一样。默认为零。用户应该修正其脚本使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。

cgi.force_redirect boolean

在大多数 web 服务器中以 CGI 方式运行 PHP 时很有必要用 cgi.force_redirect 提供安全。PHP 默认其为 On。可以将其关闭，但风险自担。

Note: Windows 用户：可以安全地在 IIS 之下将其关闭，事实上必须这么做。要在 OmniHTTPD 或 Xitami 之下使用也必须将其关闭。

cgi.redirect_status_env string

如果打开了 cgi.force_redirect，并且不是在 Apache 或 Netscape（iPlanet）web 服务器之下运行，可能需要设定一个环境变量名，PHP 将去寻找它来知道可以继续执行下去。

Note: 设定此变量可能会导致安全问题，首先要知道自己在做什么。

fastcgi.impersonate string

IIS（在基于 WINNT 的操作系统上）中的 FastCGI 支持模仿客户端安全令牌的能力。这使得 IIS 能够定义运行时所基于的请求的安全上下文。Apache 中的 mod_fastcgi 不支持此特性（03/17/2002）。如果在 IIS 中运行则设为 1。默认为 0。

cgi.rfc2616_headers int

指定 PHP 在发送 HTTP 响应代码时使用何种报头。如果设定为 0，PHP 发送一个 Status: 报头，Apache 和其它 web server 都支持。如果此选项设定为 1，PHP 将发送 » RFC 2616 兼容的报头。除非你知道自己在做什么，否则保留其值为 0。

文件上传

文件上传配置选项
名称 | 默认值 | 可修改范围 | 更新记录
file_uploads | "1" | PHP_INI_SYSTEM | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。从 PHP 4.0.3 起可用。
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_PERDIR | 在 PHP <= 4.2.3 时是 PHP_INI_ALL。

以下是配置选项的简要解释。

file_uploads boolean

是否允许 HTTP 文件上传。参见 upload_max_filesize，upload_tmp_dir 和 post_max_size 指令。

当使用 integer 类型时，其值以字节为度量单位。还可以用简化符号，说明见此 FAQ。
upload_tmp_dir string

文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值。

upload_max_filesize integer

所上传的文件的最大大小。

当使用 integer 类型时，其值以字节为度量单位。还可以用简化符号，说明见此 FAQ。

普通 SQL

普通 SQL 配置选项
名称 | 默认值 | 可修改范围 | 更新记录
sql.safe_mode | "0" | PHP_INI_SYSTEM |

以下是配置选项的简要解释。

sql.safe_mode boolean

调试器配置选项

Caution

仅 PHP 3 实现了一个默认的调试器。更多信息请参考PHP 的调试。

debugger.host string

调试器所使用的主机的 DNS 名或 IP 地址。

debugger.port string

调试器所用的端口号。

debugger.enabled boolean

是否启用调试器。

php.ini 配置选项列表
扩展库分类
php.ini 配置选项


扩展库分类

Table of Contents

  • Alphabetical
  • 按归属分
  • 按状态分

本附录以几种标准将 PHP 手册中有文档的库归为 150 类。

php.ini 核心配置选项说明
Alphabetical
附录


Alphabetical

  • Apache
  • APC
  • APD
  • 数组
  • BBCode
  • BC Math
  • bcompiler
  • Bzip2
  • Calendar
  • Classkit
  • Classes/Objects
  • COM
  • Crack
  • Ctype
  • cURL
  • Cyrus
  • Date/Time
  • DBA
  • dBase
  • DB++
  • dbx
  • Direct IO
  • Directories
  • DOM
  • DOM XML
  • .NET
  • Enchant
  • Error Handling
  • Program execution
  • Exif
  • Expect
  • FAM
  • FrontBase
  • FDF
  • Fileinfo
  • filePro
  • Filesystem
  • Filter
  • FriBiDi
  • FTP
  • Function Handling
  • GeoIP
  • Gettext
  • GMP
  • GnuPG
  • haru
  • Hash
  • HTTP
  • Hyperwave API
  • Hyperwave
  • i18n
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • ID3
  • idn
  • Informix
  • IIS
  • GD
  • ImageMagick
  • IMAP
  • inclued
  • PHP Options/Info
  • Ingres
  • Inotify
  • intl
  • Java
  • JSON
  • KADM5
  • LDAP
  • libxml
  • LZF
  • Mail
  • Mailparse
  • Math
  • MaxDB
  • Multibyte String
  • Mcrypt
  • MCVE
  • Memcache
  • Mhash
  • Mimetype
  • Ming
  • Misc.
  • mnoGoSearch
  • mqseries
  • Msession
  • mSQL
  • Mssql
  • MySQL
  • Mysqli
  • Ncurses
  • Gopher
  • Network
  • Newt
  • YP/NIS
  • Lotus Notes
  • NSAPI
  • Object Aggregation
  • OCI8
  • oggvorbis
  • OpenAL
  • OpenSSL
  • Output Control
  • Object overloading
  • Ovrimos SQL
  • Paradox
  • Parsekit
  • PCNTL
  • PCRE
  • PDF
  • PDO
  • PostgreSQL
  • Phar
  • POSIX
  • Printer
  • PS
  • Pspell
  • qtdom
  • Radius
  • Rar
  • Readline
  • Recode
  • POSIX Regex
  • RPM Reader
  • runkit
  • SAM
  • SCA
  • SDO
  • SDO-DAS-Relational
  • SDO DAS XML
  • Semaphore
  • Sessions
  • Session PgSQL
  • Shared Memory
  • SimpleXML
  • SNMP
  • SOAP
  • Sockets
  • Sphinx
  • SPL
  • SPL Types
  • SPPLUS
  • SQLite3
  • SQLite
  • SSH2
  • Statistics
  • Streams
  • Strings
  • SVN
  • SWF
  • Swish
  • Sybase
  • TCP
  • Tidy
  • Tokenizer
  • Unicode
  • ODBC
  • URLs
  • Variable handling
  • vpopmail
  • W32api
  • WDDX
  • win32ps
  • win32service
  • xattr
  • xdiff
  • XML Parser
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • XSLT
  • YAZ
  • Zip
  • Zlib
扩展库分类
按归属分
扩展库分类


按归属分

核心扩展库

以下并非真正的扩展库，它们属于 PHP 内核的一部分，不能通过编译选项将其排除。

  • 数组

  • Classes/Objects

  • Date/Time

  • Directories

  • Error Handling

  • Program execution

  • Filesystem

  • Function Handling

  • i18n

  • PHP Options/Info

  • Mail

  • Math

  • Misc.

  • Network

  • Output Control

  • POSIX Regex

  • Sessions

  • Streams

  • Strings

  • Tokenizer

  • Unicode

  • URLs

  • Variable handling

绑定的扩展库

以下扩展库绑定在 PHP 发行包中。

  • Apache

  • BC Math

  • Bzip2

  • Calendar

  • COM

  • Ctype

  • cURL

  • DBA

  • dBase

  • DOM

  • .NET

  • Exif

  • FrontBase

  • FDF

  • FTP

  • Gettext

  • GMP

  • Hash

  • Firebird/InterBase

  • iconv

  • Informix

  • GD

  • IMAP

  • JSON

  • LDAP

  • libxml

  • Multibyte String

  • Mcrypt

  • Mhash

  • Mimetype

  • Ming

  • mSQL

  • Mssql

  • MySQL

  • Mysqli

  • Ncurses

  • NSAPI

  • Object Aggregation

  • OCI8

  • OpenSSL

  • PCNTL

  • PCRE

  • PDO

  • MS SQL Server (PDO)

  • Firebird/Interbase (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • POSIX

  • Pspell

  • Readline

  • Recode

  • Semaphore

  • Shared Memory

  • SimpleXML

  • SNMP

  • SOAP

  • Sockets

  • SPL

  • SQLite

  • SVN

  • Sybase

  • Tidy

  • ODBC

  • WDDX

  • XML Parser

  • XMLReader

  • XML-RPC

  • XSL

  • XSLT

  • Zip

  • Zlib

外部扩展库

要编译以下扩展库，需要外部的库。

  • BBCode

  • Bzip2

  • Crack

  • cURL

  • dBase

  • DB++

  • dbx

  • DOM

  • DOM XML

  • Enchant

  • FAM

  • FrontBase

  • FDF

  • Fileinfo

  • FriBiDi

  • GeoIP

  • Gettext

  • GMP

  • haru

  • Hyperwave

  • Hyperwave API

  • i18n

  • Firebird/InterBase

  • IBM DB2

  • Informix

  • ImageMagick

  • IMAP

  • Ingres

  • Java

  • LDAP

  • libxml

  • MaxDB

  • Mcrypt

  • Memcache

  • Mhash

  • Ming

  • mnoGoSearch

  • Msession

  • mSQL

  • Mssql

  • MySQL

  • Mysqli

  • Ncurses

  • Newt

  • OCI8

  • oggvorbis

  • OpenAL

  • OpenSSL

  • Ovrimos SQL

  • Paradox

  • PDF

  • MS SQL Server (PDO)

  • Firebird/Interbase (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • PostgreSQL

  • PS

  • Pspell

  • qtdom

  • Radius

  • Rar

  • Readline

  • Recode

  • Session PgSQL

  • SimpleXML

  • SNMP

  • SOAP

  • Sphinx

  • SSH2

  • SWF

  • Swish

  • Sybase

  • Tidy

  • Unicode

  • ODBC

  • vpopmail

  • WDDX

  • xattr

  • xdiff

  • XML Parser

  • XMLReader

  • XSL

  • XSLT

  • YAZ

PECL 扩展库

以下扩展来自 » PECL。还有更多的 PECL 扩展但在 PHP 手册中尚未有文档。

  • APC

  • APD

  • BBCode

  • bcompiler

  • Classkit

  • Crack

  • Cyrus

  • DB++

  • dbx

  • Direct IO

  • DOM XML

  • Enchant

  • Expect

  • FAM

  • Fileinfo

  • filePro

  • Filter

  • FriBiDi

  • GeoIP

  • GnuPG

  • haru

  • Hash

  • HTTP

  • Hyperwave

  • Hyperwave API

  • IBM DB2

  • ID3

  • idn

  • IIS

  • ImageMagick

  • Ingres

  • Java

  • JSON

  • KADM5

  • LZF

  • Mailparse

  • MaxDB

  • MCVE

  • Memcache

  • mnoGoSearch

  • Msession

  • Ncurses

  • Gopher

  • Newt

  • YP/NIS

  • Lotus Notes

  • oggvorbis

  • OpenAL

  • Ovrimos SQL

  • Paradox

  • Parsekit

  • PDF

  • PDO

  • MS SQL Server (PDO)

  • Firebird/Interbase (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • Phar

  • Printer

  • PS

  • qtdom

  • Radius

  • Rar

  • RPM Reader

  • runkit

  • SAM

  • SCA

  • SDO

  • SDO DAS XML

  • SDO-DAS-Relational

  • Session PgSQL

  • Sphinx

  • SSH2

  • Statistics

  • SVN

  • SWF

  • Swish

  • TCP

  • Tidy

  • vpopmail

  • W32api

  • win32ps

  • win32service

  • xattr

  • xdiff

  • XMLReader

  • XMLWriter

  • YAZ

  • Zip

Alphabetical
按状态分
扩展库分类


按状态分

以下列出的扩展库不适用于实际运作环境中――要么太老（已废弃），要么太新（试验中）。

已废弃的扩展库

以下扩展库已被废弃，通常有更好的扩展库替代。

  • Mimetype

  • Object overloading

试验中的扩展库

以下扩展库的行为――包括其中函数名和任何其它文档中的说明――可能没有任何通知就在未来发布的 PHP 中改变。要使用风险自担。

  • bcompiler

  • DB++

  • .NET

  • haru

  • Hash

  • ImageMagick

  • Java

  • Ming

  • Ncurses

  • Newt

  • Lotus Notes

  • Object Aggregation

  • Paradox

  • MS SQL Server (PDO)

  • Firebird/Interbase (PDO)

  • Oracle (PDO)

  • PS

  • qtdom

  • SCA

  • SDO-DAS-Relational

  • Sphinx

  • Swish

  • vpopmail

  • W32api

  • XML-RPC

按归属分
函数别名列表
扩展库分类


函数别名列表

这里是函数别名列表，所有的别名列表如下。通常使用别名并不是一个好主意，这是因为它可能会废弃不用或者重新定义。这会导致不可移植脚本的出现。本列表是为了帮助想要升级他们旧有脚本到新版本语法的开发人员。很多 PHP 函数都有一个别名，可以用别名调用它。在某些情况下，两个名称都非常合适，无从取舍，is_int() 和 is_integer() 就是一个很好的例子。而有些情况则是，由于内部 API 的清理或其它一些原因，函数名被修改，但是老的名称保留了下来，以确保向后兼容性。使用这种别名通常不是个好主意，因为这种别名可能会被完全废弃或更名，导致脚本难以移植到新版本的 PHP 上。我们提供了本列表，来帮助那些要升级旧程序到更新语法的人。

该列表基于 PHP 4.0.6。

别名列表
别名 | 主函数 | 使用的扩展模块
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | 基本语法
close | closedir() | 基本语法
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | 杂类函数
dir | getdir() | 基本语法
diskfreespace | disk_free_space() | 文件系统函数
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | 基本语法
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | 基本语法
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | 多字节字符串函数
i18n_discover_encoding | mb_detect_encoding() | 多字节字符串函数
i18n_http_input | mb_http_input() | 多字节字符串函数
i18n_http_output | mb_http_output() | 多字节字符串函数
i18n_internal_encoding | mb_internal_encoding() | 多字节字符串函数
i18n_ja_jp_hantozen | mb_convert_kana() | 多字节字符串函数
i18n_mime_header_decode | mb_decode_mimeheader() | 多字节字符串函数
i18n_mime_header_encode | mb_encode_mimeheader() | 多字节字符串函数
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | 基本语法
is_double | is_float() | 基本语法
is_integer | is_int() | 基本语法
is_long | is_int() | 基本语法
is_real | is_float() | 基本语法
is_writeable | is_writable() | 基本语法
join | implode() | 基本语法
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | 基本语法
mbstrcut | mb_strcut() | 多字节字符串函数
mbstrlen | mb_strlen() | 多字节字符串函数
mbstrpos | mb_strpos() | 多字节字符串函数
mbstrrpos | mb_strrpos() | 多字节字符串函数
mbsubstr | mb_substr() | 多字节字符串函数
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | 基本语法
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | 基本语法
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file () | 基本语法
sizeof | count() | 基本语法
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | 基本语法
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

按状态分
保留字列表
附录


保留字列表

Table of Contents

  • 关键词列表
  • 预定义类
  • 预定义常量

以下是 PHP 中预定义标识符的列表。没有列在下面的标识符可以在脚本中作为自定义标识符使用。这些列表包括关键字和预定义变量、常量和类名。这些列表可能有遗漏，它是不完整的。

函数别名列表
关键词列表
附录


关键词列表

这些词语在 PHP 中有着特殊的意义。它们中有些像是函数，有些像是常量……但是它们不是的，它们只是语言结构的一部分。不能使用它们的任何一个作为常量、方法名或是类名。但是可以将它们作为变量名使用，不过这样会导致混淆。

PHP 关键词
and | or | xor | __FILE__ | exception (PHP 5)
__LINE__ | array() | as | break | case
class | const | continue | declare | default
die() | do | echo() | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
for | foreach | function | global | if
include() | include_once() | isset() | list() | new
print() | require() | require_once() | return() | static
switch | unset() | use | var | while
__FUNCTION__ | __CLASS__ | __METHOD__ | final (PHP 5) | php_user_filter (PHP 5)
interface (PHP 5) | implements (PHP 5) | extends | public (PHP 5) | private (PHP 5)
protected (PHP 5) | abstract (PHP 5) | clone (PHP 5) | try (PHP 5) | catch (PHP 5)
throw (PHP 5) | cfunction (PHP 4 only) | this (PHP 5 only) |
保留字列表
预定义类
保留字列表


预定义类

本节列出标准的预定义类。各种扩展库定义了其它类，其说明在各自的参考文档中。

标准类

这些类由一些内建在 PHP 中的标准函数定义。

Directory
在 dir 中用来实例化的类。
stdClass
__PHP_Incomplete_Class

自 PHP 5 起预定义的类

这些额外的预定义类是 PHP 5.0.0 引进的。

exception
php_user_filter
关键词列表
预定义常量
保留字列表


预定义常量

内核预定义常量

这些常量在 PHP 的内核中定义。它包含 PHP、Zend 引擎和 SAPI 模块。

PHP_VERSION (string)
PHP_OS (string)
PHP_SAPI (string)
自 PHP 4.2.0 起可用。参见 php_sapi_name()。
PHP_EOL (string)
自 PHP 4.3.10 和 PHP 5.0.2 起可用
PHP_INT_MAX (integer)
自 PHP 4.4.0 和 PHP 5.0.5 起可用
PHP_INT_SIZE (integer)
自 PHP 4.4.0 和 PHP 5.0.5 起可用
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
PHP_PREFIX (string)
自 PHP 4.3.0 起可用
PHP_BINDIR (string)
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
自 PHP 4.3.0 起可用
PHP_OUTPUT_HANDLER_START (integer)
PHP_OUTPUT_HANDLER_CONT (integer)
PHP_OUTPUT_HANDLER_END (integer)
E_ERROR (integer)
E_WARNING (integer)
E_PARSE (integer)
E_NOTICE (integer)
E_CORE_ERROR (integer)
E_CORE_WARNING (integer)
E_COMPILE_ERROR (integer)
E_COMPILE_WARNING (integer)
E_USER_ERROR (integer)
E_USER_WARNING (integer)
E_USER_NOTICE (integer)
E_ALL (integer)
E_STRICT (integer)
从 PHP 5.0.0 起有效
__COMPILER_HALT_OFFSET__ (integer)
自 PHP 5.1.0 起有效

参见魔术常量。

标准预定义常量

这些常量是 PHP 默认定义的。

EXTR_OVERWRITE (integer)
EXTR_SKIP (integer)
EXTR_PREFIX_SAME (integer)
EXTR_PREFIX_ALL (integer)
EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)
EXTR_IF_EXISTS (integer)
SORT_ASC (integer)
SORT_DESC (integer)
SORT_REGULAR (integer)
SORT_NUMERIC (integer)
SORT_STRING (integer)
CASE_LOWER (integer)
CASE_UPPER (integer)
COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
ASSERT_ACTIVE (integer)
ASSERT_CALLBACK (integer)
ASSERT_BAIL (integer)
ASSERT_WARNING (integer)
ASSERT_QUIET_EVAL (integer)
CONNECTION_ABORTED (integer)
CONNECTION_NORMAL (integer)
CONNECTION_TIMEOUT (integer)
INI_USER (integer)
INI_PERDIR (integer)
INI_SYSTEM (integer)
INI_ALL (integer)
M_E (float)
M_LOG2E (float)
M_LOG10E (float)
M_LN2 (float)
M_LN10 (float)
M_PI (float)
M_PI_2 (float)
M_PI_4 (float)
M_1_PI (float)
M_2_PI (float)
M_2_SQRTPI (float)
M_SQRT2 (float)
M_SQRT1_2 (float)
CRYPT_SALT_LENGTH (integer)
CRYPT_STD_DES (integer)
CRYPT_EXT_DES (integer)
CRYPT_MD5 (integer)
CRYPT_BLOWFISH (integer)
DIRECTORY_SEPARATOR (string)
SEEK_SET (integer)
SEEK_CUR (integer)
SEEK_END (integer)
LOCK_SH (integer)
LOCK_EX (integer)
LOCK_UN (integer)
LOCK_NB (integer)
HTML_SPECIALCHARS (integer)
HTML_ENTITIES (integer)
ENT_COMPAT (integer)
ENT_QUOTES (integer)
ENT_NOQUOTES (integer)
INFO_GENERAL (integer)
INFO_CREDITS (integer)
INFO_CONFIGURATION (integer)
INFO_MODULES (integer)
INFO_ENVIRONMENT (integer)
INFO_VARIABLES (integer)
INFO_LICENSE (integer)
INFO_ALL (integer)
CREDITS_GROUP (integer)
CREDITS_GENERAL (integer)
CREDITS_SAPI (integer)
CREDITS_MODULES (integer)
CREDITS_DOCS (integer)
CREDITS_FULLPAGE (integer)
CREDITS_QA (integer)
CREDITS_ALL (integer)
STR_PAD_LEFT (integer)
STR_PAD_RIGHT (integer)
STR_PAD_BOTH (integer)
PATHINFO_DIRNAME (integer)
PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)
PATH_SEPARATOR (string)
CHAR_MAX (integer)
LC_CTYPE (integer)
LC_NUMERIC (integer)
LC_TIME (integer)
LC_COLLATE (integer)
LC_MONETARY (integer)
LC_ALL (integer)
LC_MESSAGES (integer)
ABDAY_1 (integer)
ABDAY_2 (integer)
ABDAY_3 (integer)
ABDAY_4 (integer)
ABDAY_5 (integer)
ABDAY_6 (integer)
ABDAY_7 (integer)
DAY_1 (integer)
DAY_2 (integer)
DAY_3 (integer)
DAY_4 (integer)
DAY_5 (integer)
DAY_6 (integer)
DAY_7 (integer)
ABMON_1 (integer)
ABMON_2 (integer)
ABMON_3 (integer)
ABMON_4 (integer)
ABMON_5 (integer)
ABMON_6 (integer)
ABMON_7 (integer)
ABMON_8 (integer)
ABMON_9 (integer)
ABMON_10 (integer)
ABMON_11 (integer)
ABMON_12 (integer)
MON_1 (integer)
MON_2 (integer)
MON_3 (integer)
MON_4 (integer)
MON_5 (integer)
MON_6 (integer)
MON_7 (integer)
MON_8 (integer)
MON_9 (integer)
MON_10 (integer)
MON_11 (integer)
MON_12 (integer)
AM_STR (integer)
PM_STR (integer)
D_T_FMT (integer)
D_FMT (integer)
T_FMT (integer)
T_FMT_AMPM (integer)
ERA (integer)
ERA_YEAR (integer)
ERA_D_T_FMT (integer)
ERA_D_FMT (integer)
ERA_T_FMT (integer)
ALT_DIGITS (integer)
INT_CURR_SYMBOL (integer)
CURRENCY_SYMBOL (integer)
CRNCYSTR (integer)
MON_DECIMAL_POINT (integer)
MON_THOUSANDS_SEP (integer)
MON_GROUPING (integer)
POSITIVE_SIGN (integer)
NEGATIVE_SIGN (integer)
INT_FRAC_DIGITS (integer)
FRAC_DIGITS (integer)
P_CS_PRECEDES (integer)
P_SEP_BY_SPACE (integer)
N_CS_PRECEDES (integer)
N_SEP_BY_SPACE (integer)
P_SIGN_POSN (integer)
N_SIGN_POSN (integer)
DECIMAL_POINT (integer)
RADIXCHAR (integer)
THOUSANDS_SEP (integer)
THOUSEP (integer)
GROUPING (integer)
YESEXPR (integer)
NOEXPR (integer)
YESSTR (integer)
NOSTR (integer)
CODESET (integer)
LOG_EMERG (integer)
LOG_ALERT (integer)
LOG_CRIT (integer)
LOG_ERR (integer)
LOG_WARNING (integer)
LOG_NOTICE (integer)
LOG_INFO (integer)
LOG_DEBUG (integer)
LOG_KERN (integer)
LOG_USER (integer)
LOG_MAIL (integer)
LOG_DAEMON (integer)
LOG_AUTH (integer)
LOG_SYSLOG (integer)
LOG_LPR (integer)
LOG_NEWS (integer)
LOG_UUCP (integer)
LOG_CRON (integer)
LOG_AUTHPRIV (integer)
LOG_LOCAL0 (integer)
LOG_LOCAL1 (integer)
LOG_LOCAL2 (integer)
LOG_LOCAL3 (integer)
LOG_LOCAL4 (integer)
LOG_LOCAL5 (integer)
LOG_LOCAL6 (integer)
LOG_LOCAL7 (integer)
LOG_PID (integer)
LOG_CONS (integer)
LOG_ODELAY (integer)
LOG_NDELAY (integer)
LOG_NOWAIT (integer)
LOG_PERROR (integer)
预定义类
资源类型列表
保留字列表


资源类型列表

以下是一个建立，使用和销毁资源的函数列表。可以用 is_resource() 函数测定一个变量是否是资源，函数 get_resource_type() 则返回该资源的类型。

资源类型
资源类型名称 | 建立者 | 使用者 | 销毁者 | 定义
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | None | Aspell dictionary
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 file
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | None | COM object reference
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | PDF document with CPDF lib
cpdf outline
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | Curl session
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Link to DBM database
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Link to DBA base
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | None | Persistent link to DBA base
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Link to Dbase base
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | None | dbx result
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_create_clob(), fbsql_db_query(), fbsql_db_status(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() | fbsql_close() | Link to fbsql database
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | None | Persistent link to fbsql database
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | FDF File
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | FTP stream
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | GD Image
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | Font for GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | PS font for GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | None | GMP Number
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Hyperwave object
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Link to Hyperwave server
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | None | Persistent link to Hyperwave server
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Link to icap server
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Link to IMAP, POP3 server
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Link to ingresII base
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | None | Persistent link to ingresII base
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Link to Interbase database
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | None | Persistent link to Interbase database
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase query
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Result
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase transaction
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | ldap connection
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | ldap search result
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Link to calendar server
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Link to mSQL database
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | None | Persistent link to mSQL
msql query | msql_db_query(), msql_list_dbs(), msql_list_fields(), msql_list_tables(), msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_field_seek(), msql_field_table(), msql_field_flags(), msql_field_len(), msql_field_name(), msql_field_type(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | mSQL result
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Link to Microsoft SQL Server database
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | None | Persistent link to Microsoft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Microsoft SQL Server result
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Link to MySQL database
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | None | Persistent link to MySQL database
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL result
oci8 collection
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Link to Oracle database
oci8 descriptor
oci8 server
oci8 session
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Oracle Cursor
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Link to ODBC database
odbc link persistent | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | None | Persistent link to ODBC database
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC result
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
oracle Cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Oracle cursor
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Link to oracle database
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | None | Persistent link to oracle database
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_add_thumbnail(), pdf_arcn(), pdf_begin_pattern(), pdf_begin_template(), pdf_end_pattern(), pdf_end_template(), pdf_initgraphics(), pdf_makespotcolor(), pdf_set_info(), pdf_setcolor(), pdf_setmatrix(), pdf_open_memory_image() | pdf_close(), pdf_delete() | PDF document
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Image in PDF file
pdf object
pdf outline
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Link to PostgreSQL database
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | None | Persistent link to PostgreSQL database
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL result
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | None | pspell dictionary
pspell config | pspell_config_create() | pspell_new_config() | None | pspell configuration
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | XSLT parser
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | opendir() | readdir(), rewinddir() | closedir() | Dir handle
stream | fopen() tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fsockopen() pfsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using DB library
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using DB library
sybase-db result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using DB library
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using CT library
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using CT library
sybase-ct result | sybase_query(), sybase_unbuffered_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using CT library
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML parser
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-compressed file

预定义常量
支持的协议／封装协议列表
附录


支持的协议／封装协议列表

Table of Contents

  • 文件系统
  • Socket
  • HTTP 和 HTTPS
  • FTP 和 FTPS
  • PHP 输入／输出流
  • 压缩流
  • Secure Shell 2
  • 音频流
  • 处理交互式流

以下是 PHP 内置用于文件系统函数例如 fopen() 和 copy() 的 URL 风格协议列表。除了这些封装协议之外，从 PHP 4.3 起，还可以用 PHP 脚本和 stream_wrapper_register() 写自己的封装协议。

资源类型列表
文件系统
附录


文件系统

所有版本的 PHP。自 PHP 4.3.0 以来明确使用 file://。

  • /path/to/file.ext
  • relative/path/to/file.ext
  • fileInCwd.ext
  • C:/path/to/winfile.ext
  • C:\path\to\winfile.ext
  • \\smbserver\share\path\to\winfile.ext
  • file:///path/to/file.ext

file:// 是 PHP 默认的描述本地文件系统的封装协议。指定相对路径 (相对路径名不开始于 /、\、\\ 或 Windows 盘符) 时，该路径是相对于当前的工作目录。在很多情况下工作目录就是当前执行的脚本所在的目录，除非它被改变。使用 CLI sapi 时，默认是调用该脚本时终端所处的目录。

某些函数，例如 fopen() 和 file_get_contents()，会自动搜索 include_path 作为相对路径。

封装协议摘要
属性 | 支持
受限于 allow_url_fopen。 | 否
允许读取 | 是
允许写入 | 是
允许附加 | 是
允许同时读写 | 是
支持 stat() | 是
支持 unlink() | 是
支持 rename() | 是
支持 mkdir() | 是
支持 rmdir() | 是

支持的协议／封装协议列表
Socket
支持的协议／封装协议列表


Socket

本节包含支持可工作于套接字的封装协议的上下文选项，如 tcp，http 或 ftp。

自 PHP 5.1.0 起只支持一个选项，bindto，可用来指定 IP 地址（可以是 IPv4 或 IPv6）和／或 PHP 将用来访问网络的端口号。语法是 ip:port（如果想让系统自动选择可以将 IP 或端口号设为 0）。

Note: 因 FTP 在正常运行时创建两个套接字连接，此时不能在 bindto 选项中指定端口号。因此对于 FTP wrapper 只支持一种语法 ip:0。

Example #1 怎样使用 bindto 选项的一些例子

<?php
// connect to the internet using the '192.168.0.100' IP
$opts = array('socket' =>
            array('bindto' => '192.168.0.100:0'));

// connect to the internet using the '192.168.0.100' IP and port '7000'
$opts = array('socket' =>
            array('bindto' => '192.168.0.100:7000'));

// connect to the internet using port '7000'
$opts = array('socket' =>
            array('bindto' => '0:7000'));

// create the context...
$context = stream_context_create($opts);

// ...and use it to fetch the data
echo file_get_contents('http://www.example.com', false, $context);

?>
文件系统
HTTP 和 HTTPS
支持的协议／封装协议列表


HTTP 和 HTTPS

PHP 3, PHP 4, PHP 5。自 PHP 4.3.0 起支持 https://

  • http://example.com
  • http://example.com/file.php?var1=val1&var2=val2
  • http://user:password@example.com
  • https://example.com
  • https://example.com/file.php?var1=val1&var2=val2
  • https://user:password@example.com

允许通过 HTTP 1.0 使用 HTTP GET 方法对文件／资源进行只读访问。Host: 报头也会通过请求发送出去以支持基于域名的虚拟主机。如果在 ini 文件或者流上下文配置了 user_agent 字符串，也会被包括在请求报头中。

Warning

当使用 SSL 时，Microsoft IIS 将违反协议不发送 close_notify 标记就关闭连接。PHP 将在到达数据尾端时报告 "SSL: Fatal Protocol Error"。要绕过此问题，应将 error_reporting 级别降低为不包括警告。PHP 4.3.7 及更高版本可以在当使用 https:// 封装协议打开流的时候检测出有此问题的 IIS 服务器并抑制警告。如果使用 fsockopen() 来创建一个 ssl:// 套接字，则需要自己检测并抑制警告信息。

自 PHP 4.0.5 起支持重定向。如果使用较早版本的 PHP 则需要在 URL 末尾包括一个斜线。如果一定要知道文档所在的资源的 url（在所有重定向被处理过之后），则需要处理从流返回的一系列响应报头信息。

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* 在 PHP 4.3.0 之前使用 $http_response_header
   而不是 stream_get_meta_data() */
$meta_data = stream_get_meta_data($fp);
foreach($meta_data['wrapper_data'] as $response) {

  /* 重定向到何处? */
  if (substr(strtolower($response), 0, 18) == 'content-location: ') {
    /* 把要重定向的链接赋值给 $url */
    $url = substr($response, 18);
  }
}
?>

流允许访问资源的正文，报头部分保存在 $http_response_header 变量中。自 PHP 4.3.0 起，可以用 stream_get_meta_data() 得到报头。

HTTP 连接是只读的，不能将数据写入或者拷贝文件到 HTTP 资源。

Note: 自 PHP 4.3.0 起开始支持 HTTPS，需要在编译时加入 OpenSSL 的支持。

Wrapper Summary
属性 | 支持
受限于 allow_url_fopen | 是
允许读取 | 是
允许写入 | 否
允许附加 | 否
允许同时读写 | 无效
支持 stat() | 否
支持 unlink() | 否
支持 rename() | 否
支持 mkdir() | 否
支持 rmdir() | 否

上下文选项
名称 | 用法 | 默认值
method | GET、POST 或任何其它被远程服务器支持的 HTTP 方式。 | GET
header | 请求中要发送的附加的头信息。此选项中的值将覆盖其它值（例如 User-agent:，Host: 和 Authentication:）。 |
user_agent | 在 User-Agent: 头信息中要发送的值。此值仅用于没有在上面 header 的上下文选项中指定 user-agent 时。 | php.ini 设置：user_agent
content | 头信息之后要发送的附加数据。典型用于 POST 或 PUT 请求。 |
proxy | 以 URI 格式指定的代理服务器（例如 tcp://proxy.example.com:5100）。HTTPS 代理（通过 HTTP 代理服务器）仅在 PHP 5.1.0 或更高版本可用。 |
request_fulluri | 设置为 TRUE 时，建立请求时整个 URI 将被使用。(即 GET http://www.example.com/path/to/file.html HTTP/1.0)。 而这是一个非标准请求格式，某些代理服务器需要它。 | FALSE
max_redirects | 连续重定向的最大值。取值为 1 或更小的值表示不跟随重定向。PHP 5.1.0 新加的。 | 20

Note: 底层的套接字流（socket stream）上下文选项
有可能通过底层传输（underlying transport）支持附加的上下文选项。对于 http:// 流，参考 tcp:// 传输的上下文选项。对于 https:// 流，参考 ssl:// 传输的上下文选项。

Socket
FTP 和 FTPS
支持的协议／封装协议列表


FTP 和 FTPS

PHP 3，PHP 4，PHP 5。自 PHP 4.3.0 起支持 ftps://

  • ftp://example.com/pub/file.txt
  • ftp://user:password@example.com/pub/file.txt
  • ftps://example.com/pub/file.txt
  • ftps://user:password@example.com/pub/file.txt

允许对已有文件进行只读访问以及通过 FTP 建立新文件。如果服务器不支持被动模式的 ftp，则连接会失败。

可以用读或者写的方式打开文件，但不能同时是读写。如果 ftp 服务器上已经存在远程文件而试图用写的方式打开但又没有指定 overwrite 的上下文选项，则连接会失败。如果想通过 ftp 更新已有的文件，则在上下文中指定 overwrite 选项并用写的方式打开。还可以用 FTP 扩展。

Note: 追加文件
自 PHP 5.0.0 起可以通过 ftp:// URL 协议来追加文件。在之前的版本试图通过 ftp:// 来追加文件会导致失败。

ftps:// 是 PHP 4.3.0 引进的。它和 ftp:// 相同，但是尝试和 ftp 服务器建立一个安全连接。如果服务器不支持 SSL，则会返回一个普通的未加密的 ftp 连接。

Note: 自 PHP 4.3.0 起开始支持 FTPS，需要在编译时加入 OpenSSL 的支持。

Wrapper Summary
属性 | PHP 4 | PHP 5
受限于 allow_url_fopen。 | 是 | 是
允许读取 | 是 | 是
允许写入 | 是（仅允许写入新文件） | 是（允许使用 overwrite 参数覆盖新文件）
允许附加 | 否 | 是（PHP 5.0.0 或更新版本）
允许同时读写 | 否 | 否
支持 stat() | 否 | PHP 5.0.0：仅在 filesize()，filetype()，file_exists()，is_file() 和 is_dir() 中支持。PHP 5.1.0：filemtime()。
支持 unlink() | 否 | 是
支持 rename() | 否 | 是
支持 mkdir() | 否 | 是
支持 rmdir() | 否 | 是

上下文选项（自 PHP 5.0 起）
名称 | 用法 | 默认值
overwrite | 允许覆盖远程服务器上已存在的文件。仅适用于写入模式（上传）。 | FALSE（禁用）
resume_pos | 开始传输的文件偏移量。仅适用于读取模式（下载）。 | 0（文件头）
proxy(PHP 5.1.0 或更高版本) | 通过 HTTP 代理服务器对 FTP 发出请求 仅能进行文件读取操作。 例如：tcp://squid.example.com:8000 |

Note: 底层套接字流上下文选项（Underlying socket stream context options）
有可能通过底层传输（underlying transport）支持附加的上下文选项。对于 ftp:// 流，参考 tcp:// 传输的上下文选项。对于 ftps:// 流，参考 ssl:// 传输的上下文选项。

HTTP 和 HTTPS
PHP 输入／输出流
支持的协议／封装协议列表


PHP 输入／输出流

PHP 3.0.13 及以上版本，自 PHP 4.3.0 起支持 php://output 和 php://input，自 PHP 5.0.0 起支持 php://filter。

  • php://stdin
  • php://stdout
  • php://stderr
  • php://output
  • php://input
  • php://filter

php://stdin，php://stdout 和 php://stderr 允许访问 PHP 进程相应的输入或者输出流。

php://output 允许向输出缓冲机制写入数据，和 print() 与 echo() 的方式相同。

php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来，它给内存带来的压力较小，并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。

php://stdin 和 php://input 是只读的，同时 php://stdout，php://stderr 和 php://output 是只写的。

php://filter 是一种设计用来允许过滤器程序在打开时成为流的封装协议。这对于单独具有完整功能的文件函数例如 readfile()，file() 和 file_get_contents() 很有用，否则就没有机会在读取内容之前将过滤器应用于流之上。

php://filter 的目标接受随后的“参数”作为其“路径”的一部分。

  • /resource=<stream to be filtered> (required) 此参数必须位于 php://filter 的末尾并且需要指向向要过滤的流。

    <?php
    /* This is equivalent to simply:
       readfile("http://www.example.com");
       since 否 filters are actually specified */

    readfile("php://filter/resource=http://www.example.com");
    ?>

  • /read=<filter list to apply to read chain> (optional) 本参数接受一个或多个过滤器的名字，用管道字符 | 分隔。

    <?php
    /* This will output the contents of
       www.example.com entirely in uppercase */
    readfile("php://filter/read=string.toupper/resource=http://www.example.com");

    /* This will do the same as above
       but will also ROT13 encode it */
    readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
    ?>

  • /write=<filter list to apply to write chain> (optional) 本参数接受一个或多个过滤器的名字，用管道字符 | 分隔。

    <?php
    /* 下面的语句将使用 rot13 过滤器过滤 "Hello World"
       字符串，并写入当前目录下的 example.txt */
    file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
    ?>

  • /<filter list to apply to both chains> (optional) 任何没有被 read= 或 write= 指定的过滤器会被同时应用于读写链。

封装协议摘要（对于 php://filter，是指被过滤的封装器摘要。）
属性 | 支持
受限于 allow_url_fopen。 | 否
允许读取 | 仅在 php://stdin 和 php://input 中允许。
允许写入 | 仅在 php://stdout, php://stderr, 和 php://output 中允许。
允许附加 | 仅在 php://stdout, php://stderr, 和 php://output 中允许 (与写入相同)。
允许同时读写 | 否。这些封装器是单向的。
支持 stat() | 否
支持 unlink() | 否
支持 rename() | 否
支持 mkdir() | 否
支持 rmdir() | 否

FTP 和 FTPS
压缩流
支持的协议／封装协议列表


压缩流

zlib: PHP 4.0.4 - PHP 4.2.3（仅用于带 fopencookie 的系统）

PHP 4.3.0 及以上版本支持 compress.zlib:// 和 compress.bzip2://

  • zlib:
  • compress.zlib://
  • compress.bzip2://

zlib: 和 gzopen() 的工作方式相象，只除了流可以用于 fread() 和其它文件系统函数。自 PHP 4.3.0 起已不赞成使用，因为可能会和包含有“:”字符的文件名混淆，用 compress.zlib:// 代替。

compress.zlib:// 和 compress.bzip2:// 各自等同于 gzopen() 和 bzopen()，并且可以在不支持 fopencookie 的系统中使用。

封装协议摘要
属性 | 支持
受限于 allow_url_fopen。 | 否
允许读取 | 是
允许写入 | 是
允许附加 | 是
允许同时读写 | 否
支持 stat() | 否，请使用 file:// 封装器统计压缩文件。
支持 unlink() | 否，请使用 file:// 封装器删除压缩文件。
支持 rename() | 否
支持 mkdir() | 否
支持 rmdir() | 否

PHP 输入／输出流
Secure Shell 2
支持的协议／封装协议列表


Secure Shell 2

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 及以上版本 (PECL)

  • ssh2.shell://user:pass@example.com:22/xterm
  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
  • ssh2.sftp://user:pass@example.com:22/path/to/filename

Note: 该封装器默认没有启用
要使用 ssh2.*:// 封装器，必须安装 » SSH2 扩展。可以到 » PECL 下载。

除了接受传统 URI 的登录信息外，ssh2 封装器也重用主机 URL 的一部分的连接资源。

Example #1 为活动连接打开流

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
                                            '/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

封装协议摘要
属性 | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
受限于 allow_url_fopen。 | 是 | 是 | 是 | 是 | 是
允许读取 | 是 | 是 | 是 | 是 | 是
允许写入 | 是 | 是 | 是 | 是 | 否
允许附加 | 否 | 否 | 否 | 是 (若服务器支持) | 否
允许同时读写 | 是 | 是 | 是 | 是 | 否
支持 stat() | 否 | 否 | 否 | 是 | 否
支持 unlink() | 否 | 否 | 否 | 是 | 否
支持 rename() | 否 | 否 | 否 | 是 | 否
支持 mkdir() | 否 | 否 | 否 | 是 | 否
支持 rmdir() | 否 | 否 | 否 | 是 | 否

上下文选项
名称 | 用法 | 默认
session | 可重用预连接的 ssh2 连接资源 |
sftp | 可重用预分配的 sftp 连接资源 |
methods | 要使用的 Key exchange, hostkey, cipher, compression, 和 MAC 方法 |
callbacks |  |
username | 连接的用户名 |
password | 密码认证时需要的密码 |
pubkey_file | 认证需要的 public key 文件名 |
privkey_file | 认证需要的 private key 文件名 |
env | 要设置的环境变量的数组 |
term | 当分配一个控制台时使用的终端类型 |
term_width | 当分配一个控制台时终端的宽度 |
term_height | 当分配一个控制台时终端的高度 |
term_units | 与 term_width 和 term_height 一同使用的单元 | SSH2_TERM_UNIT_CHARS

压缩流
音频流
支持的协议／封装协议列表


音频流

ogg:// PHP 4.3.0 及更高版本 (PECL)

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Note: 此封装器默认没有启用
要使用 ogg:// 封装器，您必须安装 » OGG/Vorbis 扩展。可用在 » PECL 找到。

通过 ogg:// 封装器打开的文件，被当作使用 OGG/Vorbis 编码压缩的音频文件来读取。类似地，通过 ogg:// 封装器写入或附加的文件，被当作使用 OGG/Vorbis 编码压缩的音频文件来写入。 stream_get_meta_data()，当使用在打开读取的 OGG/Vorbis 文件时，返回该文件流的详细信息，包括：vendor 标签， comments ， channels , rate 采样率, 和编码范围。编码范围用如下参数描述： bitrate_lower , bitrate_upper , bitrate_nominal , 和 bitrate_window 。

封装协议摘要
属性 | 支持
受限于 allow_url_fopen。 | 否
允许读取 | 是
允许写入 | 是
允许附加 | 是
允许同时读写 | 否
支持 stat() | 否
支持 unlink() | 否
支持 rename() | 否
支持 mkdir() | 否
支持 rmdir() | 否

上下文选项
名称 | 用法 | 默认 | 模式
pcm_mode | 读取时使用如下 PCM 编码之一: OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE, 和 OGGVORBIS_PCM_S16_LE。 (8 或 16 位，签名或未签名，大或小的 endian) | OGGVORBIS_PCM_S16_LE | 读取
rate | 输入数据的采样率，单位为 Hz | 44100 | 写入/附加
bitrate | 若给的值为整数，则是用固定的比特率进行编码。(16000 到 131072) 若给的值为浮点数，则使用可变的比特率品质。(-1.0 到 1.0) | 128000 | 写入/附加
channels | 要编码的声道的数量，典型为 1 (单声道), 或 2 (立体声)。最高支持 16 声道。 | 2 | 写入/附加
comments | 编码到音轨头部的字符串数组。 |  | 写入/附加

Secure Shell 2
处理交互式流
支持的协议／封装协议列表


处理交互式流

expect:// PHP 4.3.0 及更高版（PECL）

  • expect://command

Note: 本封装协议默认未启用
要使用 expect:// 封装协议，必须安装 » Expect 扩展库，其来自 » PECL。

通过 expect:// 封装协议打开的流提供了通过 PTY 访问进程的 stdio，stdout 和 stderr 的许可。

封装协议概要
属性 | 支持
受 allow_url_fopen 限制 | 否
允许读取 | 是
允许写入 | 是
允许附加 | 是
允许同时读取和写入 | 否
支持 stat() | 否
支持 unlink() | 否
支持 rename() | 否
支持 mkdir() | 否
支持 rmdir() | 否

音频流
可用过滤器列表
支持的协议／封装协议列表


可用过滤器列表

Table of Contents

  • 字符串过滤器
  • 转换过滤器
  • 压缩过滤器
  • 加密过滤器

下面列出了用在 stream_filter_append() 中的几个内置的流过滤器。用户的 PHP 版本中的过滤器也许比这里列出的更多（或更少）。

值得指出 stream_filter_append() 与 stream_filter_prepend() 之间有少许不平衡。每个 PHP 流都含有一个小的读取缓冲区，它存储了来自文件系统或其它资源的几段数据以便更有效率地处理。数据一从资源进入流的内部缓冲区，立刻被附上的过滤器处理而不管 PHP 程序是否真的已经准备好接收数据。当过滤器是 appended 时如果数据等待在读取缓冲区，数据将被立即通过过滤器处理，使其效果看上去是透明的。然而当过滤器是 prepended 时如果数据等待在读取缓冲区，数据将不会被该过滤器处理。该数据将会等到从资源取得下一段数据后才会被处理。

用 stream_get_filters() 来列出 PHP 中已安装的过滤器。

处理交互式流
字符串过滤器
附录


字符串过滤器

每个过滤器都正如其名字暗示的那样工作并与内置的 PHP 字符串函数的行为相对应。对于指定过滤器的更多信息，请参考该函数的手册页。

string.rot13（自 PHP 4.3.0 起）使用此过滤器等同于用 str_rot13() 函数处理所有的流数据。

Example #1 string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs:  Guvf vf n grfg.   */
?>

string.toupper（自 PHP 5.0.0 起）使用此过滤器等同于用 strtoupper() 函数处理所有的流数据。

Example #2 string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs:  THIS IS A TEST.   */
?>

string.tolower（自 PHP 5.0.0 起）使用此过滤器等同于用 strtolower() 函数处理所有的流数据。

Example #3 string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs:  this is a test.   */
?>

string.strip_tags（自 PHP 5.0.0 起）使用此过滤器等同于用 strip_tags() 函数处理所有的流数据。可以用两种格式接收参数：一种是和 strip_tags() 函数第二个参数相似的一个包含有标记列表的字符串，一种是一个包含有标记名的数组。

Example #4 string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */
?>
可用过滤器列表
转换过滤器
可用过滤器列表


转换过滤器

如同 string.* 过滤器，convert.* 过滤器的作用就和其名字一样。转换过滤器是 PHP 5.0.0 添加的。对于指定过滤器的更多信息，请参考该函数的手册页。

convert.base64-encode 和 convert.base64-decode 使用这两个过滤器等同于分别用 base64_encode() 和 base64_decode() 函数处理所有的流数据。convert.base64-encode 支持以一个关联数组给出的参数。如果给出了 line-length ，base64 输出将被用 line-length 个字符为 长度而截成块。如果给出了 line-break-chars ，每块将被用给出的字符隔开。这些参数的效果和用 base64_encode() 再加上 chunk_split() 相同。

Example #1 convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs:  This is a test.  */
?>

convert.quoted-printable-encode 和 convert.quoted-printable-decode 使用此过滤器的 decode 版本等同于用 quoted_printable_decode() 函数处理所有的流数据。没有和 convert.quoted-printable-encode 相对应的函数。convert.quoted-printable-encode 支持以一个关联数组给出的参数。除了支持和 convert.base64-encode 一样的附加参数外，convert.quoted-printable-encode 还支持布尔参数 binary 和 force-encode-first 。convert.base64-decode 只支持 line-break-chars 参数作为从编码载荷中剥离的类型提示。

Example #2 convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs:  =This is a test.=0A  */
?>
字符串过滤器
压缩过滤器
可用过滤器列表


压缩过滤器

虽然压缩封装协议提供了在本地文件系统中 创建 gzip 和 bz2 兼容文件的方法，但不代表可以在网络的流中提供通用压缩的意思，也不代表可以将一个非压缩的流转换成一个压缩流。对此，压缩过滤器可以在任何时候应用于任何流资源。

Note: 压缩过滤器不产生命令行工具如 gzip 的头和尾信息。只是压缩和解压数据流中的有效载荷部分。

zlib.deflate（压缩）和 zlib.inflate（解压）实现了定义与 » RFC 1951 的压缩算法。deflate 过滤器可以接受以一个关联数组传递的最多三个参数。level 定义了压缩强度（1-9）。数字更高通常会产生更小的载荷，但要消耗更多的处理时间。存在两个特殊压缩等级：0（完全不压缩）和 -1（zlib 内部默认值，目前是 6）。window 是压缩回溯窗口大小，以二的次方表示。更高的值（大到 15 ―― 32768 字节）产生更好的压缩效果但消耗更多内存，低的值（低到 9 ―― 512 字节）产生产生较差的压缩效果但内存消耗低。目前默认的 window 大小是 15。memory 用来指示要分配多少工作内存。合法的数值范围是从 1（最小分配）到 9（最大分配）。内存分配仅影响速度，不会影响生成的载荷的大小。

Note: 因为最常用的参数是压缩等级，也可以提供一个整数值作为此参数（而不用数组）。

zlib.* 压缩过滤器自 PHP 版本 5.1.0 起可用，在激活 zlib 的前提下。也可以通过安装来自 » PECL 的 » zlib_filter 包作为一个后门在 5.0.x 版中使用。此过滤器在 PHP 4 中不可用。

Example #1 zlib.deflate 和 zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* Use readfile and zlib.inflate to decompress on the fly */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

 */
?>

Example #2 zlib.deflate 简单参数用法

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* Here "6" indicates compression level 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.

 */
?>

bzip2.compress 和 bzip2.decompress 工作的方式与上面讲的 zlib 过滤器相同。bzip2.compress 过滤器接受以一个关联数组给出的最多两个参数：blocks 是从 1 到 9 的整数值，指定分配多少个 100K 字节的内存块作为工作区。work 是 0 到 250 的整数值，指定在退回到一个慢一些，但更可靠的算法之前做多少次常规压缩算法的尝试。调整此参数仅影响到速度，压缩输出和内存使用都不受此设置的影响。将此参数设为 0 指示 bzip 库使用内部默认算法。bzip2.decompress 过滤器仅接受一个参数，可以用普通的布尔值传递，或者用一个关联数组中的 small 单元传递。当 small 设为 TRUE 值时，指示 bzip 库用最小的内存占用来执行解压缩，代价是速度会慢一些。

bzip2.* 压缩过滤器自 PHP 版本 5.1.0 起可用，在激活 bz2 支持的前提下。也可以通过安装来自 » PECL 的» bz2_filter 包作为一个后门在 5.0.x 版中使用。此过滤器在 PHP 4 中不可用。

Example #3 bzip2.compress 和 bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* Generates output:

The original text is 3288 characters long.
The compressed file is 1488 bytes long.

 */
?>
转换过滤器
加密过滤器
可用过滤器列表


加密过滤器

mcrypt.* 和 mdecrypt.* 使用 libmcrypt 提供了对称的加密和解密。这两组过滤器都支持 mcrypt 扩展库中相同的算法，格式为 mcrypt.ciphername，其中 ciphername 是密码的名字，将被传递给 mcrypt_module_open()。有以下五个过滤器参数可用：

mcrypt 过滤器参数
参数 | 是否必须 | 默认值 | 取值举例
mode | 可选 | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | 可选 | ini_get('mcrypt.algorithms_dir') | algorithms 模块的目录
modes_dir | 可选 | ini_get('mcrypt.modes_dir') | modes 模块的目录
iv | 必须 | N/A | 典型为 8，16 或 32 字节的二进制数据。根据密码而定
key | 必须 | N/A | 典型为 8，16 或 32 字节的二进制数据。根据密码而定

Example #1 用 3DES 将文件加密输出

<?php
$passphrase = 'My secret';

/* Turn a human readable passphrase
 * into a reproducable iv/key pair
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secert-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>

Example #2 读取加密的文件

<?php
$passphrase = 'My secret';

/* Turn a human readable passphrase
 * into a reproducable iv/key pair
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secert-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_WRITE, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);

echo $data;
?>
压缩过滤器
所支持的套接字传输器（Socket Transports）列表
可用过滤器列表


所支持的套接字传输器（Socket Transports）列表

Table of Contents

  • Internet 领域：TCP，UDP，SSL 和 TLS
  • Unix 领域：Unix 和 UDG

以下是 PHP 内置用于基于流的套接字函数例如 fsockopen() 和 stream_socket_client() 的各种 URL 风格的套接字传输器。这些传输器不适用于 Sockets 扩展库。

要得到自己的 PHP 版本中所安装的传输器列表，使用 stream_get_transports()。

加密过滤器
Internet 领域：TCP，UDP，SSL 和 TLS
附录


Internet 领域：TCP，UDP，SSL 和 TLS

PHP 3，PHP 4，PHP 5。 ssl:// & tls:// 自 PHP 4.3 起可用。

sslv2:// & sslv3:// 自 PHP 5.0.2 起可用。

Note: 如果没有指定传输器，则假定为 tcp://。

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Internet 领域套接字在目标地址中还期望有一个端口号。在 fsockopen() 中在第二个参数中指定，这样就不会影响传输器的 URL。然而在 stream_socket_client() 和相关的函数中是用传统的 URL，端口号在传输器 URL 后面以冒号分隔而指定。

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Note: 带端口号的 IPv6 数字地址
在上面的第二个例子中，IPv4 和主机名的例子只加了一个冒号和端口号，但 IPv6 的地址被放在方括号中：[fe80::1]。这是为了将 IPv6 地址中的冒号和用来分隔端口号的冒号区别开来。

ssl:// 和 tls:// 传输器（仅在 openssl 支持已编译入 PHP 后可用）是 tcp:// 传输器加入 SSL 加密后的扩展。在 PHP 4.3.0 中 OpenSSL 支持必须被静态编译入 PHP，在 PHP 5.0.0 中可以编译为模块或者静态的。

ssl:// 将根据远程服务器的兼容性和参数设置尝试与之建立 SSL V2 或 SSL V3 链接 sslv2:// 和 sslv3:// 将明确的选择 SSL V2 或 SSL V3 协议进行连接。

ssl:// 和 tls:// 传输器的上下文选项（自 PHP 4.3.2 起）
名称 | 用法 | 默认值
verify_peer | TRUE 或 FALSE。用于 SSL 证书请求验证。 | FALSE
allow_self_signed | TRUE 或 FALSE。允许自签名的证书。 | FALSE
cafile | 本地文件系统中证书授权机构文件的位置，应和 verify_peer 上下文选项一起使用来认证远端的身份。 |
capath | 如果没有指定 cafile 或者如果该处没找到证书，则在 capath 指定的目录中搜索相配的证书。capath 必须是一个正确的被散列化的证书目录。 |
local_cert | 文件系统中本地证书文件的路径。必须是一个用 PEM 编码并包含你的证书和私人密钥的文件。可以选择包括发行者的证书链。 |
passphrase | 你的 local_cert 文件编码的 passphrase。 |
CN_match | 所期待的 Common Name。PHP 能进行有限的通配符匹配。如果 Common Name 与此不匹配，连接尝试会失败。 |

Note: 因为 ssl:// 是 https:// 和 ftps:// 封装协议的底层传输器，适用于 ssl:// 的任何上下文选项也适用于 https:// 和 ftps://。

所支持的套接字传输器（Socket Transports）列表
Unix 领域：Unix 和 UDG
所支持的套接字传输器（Socket Transports）列表


Unix 领域：Unix 和 UDG

unix:// 自 PHP 3 起可用，udg:// 自 PHP 5 起可用。

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// 提供了在 Unix 域中对套接字流连接的访问。udg:// 提供了替代的传输器以用户数据报协议（UDP）来访问 Unix 域套接字。

Unix 域套接字（UNIX Domain Socket），和 Internet Domain Socket 不同，不期望端口号。在 fsockopen() 中 portno 参数应被设为 0。

Internet 领域：TCP，UDP，SSL 和 TLS
PHP 类型比较表
所支持的套接字传输器（Socket Transports）列表


PHP 类型比较表

以下的表格显示了 PHP 类型和比较运算符在松散和严格比较时的作用。该补充材料还和类型戏法的相关章节内容有关。同时，大量的用户注释和 » BlueShoes 的工作也给该材料提供了帮助。

在使用这些表格之前，需要明白变量类型及它们的意义。例如，"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "false" 是一个字符串。

Note: HTML 表单并不传递整数、浮点数或者布尔值，它们只传递字符串。要想检测一个字符串是不是数字，可以使用 is_numeric() 函数。

Note: 在没有定义变量 $x 的时候，诸如 if ($x) 的用法会导致一个 E_NOTICE 级别的错误。所以，可以考虑用 empty() 或者 isset() 函数来初始化变量。

使用 PHP 函数对变量 $x 进行比较
表达式 | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | TRUE | FALSE | TRUE | FALSE
$x = null; | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x is undefined | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

松散比较 ==
 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | TRUE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE

严格比较 ===
 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Unix 领域：Unix 和 UDG
解析器代号列表
附录


解析器代号列表

PHP 语言的不同部分在内部被表示为类似 T_SR 的类型。PHP 在解析错误时输出这样的标识符，例如 "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."。

应该知道 T_SR 的含义。对于所有不知道的人，下表列出了这些标识符，PHP 语法和在手册中适当位置的参考。

代号
代号 | 语法 | 参考
T_ABSTRACT | abstract | 抽象类（自 PHP 5.0.0 起可用）
T_AND_EQUAL | &= | 赋值运算符
T_ARRAY | array() | array()，数组语法
T_ARRAY_CAST | (array) | 类型转换
T_AS | as | foreach
T_BAD_CHARACTER |  | 在 ASCII 32 之前除了 \t (0x09), \n (0x0a) 和 \r (0x0d) 以外的任何字符
T_BOOLEAN_AND | && | 逻辑运算符
T_BOOLEAN_OR | || | 逻辑运算符
T_BOOL_CAST | (bool) 或 (boolean) | 类型转换
T_BREAK | break | break
T_CASE | case | switch
T_CATCH | catch | 异常处理（自 PHP 5.0.0 起可用）
T_CHARACTER |  |
T_CLASS | class | 类和对象
T_CLONE | clone | 类和对象。仅用于 PHP 5。
T_CLOSE_TAG | ?> 或 %> |
T_COMMENT | // 或 #，以及 PHP 5 下的 /* */ | 注释
T_CONCAT_EQUAL | .= | 赋值运算符
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" 或 'bar' | 字符串语法
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | 递增/递减运算符
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | 赋值运算符
T_DNUMBER | 0.12，等等 | 浮点数
T_DOC_COMMENT | /** */ | PHPDoc 风格的注释（仅用于 PHP 5）
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | 复杂变量解析语法
T_DOUBLE_ARROW | => | 数组语法
T_DOUBLE_CAST | (real), (double) 或 (float) | 类型转换
T_DOUBLE_COLON | :: | 见下面的 T_PAAMAYIM_NEKUDOTAYIM
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare，替代语法
T_ENDFOR | endfor | for，替代语法
T_ENDFOREACH | endforeach | foreach，替代语法
T_ENDIF | endif | if，替代语法
T_ENDSWITCH | endswitch | switch，替代语法
T_ENDWHILE | endwhile | while，替代语法
T_END_HEREDOC |  | heredoc 语法
T_EVAL | eval() | eval()
T_EXIT | exit 或 die | exit(), die()
T_EXTENDS | extends | extends，类和对象
T_FILE | __FILE__ | 常量
T_FINAL | final | Final关键字（自 PHP 5.0.0 起可用）
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function 或 cfunction | 函数
T_GLOBAL | global | 变量范围
T_HALT_COMPILER | __halt_compiler() | __halt_compiler（自 PHP 5.1.0 起可用）
T_IF | if | if
T_IMPLEMENTS | implements | 接口（自 PHP 5.0.0 起可用）
T_INC | ++ | 递增／递减运算符
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INSTANCEOF | instanceof | type operators（仅 PHP5）
T_INT_CAST | (int) 或 (integer) | 类型转换
T_INTERFACE | interface | 接口（自 PHP 5.0.0 起可用）
T_ISSET | isset() | isset()
T_IS_EQUAL | == | 比较运算符
T_IS_GREATER_OR_EQUAL | >= | 比较运算符
T_IS_IDENTICAL | === | 比较运算符
T_IS_NOT_EQUAL | != or <> | 比较运算符
T_IS_NOT_IDENTICAL | !== | 比较运算符
T_IS_SMALLER_OR_EQUAL | <= | 比较运算符
T_LINE | __LINE__ | 常量
T_LIST | list() | list()
T_LNUMBER | 123，012，0x1ac，等等 | 整型
T_LOGICAL_AND | and | 逻辑运算符
T_LOGICAL_OR | or | 逻辑运算符
T_LOGICAL_XOR | xor | 逻辑运算符
T_MINUS_EQUAL | -= | 赋值运算符
T_ML_COMMENT | /* 和 */ | 注释（仅用于 PHP 4）
T_MOD_EQUAL | %= | 赋值运算符
T_MUL_EQUAL | *= | 赋值运算符
T_NEW | new | 类和对象
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | 类型转换
T_OBJECT_OPERATOR | -> | 类和对象
T_OPEN_TAG | <?php, <? 或 <% | 从 HTML 转义
T_OPEN_TAG_WITH_ECHO | <?= or <%= | 从 HTML 转义
T_OR_EQUAL | |= | 赋值运算符
T_PAAMAYIM_NEKUDOTAYIM | :: | ::。也定义为 T_DOUBLE_COLON。
T_PLUS_EQUAL | += | 赋值运算符
T_PRINT | print() | print()
T_PRIVATE | private | 类和对象。仅用于 PHP 5。
T_PUBLIC | public | 类和对象。仅用于 PHP 5。
T_PROTECTED | protected | 类和对象。仅用于 PHP 5。
T_REQUIRE | require() | require()
T_REQUIRE_ONCE | require_once() | require_once()
T_RETURN | return | 返回值
T_SL | << | 位运算符
T_SL_EQUAL | <<= | 赋值运算符
T_SR | >> | 位运算符
T_SR_EQUAL | >>= | 赋值运算符
T_START_HEREDOC | <<< | heredoc 语法
T_STATIC | static | 变量范围
T_STRING |  |
T_STRING_CAST | (string) | 类型转换
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_THROW | throw | 异常处理（自 PHP 5.0.0 起可用）
T_TRY | try | 异常处理（自 PHP 5.0.0 起可用）
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | （无文档; 类型为 NULL）
T_USE | use | （未实现）
T_VAR | var | 类和对象
T_VARIABLE | $foo | 变量
T_WHILE | while | while，do..while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | 赋值运算符
T_FUNC_C | __FUNCTION__ | 常量，自 PHP 4.3.0 起可用
T_CLASS_C | __CLASS__ | 常量，自 PHP 4.3.0 起可用

参见 token_name()。

PHP 类型比较表
Userland Naming Guide
附录


Userland Naming Guide

Table of Contents

  • Global Namespace
  • Rules
  • Tips

The following is a guide for how to best choose names for identifiers in userland PHP code. When choosing names for any code that creates symbols in the global namespace, it is important to take into account the following guidelines to prevent future versions of PHP from clashing with your symbols.

解析器代号列表
Global Namespace
附录


Global Namespace

Here is an overview of code constructs that go into the global namespace:

  • functions

  • classes

  • interfaces

  • constants (not class constants)

  • variables defined outside of functions/methods

Userland Naming Guide
Rules
Userland Naming Guide


Rules

The following list gives an overview of which rights the PHP project reserves for itself, when choosing names for new internal identifiers. The definitive guide is the official » CODING STANDARDS:

  • PHP owns the top-level namespace but tries to find decent descriptive names and avoid any obvious clashes.

  • Function names use underscores between words, while class names use the camel case rule (there are some exceptions for older classes and functions).

  • PHP will prefix any global symbols of an extension with the name of the extension. (In the past, there have been numerous exceptions to this rule.) Examples:

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (example of a past mistake)

    • new SplFileObject()

  • Iterators and Exceptions are however simply postfixed with "Iterator" and "Exception." Examples:

    • ArrayIterator

    • LogicException

  • PHP reserves all symbols starting with __ as magical. It is recommended that you do not create symbols starting with __ in PHP unless you want to use documented magical functionality. Examples:

    • __get()

    • __autoload()

Global Namespace
Tips
Userland Naming Guide


Tips

In order to write future-proof code, it is recommended that you prefix (or suffix) anything that goes into the global namespace with an uncommon 3-4 letter prefix (or suffix) separated with an underscore. It is recommended that in order to prevent namespace clashes with other userland code that projects research existing prefixes (or suffixes) used in other projects and advertise their chosen prefix (or suffix) appropriately. Examples:

  • MyPx_someFunc()

  • Foo_Date

  • $asdf_dbh

Rules
关于本手册
Userland Naming Guide


关于本手册

Table of Contents

  • 手册的格式
  • 关于用户注释
  • 如何阅读函数的定义（函数原型）
  • 本手册中所涉及的 PHP 版本
  • 如何得到关于 PHP 更多的信息
  • 如何帮助改进本文档
  • 如何生成手册的各种格式
  • 手册译文
Tips
手册的格式
附录


手册的格式

《PHP 参考手册》提供了多种不同格式的版本，它们可以分为两组：在线阅读版本和可下载包。

Note: 有些出版商可能已经出版了本手册的一些印刷版本，但不推荐使用它们，因为 PHP 参考手册更新得非常快，这些印刷版本的内容很快将过时。

可以访问 » PHP.net 网站及其众多的镜像站点来在线阅读《PHP 参考手册》。为了保证最佳的访问速度，应该选择地理位置最接近的镜像站点。PHP 手册的 HTML 版本既有纯 HTML 版（便于打印的），也有看上去和感觉上和 PHP 站点上的手册一样的版本。

和绝大多数离线格式的手册相比，在线阅读版本有两个显著的优点，即它集成了用户注释，并且可以使用其中的 » URL 快捷方式快速进入手册中想阅读的部分；但是，它的明显的缺点是必须保持一直在线来阅读。

目前，《PHP 参考手册》提供多种离线阅读格式，最适合于自己的格式取决于所使用的操作系统和个人的阅读习惯。关于《PHP 参考手册》如何被制作成如此多的版本，请查阅本附录中“如何生成手册的各种格式”一节。

跨平台性最好的格式是 HTML 格式格式。HTML 格式提供了两种方式：一种只有一个很大的 HTML 文件；另一种方式是每一节分成一个独立文件，它们形成一个包含有几千个文件的文件包。我们提供的是这两种版本的压缩包，需要使用解压缩工具解压出压缩包中的文件。

对于 Windows 平台，我们利用了 Windows 的超文本帮助应用程序结合本手册的 HTML 格式，形成了本手册的 Windows 超文本帮助版本。该版本提供手册的全文搜索、完整的索引以及书签功能。很多 Windows 平台下流行的 PHP 集成开发环境也集成了该版本的手册，以给开发者提供最方便快捷的参考。CHM 阅读器也有 Linux 版本，可以到 » xCHM 或 » GnoCHM 网站了解更多信息。

同时，PHP 手册也有» 扩展 CHM 版本提供下载。它更新的速度比较慢，但是提供了附加的功能。由于制作帮助页面时采用的技术的特殊性，它只可在 Microsoft Windows 下工作。

关于本手册
关于用户注释
关于本手册


关于用户注释

用户注释在本手册的开发过程中搬演了相当重要的角色。通过允许手册的读者利用它们的浏览器提供范例、解释和进一步的阐述，我们便能够把这些反馈信息包含到手册的正文中。而且，当这些注释被包含后，读者就可以在线通过它们被提交的格式来阅读它们，也可以通过某些离线格式来阅读。

Note: 用户注释在网上出现之前并不成熟，因此这些文字和代码的质量，甚至它们的真实性无从得到保证。（这并不是说本手册本身的质量和准确性没有任何的保证。）

Note: 由于用户注释被认为是 PHP 手册的一部分，因此它也被保护本文档的许可协议（目前为开放出版许可协议）所保护。请查阅手册版权页以了解更多详细信息。

手册的格式
如何阅读函数的定义（函数原型）
关于本手册


如何阅读函数的定义（函数原型）

文档中的每个函数都只是快速参考，学会如何阅读和理解文档将使得 PHP 的使用更加简单。和依赖赖于复制／粘贴范例比起来，用户一定更希望知道如何阅读函数的定义（函数原型）：

Note: 先决条件，对变量类型的基本理解
尽管 PHP 是亚类型语言，但对变量类型有一个基本的理解也是非常重要的，因为它们有重要的意义。

函数定义告诉我们函数返回什么类型的值，让我们用函数 strlen() 的定义作为第一个范例：

strlen

(PHP 3, PHP 4, PHP 5)
strlen -- 获取字符串长度

描述
int strlen ( string str )

返回字符串的长度。

函数定义
组成部分 | 说明
strlen | 函数名称
(PHP 3, PHP 4, PHP 5) | strlen() 在 PHP 3 、PHP 4 和 PHP 5 中都存在
int | 该函数返回的值的类型，这里为整型。（例如，字符串的长度是以数字来衡量的）
( string str ) | 第一个（本例中是唯一的）参数，在该函数中名为 str ，且类型为 string。

可以将以上函数的定义写成一般形式：

返回类型    函数名    ( 参数类型   参数名 )

很多函数都有多个变量，例如 in_array()。其函数原型如下：

bool in_array ( mixed needle, array haystack [, bool strict])

这是什么意思？in_array() 返回一个“布尔”值，成功（如果在参数 haystack 中能找到参数 needle ）则返回 TRUE 或者失败（如果在参数 haystack 中找不到参数 needle ）则返回 FALSE。第一个参数被命名为 needle 且其类型不定，因此我们将其称为“混和”类型。该混和类型的 needle 参数（我们要找的对象）可以适一个标量的值（字符串、整数、或者浮点数），或者一个数组。haystack （我们寻找的范围）是第二个参数。第三个可选参数被命名为 strict 。所有的可选参数都用 [ 方括号 ] 括起来。手册表明 strict 参数默认值为布尔值 FALSE。需要了解函数工作的细节，请参阅手册中和该函数相关的页面。

有的函数包含更复杂的 PHP 版本信息。我们拿 html_entity_decode() 举例：

(PHP 4 >= 4.3.0, PHP 5)

它意味着该函数不可在 PHP 3 中使用，只可在 PHP 4.3.0 及以后发布的版本中使用。

关于用户注释
本手册中所涉及的 PHP 版本
关于本手册


本手册中所涉及的 PHP 版本

本文档包含有 PHP 4 和 PHP 5 有关的内容，以及一些关于 PHP 3 移植和兼容的注意事项。PHP 不同版本之间的行为、参数、返回值和其它改变都以“注意”的形式加入了本手册的正文。

有部分 CVS 版的 PHP 文档。CVS 版是最新开发的版本，但尚未发布，只能通过 CVS 或者 » snapshot 来获得。所以要注意标注有“仅在 CVS 版可用”的特性通常还不可用。但这些特性很可能会出现在 PHP 下一个稳定版本中。要下载 CVS 版本，请查看 » CVS 的匿名访问。

还有可能遇到一些文档仅适用于尚未发布的 PHP 版本（例如 PHP 5.0.0，而当前最新的稳定版本是 4.3.x）。多数情况下，这并不是文档中的错误，我们经常在文档中加入一些目前版本尚未支持的特性描述，但这些特性将在未来某一个确定的 PHP 版本中实现。一般来说，PHP 仅在发布主要版本的时候增加新功能，而其他情况只是 bug 的修正。版本号使用 A.B.C 的格式，发布主要版本时，A 或 B 数值增加，而发布次要版本时，C 数值增加。因此，若当前只发布了 PHP x.0.x，但是手册中出现 x.1.x 的功能描述，这并不奇怪。但也请注意，手册是为现在写的，不是为将来写的。

PHP 手册会多次列出 PHP 配置选项的“默认值”。这些默认值是基于 php.ini-dist，而不是 php.ini-recommended。同时这些值也是基于最新版本的 PHP。请参考 PHP 配置选项列表以了解更多信息。

如何阅读函数的定义（函数原型）
如何得到关于 PHP 更多的信息
关于本手册


如何得到关于 PHP 更多的信息

本手册并不打算提供基本的编程开发指导。刚学编程的或者新手程序员会发现仅仅用本手册来学习如何用 PHP 编程是一件很困难的事情。为了寻找一本更适合初学者的书，请访问 » http://www.php.net/books.php 查看 PHP 相关书籍的列表。

目前，PHP 官方提供了许多邮件列表来讨论 PHP 编程相关的各个方面的问题。如果卡在了某个问题上，可以到该邮件列表寻求帮助。有关支持以及邮件列表请访问 » PHP.net 支持页面。此外，在 » PHP.net 链接页面有一个关于 PHP 相关网站的列表，在这些网站中可以找到和 PHP 相关的文章、论坛和代码。

本手册中所涉及的 PHP 版本
如何帮助改进本文档
关于本手册


如何帮助改进本文档

可以通过以下三种途径来帮助改善本文档。

如果发现本手册任何一个格式的版本中有错误，请通过设在 » http://bugs.php.net/ 的纠错系统向我们报告，并将提交的错误分类为“文档问题 (Documentation Problem)”。所有文档相关的问题，包括手册格式，都应作为错误提交。

Note: 请勿滥用纠错系统来寻求帮助。如需帮助请访问» 支持页面。

通过提交注释，用户可以向其它读者提供更多的范例、解释和阐述。但请勿在注释系统提交错误报告。更多细节见关于用户注释一节。

PHP 手册被翻译成很多种语言。如果懂英语和另一种语言，可以加入翻译团队来帮助改善文档。有关开始一个新语言版本的翻译或者加入某一个语言版本的翻译工作，请下载并阅读 » http://doc.php.net/php/dochowto/。

该文档的简体中文版可在 » http://cvs.php.net/phpdoc-zh/howto/howto_zh_cn.html.tar.gz 下载。

PHP 文档项目也有一个 IRC 频道，许多手册作者都常去。可以访问 irc.freenode.net 服务器上的 #phpdoc 与他们讨论改善 PHP 文档的方法。

如何得到关于 PHP 更多的信息
如何生成手册的各种格式
关于本手册


如何生成手册的各种格式

本手册使用 XML 语言编写，同时运用了 » DocBook XML DTD。还用了 » DSSSL（Document Style and Semantics Specification Language，文档样式和语义规格语言）来控制格式。同时，在实验上我们运用 » XSLT（Extensible Stylesheet Language Transformations，可扩展样式表语言转换）来维护格式。

将 XML 语言作为源文件格式，使得我们只需维护该源文件文档，就可以可以利用它生成许多其它的输出格式。输出 HTML 和 TeX 版本的工具是由 » James Clark 开发的 » Jade，以及由 » Norman Walsh 开发的 » The Modular DocBook Stylesheets。我们使用 » Microsoft HTML Help Workshop 来生成本手册的 Windows 超文本帮助格式。当然，PHP 本身也完成了其它一些转换和格式化工作。

PHP 手册被生成多种不同语言和格式，详情见 » http://www.php.net/docs.php。XML 源代码可以通过 CVS 下载，并通过 » http://cvs.php.net/ 在线浏览。文档存放于 phpdoc 模块中。

如何帮助改进本文档
手册译文
关于本手册


手册译文

《PHP 参考手册》不但有各种不同的格式，而且还有各种语言的版本。手册的正文最初是用英语撰写的，后来有来自全世界各地的工作组致力于本手册各种语言版本的翻译工作。如果某个函数或者章节的内容尚未被翻译，则该语言版本手册的发布将落后于英语版本。

翻译工作者首先从本手册的 XML 源代码（可于 » http://cvs.php.net/ 获取）入手，将这些源代码翻译成他们的母语。不要从生成后的 HTML 或纯文本版入手。是由编译系统负责将 XML 源代码转换成可阅读版本。

Note: 要帮忙翻译手册，请发一封空的电子邮件到 » phpdoc-subscribe@lists.php.net 加入 phpdoc 邮件列表以便与文档翻译小组取得联系。邮件列表的地址为 phpdoc@lists.php.net。请在电子邮件中声明对文档翻译工作感兴趣，有人会回复并帮助加入到已经存在的翻译小组，或者开始新语种的翻译工作。

目前，本手册已经（或部分）有下列语种的译文：巴西葡萄牙语、简体中文、繁体中文、繁体中文（香港）、捷克语、丹麦语、芬兰语、法语、德语、希腊语、希伯来语、匈牙利语、意大利语、日语、朝鲜语、波兰语、罗马尼亚语、俄语、斯洛伐克语、斯洛文尼亚语、西班牙语、瑞典语和土耳其语。

可以访问 » http://www.php.net/docs.php 来下载各种版本。

有志于加入 PHP 手册简体中文翻译工作的朋友，首先请详细阅读» 此文章。有任何问题请向 PHP 文档中文邮件列表提出。

如何生成手册的各种格式
Creative Commons Attribution 3.0
关于本手册


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
手册译文
函数索引
附录


函数索引

函数索引

_
__halt_compiler()
A
abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_reset_timeout()
apache_response_headers()
apache_setenv()
apc_add()
apc_cache_info()
apc_clear_cache()
apc_compile_file()
apc_define_constants()
apc_delete()
apc_fetch()
apc_load_constants()
apc_sma_info()
apc_store()
apd_breakpoint()
apd_callstack()
apd_clunk()
apd_continue()
apd_croak()
apd_dump_function_table()
apd_dump_persistent_resources()
apd_dump_regular_resources()
apd_echo()
apd_get_active_symbols()
apd_set_pprof_trace()
apd_set_session()
apd_set_session_trace()
apd_set_socket_session_trace()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_key()
array_diff_uassoc()
array_diff_ukey()
array_fill()
array_fill_keys()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_intersect_key()
array_intersect_uassoc()
array_intersect_ukey()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_product()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_uintersect()
array_uintersect_assoc()
array_uintersect_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
array_walk_recursive()
ArrayIterator::current()
ArrayIterator::key()
ArrayIterator::next()
ArrayIterator::rewind()
ArrayIterator::seek()
ArrayIterator::valid()
ArrayObject::__construct()
ArrayObject::append()
ArrayObject::count()
ArrayObject::getIterator()
ArrayObject::offsetExists()
ArrayObject::offsetGet()
ArrayObject::offsetSet()
ArrayObject::offsetUnset()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()
B
base64_decode()
base64_encode()
base_convert()
basename()
bbcode_add_element()
bbcode_create()
bbcode_destroy()
bbcode_parse()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcompiler_load()
bcompiler_load_exe()
bcompiler_parse_class()
bcompiler_read()
bcompiler_write_class()
bcompiler_write_constant()
bcompiler_write_exe_footer()
bcompiler_write_file()
bcompiler_write_footer()
bcompiler_write_function()
bcompiler_write_functions_from_file()
bcompiler_write_header()
bcompiler_write_included_filename()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()
C
CachingIterator::__toString()
CachingIterator::hasNext()
CachingIterator::next()
CachingIterator::rewind()
CachingIterator::valid()
CachingRecursiveIterator::getChildren()
CachingRecursiveIterator::hasChildren()
cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
class_implements()
class_parents()
classkit_import()
classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_create_guid()
com_event_sink()
com_get()
com_get_active_object()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_message_pump()
com_print_typeinfo()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
configuration()
connection_aborted()
connection_status()
connection_timeout()
constant()
constants()
constants()
constants()
convert_cyr_string()
convert_uudecode()
convert_uuencode()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_copy_handle()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_setopt_array()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cybermut_creerformulairecm()
cybermut_creerreponsecm()
cybermut_testmac()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()
D
date()
date_create()
date_date_set()
date_default_timezone_get()
date_default_timezone_set()
date_format()
date_isodate_set()
date_modify()
date_offset_get()
date_parse()
date_sun_info()
date_sunrise()
date_sunset()
date_time_set()
date_timezone_get()
date_timezone_set()
db2_autocommit()
db2_bind_param()
db2_client_info()
db2_close()
db2_column_privileges()
db2_columns()
db2_commit()
db2_conn_error()
db2_conn_errormsg()
db2_connect()
db2_cursor_type()
db2_escape_string()
db2_exec()
db2_execute()
db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()
db2_foreign_keys()
db2_free_result()
db2_free_stmt()
db2_get_option()
db2_lob_read()
db2_next_result()
db2_num_fields()
db2_num_rows()
db2_pconnect()
db2_prepare()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_result()
db2_rollback()
db2_server_info()
db2_set_option()
db2_special_columns()
db2_statistics()
db2_stmt_error()
db2_stmt_errormsg()
db2_table_privileges()
db2_tables()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debug_zval_dump()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
DirectoryIterator::__construct()
DirectoryIterator::current()
DirectoryIterator::getATime()
DirectoryIterator::getCTime()
DirectoryIterator::getFilename()
DirectoryIterator::getGroup()
DirectoryIterator::getInode()
DirectoryIterator::getMTime()
DirectoryIterator::getOwner()
DirectoryIterator::getPath()
DirectoryIterator::getPathname()
DirectoryIterator::getPerms()
DirectoryIterator::getSize()
DirectoryIterator::getType()
DirectoryIterator::isDir()
DirectoryIterator::isDot()
DirectoryIterator::isExecutable()
DirectoryIterator::isFile()
DirectoryIterator::isLink()
DirectoryIterator::isReadable()
DirectoryIterator::isWritable()
DirectoryIterator::key()
DirectoryIterator::next()
DirectoryIterator::rewind()
DirectoryIterator::valid()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
dom_import_simplexml()
DOMAttr->__construct()
DOMAttr->isId()
DomAttribute->name()
DomAttribute->set_value()
DomAttribute->specified()
DomAttribute->value()
DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()
DOMComment->__construct()
DOMDocument->__construct()
DomDocument->add_root()
DomDocument->create_attribute()
DomDocument->create_cdata_section()
DomDocument->create_comment()
DomDocument->create_element()
DomDocument->create_element_ns()
DomDocument->create_entity_reference()
DomDocument->create_processing_instruction()
DomDocument->create_text_node()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()
DomDocument->doctype()
DomDocument->document_element()
DomDocument->dump_file()
DomDocument->dump_mem()
DomDocument->get_element_by_id()
DomDocument->get_elements_by_tagname()
DOMDocument->getElementById()
DOMDocument->getElementsByTagName()
DOMDocument->getElementsByTagNameNS()
DomDocument->html_dump_mem()
DOMDocument->importNode()
DOMDocument->load()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()
DOMDocument->loadXML()
DOMDocument->normalizeDocument()
DOMDocument->registerNodeClass()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->save()
DOMDocument->saveHTML()
DOMDocument->saveHTMLFile()
DOMDocument->saveXML()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()
DomDocument->xinclude()
DOMDocument->xinclude()
DOMDocumentFragment->appendXML()
DomDocumentType->entities()
DomDocumentType->internal_subset()
DomDocumentType->name()
DomDocumentType->notations()
DomDocumentType->public_id()
DomDocumentType->system_id()
DOMElement->__construct()
DomElement->get_attribute()
DomElement->get_attribute_node()
DomElement->get_elements_by_tagname()
DOMElement->getAttribute()
DOMElement->getAttributeNode()
DOMElement->getAttributeNodeNS()
DOMElement->getAttributeNS()
DOMElement->getElementsByTagName()
DOMElement->getElementsByTagNameNS()
DomElement->has_attribute()
DOMElement->hasAttribute()
DOMElement->hasAttributeNS()
DomElement->remove_attribute()
DOMElement->removeAttribute()
DOMElement->removeAttributeNode()
DOMElement->removeAttributeNS()
DomElement->set_attribute()
DomElement->set_attribute_node()
DOMElement->setAttribute()
DOMElement->setAttributeNode()
DOMElement->setAttributeNodeNS()
DOMElement->setAttributeNS()
DOMElement->setIdAttribute()
DOMElement->setIdAttributeNode()
DOMElement->setIdAttributeNS()
DomElement->tagname()
DOMEntityReference->__construct()
DOMImplementation->__construct()
DOMImplementation->createDocument()
DOMImplementation->createDocumentType()
DOMImplementation->hasFeature()
DOMNamedNodeMap->getNamedItem()
DOMNamedNodeMap->getNamedItemNS()
DOMNamedNodeMap->item()
DomNode->add_namespace()
DomNode->append_child()
DomNode->append_sibling()
DOMNode->appendChild()
DomNode->attributes()
DomNode->child_nodes()
DomNode->clone_node()
DOMNode->cloneNode()
DomNode->dump_node()
DomNode->first_child()
DomNode->get_content()
DomNode->has_attributes()
DomNode->has_child_nodes()
DOMNode->hasAttributes()
DOMNode->hasChildNodes()
DomNode->insert_before()
DOMNode->insertBefore()
DomNode->is_blank_node()
DOMNode->isDefaultNamespace()
DOMNode->isSameNode()
DOMNode->isSupported()
DomNode->last_child()
DOMNode->lookupNamespaceURI()
DOMNode->lookupPrefix()
DomNode->next_sibling()
DomNode->node_name()
DomNode->node_type()
DomNode->node_value()
DOMNode->normalize()
DomNode->owner_document()
DomNode->parent_node()
DomNode->prefix()
DomNode->previous_sibling()
DomNode->remove_child()
DOMNode->removeChild()
DomNode->replace_child()
DomNode->replace_node()
DOMNode->replaceChild()
DomNode->set_content()
DomNode->set_name()
DomNode->set_namespace()
DomNode->unlink_node()
DOMNodelist->item()
DOMProcessingInstruction->__construct()
DomProcessingInstruction->data()
DomProcessingInstruction->target()
DOMText->__construct()
DOMText->isWhitespaceInElementContent()
DOMText->splitText()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxml_xslt_version()
DOMXPath->__construct()
DOMXPath->evaluate()
DOMXPath->query()
DOMXPath->registerNamespace()
DomXsltStylesheet->process()
DomXsltStylesheet->result_dump_file()
DomXsltStylesheet->result_dump_mem()
dotnet()
dotnet_load()
doubleval()
E
each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
enchant_broker_describe()
enchant_broker_dict_exists()
enchant_broker_free()
enchant_broker_free_dict()
enchant_broker_get_error()
enchant_broker_init()
enchant_broker_list_dicts()
enchant_broker_request_dict()
enchant_broker_request_pwl_dict()
enchant_broker_set_ordering()
enchant_dict_add_to_personal()
enchant_dict_add_to_session()
enchant_dict_check()
enchant_dict_describe()
enchant_dict_get_error()
enchant_dict_is_in_session()
enchant_dict_quick_check()
enchant_dict_store_replacement()
enchant_dict_suggest()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_get_last()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_tagname()
exif_thumbnail()
exit()
exp()
expect_expectl()
expect_popen()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()
F
fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_blob_size()
fbsql_change_user()
fbsql_clob_size()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_rows_fetched()
fbsql_select_db()
fbsql_set_characterset()
fbsql_set_lob_mode()
fbsql_set_password()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_table_name()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_on_import_javascript()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
filter_has_var()
filter_id()
filter_input()
filter_input_array()
filter_list()
filter_var()
filter_var_array()
FilterIterator::current()
FilterIterator::getInnerIterator()
FilterIterator::key()
FilterIterator::next()
FilterIterator::rewind()
FilterIterator::valid()
finfo->__construct()
finfo_buffer()
finfo_close()
finfo_file()
finfo_open()
finfo_set_flags()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputcsv()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()
G
gd_info()
geoip_country_code3_by_name()
geoip_country_code_by_name()
geoip_country_name_by_name()
geoip_database_info()
geoip_db_avail()
geoip_db_filename()
geoip_db_get_all_info()
geoip_id_by_name()
geoip_org_by_name()
geoip_record_by_name()
geoip_region_by_name()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_declared_interfaces()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_headers()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_nextprime()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_strval()
gmp_sub()
gmp_testbit()
gmp_xor()
gmstrftime()
gnupg_adddecryptkey()
gnupg_addencryptkey()
gnupg_addsignkey()
gnupg_cleardecryptkeys()
gnupg_clearencryptkeys()
gnupg_clearsignkeys()
gnupg_decrypt()
gnupg_decryptverify()
gnupg_encrypt()
gnupg_encryptsign()
gnupg_export()
gnupg_geterror()
gnupg_getprotocol()
gnupg_import()
gnupg_keyinfo()
gnupg_setarmor()
gnupg_seterrormode()
gnupg_setsignmode()
gnupg_sign()
gnupg_verify()
gopher_parsedir()
gregoriantojd()
gzclose()
gzcompress()
gzdecode()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()
H
haruannotation()
HaruAnnotation::setBorderStyle()
HaruAnnotation::setHighlightMode()
HaruAnnotation::setIcon()
HaruAnnotation::setOpened()
harudestination()
HaruDestination::setFit()
HaruDestination::setFitB()
HaruDestination::setFitBH()
HaruDestination::setFitBV()
HaruDestination::setFitH()
HaruDestination::setFitR()
HaruDestination::setFitV()
HaruDestination::setXYZ()
harudoc()
HaruDoc::__construct()
HaruDoc::addPage()
HaruDoc::addPageLabel()
HaruDoc::createOutline()
HaruDoc::getCurrentEncoder()
HaruDoc::getCurrentPage()
HaruDoc::getEncoder()
HaruDoc::getFont()
HaruDoc::getInfoAttr()
HaruDoc::getPageLayout()
HaruDoc::getPageMode()
HaruDoc::getStreamSize()
HaruDoc::insertPage()
HaruDoc::loadJPEG()
HaruDoc::loadPNG()
HaruDoc::loadRaw()
HaruDoc::loadTTC()
HaruDoc::loadTTF()
HaruDoc::loadType1()
HaruDoc::output()
HaruDoc::readFromStream()
HaruDoc::resetError()
HaruDoc::resetStream()
HaruDoc::save()
HaruDoc::saveToStream()
HaruDoc::setCompressionMode()
HaruDoc::setCurrentEncoder()
HaruDoc::setEncryptionMode()
HaruDoc::setInfoAttr()
HaruDoc::setInfoDateAttr()
HaruDoc::setOpenAction()
HaruDoc::setPageLayout()
HaruDoc::setPageMode()
HaruDoc::setPagesConfiguration()
HaruDoc::setPassword()
HaruDoc::setPermission()
HaruDoc::useCNSEncodings()
HaruDoc::useCNSFonts()
HaruDoc::useCNTEncodings()
HaruDoc::useCNTFonts()
HaruDoc::useJPEncodings()
HaruDoc::useJPFonts()
HaruDoc::useKREncodings()
HaruDoc::useKRFonts()
haruencoder()
HaruEncoder::getByteType()
HaruEncoder::getType()
HaruEncoder::getUnicode()
HaruEncoder::getWritingMode()
haruexception()
harufont()
HaruFont::getAscent()
HaruFont::getCapHeight()
HaruFont::getDescent()
HaruFont::getEncodingName()
HaruFont::getFontName()
HaruFont::getTextWidth()
HaruFont::getUnicodeWidth()
HaruFont::getXHeight()
HaruFont::measureText()
haruimage()
HaruImage::getBitsPerComponent()
HaruImage::getColorSpace()
HaruImage::getHeight()
HaruImage::getSize()
HaruImage::getWidth()
HaruImage::setColorMask()
HaruImage::setMaskImage()
haruoutline()
HaruOutline::setDestination()
HaruOutline::setOpened()
harupage()
HaruPage::arc()
HaruPage::beginText()
HaruPage::circle()
HaruPage::closePath()
HaruPage::concat()
HaruPage::createDestination()
HaruPage::createLinkAnnotation()
HaruPage::createTextAnnotation()
HaruPage::createURLAnnotation()
HaruPage::curveTo()
HaruPage::curveTo2()
HaruPage::curveTo3()
HaruPage::drawImage()
HaruPage::ellipse()
HaruPage::endPath()
HaruPage::endText()
HaruPage::eofill()
HaruPage::eoFillStroke()
HaruPage::fill()
HaruPage::fillStroke()
HaruPage::getCharSpace()
HaruPage::getCMYKFill()
HaruPage::getCMYKStroke()
HaruPage::getCurrentFont()
HaruPage::getCurrentFontSize()
HaruPage::getCurrentPos()
HaruPage::getCurrentTextPos()
HaruPage::getDash()
HaruPage::getFillingColorSpace()
HaruPage::getFlatness()
HaruPage::getGMode()
HaruPage::getGrayFill()
HaruPage::getGrayStroke()
HaruPage::getHeight()
HaruPage::getHorizontalScaling()
HaruPage::getLineCap()
HaruPage::getLineJoin()
HaruPage::getLineWidth()
HaruPage::getMiterLimit()
HaruPage::getRGBFill()
HaruPage::getRGBStroke()
HaruPage::getStrokingColorSpace()
HaruPage::getTextLeading()
HaruPage::getTextMatrix()
HaruPage::getTextRenderingMode()
HaruPage::getTextRise()
HaruPage::getTextWidth()
HaruPage::getTransMatrix()
HaruPage::getWidth()
HaruPage::getWordSpace()
HaruPage::lineTo()
HaruPage::measureText()
HaruPage::moveTextPos()
HaruPage::moveTo()
HaruPage::moveToNextLine()
HaruPage::rectangle()
HaruPage::setCharSpace()
HaruPage::setCMYKFill()
HaruPage::setCMYKStroke()
HaruPage::setDash()
HaruPage::setFlatness()
HaruPage::setFontAndSize()
HaruPage::setGrayFill()
HaruPage::setGrayStroke()
HaruPage::setHeight()
HaruPage::setHorizontalScaling()
HaruPage::setLineCap()
HaruPage::setLineJoin()
HaruPage::setLineWidth()
HaruPage::setMiterLimit()
HaruPage::setRGBFill()
HaruPage::setRGBStroke()
HaruPage::setRotate()
HaruPage::setSize()
HaruPage::setSlideShow()
HaruPage::setTextLeading()
HaruPage::setTextMatrix()
HaruPage::setTextRenderingMode()
HaruPage::setTextRise()
HaruPage::setWidth()
HaruPage::setWordSpace()
HaruPage::showText()
HaruPage::showTextNextLine()
HaruPage::stroke()
HaruPage::textOut()
HaruPage::textRect()
hash()
hash_algos()
hash_file()
hash_final()
hash_hmac()
hash_hmac_file()
hash_init()
hash_update()
hash_update_file()
hash_update_stream()
header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
htmlspecialchars_decode()
http_build_cookie()
http_build_query()
http_build_str()
http_build_url()
http_cache_etag()
http_cache_last_modified()
http_chunked_decode()
http_date()
http_deflate()
http_get()
http_get_request_body()
http_get_request_body_stream()
http_get_request_headers()
http_head()
http_inflate()
http_match_etag()
http_match_modified()
http_match_request_header()
http_negotiate_charset()
http_negotiate_content_type()
http_negotiate_language()
http_parse_cookie()
http_parse_headers()
http_parse_message()
http_parse_params()
http_persistent_handles_clean()
http_persistent_handles_count()
http_persistent_handles_ident()
http_post_data()
http_post_fields()
http_put_data()
http_put_file()
http_put_stream()
http_redirect()
http_request()
http_request_body_encode()
http_request_method_exists()
http_request_method_name()
http_request_method_register()
http_request_method_unregister()
http_send_content_disposition()
http_send_content_type()
http_send_data()
http_send_file()
http_send_last_modified()
http_send_status()
http_send_stream()
http_support()
http_throttle()
httpdeflatestream()
HttpDeflateStream::__construct()
HttpDeflateStream::factory()
HttpDeflateStream::finish()
HttpDeflateStream::flush()
HttpDeflateStream::update()
httpinflatestream()
HttpInflateStream::__construct()
HttpInflateStream::factory()
HttpInflateStream::finish()
HttpInflateStream::flush()
HttpInflateStream::update()
httpmessage()
HttpMessage::__construct()
HttpMessage::addHeaders()
HttpMessage::detach()
HttpMessage::factory()
HttpMessage::fromEnv()
HttpMessage::fromString()
HttpMessage::getBody()
HttpMessage::getHeader()
HttpMessage::getHeaders()
HttpMessage::getHttpVersion()
HttpMessage::getParentMessage()
HttpMessage::getRequestMethod()
HttpMessage::getRequestUrl()
HttpMessage::getResponseCode()
HttpMessage::getResponseStatus()
HttpMessage::getType()
HttpMessage::guessContentType()
HttpMessage::prepend()
HttpMessage::reverse()
HttpMessage::send()
HttpMessage::setBody()
HttpMessage::setHeaders()
HttpMessage::setHttpVersion()
HttpMessage::setRequestMethod()
HttpMessage::setRequestUrl()
HttpMessage::setResponseCode()
HttpMessage::setResponseStatus()
HttpMessage::setType()
HttpMessage::toMessageTypeObject()
HttpMessage::toString()
httpquerystring()
HttpQueryString::__construct()
HttpQueryString::get()
HttpQueryString::mod()
HttpQueryString::set()
HttpQueryString::singleton()
HttpQueryString::toArray()
HttpQueryString::toString()
HttpQueryString::xlate()
httprequest()
HttpRequest::__construct()
HttpRequest::addCookies()
HttpRequest::addHeaders()
HttpRequest::addPostFields()
HttpRequest::addPostFile()
HttpRequest::addPutData()
HttpRequest::addQueryData()
HttpRequest::addRawPostData()
HttpRequest::addSslOptions()
HttpRequest::clearHistory()
HttpRequest::enableCookies()
HttpRequest::getContentType()
HttpRequest::getCookies()
HttpRequest::getHeaders()
HttpRequest::getHistory()
HttpRequest::getMethod()
HttpRequest::getOptions()
HttpRequest::getPostFields()
HttpRequest::getPostFiles()
HttpRequest::getPutData()
HttpRequest::getPutFile()
HttpRequest::getQueryData()
HttpRequest::getRawPostData()
HttpRequest::getRawRequestMessage()
HttpRequest::getRawResponseMessage()
HttpRequest::getRequestMessage()
HttpRequest::getResponseBody()
HttpRequest::getResponseCode()
HttpRequest::getResponseCookies()
HttpRequest::getResponseData()
HttpRequest::getResponseHeader()
HttpRequest::getResponseInfo()
HttpRequest::getResponseMessage()
HttpRequest::getResponseStatus()
HttpRequest::getSslOptions()
HttpRequest::getUrl()
HttpRequest::resetCookies()
HttpRequest::send()
HttpRequest::setContentType()
HttpRequest::setCookies()
HttpRequest::setHeaders()
HttpRequest::setMethod()
HttpRequest::setOptions()
HttpRequest::setPostFields()
HttpRequest::setPostFiles()
HttpRequest::setPutData()
HttpRequest::setPutFile()
HttpRequest::setQueryData()
HttpRequest::setRawPostData()
HttpRequest::setSslOptions()
HttpRequest::setUrl()
httprequestpool()
HttpRequestPool::__construct()
HttpRequestPool::__destruct()
HttpRequestPool::attach()
HttpRequestPool::detach()
HttpRequestPool::getAttachedRequests()
HttpRequestPool::getFinishedRequests()
HttpRequestPool::reset()
HttpRequestPool::send()
HttpRequestPool::socketPerform()
HttpRequestPool::socketSelect()
httpresponse()
HttpResponse::capture()
HttpResponse::getBufferSize()
HttpResponse::getCache()
HttpResponse::getCacheControl()
HttpResponse::getContentDisposition()
HttpResponse::getContentType()
HttpResponse::getData()
HttpResponse::getETag()
HttpResponse::getFile()
HttpResponse::getGzip()
HttpResponse::getHeader()
HttpResponse::getLastModified()
HttpResponse::getRequestBody()
HttpResponse::getRequestBodyStream()
HttpResponse::getRequestHeaders()
HttpResponse::getStream()
HttpResponse::getThrottleDelay()
HttpResponse::guessContentType()
HttpResponse::redirect()
HttpResponse::send()
HttpResponse::setBufferSize()
HttpResponse::setCache()
HttpResponse::setCacheControl()
HttpResponse::setContentDisposition()
HttpResponse::setContentType()
HttpResponse::setData()
HttpResponse::setETag()
HttpResponse::setFile()
HttpResponse::setGzip()
HttpResponse::setHeader()
HttpResponse::setLastModified()
HttpResponse::setStream()
HttpResponse::setThrottleDelay()
HttpResponse::status()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchor()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommittedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()
I
ibase_add_user()
ibase_affected_rows()
ibase_backup()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_db_info()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_maintain_db()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_restore()
ibase_rollback()
ibase_rollback_ret()
ibase_server_info()
ibase_service_attach()
ibase_service_detach()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
id3_get_frame_long_name()
id3_get_frame_short_name()
id3_get_genre_id()
id3_get_genre_list()
id3_get_genre_name()
id3_get_tag()
id3_get_version()
id3_remove_tag()
id3_set_tag()
idate()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
iis_add_server()
iis_get_dir_security()
iis_get_script_map()
iis_get_server_by_comment()
iis_get_server_by_path()
iis_get_server_rights()
iis_get_service_state()
iis_remove_server()
iis_set_app_settings()
iis_set_dir_security()
iis_set_script_map()
iis_set_server_rights()
iis_start_server()
iis_start_service()
iis_stop_server()
iis_stop_service()
image2wbmp()
image_type_to_extension()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imageconvolution()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefilter()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imagegrabscreen()
imagegrabwindow()
imageinterlace()
imageistruecolor()
imagejpeg()
imagelayereffect()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imagexbm()
imagick()
Imagick::__construct()
Imagick::adaptiveBlurImage()
Imagick::adaptiveResizeImage()
Imagick::adaptiveSharpenImage()
Imagick::adaptiveThresholdImage()
Imagick::addImage()
Imagick::addNoiseImage()
Imagick::affineTransformImage()
Imagick::annotateImage()
Imagick::appendImages()
Imagick::averageImages()
Imagick::blackThresholdImage()
Imagick::blurImage()
Imagick::borderImage()
Imagick::charcoalImage()
Imagick::chopImage()
Imagick::clear()
Imagick::clipImage()
Imagick::clipPathImage()
Imagick::clone()
Imagick::coalesceImages()
Imagick::colorFloodfillImage()
Imagick::colorizeImage()
Imagick::combineImages()
Imagick::commentImage()
Imagick::compareImageChannels()
Imagick::compareImageLayers()
Imagick::compositeImage()
Imagick::contrastImage()
Imagick::contrastStretchImage()
Imagick::convolveImage()
Imagick::cropImage()
Imagick::cropThumbnailImage()
Imagick::current()
Imagick::cycleColormapImage()
Imagick::deconstructImages()
Imagick::despeckleImage()
Imagick::destroy()
Imagick::displayImage()
Imagick::displayImages()
Imagick::drawImage()
Imagick::edgeImage()
Imagick::embossImage()
Imagick::enhanceImage()
Imagick::equalizeImage()
Imagick::evaluateImage()
Imagick::flattenImages()
Imagick::flipImage()
Imagick::flopImage()
Imagick::frameImage()
Imagick::fxImage()
Imagick::gammaImage()
Imagick::gaussianBlurImage()
Imagick::getCompression()
Imagick::getCompressionQuality()
Imagick::getCopyright()
Imagick::getFilename()
Imagick::getFormat()
Imagick::getHomeURL()
Imagick::getImage()
Imagick::getImageBackgroundColor()
Imagick::getImageBlob()
Imagick::getImageBluePrimary()
Imagick::getImageBorderColor()
Imagick::getImageChannelDepth()
Imagick::getImageChannelDistortion()
Imagick::getImageChannelExtrema()
Imagick::getImageChannelMean()
Imagick::getImageChannelStatistics()
Imagick::getImageColormapColor()
Imagick::getImageColors()
Imagick::getImageColorspace()
Imagick::getImageCompose()
Imagick::getImageDelay()
Imagick::getImageDepth()
Imagick::getImageDispose()
Imagick::getImageDistortion()
Imagick::getImageExtrema()
Imagick::getImageFilename()
Imagick::getImageFormat()
Imagick::getImageGamma()
Imagick::getImageGeometry()
Imagick::getImageGreenPrimary()
Imagick::getImageHeight()
Imagick::getImageHistogram()
Imagick::getImageIndex()
Imagick::getImageInterlaceScheme()
Imagick::getImageInterpolateMethod()
Imagick::getImageIterations()
Imagick::getImageMatte()
Imagick::getImageMatteColor()
Imagick::getImagePage()
Imagick::getImagePixelColor()
Imagick::getImageProfile()
Imagick::getImageProperty()
Imagick::getImageRedPrimary()
Imagick::getImageRegion()
Imagick::getImageRenderingIntent()
Imagick::getImageResolution()
Imagick::getImageScene()
Imagick::getImageSignature()
Imagick::getImageSize()
Imagick::getImageTicksPerSecond()
Imagick::getImageTotalInkDensity()
Imagick::getImageType()
Imagick::getImageUnits()
Imagick::getImageVirtualPixelMethod()
Imagick::getImageWhitePoint()
Imagick::getImageWidth()
Imagick::getInterlaceScheme()
Imagick::getNumberImages()
Imagick::getOption()
Imagick::getPackageName()
Imagick::getPage()
Imagick::getPixelIterator()
Imagick::getPixelRegionIterator()
Imagick::getQuantumDepth()
Imagick::getQuantumRange()
Imagick::getReleaseDate()
Imagick::getResource()
Imagick::getResourceLimit()
Imagick::getSamplingFactors()
Imagick::getSize()
Imagick::getSizeOffset()
Imagick::getVersion()
Imagick::hasNextImage()
Imagick::hasPreviousImage()
Imagick::identifyImage()
Imagick::implodeImage()
Imagick::labelImage()
Imagick::levelImage()
Imagick::linearStretchImage()
Imagick::magnifyImage()
Imagick::matteFloodfillImage()
Imagick::medianFilterImage()
Imagick::minifyImage()
Imagick::modulateImage()
Imagick::montageImage()
Imagick::morphImages()
Imagick::mosaicImages()
Imagick::motionBlurImage()
Imagick::negateImage()
Imagick::newImage()
Imagick::newPseudoImage()
Imagick::nextImage()
Imagick::normalizeImage()
Imagick::oilPaintImage()
Imagick::optimizeImageLayers()
Imagick::paintOpaqueImage()
Imagick::paintTransparentImage()
Imagick::pingImage()
Imagick::pingImageBlob()
Imagick::pingImageFile()
Imagick::polaroidImage()
Imagick::posterizeImage()
Imagick::previousImage()
Imagick::profileImage()
Imagick::queryFontMetrics()
Imagick::queryFonts()
Imagick::queryFormats()
Imagick::radialBlurImage()
Imagick::raiseImage()
Imagick::randomThresholdImage()
Imagick::readImage()
Imagick::readImageBlob()
Imagick::readImageFile()
Imagick::reduceNoiseImage()
Imagick::removeImage()
Imagick::removeImageProfile()
Imagick::render()
Imagick::resampleImage()
Imagick::resizeImage()
Imagick::rollImage()
Imagick::rotateImage()
Imagick::roundCorners()
Imagick::sampleImage()
Imagick::scaleImage()
Imagick::separateImageChannel()
Imagick::sepiaToneImage()
Imagick::setBackgroundColor()
Imagick::setCompression()
Imagick::setCompressionQuality()
Imagick::setFilename()
Imagick::setFirstIterator()
Imagick::setFormat()
Imagick::setImageBackgroundColor()
Imagick::setImageBias()
Imagick::setImageBluePrimary()
Imagick::setImageBorderColor()
Imagick::setImageChannelDepth()
Imagick::setImageColormapColor()
Imagick::setImageColorspace()
Imagick::setImageCompose()
Imagick::setImageCompression()
Imagick::setImageDelay()
Imagick::setImageDepth()
Imagick::setImageDispose()
Imagick::setImageExtent()
Imagick::setImageFilename()
Imagick::setImageFormat()
Imagick::setImageGamma()
Imagick::setImageGreenPrimary()
Imagick::setImageIndex()
Imagick::setImageInterlaceScheme()
Imagick::setImageInterpolateMethod()
Imagick::setImageIterations()
Imagick::setImageMatte()
Imagick::setImageMatteColor()
Imagick::setImagePage()
Imagick::setImageProfile()
Imagick::setImageProperty()
Imagick::setImageRedPrimary()
Imagick::setImageRenderingIntent()
Imagick::setImageResolution()
Imagick::setImageScene()
Imagick::setImageTicksPerSecond()
Imagick::setImageType()
Imagick::setImageUnits()
Imagick::setImageVirtualPixelMethod()
Imagick::setImageWhitePoint()
Imagick::setInterlaceScheme()
Imagick::setOption()
Imagick::setPage()
Imagick::setResolution()
Imagick::setResourceLimit()
Imagick::setSamplingFactors()
Imagick::setSize()
Imagick::setSizeOffset()
Imagick::setType()
Imagick::shadeImage()
Imagick::shadowImage()
Imagick::sharpenImage()
Imagick::shaveImage()
Imagick::shearImage()
Imagick::sigmoidalContrastImage()
Imagick::sketchImage()
Imagick::solarizeImage()
Imagick::spliceImage()
Imagick::spreadImage()
Imagick::steganoImage()
Imagick::stereoImage()
Imagick::stripImage()
Imagick::swirlImage()
Imagick::textureImage()
Imagick::thresholdImage()
Imagick::thumbnailImage()
Imagick::tintImage()
Imagick::transverseImage()
Imagick::trimImage()
Imagick::uniqueImageColors()
Imagick::unsharpMaskImage()
Imagick::valid()
Imagick::vignetteImage()
Imagick::waveImage()
Imagick::whiteThresholdImage()
Imagick::writeImage()
Imagick::writeImages()
ImagickDraw::__construct()
ImagickDraw::affine()
ImagickDraw::annotation()
ImagickDraw::arc()
ImagickDraw::bezier()
ImagickDraw::circle()
ImagickDraw::clear()
ImagickDraw::clone()
ImagickDraw::color()
ImagickDraw::comment()
ImagickDraw::composite()
ImagickDraw::destroy()
ImagickDraw::ellipse()
ImagickDraw::getClipPath()
ImagickDraw::getClipRule()
ImagickDraw::getClipUnits()
ImagickDraw::getFillColor()
ImagickDraw::getFillOpacity()
ImagickDraw::getFillRule()
ImagickDraw::getFont()
ImagickDraw::getFontFamily()
ImagickDraw::getFontSize()
ImagickDraw::getFontStyle()
ImagickDraw::getFontWeight()
ImagickDraw::getGravity()
ImagickDraw::getStrokeAntialias()
ImagickDraw::getStrokeColor()
ImagickDraw::getStrokeDashArray()
ImagickDraw::getStrokeDashOffset()
ImagickDraw::getStrokeLineCap()
ImagickDraw::getStrokeLineJoin()
ImagickDraw::getStrokeMiterLimit()
ImagickDraw::getStrokeOpacity()
ImagickDraw::getStrokeWidth()
ImagickDraw::getTextAlignment()
ImagickDraw::getTextAntialias()
ImagickDraw::getTextDecoration()
ImagickDraw::getTextEncoding()
ImagickDraw::getTextUnderColor()
ImagickDraw::getVectorGraphics()
ImagickDraw::line()
ImagickDraw::matte()
ImagickDraw::pathClose()
ImagickDraw::pathCurveToAbsolute()
ImagickDraw::pathCurveToQuadraticBezierAbsolute()
ImagickDraw::pathCurveToQuadraticBezierRelative()
ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute()
ImagickDraw::pathCurveToQuadraticBezierSmoothRelative()
ImagickDraw::pathCurveToRelative()
ImagickDraw::pathCurveToSmoothAbsolute()
ImagickDraw::pathCurveToSmoothRelative()
ImagickDraw::pathEllipticArcAbsolute()
ImagickDraw::pathEllipticArcRelative()
ImagickDraw::pathFinish()
ImagickDraw::pathLineToAbsolute()
ImagickDraw::pathLineToHorizontalAbsolute()
ImagickDraw::pathLineToHorizontalRelative()
ImagickDraw::pathLineToRelative()
ImagickDraw::pathLineToVerticalAbsolute()
ImagickDraw::pathLineToVerticalRelative()
ImagickDraw::pathMoveToAbsolute()
ImagickDraw::pathMoveToRelative()
ImagickDraw::pathStart()
ImagickDraw::point()
ImagickDraw::polygon()
ImagickDraw::polyline()
ImagickDraw::pop()
ImagickDraw::popClipPath()
ImagickDraw::popDefs()
ImagickDraw::popPattern()
ImagickDraw::push()
ImagickDraw::pushClipPath()
ImagickDraw::pushDefs()
ImagickDraw::pushPattern()
ImagickDraw::rectangle()
ImagickDraw::render()
ImagickDraw::rotate()
ImagickDraw::roundRectangle()
ImagickDraw::scale()
ImagickDraw::setClipPath()
ImagickDraw::setClipRule()
ImagickDraw::setClipUnits()
ImagickDraw::setFillAlpha()
ImagickDraw::setFillColor()
ImagickDraw::setFillOpacity()
ImagickDraw::setFillPatternURL()
ImagickDraw::setFillRule()
ImagickDraw::setFont()
ImagickDraw::setFontFamily()
ImagickDraw::setFontSize()
ImagickDraw::setFontStretch()
ImagickDraw::setFontStyle()
ImagickDraw::setFontWeight()
ImagickDraw::setGravity()
ImagickDraw::setStrokeAlpha()
ImagickDraw::setStrokeAntialias()
ImagickDraw::setStrokeColor()
ImagickDraw::setStrokeDashArray()
ImagickDraw::setStrokeDashOffset()
ImagickDraw::setStrokeLineCap()
ImagickDraw::setStrokeLineJoin()
ImagickDraw::setStrokeMiterLimit()
ImagickDraw::setStrokeOpacity()
ImagickDraw::setStrokePatternURL()
ImagickDraw::setStrokeWidth()
ImagickDraw::setTextAlignment()
ImagickDraw::setTextAntialias()
ImagickDraw::setTextDecoration()
ImagickDraw::setTextEncoding()
ImagickDraw::setTextUnderColor()
ImagickDraw::setVectorGraphics()
ImagickDraw::setViewbox()
ImagickDraw::skewX()
ImagickDraw::skewY()
ImagickDraw::translate()
ImagickPixel::__construct()
ImagickPixel::clear()
ImagickPixel::destroy()
ImagickPixel::getColor()
ImagickPixel::getColorCount()
ImagickPixel::getColorValue()
ImagickPixel::getHSL()
ImagickPixel::isSimilar()
ImagickPixel::setColor()
ImagickPixel::setColorValue()
ImagickPixel::setHSL()
ImagickPixelIterator::__construct()
ImagickPixelIterator::clear()
ImagickPixelIterator::destroy()
ImagickPixelIterator::getCurrentIteratorRow()
ImagickPixelIterator::getIteratorRow()
ImagickPixelIterator::getNextIteratorRow()
ImagickPixelIterator::getPreviousIteratorRow()
ImagickPixelIterator::newPixelIterator()
ImagickPixelIterator::newPixelRegionIterator()
ImagickPixelIterator::resetIterator()
ImagickPixelIterator::setIteratorFirstRow()
ImagickPixelIterator::setIteratorLastRow()
ImagickPixelIterator::setIteratorRow()
ImagickPixelIterator::syncIterator()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_savebody()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
inet_ntop()
inet_pton()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_cursor()
ingres_errno()
ingres_error()
ingres_errsqlstate()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
installation()
installation()
interface_exists()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_eval_ecmascript_params()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_invite()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_list()
ircg_lookup_format_messages()
ircg_lusers()
ircg_msg()
ircg_names()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_oper()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_who()
ircg_whois()
is_a()
is_array()
is_binary()
is_bool()
is_buffer()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_soap_fault()
is_string()
is_subclass_of()
is_unicode()
is_uploaded_file()
is_writable()
is_writeable()
isset()
iterator_count()
iterator_to_array()
J
java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
json_decode()
json_encode()
juliantojd()
K
kadm5_chpass_principal()
kadm5_create_principal()
kadm5_delete_principal()
kadm5_destroy()
kadm5_flush()
kadm5_get_policies()
kadm5_get_principal()
kadm5_get_principals()
kadm5_init_with_password()
kadm5_modify_principal()
key()
krsort()
ksort()
L
lcg_value()
lchgrp()
lchown()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_sasl_bind()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
libxml_clear_errors()
libxml_get_errors()
libxml_get_last_error()
libxml_set_streams_context()
libxml_use_internal_errors()
LimitIterator::getPosition()
LimitIterator::next()
LimitIterator::rewind()
LimitIterator::seek()
LimitIterator::valid()
link()
linkinfo()
list()
locale_get_default()
locale_set_default()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()
M
m_checkstatus()
m_completeauthorizations()
m_connect()
m_connectionerror()
m_deletetrans()
m_destroyconn()
m_destroyengine()
m_getcell()
m_getcellbynum()
m_getcommadelimited()
m_getheader()
m_initconn()
m_initengine()
m_iscommadelimited()
m_maxconntimeout()
m_monitor()
m_numcolumns()
m_numrows()
m_parsecommadelimited()
m_responsekeys()
m_responseparam()
m_returnstatus()
m_setblocking()
m_setdropfile()
m_setip()
m_setssl()
m_setssl_cafile()
m_setssl_files()
m_settimeout()
m_sslcert_gen_hash()
m_transactionssent()
m_transinqueue()
m_transkeyval()
m_transnew()
m_transsend()
m_uwait()
m_validateidentifier()
m_verifyconnection()
m_verifysslcert()
mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_extract_whole_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
maxdb()
maxdb->affected_rows()
maxdb->auto_commit()
maxdb->change_user()
maxdb->character_set_name()
maxdb->close()
maxdb->close_long_data()
maxdb->commit()
maxdb->disable_reads_from_master()
maxdb->errno()
maxdb->fetch_assoc()
maxdb->field_count()
maxdb->get_host_info()
maxdb->info()
maxdb->insert_id()
maxdb->kill()
maxdb->more_results()
maxdb->multi_query()
maxdb->next_result()
maxdb->options()
maxdb->ping()
maxdb->prepare()
maxdb->protocol_version()
maxdb->query()
maxdb->real_connect()
maxdb->real_escape_string()
maxdb->real_query()
maxdb->rollback()
maxdb->rpl_query_type()
maxdb->select_db()
maxdb->send_query()
maxdb->server_info()
maxdb->sqlstate()
maxdb->ssl_set()
maxdb->stat()
maxdb->stmt_init()
maxdb->store_result()
maxdb->store_result()
maxdb->thread_id()
maxdb->use_result()
maxdb->warning_count()
maxdb_affected_rows()
maxdb_autocommit()
maxdb_bind_param()
maxdb_bind_result()
maxdb_change_user()
maxdb_character_set_name()
maxdb_client_encoding()
maxdb_close()
maxdb_close_long_data()
maxdb_commit()
maxdb_connect()
maxdb_connect_errno()
maxdb_connect_error()
maxdb_data_seek()
maxdb_debug()
maxdb_disable_reads_from_master()
maxdb_disable_rpl_parse()
maxdb_dump_debug_info()
maxdb_embedded_connect()
maxdb_enable_reads_from_master()
maxdb_enable_rpl_parse()
maxdb_errno()
maxdb_error()
maxdb_escape_string()
maxdb_execute()
maxdb_fetch()
maxdb_fetch_array()
maxdb_fetch_assoc()
maxdb_fetch_field()
maxdb_fetch_field_direct()
maxdb_fetch_fields()
maxdb_fetch_lengths()
maxdb_fetch_object()
maxdb_fetch_row()
maxdb_field_count()
maxdb_field_seek()
maxdb_field_tell()
maxdb_free_result()
maxdb_get_client_info()
maxdb_get_client_version()
maxdb_get_host_info()
maxdb_get_metadata()
maxdb_get_proto_info()
maxdb_get_server_info()
maxdb_get_server_version()
maxdb_info()
maxdb_init()
maxdb_insert_id()
maxdb_kill()
maxdb_master_query()
maxdb_more_results()
maxdb_multi_query()
maxdb_next_result()
maxdb_num_fields()
maxdb_num_rows()
maxdb_options()
maxdb_param_count()
maxdb_ping()
maxdb_prepare()
maxdb_query()
maxdb_real_connect()
maxdb_real_escape_string()
maxdb_real_query()
maxdb_report()
maxdb_rollback()
maxdb_rpl_parse_enabled()
maxdb_rpl_probe()
maxdb_rpl_query_type()
maxdb_select_db()
maxdb_send_long_data()
maxdb_send_query()
maxdb_server_end()
maxdb_server_init()
maxdb_set_opt()
maxdb_sqlstate()
maxdb_ssl_set()
maxdb_stat()
maxdb_stmt->affected_rows()
maxdb_stmt->close()
maxdb_stmt->errno()
maxdb_stmt->error()
maxdb_stmt_affected_rows()
maxdb_stmt_bind_param()
maxdb_stmt_bind_result()
maxdb_stmt_close()
maxdb_stmt_close_long_data()
maxdb_stmt_data_seek()
maxdb_stmt_errno()
maxdb_stmt_error()
maxdb_stmt_execute()
maxdb_stmt_fetch()
maxdb_stmt_free_result()
maxdb_stmt_init()
maxdb_stmt_num_rows()
maxdb_stmt_param_count()
maxdb_stmt_prepare()
maxdb_stmt_reset()
maxdb_stmt_result_metadata()
maxdb_stmt_send_long_data()
maxdb_stmt_sqlstate()
maxdb_stmt_store_result()
maxdb_store_result()
maxdb_thread_id()
maxdb_thread_safe()
maxdb_use_result()
maxdb_warning_count()
mb_check_encoding()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_stripos()
mb_stristr()
mb_strlen()
mb_strpos()
mb_strrchr()
mb_strrichr()
mb_strripos()
mb_strrpos()
mb_strstr()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
md5()
md5_file()
mdecrypt_generic()
Memcache::add()
Memcache::addServer()
Memcache::close()
Memcache::connect()
Memcache::decrement()
Memcache::delete()
Memcache::flush()
Memcache::get()
Memcache::getExtendedStats()
Memcache::getServerStatus()
Memcache::getStats()
Memcache::getVersion()
Memcache::increment()
Memcache::pconnect()
Memcache::replace()
Memcache::set()
Memcache::setCompressThreshold()
Memcache::setServerParams()
memcache_debug()
memory_get_peak_usage()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_keypress()
ming_setcubicthreshold()
ming_setscale()
ming_setswfcompression()
ming_useconstants()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_get_data()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_set_data()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_db_query()
msql_dbname()
msql_drop_db()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_flags()
msql_field_len()
msql_field_name()
msql_field_seek()
msql_field_table()
msql_field_type()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_set_charset()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli->__construct()
mysqli->affected_rows()
mysqli->autocommit()
mysqli->change_user()
mysqli->character_set_name()
mysqli->close()
mysqli->commit()
mysqli->debug()
mysqli->disable_reads_from_master()
mysqli->dump_debug_info()
mysqli->errno()
mysqli->fetch_assoc()
mysqli->field_count()
mysqli->host_info()
mysqli->info()
mysqli->insert_id()
mysqli->kill()
mysqli->more_results()
mysqli->multi_query()
mysqli->next_result()
mysqli->options()
mysqli->ping()
mysqli->prepare()
mysqli->protocol_version()
mysqli->query()
mysqli->real_connect()
mysqli->real_escape_string()
mysqli->real_query()
mysqli->rollback()
mysqli->rpl_query_type()
mysqli->select_db()
mysqli->send_query()
mysqli->server_info()
mysqli->server_version()
mysqli->set_charset()
mysqli->sqlstate()
mysqli->ssl_set()
mysqli->stat()
mysqli->stmt_init()
mysqli->store_result()
mysqli->thread_id()
mysqli->use_result()
mysqli->warning_count()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_client_encoding()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_connect_errno()
mysqli_connect_error()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_embedded_server_end()
mysqli_embedded_server_start()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_escape_string()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_charset()
mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_host_info()
mysqli_get_metadata()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_get_warnings()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_more_results()
mysqli_multi_query()
mysqli_next_result()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_query()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_report()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_server_end()
mysqli_server_init()
mysqli_set_charset()
mysqli_set_local_infile_default()
mysqli_set_local_infile_handler()
mysqli_set_opt()
mysqli_slave_query()
mysqli_sqlstate()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt->affected_rows()
mysqli_stmt->close()
mysqli_stmt->errno()
mysqli_stmt->error()
mysqli_stmt->sqlstate()
mysqli_stmt->store_result()
mysqli_stmt_affected_rows()
mysqli_stmt_attr_get()
mysqli_stmt_attr_set()
mysqli_stmt_bind_param()
mysqli_stmt_bind_result()
mysqli_stmt_close()
mysqli_stmt_data_seek()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_stmt_field_count()
mysqli_stmt_free_result()
mysqli_stmt_get_warnings()
mysqli_stmt_init()
mysqli_stmt_insert_id()
mysqli_stmt_num_rows()
mysqli_stmt_param_count()
mysqli_stmt_prepare()
mysqli_stmt_reset()
mysqli_stmt_result_metadata()
mysqli_stmt_send_long_data()
mysqli_stmt_sqlstate()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()
N
natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
newt_bell()
newt_button()
newt_button_bar()
newt_centered_window()
newt_checkbox()
newt_checkbox_get_value()
newt_checkbox_set_flags()
newt_checkbox_set_value()
newt_checkbox_tree()
newt_checkbox_tree_add_item()
newt_checkbox_tree_find_item()
newt_checkbox_tree_get_current()
newt_checkbox_tree_get_entry_value()
newt_checkbox_tree_get_multi_selection()
newt_checkbox_tree_get_selection()
newt_checkbox_tree_multi()
newt_checkbox_tree_set_current()
newt_checkbox_tree_set_entry()
newt_checkbox_tree_set_entry_value()
newt_checkbox_tree_set_width()
newt_clear_key_buffer()
newt_cls()
newt_compact_button()
newt_component_add_callback()
newt_component_takes_focus()
newt_create_grid()
newt_cursor_off()
newt_cursor_on()
newt_delay()
newt_draw_form()
newt_draw_root_text()
newt_entry()
newt_entry_get_value()
newt_entry_set()
newt_entry_set_filter()
newt_entry_set_flags()
newt_finished()
newt_form()
newt_form_add_component()
newt_form_add_components()
newt_form_add_hot_key()
newt_form_destroy()
newt_form_get_current()
newt_form_run()
newt_form_set_background()
newt_form_set_height()
newt_form_set_size()
newt_form_set_timer()
newt_form_set_width()
newt_form_watch_fd()
newt_get_screen_size()
newt_grid_add_components_to_form()
newt_grid_basic_window()
newt_grid_free()
newt_grid_get_size()
newt_grid_h_close_stacked()
newt_grid_h_stacked()
newt_grid_place()
newt_grid_set_field()
newt_grid_simple_window()
newt_grid_v_close_stacked()
newt_grid_v_stacked()
newt_grid_wrapped_window()
newt_grid_wrapped_window_at()
newt_init()
newt_label()
newt_label_set_text()
newt_listbox()
newt_listbox_append_entry()
newt_listbox_clear()
newt_listbox_clear_selection()
newt_listbox_delete_entry()
newt_listbox_get_current()
newt_listbox_get_selection()
newt_listbox_insert_entry()
newt_listbox_item_count()
newt_listbox_select_item()
newt_listbox_set_current()
newt_listbox_set_current_by_key()
newt_listbox_set_data()
newt_listbox_set_entry()
newt_listbox_set_width()
newt_listitem()
newt_listitem_get_data()
newt_listitem_set()
newt_open_window()
newt_pop_help_line()
newt_pop_window()
newt_push_help_line()
newt_radio_get_current()
newt_radiobutton()
newt_redraw_help_line()
newt_reflow_text()
newt_refresh()
newt_resize_screen()
newt_resume()
newt_run_form()
newt_scale()
newt_scale_set()
newt_scrollbar_set()
newt_set_help_callback()
newt_set_suspend_callback()
newt_suspend()
newt_textbox()
newt_textbox_get_num_lines()
newt_textbox_reflowed()
newt_textbox_set_height()
newt_textbox_set_text()
newt_vertical_scrollbar()
newt_wait_for_key()
newt_win_choice()
newt_win_entries()
newt_win_menu()
newt_win_message()
newt_win_messagev()
newt_win_ternary()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()
O
ob_clean()
ob_deflatehandler()
ob_end_clean()
ob_end_flush()
ob_etaghandler()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_inflatehandler()
ob_list_handlers()
ob_start()
ob_tidyhandler()
OCI-Collection->append()
OCI-Collection->assign()
OCI-Collection->assignElem()
OCI-Collection->free()
OCI-Collection->getElem()
OCI-Collection->max()
OCI-Collection->size()
OCI-Collection->trim()
OCI-Lob->append()
OCI-Lob->close()
OCI-Lob->eof()
OCI-Lob->erase()
OCI-Lob->export()
OCI-Lob->flush()
OCI-Lob->free()
OCI-Lob->getBuffering()
OCI-Lob->import()
OCI-Lob->load()
OCI-Lob->read()
OCI-Lob->rewind()
OCI-Lob->save()
OCI-Lob->saveFile()
OCI-Lob->seek()
OCI-Lob->setBuffering()
OCI-Lob->size()
OCI-Lob->tell()
OCI-Lob->truncate()
OCI-Lob->write()
OCI-Lob->writeTemporary()
OCI-Lob->writeToFile()
oci_bind_array_by_name()
oci_bind_by_name()
oci_cancel()
oci_close()
oci_commit()
oci_connect()
oci_define_by_name()
oci_error()
oci_execute()
oci_fetch()
oci_fetch_all()
oci_fetch_array()
oci_fetch_assoc()
oci_fetch_object()
oci_fetch_row()
oci_field_is_null()
oci_field_name()
oci_field_precision()
oci_field_scale()
oci_field_size()
oci_field_type()
oci_field_type_raw()
oci_free_statement()
oci_internal_debug()
oci_lob_copy()
oci_lob_is_equal()
oci_new_collection()
oci_new_connect()
oci_new_cursor()
oci_new_descriptor()
oci_num_fields()
oci_num_rows()
oci_parse()
oci_password_change()
oci_pconnect()
oci_result()
oci_rollback()
oci_server_version()
oci_set_prefetch()
oci_statement_type()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
openal_buffer_create()
openal_buffer_data()
openal_buffer_destroy()
openal_buffer_get()
openal_buffer_loadwav()
openal_context_create()
openal_context_current()
openal_context_destroy()
openal_context_process()
openal_context_suspend()
openal_device_close()
openal_device_open()
openal_listener_get()
openal_listener_set()
openal_source_create()
openal_source_destroy()
openal_source_get()
openal_source_pause()
openal_source_play()
openal_source_rewind()
openal_source_set()
openal_source_stop()
openal_stream()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_get_public_key()
openssl_csr_get_subject()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_free()
openssl_pkey_get_details()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
orbitenum()
orbitobject()
orbitstruct()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
override_function()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()
P
pack()
ParentIterator::getChildren()
ParentIterator::hasChildren()
ParentIterator::next()
ParentIterator::rewind()
parse_ini_file()
parse_str()
parse_url()
parsekit_compile_file()
parsekit_compile_string()
parsekit_func_arginfo()
passthru()
pathinfo()
pclose()
pcntl_alarm()
pcntl_exec()
pcntl_fork()
pcntl_getpriority()
pcntl_setpriority()
pcntl_signal()
pcntl_wait()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_activate_item()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_nameddest()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_table_cell()
pdf_add_textflow()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_document()
pdf_begin_font()
pdf_begin_glyph()
pdf_begin_item()
pdf_begin_layer()
pdf_begin_page()
pdf_begin_page_ext()
pdf_begin_pattern()
pdf_begin_template()
pdf_begin_template_ext()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_create_3dview()
pdf_create_action()
pdf_create_annotation()
pdf_create_bookmark()
pdf_create_field()
pdf_create_fieldgroup()
pdf_create_gstate()
pdf_create_pvf()
pdf_create_textflow()
pdf_curveto()
pdf_define_layer()
pdf_delete()
pdf_delete_pvf()
pdf_delete_table()
pdf_delete_textflow()
pdf_encoding_set_char()
pdf_end_document()
pdf_end_font()
pdf_end_glyph()
pdf_end_item()
pdf_end_layer()
pdf_end_page()
pdf_end_page_ext()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_imageblock()
pdf_fill_pdfblock()
pdf_fill_stroke()
pdf_fill_textblock()
pdf_findfont()
pdf_fit_image()
pdf_fit_pdi_page()
pdf_fit_table()
pdf_fit_textflow()
pdf_fit_textline()
pdf_get_apiname()
pdf_get_buffer()
pdf_get_errmsg()
pdf_get_errnum()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_info_font()
pdf_info_matchbox()
pdf_info_table()
pdf_info_textflow()
pdf_info_textline()
pdf_initgraphics()
pdf_lineto()
pdf_load_3ddata()
pdf_load_font()
pdf_load_iccprofile()
pdf_load_image()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_tiff()
pdf_pcos_get_number()
pdf_pcos_get_stream()
pdf_pcos_get_string()
pdf_place_image()
pdf_place_pdi_page()
pdf_process_pdi()
pdf_rect()
pdf_restore()
pdf_resume_page()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_gstate()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_layer_dependency()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setdashpattern()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_shading()
pdf_shading_pattern()
pdf_shfill()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_suspend_page()
pdf_translate()
pdf_utf16_to_utf8()
pdf_utf32_to_utf16()
pdf_utf8_to_utf16()
PDO->__construct()
PDO->beginTransaction()
PDO->commit()
PDO->errorCode()
PDO->errorInfo()
PDO->exec()
PDO->getAttribute()
PDO->getAvailableDrivers()
PDO->lastInsertId()
PDO->prepare()
PDO->query()
PDO->quote()
PDO->rollBack()
PDO->setAttribute()
PDO->sqliteCreateAggregate()
PDO->sqliteCreateFunction()
PDO::pgsqlLOBCreate()
PDO::pgsqlLOBOpen()
PDO::pgsqlLOBUnlink()
PDOStatement->bindColumn()
PDOStatement->bindParam()
PDOStatement->bindValue()
PDOStatement->closeCursor()
PDOStatement->columnCount()
PDOStatement->errorCode()
PDOStatement->errorInfo()
PDOStatement->execute()
PDOStatement->fetch()
PDOStatement->fetchAll()
PDOStatement->fetchColumn()
PDOStatement->fetchObject()
PDOStatement->getAttribute()
PDOStatement->getColumnMeta()
PDOStatement->nextRowset()
PDOStatement->rowCount()
PDOStatement->setAttribute()
PDOStatement->setFetchMode()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_execute()
pg_fetch_all()
pg_fetch_all_columns()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_table()
pg_field_type()
pg_field_type_oid()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_parameter_status()
pg_pconnect()
pg_ping()
pg_port()
pg_prepare()
pg_put_line()
pg_query()
pg_query_params()
pg_result_error()
pg_result_error_field()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_execute()
pg_send_prepare()
pg_send_query()
pg_send_query_params()
pg_set_client_encoding()
pg_set_error_verbosity()
pg_trace()
pg_transaction_status()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
pg_version()
Phar->compressAllFilesBZIP2()
Phar->compressAllFilesGZ()
Phar->count()
Phar->getMetaData()
Phar->getModified()
Phar->getSignature()
Phar->getStub()
Phar->getVersion()
Phar->isBuffering()
Phar->setMetaData()
Phar->setStub()
Phar->startBuffering()
Phar->stopBuffering()
Phar->uncompressAllFiles()
Phar::__construct()
Phar::apiVersion()
Phar::canCompress()
Phar::canWrite()
Phar::loadPhar()
Phar::mapPhar()
Phar::offsetExists()
Phar::offsetGet()
Phar::offsetSet()
Phar::offsetUnset()
PharFileInfo->chmod()
PharFileInfo->getCompressedSize()
PharFileInfo->getCRC32()
PharFileInfo->getMetaData()
PharFileInfo->getPharFlags()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCRCChecked()
PharFileInfo->setCompressedBZIP2()
PharFileInfo->setCompressedGZ()
PharFileInfo->setMetaData()
PharFileInfo->setUncompressed()
PharFileInfo::__construct()
php_check_syntax()
php_ini_scanned_files()
php_logo_guid()
php_sapi_name()
php_strip_whitespace()
php_uname()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_access()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_initgroups()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_mknod()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_last_error()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
property_exists()
ps_add_bookmark()
ps_add_launchlink()
ps_add_locallink()
ps_add_note()
ps_add_pdflink()
ps_add_weblink()
ps_arc()
ps_arcn()
ps_begin_page()
ps_begin_pattern()
ps_begin_template()
ps_circle()
ps_clip()
ps_close()
ps_close_image()
ps_closepath()
ps_closepath_stroke()
ps_continue_text()
ps_curveto()
ps_delete()
ps_end_page()
ps_end_pattern()
ps_end_template()
ps_fill()
ps_fill_stroke()
ps_findfont()
ps_get_buffer()
ps_get_parameter()
ps_get_value()
ps_hyphenate()
ps_include_file()
ps_lineto()
ps_makespotcolor()
ps_moveto()
ps_new()
ps_open_file()
ps_open_image()
ps_open_image_file()
ps_open_memory_image()
ps_place_image()
ps_rect()
ps_restore()
ps_rotate()
ps_save()
ps_scale()
ps_set_border_color()
ps_set_border_dash()
ps_set_border_style()
ps_set_info()
ps_set_parameter()
ps_set_text_pos()
ps_set_value()
ps_setcolor()
ps_setdash()
ps_setflat()
ps_setfont()
ps_setgray()
ps_setlinecap()
ps_setlinejoin()
ps_setlinewidth()
ps_setmiterlimit()
ps_setoverprintmode()
ps_setpolydash()
ps_shading()
ps_shading_pattern()
ps_shfill()
ps_show()
ps_show2()
ps_show_boxed()
ps_show_xy()
ps_show_xy2()
ps_string_geometry()
ps_stringwidth()
ps_stroke()
ps_symbol()
ps_symbol_name()
ps_symbol_width()
ps_translate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_data_dir()
pspell_config_dict_dir()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()
px_close()
px_create_fp()
px_date2string()
px_delete()
px_delete_record()
px_get_field()
px_get_info()
px_get_parameter()
px_get_record()
px_get_schema()
px_get_value()
px_insert_record()
px_new()
px_numfields()
px_numrecords()
px_open_fp()
px_put_record()
px_retrieve_record()
px_set_blob_file()
px_set_parameter()
px_set_tablename()
px_set_targetencoding()
px_set_value()
px_timestamp2string()
px_update_record()
Q
qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()
R
rad2deg()
radius_acct_open()
radius_add_server()
radius_auth_open()
radius_close()
radius_config()
radius_create_request()
radius_cvt_addr()
radius_cvt_int()
radius_cvt_string()
radius_demangle()
radius_demangle_mppe_key()
radius_get_attr()
radius_get_vendor_attr()
radius_put_addr()
radius_put_attr()
radius_put_int()
radius_put_string()
radius_put_vendor_addr()
radius_put_vendor_attr()
radius_put_vendor_int()
radius_put_vendor_string()
radius_request_authenticator()
radius_send_request()
radius_server_secret()
radius_strerror()
rand()
range()
Rar::extract()
Rar::getAttr()
Rar::getCrc()
Rar::getFileTime()
Rar::getHostOs()
Rar::getMethod()
Rar::getName()
Rar::getPackedSize()
Rar::getUnpackedSize()
Rar::getVersion()
rar_close()
rar_entry_get()
rar_list()
rar_open()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_callback_handler_install()
readline_callback_handler_remove()
readline_callback_read_char()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_on_new_line()
readline_read_history()
readline_redisplay()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
RecursiveDirectoryIterator::getChildren()
RecursiveDirectoryIterator::hasChildren()
RecursiveDirectoryIterator::key()
RecursiveDirectoryIterator::next()
RecursiveDirectoryIterator::rewind()
RecursiveIteratorIterator::current()
RecursiveIteratorIterator::getDepth()
RecursiveIteratorIterator::getSubIterator()
RecursiveIteratorIterator::key()
RecursiveIteratorIterator::next()
RecursiveIteratorIterator::rewind()
RecursiveIteratorIterator::valid()
register_shutdown_function()
register_tick_function()
rename()
rename_function()
reset()
resources()
restore_error_handler()
restore_exception_handler()
restore_include_path()
result->current_field()
result->current_field()
result->data_seek()
result->data_seek()
result->fetch_array()
result->fetch_array()
result->fetch_field()
result->fetch_field()
result->fetch_field_direct()
result->fetch_field_direct()
result->fetch_fields()
result->fetch_fields()
result->fetch_object()
result->fetch_object()
result->fetch_row()
result->fetch_row()
result->field_count()
result->field_count()
result->field_seek()
result->field_seek()
result->free()
result->free()
result->lengths()
result->lengths()
result->num_rows()
rewind()
rewinddir()
rmdir()
round()
rpm_close()
rpm_get_tag()
rpm_is_valid()
rpm_open()
rpm_version()
rsort()
rtrim()
runkit_class_adopt()
runkit_class_emancipate()
runkit_constant_add()
runkit_constant_redefine()
runkit_constant_remove()
runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_remove()
runkit_function_rename()
runkit_import()
runkit_lint()
runkit_lint_file()
runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_return_value_used()
runkit_sandbox()
runkit_sandbox_output_handler()
runkit_sandbox_parent()
runkit_superglobals()
S
SAMConnection->__construct()
SAMConnection->commit()
SAMConnection->connect()
SAMConnection->disconnect()
SAMConnection->errno()
SAMConnection->error()
SAMConnection->isConnected()
SAMConnection->peek()
SAMConnection->peekAll()
SAMConnection->receive()
SAMConnection->remove()
SAMConnection->rollback()
SAMConnection->send()
SAMConnection->subscribe()
SAMConnection->unsubscribe()
SAMConnection::setDebug()
SAMMessage->__construct()
SAMMessage->body()
SAMMessage->header()
satellite_caught_exception()
satellite_exception_id()
satellite_exception_value()
satellite_get_repository_id()
satellite_load_idl()
satellite_object_to_string()
SCA::createDataObject()
SCA::getService()
SCA_LocalProxy::createDataObject()
SCA_SoapProxy::createDataObject()
scandir()
SDO_DAS_ChangeSummary::beginLogging()
SDO_DAS_ChangeSummary::endLogging()
SDO_DAS_ChangeSummary::getChangedDataObjects()
SDO_DAS_ChangeSummary::getChangeType()
SDO_DAS_ChangeSummary::getOldContainer()
SDO_DAS_ChangeSummary::getOldValues()
SDO_DAS_ChangeSummary::isLogging()
SDO_DAS_DataFactory::addPropertyToType()
SDO_DAS_DataFactory::addType()
SDO_DAS_DataFactory::getDataFactory()
SDO_DAS_DataObject::getChangeSummary()
SDO_DAS_Relational::__construct()
SDO_DAS_Relational::applyChanges()
SDO_DAS_Relational::createRootDataObject()
SDO_DAS_Relational::executePreparedQuery()
SDO_DAS_Relational::executeQuery()
SDO_DAS_Setting::getListIndex()
SDO_DAS_Setting::getPropertyIndex()
SDO_DAS_Setting::getPropertyName()
SDO_DAS_Setting::getValue()
SDO_DAS_Setting::isSet()
SDO_DAS_XML::addTypes()
SDO_DAS_XML::create()
SDO_DAS_XML::createDataObject()
SDO_DAS_XML::createDocument()
SDO_DAS_XML::loadFile()
SDO_DAS_XML::loadString()
SDO_DAS_XML::saveFile()
SDO_DAS_XML::saveString()
SDO_DAS_XML_Document::getRootDataObject()
SDO_DAS_XML_Document::getRootElementName()
SDO_DAS_XML_Document::getRootElementURI()
SDO_DAS_XML_Document::setEncoding()
SDO_DAS_XML_Document::setXMLDeclaration()
SDO_DAS_XML_Document::setXMLVersion()
SDO_DataFactory::create()
SDO_DataObject::clear()
SDO_DataObject::createDataObject()
SDO_DataObject::getContainer()
SDO_DataObject::getSequence()
SDO_DataObject::getTypeName()
SDO_DataObject::getTypeNamespaceURI()
SDO_Exception::getCause()
SDO_List::insert()
SDO_Model_Property::getContainingType()
SDO_Model_Property::getDefault()
SDO_Model_Property::getName()
SDO_Model_Property::getType()
SDO_Model_Property::isContainment()
SDO_Model_Property::isMany()
SDO_Model_ReflectionDataObject::__construct()
SDO_Model_ReflectionDataObject::export()
SDO_Model_ReflectionDataObject::getContainmentProperty()
SDO_Model_ReflectionDataObject::getInstanceProperties()
SDO_Model_ReflectionDataObject::getType()
SDO_Model_Type::getBaseType()
SDO_Model_Type::getName()
SDO_Model_Type::getNamespaceURI()
SDO_Model_Type::getProperties()
SDO_Model_Type::getProperty()
SDO_Model_Type::isAbstractType()
SDO_Model_Type::isDataType()
SDO_Model_Type::isInstance()
SDO_Model_Type::isOpenType()
SDO_Model_Type::isSequencedType()
SDO_Sequence::getProperty()
SDO_Sequence::insert()
SDO_Sequence::move()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_commit()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_pgsql_add_error()
session_pgsql_get_error()
session_pgsql_get_field()
session_pgsql_reset()
session_pgsql_set_field()
session_pgsql_status()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_exception_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
setrawcookie()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
SimpleXMLElement->__construct()
SimpleXMLElement->addAttribute()
SimpleXMLElement->addChild()
SimpleXMLElement->asXML()
SimpleXMLElement->attributes()
SimpleXMLElement->children()
SimpleXMLElement->getDocNamespaces()
SimpleXMLElement->getName()
SimpleXMLElement->getNamespaces()
SimpleXMLElement->registerXPathNamespace()
SimpleXMLElement->xpath()
SimpleXMLIterator::current()
SimpleXMLIterator::getChildren()
SimpleXMLIterator::hasChildren()
SimpleXMLIterator::key()
SimpleXMLIterator::next()
SimpleXMLIterator::rewind()
SimpleXMLIterator::valid()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_get_valueretrieval()
snmp_read_mib()
snmp_set_enum_print()
snmp_set_oid_numeric_print()
snmp_set_oid_output_format()
snmp_set_quick_print()
snmp_set_valueretrieval()
snmpget()
snmpgetnext()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
SoapClient->__call()
SoapClient->__construct()
SoapClient->__doRequest()
SoapClient->__getFunctions()
SoapClient->__getLastRequest()
SoapClient->__getLastRequestHeaders()
SoapClient->__getLastResponse()
SoapClient->__getLastResponseHeaders()
SoapClient->__getTypes()
SoapClient->__setCookie()
SoapClient->__soapCall()
SoapFault->__construct()
SoapHeader->__construct()
SoapParam->__construct()
SoapServer->__construct()
SoapServer->addFunction()
SoapServer->fault()
SoapServer->getFunctions()
SoapServer->handle()
SoapServer->setClass()
SoapServer->setPersistence()
SoapVar->__construct()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_last_error()
socket_listen()
socket_read()
socket_recv()
socket_recvfrom()
socket_select()
socket_send()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
sort()
soundex()
spl_autoload()
spl_autoload_call()
spl_autoload_extensions()
spl_autoload_functions()
spl_autoload_register()
spl_autoload_unregister()
spl_classes()
spl_object_hash()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_exec()
sqlite_factory()
sqlite_fetch_all()
sqlite_fetch_array()
sqlite_fetch_column_types()
sqlite_fetch_object()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_has_prev()
sqlite_key()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_prev()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_single_query()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqlite_valid()
SQLiteDatabase->arrayQuery()
SQLiteDatabase->busyTimeout()
SQLiteDatabase->changes()
SQLiteDatabase->createAggregate()
SQLiteDatabase->createFunction()
SQLiteDatabase->exec()
SQLiteDatabase->fetchColumnTypes()
SQLiteDatabase->lastError()
SQLiteDatabase->lastInsertRowid()
SQLiteDatabase->query()
SQLiteDatabase->singleQuery()
SQLiteDatabase->unbufferedQuery()
SQLiteResult->column()
SQLiteResult->current()
SQLiteResult->fetch()
SQLiteResult->fetchAll()
SQLiteResult->fetchObject()
SQLiteResult->fetchSingle()
SQLiteResult->fieldName()
SQLiteResult->hasPrev()
SQLiteResult->key()
SQLiteResult->next()
SQLiteResult->numFields()
SQLiteResult->numRows()
SQLiteResult->prev()
SQLiteResult->rewind()
SQLiteResult->seek()
SQLiteResult->valid()
SQLiteUnbuffered->column()
SQLiteUnbuffered->current()
SQLiteUnbuffered->fetch()
SQLiteUnbuffered->fetchAll()
SQLiteUnbuffered->fetchObject()
SQLiteUnbuffered->fetchSingle()
SQLiteUnbuffered->fieldName()
SQLiteUnbuffered->next()
SQLiteUnbuffered->numFields()
SQLiteUnbuffered->valid()
sqrt()
srand()
sscanf()
ssh2_auth_hostbased_file()
ssh2_auth_none()
ssh2_auth_password()
ssh2_auth_pubkey_file()
ssh2_connect()
ssh2_exec()
ssh2_fetch_stream()
ssh2_fingerprint()
ssh2_methods_negotiated()
ssh2_publickey_add()
ssh2_publickey_init()
ssh2_publickey_list()
ssh2_publickey_remove()
ssh2_scp_recv()
ssh2_scp_send()
ssh2_sftp()
ssh2_sftp_lstat()
ssh2_sftp_mkdir()
ssh2_sftp_readlink()
ssh2_sftp_realpath()
ssh2_sftp_rename()
ssh2_sftp_rmdir()
ssh2_sftp_stat()
ssh2_sftp_symlink()
ssh2_sftp_unlink()
ssh2_shell()
ssh2_tunnel()
stat()
stats_absolute_deviation()
stats_cdf_beta()
stats_cdf_binomial()
stats_cdf_cauchy()
stats_cdf_chisquare()
stats_cdf_exponential()
stats_cdf_f()
stats_cdf_gamma()
stats_cdf_laplace()
stats_cdf_logistic()
stats_cdf_negative_binomial()
stats_cdf_noncentral_chisquare()
stats_cdf_noncentral_f()
stats_cdf_poisson()
stats_cdf_t()
stats_cdf_uniform()
stats_cdf_weibull()
stats_covariance()
stats_den_uniform()
stats_dens_beta()
stats_dens_cauchy()
stats_dens_chisquare()
stats_dens_exponential()
stats_dens_f()
stats_dens_gamma()
stats_dens_laplace()
stats_dens_logistic()
stats_dens_negative_binomial()
stats_dens_normal()
stats_dens_pmf_binomial()
stats_dens_pmf_hypergeometric()
stats_dens_pmf_poisson()
stats_dens_t()
stats_dens_weibull()
stats_harmonic_mean()
stats_kurtosis()
stats_rand_gen_beta()
stats_rand_gen_chisquare()
stats_rand_gen_exponential()
stats_rand_gen_f()
stats_rand_gen_funiform()
stats_rand_gen_gamma()
stats_rand_gen_ibinomial()
stats_rand_gen_ibinomial_negative()
stats_rand_gen_int()
stats_rand_gen_ipoisson()
stats_rand_gen_iuniform()
stats_rand_gen_noncenral_chisquare()
stats_rand_gen_noncentral_f()
stats_rand_gen_noncentral_t()
stats_rand_gen_normal()
stats_rand_gen_t()
stats_rand_get_seeds()
stats_rand_phrase_to_seeds()
stats_rand_ranf()
stats_rand_setall()
stats_skew()
stats_standard_deviation()
stats_stat_binomial_coef()
stats_stat_correlation()
stats_stat_gennch()
stats_stat_independent_t()
stats_stat_innerproduct()
stats_stat_noncentral_t()
stats_stat_paired_t()
stats_stat_percentile()
stats_stat_powersum()
stats_variance()
stmt->bind_param()
stmt->bind_param()
stmt->bind_result()
stmt->bind_result()
stmt->close_long_data()
stmt->data_seek()
stmt->data_seek()
stmt->execute()
stmt->execute()
stmt->fetch()
stmt->fetch()
stmt->free_result()
stmt->free_result()
stmt->num_rows()
stmt->num_rows()
stmt->param_count()
stmt->param_count()
stmt->prepare()
stmt->prepare()
stmt->reset()
stmt->reset()
stmt->result_metadata()
stmt->send_long_data()
stmt->send_long_data()
str_getcsv()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_bucket_append()
stream_bucket_make_writeable()
stream_bucket_new()
stream_bucket_prepend()
stream_context_create()
stream_context_get_default()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_encoding()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_filter_remove()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_resolve_include_path()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_enable_crypto()
stream_socket_get_name()
stream_socket_pair()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_socket_shutdown()
stream_wrapper_register()
stream_wrapper_restore()
stream_wrapper_unregister()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpbrk()
strpos()
strptime()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
svn_add()
svn_auth_get_parameter()
svn_auth_set_parameter()
svn_cat()
svn_checkout()
svn_cleanup()
svn_client_version()
svn_commit()
svn_diff()
svn_fs_abort_txn()
svn_fs_apply_text()
svn_fs_begin_txn2()
svn_fs_change_node_prop()
svn_fs_check_path()
svn_fs_contents_changed()
svn_fs_copy()
svn_fs_delete()
svn_fs_dir_entries()
svn_fs_file_contents()
svn_fs_file_length()
svn_fs_is_dir()
svn_fs_is_file()
svn_fs_make_dir()
svn_fs_make_file()
svn_fs_node_created_rev()
svn_fs_node_prop()
svn_fs_props_changed()
svn_fs_revision_prop()
svn_fs_revision_root()
svn_fs_txn_root()
svn_fs_youngest_rev()
svn_import()
svn_log()
svn_ls()
svn_repos_create()
svn_repos_fs()
svn_repos_fs_begin_txn_for_commit()
svn_repos_fs_commit_txn()
svn_repos_hotcopy()
svn_repos_open()
svn_repos_recover()
svn_status()
svn_update()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
SWFAction->__construct()
swfbitmap()
SWFBitmap->__construct()
SWFBitmap->getHeight()
SWFBitmap->getWidth()
swfbutton()
SWFButton->__construct()
SWFButton->addAction()
SWFButton->addASound()
SWFButton->addShape()
SWFButton->setAction()
SWFButton->setDown()
SWFButton->setHit()
SWFButton->setMenu()
SWFButton->setOver()
SWFButton->setUp()
swfdisplayitem()
SWFDisplayItem->addAction()
SWFDisplayItem->addColor()
SWFDisplayItem->endMask()
SWFDisplayItem->getRot()
SWFDisplayItem->getX()
SWFDisplayItem->getXScale()
SWFDisplayItem->getXSkew()
SWFDisplayItem->getY()
SWFDisplayItem->getYScale()
SWFDisplayItem->getYSkew()
SWFDisplayItem->move()
SWFDisplayItem->moveTo()
SWFDisplayItem->multColor()
SWFDisplayItem->remove()
SWFDisplayItem->rotate()
SWFDisplayItem->rotateTo()
SWFDisplayItem->scale()
SWFDisplayItem->scaleTo()
SWFDisplayItem->setDepth()
SWFDisplayItem->setMaskLevel()
SWFDisplayItem->setMatrix()
SWFDisplayItem->setName()
SWFDisplayItem->setRatio()
SWFDisplayItem->skewX()
SWFDisplayItem->skewXTo()
SWFDisplayItem->skewY()
SWFDisplayItem->skewYTo()
swffill()
SWFFill->moveTo()
SWFFill->rotateTo()
SWFFill->scaleTo()
SWFFill->skewXTo()
SWFFill->skewYTo()
swffont()
SWFFont->__construct()
SWFFont->getAscent()
SWFFont->getDescent()
SWFFont->getLeading()
SWFFont->getShape()
SWFFont->getUTF8Width()
SWFFont->getWidth()
swffontchar()
SWFFontChar->addChars()
SWFFontChar->addUTF8Chars()
swfgradient()
SWFGradient->__construct()
SWFGradient->addEntry()
swfmorph()
SWFMorph->__construct()
SWFMorph->getShape1()
SWFMorph->getShape2()
swfmovie()
SWFMovie->__construct()
SWFMovie->add()
SWFMovie->addExport()
SWFMovie->addFont()
SWFMovie->importChar()
SWFMovie->importFont()
SWFMovie->labelFrame()
SWFMovie->nextFrame()
SWFMovie->output()
SWFMovie->remove()
SWFMovie->save()
SWFMovie->saveToFile()
SWFMovie->setbackground()
SWFMovie->setDimension()
SWFMovie->setFrames()
SWFMovie->setRate()
SWFMovie->startSound()
SWFMovie->stopSound()
SWFMovie->streamMP3()
SWFMovie->writeExports()
swfprebuiltclip()
SWFPrebuiltClip->__construct()
swfshape()
SWFShape->__construct()
SWFShape->addFill()
SWFShape->drawArc()
SWFShape->drawCircle()
SWFShape->drawCubic()
SWFShape->drawCubicTo()
SWFShape->drawCurve()
SWFShape->drawCurveTo()
SWFShape->drawGlyph()
SWFShape->drawLine()
SWFShape->drawLineTo()
SWFShape->movePen()
SWFShape->movePenTo()
SWFShape->setLeftFill()
SWFShape->setLine()
SWFShape->setRightFill()
swfsound()
swfsound()
swfsoundinstance()
SWFSoundInstance->loopCount()
SWFSoundInstance->loopInPoint()
SWFSoundInstance->loopOutPoint()
SWFSoundInstance->noMultiple()
swfsprite()
SWFSprite->__construct()
SWFSprite->add()
SWFSprite->labelFrame()
SWFSprite->nextFrame()
SWFSprite->remove()
SWFSprite->setFrames()
SWFSprite->startSound()
SWFSprite->stopSound()
swftext()
SWFText->__construct()
SWFText->addString()
SWFText->addUTF8String()
SWFText->getAscent()
SWFText->getDescent()
SWFText->getLeading()
SWFText->getUTF8Width()
SWFText->getWidth()
SWFText->moveTo()
SWFText->setColor()
SWFText->setFont()
SWFText->setHeight()
SWFText->setSpacing()
swftextfield()
SWFTextField->__construct()
SWFTextField->addChars()
SWFTextField->addString()
SWFTextField->align()
SWFTextField->setBounds()
SWFTextField->setColor()
SWFTextField->setFont()
SWFTextField->setHeight()
SWFTextField->setIndentation()
SWFTextField->setLeftMargin()
SWFTextField->setLineSpacing()
SWFTextField->setMargins()
SWFTextField->setName()
SWFTextField->setPadding()
SWFTextField->setRightMargin()
swfvideostream()
SWFVideoStream->__construct()
SWFVideoStream->getNumFrames()
SWFVideoStream->setDimension()
Swish->getMetaList()
Swish->getPropertyList()
Swish->prepare()
Swish->query()
Swish::__construct()
SwishResult->getMetaList()
SwishResult->stem()
SwishResults->getParsedWords()
SwishResults->getRemovedStopwords()
SwishResults->nextResult()
SwishResults->seekResult()
SwishSearch->execute()
SwishSearch->resetLimit()
SwishSearch->setLimit()
SwishSearch->setPhraseDelimiter()
SwishSearch->setSort()
SwishSearch->setStructure()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
sys_get_temp_dir()
sys_getloadavg()
syslog()
system()
T
tan()
tanh()
tcpwrap_check()
tempnam()
textdomain()
tidy::__construct()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_opt_doc()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_is_xml()
tidy_load_config()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->next()
tidy_node->prev()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
tidyNode->hasChildren()
tidyNode->hasSiblings()
tidyNode->isAsp()
tidyNode->isComment()
tidyNode->isHtml()
tidyNode->isJste()
tidyNode->isPhp()
tidyNode->isText()
tidyNode::getParent()
time()
time_nanosleep()
time_sleep_until()
timezone_abbreviations_list()
timezone_identifiers_list()
timezone_name_from_abbr()
timezone_name_get()
timezone_offset_get()
timezone_open()
timezone_transitions_get()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()
U
uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_alloc_agent_array()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_hash32()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
unicode_decode()
unicode_encode()
unicode_get_error_mode()
unicode_get_subst_char()
unicode_semantics()
unicode_set_error_mode()
unicode_set_subst_char()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
usage()
use_soap_error_handler()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()
V
var_dump()
var_export()
variant()
variant_abs()
variant_add()
variant_and()
variant_cast()
variant_cat()
variant_cmp()
variant_date_from_timestamp()
variant_date_to_timestamp()
variant_div()
variant_eqv()
variant_fix()
variant_get_type()
variant_idiv()
variant_imp()
variant_int()
variant_mod()
variant_mul()
variant_neg()
variant_not()
variant_or()
variant_pow()
variant_round()
variant_set()
variant_set_type()
variant_sub()
variant_xor()
version_compare()
vfprintf()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()
W
w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wddx_unserialize()
win32_create_service()
win32_delete_service()
win32_get_last_control_message()
win32_ps_list_procs()
win32_ps_stat_mem()
win32_ps_stat_proc()
win32_query_service_status()
win32_set_service_status()
win32_start_service()
win32_start_service_ctrl_dispatcher()
win32_stop_service()
wordwrap()
X
xattr_get()
xattr_list()
xattr_remove()
xattr_set()
xattr_supported()
xdiff_file_diff()
xdiff_file_diff_binary()
xdiff_file_merge3()
xdiff_file_patch()
xdiff_file_patch_binary()
xdiff_string_diff()
xdiff_string_diff_binary()
xdiff_string_merge3()
xdiff_string_patch()
xdiff_string_patch_binary()
xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
XMLReader::close()
XMLReader::expand()
XMLReader::getAttribute()
XMLReader::getAttributeNo()
XMLReader::getAttributeNs()
XMLReader::getParserProperty()
XMLReader::isValid()
XMLReader::lookupNamespace()
XMLReader::moveToAttribute()
XMLReader::moveToAttributeNo()
XMLReader::moveToAttributeNs()
XMLReader::moveToElement()
XMLReader::moveToFirstAttribute()
XMLReader::moveToNextAttribute()
XMLReader::next()
XMLReader::open()
XMLReader::read()
XMLReader::setParserProperty()
XMLReader::setRelaxNGSchema()
XMLReader::setRelaxNGSchemaSource()
XMLReader::XML()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_is_fault()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
XMLWriter::endAttribute()
XMLWriter::endCData()
XMLWriter::endComment()
XMLWriter::endDocument()
XMLWriter::endDTD()
XMLWriter::endDTDAttlist()
XMLWriter::endDTDElement()
XMLWriter::endDTDEntity()
XMLWriter::endElement()
XMLWriter::endPI()
XMLWriter::flush()
XMLWriter::fullEndElement()
XMLWriter::openMemory()
XMLWriter::openURI()
XMLWriter::outputMemory()
XMLWriter::setIndent()
XMLWriter::setIndentString()
XMLWriter::startAttribute()
XMLWriter::startAttributeNS()
XMLWriter::startCData()
XMLWriter::startComment()
XMLWriter::startDocument()
XMLWriter::startDTD()
XMLWriter::startDTDAttlist()
XMLWriter::startDTDElement()
XMLWriter::startDTDEntity()
XMLWriter::startElement()
XMLWriter::startElementNS()
XMLWriter::startPI()
XMLWriter::text()
XMLWriter::writeAttribute()
XMLWriter::writeAttributeNS()
XMLWriter::writeCData()
XMLWriter::writeComment()
XMLWriter::writeDTD()
XMLWriter::writeDTDAttlist()
XMLWriter::writeDTDElement()
XMLWriter::writeDTDEntity()
XMLWriter::writeElement()
XMLWriter::writeElementNS()
XMLWriter::writePI()
XMLWriter::writeRaw()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xpath_register_ns()
xpath_register_ns_auto()
xptr_eval()
xptr_new_context()
xslt_backend_info()
xslt_backend_name()
xslt_backend_version()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_getopt()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_object()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()
xslt_setopt()
XSLTProcessor::__construct()
XSLTProcessor::getParameter()
XSLTProcessor::hasExsltSupport()
XSLTProcessor::importStylesheet()
XSLTProcessor::registerPHPFunctions()
XSLTProcessor::removeParameter()
XSLTProcessor::setParameter()
XSLTProcessor::transformToDoc()
XSLTProcessor::transformToURI()
XSLTProcessor::transformToXML()
Y
yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()
Z
zend_logo_guid()
zend_thread_id()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
ZipArchive::addEmptyDir()
ZipArchive::addFile()
ZipArchive::addFromString()
ZipArchive::close()
ZipArchive::deleteIndex()
ZipArchive::deleteName()
ZipArchive::extractTo()
ZipArchive::getArchiveComment()
ZipArchive::getCommentIndex()
ZipArchive::getCommentName()
ZipArchive::getFromIndex()
ZipArchive::getFromName()
ZipArchive::getNameIndex()
ZipArchive::getStream()
ZipArchive::locateName()
ZipArchive::open()
ZipArchive::renameIndex()
ZipArchive::renameName()
ZipArchive::setArchiveComment()
ZipArchive::setCommentIndex()
ZipArchive::setCommentName()
ZipArchive::statIndex()
ZipArchive::statName()
ZipArchive::unchangeAll()
ZipArchive::unchangeArchive()
ZipArchive::unchangeIndex()
ZipArchive::unchangeName()
zlib_get_coding_type()
Creative Commons Attribution 3.0
CHM 版本
附录


CHM 版本

  • 关于此版本
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
    • Manual Content and User Note Separation
  • Specialities of this Edition
    • User Preferences
    • Presentational Specialities
  • Integrating the PHP Manual
  • Skin development
    • Page Display Process
    • Page Elements
    • CSS classes
  • CHM Edition Credits
函数索引
关于此版本


关于此版本

PHP 手册的 Windows HTML Help 版本是针对开发人员的，他们希望每时每刻都有手册在手头，并且不需要等待远程页面下载就可以阅读手册以及用户注解。此版本给你完整的手册内容加上用户注解，以及一些很棒的特色。这是由我们用来生成此格式的脚本产生的阅读程序以及其他人在皮肤样式上的贡献所提供的。

PHP 手册的此发行包中由很多文件组成，包括主要的手册文件 php_manual_zh.chm。你可以通过双击此文件查看本手册（你可能已经猜到了）。用户注解在 php_manual_notes.chm 中。你只需要在你的机器上保留此文件的一个拷贝，不用管用了多少种语言来阅读 PHP 手册。唯一需要的就是将所有的 php_manual_LANG.chm 文件放在 php_manual_notes.chm 同一个目录中。你可能也会在目录中看到 php_manual_zh.chw 文件，该文件是在你第一次使用索引标签时生成的，包含了手册页面的索引。

对那些对 Microsoft HTML Help 的技术细节有兴趣的人来说，» http://www.helpware.net/ 是一个很棒的资源。有关 Microsoft 帮助格式和服务历史中的 Windows HTML Help 的更多信息与配置，见 » WinWriters article。

CHM 版本
Using PHP Manual CHM Edition
CHM 版本


Using PHP Manual CHM Edition

Table of Contents

  • The HTML Help Toolbar
  • The Navigation Pane
  • Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

关于此版本
The HTML Help Toolbar
CHM 版本


The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.
  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).
  • Back - Goes back in the history.
  • Forward - Goes forward in the history.
  • Refresh - Reloads the current page.
  • Home - Opens the startup page of the CHM.
  • Print - Opens the print dialog box.
  • Options - Provides a dropdown with more options.

Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

Using PHP Manual CHM Edition
The Navigation Pane
Using PHP Manual CHM Edition


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).
  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.
  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.
  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

The HTML Help Toolbar
Keyboard Shortcuts
Using PHP Manual CHM Edition


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

General Help Viewer Shortcuts
To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu [see the User Preferences section] | SHIFT+F10

Contents Tab Shortcuts
To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER

Index Tab Shortcuts
To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D

Search Tab shortcuts
To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R

Favorites Tab Shortcuts
To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R

Topic Pane Shortcuts
To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

The Navigation Pane
The Full Text Search
Using PHP Manual CHM Edition


The Full Text Search

Table of Contents

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching
  • Manual Content and User Note Separation

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

Keyboard Shortcuts
General searching rules
CHM 版本


General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.
  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.
  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.
  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Note: If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."

The Full Text Search
Searching for words or phrases
The Full Text Search


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Word and phrase searches
Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase | "new operator" or new operator | Topics that contain the literal phrase "new operator" and all its grammatical variations. Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.
Wildcard expressions | esc* or HT?? | Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term. Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Note: Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".

General searching rules
Defining search terms
The Full Text Search


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Search operators
Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Note: The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.

Searching for words or phrases
Using nested expressions when searching
The Full Text Search


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.
  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".
  • You cannot nest expressions more than five levels deep.

Defining search terms
Manual Content and User Note Separation
The Full Text Search


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.
  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.
  • You can bookmark manual pages with notes, or just a notes part of a page separately.
  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Using nested expressions when searching
Specialities of this Edition
The Full Text Search


Specialities of this Edition

Table of Contents

  • User Preferences
  • Presentational Specialities

The Windows HTML Help Edition of the PHP Manual over-performs the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

Manual Content and User Note Separation
User Preferences
CHM 版本


User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from » http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Context menu items
Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.

Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at » php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Specialities of this Edition
Presentational Specialities
Specialities of this Edition


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

User Preferences
Integrating the PHP Manual
Specialities of this Edition


Integrating the PHP Manual

Note: The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Note: All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a » HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at » http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at » http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&DisplayLang=en.

Presentational Specialities
Skin development
CHM 版本


Skin development

Table of Contents

  • Page Display Process
  • Page Elements
  • CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybody's needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Warning

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Integrating the PHP Manual
Page Display Process
CHM 版本


Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.
  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.
  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.
  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.
  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...
  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Skin development
Page Elements
Skin development


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.
  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.
  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).
  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).
  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Page Display Process
CSS classes
Skin development


CSS classes

We cannot provide accurate documentation currently on usable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Page Elements
CHM Edition Credits
Skin development


CHM Edition Credits

This enhanced version of the PHP Manual would never come to existence, if the following people would not help with their contribution to the project (in no particular order):

  • Holger Eggert, who created the two default designs, and provided many usability tips
  • Gonzalo De la Pena Andreu, who added many comments on how it would be ideal to provide the skinnable interface
  • Olexandr Vynnychenko added countless comments and testing all the time
  • Brendan Ferguson, who provided many optimizations, improvements to the HTML and JS codes behind the manual pages
  • Sandor Hojtsy, who coded the manual preferences desktop application
  • And at last but not least, everybody, who provided feedback through our mailing list, and in the user survey

CSS classes
CHM 版本